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
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { NgModule } from "@angular/core";
|
|
2
|
-
import { CommonModule } from "@angular/common";
|
|
3
|
-
import { HttpClientModule } from "@angular/common/http";
|
|
4
|
-
import { SlickGridColumnModel, SlickGridColumnFilterTypes, SlickGridColumnSortDirection } from "./slick-grid-column.model";
|
|
5
|
-
import { SlickGridFavoriteModel } from "./slick-grid-favorite.model";
|
|
6
|
-
import { SlickGridRequestModel } from "./slick-grid-request.model";
|
|
7
|
-
import { SlickGridResponseModel } from "./slick-grid-response.model";
|
|
8
|
-
import { SlickGridComponent } from "./slick-grid.component";
|
|
9
|
-
import { SlickGridColumnTemplateDirective } from "./slick-grid-column-template.directive";
|
|
10
|
-
import { SlickGridOptions } from "./slick-grid.options";
|
|
11
|
-
import { SlickGridService } from "./slick-grid.service";
|
|
12
|
-
import { SlickConfirmDialogModule } from "../slick-confirm-dialog/slick-confirm-dialog.module";
|
|
13
|
-
import { SlickDialogModule } from "../slick-dialog/slick-dialog.module";
|
|
14
|
-
import { SlickDropDownModule } from "../slick-drop-down/slick-drop-down.module";
|
|
15
|
-
import { SlickDropListModule } from "../slick-drop-list/slick-drop-list.module";
|
|
16
|
-
import { SlickPagingModule } from "../slick-paging/slick-paging.module";
|
|
17
|
-
import { SlickPickListModule } from "../slick-pick-list/slick-pick-list.module";
|
|
18
|
-
import { SlickPopoverModule } from "../slick-popover/slick-popover.module";
|
|
19
|
-
import { SlickGridSanitizeHtmlPipe } from "./slick-grid-sanitize.pipe";
|
|
20
|
-
import { SlickFunctionLockService } from "../utils/slick-function-lock.service";
|
|
21
|
-
export class SlickGridModule {
|
|
22
|
-
}
|
|
23
|
-
SlickGridModule.decorators = [
|
|
24
|
-
{ type: NgModule, args: [{
|
|
25
|
-
imports: [CommonModule, SlickConfirmDialogModule, SlickPickListModule, SlickPopoverModule, SlickDialogModule, SlickDropDownModule, SlickDropListModule, SlickPagingModule, HttpClientModule],
|
|
26
|
-
declarations: [SlickGridComponent, SlickGridColumnTemplateDirective, SlickGridSanitizeHtmlPipe],
|
|
27
|
-
exports: [SlickGridComponent, SlickGridColumnTemplateDirective, SlickPickListModule, SlickDialogModule, SlickDropDownModule],
|
|
28
|
-
providers: [SlickGridService, SlickFunctionLockService, SlickGridSanitizeHtmlPipe]
|
|
29
|
-
},] }
|
|
30
|
-
];
|
|
31
|
-
export { SlickGridColumnModel, SlickGridColumnFilterTypes, SlickGridColumnSortDirection };
|
|
32
|
-
export { SlickGridFavoriteModel };
|
|
33
|
-
export { SlickGridRequestModel };
|
|
34
|
-
export { SlickGridResponseModel };
|
|
35
|
-
export { SlickGridComponent };
|
|
36
|
-
export { SlickGridColumnTemplateDirective };
|
|
37
|
-
export { SlickGridOptions };
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stZ3JpZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9zbGljay1ncmlkL3NsaWNrLWdyaWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSwwQkFBMEIsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNILE9BQU8sRUFBMkIsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RixPQUFPLEVBQTBCLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0YsT0FBTyxFQUEyQixzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFGLE9BQU8sRUFBcUIsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQVFoRixNQUFNLE9BQU8sZUFBZTs7O1lBTjNCLFFBQVEsU0FBQztnQkFDVCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsd0JBQXdCLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUM7Z0JBQzVMLFlBQVksRUFBRSxDQUFDLGtCQUFrQixFQUFHLGdDQUFnQyxFQUFFLHlCQUF5QixDQUFDO2dCQUNoRyxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxnQ0FBZ0MsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsQ0FBQztnQkFDNUgsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsd0JBQXdCLEVBQUUseUJBQXlCLENBQUM7YUFDbEY7O0FBR0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLDRCQUE0QixFQUFFLENBQUE7QUFDekYsT0FBTyxFQUEyQixzQkFBc0IsRUFBRSxDQUFBO0FBQzFELE9BQU8sRUFBMEIscUJBQXFCLEVBQUUsQ0FBQTtBQUN4RCxPQUFPLEVBQTJCLHNCQUFzQixFQUFFLENBQUE7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLENBQUE7QUFDN0IsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLENBQUE7QUFDM0MsT0FBTyxFQUFxQixnQkFBZ0IsRUFBRSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgU2xpY2tHcmlkQ29sdW1uTW9kZWwsIFNsaWNrR3JpZENvbHVtbkZpbHRlclR5cGVzLCBTbGlja0dyaWRDb2x1bW5Tb3J0RGlyZWN0aW9uIH0gZnJvbSBcIi4vc2xpY2stZ3JpZC1jb2x1bW4ubW9kZWxcIjtcclxuaW1wb3J0IHsgSVNsaWNrR3JpZEZhdm9yaXRlTW9kZWwsIFNsaWNrR3JpZEZhdm9yaXRlTW9kZWwgfSBmcm9tIFwiLi9zbGljay1ncmlkLWZhdm9yaXRlLm1vZGVsXCI7XHJcbmltcG9ydCB7IElTbGlja0dyaWRSZXF1ZXN0TW9kZWwsIFNsaWNrR3JpZFJlcXVlc3RNb2RlbCB9IGZyb20gXCIuL3NsaWNrLWdyaWQtcmVxdWVzdC5tb2RlbFwiO1xyXG5pbXBvcnQgeyBJU2xpY2tHcmlkUmVzcG9uc2VNb2RlbCwgU2xpY2tHcmlkUmVzcG9uc2VNb2RlbCB9IGZyb20gXCIuL3NsaWNrLWdyaWQtcmVzcG9uc2UubW9kZWxcIjtcclxuaW1wb3J0IHsgU2xpY2tHcmlkQ29tcG9uZW50IH0gZnJvbSBcIi4vc2xpY2stZ3JpZC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgU2xpY2tHcmlkQ29sdW1uVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tIFwiLi9zbGljay1ncmlkLWNvbHVtbi10ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHsgSVNsaWNrR3JpZE9wdGlvbnMsIFNsaWNrR3JpZE9wdGlvbnMgfSBmcm9tIFwiLi9zbGljay1ncmlkLm9wdGlvbnNcIjtcclxuaW1wb3J0IHsgU2xpY2tHcmlkU2VydmljZSB9IGZyb20gXCIuL3NsaWNrLWdyaWQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTbGlja0NvbmZpcm1EaWFsb2dNb2R1bGUgfSBmcm9tIFwiLi4vc2xpY2stY29uZmlybS1kaWFsb2cvc2xpY2stY29uZmlybS1kaWFsb2cubW9kdWxlXCI7XHJcbmltcG9ydCB7IFNsaWNrRGlhbG9nTW9kdWxlIH0gZnJvbSBcIi4uL3NsaWNrLWRpYWxvZy9zbGljay1kaWFsb2cubW9kdWxlXCI7XHJcbmltcG9ydCB7IFNsaWNrRHJvcERvd25Nb2R1bGUgfSBmcm9tIFwiLi4vc2xpY2stZHJvcC1kb3duL3NsaWNrLWRyb3AtZG93bi5tb2R1bGVcIjtcclxuaW1wb3J0IHsgU2xpY2tEcm9wTGlzdE1vZHVsZSB9IGZyb20gXCIuLi9zbGljay1kcm9wLWxpc3Qvc2xpY2stZHJvcC1saXN0Lm1vZHVsZVwiO1xyXG5pbXBvcnQgeyBTbGlja1BhZ2luZ01vZHVsZSB9IGZyb20gXCIuLi9zbGljay1wYWdpbmcvc2xpY2stcGFnaW5nLm1vZHVsZVwiO1xyXG5pbXBvcnQgeyBTbGlja1BpY2tMaXN0TW9kdWxlIH0gZnJvbSBcIi4uL3NsaWNrLXBpY2stbGlzdC9zbGljay1waWNrLWxpc3QubW9kdWxlXCI7XHJcbmltcG9ydCB7IFNsaWNrUG9wb3Zlck1vZHVsZSB9IGZyb20gXCIuLi9zbGljay1wb3BvdmVyL3NsaWNrLXBvcG92ZXIubW9kdWxlXCI7XHJcbmltcG9ydCB7IFNsaWNrR3JpZFNhbml0aXplSHRtbFBpcGUgfSBmcm9tIFwiLi9zbGljay1ncmlkLXNhbml0aXplLnBpcGVcIjtcclxuaW1wb3J0IHsgU2xpY2tGdW5jdGlvbkxvY2tTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL3NsaWNrLWZ1bmN0aW9uLWxvY2suc2VydmljZVwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTbGlja0NvbmZpcm1EaWFsb2dNb2R1bGUsIFNsaWNrUGlja0xpc3RNb2R1bGUsIFNsaWNrUG9wb3Zlck1vZHVsZSwgU2xpY2tEaWFsb2dNb2R1bGUsIFNsaWNrRHJvcERvd25Nb2R1bGUsIFNsaWNrRHJvcExpc3RNb2R1bGUsIFNsaWNrUGFnaW5nTW9kdWxlLCBIdHRwQ2xpZW50TW9kdWxlXSxcclxuXHRkZWNsYXJhdGlvbnM6IFtTbGlja0dyaWRDb21wb25lbnQsICBTbGlja0dyaWRDb2x1bW5UZW1wbGF0ZURpcmVjdGl2ZSwgU2xpY2tHcmlkU2FuaXRpemVIdG1sUGlwZV0sXHJcblx0ZXhwb3J0czogW1NsaWNrR3JpZENvbXBvbmVudCwgU2xpY2tHcmlkQ29sdW1uVGVtcGxhdGVEaXJlY3RpdmUsIFNsaWNrUGlja0xpc3RNb2R1bGUsIFNsaWNrRGlhbG9nTW9kdWxlLCBTbGlja0Ryb3BEb3duTW9kdWxlXSxcclxuXHRwcm92aWRlcnM6IFtTbGlja0dyaWRTZXJ2aWNlLCBTbGlja0Z1bmN0aW9uTG9ja1NlcnZpY2UsIFNsaWNrR3JpZFNhbml0aXplSHRtbFBpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbGlja0dyaWRNb2R1bGUge1xyXG59XHJcbmV4cG9ydCB7IFNsaWNrR3JpZENvbHVtbk1vZGVsLCBTbGlja0dyaWRDb2x1bW5GaWx0ZXJUeXBlcywgU2xpY2tHcmlkQ29sdW1uU29ydERpcmVjdGlvbiB9XHJcbmV4cG9ydCB7IElTbGlja0dyaWRGYXZvcml0ZU1vZGVsLCBTbGlja0dyaWRGYXZvcml0ZU1vZGVsIH1cclxuZXhwb3J0IHsgSVNsaWNrR3JpZFJlcXVlc3RNb2RlbCwgU2xpY2tHcmlkUmVxdWVzdE1vZGVsIH1cclxuZXhwb3J0IHsgSVNsaWNrR3JpZFJlc3BvbnNlTW9kZWwsIFNsaWNrR3JpZFJlc3BvbnNlTW9kZWwgfVxyXG5leHBvcnQgeyBTbGlja0dyaWRDb21wb25lbnQgfVxyXG5leHBvcnQgeyBTbGlja0dyaWRDb2x1bW5UZW1wbGF0ZURpcmVjdGl2ZSB9XHJcbmV4cG9ydCB7IElTbGlja0dyaWRPcHRpb25zLCBTbGlja0dyaWRPcHRpb25zIH1cclxuXHJcbiJdfQ==
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { Injectable } from "@angular/core";
|
|
3
|
-
import { SlickGridResponseModel } from "./slick-grid-response.model";
|
|
4
|
-
import { HttpClient } from "@angular/common/http";
|
|
5
|
-
import { SlickUtilsService } from "../utils/slick-utils.service";
|
|
6
|
-
export class SlickGridService {
|
|
7
|
-
constructor(http) {
|
|
8
|
-
this.http = http;
|
|
9
|
-
}
|
|
10
|
-
getDataFromServer(requestModel) {
|
|
11
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
12
|
-
try {
|
|
13
|
-
let params = {};
|
|
14
|
-
if (requestModel.additionalParams)
|
|
15
|
-
params.additionalParams = requestModel.additionalParams;
|
|
16
|
-
// If the user has a custom search string, add it to the params here
|
|
17
|
-
if (requestModel.searchString)
|
|
18
|
-
params.searchString = requestModel.searchString;
|
|
19
|
-
if (requestModel.recordsPerPage)
|
|
20
|
-
params.recordsPerPage = requestModel.recordsPerPage;
|
|
21
|
-
params.page = (requestModel.page === null || requestModel.page === undefined) ? 1 : requestModel.page;
|
|
22
|
-
if (requestModel.sortColumn) {
|
|
23
|
-
params.sortColumn = requestModel.sortColumn;
|
|
24
|
-
params.sortDirection = requestModel.sortDirection;
|
|
25
|
-
}
|
|
26
|
-
delete params.columnSearchValues;
|
|
27
|
-
if (requestModel.columnSearchValues)
|
|
28
|
-
params.columnSearchValues = requestModel.columnSearchValues;
|
|
29
|
-
let data = yield this.http.post(requestModel.url, params, { headers: requestModel.httpHeaders }).toPromise();
|
|
30
|
-
data = SlickUtilsService.dateSanitize(data);
|
|
31
|
-
return Promise.resolve(data);
|
|
32
|
-
}
|
|
33
|
-
catch (error) {
|
|
34
|
-
console.error(error);
|
|
35
|
-
return Promise.reject(error);
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
getDataFromDataObj(requestModel, data) {
|
|
40
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
-
try {
|
|
42
|
-
let responseModel = new SlickGridResponseModel();
|
|
43
|
-
if (!data || data.length === 0) {
|
|
44
|
-
responseModel.totalRecords = 0;
|
|
45
|
-
responseModel.data = [];
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
responseModel.totalRecords = data.length;
|
|
49
|
-
let page = (requestModel.page === null || requestModel.page === undefined) ? 1 : requestModel.page;
|
|
50
|
-
let startIndex = (page - 1) * requestModel.recordsPerPage;
|
|
51
|
-
let endIndex = startIndex + requestModel.recordsPerPage;
|
|
52
|
-
if (endIndex > data.length)
|
|
53
|
-
endIndex = data.length;
|
|
54
|
-
responseModel.data = data.slice(startIndex, endIndex);
|
|
55
|
-
}
|
|
56
|
-
return Promise.resolve(responseModel);
|
|
57
|
-
}
|
|
58
|
-
catch (error) {
|
|
59
|
-
console.error(error);
|
|
60
|
-
return Promise.reject(error);
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
SlickGridService.decorators = [
|
|
66
|
-
{ type: Injectable }
|
|
67
|
-
];
|
|
68
|
-
/** @nocollapse */
|
|
69
|
-
SlickGridService.ctorParameters = () => [
|
|
70
|
-
{ type: HttpClient }
|
|
71
|
-
];
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stZ3JpZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stZ3JpZC9zbGljay1ncmlkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBZSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR2pFLE1BQU0sT0FBTyxnQkFBZ0I7SUFDNUIsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUFJLENBQUM7SUFFbkMsaUJBQWlCLENBQUUsWUFBbUM7O1lBQzNELElBQUk7Z0JBQ0gsSUFBSSxNQUFNLEdBQVEsRUFBRSxDQUFDO2dCQUNyQixJQUFJLFlBQVksQ0FBQyxnQkFBZ0I7b0JBQ2hDLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsZ0JBQWdCLENBQUM7Z0JBRXpELG9FQUFvRTtnQkFDcEUsSUFBSSxZQUFZLENBQUMsWUFBWTtvQkFDNUIsTUFBTSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDO2dCQUVqRCxJQUFJLFlBQVksQ0FBQyxjQUFjO29CQUM5QixNQUFNLENBQUMsY0FBYyxHQUFHLFlBQVksQ0FBQyxjQUFjLENBQUM7Z0JBRXJELE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxZQUFZLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7Z0JBRXJHLElBQUksWUFBWSxDQUFDLFVBQVUsRUFBRTtvQkFDNUIsTUFBTSxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDO29CQUM1QyxNQUFNLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQyxhQUFhLENBQUM7aUJBQ2xEO2dCQUVELE9BQU8sTUFBTSxDQUFDLGtCQUFrQixDQUFDO2dCQUNqQyxJQUFJLFlBQVksQ0FBQyxrQkFBa0I7b0JBQ2xDLE1BQU0sQ0FBQyxrQkFBa0IsR0FBRyxZQUFZLENBQUMsa0JBQWtCLENBQUM7Z0JBRTdELElBQUksSUFBSSxHQUFvRCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRyxDQUFDO2dCQUMvSixJQUFJLEdBQUcsaUJBQWlCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDN0I7WUFDRCxPQUFPLEtBQUssRUFBRTtnQkFDYixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNyQixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDN0I7UUFFRixDQUFDO0tBQUE7SUFFSyxrQkFBa0IsQ0FBQyxZQUFtQyxFQUFFLElBQVc7O1lBQ3hFLElBQUk7Z0JBQ0gsSUFBSSxhQUFhLEdBQTJCLElBQUksc0JBQXNCLEVBQUUsQ0FBQztnQkFFekUsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQkFDL0IsYUFBYSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7b0JBQy9CLGFBQWEsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO2lCQUN4QjtxQkFDSTtvQkFDSixhQUFhLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7b0JBQ3pDLElBQUksSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksWUFBWSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO29CQUVuRyxJQUFJLFVBQVUsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUMsY0FBYyxDQUFDO29CQUMxRCxJQUFJLFFBQVEsR0FBRyxVQUFVLEdBQUcsWUFBWSxDQUFDLGNBQWMsQ0FBQztvQkFDeEQsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU07d0JBQ3pCLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO29CQUN4QixhQUFhLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2lCQUN0RDtnQkFFRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDdEM7WUFDRCxPQUFPLEtBQUssRUFBRTtnQkFDYixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNyQixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDN0I7UUFFRixDQUFDO0tBQUE7OztZQWpFRCxVQUFVOzs7O1lBSEYsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBTbGlja0dyaWRSZXF1ZXN0TW9kZWwgfSBmcm9tIFwiLi9zbGljay1ncmlkLXJlcXVlc3QubW9kZWxcIjtcclxuaW1wb3J0IHsgU2xpY2tHcmlkUmVzcG9uc2VNb2RlbCB9IGZyb20gXCIuL3NsaWNrLWdyaWQtcmVzcG9uc2UubW9kZWxcIjtcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgU2xpY2tVdGlsc1NlcnZpY2UgfSBmcm9tIFwiLi4vdXRpbHMvc2xpY2stdXRpbHMuc2VydmljZVwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2xpY2tHcmlkU2VydmljZSB7XHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7IH1cclxuXHJcblx0YXN5bmMgZ2V0RGF0YUZyb21TZXJ2ZXIgKHJlcXVlc3RNb2RlbDogU2xpY2tHcmlkUmVxdWVzdE1vZGVsKTogUHJvbWlzZTxTbGlja0dyaWRSZXNwb25zZU1vZGVsPiB7XHJcblx0XHR0cnkge1xyXG5cdFx0XHRsZXQgcGFyYW1zID0gPGFueT57fTtcclxuXHRcdFx0aWYgKHJlcXVlc3RNb2RlbC5hZGRpdGlvbmFsUGFyYW1zKVxyXG5cdFx0XHRcdHBhcmFtcy5hZGRpdGlvbmFsUGFyYW1zID0gcmVxdWVzdE1vZGVsLmFkZGl0aW9uYWxQYXJhbXM7XHJcblxyXG5cdFx0XHQvLyBJZiB0aGUgdXNlciBoYXMgYSBjdXN0b20gc2VhcmNoIHN0cmluZywgYWRkIGl0IHRvIHRoZSBwYXJhbXMgaGVyZVxyXG5cdFx0XHRpZiAocmVxdWVzdE1vZGVsLnNlYXJjaFN0cmluZylcclxuXHRcdFx0XHRwYXJhbXMuc2VhcmNoU3RyaW5nID0gcmVxdWVzdE1vZGVsLnNlYXJjaFN0cmluZztcclxuXHJcblx0XHRcdGlmIChyZXF1ZXN0TW9kZWwucmVjb3Jkc1BlclBhZ2UpXHJcblx0XHRcdFx0cGFyYW1zLnJlY29yZHNQZXJQYWdlID0gcmVxdWVzdE1vZGVsLnJlY29yZHNQZXJQYWdlO1xyXG5cclxuXHRcdFx0cGFyYW1zLnBhZ2UgPSAocmVxdWVzdE1vZGVsLnBhZ2UgPT09IG51bGwgfHwgcmVxdWVzdE1vZGVsLnBhZ2UgPT09IHVuZGVmaW5lZCkgPyAxOiByZXF1ZXN0TW9kZWwucGFnZTtcclxuXHJcblx0XHRcdGlmIChyZXF1ZXN0TW9kZWwuc29ydENvbHVtbikge1xyXG5cdFx0XHRcdHBhcmFtcy5zb3J0Q29sdW1uID0gcmVxdWVzdE1vZGVsLnNvcnRDb2x1bW47XHJcblx0XHRcdFx0cGFyYW1zLnNvcnREaXJlY3Rpb24gPSByZXF1ZXN0TW9kZWwuc29ydERpcmVjdGlvbjtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0ZGVsZXRlIHBhcmFtcy5jb2x1bW5TZWFyY2hWYWx1ZXM7XHJcblx0XHRcdGlmIChyZXF1ZXN0TW9kZWwuY29sdW1uU2VhcmNoVmFsdWVzKVxyXG5cdFx0XHRcdHBhcmFtcy5jb2x1bW5TZWFyY2hWYWx1ZXMgPSByZXF1ZXN0TW9kZWwuY29sdW1uU2VhcmNoVmFsdWVzO1xyXG5cclxuXHRcdFx0bGV0IGRhdGE6IFNsaWNrR3JpZFJlc3BvbnNlTW9kZWwgPSAoPFNsaWNrR3JpZFJlc3BvbnNlTW9kZWw+YXdhaXQgdGhpcy5odHRwLnBvc3QocmVxdWVzdE1vZGVsLnVybCwgcGFyYW1zLCB7IGhlYWRlcnM6IHJlcXVlc3RNb2RlbC5odHRwSGVhZGVycyB9KS50b1Byb21pc2UoKSk7XHJcblx0XHRcdGRhdGEgPSBTbGlja1V0aWxzU2VydmljZS5kYXRlU2FuaXRpemUoZGF0YSk7XHJcblx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoZGF0YSk7XHJcblx0XHR9XHJcblx0XHRjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0Y29uc29sZS5lcnJvcihlcnJvcik7XHJcblx0XHRcdHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7XHJcblx0XHR9XHJcblxyXG5cdH1cclxuXHJcblx0YXN5bmMgZ2V0RGF0YUZyb21EYXRhT2JqKHJlcXVlc3RNb2RlbDogU2xpY2tHcmlkUmVxdWVzdE1vZGVsLCBkYXRhOiBhbnlbXSk6IFByb21pc2U8U2xpY2tHcmlkUmVzcG9uc2VNb2RlbD4ge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0bGV0IHJlc3BvbnNlTW9kZWw6IFNsaWNrR3JpZFJlc3BvbnNlTW9kZWwgPSBuZXcgU2xpY2tHcmlkUmVzcG9uc2VNb2RlbCgpO1xyXG5cdFx0XHRcclxuXHRcdFx0aWYgKCFkYXRhIHx8IGRhdGEubGVuZ3RoID09PSAwKSB7XHJcblx0XHRcdFx0cmVzcG9uc2VNb2RlbC50b3RhbFJlY29yZHMgPSAwO1xyXG5cdFx0XHRcdHJlc3BvbnNlTW9kZWwuZGF0YSA9IFtdO1xyXG5cdFx0XHR9XHJcblx0XHRcdGVsc2Uge1xyXG5cdFx0XHRcdHJlc3BvbnNlTW9kZWwudG90YWxSZWNvcmRzID0gZGF0YS5sZW5ndGg7XHJcblx0XHRcdFx0bGV0IHBhZ2UgPSAocmVxdWVzdE1vZGVsLnBhZ2UgPT09IG51bGwgfHwgcmVxdWVzdE1vZGVsLnBhZ2UgPT09IHVuZGVmaW5lZCkgPyAxIDogcmVxdWVzdE1vZGVsLnBhZ2U7XHJcblxyXG5cdFx0XHRcdGxldCBzdGFydEluZGV4ID0gKHBhZ2UgLSAxKSAqIHJlcXVlc3RNb2RlbC5yZWNvcmRzUGVyUGFnZTtcclxuXHRcdFx0XHRsZXQgZW5kSW5kZXggPSBzdGFydEluZGV4ICsgcmVxdWVzdE1vZGVsLnJlY29yZHNQZXJQYWdlO1xyXG5cdFx0XHRcdGlmIChlbmRJbmRleCA+IGRhdGEubGVuZ3RoKVxyXG5cdFx0XHRcdFx0ZW5kSW5kZXggPSBkYXRhLmxlbmd0aDtcclxuXHRcdFx0XHRyZXNwb25zZU1vZGVsLmRhdGEgPSBkYXRhLnNsaWNlKHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXNwb25zZU1vZGVsKTtcclxuXHRcdH1cclxuXHRcdGNhdGNoIChlcnJvcikge1xyXG5cdFx0XHRjb25zb2xlLmVycm9yKGVycm9yKTtcclxuXHRcdFx0cmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9yKTtcclxuXHRcdH1cclxuXHJcblx0fVxyXG59Il19
|
|
@@ -1,356 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { Component, NgZone, Input, Output, EventEmitter, ElementRef, ViewChild, forwardRef } from "@angular/core";
|
|
3
|
-
import { SlickMultiSelectService } from "./slick-multi-select.service";
|
|
4
|
-
import { NG_VALUE_ACCESSOR } from "@angular/forms";
|
|
5
|
-
import { SlickSleepService } from "../utils/slick-sleep.service";
|
|
6
|
-
import { SlickUtilsService } from "../utils/slick-utils.service";
|
|
7
|
-
import { SlickInitService } from "../utils/slick-init.service";
|
|
8
|
-
export class SlickMultiSelectComponent {
|
|
9
|
-
constructor(ngZone, slickMultiSelectService, el) {
|
|
10
|
-
this.ngZone = ngZone;
|
|
11
|
-
this.slickMultiSelectService = slickMultiSelectService;
|
|
12
|
-
this.el = el;
|
|
13
|
-
this.placeholder = '';
|
|
14
|
-
this.idFieldName = "id";
|
|
15
|
-
this.textFieldName = "text";
|
|
16
|
-
this.disabled = false;
|
|
17
|
-
this.allowEmpty = 'true';
|
|
18
|
-
this.width = '100%';
|
|
19
|
-
this.listWidth = '100%';
|
|
20
|
-
this.height = '300px';
|
|
21
|
-
this.showLoadingMessage = false;
|
|
22
|
-
this.onExpand = new EventEmitter();
|
|
23
|
-
this.onCollapse = new EventEmitter();
|
|
24
|
-
this.onSelect = new EventEmitter();
|
|
25
|
-
// This is necessary so that the scroll and resize events can add and remove the event properly,
|
|
26
|
-
// as well as getting the correct ES6 function
|
|
27
|
-
this.fnDocumentClick = (e) => this.documentClick(e);
|
|
28
|
-
this.keyboardActive = false;
|
|
29
|
-
this.expanded = false;
|
|
30
|
-
this.filterText = '';
|
|
31
|
-
this.isAndroid = ((SlickInitService.getPlatform() || '').toLowerCase() === 'android');
|
|
32
|
-
this.skipClickExpand = false;
|
|
33
|
-
this.propagateChange = (_) => { };
|
|
34
|
-
this.uuid = SlickUtilsService.newGuid();
|
|
35
|
-
}
|
|
36
|
-
ngAfterViewInit() {
|
|
37
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
-
// Remove this from the inline version and put it on the body so that it doesn't hide behind the bottom
|
|
39
|
-
// of a div when it expands beyond the bottom.
|
|
40
|
-
this.multiSelectList.nativeElement.remove(this.multiSelectList);
|
|
41
|
-
document.body.appendChild(this.multiSelectList.nativeElement);
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
// this is the initial value set to the component
|
|
45
|
-
writeValue(obj) {
|
|
46
|
-
if (obj)
|
|
47
|
-
this.selectedIds = obj;
|
|
48
|
-
else
|
|
49
|
-
this.selectedIds = null;
|
|
50
|
-
this.visibleItems = this.slickMultiSelectService.getVisibleItems(this.items, this.selectedIds, this.idFieldName, this.textFieldName);
|
|
51
|
-
this.selectedItems = this.slickMultiSelectService.getSelectedItems(this.items, this.selectedIds, this.idFieldName, this.textFieldName);
|
|
52
|
-
}
|
|
53
|
-
// registers 'fn' that will be fired when changes are made
|
|
54
|
-
// this is how we emit the changes back to the form
|
|
55
|
-
registerOnChange(fn) {
|
|
56
|
-
this.propagateChange = fn;
|
|
57
|
-
}
|
|
58
|
-
// not used, used for touch input
|
|
59
|
-
registerOnTouched() { }
|
|
60
|
-
ngOnChanges(changes) {
|
|
61
|
-
if (changes.isMobile) {
|
|
62
|
-
this.isMobile = (this.isMobile.toString().toLowerCase() === 'true') ? true : false;
|
|
63
|
-
}
|
|
64
|
-
if (changes.items) {
|
|
65
|
-
this.visibleItems = this.slickMultiSelectService.getVisibleItems(this.items, this.selectedIds, this.idFieldName, this.textFieldName);
|
|
66
|
-
this.selectedItems = this.slickMultiSelectService.getSelectedItems(this.items, this.selectedIds, this.idFieldName, this.textFieldName);
|
|
67
|
-
if (this.selectedTextInputRef && document.activeElement == this.selectedTextInputRef.nativeElement)
|
|
68
|
-
this.expand();
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
ngOnDestroy() {
|
|
72
|
-
this.collapse();
|
|
73
|
-
document.removeEventListener("click", this.fnDocumentClick, true);
|
|
74
|
-
// it's okay if this fails. It was already removed
|
|
75
|
-
try {
|
|
76
|
-
document.body.removeChild(this.multiSelectList.nativeElement);
|
|
77
|
-
}
|
|
78
|
-
catch (_a) { }
|
|
79
|
-
}
|
|
80
|
-
onKeyboardIconClicked() {
|
|
81
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
82
|
-
if (this.keyboardActive === true) {
|
|
83
|
-
this.collapse();
|
|
84
|
-
this.keyboardActive = false;
|
|
85
|
-
this.selectedText = '';
|
|
86
|
-
this.selectedTextInputRef.nativeElement.value = '';
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
this.keyboardActive = true;
|
|
90
|
-
yield SlickSleepService.sleep();
|
|
91
|
-
this.selectedTextInputRef.nativeElement.focus();
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
expand() {
|
|
96
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
97
|
-
if (this.disabled)
|
|
98
|
-
return;
|
|
99
|
-
this.reposition();
|
|
100
|
-
yield SlickSleepService.sleep();
|
|
101
|
-
this.multiSelectList.nativeElement.style.display = "inline-block";
|
|
102
|
-
let selectedItems = this.multiSelectList.nativeElement.getElementsByClassName("selected");
|
|
103
|
-
if (selectedItems && selectedItems.length > 0)
|
|
104
|
-
selectedItems[0].scrollIntoView({ block: 'nearest' });
|
|
105
|
-
this.expanded = true;
|
|
106
|
-
// This is necessary, otherwise `this` in the reposition function will be window
|
|
107
|
-
// and not the component.
|
|
108
|
-
// Since angular has no way to use the third parameter, I'm doing this in raw js
|
|
109
|
-
document.addEventListener("click", this.fnDocumentClick, true);
|
|
110
|
-
if (this.onExpand)
|
|
111
|
-
this.onExpand.emit();
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
collapse() {
|
|
115
|
-
this.expanded = false;
|
|
116
|
-
this.multiSelectList.nativeElement.style.display = "none";
|
|
117
|
-
// Since angular has no way to use the third parameter, I'm doing this in raw js
|
|
118
|
-
document.removeEventListener("click", this.fnDocumentClick, true);
|
|
119
|
-
if (this.onCollapse)
|
|
120
|
-
this.onCollapse.emit();
|
|
121
|
-
}
|
|
122
|
-
reposition() {
|
|
123
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
124
|
-
yield SlickSleepService.sleep();
|
|
125
|
-
let rect = this.containerDiv.nativeElement.getBoundingClientRect();
|
|
126
|
-
let containerLeft = rect.left;
|
|
127
|
-
let containerTop = rect.top;
|
|
128
|
-
let containerHeight = this.containerDiv.nativeElement.offsetHeight;
|
|
129
|
-
let containerWidth = rect.width;
|
|
130
|
-
this.width = containerWidth;
|
|
131
|
-
if (this.listWidth === '100%')
|
|
132
|
-
this.listGroupWidth = this.width;
|
|
133
|
-
else if (this.listWidth === 'auto')
|
|
134
|
-
this.listGroupWidth = "auto";
|
|
135
|
-
else
|
|
136
|
-
this.listGroupWidth = this.listWidth;
|
|
137
|
-
this.top = (containerTop + containerHeight);
|
|
138
|
-
this.left = containerLeft;
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
documentClick(e) {
|
|
142
|
-
if (!this.expanded || !e.target)
|
|
143
|
-
return;
|
|
144
|
-
// If they clicked on the keyboard icon, don't do anything
|
|
145
|
-
if (SlickUtilsService.checkParentClassExists(e.target, "slick-multi-select_mobile-container") &&
|
|
146
|
-
SlickUtilsService.checkParentIdExists(e.target, "slick-multi-select_" + this.uuid))
|
|
147
|
-
return;
|
|
148
|
-
const clickedInside = SlickUtilsService.checkParentClassExists(e.target, "slick-multi-select_list-item");
|
|
149
|
-
if (!clickedInside) {
|
|
150
|
-
this.keyboardActive = false;
|
|
151
|
-
this.selectedText = '';
|
|
152
|
-
this.selectedTextInputRef.nativeElement.value = '';
|
|
153
|
-
this.collapse();
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
selectItem(id) {
|
|
157
|
-
let item = this.slickMultiSelectService.getSelectedItem(this.visibleItems, id);
|
|
158
|
-
if (item) {
|
|
159
|
-
if (this.onSelect)
|
|
160
|
-
this.onSelect.emit(item);
|
|
161
|
-
if (!this.selectedIds)
|
|
162
|
-
this.selectedIds = [];
|
|
163
|
-
this.selectedIds.push(id);
|
|
164
|
-
this.propagateChange(this.selectedIds);
|
|
165
|
-
this.visibleItems = this.slickMultiSelectService.getVisibleItems(this.items, this.selectedIds, this.idFieldName, this.textFieldName);
|
|
166
|
-
this.selectedItems = this.slickMultiSelectService.getSelectedItems(this.items, this.selectedIds, this.idFieldName, this.textFieldName);
|
|
167
|
-
this.reposition();
|
|
168
|
-
this.selectedText = '';
|
|
169
|
-
this.selectedTextInputRef.nativeElement.value = '';
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
setFocus(showMobileKeyboard = false) {
|
|
173
|
-
this.selectedTextInputRef.nativeElement.focus();
|
|
174
|
-
if (showMobileKeyboard === true)
|
|
175
|
-
this.keyboardActive = true;
|
|
176
|
-
}
|
|
177
|
-
onFocus() {
|
|
178
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
179
|
-
this.visibleItems = this.slickMultiSelectService.getVisibleItems(this.items, this.selectedIds, this.idFieldName, this.textFieldName);
|
|
180
|
-
this.selectedItems = this.slickMultiSelectService.getSelectedItems(this.items, this.selectedIds, this.idFieldName, this.textFieldName);
|
|
181
|
-
this.filterText = '';
|
|
182
|
-
this.selectedTextInputRef.nativeElement.focus();
|
|
183
|
-
// This is kind of hacky, but if onFocus is called by clicking the multiSelect, the onMultiSelectClick event is called as well
|
|
184
|
-
// That function will expand or collapse, depending on the state. Since this expands, it thinks it needs to collapse.
|
|
185
|
-
// So fake it out and tell it NOT to collapse. BUT, if we came in from tabbing into the field, then it would mess up
|
|
186
|
-
// the click event. So only wait for 1/2 second.
|
|
187
|
-
this.skipClickExpand = true;
|
|
188
|
-
this.expand();
|
|
189
|
-
yield SlickSleepService.sleep(500);
|
|
190
|
-
this.skipClickExpand = false;
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
onKeyUp(e) {
|
|
194
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
195
|
-
e.stopPropagation();
|
|
196
|
-
e.preventDefault();
|
|
197
|
-
// If this is android, it won't pass us any key data so just read the entire input element
|
|
198
|
-
if (this.isAndroid === true) {
|
|
199
|
-
yield SlickSleepService.sleep();
|
|
200
|
-
this.filterText = this.selectedTextInputRef.nativeElement.value;
|
|
201
|
-
this.filterSearch();
|
|
202
|
-
return;
|
|
203
|
-
}
|
|
204
|
-
// Tab/enter
|
|
205
|
-
if (e.which === 9 || e.which === 13) {
|
|
206
|
-
if (this.filterText && this.selectedIndex !== null && this.selectedIndex !== undefined) {
|
|
207
|
-
this.selectItem(this.visibleItems[this.selectedIndex].id);
|
|
208
|
-
this.filterText = '';
|
|
209
|
-
this.selectedIndex = null;
|
|
210
|
-
return false;
|
|
211
|
-
}
|
|
212
|
-
this.collapse();
|
|
213
|
-
this.filterText = '';
|
|
214
|
-
this.selectedText = '';
|
|
215
|
-
this.selectedTextInputRef.nativeElement.value = '';
|
|
216
|
-
this.selectedIndex = null;
|
|
217
|
-
return true;
|
|
218
|
-
}
|
|
219
|
-
// Esc
|
|
220
|
-
if (e.which === 27) {
|
|
221
|
-
this.filterText = '';
|
|
222
|
-
this.selectedText = '';
|
|
223
|
-
this.selectedTextInputRef.nativeElement.value = '';
|
|
224
|
-
this.collapse();
|
|
225
|
-
return false;
|
|
226
|
-
}
|
|
227
|
-
// Backspace
|
|
228
|
-
if (e.which === 8 && this.filterText) {
|
|
229
|
-
this.filterText = this.filterText.substring(0, this.filterText.length - 1);
|
|
230
|
-
if (this.filterText.length === 0) {
|
|
231
|
-
this.selectedText = '';
|
|
232
|
-
this.selectedTextInputRef.nativeElement.value = '';
|
|
233
|
-
this.selectedIndex = null;
|
|
234
|
-
this.visibleItems = this.slickMultiSelectService.getVisibleItems(this.items, this.selectedIds, this.idFieldName, this.textFieldName);
|
|
235
|
-
this.selectedItems = this.slickMultiSelectService.getSelectedItems(this.items, this.selectedIds, this.idFieldName, this.textFieldName);
|
|
236
|
-
}
|
|
237
|
-
else
|
|
238
|
-
this.filterSearch();
|
|
239
|
-
return false;
|
|
240
|
-
}
|
|
241
|
-
// Arrowup
|
|
242
|
-
if (e.which === 38) {
|
|
243
|
-
if (this.selectedIndex === null || this.selectedIndex === undefined)
|
|
244
|
-
this.selectedIndex = 0;
|
|
245
|
-
if (this.selectedIndex > 0)
|
|
246
|
-
this.selectedIndex--;
|
|
247
|
-
return false;
|
|
248
|
-
}
|
|
249
|
-
// Arrowdown
|
|
250
|
-
if (e.which === 40) {
|
|
251
|
-
if (this.selectedIndex === null || this.selectedIndex === undefined)
|
|
252
|
-
this.selectedIndex = -1;
|
|
253
|
-
if (!this.expanded || !this.visibleItems)
|
|
254
|
-
this.expand();
|
|
255
|
-
if (this.selectedIndex < this.visibleItems.length - 1)
|
|
256
|
-
this.selectedIndex++;
|
|
257
|
-
return false;
|
|
258
|
-
}
|
|
259
|
-
// If F1 is pressed, key length will be 2
|
|
260
|
-
if (e.key.length > 1 || e.ctrlKey || e.altKey)
|
|
261
|
-
return false;
|
|
262
|
-
if (e.which >= 32 && e.which <= 126) {
|
|
263
|
-
this.filterText += e.key;
|
|
264
|
-
this.filterSearch();
|
|
265
|
-
}
|
|
266
|
-
return true;
|
|
267
|
-
});
|
|
268
|
-
}
|
|
269
|
-
filterSearch() {
|
|
270
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
271
|
-
if (!this.expanded)
|
|
272
|
-
this.expand();
|
|
273
|
-
this.visibleItems = this.slickMultiSelectService.getVisibleItems(this.items, this.selectedIds, this.idFieldName, this.textFieldName);
|
|
274
|
-
this.visibleItems = this.visibleItems.filter(x => x.text.toLowerCase().indexOf(this.filterText.toLowerCase()) === 0);
|
|
275
|
-
if (this.visibleItems.length > 0) {
|
|
276
|
-
this.selectedIndex = 0;
|
|
277
|
-
this.selectedText = this.visibleItems[0].text;
|
|
278
|
-
if (this.isAndroid === false) {
|
|
279
|
-
yield SlickSleepService.sleep();
|
|
280
|
-
this.selectedTextInputRef.nativeElement.value = this.selectedText;
|
|
281
|
-
this.selectedTextInputRef.nativeElement.setSelectionRange(this.filterText.length, this.selectedText.length);
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
else {
|
|
285
|
-
this.selectedIndex = null;
|
|
286
|
-
if (this.isAndroid === false) {
|
|
287
|
-
this.selectedText = this.filterText;
|
|
288
|
-
this.selectedTextInputRef.nativeElement.value = this.selectedText;
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
this.reposition();
|
|
292
|
-
});
|
|
293
|
-
}
|
|
294
|
-
onMultiSelectClicked() {
|
|
295
|
-
if (this.skipClickExpand === true) {
|
|
296
|
-
this.skipClickExpand = false;
|
|
297
|
-
return;
|
|
298
|
-
}
|
|
299
|
-
this.selectedTextInputRef.nativeElement.focus();
|
|
300
|
-
if (this.expanded === false)
|
|
301
|
-
this.expand();
|
|
302
|
-
else
|
|
303
|
-
this.collapse();
|
|
304
|
-
}
|
|
305
|
-
onItemClick(item) {
|
|
306
|
-
this.selectItem(item.id);
|
|
307
|
-
if (this.keyboardActive === true)
|
|
308
|
-
this.selectedTextInputRef.nativeElement.focus();
|
|
309
|
-
}
|
|
310
|
-
onRemoveItem(item) {
|
|
311
|
-
this.selectedIds = this.selectedIds.filter(id => id !== item.id);
|
|
312
|
-
this.visibleItems = this.slickMultiSelectService.getVisibleItems(this.items, this.selectedIds, this.idFieldName, this.textFieldName);
|
|
313
|
-
this.selectedItems = this.slickMultiSelectService.getSelectedItems(this.items, this.selectedIds, this.idFieldName, this.textFieldName);
|
|
314
|
-
this.propagateChange(this.selectedIds);
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
SlickMultiSelectComponent.decorators = [
|
|
318
|
-
{ type: Component, args: [{
|
|
319
|
-
selector: 'slick-multi-select',
|
|
320
|
-
template: "<div #containerDiv id=\"slick-multi-select_{{uuid}}\" attr.data-uuid=\"{{uuid}}\" class=\"slick-multi-select\" [class.mobile]=\"isMobile === true\" [class.open]=\"expanded\">\r\n\t<div class=\"slick-multi-select_input-container\">\r\n\t\t<div *ngIf=\"disabled === false\" style=\"cursor: pointer !important; flex-grow: 1;\" [ngClass]=\"{ 'slick-multi-select_mobile': isMobile === true }\" (click)=\"onMultiSelectClicked()\">\r\n\t\t\t<div *ngFor=\"let selectedItem of selectedItems\" class=\"slick-multi-select_selected-item card\"><div class=\"slick-multi-select_remove\" (click)=\"onRemoveItem(selectedItem)\"><i class=\"fas fa-times-circle bg-white text-danger\"></i></div>{{selectedItem.text}}</div>\r\n\t\t\t<input #selectedTextInputRef *ngIf=\"!isMobile\" [attr.tabindex]=\"tabindex\" [ngClass]=\"{'slick-multi-select_show-selected-text': (keyboardActive || (selectedText && selectedText.length > 0)) }\" (keyup)=\"onKeyUp($event)\" (focus)=\"onFocus()\" ng-disabled='disabled' readonly [placeholder]='placeholder' />\r\n\t\t\t<input #selectedTextInputRef *ngIf=\"isMobile === true\" [ngClass]=\"{'slick-multi-select_show-selected-text': (keyboardActive || (selectedText && selectedText.length > 0)) }\" (keyup)=\"onKeyUp($event)\" (focus)=\"onFocus()\" />\r\n\t\t</div>\r\n\t\t<div *ngIf=\"disabled === false && isMobile === true\" class=\"slick-multi-select_mobile-container\">\r\n\t\t\t<i class=\"far fa-keyboard\" style=\"cursor: pointer\" (click)=\"onKeyboardIconClicked()\"></i>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<div *ngIf=\"disabled === true\" class='input-group'>\r\n\t\t<div *ngFor=\"let selectedItem of selectedItems\" class=\"slick-multi-select_selected-item card\">{{selectedItem.text}}</div>\r\n\t</div>\r\n\r\n\t<ul #multiSelectList id=\"slick-multi-select-list_{{uuid}}\" class='slick-multi-select-list-group dropdown-menu' [style.width]=\"listGroupWidth\" [style.visibility]=\"(expanded === true) ? 'visible' : 'hidden'\" [style.opacity]=\"(expanded === true) ? '1' : '0'\" [style.max-height]=\"height\" [style.width.px]=\"listGroupWidth\" [style.left.px]=\"left\" [style.top.px]=\"top\">\r\n\t\t<li *ngFor=\"let item of visibleItems; let index = index;\" (mouseover)=\"selectedIndex = index\" (click)=\"onItemClick(item)\" [class.card-header]=\"selectedIndex === index\" class=\"dropdown-item slick-multi-select_list-item\">{{item.text}}</li>\r\n\t</ul>\r\n</div>",
|
|
321
|
-
providers: [SlickMultiSelectService,
|
|
322
|
-
{
|
|
323
|
-
provide: NG_VALUE_ACCESSOR,
|
|
324
|
-
useExisting: forwardRef(() => SlickMultiSelectComponent),
|
|
325
|
-
multi: true,
|
|
326
|
-
}]
|
|
327
|
-
},] }
|
|
328
|
-
];
|
|
329
|
-
/** @nocollapse */
|
|
330
|
-
SlickMultiSelectComponent.ctorParameters = () => [
|
|
331
|
-
{ type: NgZone },
|
|
332
|
-
{ type: SlickMultiSelectService },
|
|
333
|
-
{ type: ElementRef }
|
|
334
|
-
];
|
|
335
|
-
SlickMultiSelectComponent.propDecorators = {
|
|
336
|
-
placeholder: [{ type: Input }],
|
|
337
|
-
items: [{ type: Input }],
|
|
338
|
-
idFieldName: [{ type: Input }],
|
|
339
|
-
textFieldName: [{ type: Input }],
|
|
340
|
-
disabled: [{ type: Input }],
|
|
341
|
-
allowEmpty: [{ type: Input }],
|
|
342
|
-
width: [{ type: Input }],
|
|
343
|
-
listWidth: [{ type: Input }],
|
|
344
|
-
height: [{ type: Input }],
|
|
345
|
-
showLoadingMessage: [{ type: Input }],
|
|
346
|
-
showDebug: [{ type: Input }],
|
|
347
|
-
tabindex: [{ type: Input }],
|
|
348
|
-
isMobile: [{ type: Input }],
|
|
349
|
-
onExpand: [{ type: Output }],
|
|
350
|
-
onCollapse: [{ type: Output }],
|
|
351
|
-
onSelect: [{ type: Output }],
|
|
352
|
-
containerDiv: [{ type: ViewChild, args: ["containerDiv",] }],
|
|
353
|
-
multiSelectList: [{ type: ViewChild, args: ["multiSelectList",] }],
|
|
354
|
-
selectedTextInputRef: [{ type: ViewChild, args: ["selectedTextInputRef",] }]
|
|
355
|
-
};
|
|
356
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stbXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3NsaWNrLW11bHRpLXNlbGVjdC9zbGljay1tdWx0aS1zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQXNELFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEssT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBWS9ELE1BQU0sT0FBTyx5QkFBeUI7SUEyQ3JDLFlBQW9CLE1BQWMsRUFDekIsdUJBQWdELEVBQ2hELEVBQWM7UUFGSCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3pCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQTVDZCxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUV6QixnQkFBVyxHQUFXLElBQUksQ0FBQztRQUMzQixrQkFBYSxHQUFXLE1BQU0sQ0FBQztRQUMvQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGVBQVUsR0FBVyxNQUFNLENBQUM7UUFDNUIsVUFBSyxHQUFXLE1BQU0sQ0FBQztRQUN2QixjQUFTLEdBQVcsTUFBTSxDQUFDO1FBQzNCLFdBQU0sR0FBVyxPQUFPLENBQUM7UUFDekIsdUJB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QUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFdkksSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7O1lBeFlELFNBQVMsU0FBQztnQkFDVixRQUFRLEVBQUUsb0JBQW9CO2dCQUM5QixnMkVBQWdEO2dCQUNoRCxTQUFTLEVBQUUsQ0FBQyx1QkFBdUI7b0JBQ2xDO3dCQUNDLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUM7d0JBQ3hELEtBQUssRUFBRSxJQUFJO3FCQUNYLENBQUM7YUFDSDs7OztZQWhCbUIsTUFBTTtZQUNqQix1QkFBdUI7WUFEeUIsVUFBVTs7OzBCQWtCakUsS0FBSztvQkFDTCxLQUFLOzBCQUNMLEtBQUs7NEJBQ0wsS0FBSzt1QkFDTCxLQUFLO3lCQUNMLEtBQUs7b0JBQ0wsS0FBSzt3QkFDTCxLQUFLO3FCQUNMLEtBQUs7aUNBQ0wsS0FBSzt3QkFDTCxLQUFLO3VCQUNMLEtBQUs7dUJBQ0wsS0FBSzt1QkFFTCxNQUFNO3lCQUNOLE1BQU07dUJBQ04sTUFBTTsyQkFFTixTQUFTLFNBQUMsY0FBYzs4QkFDeEIsU0FBUyxTQUFDLGlCQUFpQjttQ0FDM0IsU0FBUyxTQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgTmdab25lLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQsIGZvcndhcmRSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBTbGlja011bHRpU2VsZWN0U2VydmljZSB9IGZyb20gXCIuL3NsaWNrLW11bHRpLXNlbGVjdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBTbGlja1NsZWVwU2VydmljZSB9IGZyb20gXCIuLi91dGlscy9zbGljay1zbGVlcC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNsaWNrVXRpbHNTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL3NsaWNrLXV0aWxzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2xpY2tJbml0U2VydmljZSB9IGZyb20gXCIuLi91dGlscy9zbGljay1pbml0LnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnc2xpY2stbXVsdGktc2VsZWN0JyxcclxuXHR0ZW1wbGF0ZVVybDogJ3NsaWNrLW11bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcblx0cHJvdmlkZXJzOiBbU2xpY2tNdWx0aVNlbGVjdFNlcnZpY2UsXHJcblx0XHR7XHJcblx0XHRcdHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG5cdFx0XHR1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTbGlja011bHRpU2VsZWN0Q29tcG9uZW50KSxcclxuXHRcdFx0bXVsdGk6IHRydWUsXHJcblx0XHR9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2xpY2tNdWx0aVNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblx0QElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xyXG5cdEBJbnB1dCgpIGl0ZW1zOiBhbnlbXTtcclxuXHRASW5wdXQoKSBpZEZpZWxkTmFtZTogc3RyaW5nID0gXCJpZFwiO1xyXG5cdEBJbnB1dCgpIHRleHRGaWVsZE5hbWU6IHN0cmluZyA9IFwidGV4dFwiO1xyXG5cdEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblx0QElucHV0KCkgYWxsb3dFbXB0eTogc3RyaW5nID0gJ3RydWUnO1xyXG5cdEBJbnB1dCgpIHdpZHRoOiBzdHJpbmcgPSAnMTAwJSc7XHJcblx0QElucHV0KCkgbGlzdFdpZHRoOiBzdHJpbmcgPSAnMTAwJSc7XHJcblx0QElucHV0KCkgaGVpZ2h0OiBzdHJpbmcgPSAnMzAwcHgnO1xyXG5cdEBJbnB1dCgpIHNob3dMb2FkaW5nTWVzc2FnZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdEBJbnB1dCgpIHNob3dEZWJ1ZzogYm9vbGVhbjtcclxuXHRASW5wdXQoKSB0YWJpbmRleDogbnVtYmVyO1xyXG5cdEBJbnB1dCgpIGlzTW9iaWxlOiBib29sZWFuO1xyXG5cclxuXHRAT3V0cHV0KCkgb25FeHBhbmQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHRAT3V0cHV0KCkgb25Db2xsYXBzZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cdEBPdXRwdXQoKSBvblNlbGVjdDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcblx0QFZpZXdDaGlsZChcImNvbnRhaW5lckRpdlwiKSBjb250YWluZXJEaXY6IEVsZW1lbnRSZWY7XHJcblx0QFZpZXdDaGlsZChcIm11bHRpU2VsZWN0TGlzdFwiKSBtdWx0aVNlbGVjdExpc3Q6IEVsZW1lbnRSZWY7XHJcblx0QFZpZXdDaGlsZChcInNlbGVjdGVkVGV4dElucHV0UmVmXCIpIHNlbGVjdGVkVGV4dElucHV0UmVmOiBFbGVtZW50UmVmO1xyXG5cclxuXHQvLyBUaGlzIGlzIG5lY2Vzc2FyeSBzbyB0aGF0IHRoZSBzY3JvbGwgYW5kIHJlc2l6ZSBldmVudHMgY2FuIGFkZCBhbmQgcmVtb3ZlIHRoZSBldmVudCBwcm9wZXJseSxcclxuXHQvLyBhcyB3ZWxsIGFzIGdldHRpbmcgdGhlIGNvcnJlY3QgRVM2IGZ1bmN0aW9uXHJcblx0cHJpdmF0ZSBmbkRvY3VtZW50Q2xpY2sgPSAoZSkgPT4gdGhpcy5kb2N1bWVudENsaWNrKGUpO1xyXG5cclxuXHR1dWlkOiBzdHJpbmc7XHJcblx0c2VsZWN0ZWRJZHM6IHN0cmluZ1tdO1xyXG5cdHNlbGVjdGVkVGV4dDogc3RyaW5nO1xyXG5cdGtleWJvYXJkQWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcblx0ZXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRmaWx0ZXJUZXh0OiBzdHJpbmcgPSAnJztcclxuXHRzZWxlY3RlZEluZGV4OiBudW1iZXI7XHJcblx0c2VsZWN0ZWRJdGVtczogYW55W107XHJcblx0dmlzaWJsZUl0ZW1zOiBhbnlbXTtcclxuXHRsZWZ0OiBzdHJpbmc7XHJcblx0dG9wOiBzdHJpbmc7XHJcblx0bGlzdEdyb3VwV2lkdGg6IHN0cmluZztcclxuXHRpc0FuZHJvaWQ6IGJvb2xlYW4gPSAoKFNsaWNrSW5pdFNlcnZpY2UuZ2V0UGxhdGZvcm0oKSB8fCAnJykudG9Mb3dlckNhc2UoKSA9PT0gJ2FuZHJvaWQnKTtcclxuXHJcblx0cHJpdmF0ZSBza2lwQ2xpY2tFeHBhbmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcclxuXHRcdHByaXZhdGUgc2xpY2tNdWx0aVNlbGVjdFNlcnZpY2U6IFNsaWNrTXVsdGlTZWxlY3RTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBlbDogRWxlbWVudFJlZikge1xyXG5cdFx0dGhpcy51dWlkID0gU2xpY2tVdGlsc1NlcnZpY2UubmV3R3VpZCgpO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgbmdBZnRlclZpZXdJbml0KCkge1xyXG5cdFx0Ly8gUmVtb3ZlIHRoaXMgZnJvbSB0aGUgaW5saW5lIHZlcnNpb24gYW5kIHB1dCBpdCBvbiB0aGUgYm9keSBzbyB0aGF0IGl0IGRvZXNuJ3QgaGlkZSBiZWhpbmQgdGhlIGJvdHRvbVxyXG5cdFx0Ly8gb2YgYSBkaXYgd2hlbiBpdCBleHBhbmRzIGJleW9uZCB0aGUgYm90dG9tLlxyXG5cdFx0dGhpcy5tdWx0aVNlbGVjdExpc3QubmF0aXZlRWxlbWVudC5yZW1vdmUodGhpcy5tdWx0aVNlbGVjdExpc3QpO1xyXG5cdFx0ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLm11bHRpU2VsZWN0TGlzdC5uYXRpdmVFbGVtZW50KTtcclxuXHR9XHJcblxyXG5cdHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcclxuXHJcblx0Ly8gdGhpcyBpcyB0aGUgaW5pdGlhbCB2YWx1ZSBzZXQgdG8gdGhlIGNvbXBvbmVudFxyXG5cdHB1YmxpYyB3cml0ZVZhbHVlKG9iajogYW55KSB7XHJcblx0XHRpZiAob2JqKSBcclxuXHRcdFx0dGhpcy5zZWxlY3RlZElkcyA9IG9iajtcclxuXHRcdGVsc2VcclxuXHRcdFx0dGhpcy5zZWxlY3RlZElkcyA9IG51bGw7XHJcblxyXG5cdFx0dGhpcy52aXNpYmxlSXRlbXMgPSB0aGlzLnNsaWNrTXVsdGlTZWxlY3RTZXJ2aWNlLmdldFZpc2libGVJdGVtcyh0aGlzLml0ZW1zLCB0aGlzLnNlbGVjdGVkSWRzLCB0aGlzLmlkRmllbGROYW1lLCB0aGlzLnRleHRGaWVsZE5hbWUpO1xyXG5cdFx0dGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zbGlja011bHRpU2VsZWN0U2VydmljZS5nZXRTZWxlY3RlZEl0ZW1zKHRoaXMuaXRlbXMsIHRoaXMuc2VsZWN0ZWRJZHMsIHRoaXMuaWRGaWVsZE5hbWUsIHRoaXMudGV4dEZpZWxkTmFtZSk7XHJcblx0fVxyXG5cclxuXHQvLyByZWdpc3RlcnMgJ2ZuJyB0aGF0IHdpbGwgYmUgZmlyZWQgd2hlbiBjaGFuZ2VzIGFyZSBtYWRlXHJcblx0Ly8gdGhpcyBpcyBob3cgd2UgZW1pdCB0aGUgY2hhbmdlcyBiYWNrIHRvIHRoZSBmb3JtXHJcblx0cHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG5cdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcclxuXHR9XHJcblxyXG5cdC8vIG5vdCB1c2VkLCB1c2VkIGZvciB0b3VjaCBpbnB1dFxyXG5cdHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZCgpIHsgfVxyXG5cclxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcblx0XHRpZiAoY2hhbmdlcy5pc01vYmlsZSkge1xyXG5cdFx0XHR0aGlzLmlzTW9iaWxlID0gKHRoaXMuaXNNb2JpbGUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScpID8gdHJ1ZSA6IGZhbHNlO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGNoYW5nZXMuaXRlbXMpIHtcclxuXHRcdFx0dGhpcy52aXNpYmxlSXRlbXMgPSB0aGlzLnNsaWNrTXVsdGlTZWxlY3RTZXJ2aWNlLmdldFZpc2libGVJdGVtcyh0aGlzLml0ZW1zLCB0aGlzLnNlbGVjdGVkSWRzLCB0aGlzLmlkRmllbGROYW1lLCB0aGlzLnRleHRGaWVsZE5hbWUpO1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNsaWNrTXVsdGlTZWxlY3RTZXJ2aWNlLmdldFNlbGVjdGVkSXRlbXModGhpcy5pdGVtcywgdGhpcy5zZWxlY3RlZElkcywgdGhpcy5pZEZpZWxkTmFtZSwgdGhpcy50ZXh0RmllbGROYW1lKTtcclxuXHRcdFx0aWYgKHRoaXMuc2VsZWN0ZWRUZXh0SW5wdXRSZWYgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PSB0aGlzLnNlbGVjdGVkVGV4dElucHV0UmVmLm5hdGl2ZUVsZW1lbnQpIFxyXG5cdFx0XHRcdHRoaXMuZXhwYW5kKCk7XHRcdFx0XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdHRoaXMuY29sbGFwc2UoKTtcclxuXHRcdGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0aGlzLmZuRG9jdW1lbnRDbGljaywgdHJ1ZSk7XHRcclxuXHJcblx0XHQvLyBpdCdzIG9rYXkgaWYgdGhpcyBmYWlscy4gIEl0IHdhcyBhbHJlYWR5IHJlbW92ZWRcclxuXHRcdHRyeSB7XHJcblx0XHRcdGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy5tdWx0aVNlbGVjdExpc3QubmF0aXZlRWxlbWVudCk7XHJcblx0XHR9XHJcblx0XHRjYXRjaCB7IH1cclxuXHJcblx0fVxyXG5cclxuXHRhc3luYyBvbktleWJvYXJkSWNvbkNsaWNrZWQoKSB7XHJcblx0XHRpZiAodGhpcy5rZXlib2FyZEFjdGl2ZSA9PT0gdHJ1ZSkge1xyXG5cdFx0XHR0aGlzLmNvbGxhcHNlKCk7XHJcblx0XHRcdHRoaXMua2V5Ym9hcmRBY3RpdmUgPSBmYWxzZTtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZFRleHQgPSAnJztcclxuXHRcdFx0KDxIVE1MSW5wdXRFbGVtZW50PnRoaXMuc2VsZWN0ZWRUZXh0SW5wdXRSZWYubmF0aXZlRWxlbWVudCkudmFsdWUgPSAnJztcclxuXHRcdH1cclxuXHRcdGVsc2Uge1xyXG5cdFx0XHR0aGlzLmtleWJvYXJkQWN0aXZlID0gdHJ1ZTtcclxuXHRcdFx0YXdhaXQgU2xpY2tTbGVlcFNlcnZpY2Uuc2xlZXAoKTtcclxuXHRcdFx0KDxIVE1MRWxlbWVudD50aGlzLnNlbGVjdGVkVGV4dElucHV0UmVmLm5hdGl2ZUVsZW1lbnQpLmZvY3VzKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRhc3luYyBleHBhbmQoKSB7XHJcblx0XHRpZiAodGhpcy5kaXNhYmxlZClcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdHRoaXMucmVwb3NpdGlvbigpO1xyXG5cclxuXHRcdGF3YWl0IFNsaWNrU2xlZXBTZXJ2aWNlLnNsZWVwKCk7XHJcblx0XHR0aGlzLm11bHRpU2VsZWN0TGlzdC5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSBcImlubGluZS1ibG9ja1wiO1xyXG5cclxuXHRcdGxldCBzZWxlY3RlZEl0ZW1zID0gdGhpcy5tdWx0aVNlbGVjdExpc3QubmF0aXZlRWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwic2VsZWN0ZWRcIik7XHJcblx0XHRpZiAoc2VsZWN0ZWRJdGVtcyAmJiBzZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDApIFxyXG5cdFx0XHQoPEhUTUxFbGVtZW50PnNlbGVjdGVkSXRlbXNbMF0pLnNjcm9sbEludG9WaWV3KHsgYmxvY2s6ICduZWFyZXN0JyB9KTtcdFx0XHJcblxyXG5cdFx0dGhpcy5leHBhbmRlZCA9IHRydWU7XHJcblxyXG5cdFx0Ly8gVGhpcyBpcyBuZWNlc3NhcnksIG90aGVyd2lzZSBgdGhpc2AgaW4gdGhlIHJlcG9zaXRpb24gZnVuY3Rpb24gd2lsbCBiZSB3aW5kb3dcclxuXHRcdC8vIGFuZCBub3QgdGhlIGNvbXBvbmVudC5cclxuXHRcdC8vIFNpbmNlIGFuZ3VsYXIgaGFzIG5vIHdheSB0byB1c2UgdGhlIHRoaXJkIHBhcmFtZXRlciwgSSdtIGRvaW5nIHRoaXMgaW4gcmF3IGpzXHJcblx0XHRkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5mbkRvY3VtZW50Q2xpY2ssIHRydWUpO1x0XHRcdFxyXG5cclxuXHRcdGlmICh0aGlzLm9uRXhwYW5kKVxyXG5cdFx0XHR0aGlzLm9uRXhwYW5kLmVtaXQoKTtcclxuXHR9XHJcblxyXG5cdGNvbGxhcHNlKCkge1xyXG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm11bHRpU2VsZWN0TGlzdC5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcclxuXHRcdC8vIFNpbmNlIGFuZ3VsYXIgaGFzIG5vIHdheSB0byB1c2UgdGhlIHRoaXJkIHBhcmFtZXRlciwgSSdtIGRvaW5nIHRoaXMgaW4gcmF3IGpzXHJcblx0XHRkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5mbkRvY3VtZW50Q2xpY2ssIHRydWUpO1x0XHJcblxyXG5cdFx0aWYgKHRoaXMub25Db2xsYXBzZSkgXHJcblx0XHRcdHRoaXMub25Db2xsYXBzZS5lbWl0KCk7XHJcblx0fVxyXG5cclxuXHRhc3luYyByZXBvc2l0aW9uKCkge1xyXG5cdFx0YXdhaXQgU2xpY2tTbGVlcFNlcnZpY2Uuc2xlZXAoKTtcclxuXHRcdGxldCByZWN0ID0gdGhpcy5jb250YWluZXJEaXYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHRcdGxldCBjb250YWluZXJMZWZ0ID0gcmVjdC5sZWZ0O1xyXG5cdFx0bGV0IGNvbnRhaW5lclRvcCA9IHJlY3QudG9wO1xyXG5cdFx0bGV0IGNvbnRhaW5lckhlaWdodCA9IHRoaXMuY29udGFpbmVyRGl2Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG5cdFx0bGV0IGNvbnRhaW5lcldpZHRoID0gcmVjdC53aWR0aDtcclxuXHJcblx0XHR0aGlzLndpZHRoID0gY29udGFpbmVyV2lkdGg7XHJcblx0XHRpZiAodGhpcy5saXN0V2lkdGggPT09ICcxMDAlJylcclxuXHRcdFx0dGhpcy5saXN0R3JvdXBXaWR0aCA9IHRoaXMud2lkdGg7XHJcblx0XHRlbHNlIGlmICh0aGlzLmxpc3RXaWR0aCA9PT0gJ2F1dG8nKVxyXG5cdFx0XHR0aGlzLmxpc3RHcm91cFdpZHRoID0gXCJhdXRvXCI7XHJcblx0XHRlbHNlXHJcblx0XHRcdHRoaXMubGlzdEdyb3VwV2lkdGggPSB0aGlzLmxpc3RXaWR0aDtcclxuXHRcdHRoaXMudG9wID0gKGNvbnRhaW5lclRvcCArIGNvbnRhaW5lckhlaWdodCk7XHJcblx0XHR0aGlzLmxlZnQgPSBjb250YWluZXJMZWZ0O1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBkb2N1bWVudENsaWNrKGU6IE1vdXNlRXZlbnQpIHtcclxuXHRcdGlmICghdGhpcy5leHBhbmRlZCB8fCAhZS50YXJnZXQpXHJcblx0XHRcdHJldHVybjtcclxuXHRcdFxyXG5cdFx0Ly8gSWYgdGhleSBjbGlja2VkIG9uIHRoZSBrZXlib2FyZCBpY29uLCBkb24ndCBkbyBhbnl0aGluZ1xyXG5cdFx0aWYgKFNsaWNrVXRpbHNTZXJ2aWNlLmNoZWNrUGFyZW50Q2xhc3NFeGlzdHMoPEhUTUxFbGVtZW50PmUudGFyZ2V0LCBcInNsaWNrLW11bHRpLXNlbGVjdF9tb2JpbGUtY29udGFpbmVyXCIpICYmIFxyXG5cdFx0XHRTbGlja1V0aWxzU2VydmljZS5jaGVja1BhcmVudElkRXhpc3RzKDxIVE1MRWxlbWVudD5lLnRhcmdldCwgXCJzbGljay1tdWx0aS1zZWxlY3RfXCIgKyB0aGlzLnV1aWQpKVxyXG5cdFx0XHRyZXR1cm47XHJcblx0XHRcclxuXHRcdGNvbnN0IGNsaWNrZWRJbnNpZGUgPSBTbGlja1V0aWxzU2VydmljZS5jaGVja1BhcmVudENsYXNzRXhpc3RzKDxIVE1MRWxlbWVudD5lLnRhcmdldCwgXCJzbGljay1tdWx0aS1zZWxlY3RfbGlzdC1pdGVtXCIpO1xyXG5cdFx0aWYgKCFjbGlja2VkSW5zaWRlKSB7XHJcblx0XHRcdHRoaXMua2V5Ym9hcmRBY3RpdmUgPSBmYWxzZTtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZFRleHQgPSAnJztcclxuXHRcdFx0KDxIVE1MSW5wdXRFbGVtZW50PnRoaXMuc2VsZWN0ZWRUZXh0SW5wdXRSZWYubmF0aXZlRWxlbWVudCkudmFsdWUgPSAnJztcclxuXHRcdFx0dGhpcy5jb2xsYXBzZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBzZWxlY3RJdGVtKGlkOiBzdHJpbmcpIHtcclxuXHRcdGxldCBpdGVtID0gdGhpcy5zbGlja011bHRpU2VsZWN0U2VydmljZS5nZXRTZWxlY3RlZEl0ZW0odGhpcy52aXNpYmxlSXRlbXMsIGlkKTtcclxuXHRcdFxyXG5cdFx0aWYgKGl0ZW0pIHtcclxuXHJcblx0XHRcdGlmICh0aGlzLm9uU2VsZWN0KVxyXG5cdFx0XHRcdHRoaXMub25TZWxlY3QuZW1pdChpdGVtKTtcclxuXHJcblx0XHRcdGlmICghdGhpcy5zZWxlY3RlZElkcylcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkSWRzID0gW107XHJcblxyXG5cdFx0XHR0aGlzLnNlbGVjdGVkSWRzLnB1c2goaWQpO1xyXG5cdFx0XHR0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnNlbGVjdGVkSWRzKTtcclxuXHJcblx0XHRcdHRoaXMudmlzaWJsZUl0ZW1zID0gdGhpcy5zbGlja011bHRpU2VsZWN0U2VydmljZS5nZXRWaXNpYmxlSXRlbXModGhpcy5pdGVtcywgdGhpcy5zZWxlY3RlZElkcywgdGhpcy5pZEZpZWxkTmFtZSwgdGhpcy50ZXh0RmllbGROYW1lKTtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zbGlja011bHRpU2VsZWN0U2VydmljZS5nZXRTZWxlY3RlZEl0ZW1zKHRoaXMuaXRlbXMsIHRoaXMuc2VsZWN0ZWRJZHMsIHRoaXMuaWRGaWVsZE5hbWUsIHRoaXMudGV4dEZpZWxkTmFtZSk7XHJcblxyXG5cdFx0XHR0aGlzLnJlcG9zaXRpb24oKTtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZFRleHQgPSAnJztcclxuXHRcdFx0KDxIVE1MSW5wdXRFbGVtZW50PnRoaXMuc2VsZWN0ZWRUZXh0SW5wdXRSZWYubmF0aXZlRWxlbWVudCkudmFsdWUgPSAnJztcclxuXHRcdH1cclxuXHR9XHRcclxuXHJcblx0c2V0Rm9jdXMoc2hvd01vYmlsZUtleWJvYXJkOiBib29sZWFuID0gZmFsc2UpIHtcclxuXHRcdCg8SFRNTEVsZW1lbnQ+dGhpcy5zZWxlY3RlZFRleHRJbnB1dFJlZi5uYXRpdmVFbGVtZW50KS5mb2N1cygpO1xyXG5cdFx0aWYgKHNob3dNb2JpbGVLZXlib2FyZCA9PT0gdHJ1ZSlcclxuXHRcdFx0dGhpcy5rZXlib2FyZEFjdGl2ZSA9IHRydWU7XHJcblx0fVxyXG5cclxuXHRhc3luYyBvbkZvY3VzKCkge1xyXG5cdFx0dGhpcy52aXNpYmxlSXRlbXMgPSB0aGlzLnNsaWNrTXVsdGlTZWxlY3RTZXJ2aWNlLmdldFZpc2libGVJdGVtcyh0aGlzLml0ZW1zLCB0aGlzLnNlbGVjdGVkSWRzLCB0aGlzLmlkRmllbGROYW1lLCB0aGlzLnRleHRGaWVsZE5hbWUpO1xyXG5cdFx0dGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zbGlja011bHRpU2VsZWN0U2VydmljZS5nZXRTZWxlY3RlZEl0ZW1zKHRoaXMuaXRlbXMsIHRoaXMuc2VsZWN0ZWRJZHMsIHRoaXMuaWRGaWVsZE5hbWUsIHRoaXMudGV4dEZpZWxkTmFtZSk7XHJcblxyXG5cdFx0dGhpcy5maWx0ZXJUZXh0ID0gJyc7XHJcblx0XHQoPEhUTUxJbnB1dEVsZW1lbnQ+dGhpcy5zZWxlY3RlZFRleHRJbnB1dFJlZi5uYXRpdmVFbGVtZW50KS5mb2N1cygpO1xyXG5cclxuXHRcdC8vIFRoaXMgaXMga2luZCBvZiBoYWNreSwgYnV0IGlmIG9uRm9jdXMgaXMgY2FsbGVkIGJ5IGNsaWNraW5nIHRoZSBtdWx0aVNlbGVjdCwgdGhlIG9uTXVsdGlTZWxlY3RDbGljayBldmVudCBpcyBjYWxsZWQgYXMgd2VsbFxyXG5cdFx0Ly8gVGhhdCBmdW5jdGlvbiB3aWxsIGV4cGFuZCBvciBjb2xsYXBzZSwgZGVwZW5kaW5nIG9uIHRoZSBzdGF0ZS4gIFNpbmNlIHRoaXMgZXhwYW5kcywgaXQgdGhpbmtzIGl0IG5lZWRzIHRvIGNvbGxhcHNlLlxyXG5cdFx0Ly8gU28gZmFrZSBpdCBvdXQgYW5kIHRlbGwgaXQgTk9UIHRvIGNvbGxhcHNlLiAgQlVULCBpZiB3ZSBjYW1lIGluIGZyb20gdGFiYmluZyBpbnRvIHRoZSBmaWVsZCwgdGhlbiBpdCB3b3VsZCBtZXNzIHVwXHJcblx0XHQvLyB0aGUgY2xpY2sgZXZlbnQuICBTbyBvbmx5IHdhaXQgZm9yIDEvMiBzZWNvbmQuXHJcblx0XHR0aGlzLnNraXBDbGlja0V4cGFuZCA9IHRydWU7XHJcblx0XHR0aGlzLmV4cGFuZCgpO1xyXG5cdFx0YXdhaXQgU2xpY2tTbGVlcFNlcnZpY2Uuc2xlZXAoNTAwKTtcclxuXHRcdHRoaXMuc2tpcENsaWNrRXhwYW5kID0gZmFsc2U7XHJcblx0fVxyXG5cclxuXHRhc3luYyBvbktleVVwKGU6IEtleWJvYXJkRXZlbnQpIHtcclxuXHRcdGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblx0XHRlLnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG5cdFx0Ly8gSWYgdGhpcyBpcyBhbmRyb2lkLCBpdCB3b24ndCBwYXNzIHVzIGFueSBrZXkgZGF0YSBzbyBqdXN0IHJlYWQgdGhlIGVudGlyZSBpbnB1dCBlbGVtZW50XHJcblx0XHRpZiAodGhpcy5pc0FuZHJvaWQgPT09IHRydWUpIHtcclxuXHRcdFx0YXdhaXQgU2xpY2tTbGVlcFNlcnZpY2Uuc2xlZXAoKTtcclxuXHJcblx0XHRcdHRoaXMuZmlsdGVyVGV4dCA9ICg8SFRNTElucHV0RWxlbWVudD50aGlzLnNlbGVjdGVkVGV4dElucHV0UmVmLm5hdGl2ZUVsZW1lbnQpLnZhbHVlO1xyXG5cdFx0XHR0aGlzLmZpbHRlclNlYXJjaCgpO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gVGFiL2VudGVyXHJcblx0XHRpZiAoZS53aGljaCA9PT0gOSB8fCBlLndoaWNoID09PSAxMykge1xyXG5cclxuXHRcdFx0aWYgKHRoaXMuZmlsdGVyVGV4dCAmJiB0aGlzLnNlbGVjdGVkSW5kZXggIT09IG51bGwgJiYgdGhpcy5zZWxlY3RlZEluZGV4ICE9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdEl0ZW0odGhpcy52aXNpYmxlSXRlbXNbdGhpcy5zZWxlY3RlZEluZGV4XS5pZCk7XHJcblx0XHRcdFx0dGhpcy5maWx0ZXJUZXh0ID0gJyc7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZEluZGV4ID0gbnVsbDtcclxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRoaXMuY29sbGFwc2UoKTtcclxuXHJcblx0XHRcdHRoaXMuZmlsdGVyVGV4dCA9ICcnO1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkVGV4dCA9ICcnO1xyXG5cdFx0XHQoPEhUTUxJbnB1dEVsZW1lbnQ+dGhpcy5zZWxlY3RlZFRleHRJbnB1dFJlZi5uYXRpdmVFbGVtZW50KS52YWx1ZSA9ICcnO1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkSW5kZXggPSBudWxsO1xyXG5cclxuXHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gRXNjXHJcblx0XHRpZiAoZS53aGljaCA9PT0gMjcpIHtcclxuXHRcdFx0dGhpcy5maWx0ZXJUZXh0ID0gJyc7XHJcblx0XHRcdHRoaXMuc2VsZWN0ZWRUZXh0ID0gJyc7XHJcblx0XHRcdCg8SFRNTElucHV0RWxlbWVudD50aGlzLnNlbGVjdGVkVGV4dElucHV0UmVmLm5hdGl2ZUVsZW1lbnQpLnZhbHVlID0gJyc7XHJcblx0XHRcdHRoaXMuY29sbGFwc2UoKTtcclxuXHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBCYWNrc3BhY2VcclxuXHRcdGlmIChlLndoaWNoID09PSA4ICYmIHRoaXMuZmlsdGVyVGV4dCkge1xyXG5cdFx0XHR0aGlzLmZpbHRlclRleHQgPSB0aGlzLmZpbHRlclRleHQuc3Vic3RyaW5nKDAsIHRoaXMuZmlsdGVyVGV4dC5sZW5ndGggLSAxKTtcclxuXHRcdFx0aWYgKHRoaXMuZmlsdGVyVGV4dC5sZW5ndGggPT09IDApIHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkVGV4dCA9ICcnO1xyXG5cdFx0XHRcdCg8SFRNTElucHV0RWxlbWVudD50aGlzLnNlbGVjdGVkVGV4dElucHV0UmVmLm5hdGl2ZUVsZW1lbnQpLnZhbHVlID0gJyc7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZEluZGV4ID0gbnVsbDtcclxuXHRcdFx0XHR0aGlzLnZpc2libGVJdGVtcyA9IHRoaXMuc2xpY2tNdWx0aVNlbGVjdFNlcnZpY2UuZ2V0VmlzaWJsZUl0ZW1zKHRoaXMuaXRlbXMsIHRoaXMuc2VsZWN0ZWRJZHMsIHRoaXMuaWRGaWVsZE5hbWUsIHRoaXMudGV4dEZpZWxkTmFtZSk7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zbGlja011bHRpU2VsZWN0U2VydmljZS5nZXRTZWxlY3RlZEl0ZW1zKHRoaXMuaXRlbXMsIHRoaXMuc2VsZWN0ZWRJZHMsIHRoaXMuaWRGaWVsZE5hbWUsIHRoaXMudGV4dEZpZWxkTmFtZSk7XHRcdFx0fVxyXG5cdFx0XHRlbHNlXHJcblx0XHRcdFx0dGhpcy5maWx0ZXJTZWFyY2goKTtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIEFycm93dXBcclxuXHRcdGlmIChlLndoaWNoID09PSAzOCkge1xyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZEluZGV4ID09PSBudWxsIHx8IHRoaXMuc2VsZWN0ZWRJbmRleCA9PT0gdW5kZWZpbmVkKVxyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRJbmRleCA9IDA7XHJcblxyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZEluZGV4ID4gMClcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkSW5kZXgtLTtcclxuXHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBBcnJvd2Rvd25cclxuXHRcdGlmIChlLndoaWNoID09PSA0MCkge1xyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZEluZGV4ID09PSBudWxsIHx8IHRoaXMuc2VsZWN0ZWRJbmRleCA9PT0gdW5kZWZpbmVkKVxyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRJbmRleCA9IC0xO1xyXG5cclxuXHRcdFx0aWYgKCF0aGlzLmV4cGFuZGVkIHx8ICF0aGlzLnZpc2libGVJdGVtcykgXHJcblx0XHRcdFx0dGhpcy5leHBhbmQoKTtcclxuXHJcblx0XHRcdGlmICh0aGlzLnNlbGVjdGVkSW5kZXggPCB0aGlzLnZpc2libGVJdGVtcy5sZW5ndGggLSAxKVxyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRJbmRleCsrO1xyXG5cclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIElmIEYxIGlzIHByZXNzZWQsIGtleSBsZW5ndGggd2lsbCBiZSAyXHJcblx0XHRpZiAoZS5rZXkubGVuZ3RoID4gMSB8fCBlLmN0cmxLZXkgfHwgZS5hbHRLZXkpXHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHJcblx0XHRpZiAoZS53aGljaCA+PSAzMiAmJiBlLndoaWNoIDw9IDEyNikge1xyXG5cdFx0XHR0aGlzLmZpbHRlclRleHQgKz0gZS5rZXk7XHJcblxyXG5cdFx0XHR0aGlzLmZpbHRlclNlYXJjaCgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiB0cnVlO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBhc3luYyBmaWx0ZXJTZWFyY2goKSB7XHJcblx0XHRpZiAoIXRoaXMuZXhwYW5kZWQpIFxyXG5cdFx0XHR0aGlzLmV4cGFuZCgpO1x0XHJcblxyXG5cdFx0dGhpcy52aXNpYmxlSXRlbXMgPSB0aGlzLnNsaWNrTXVsdGlTZWxlY3RTZXJ2aWNlLmdldFZpc2libGVJdGVtcyh0aGlzLml0ZW1zLCB0aGlzLnNlbGVjdGVkSWRzLCB0aGlzLmlkRmllbGROYW1lLCB0aGlzLnRleHRGaWVsZE5hbWUpO1xyXG5cdFx0dGhpcy52aXNpYmxlSXRlbXMgPSB0aGlzLnZpc2libGVJdGVtcy5maWx0ZXIoeCA9PiB4LnRleHQudG9Mb3dlckNhc2UoKS5pbmRleE9mKHRoaXMuZmlsdGVyVGV4dC50b0xvd2VyQ2FzZSgpKSA9PT0gMCk7XHJcblx0XHRpZiAodGhpcy52aXNpYmxlSXRlbXMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkSW5kZXggPSAwO1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkVGV4dCA9IHRoaXMudmlzaWJsZUl0ZW1zWzBdLnRleHQ7XHJcblx0XHRcdGlmICh0aGlzLmlzQW5kcm9pZCA9PT0gZmFsc2UpIHtcclxuXHRcdFx0XHRhd2FpdCBTbGlja1NsZWVwU2VydmljZS5zbGVlcCgpO1xyXG5cdFx0XHRcdCg8SFRNTElucHV0RWxlbWVudD50aGlzLnNlbGVjdGVkVGV4dElucHV0UmVmLm5hdGl2ZUVsZW1lbnQpLnZhbHVlID0gdGhpcy5zZWxlY3RlZFRleHQ7XHJcblx0XHRcdFx0KDxIVE1MSW5wdXRFbGVtZW50PnRoaXMuc2VsZWN0ZWRUZXh0SW5wdXRSZWYubmF0aXZlRWxlbWVudCkuc2V0U2VsZWN0aW9uUmFuZ2UodGhpcy5maWx0ZXJUZXh0Lmxlbmd0aCwgdGhpcy5zZWxlY3RlZFRleHQubGVuZ3RoKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0ZWxzZSB7XHJcblx0XHRcdHRoaXMuc2VsZWN0ZWRJbmRleCA9IG51bGw7XHJcblx0XHRcdGlmICh0aGlzLmlzQW5kcm9pZCA9PT0gZmFsc2UpIHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkVGV4dCA9IHRoaXMuZmlsdGVyVGV4dDtcclxuXHRcdFx0XHQoPEhUTUxJbnB1dEVsZW1lbnQ+dGhpcy5zZWxlY3RlZFRleHRJbnB1dFJlZi5uYXRpdmVFbGVtZW50KS52YWx1ZSA9IHRoaXMuc2VsZWN0ZWRUZXh0O1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMucmVwb3NpdGlvbigpO1xyXG5cdH1cclxuXHJcblx0b25NdWx0aVNlbGVjdENsaWNrZWQoKSB7XHJcblx0XHRpZiAodGhpcy5za2lwQ2xpY2tFeHBhbmQgPT09IHRydWUpIHtcclxuXHRcdFx0dGhpcy5za2lwQ2xpY2tFeHBhbmQgPSBmYWxzZTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdCg8SFRNTElucHV0RWxlbWVudD50aGlzLnNlbGVjdGVkVGV4dElucHV0UmVmLm5hdGl2ZUVsZW1lbnQpLmZvY3VzKCk7XHJcblxyXG5cdFx0aWYgKHRoaXMuZXhwYW5kZWQgPT09IGZhbHNlKSBcclxuXHRcdFx0dGhpcy5leHBhbmQoKTtcclxuXHRcdGVsc2UgXHJcblx0XHRcdHRoaXMuY29sbGFwc2UoKTtcclxuXHR9XHJcblxyXG5cdG9uSXRlbUNsaWNrKGl0ZW06IGFueSkge1xyXG5cdFx0dGhpcy5zZWxlY3RJdGVtKGl0ZW0uaWQpO1xyXG5cclxuXHRcdGlmICh0aGlzLmtleWJvYXJkQWN0aXZlID09PSB0cnVlKVxyXG5cdFx0XHQoPEhUTUxJbnB1dEVsZW1lbnQ+dGhpcy5zZWxlY3RlZFRleHRJbnB1dFJlZi5uYXRpdmVFbGVtZW50KS5mb2N1cygpO1xyXG5cdH1cclxuXHJcblx0b25SZW1vdmVJdGVtKGl0ZW06IGFueSkge1xyXG5cdFx0dGhpcy5zZWxlY3RlZElkcyA9IHRoaXMuc2VsZWN0ZWRJZHMuZmlsdGVyKGlkID0+IGlkICE9PSBpdGVtLmlkKTtcclxuXHRcdHRoaXMudmlzaWJsZUl0ZW1zID0gdGhpcy5zbGlja011bHRpU2VsZWN0U2VydmljZS5nZXRWaXNpYmxlSXRlbXModGhpcy5pdGVtcywgdGhpcy5zZWxlY3RlZElkcywgdGhpcy5pZEZpZWxkTmFtZSwgdGhpcy50ZXh0RmllbGROYW1lKTtcclxuXHRcdHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuc2xpY2tNdWx0aVNlbGVjdFNlcnZpY2UuZ2V0U2VsZWN0ZWRJdGVtcyh0aGlzLml0ZW1zLCB0aGlzLnNlbGVjdGVkSWRzLCB0aGlzLmlkRmllbGROYW1lLCB0aGlzLnRleHRGaWVsZE5hbWUpO1xyXG5cclxuXHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuc2VsZWN0ZWRJZHMpO1xyXG5cdH1cclxufSJdfQ==
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { NgModule } from "@angular/core";
|
|
2
|
-
import { FormsModule } from "@angular/forms";
|
|
3
|
-
import { CommonModule } from "@angular/common";
|
|
4
|
-
import { SlickMultiSelectComponent } from "./slick-multi-select.component";
|
|
5
|
-
export class SlickMultiSelectModule {
|
|
6
|
-
}
|
|
7
|
-
SlickMultiSelectModule.decorators = [
|
|
8
|
-
{ type: NgModule, args: [{
|
|
9
|
-
imports: [CommonModule, FormsModule],
|
|
10
|
-
declarations: [SlickMultiSelectComponent],
|
|
11
|
-
exports: [SlickMultiSelectComponent]
|
|
12
|
-
},] }
|
|
13
|
-
];
|
|
14
|
-
export { SlickMultiSelectComponent };
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stbXVsdGktc2VsZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3NsaWNrLW11bHRpLXNlbGVjdC9zbGljay1tdWx0aS1zZWxlY3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQVEzRSxNQUFNLE9BQU8sc0JBQXNCOzs7WUFMbEMsUUFBUSxTQUFDO2dCQUNULE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUM7Z0JBQ3BDLFlBQVksRUFBRSxDQUFDLHlCQUF5QixDQUFDO2dCQUN6QyxPQUFPLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQzthQUNwQzs7QUFHRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBTbGlja011bHRpU2VsZWN0Q29tcG9uZW50IH0gZnJvbSBcIi4vc2xpY2stbXVsdGktc2VsZWN0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBTbGlja011bHRpU2VsZWN0U2VydmljZSB9IGZyb20gXCIuL3NsaWNrLW11bHRpLXNlbGVjdC5zZXJ2aWNlXCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlXSxcclxuXHRkZWNsYXJhdGlvbnM6IFtTbGlja011bHRpU2VsZWN0Q29tcG9uZW50XSxcclxuXHRleHBvcnRzOiBbU2xpY2tNdWx0aVNlbGVjdENvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNsaWNrTXVsdGlTZWxlY3RNb2R1bGUgeyB9XHJcblxyXG5leHBvcnQgeyBTbGlja011bHRpU2VsZWN0Q29tcG9uZW50IH0iXX0=
|