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,43 @@
|
|
|
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
|
+
import * as i0 from "@angular/core";
|
|
22
|
+
export class SlickGridModule {
|
|
23
|
+
}
|
|
24
|
+
/** @nocollapse */ SlickGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
25
|
+
/** @nocollapse */ SlickGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickGridModule, declarations: [SlickGridComponent, SlickGridColumnTemplateDirective, SlickGridSanitizeHtmlPipe], imports: [CommonModule, SlickConfirmDialogModule, SlickPickListModule, SlickPopoverModule, SlickDialogModule, SlickDropDownModule, SlickDropListModule, SlickPagingModule, HttpClientModule], exports: [SlickGridComponent, SlickGridColumnTemplateDirective, SlickPickListModule, SlickDialogModule, SlickDropDownModule] });
|
|
26
|
+
/** @nocollapse */ SlickGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickGridModule, providers: [SlickGridService, SlickFunctionLockService, SlickGridSanitizeHtmlPipe], imports: [[CommonModule, SlickConfirmDialogModule, SlickPickListModule, SlickPopoverModule, SlickDialogModule, SlickDropDownModule, SlickDropListModule, SlickPagingModule, HttpClientModule], SlickPickListModule, SlickDialogModule, SlickDropDownModule] });
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickGridModule, decorators: [{
|
|
28
|
+
type: NgModule,
|
|
29
|
+
args: [{
|
|
30
|
+
imports: [CommonModule, SlickConfirmDialogModule, SlickPickListModule, SlickPopoverModule, SlickDialogModule, SlickDropDownModule, SlickDropListModule, SlickPagingModule, HttpClientModule],
|
|
31
|
+
declarations: [SlickGridComponent, SlickGridColumnTemplateDirective, SlickGridSanitizeHtmlPipe],
|
|
32
|
+
exports: [SlickGridComponent, SlickGridColumnTemplateDirective, SlickPickListModule, SlickDialogModule, SlickDropDownModule],
|
|
33
|
+
providers: [SlickGridService, SlickFunctionLockService, SlickGridSanitizeHtmlPipe]
|
|
34
|
+
}]
|
|
35
|
+
}] });
|
|
36
|
+
export { SlickGridColumnModel, SlickGridColumnFilterTypes, SlickGridColumnSortDirection };
|
|
37
|
+
export { SlickGridFavoriteModel };
|
|
38
|
+
export { SlickGridRequestModel };
|
|
39
|
+
export { SlickGridResponseModel };
|
|
40
|
+
export { SlickGridComponent };
|
|
41
|
+
export { SlickGridColumnTemplateDirective };
|
|
42
|
+
export { SlickGridOptions };
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stZ3JpZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9zbGljay1ncmlkL3NsaWNrLWdyaWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSwwQkFBMEIsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNILE9BQU8sRUFBMkIsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RixPQUFPLEVBQTBCLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0YsT0FBTyxFQUEyQixzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFGLE9BQU8sRUFBcUIsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7QUFRaEYsTUFBTSxPQUFPLGVBQWU7OytIQUFmLGVBQWU7Z0lBQWYsZUFBZSxpQkFKWixrQkFBa0IsRUFBRyxnQ0FBZ0MsRUFBRSx5QkFBeUIsYUFEckYsWUFBWSxFQUFFLHdCQUF3QixFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixhQUVqTCxrQkFBa0IsRUFBRSxnQ0FBZ0MsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUI7Z0lBRy9HLGVBQWUsYUFGaEIsQ0FBQyxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBRSx5QkFBeUIsQ0FBQyxZQUh6RSxDQUFDLFlBQVksRUFBRSx3QkFBd0IsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsQ0FBQyxFQUU1SCxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUI7MkZBRy9HLGVBQWU7a0JBTjNCLFFBQVE7bUJBQUM7b0JBQ1QsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLHdCQUF3QixFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixDQUFDO29CQUM1TCxZQUFZLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRyxnQ0FBZ0MsRUFBRSx5QkFBeUIsQ0FBQztvQkFDaEcsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsZ0NBQWdDLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLENBQUM7b0JBQzVILFNBQVMsRUFBRSxDQUFDLGdCQUFnQixFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixDQUFDO2lCQUNsRjs7QUFHRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsMEJBQTBCLEVBQUUsNEJBQTRCLEVBQUUsQ0FBQTtBQUN6RixPQUFPLEVBQTJCLHNCQUFzQixFQUFFLENBQUE7QUFDMUQsT0FBTyxFQUEwQixxQkFBcUIsRUFBRSxDQUFBO0FBQ3hELE9BQU8sRUFBMkIsc0JBQXNCLEVBQUUsQ0FBQTtBQUMxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQTtBQUM3QixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsQ0FBQTtBQUMzQyxPQUFPLEVBQXFCLGdCQUFnQixFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBTbGlja0dyaWRDb2x1bW5Nb2RlbCwgU2xpY2tHcmlkQ29sdW1uRmlsdGVyVHlwZXMsIFNsaWNrR3JpZENvbHVtblNvcnREaXJlY3Rpb24gfSBmcm9tIFwiLi9zbGljay1ncmlkLWNvbHVtbi5tb2RlbFwiO1xyXG5pbXBvcnQgeyBJU2xpY2tHcmlkRmF2b3JpdGVNb2RlbCwgU2xpY2tHcmlkRmF2b3JpdGVNb2RlbCB9IGZyb20gXCIuL3NsaWNrLWdyaWQtZmF2b3JpdGUubW9kZWxcIjtcclxuaW1wb3J0IHsgSVNsaWNrR3JpZFJlcXVlc3RNb2RlbCwgU2xpY2tHcmlkUmVxdWVzdE1vZGVsIH0gZnJvbSBcIi4vc2xpY2stZ3JpZC1yZXF1ZXN0Lm1vZGVsXCI7XHJcbmltcG9ydCB7IElTbGlja0dyaWRSZXNwb25zZU1vZGVsLCBTbGlja0dyaWRSZXNwb25zZU1vZGVsIH0gZnJvbSBcIi4vc2xpY2stZ3JpZC1yZXNwb25zZS5tb2RlbFwiO1xyXG5pbXBvcnQgeyBTbGlja0dyaWRDb21wb25lbnQgfSBmcm9tIFwiLi9zbGljay1ncmlkLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBTbGlja0dyaWRDb2x1bW5UZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gXCIuL3NsaWNrLWdyaWQtY29sdW1uLXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQgeyBJU2xpY2tHcmlkT3B0aW9ucywgU2xpY2tHcmlkT3B0aW9ucyB9IGZyb20gXCIuL3NsaWNrLWdyaWQub3B0aW9uc1wiO1xyXG5pbXBvcnQgeyBTbGlja0dyaWRTZXJ2aWNlIH0gZnJvbSBcIi4vc2xpY2stZ3JpZC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNsaWNrQ29uZmlybURpYWxvZ01vZHVsZSB9IGZyb20gXCIuLi9zbGljay1jb25maXJtLWRpYWxvZy9zbGljay1jb25maXJtLWRpYWxvZy5tb2R1bGVcIjtcclxuaW1wb3J0IHsgU2xpY2tEaWFsb2dNb2R1bGUgfSBmcm9tIFwiLi4vc2xpY2stZGlhbG9nL3NsaWNrLWRpYWxvZy5tb2R1bGVcIjtcclxuaW1wb3J0IHsgU2xpY2tEcm9wRG93bk1vZHVsZSB9IGZyb20gXCIuLi9zbGljay1kcm9wLWRvd24vc2xpY2stZHJvcC1kb3duLm1vZHVsZVwiO1xyXG5pbXBvcnQgeyBTbGlja0Ryb3BMaXN0TW9kdWxlIH0gZnJvbSBcIi4uL3NsaWNrLWRyb3AtbGlzdC9zbGljay1kcm9wLWxpc3QubW9kdWxlXCI7XHJcbmltcG9ydCB7IFNsaWNrUGFnaW5nTW9kdWxlIH0gZnJvbSBcIi4uL3NsaWNrLXBhZ2luZy9zbGljay1wYWdpbmcubW9kdWxlXCI7XHJcbmltcG9ydCB7IFNsaWNrUGlja0xpc3RNb2R1bGUgfSBmcm9tIFwiLi4vc2xpY2stcGljay1saXN0L3NsaWNrLXBpY2stbGlzdC5tb2R1bGVcIjtcclxuaW1wb3J0IHsgU2xpY2tQb3BvdmVyTW9kdWxlIH0gZnJvbSBcIi4uL3NsaWNrLXBvcG92ZXIvc2xpY2stcG9wb3Zlci5tb2R1bGVcIjtcclxuaW1wb3J0IHsgU2xpY2tHcmlkU2FuaXRpemVIdG1sUGlwZSB9IGZyb20gXCIuL3NsaWNrLWdyaWQtc2FuaXRpemUucGlwZVwiO1xyXG5pbXBvcnQgeyBTbGlja0Z1bmN0aW9uTG9ja1NlcnZpY2UgfSBmcm9tIFwiLi4vdXRpbHMvc2xpY2stZnVuY3Rpb24tbG9jay5zZXJ2aWNlXCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNsaWNrQ29uZmlybURpYWxvZ01vZHVsZSwgU2xpY2tQaWNrTGlzdE1vZHVsZSwgU2xpY2tQb3BvdmVyTW9kdWxlLCBTbGlja0RpYWxvZ01vZHVsZSwgU2xpY2tEcm9wRG93bk1vZHVsZSwgU2xpY2tEcm9wTGlzdE1vZHVsZSwgU2xpY2tQYWdpbmdNb2R1bGUsIEh0dHBDbGllbnRNb2R1bGVdLFxyXG5cdGRlY2xhcmF0aW9uczogW1NsaWNrR3JpZENvbXBvbmVudCwgIFNsaWNrR3JpZENvbHVtblRlbXBsYXRlRGlyZWN0aXZlLCBTbGlja0dyaWRTYW5pdGl6ZUh0bWxQaXBlXSxcclxuXHRleHBvcnRzOiBbU2xpY2tHcmlkQ29tcG9uZW50LCBTbGlja0dyaWRDb2x1bW5UZW1wbGF0ZURpcmVjdGl2ZSwgU2xpY2tQaWNrTGlzdE1vZHVsZSwgU2xpY2tEaWFsb2dNb2R1bGUsIFNsaWNrRHJvcERvd25Nb2R1bGVdLFxyXG5cdHByb3ZpZGVyczogW1NsaWNrR3JpZFNlcnZpY2UsIFNsaWNrRnVuY3Rpb25Mb2NrU2VydmljZSwgU2xpY2tHcmlkU2FuaXRpemVIdG1sUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNsaWNrR3JpZE1vZHVsZSB7XHJcbn1cclxuZXhwb3J0IHsgU2xpY2tHcmlkQ29sdW1uTW9kZWwsIFNsaWNrR3JpZENvbHVtbkZpbHRlclR5cGVzLCBTbGlja0dyaWRDb2x1bW5Tb3J0RGlyZWN0aW9uIH1cclxuZXhwb3J0IHsgSVNsaWNrR3JpZEZhdm9yaXRlTW9kZWwsIFNsaWNrR3JpZEZhdm9yaXRlTW9kZWwgfVxyXG5leHBvcnQgeyBJU2xpY2tHcmlkUmVxdWVzdE1vZGVsLCBTbGlja0dyaWRSZXF1ZXN0TW9kZWwgfVxyXG5leHBvcnQgeyBJU2xpY2tHcmlkUmVzcG9uc2VNb2RlbCwgU2xpY2tHcmlkUmVzcG9uc2VNb2RlbCB9XHJcbmV4cG9ydCB7IFNsaWNrR3JpZENvbXBvbmVudCB9XHJcbmV4cG9ydCB7IFNsaWNrR3JpZENvbHVtblRlbXBsYXRlRGlyZWN0aXZlIH1cclxuZXhwb3J0IHsgSVNsaWNrR3JpZE9wdGlvbnMsIFNsaWNrR3JpZE9wdGlvbnMgfVxyXG5cclxuIl19
|
package/{esm2015/slick-grid/slick-grid.options.js → esm2020/slick-grid/slick-grid.options.mjs}
RENAMED
|
File without changes
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import { SlickGridResponseModel } from "./slick-grid-response.model";
|
|
3
|
+
import { SlickUtilsService } from "../utils/slick-utils.service";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common/http";
|
|
6
|
+
export class SlickGridService {
|
|
7
|
+
constructor(http) {
|
|
8
|
+
this.http = http;
|
|
9
|
+
}
|
|
10
|
+
async getDataFromServer(requestModel) {
|
|
11
|
+
try {
|
|
12
|
+
let params = {};
|
|
13
|
+
if (requestModel.additionalParams)
|
|
14
|
+
params.additionalParams = requestModel.additionalParams;
|
|
15
|
+
// If the user has a custom search string, add it to the params here
|
|
16
|
+
if (requestModel.searchString)
|
|
17
|
+
params.searchString = requestModel.searchString;
|
|
18
|
+
if (requestModel.recordsPerPage)
|
|
19
|
+
params.recordsPerPage = requestModel.recordsPerPage;
|
|
20
|
+
params.page = (requestModel.page === null || requestModel.page === undefined) ? 1 : requestModel.page;
|
|
21
|
+
if (requestModel.sortColumn) {
|
|
22
|
+
params.sortColumn = requestModel.sortColumn;
|
|
23
|
+
params.sortDirection = requestModel.sortDirection;
|
|
24
|
+
}
|
|
25
|
+
delete params.columnSearchValues;
|
|
26
|
+
if (requestModel.columnSearchValues)
|
|
27
|
+
params.columnSearchValues = requestModel.columnSearchValues;
|
|
28
|
+
let data = await this.http.post(requestModel.url, params, { headers: requestModel.httpHeaders }).toPromise();
|
|
29
|
+
data = SlickUtilsService.dateSanitize(data);
|
|
30
|
+
return Promise.resolve(data);
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
console.error(error);
|
|
34
|
+
return Promise.reject(error);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
async getDataFromDataObj(requestModel, data) {
|
|
38
|
+
try {
|
|
39
|
+
let responseModel = new SlickGridResponseModel();
|
|
40
|
+
if (!data || data.length === 0) {
|
|
41
|
+
responseModel.totalRecords = 0;
|
|
42
|
+
responseModel.data = [];
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
responseModel.totalRecords = data.length;
|
|
46
|
+
let page = (requestModel.page === null || requestModel.page === undefined) ? 1 : requestModel.page;
|
|
47
|
+
let startIndex = (page - 1) * requestModel.recordsPerPage;
|
|
48
|
+
let endIndex = startIndex + requestModel.recordsPerPage;
|
|
49
|
+
if (endIndex > data.length)
|
|
50
|
+
endIndex = data.length;
|
|
51
|
+
responseModel.data = data.slice(startIndex, endIndex);
|
|
52
|
+
}
|
|
53
|
+
return Promise.resolve(responseModel);
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
console.error(error);
|
|
57
|
+
return Promise.reject(error);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/** @nocollapse */ SlickGridService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickGridService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
62
|
+
/** @nocollapse */ SlickGridService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickGridService });
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickGridService, decorators: [{
|
|
64
|
+
type: Injectable
|
|
65
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stZ3JpZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stZ3JpZC9zbGljay1ncmlkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBR2pFLE1BQU0sT0FBTyxnQkFBZ0I7SUFDNUIsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUFJLENBQUM7SUFFekMsS0FBSyxDQUFDLGlCQUFpQixDQUFFLFlBQW1DO1FBQzNELElBQUk7WUFDSCxJQUFJLE1BQU0sR0FBUSxFQUFFLENBQUM7WUFDckIsSUFBSSxZQUFZLENBQUMsZ0JBQWdCO2dCQUNoQyxNQUFNLENBQUMsZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLGdCQUFnQixDQUFDO1lBRXpELG9FQUFvRTtZQUNwRSxJQUFJLFlBQVksQ0FBQyxZQUFZO2dCQUM1QixNQUFNLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUM7WUFFakQsSUFBSSxZQUFZLENBQUMsY0FBYztnQkFDOUIsTUFBTSxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQUMsY0FBYyxDQUFDO1lBRXJELE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxZQUFZLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7WUFFckcsSUFBSSxZQUFZLENBQUMsVUFBVSxFQUFFO2dCQUM1QixNQUFNLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUM7Z0JBQzVDLE1BQU0sQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQzthQUNsRDtZQUVELE9BQU8sTUFBTSxDQUFDLGtCQUFrQixDQUFDO1lBQ2pDLElBQUksWUFBWSxDQUFDLGtCQUFrQjtnQkFDbEMsTUFBTSxDQUFDLGtCQUFrQixHQUFHLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQztZQUU3RCxJQUFJLElBQUksR0FBb0QsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUcsQ0FBQztZQUMvSixJQUFJLEdBQUcsaUJBQWlCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3QjtRQUNELE9BQU8sS0FBSyxFQUFFO1lBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDN0I7SUFFRixDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFlBQW1DLEVBQUUsSUFBVztRQUN4RSxJQUFJO1lBQ0gsSUFBSSxhQUFhLEdBQTJCLElBQUksc0JBQXNCLEVBQUUsQ0FBQztZQUV6RSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUMvQixhQUFhLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztnQkFDL0IsYUFBYSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7YUFDeEI7aUJBQ0k7Z0JBQ0osYUFBYSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO2dCQUN6QyxJQUFJLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLFlBQVksQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztnQkFFbkcsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsWUFBWSxDQUFDLGNBQWMsQ0FBQztnQkFDMUQsSUFBSSxRQUFRLEdBQUcsVUFBVSxHQUFHLFlBQVksQ0FBQyxjQUFjLENBQUM7Z0JBQ3hELElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNO29CQUN6QixRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDeEIsYUFBYSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQzthQUN0RDtZQUVELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUN0QztRQUNELE9BQU8sS0FBSyxFQUFFO1lBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDN0I7SUFFRixDQUFDOztnSUFoRVcsZ0JBQWdCO29JQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBTbGlja0dyaWRSZXF1ZXN0TW9kZWwgfSBmcm9tIFwiLi9zbGljay1ncmlkLXJlcXVlc3QubW9kZWxcIjtcclxuaW1wb3J0IHsgU2xpY2tHcmlkUmVzcG9uc2VNb2RlbCB9IGZyb20gXCIuL3NsaWNrLWdyaWQtcmVzcG9uc2UubW9kZWxcIjtcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgU2xpY2tVdGlsc1NlcnZpY2UgfSBmcm9tIFwiLi4vdXRpbHMvc2xpY2stdXRpbHMuc2VydmljZVwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2xpY2tHcmlkU2VydmljZSB7XHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7IH1cclxuXHJcblx0YXN5bmMgZ2V0RGF0YUZyb21TZXJ2ZXIgKHJlcXVlc3RNb2RlbDogU2xpY2tHcmlkUmVxdWVzdE1vZGVsKTogUHJvbWlzZTxTbGlja0dyaWRSZXNwb25zZU1vZGVsPiB7XHJcblx0XHR0cnkge1xyXG5cdFx0XHRsZXQgcGFyYW1zID0gPGFueT57fTtcclxuXHRcdFx0aWYgKHJlcXVlc3RNb2RlbC5hZGRpdGlvbmFsUGFyYW1zKVxyXG5cdFx0XHRcdHBhcmFtcy5hZGRpdGlvbmFsUGFyYW1zID0gcmVxdWVzdE1vZGVsLmFkZGl0aW9uYWxQYXJhbXM7XHJcblxyXG5cdFx0XHQvLyBJZiB0aGUgdXNlciBoYXMgYSBjdXN0b20gc2VhcmNoIHN0cmluZywgYWRkIGl0IHRvIHRoZSBwYXJhbXMgaGVyZVxyXG5cdFx0XHRpZiAocmVxdWVzdE1vZGVsLnNlYXJjaFN0cmluZylcclxuXHRcdFx0XHRwYXJhbXMuc2VhcmNoU3RyaW5nID0gcmVxdWVzdE1vZGVsLnNlYXJjaFN0cmluZztcclxuXHJcblx0XHRcdGlmIChyZXF1ZXN0TW9kZWwucmVjb3Jkc1BlclBhZ2UpXHJcblx0XHRcdFx0cGFyYW1zLnJlY29yZHNQZXJQYWdlID0gcmVxdWVzdE1vZGVsLnJlY29yZHNQZXJQYWdlO1xyXG5cclxuXHRcdFx0cGFyYW1zLnBhZ2UgPSAocmVxdWVzdE1vZGVsLnBhZ2UgPT09IG51bGwgfHwgcmVxdWVzdE1vZGVsLnBhZ2UgPT09IHVuZGVmaW5lZCkgPyAxOiByZXF1ZXN0TW9kZWwucGFnZTtcclxuXHJcblx0XHRcdGlmIChyZXF1ZXN0TW9kZWwuc29ydENvbHVtbikge1xyXG5cdFx0XHRcdHBhcmFtcy5zb3J0Q29sdW1uID0gcmVxdWVzdE1vZGVsLnNvcnRDb2x1bW47XHJcblx0XHRcdFx0cGFyYW1zLnNvcnREaXJlY3Rpb24gPSByZXF1ZXN0TW9kZWwuc29ydERpcmVjdGlvbjtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0ZGVsZXRlIHBhcmFtcy5jb2x1bW5TZWFyY2hWYWx1ZXM7XHJcblx0XHRcdGlmIChyZXF1ZXN0TW9kZWwuY29sdW1uU2VhcmNoVmFsdWVzKVxyXG5cdFx0XHRcdHBhcmFtcy5jb2x1bW5TZWFyY2hWYWx1ZXMgPSByZXF1ZXN0TW9kZWwuY29sdW1uU2VhcmNoVmFsdWVzO1xyXG5cclxuXHRcdFx0bGV0IGRhdGE6IFNsaWNrR3JpZFJlc3BvbnNlTW9kZWwgPSAoPFNsaWNrR3JpZFJlc3BvbnNlTW9kZWw+YXdhaXQgdGhpcy5odHRwLnBvc3QocmVxdWVzdE1vZGVsLnVybCwgcGFyYW1zLCB7IGhlYWRlcnM6IHJlcXVlc3RNb2RlbC5odHRwSGVhZGVycyB9KS50b1Byb21pc2UoKSk7XHJcblx0XHRcdGRhdGEgPSBTbGlja1V0aWxzU2VydmljZS5kYXRlU2FuaXRpemUoZGF0YSk7XHJcblx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoZGF0YSk7XHJcblx0XHR9XHJcblx0XHRjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0Y29uc29sZS5lcnJvcihlcnJvcik7XHJcblx0XHRcdHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7XHJcblx0XHR9XHJcblxyXG5cdH1cclxuXHJcblx0YXN5bmMgZ2V0RGF0YUZyb21EYXRhT2JqKHJlcXVlc3RNb2RlbDogU2xpY2tHcmlkUmVxdWVzdE1vZGVsLCBkYXRhOiBhbnlbXSk6IFByb21pc2U8U2xpY2tHcmlkUmVzcG9uc2VNb2RlbD4ge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0bGV0IHJlc3BvbnNlTW9kZWw6IFNsaWNrR3JpZFJlc3BvbnNlTW9kZWwgPSBuZXcgU2xpY2tHcmlkUmVzcG9uc2VNb2RlbCgpO1xyXG5cdFx0XHRcclxuXHRcdFx0aWYgKCFkYXRhIHx8IGRhdGEubGVuZ3RoID09PSAwKSB7XHJcblx0XHRcdFx0cmVzcG9uc2VNb2RlbC50b3RhbFJlY29yZHMgPSAwO1xyXG5cdFx0XHRcdHJlc3BvbnNlTW9kZWwuZGF0YSA9IFtdO1xyXG5cdFx0XHR9XHJcblx0XHRcdGVsc2Uge1xyXG5cdFx0XHRcdHJlc3BvbnNlTW9kZWwudG90YWxSZWNvcmRzID0gZGF0YS5sZW5ndGg7XHJcblx0XHRcdFx0bGV0IHBhZ2UgPSAocmVxdWVzdE1vZGVsLnBhZ2UgPT09IG51bGwgfHwgcmVxdWVzdE1vZGVsLnBhZ2UgPT09IHVuZGVmaW5lZCkgPyAxIDogcmVxdWVzdE1vZGVsLnBhZ2U7XHJcblxyXG5cdFx0XHRcdGxldCBzdGFydEluZGV4ID0gKHBhZ2UgLSAxKSAqIHJlcXVlc3RNb2RlbC5yZWNvcmRzUGVyUGFnZTtcclxuXHRcdFx0XHRsZXQgZW5kSW5kZXggPSBzdGFydEluZGV4ICsgcmVxdWVzdE1vZGVsLnJlY29yZHNQZXJQYWdlO1xyXG5cdFx0XHRcdGlmIChlbmRJbmRleCA+IGRhdGEubGVuZ3RoKVxyXG5cdFx0XHRcdFx0ZW5kSW5kZXggPSBkYXRhLmxlbmd0aDtcclxuXHRcdFx0XHRyZXNwb25zZU1vZGVsLmRhdGEgPSBkYXRhLnNsaWNlKHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXNwb25zZU1vZGVsKTtcclxuXHRcdH1cclxuXHRcdGNhdGNoIChlcnJvcikge1xyXG5cdFx0XHRjb25zb2xlLmVycm9yKGVycm9yKTtcclxuXHRcdFx0cmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9yKTtcclxuXHRcdH1cclxuXHJcblx0fVxyXG59Il19
|
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ViewChild, forwardRef } from "@angular/core";
|
|
2
|
+
import { SlickMultiSelectService } from "./slick-multi-select.service";
|
|
3
|
+
import { NG_VALUE_ACCESSOR } from "@angular/forms";
|
|
4
|
+
import { SlickSleepService } from "../utils/slick-sleep.service";
|
|
5
|
+
import { SlickUtilsService } from "../utils/slick-utils.service";
|
|
6
|
+
import { SlickInitService } from "../utils/slick-init.service";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "./slick-multi-select.service";
|
|
9
|
+
import * as i2 from "@angular/common";
|
|
10
|
+
export class SlickMultiSelectComponent {
|
|
11
|
+
constructor(ngZone, slickMultiSelectService, el) {
|
|
12
|
+
this.ngZone = ngZone;
|
|
13
|
+
this.slickMultiSelectService = slickMultiSelectService;
|
|
14
|
+
this.el = el;
|
|
15
|
+
this.placeholder = '';
|
|
16
|
+
this.idFieldName = "id";
|
|
17
|
+
this.textFieldName = "text";
|
|
18
|
+
this.disabled = false;
|
|
19
|
+
this.allowEmpty = 'true';
|
|
20
|
+
this.width = '100%';
|
|
21
|
+
this.listWidth = '100%';
|
|
22
|
+
this.height = '300px';
|
|
23
|
+
this.showLoadingMessage = false;
|
|
24
|
+
this.onExpand = new EventEmitter();
|
|
25
|
+
this.onCollapse = new EventEmitter();
|
|
26
|
+
this.onSelect = new EventEmitter();
|
|
27
|
+
// This is necessary so that the scroll and resize events can add and remove the event properly,
|
|
28
|
+
// as well as getting the correct ES6 function
|
|
29
|
+
this.fnDocumentClick = (e) => this.documentClick(e);
|
|
30
|
+
this.keyboardActive = false;
|
|
31
|
+
this.expanded = false;
|
|
32
|
+
this.filterText = '';
|
|
33
|
+
this.isAndroid = ((SlickInitService.getPlatform() || '').toLowerCase() === 'android');
|
|
34
|
+
this.skipClickExpand = false;
|
|
35
|
+
this.propagateChange = (_) => { };
|
|
36
|
+
this.uuid = SlickUtilsService.newGuid();
|
|
37
|
+
}
|
|
38
|
+
async ngAfterViewInit() {
|
|
39
|
+
// Remove this from the inline version and put it on the body so that it doesn't hide behind the bottom
|
|
40
|
+
// of a div when it expands beyond the bottom.
|
|
41
|
+
this.multiSelectList.nativeElement.remove(this.multiSelectList);
|
|
42
|
+
document.body.appendChild(this.multiSelectList.nativeElement);
|
|
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 { }
|
|
79
|
+
}
|
|
80
|
+
async onKeyboardIconClicked() {
|
|
81
|
+
if (this.keyboardActive === true) {
|
|
82
|
+
this.collapse();
|
|
83
|
+
this.keyboardActive = false;
|
|
84
|
+
this.selectedText = '';
|
|
85
|
+
this.selectedTextInputRef.nativeElement.value = '';
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
this.keyboardActive = true;
|
|
89
|
+
await SlickSleepService.sleep();
|
|
90
|
+
this.selectedTextInputRef.nativeElement.focus();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
async expand() {
|
|
94
|
+
if (this.disabled)
|
|
95
|
+
return;
|
|
96
|
+
this.reposition();
|
|
97
|
+
await SlickSleepService.sleep();
|
|
98
|
+
this.multiSelectList.nativeElement.style.display = "inline-block";
|
|
99
|
+
let selectedItems = this.multiSelectList.nativeElement.getElementsByClassName("selected");
|
|
100
|
+
if (selectedItems && selectedItems.length > 0)
|
|
101
|
+
selectedItems[0].scrollIntoView({ block: 'nearest' });
|
|
102
|
+
this.expanded = true;
|
|
103
|
+
// This is necessary, otherwise `this` in the reposition function will be window
|
|
104
|
+
// and not the component.
|
|
105
|
+
// Since angular has no way to use the third parameter, I'm doing this in raw js
|
|
106
|
+
document.addEventListener("click", this.fnDocumentClick, true);
|
|
107
|
+
if (this.onExpand)
|
|
108
|
+
this.onExpand.emit();
|
|
109
|
+
}
|
|
110
|
+
collapse() {
|
|
111
|
+
this.expanded = false;
|
|
112
|
+
this.multiSelectList.nativeElement.style.display = "none";
|
|
113
|
+
// Since angular has no way to use the third parameter, I'm doing this in raw js
|
|
114
|
+
document.removeEventListener("click", this.fnDocumentClick, true);
|
|
115
|
+
if (this.onCollapse)
|
|
116
|
+
this.onCollapse.emit();
|
|
117
|
+
}
|
|
118
|
+
async reposition() {
|
|
119
|
+
await SlickSleepService.sleep();
|
|
120
|
+
let rect = this.containerDiv.nativeElement.getBoundingClientRect();
|
|
121
|
+
let containerLeft = rect.left;
|
|
122
|
+
let containerTop = rect.top;
|
|
123
|
+
let containerHeight = this.containerDiv.nativeElement.offsetHeight;
|
|
124
|
+
let containerWidth = rect.width;
|
|
125
|
+
this.width = containerWidth;
|
|
126
|
+
if (this.listWidth === '100%')
|
|
127
|
+
this.listGroupWidth = this.width;
|
|
128
|
+
else if (this.listWidth === 'auto')
|
|
129
|
+
this.listGroupWidth = "auto";
|
|
130
|
+
else
|
|
131
|
+
this.listGroupWidth = this.listWidth;
|
|
132
|
+
this.top = (containerTop + containerHeight);
|
|
133
|
+
this.left = containerLeft;
|
|
134
|
+
}
|
|
135
|
+
documentClick(e) {
|
|
136
|
+
if (!this.expanded || !e.target)
|
|
137
|
+
return;
|
|
138
|
+
// If they clicked on the keyboard icon, don't do anything
|
|
139
|
+
if (SlickUtilsService.checkParentClassExists(e.target, "slick-multi-select_mobile-container") &&
|
|
140
|
+
SlickUtilsService.checkParentIdExists(e.target, "slick-multi-select_" + this.uuid))
|
|
141
|
+
return;
|
|
142
|
+
const clickedInside = SlickUtilsService.checkParentClassExists(e.target, "slick-multi-select_list-item");
|
|
143
|
+
if (!clickedInside) {
|
|
144
|
+
this.keyboardActive = false;
|
|
145
|
+
this.selectedText = '';
|
|
146
|
+
this.selectedTextInputRef.nativeElement.value = '';
|
|
147
|
+
this.collapse();
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
selectItem(id) {
|
|
151
|
+
let item = this.slickMultiSelectService.getSelectedItem(this.visibleItems, id);
|
|
152
|
+
if (item) {
|
|
153
|
+
if (this.onSelect)
|
|
154
|
+
this.onSelect.emit(item);
|
|
155
|
+
if (!this.selectedIds)
|
|
156
|
+
this.selectedIds = [];
|
|
157
|
+
this.selectedIds.push(id);
|
|
158
|
+
this.propagateChange(this.selectedIds);
|
|
159
|
+
this.visibleItems = this.slickMultiSelectService.getVisibleItems(this.items, this.selectedIds, this.idFieldName, this.textFieldName);
|
|
160
|
+
this.selectedItems = this.slickMultiSelectService.getSelectedItems(this.items, this.selectedIds, this.idFieldName, this.textFieldName);
|
|
161
|
+
this.reposition();
|
|
162
|
+
this.selectedText = '';
|
|
163
|
+
this.selectedTextInputRef.nativeElement.value = '';
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
setFocus(showMobileKeyboard = false) {
|
|
167
|
+
this.selectedTextInputRef.nativeElement.focus();
|
|
168
|
+
if (showMobileKeyboard === true)
|
|
169
|
+
this.keyboardActive = true;
|
|
170
|
+
}
|
|
171
|
+
async onFocus() {
|
|
172
|
+
this.visibleItems = this.slickMultiSelectService.getVisibleItems(this.items, this.selectedIds, this.idFieldName, this.textFieldName);
|
|
173
|
+
this.selectedItems = this.slickMultiSelectService.getSelectedItems(this.items, this.selectedIds, this.idFieldName, this.textFieldName);
|
|
174
|
+
this.filterText = '';
|
|
175
|
+
this.selectedTextInputRef.nativeElement.focus();
|
|
176
|
+
// This is kind of hacky, but if onFocus is called by clicking the multiSelect, the onMultiSelectClick event is called as well
|
|
177
|
+
// That function will expand or collapse, depending on the state. Since this expands, it thinks it needs to collapse.
|
|
178
|
+
// 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
|
|
179
|
+
// the click event. So only wait for 1/2 second.
|
|
180
|
+
this.skipClickExpand = true;
|
|
181
|
+
this.expand();
|
|
182
|
+
await SlickSleepService.sleep(500);
|
|
183
|
+
this.skipClickExpand = false;
|
|
184
|
+
}
|
|
185
|
+
async onKeyUp(e) {
|
|
186
|
+
e.stopPropagation();
|
|
187
|
+
e.preventDefault();
|
|
188
|
+
// If this is android, it won't pass us any key data so just read the entire input element
|
|
189
|
+
if (this.isAndroid === true) {
|
|
190
|
+
await SlickSleepService.sleep();
|
|
191
|
+
this.filterText = this.selectedTextInputRef.nativeElement.value;
|
|
192
|
+
this.filterSearch();
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
// Tab/enter
|
|
196
|
+
if (e.which === 9 || e.which === 13) {
|
|
197
|
+
if (this.filterText && this.selectedIndex !== null && this.selectedIndex !== undefined) {
|
|
198
|
+
this.selectItem(this.visibleItems[this.selectedIndex].id);
|
|
199
|
+
this.filterText = '';
|
|
200
|
+
this.selectedIndex = null;
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
203
|
+
this.collapse();
|
|
204
|
+
this.filterText = '';
|
|
205
|
+
this.selectedText = '';
|
|
206
|
+
this.selectedTextInputRef.nativeElement.value = '';
|
|
207
|
+
this.selectedIndex = null;
|
|
208
|
+
return true;
|
|
209
|
+
}
|
|
210
|
+
// Esc
|
|
211
|
+
if (e.which === 27) {
|
|
212
|
+
this.filterText = '';
|
|
213
|
+
this.selectedText = '';
|
|
214
|
+
this.selectedTextInputRef.nativeElement.value = '';
|
|
215
|
+
this.collapse();
|
|
216
|
+
return false;
|
|
217
|
+
}
|
|
218
|
+
// Backspace
|
|
219
|
+
if (e.which === 8 && this.filterText) {
|
|
220
|
+
this.filterText = this.filterText.substring(0, this.filterText.length - 1);
|
|
221
|
+
if (this.filterText.length === 0) {
|
|
222
|
+
this.selectedText = '';
|
|
223
|
+
this.selectedTextInputRef.nativeElement.value = '';
|
|
224
|
+
this.selectedIndex = null;
|
|
225
|
+
this.visibleItems = this.slickMultiSelectService.getVisibleItems(this.items, this.selectedIds, this.idFieldName, this.textFieldName);
|
|
226
|
+
this.selectedItems = this.slickMultiSelectService.getSelectedItems(this.items, this.selectedIds, this.idFieldName, this.textFieldName);
|
|
227
|
+
}
|
|
228
|
+
else
|
|
229
|
+
this.filterSearch();
|
|
230
|
+
return false;
|
|
231
|
+
}
|
|
232
|
+
// Arrowup
|
|
233
|
+
if (e.which === 38) {
|
|
234
|
+
if (this.selectedIndex === null || this.selectedIndex === undefined)
|
|
235
|
+
this.selectedIndex = 0;
|
|
236
|
+
if (this.selectedIndex > 0)
|
|
237
|
+
this.selectedIndex--;
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
// Arrowdown
|
|
241
|
+
if (e.which === 40) {
|
|
242
|
+
if (this.selectedIndex === null || this.selectedIndex === undefined)
|
|
243
|
+
this.selectedIndex = -1;
|
|
244
|
+
if (!this.expanded || !this.visibleItems)
|
|
245
|
+
this.expand();
|
|
246
|
+
if (this.selectedIndex < this.visibleItems.length - 1)
|
|
247
|
+
this.selectedIndex++;
|
|
248
|
+
return false;
|
|
249
|
+
}
|
|
250
|
+
// If F1 is pressed, key length will be 2
|
|
251
|
+
if (e.key.length > 1 || e.ctrlKey || e.altKey)
|
|
252
|
+
return false;
|
|
253
|
+
if (e.which >= 32 && e.which <= 126) {
|
|
254
|
+
this.filterText += e.key;
|
|
255
|
+
this.filterSearch();
|
|
256
|
+
}
|
|
257
|
+
return true;
|
|
258
|
+
}
|
|
259
|
+
async filterSearch() {
|
|
260
|
+
if (!this.expanded)
|
|
261
|
+
this.expand();
|
|
262
|
+
this.visibleItems = this.slickMultiSelectService.getVisibleItems(this.items, this.selectedIds, this.idFieldName, this.textFieldName);
|
|
263
|
+
this.visibleItems = this.visibleItems.filter(x => x.text.toLowerCase().indexOf(this.filterText.toLowerCase()) === 0);
|
|
264
|
+
if (this.visibleItems.length > 0) {
|
|
265
|
+
this.selectedIndex = 0;
|
|
266
|
+
this.selectedText = this.visibleItems[0].text;
|
|
267
|
+
if (this.isAndroid === false) {
|
|
268
|
+
await SlickSleepService.sleep();
|
|
269
|
+
this.selectedTextInputRef.nativeElement.value = this.selectedText;
|
|
270
|
+
this.selectedTextInputRef.nativeElement.setSelectionRange(this.filterText.length, this.selectedText.length);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
else {
|
|
274
|
+
this.selectedIndex = null;
|
|
275
|
+
if (this.isAndroid === false) {
|
|
276
|
+
this.selectedText = this.filterText;
|
|
277
|
+
this.selectedTextInputRef.nativeElement.value = this.selectedText;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
this.reposition();
|
|
281
|
+
}
|
|
282
|
+
onMultiSelectClicked() {
|
|
283
|
+
if (this.skipClickExpand === true) {
|
|
284
|
+
this.skipClickExpand = false;
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
this.selectedTextInputRef.nativeElement.focus();
|
|
288
|
+
if (this.expanded === false)
|
|
289
|
+
this.expand();
|
|
290
|
+
else
|
|
291
|
+
this.collapse();
|
|
292
|
+
}
|
|
293
|
+
onItemClick(item) {
|
|
294
|
+
this.selectItem(item.id);
|
|
295
|
+
if (this.keyboardActive === true)
|
|
296
|
+
this.selectedTextInputRef.nativeElement.focus();
|
|
297
|
+
}
|
|
298
|
+
onRemoveItem(item) {
|
|
299
|
+
this.selectedIds = this.selectedIds.filter(id => id !== item.id);
|
|
300
|
+
this.visibleItems = this.slickMultiSelectService.getVisibleItems(this.items, this.selectedIds, this.idFieldName, this.textFieldName);
|
|
301
|
+
this.selectedItems = this.slickMultiSelectService.getSelectedItems(this.items, this.selectedIds, this.idFieldName, this.textFieldName);
|
|
302
|
+
this.propagateChange(this.selectedIds);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
/** @nocollapse */ SlickMultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickMultiSelectComponent, deps: [{ token: i0.NgZone }, { token: i1.SlickMultiSelectService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
306
|
+
/** @nocollapse */ SlickMultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: SlickMultiSelectComponent, selector: "slick-multi-select", inputs: { placeholder: "placeholder", items: "items", idFieldName: "idFieldName", textFieldName: "textFieldName", disabled: "disabled", allowEmpty: "allowEmpty", width: "width", listWidth: "listWidth", height: "height", showLoadingMessage: "showLoadingMessage", showDebug: "showDebug", tabindex: "tabindex", isMobile: "isMobile" }, outputs: { onExpand: "onExpand", onCollapse: "onCollapse", onSelect: "onSelect" }, providers: [SlickMultiSelectService,
|
|
307
|
+
{
|
|
308
|
+
provide: NG_VALUE_ACCESSOR,
|
|
309
|
+
useExisting: forwardRef((() => SlickMultiSelectComponent)),
|
|
310
|
+
multi: true,
|
|
311
|
+
}], viewQueries: [{ propertyName: "containerDiv", first: true, predicate: ["containerDiv"], descendants: true }, { propertyName: "multiSelectList", first: true, predicate: ["multiSelectList"], descendants: true }, { propertyName: "selectedTextInputRef", first: true, predicate: ["selectedTextInputRef"], descendants: true }], usesOnChanges: true, ngImport: i0, 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>", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
312
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickMultiSelectComponent, decorators: [{
|
|
313
|
+
type: Component,
|
|
314
|
+
args: [{ selector: 'slick-multi-select', providers: [SlickMultiSelectService,
|
|
315
|
+
{
|
|
316
|
+
provide: NG_VALUE_ACCESSOR,
|
|
317
|
+
useExisting: forwardRef((() => SlickMultiSelectComponent)),
|
|
318
|
+
multi: true,
|
|
319
|
+
}], 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>" }]
|
|
320
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.SlickMultiSelectService }, { type: i0.ElementRef }]; }, propDecorators: { placeholder: [{
|
|
321
|
+
type: Input
|
|
322
|
+
}], items: [{
|
|
323
|
+
type: Input
|
|
324
|
+
}], idFieldName: [{
|
|
325
|
+
type: Input
|
|
326
|
+
}], textFieldName: [{
|
|
327
|
+
type: Input
|
|
328
|
+
}], disabled: [{
|
|
329
|
+
type: Input
|
|
330
|
+
}], allowEmpty: [{
|
|
331
|
+
type: Input
|
|
332
|
+
}], width: [{
|
|
333
|
+
type: Input
|
|
334
|
+
}], listWidth: [{
|
|
335
|
+
type: Input
|
|
336
|
+
}], height: [{
|
|
337
|
+
type: Input
|
|
338
|
+
}], showLoadingMessage: [{
|
|
339
|
+
type: Input
|
|
340
|
+
}], showDebug: [{
|
|
341
|
+
type: Input
|
|
342
|
+
}], tabindex: [{
|
|
343
|
+
type: Input
|
|
344
|
+
}], isMobile: [{
|
|
345
|
+
type: Input
|
|
346
|
+
}], onExpand: [{
|
|
347
|
+
type: Output
|
|
348
|
+
}], onCollapse: [{
|
|
349
|
+
type: Output
|
|
350
|
+
}], onSelect: [{
|
|
351
|
+
type: Output
|
|
352
|
+
}], containerDiv: [{
|
|
353
|
+
type: ViewChild,
|
|
354
|
+
args: ["containerDiv"]
|
|
355
|
+
}], multiSelectList: [{
|
|
356
|
+
type: ViewChild,
|
|
357
|
+
args: ["multiSelectList"]
|
|
358
|
+
}], selectedTextInputRef: [{
|
|
359
|
+
type: ViewChild,
|
|
360
|
+
args: ["selectedTextInputRef"]
|
|
361
|
+
}] } });
|
|
362
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stbXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3NsaWNrLW11bHRpLXNlbGVjdC9zbGljay1tdWx0aS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stbXVsdGktc2VsZWN0L3NsaWNrLW11bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFrRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RLLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7OztBQVkvRCxNQUFNLE9BQU8seUJBQXlCO0lBMkNyQyxZQUFvQixNQUFjLEVBQ3pCLHVCQUFnRCxFQUNoRCxFQUFjO1FBRkgsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUN6Qiw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELE9BQUUsR0FBRixFQUFFLENBQVk7UUE1Q2QsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFFekIsZ0JBQVcsR0FBVyxJQUFJLENBQUM7UUFDM0Isa0JBQWEsR0FBVyxNQUFNLENBQUM7UUFDL0IsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixlQUFVLEdBQVcsTUFBTSxDQUFDO1FBQzVCLFVBQUssR0FB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VUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUVvQixZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ0ssZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBQ08sb0JBQW9CO3NCQUF0RCxTQUFTO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgTmdab25lLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQsIGZvcndhcmRSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBTbGlja011bHRpU2VsZWN0U2VydmljZSB9IGZyb20gXCIuL3NsaWNrLW11bHRpLXNlbGVjdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBTbGlja1NsZWVwU2VydmljZSB9IGZyb20gXCIuLi91dGlscy9zbGljay1zbGVlcC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNsaWNrVXRpbHNTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL3NsaWNrLXV0aWxzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2xpY2tJbml0U2VydmljZSB9IGZyb20gXCIuLi91dGlscy9zbGljay1pbml0LnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnc2xpY2stbXVsdGktc2VsZWN0JyxcclxuXHR0ZW1wbGF0ZVVybDogJ3NsaWNrLW11bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcblx0cHJvdmlkZXJzOiBbU2xpY2tNdWx0aVNlbGVjdFNlcnZpY2UsXHJcblx0XHR7XHJcblx0XHRcdHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG5cdFx0XHR1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTbGlja011bHRpU2VsZWN0Q29tcG9uZW50KSxcclxuXHRcdFx0bXVsdGk6IHRydWUsXHJcblx0XHR9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2xpY2tNdWx0aVNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblx0QElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xyXG5cdEBJbnB1dCgpIGl0ZW1zOiBhbnlbXTtcclxuXHRASW5wdXQoKSBpZEZpZWxkTmFtZTogc3RyaW5nID0gXCJpZFwiO1xyXG5cdEBJbnB1dCgpIHRleHRGaWVsZE5hbWU6IHN0cmluZyA9IFwidGV4dFwiO1xyXG5cdEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblx0QElucHV0KCkgYWxsb3dFbXB0eTogc3RyaW5nID0gJ3RydWUnO1xyXG5cdEBJbnB1dCgpIHdpZHRoOiBzdHJpbmcgPSAnMTAwJSc7XHJcblx0QElucHV0KCkgbGlzdFdpZHRoOiBzdHJpbmcgPSAnMTAwJSc7XHJcblx0QElucHV0KCkgaGVpZ2h0OiBzdHJpbmcgPSAnMzAwcHgnO1xyXG5cdEBJbnB1dCgpIHNob3dMb2FkaW5nTWVzc2FnZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdEBJbnB1dCgpIHNob3dEZWJ1ZzogYm9vbGVhbjtcclxuXHRASW5wdXQoKSB0YWJpbmRleDogbnVtYmVyO1xyXG5cdEBJbnB1dCgpIGlzTW9iaWxlOiBib29sZWFuO1xyXG5cclxuXHRAT3V0cHV0KCkgb25FeHBhbmQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHRAT3V0cHV0KCkgb25Db2xsYXBzZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cdEBPdXRwdXQoKSBvblNlbGVjdDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcblx0QFZpZXdDaGlsZChcImNvbnRhaW5lckRpdlwiKSBjb250YWluZXJEaXY6IEVsZW1lbnRSZWY7XHJcblx0QFZpZXdDaGlsZChcIm11bHRpU2VsZWN0TGlzdFwiKSBtdWx0aVNlbGVjdExpc3Q6IEVsZW1lbnRSZWY7XHJcblx0QFZpZXdDaGlsZChcInNlbGVjdGVkVGV4dElucHV0UmVmXCIpIHNlbGVjdGVkVGV4dElucHV0UmVmOiBFbGVtZW50UmVmO1xyXG5cclxuXHQvLyBUaGlzIGlzIG5lY2Vzc2FyeSBzbyB0aGF0IHRoZSBzY3JvbGwgYW5kIHJlc2l6ZSBldmVudHMgY2FuIGFkZCBhbmQgcmVtb3ZlIHRoZSBldmVudCBwcm9wZXJseSxcclxuXHQvLyBhcyB3ZWxsIGFzIGdldHRpbmcgdGhlIGNvcnJlY3QgRVM2IGZ1bmN0aW9uXHJcblx0cHJpdmF0ZSBmbkRvY3VtZW50Q2xpY2sgPSAoZSkgPT4gdGhpcy5kb2N1bWVudENsaWNrKGUpO1xyXG5cclxuXHR1dWlkOiBzdHJpbmc7XHJcblx0c2VsZWN0ZWRJZHM6IHN0cmluZ1tdO1xyXG5cdHNlbGVjdGVkVGV4dDogc3RyaW5nO1xyXG5cdGtleWJvYXJkQWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcblx0ZXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRmaWx0ZXJUZXh0OiBzdHJpbmcgPSAnJztcclxuXHRzZWxlY3RlZEluZGV4OiBudW1iZXI7XHJcblx0c2VsZWN0ZWRJdGVtczogYW55W107XHJcblx0dmlzaWJsZUl0ZW1zOiBhbnlbXTtcclxuXHRsZWZ0OiBzdHJpbmc7XHJcblx0dG9wOiBzdHJpbmc7XHJcblx0bGlzdEdyb3VwV2lkdGg6IHN0cmluZztcclxuXHRpc0FuZHJvaWQ6IGJvb2xlYW4gPSAoKFNsaWNrSW5pdFNlcnZpY2UuZ2V0UGxhdGZvcm0oKSB8fCAnJykudG9Mb3dlckNhc2UoKSA9PT0gJ2FuZHJvaWQnKTtcclxuXHJcblx0cHJpdmF0ZSBza2lwQ2xpY2tFeHBhbmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcclxuXHRcdHByaXZhdGUgc2xpY2tNdWx0aVNlbGVjdFNlcnZpY2U6IFNsaWNrTXVsdGlTZWxlY3RTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBlbDogRWxlbWVudFJlZikge1xyXG5cdFx0dGhpcy51dWlkID0gU2xpY2tVdGlsc1NlcnZpY2UubmV3R3VpZCgpO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgbmdBZnRlclZpZXdJbml0KCkge1xyXG5cdFx0Ly8gUmVtb3ZlIHRoaXMgZnJvbSB0aGUgaW5saW5lIHZlcnNpb24gYW5kIHB1dCBpdCBvbiB0aGUgYm9keSBzbyB0aGF0IGl0IGRvZXNuJ3QgaGlkZSBiZWhpbmQgdGhlIGJvdHRvbVxyXG5cdFx0Ly8gb2YgYSBkaXYgd2hlbiBpdCBleHBhbmRzIGJleW9uZCB0aGUgYm90dG9tLlxyXG5cdFx0dGhpcy5tdWx0aVNlbGVjdExpc3QubmF0aXZlRWxlbWVudC5yZW1vdmUodGhpcy5tdWx0aVNlbGVjdExpc3QpO1xyXG5cdFx0ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLm11bHRpU2VsZWN0TGlzdC5uYXRpdmVFbGVtZW50KTtcclxuXHR9XHJcblxyXG5cdHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcclxuXHJcblx0Ly8gdGhpcyBpcyB0aGUgaW5pdGlhbCB2YWx1ZSBzZXQgdG8gdGhlIGNvbXBvbmVudFxyXG5cdHB1YmxpYyB3cml0ZVZhbHVlKG9iajogYW55KSB7XHJcblx0XHRpZiAob2JqKSBcclxuXHRcdFx0dGhpcy5zZWxlY3RlZElkcyA9IG9iajtcclxuXHRcdGVsc2VcclxuXHRcdFx0dGhpcy5zZWxlY3RlZElkcyA9IG51bGw7XHJcblxyXG5cdFx0dGhpcy52aXNpYmxlSXRlbXMgPSB0aGlzLnNsaWNrTXVsdGlTZWxlY3RTZXJ2aWNlLmdldFZpc2libGVJdGVtcyh0aGlzLml0ZW1zLCB0aGlzLnNlbGVjdGVkSWRzLCB0aGlzLmlkRmllbGROYW1lLCB0aGlzLnRleHRGaWVsZE5hbWUpO1xyXG5cdFx0dGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zbGlja011bHRpU2VsZWN0U2VydmljZS5nZXRTZWxlY3RlZEl0ZW1zKHRoaXMuaXRlbXMsIHRoaXMuc2VsZWN0ZWRJZHMsIHRoaXMuaWRGaWVsZE5hbWUsIHRoaXMudGV4dEZpZWxkTmFtZSk7XHJcblx0fVxyXG5cclxuXHQvLyByZWdpc3RlcnMgJ2ZuJyB0aGF0IHdpbGwgYmUgZmlyZWQgd2hlbiBjaGFuZ2VzIGFyZSBtYWRlXHJcblx0Ly8gdGhpcyBpcyBob3cgd2UgZW1pdCB0aGUgY2hhbmdlcyBiYWNrIHRvIHRoZSBmb3JtXHJcblx0cHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG5cdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcclxuXHR9XHJcblxyXG5cdC8vIG5vdCB1c2VkLCB1c2VkIGZvciB0b3VjaCBpbnB1dFxyXG5cdHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZCgpIHsgfVxyXG5cclxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcblx0XHRpZiAoY2hhbmdlcy5pc01vYmlsZSkge1xyXG5cdFx0XHR0aGlzLmlzTW9iaWxlID0gKHRoaXMuaXNNb2JpbGUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScpID8gdHJ1ZSA6IGZhbHNlO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGNoYW5nZXMuaXRlbXMpIHtcclxuXHRcdFx0dGhpcy52aXNpYmxlSXRlbXMgPSB0aGlzLnNsaWNrTXVsdGlTZWxlY3RTZXJ2aWNlLmdldFZpc2libGVJdGVtcyh0aGlzLml0ZW1zLCB0aGlzLnNlbGVjdGVkSWRzLCB0aGlzLmlkRmllbGROYW1lLCB0aGlzLnRleHRGaWVsZE5hbWUpO1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNsaWNrTXVsdGlTZWxlY3RTZXJ2aWNlLmdldFNlbGVjdGVkSXRlbXModGhpcy5pdGVtcywgdGhpcy5zZWxlY3RlZElkcywgdGhpcy5pZEZpZWxkTmFtZSwgdGhpcy50ZXh0RmllbGROYW1lKTtcclxuXHRcdFx0aWYgKHRoaXMuc2VsZWN0ZWRUZXh0SW5wdXRSZWYgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PSB0aGlzLnNlbGVjdGVkVGV4dElucHV0UmVmLm5hdGl2ZUVsZW1lbnQpIFxyXG5cdFx0XHRcdHRoaXMuZXhwYW5kKCk7XHRcdFx0XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdHRoaXMuY29sbGFwc2UoKTtcclxuXHRcdGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0aGlzLmZuRG9jdW1lbnRDbGljaywgdHJ1ZSk7XHRcclxuXHJcblx0XHQvLyBpdCdzIG9rYXkgaWYgdGhpcyBmYWlscy4gIEl0IHdhcyBhbHJlYWR5IHJlbW92ZWRcclxuXHRcdHRyeSB7XHJcblx0XHRcdGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy5tdWx0aVNlbGVjdExpc3QubmF0aXZlRWxlbWVudCk7XHJcblx0XHR9XHJcblx0XHRjYXRjaCB7IH1cclxuXHJcblx0fVxyXG5cclxuXHRhc3luYyBvbktleWJvYXJkSWNvbkNsaWNrZWQoKSB7XHJcblx0XHRpZiAodGhpcy5rZXlib2FyZEFjdGl2ZSA9PT0gdHJ1ZSkge1xyXG5cdFx0XHR0aGlzLmNvbGxhcHNlKCk7XHJcblx0XHRcdHRoaXMua2V5Ym9hcmRBY3RpdmUgPSBmYWxzZTtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZFRleHQgPSAnJztcclxuXHRcdFx0KDxIVE1MSW5wdXRFbGVtZW50PnRoaXMuc2VsZWN0ZWRUZXh0SW5wdXRSZWYubmF0aXZlRWxlbWVudCkudmFsdWUgPSAnJztcclxuXHRcdH1cclxuXHRcdGVsc2Uge1xyXG5cdFx0XHR0aGlzLmtleWJvYXJkQWN0aXZlID0gdHJ1ZTtcclxuXHRcdFx0YXdhaXQgU2xpY2tTbGVlcFNlcnZpY2Uuc2xlZXAoKTtcclxuXHRcdFx0KDxIVE1MRWxlbWVudD50aGlzLnNlbGVjdGVkVGV4dElucHV0UmVmLm5hdGl2ZUVsZW1lbnQpLmZvY3VzKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRhc3luYyBleHBhbmQoKSB7XHJcblx0XHRpZiAodGhpcy5kaXNhYmxlZClcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdHRoaXMucmVwb3NpdGlvbigpO1xyXG5cclxuXHRcdGF3YWl0IFNsaWNrU2xlZXBTZXJ2aWNlLnNsZWVwKCk7XHJcblx0XHR0aGlzLm11bHRpU2VsZWN0TGlzdC5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSBcImlubGluZS1ibG9ja1wiO1xyXG5cclxuXHRcdGxldCBzZWxlY3RlZEl0ZW1zID0gdGhpcy5tdWx0aVNlbGVjdExpc3QubmF0aXZlRWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwic2VsZWN0ZWRcIik7XHJcblx0XHRpZiAoc2VsZWN0ZWRJdGVtcyAmJiBzZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDApIFxyXG5cdFx0XHQoPEhUTUxFbGVtZW50PnNlbGVjdGVkSXRlbXNbMF0pLnNjcm9sbEludG9WaWV3KHsgYmxvY2s6ICduZWFyZXN0JyB9KTtcdFx0XHJcblxyXG5cdFx0dGhpcy5leHBhbmRlZCA9IHRydWU7XHJcblxyXG5cdFx0Ly8gVGhpcyBpcyBuZWNlc3NhcnksIG90aGVyd2lzZSBgdGhpc2AgaW4gdGhlIHJlcG9zaXRpb24gZnVuY3Rpb24gd2lsbCBiZSB3aW5kb3dcclxuXHRcdC8vIGFuZCBub3QgdGhlIGNvbXBvbmVudC5cclxuXHRcdC8vIFNpbmNlIGFuZ3VsYXIgaGFzIG5vIHdheSB0byB1c2UgdGhlIHRoaXJkIHBhcmFtZXRlciwgSSdtIGRvaW5nIHRoaXMgaW4gcmF3IGpzXHJcblx0XHRkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5mbkRvY3VtZW50Q2xpY2ssIHRydWUpO1x0XHRcdFxyXG5cclxuXHRcdGlmICh0aGlzLm9uRXhwYW5kKVxyXG5cdFx0XHR0aGlzLm9uRXhwYW5kLmVtaXQoKTtcclxuXHR9XHJcblxyXG5cdGNvbGxhcHNlKCkge1xyXG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm11bHRpU2VsZWN0TGlzdC5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcclxuXHRcdC8vIFNpbmNlIGFuZ3VsYXIgaGFzIG5vIHdheSB0byB1c2UgdGhlIHRoaXJkIHBhcmFtZXRlciwgSSdtIGRvaW5nIHRoaXMgaW4gcmF3IGpzXHJcblx0XHRkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5mbkRvY3VtZW50Q2xpY2ssIHRydWUpO1x0XHJcblxyXG5cdFx0aWYgKHRoaXMub25Db2xsYXBzZSkgXHJcblx0XHRcdHRoaXMub25Db2xsYXBzZS5lbWl0KCk7XHJcblx0fVxyXG5cclxuXHRhc3luYyByZXBvc2l0aW9uKCkge1xyXG5cdFx0YXdhaXQgU2xpY2tTbGVlcFNlcnZpY2Uuc2xlZXAoKTtcclxuXHRcdGxldCByZWN0ID0gdGhpcy5jb250YWluZXJEaXYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHRcdGxldCBjb250YWluZXJMZWZ0ID0gcmVjdC5sZWZ0O1xyXG5cdFx0bGV0IGNvbnRhaW5lclRvcCA9IHJlY3QudG9wO1xyXG5cdFx0bGV0IGNvbnRhaW5lckhlaWdodCA9IHRoaXMuY29udGFpbmVyRGl2Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG5cdFx0bGV0IGNvbnRhaW5lcldpZHRoID0gcmVjdC53aWR0aDtcclxuXHJcblx0XHR0aGlzLndpZHRoID0gY29udGFpbmVyV2lkdGg7XHJcblx0XHRpZiAodGhpcy5saXN0V2lkdGggPT09ICcxMDAlJylcclxuXHRcdFx0dGhpcy5saXN0R3JvdXBXaWR0aCA9IHRoaXMud2lkdGg7XHJcblx0XHRlbHNlIGlmICh0aGlzLmxpc3RXaWR0aCA9PT0gJ2F1dG8nKVxyXG5cdFx0XHR0aGlzLmxpc3RHcm91cFdpZHRoID0gXCJhdXRvXCI7XHJcblx0XHRlbHNlXHJcblx0XHRcdHRoaXMubGlzdEdyb3VwV2lkdGggPSB0aGlzLmxpc3RXaWR0aDtcclxuXHRcdHRoaXMudG9wID0gKGNvbnRhaW5lclRvcCArIGNvbnRhaW5lckhlaWdodCk7XHJcblx0XHR0aGlzLmxlZnQgPSBjb250YWluZXJMZWZ0O1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBkb2N1bWVudENsaWNrKGU6IE1vdXNlRXZlbnQpIHtcclxuXHRcdGlmICghdGhpcy5leHBhbmRlZCB8fCAhZS50YXJnZXQpXHJcblx0XHRcdHJldHVybjtcclxuXHRcdFxyXG5cdFx0Ly8gSWYgdGhleSBjbGlja2VkIG9uIHRoZSBrZXlib2FyZCBpY29uLCBkb24ndCBkbyBhbnl0aGluZ1xyXG5cdFx0aWYgKFNsaWNrVXRpbHNTZXJ2aWNlLmNoZWNrUGFyZW50Q2xhc3NFeGlzdHMoPEhUTUxFbGVtZW50PmUudGFyZ2V0LCBcInNsaWNrLW11bHRpLXNlbGVjdF9tb2JpbGUtY29udGFpbmVyXCIpICYmIFxyXG5cdFx0XHRTbGlja1V0aWxzU2VydmljZS5jaGVja1BhcmVudElkRXhpc3RzKDxIVE1MRWxlbWVudD5lLnRhcmdldCwgXCJzbGljay1tdWx0aS1zZWxlY3RfXCIgKyB0aGlzLnV1aWQpKVxyXG5cdFx0XHRyZXR1cm47XHJcblx0XHRcclxuXHRcdGNvbnN0IGNsaWNrZWRJbnNpZGUgPSBTbGlja1V0aWxzU2VydmljZS5jaGVja1BhcmVudENsYXNzRXhpc3RzKDxIVE1MRWxlbWVudD5lLnRhcmdldCwgXCJzbGljay1tdWx0aS1zZWxlY3RfbGlzdC1pdGVtXCIpO1xyXG5cdFx0aWYgKCFjbGlja2VkSW5zaWRlKSB7XHJcblx0XHRcdHRoaXMua2V5Ym9hcmRBY3RpdmUgPSBmYWxzZTtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZFRleHQgPSAnJztcclxuXHRcdFx0KDxIVE1MSW5wdXRFbGVtZW50PnRoaXMuc2VsZWN0ZWRUZXh0SW5wdXRSZWYubmF0aXZlRWxlbWVudCkudmFsdWUgPSAnJztcclxuXHRcdFx0dGhpcy5jb2xsYXBzZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBzZWxlY3RJdGVtKGlkOiBzdHJpbmcpIHtcclxuXHRcdGxldCBpdGVtID0gdGhpcy5zbGlja011bHRpU2VsZWN0U2VydmljZS5nZXRTZWxlY3RlZEl0ZW0odGhpcy52aXNpYmxlSXRlbXMsIGlkKTtcclxuXHRcdFxyXG5cdFx0aWYgKGl0ZW0pIHtcclxuXHJcblx0XHRcdGlmICh0aGlzLm9uU2VsZWN0KVxyXG5cdFx0XHRcdHRoaXMub25TZWxlY3QuZW1pdChpdGVtKTtcclxuXHJcblx0XHRcdGlmICghdGhpcy5zZWxlY3RlZElkcylcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkSWRzID0gW107XHJcblxyXG5cdFx0XHR0aGlzLnNlbGVjdGVkSWRzLnB1c2goaWQpO1xyXG5cdFx0XHR0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnNlbGVjdGVkSWRzKTtcclxuXHJcblx0XHRcdHRoaXMudmlzaWJsZUl0ZW1zID0gdGhpcy5zbGlja011bHRpU2VsZWN0U2VydmljZS5nZXRWaXNpYmxlSXRlbXModGhpcy5pdGVtcywgdGhpcy5zZWxlY3RlZElkcywgdGhpcy5pZEZpZWxkTmFtZSwgdGhpcy50ZXh0RmllbGROYW1lKTtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zbGlja011bHRpU2VsZWN0U2VydmljZS5nZXRTZWxlY3RlZEl0ZW1zKHRoaXMuaXRlbXMsIHRoaXMuc2VsZWN0ZWRJZHMsIHRoaXMuaWRGaWVsZE5hbWUsIHRoaXMudGV4dEZpZWxkTmFtZSk7XHJcblxyXG5cdFx0XHR0aGlzLnJlcG9zaXRpb24oKTtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZFRleHQgPSAnJztcclxuXHRcdFx0KDxIVE1MSW5wdXRFbGVtZW50PnRoaXMuc2VsZWN0ZWRUZXh0SW5wdXRSZWYubmF0aXZlRWxlbWVudCkudmFsdWUgPSAnJztcclxuXHRcdH1cclxuXHR9XHRcclxuXHJcblx0c2V0Rm9jdXMoc2hvd01vYmlsZUtleWJvYXJkOiBib29sZWFuID0gZmFsc2UpIHtcclxuXHRcdCg8SFRNTEVsZW1lbnQ+dGhpcy5zZWxlY3RlZFRleHRJbnB1dFJlZi5uYXRpdmVFbGVtZW50KS5mb2N1cygpO1xyXG5cdFx0aWYgKHNob3dNb2JpbGVLZXlib2FyZCA9PT0gdHJ1ZSlcclxuXHRcdFx0dGhpcy5rZXlib2FyZEFjdGl2ZSA9IHRydWU7XHJcblx0fVxyXG5cclxuXHRhc3luYyBvbkZvY3VzKCkge1xyXG5cdFx0dGhpcy52aXNpYmxlSXRlbXMgPSB0aGlzLnNsaWNrTXVsdGlTZWxlY3RTZXJ2aWNlLmdldFZpc2libGVJdGVtcyh0aGlzLml0ZW1zLCB0aGlzLnNlbGVjdGVkSWRzLCB0aGlzLmlkRmllbGROYW1lLCB0aGlzLnRleHRGaWVsZE5hbWUpO1xyXG5cdFx0dGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zbGlja011bHRpU2VsZWN0U2VydmljZS5nZXRTZWxlY3RlZEl0ZW1zKHRoaXMuaXRlbXMsIHRoaXMuc2VsZWN0ZWRJZHMsIHRoaXMuaWRGaWVsZE5hbWUsIHRoaXMudGV4dEZpZWxkTmFtZSk7XHJcblxyXG5cdFx0dGhpcy5maWx0ZXJUZXh0ID0gJyc7XHJcblx0XHQoPEhUTUxJbnB1dEVsZW1lbnQ+dGhpcy5zZWxlY3RlZFRleHRJbnB1dFJlZi5uYXRpdmVFbGVtZW50KS5mb2N1cygpO1xyXG5cclxuXHRcdC8vIFRoaXMgaXMga2luZCBvZiBoYWNreSwgYnV0IGlmIG9uRm9jdXMgaXMgY2FsbGVkIGJ5IGNsaWNraW5nIHRoZSBtdWx0aVNlbGVjdCwgdGhlIG9uTXVsdGlTZWxlY3RDbGljayBldmVudCBpcyBjYWxsZWQgYXMgd2VsbFxyXG5cdFx0Ly8gVGhhdCBmdW5jdGlvbiB3aWxsIGV4cGFuZCBvciBjb2xsYXBzZSwgZGVwZW5kaW5nIG9uIHRoZSBzdGF0ZS4gIFNpbmNlIHRoaXMgZXhwYW5kcywgaXQgdGhpbmtzIGl0IG5lZWRzIHRvIGNvbGxhcHNlLlxyXG5cdFx0Ly8gU28gZmFrZSBpdCBvdXQgYW5kIHRlbGwgaXQgTk9UIHRvIGNvbGxhcHNlLiAgQlVULCBpZiB3ZSBjYW1lIGluIGZyb20gdGFiYmluZyBpbnRvIHRoZSBmaWVsZCwgdGhlbiBpdCB3b3VsZCBtZXNzIHVwXHJcblx0XHQvLyB0aGUgY2xpY2sgZXZlbnQuICBTbyBvbmx5IHdhaXQgZm9yIDEvMiBzZWNvbmQuXHJcblx0XHR0aGlzLnNraXBDbGlja0V4cGFuZCA9IHRydWU7XHJcblx0XHR0aGlzLmV4cGFuZCgpO1xyXG5cdFx0YXdhaXQgU2xpY2tTbGVlcFNlcnZpY2Uuc2xlZXAoNTAwKTtcclxuXHRcdHRoaXMuc2tpcENsaWNrRXhwYW5kID0gZmFsc2U7XHJcblx0fVxyXG5cclxuXHRhc3luYyBvbktleVVwKGU6IEtleWJvYXJkRXZlbnQpIHtcclxuXHRcdGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblx0XHRlLnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG5cdFx0Ly8gSWYgdGhpcyBpcyBhbmRyb2lkLCBpdCB3b24ndCBwYXNzIHVzIGFueSBrZXkgZGF0YSBzbyBqdXN0IHJlYWQgdGhlIGVudGlyZSBpbnB1dCBlbGVtZW50XHJcblx0XHRpZiAodGhpcy5pc0FuZHJvaWQgPT09IHRydWUpIHtcclxuXHRcdFx0YXdhaXQgU2xpY2tTbGVlcFNlcnZpY2Uuc2xlZXAoKTtcclxuXHJcblx0XHRcdHRoaXMuZmlsdGVyVGV4dCA9ICg8SFRNTElucHV0RWxlbWVudD50aGlzLnNlbGVjdGVkVGV4dElucHV0UmVmLm5hdGl2ZUVsZW1lbnQpLnZhbHVlO1xyXG5cdFx0XHR0aGlzLmZpbHRlclNlYXJjaCgpO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gVGFiL2VudGVyXHJcblx0XHRpZiAoZS53aGljaCA9PT0gOSB8fCBlLndoaWNoID09PSAxMykge1xyXG5cclxuXHRcdFx0aWYgKHRoaXMuZmlsdGVyVGV4dCAmJiB0aGlzLnNlbGVjdGVkSW5kZXggIT09IG51bGwgJiYgdGhpcy5zZWxlY3RlZEluZGV4ICE9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdEl0ZW0odGhpcy52aXNpYmxlSXRlbXNbdGhpcy5zZWxlY3RlZEluZGV4XS5pZCk7XHJcblx0XHRcdFx0dGhpcy5maWx0ZXJUZXh0ID0gJyc7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZEluZGV4ID0gbnVsbDtcclxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRoaXMuY29sbGFwc2UoKTtcclxuXHJcblx0XHRcdHRoaXMuZmlsdGVyVGV4dCA9ICcnO1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkVGV4dCA9ICcnO1xyXG5cdFx0XHQoPEhUTUxJbnB1dEVsZW1lbnQ+dGhpcy5zZWxlY3RlZFRleHRJbnB1dFJlZi5uYXRpdmVFbGVtZW50KS52YWx1ZSA9ICcnO1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkSW5kZXggPSBudWxsO1xyXG5cclxuXHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gRXNjXHJcblx0XHRpZiAoZS53aGljaCA9PT0gMjcpIHtcclxuXHRcdFx0dGhpcy5maWx0ZXJUZXh0ID0gJyc7XHJcblx0XHRcdHRoaXMuc2VsZWN0ZWRUZXh0ID0gJyc7XHJcblx0XHRcdCg8SFRNTElucHV0RWxlbWVudD50aGlzLnNlbGVjdGVkVGV4dElucHV0UmVmLm5hdGl2ZUVsZW1lbnQpLnZhbHVlID0gJyc7XHJcblx0XHRcdHRoaXMuY29sbGFwc2UoKTtcclxuXHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBCYWNrc3BhY2VcclxuXHRcdGlmIChlLndoaWNoID09PSA4ICYmIHRoaXMuZmlsdGVyVGV4dCkge1xyXG5cdFx0XHR0aGlzLmZpbHRlclRleHQgPSB0aGlzLmZpbHRlclRleHQuc3Vic3RyaW5nKDAsIHRoaXMuZmlsdGVyVGV4dC5sZW5ndGggLSAxKTtcclxuXHRcdFx0aWYgKHRoaXMuZmlsdGVyVGV4dC5sZW5ndGggPT09IDApIHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkVGV4dCA9ICcnO1xyXG5cdFx0XHRcdCg8SFRNTElucHV0RWxlbWVudD50aGlzLnNlbGVjdGVkVGV4dElucHV0UmVmLm5hdGl2ZUVsZW1lbnQpLnZhbHVlID0gJyc7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZEluZGV4ID0gbnVsbDtcclxuXHRcdFx0XHR0aGlzLnZpc2libGVJdGVtcyA9IHRoaXMuc2xpY2tNdWx0aVNlbGVjdFNlcnZpY2UuZ2V0VmlzaWJsZUl0ZW1zKHRoaXMuaXRlbXMsIHRoaXMuc2VsZWN0ZWRJZHMsIHRoaXMuaWRGaWVsZE5hbWUsIHRoaXMudGV4dEZpZWxkTmFtZSk7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zbGlja011bHRpU2VsZWN0U2VydmljZS5nZXRTZWxlY3RlZEl0ZW1zKHRoaXMuaXRlbXMsIHRoaXMuc2VsZWN0ZWRJZHMsIHRoaXMuaWRGaWVsZE5hbWUsIHRoaXMudGV4dEZpZWxkTmFtZSk7XHRcdFx0fVxyXG5cdFx0XHRlbHNlXHJcblx0XHRcdFx0dGhpcy5maWx0ZXJTZWFyY2goKTtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIEFycm93dXBcclxuXHRcdGlmIChlLndoaWNoID09PSAzOCkge1xyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZEluZGV4ID09PSBudWxsIHx8IHRoaXMuc2VsZWN0ZWRJbmRleCA9PT0gdW5kZWZpbmVkKVxyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRJbmRleCA9IDA7XHJcblxyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZEluZGV4ID4gMClcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkSW5kZXgtLTtcclxuXHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBBcnJvd2Rvd25cclxuXHRcdGlmIChlLndoaWNoID09PSA0MCkge1xyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZEluZGV4ID09PSBudWxsIHx8IHRoaXMuc2VsZWN0ZWRJbmRleCA9PT0gdW5kZWZpbmVkKVxyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRJbmRleCA9IC0xO1xyXG5cclxuXHRcdFx0aWYgKCF0aGlzLmV4cGFuZGVkIHx8ICF0aGlzLnZpc2libGVJdGVtcykgXHJcblx0XHRcdFx0dGhpcy5leHBhbmQoKTtcclxuXHJcblx0XHRcdGlmICh0aGlzLnNlbGVjdGVkSW5kZXggPCB0aGlzLnZpc2libGVJdGVtcy5sZW5ndGggLSAxKVxyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRJbmRleCsrO1xyXG5cclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIElmIEYxIGlzIHByZXNzZWQsIGtleSBsZW5ndGggd2lsbCBiZSAyXHJcblx0XHRpZiAoZS5rZXkubGVuZ3RoID4gMSB8fCBlLmN0cmxLZXkgfHwgZS5hbHRLZXkpXHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHJcblx0XHRpZiAoZS53aGljaCA+PSAzMiAmJiBlLndoaWNoIDw9IDEyNikge1xyXG5cdFx0XHR0aGlzLmZpbHRlclRleHQgKz0gZS5rZXk7XHJcblxyXG5cdFx0XHR0aGlzLmZpbHRlclNlYXJjaCgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiB0cnVlO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBhc3luYyBmaWx0ZXJTZWFyY2goKSB7XHJcblx0XHRpZiAoIXRoaXMuZXhwYW5kZWQpIFxyXG5cdFx0XHR0aGlzLmV4cGFuZCgpO1x0XHJcblxyXG5cdFx0dGhpcy52aXNpYmxlSXRlbXMgPSB0aGlzLnNsaWNrTXVsdGlTZWxlY3RTZXJ2aWNlLmdldFZpc2libGVJdGVtcyh0aGlzLml0ZW1zLCB0aGlzLnNlbGVjdGVkSWRzLCB0aGlzLmlkRmllbGROYW1lLCB0aGlzLnRleHRGaWVsZE5hbWUpO1xyXG5cdFx0dGhpcy52aXNpYmxlSXRlbXMgPSB0aGlzLnZpc2libGVJdGVtcy5maWx0ZXIoeCA9PiB4LnRleHQudG9Mb3dlckNhc2UoKS5pbmRleE9mKHRoaXMuZmlsdGVyVGV4dC50b0xvd2VyQ2FzZSgpKSA9PT0gMCk7XHJcblx0XHRpZiAodGhpcy52aXNpYmxlSXRlbXMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkSW5kZXggPSAwO1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkVGV4dCA9IHRoaXMudmlzaWJsZUl0ZW1zWzBdLnRleHQ7XHJcblx0XHRcdGlmICh0aGlzLmlzQW5kcm9pZCA9PT0gZmFsc2UpIHtcclxuXHRcdFx0XHRhd2FpdCBTbGlja1NsZWVwU2VydmljZS5zbGVlcCgpO1xyXG5cdFx0XHRcdCg8SFRNTElucHV0RWxlbWVudD50aGlzLnNlbGVjdGVkVGV4dElucHV0UmVmLm5hdGl2ZUVsZW1lbnQpLnZhbHVlID0gdGhpcy5zZWxlY3RlZFRleHQ7XHJcblx0XHRcdFx0KDxIVE1MSW5wdXRFbGVtZW50PnRoaXMuc2VsZWN0ZWRUZXh0SW5wdXRSZWYubmF0aXZlRWxlbWVudCkuc2V0U2VsZWN0aW9uUmFuZ2UodGhpcy5maWx0ZXJUZXh0Lmxlbmd0aCwgdGhpcy5zZWxlY3RlZFRleHQubGVuZ3RoKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0ZWxzZSB7XHJcblx0XHRcdHRoaXMuc2VsZWN0ZWRJbmRleCA9IG51bGw7XHJcblx0XHRcdGlmICh0aGlzLmlzQW5kcm9pZCA9PT0gZmFsc2UpIHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkVGV4dCA9IHRoaXMuZmlsdGVyVGV4dDtcclxuXHRcdFx0XHQoPEhUTUxJbnB1dEVsZW1lbnQ+dGhpcy5zZWxlY3RlZFRleHRJbnB1dFJlZi5uYXRpdmVFbGVtZW50KS52YWx1ZSA9IHRoaXMuc2VsZWN0ZWRUZXh0O1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMucmVwb3NpdGlvbigpO1xyXG5cdH1cclxuXHJcblx0b25NdWx0aVNlbGVjdENsaWNrZWQoKSB7XHJcblx0XHRpZiAodGhpcy5za2lwQ2xpY2tFeHBhbmQgPT09IHRydWUpIHtcclxuXHRcdFx0dGhpcy5za2lwQ2xpY2tFeHBhbmQgPSBmYWxzZTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdCg8SFRNTElucHV0RWxlbWVudD50aGlzLnNlbGVjdGVkVGV4dElucHV0UmVmLm5hdGl2ZUVsZW1lbnQpLmZvY3VzKCk7XHJcblxyXG5cdFx0aWYgKHRoaXMuZXhwYW5kZWQgPT09IGZhbHNlKSBcclxuXHRcdFx0dGhpcy5leHBhbmQoKTtcclxuXHRcdGVsc2UgXHJcblx0XHRcdHRoaXMuY29sbGFwc2UoKTtcclxuXHR9XHJcblxyXG5cdG9uSXRlbUNsaWNrKGl0ZW06IGFueSkge1xyXG5cdFx0dGhpcy5zZWxlY3RJdGVtKGl0ZW0uaWQpO1xyXG5cclxuXHRcdGlmICh0aGlzLmtleWJvYXJkQWN0aXZlID09PSB0cnVlKVxyXG5cdFx0XHQoPEhUTUxJbnB1dEVsZW1lbnQ+dGhpcy5zZWxlY3RlZFRleHRJbnB1dFJlZi5uYXRpdmVFbGVtZW50KS5mb2N1cygpO1xyXG5cdH1cclxuXHJcblx0b25SZW1vdmVJdGVtKGl0ZW06IGFueSkge1xyXG5cdFx0dGhpcy5zZWxlY3RlZElkcyA9IHRoaXMuc2VsZWN0ZWRJZHMuZmlsdGVyKGlkID0+IGlkICE9PSBpdGVtLmlkKTtcclxuXHRcdHRoaXMudmlzaWJsZUl0ZW1zID0gdGhpcy5zbGlja011bHRpU2VsZWN0U2VydmljZS5nZXRWaXNpYmxlSXRlbXModGhpcy5pdGVtcywgdGhpcy5zZWxlY3RlZElkcywgdGhpcy5pZEZpZWxkTmFtZSwgdGhpcy50ZXh0RmllbGROYW1lKTtcclxuXHRcdHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuc2xpY2tNdWx0aVNlbGVjdFNlcnZpY2UuZ2V0U2VsZWN0ZWRJdGVtcyh0aGlzLml0ZW1zLCB0aGlzLnNlbGVjdGVkSWRzLCB0aGlzLmlkRmllbGROYW1lLCB0aGlzLnRleHRGaWVsZE5hbWUpO1xyXG5cclxuXHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuc2VsZWN0ZWRJZHMpO1xyXG5cdH1cclxufSIsIjxkaXYgI2NvbnRhaW5lckRpdiBpZD1cInNsaWNrLW11bHRpLXNlbGVjdF97e3V1aWR9fVwiIGF0dHIuZGF0YS11dWlkPVwie3t1dWlkfX1cIiBjbGFzcz1cInNsaWNrLW11bHRpLXNlbGVjdFwiIFtjbGFzcy5tb2JpbGVdPVwiaXNNb2JpbGUgPT09IHRydWVcIiBbY2xhc3Mub3Blbl09XCJleHBhbmRlZFwiPlxyXG5cdDxkaXYgY2xhc3M9XCJzbGljay1tdWx0aS1zZWxlY3RfaW5wdXQtY29udGFpbmVyXCI+XHJcblx0XHQ8ZGl2ICpuZ0lmPVwiZGlzYWJsZWQgPT09IGZhbHNlXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDsgZmxleC1ncm93OiAxO1wiIFtuZ0NsYXNzXT1cInsgJ3NsaWNrLW11bHRpLXNlbGVjdF9tb2JpbGUnOiBpc01vYmlsZSA9PT0gdHJ1ZSB9XCIgKGNsaWNrKT1cIm9uTXVsdGlTZWxlY3RDbGlja2VkKClcIj5cclxuXHRcdFx0PGRpdiAqbmdGb3I9XCJsZXQgc2VsZWN0ZWRJdGVtIG9mIHNlbGVjdGVkSXRlbXNcIiBjbGFzcz1cInNsaWNrLW11bHRpLXNlbGVjdF9zZWxlY3RlZC1pdGVtIGNhcmRcIj48ZGl2IGNsYXNzPVwic2xpY2stbXVsdGktc2VsZWN0X3JlbW92ZVwiIChjbGljayk9XCJvblJlbW92ZUl0ZW0oc2VsZWN0ZWRJdGVtKVwiPjxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzLWNpcmNsZSBiZy13aGl0ZSB0ZXh0LWRhbmdlclwiPjwvaT48L2Rpdj57e3NlbGVjdGVkSXRlbS50ZXh0fX08L2Rpdj5cclxuXHRcdFx0PGlucHV0ICNzZWxlY3RlZFRleHRJbnB1dFJlZiAqbmdJZj1cIiFpc01vYmlsZVwiIFthdHRyLnRhYmluZGV4XT1cInRhYmluZGV4XCIgW25nQ2xhc3NdPVwieydzbGljay1tdWx0aS1zZWxlY3Rfc2hvdy1zZWxlY3RlZC10ZXh0JzogKGtleWJvYXJkQWN0aXZlIHx8IChzZWxlY3RlZFRleHQgJiYgc2VsZWN0ZWRUZXh0Lmxlbmd0aCA+IDApKSB9XCIgKGtleXVwKT1cIm9uS2V5VXAoJGV2ZW50KVwiIChmb2N1cyk9XCJvbkZvY3VzKClcIiBuZy1kaXNhYmxlZD0nZGlzYWJsZWQnIHJlYWRvbmx5IFtwbGFjZWhvbGRlcl09J3BsYWNlaG9sZGVyJyAvPlxyXG5cdFx0XHQ8aW5wdXQgI3NlbGVjdGVkVGV4dElucHV0UmVmICpuZ0lmPVwiaXNNb2JpbGUgPT09IHRydWVcIiBbbmdDbGFzc109XCJ7J3NsaWNrLW11bHRpLXNlbGVjdF9zaG93LXNlbGVjdGVkLXRleHQnOiAoa2V5Ym9hcmRBY3RpdmUgfHwgKHNlbGVjdGVkVGV4dCAmJiBzZWxlY3RlZFRleHQubGVuZ3RoID4gMCkpIH1cIiAoa2V5dXApPVwib25LZXlVcCgkZXZlbnQpXCIgKGZvY3VzKT1cIm9uRm9jdXMoKVwiIC8+XHJcblx0XHQ8L2Rpdj5cclxuXHRcdDxkaXYgKm5nSWY9XCJkaXNhYmxlZCA9PT0gZmFsc2UgJiYgaXNNb2JpbGUgPT09IHRydWVcIiBjbGFzcz1cInNsaWNrLW11bHRpLXNlbGVjdF9tb2JpbGUtY29udGFpbmVyXCI+XHJcblx0XHRcdDxpIGNsYXNzPVwiZmFyIGZhLWtleWJvYXJkXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIiAoY2xpY2spPVwib25LZXlib2FyZEljb25DbGlja2VkKClcIj48L2k+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuXHJcblx0PGRpdiAqbmdJZj1cImRpc2FibGVkID09PSB0cnVlXCIgY2xhc3M9J2lucHV0LWdyb3VwJz5cclxuXHRcdDxkaXYgKm5nRm9yPVwibGV0IHNlbGVjdGVkSXRlbSBvZiBzZWxlY3RlZEl0ZW1zXCIgY2xhc3M9XCJzbGljay1tdWx0aS1zZWxlY3Rfc2VsZWN0ZWQtaXRlbSBjYXJkXCI+e3tzZWxlY3RlZEl0ZW0udGV4dH19PC9kaXY+XHJcblx0PC9kaXY+XHJcblxyXG5cdDx1bCAjbXVsdGlTZWxlY3RMaXN0IGlkPVwic2xpY2stbXVsdGktc2VsZWN0LWxpc3Rfe3t1dWlkfX1cIiBjbGFzcz0nc2xpY2stbXVsdGktc2VsZWN0LWxpc3QtZ3JvdXAgZHJvcGRvd24tbWVudScgW3N0eWxlLndpZHRoXT1cImxpc3RHcm91cFdpZHRoXCIgW3N0eWxlLnZpc2liaWxpdHldPVwiKGV4cGFuZGVkID09PSB0cnVlKSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXCIgW3N0eWxlLm9wYWNpdHldPVwiKGV4cGFuZGVkID09PSB0cnVlKSA/ICcxJyA6ICcwJ1wiIFtzdHlsZS5tYXgtaGVpZ2h0XT1cImhlaWdodFwiIFtzdHlsZS53aWR0aC5weF09XCJsaXN0R3JvdXBXaWR0aFwiIFtzdHlsZS5sZWZ0LnB4XT1cImxlZnRcIiBbc3R5bGUudG9wLnB4XT1cInRvcFwiPlxyXG5cdFx0PGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIHZpc2libGVJdGVtczsgbGV0IGluZGV4ID0gaW5kZXg7XCIgKG1vdXNlb3Zlcik9XCJzZWxlY3RlZEluZGV4ID0gaW5kZXhcIiAoY2xpY2spPVwib25JdGVtQ2xpY2soaXRlbSlcIiBbY2xhc3MuY2FyZC1oZWFkZXJdPVwic2VsZWN0ZWRJbmRleCA9PT0gaW5kZXhcIiBjbGFzcz1cImRyb3Bkb3duLWl0ZW0gc2xpY2stbXVsdGktc2VsZWN0X2xpc3QtaXRlbVwiPnt7aXRlbS50ZXh0fX08L2xpPlxyXG5cdDwvdWw+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
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
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class SlickMultiSelectModule {
|
|
7
|
+
}
|
|
8
|
+
/** @nocollapse */ SlickMultiSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickMultiSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
/** @nocollapse */ SlickMultiSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickMultiSelectModule, declarations: [SlickMultiSelectComponent], imports: [CommonModule, FormsModule], exports: [SlickMultiSelectComponent] });
|
|
10
|
+
/** @nocollapse */ SlickMultiSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickMultiSelectModule, imports: [[CommonModule, FormsModule]] });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickMultiSelectModule, decorators: [{
|
|
12
|
+
type: NgModule,
|
|
13
|
+
args: [{
|
|
14
|
+
imports: [CommonModule, FormsModule],
|
|
15
|
+
declarations: [SlickMultiSelectComponent],
|
|
16
|
+
exports: [SlickMultiSelectComponent]
|
|
17
|
+
}]
|
|
18
|
+
}] });
|
|
19
|
+
export { SlickMultiSelectComponent };
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stbXVsdGktc2VsZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3NsaWNrLW11bHRpLXNlbGVjdC9zbGljay1tdWx0aS1zZWxlY3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFRM0UsTUFBTSxPQUFPLHNCQUFzQjs7c0lBQXRCLHNCQUFzQjt1SUFBdEIsc0JBQXNCLGlCQUhuQix5QkFBeUIsYUFEOUIsWUFBWSxFQUFFLFdBQVcsYUFFekIseUJBQXlCO3VJQUV2QixzQkFBc0IsWUFKekIsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDOzJGQUl4QixzQkFBc0I7a0JBTGxDLFFBQVE7bUJBQUM7b0JBQ1QsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztvQkFDcEMsWUFBWSxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3pDLE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO2lCQUNwQzs7QUFHRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBTbGlja011bHRpU2VsZWN0Q29tcG9uZW50IH0gZnJvbSBcIi4vc2xpY2stbXVsdGktc2VsZWN0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBTbGlja011bHRpU2VsZWN0U2VydmljZSB9IGZyb20gXCIuL3NsaWNrLW11bHRpLXNlbGVjdC5zZXJ2aWNlXCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlXSxcclxuXHRkZWNsYXJhdGlvbnM6IFtTbGlja011bHRpU2VsZWN0Q29tcG9uZW50XSxcclxuXHRleHBvcnRzOiBbU2xpY2tNdWx0aVNlbGVjdENvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNsaWNrTXVsdGlTZWxlY3RNb2R1bGUgeyB9XHJcblxyXG5leHBvcnQgeyBTbGlja011bHRpU2VsZWN0Q29tcG9uZW50IH0iXX0=
|