slick-components 4.4.13 → 4.4.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/slick-components.css +598 -365
- package/css/slick-components.min.css +1 -1
- package/esm2020/public-api.mjs +43 -0
- package/esm2020/slick-accordion/slick-accordion-item-header.component.mjs +14 -0
- package/esm2020/slick-accordion/slick-accordion-item.component.mjs +86 -0
- package/esm2020/slick-accordion/slick-accordion.component.mjs +75 -0
- package/esm2020/slick-accordion/slick-accordion.module.mjs +23 -0
- package/esm2020/slick-auto-complete/slick-auto-complete-list-item-template.directive.mjs +22 -0
- package/esm2020/slick-auto-complete/slick-auto-complete.component.mjs +375 -0
- package/esm2020/slick-auto-complete/slick-auto-complete.module.mjs +24 -0
- package/esm2020/slick-button-spinner/slick-button-spinner.component.mjs +175 -0
- package/esm2020/slick-button-spinner/slick-button-spinner.module.mjs +19 -0
- package/esm2020/slick-calendar/slick-calendar.component.mjs +246 -0
- package/esm2020/slick-calendar/slick-calendar.module.mjs +19 -0
- package/esm2020/slick-card/slick-card-header.component.mjs +14 -0
- package/esm2020/slick-card/slick-card.component.mjs +42 -0
- package/esm2020/slick-card/slick-card.module.mjs +20 -0
- package/esm2020/slick-components.mjs +5 -0
- package/esm2020/slick-confirm-dialog/slick-confirm-dialog.component.mjs +65 -0
- package/esm2020/slick-confirm-dialog/slick-confirm-dialog.module.mjs +20 -0
- package/esm2020/slick-container/slick-container-body.component.mjs +24 -0
- package/esm2020/slick-container/slick-container-footer.component.mjs +20 -0
- package/esm2020/slick-container/slick-container-header.component.mjs +20 -0
- package/esm2020/slick-container/slick-container.component.mjs +21 -0
- package/esm2020/slick-container/slick-container.module.mjs +25 -0
- package/esm2020/slick-context-menu/slick-context-menu-item.component.mjs +14 -0
- package/esm2020/slick-context-menu/slick-context-menu.component.mjs +48 -0
- package/esm2020/slick-context-menu/slick-context-menu.module.mjs +20 -0
- package/{esm2015/slick-currency-mask/slick-currency-mask-options.model.js → esm2020/slick-currency-mask/slick-currency-mask-options.model.mjs} +0 -0
- package/esm2020/slick-currency-mask/slick-currency-mask.directive.mjs +233 -0
- package/esm2020/slick-currency-mask/slick-currency-mask.module.mjs +19 -0
- package/esm2020/slick-date-picker/slick-date-picker.component.mjs +278 -0
- package/esm2020/slick-date-picker/slick-date-picker.module.mjs +21 -0
- package/esm2020/slick-dialog/slick-dialog-footer.component.mjs +24 -0
- package/esm2020/slick-dialog/slick-dialog.component.mjs +294 -0
- package/esm2020/slick-dialog/slick-dialog.module.mjs +23 -0
- package/esm2020/slick-dialog/slick-dialog.service.mjs +68 -0
- package/esm2020/slick-drag-drop/slick-drag-drop.directive.mjs +13 -0
- package/esm2020/slick-drag-drop/slick-drag-drop.module.mjs +21 -0
- package/esm2020/slick-drag-drop/slick-draggable.directive.mjs +13 -0
- package/{esm2015/slick-drop-down/slick-drop-down-button.model.js → esm2020/slick-drop-down/slick-drop-down-button.model.mjs} +0 -0
- package/esm2020/slick-drop-down/slick-drop-down.component.mjs +479 -0
- package/esm2020/slick-drop-down/slick-drop-down.module.mjs +24 -0
- package/esm2020/slick-drop-down/slick-drop-down.service.mjs +55 -0
- package/esm2020/slick-drop-list/slick-drop-list-grab.directive.mjs +18 -0
- package/esm2020/slick-drop-list/slick-drop-list-item.directive.mjs +18 -0
- package/esm2020/slick-drop-list/slick-drop-list.directive.mjs +215 -0
- package/esm2020/slick-drop-list/slick-drop-list.module.mjs +23 -0
- package/esm2020/slick-email-viewer/slick-email-viewer-dialog.component.mjs +81 -0
- package/esm2020/slick-email-viewer/slick-email-viewer.component.mjs +42 -0
- package/esm2020/slick-email-viewer/slick-email-viewer.module.mjs +26 -0
- package/{esm2015/slick-emailer/slick-emailer-address.model.js → esm2020/slick-emailer/slick-emailer-address.model.mjs} +0 -0
- package/esm2020/slick-emailer/slick-emailer-dialog.component.mjs +153 -0
- package/esm2020/slick-emailer/slick-emailer.component.mjs +235 -0
- package/{esm2015/slick-emailer/slick-emailer.model.js → esm2020/slick-emailer/slick-emailer.model.mjs} +0 -0
- package/esm2020/slick-emailer/slick-emailer.module.mjs +29 -0
- package/esm2020/slick-file-drop/slick-file-drop.component.mjs +156 -0
- package/esm2020/slick-file-drop/slick-file-drop.module.mjs +20 -0
- package/esm2020/slick-file-list/slick-file-list-item.component.mjs +173 -0
- package/esm2020/slick-file-list/slick-file-list.component.mjs +130 -0
- package/esm2020/slick-file-list/slick-file-list.module.mjs +23 -0
- package/{esm2015/slick-file-model/slick-file.model.js → esm2020/slick-file-model/slick-file.model.mjs} +0 -0
- package/esm2020/slick-google-address-search/slick-google-address-search.directive.mjs +75 -0
- package/esm2020/slick-google-address-search/slick-google-address-search.module.mjs +19 -0
- package/esm2020/slick-google-map/slick-google-map-dialog.component.mjs +50 -0
- package/esm2020/slick-google-map/slick-google-map.component.mjs +48 -0
- package/esm2020/slick-google-map/slick-google-map.module.mjs +22 -0
- package/esm2020/slick-grid/slick-grid-column-template.directive.mjs +19 -0
- package/{esm2015/slick-grid/slick-grid-column.model.js → esm2020/slick-grid/slick-grid-column.model.mjs} +0 -0
- package/{esm2015/slick-grid/slick-grid-favorite.model.js → esm2020/slick-grid/slick-grid-favorite.model.mjs} +0 -0
- package/{esm2015/slick-grid/slick-grid-request.model.js → esm2020/slick-grid/slick-grid-request.model.mjs} +0 -0
- package/{esm2015/slick-grid/slick-grid-response.model.js → esm2020/slick-grid/slick-grid-response.model.mjs} +0 -0
- package/esm2020/slick-grid/slick-grid-sanitize.pipe.mjs +20 -0
- package/esm2020/slick-grid/slick-grid.component.mjs +793 -0
- package/esm2020/slick-grid/slick-grid.module.mjs +43 -0
- package/{esm2015/slick-grid/slick-grid.options.js → esm2020/slick-grid/slick-grid.options.mjs} +0 -0
- package/esm2020/slick-grid/slick-grid.service.mjs +66 -0
- package/esm2020/slick-multi-select/slick-multi-select.component.mjs +362 -0
- package/esm2020/slick-multi-select/slick-multi-select.module.mjs +20 -0
- package/esm2020/slick-multi-select/slick-multi-select.service.mjs +77 -0
- package/esm2020/slick-ordered-list/slick-ordered-list.component.mjs +200 -0
- package/esm2020/slick-ordered-list/slick-ordered-list.module.mjs +20 -0
- package/esm2020/slick-paging/slick-paging.component.mjs +185 -0
- package/esm2020/slick-paging/slick-paging.module.mjs +19 -0
- package/esm2020/slick-photo-gallery/slick-photo-gallery.component.mjs +98 -0
- package/{esm2015/slick-photo-gallery/slick-photo-gallery.model.js → esm2020/slick-photo-gallery/slick-photo-gallery.model.mjs} +0 -0
- package/esm2020/slick-photo-gallery/slick-photo-gallery.module.mjs +21 -0
- package/esm2020/slick-pick-list/slick-pick-list.component.mjs +84 -0
- package/esm2020/slick-pick-list/slick-pick-list.module.mjs +20 -0
- package/esm2020/slick-popover/slick-popover.component.mjs +204 -0
- package/esm2020/slick-popover/slick-popover.module.mjs +19 -0
- package/esm2020/slick-profile-picture/slick-profile-picture.component.mjs +267 -0
- package/esm2020/slick-profile-picture/slick-profile-picture.module.mjs +20 -0
- package/esm2020/slick-progress-bar/slick-progress-bar.module.mjs +18 -0
- package/esm2020/slick-progress-bar/slick-progress-bar.service.mjs +53 -0
- package/esm2020/slick-screen-blocker/slick-screen-blocker.module.mjs +18 -0
- package/esm2020/slick-screen-blocker/slick-screen-blocker.service.mjs +83 -0
- package/{esm2015/slick-slider/slick-slider-tick.model.js → esm2020/slick-slider/slick-slider-tick.model.mjs} +0 -0
- package/esm2020/slick-slider/slick-slider.component.mjs +90 -0
- package/esm2020/slick-slider/slick-slider.module.mjs +20 -0
- package/esm2020/slick-split-screen/slick-screen-split-left-content.component.mjs +15 -0
- package/esm2020/slick-split-screen/slick-screen-split-right-content.component.mjs +15 -0
- package/esm2020/slick-split-screen/slick-split-screen.component.mjs +159 -0
- package/esm2020/slick-split-screen/slick-split-screen.module.mjs +21 -0
- package/esm2020/slick-tabs/slick-tab-header.component.mjs +28 -0
- package/esm2020/slick-tabs/slick-tab.component.mjs +63 -0
- package/{esm2015/slick-tabs/slick-tab.model.js → esm2020/slick-tabs/slick-tab.model.mjs} +0 -0
- package/esm2020/slick-tabs/slick-tabs.component.mjs +107 -0
- package/esm2020/slick-tabs/slick-tabs.module.mjs +23 -0
- package/esm2020/slick-toast/slick-toast.module.mjs +18 -0
- package/esm2020/slick-toast/slick-toast.service.mjs +88 -0
- package/{esm2015/slick-tree-view/slick-tree-node.model.js → esm2020/slick-tree-view/slick-tree-node.model.mjs} +0 -0
- package/esm2020/slick-tree-view/slick-tree-view.component.mjs +293 -0
- package/esm2020/slick-tree-view/slick-tree-view.module.mjs +22 -0
- package/esm2020/slick-type-ahead/slick-type-ahead.directive.mjs +164 -0
- package/esm2020/slick-type-ahead/slick-type-ahead.module.mjs +18 -0
- package/esm2020/slick-validation-indicator/slick-validation-indicator.directive.mjs +63 -0
- package/esm2020/slick-validation-indicator/slick-validation-indicator.module.mjs +19 -0
- package/esm2020/utils/slick-function-lock.service.mjs +55 -0
- package/esm2020/utils/slick-init.service.mjs +49 -0
- package/esm2020/utils/slick-log.service.mjs +23 -0
- package/esm2020/utils/slick-sleep.service.mjs +14 -0
- package/esm2020/utils/slick-utils.service.mjs +247 -0
- package/fesm2015/{slick-components.js → slick-components.mjs} +2779 -2070
- package/fesm2015/slick-components.mjs.map +1 -0
- package/fesm2020/slick-components.mjs +8467 -0
- package/fesm2020/slick-components.mjs.map +1 -0
- package/package.json +20 -8
- package/public-api.d.ts +8 -8
- package/slick-accordion/slick-accordion-item-header.component.d.ts +3 -0
- package/slick-accordion/slick-accordion-item.component.d.ts +3 -0
- package/slick-accordion/slick-accordion.component.d.ts +3 -0
- package/slick-accordion/slick-accordion.module.d.ts +8 -0
- package/slick-auto-complete/slick-auto-complete-list-item-template.directive.d.ts +3 -0
- package/slick-auto-complete/slick-auto-complete.component.d.ts +3 -0
- package/slick-auto-complete/slick-auto-complete.module.d.ts +8 -0
- package/slick-button-spinner/slick-button-spinner.component.d.ts +3 -0
- package/slick-button-spinner/slick-button-spinner.module.d.ts +6 -0
- package/slick-calendar/slick-calendar.component.d.ts +3 -0
- package/slick-calendar/slick-calendar.module.d.ts +6 -0
- package/slick-card/slick-card-header.component.d.ts +3 -0
- package/slick-card/slick-card.component.d.ts +3 -0
- package/slick-card/slick-card.module.d.ts +10 -0
- package/slick-components.d.ts +1 -22
- package/slick-confirm-dialog/slick-confirm-dialog.component.d.ts +3 -0
- package/slick-confirm-dialog/slick-confirm-dialog.module.d.ts +7 -0
- package/slick-container/slick-container-body.component.d.ts +3 -0
- package/slick-container/slick-container-footer.component.d.ts +3 -0
- package/slick-container/slick-container-header.component.d.ts +3 -0
- package/slick-container/slick-container.component.d.ts +3 -0
- package/slick-container/slick-container.module.d.ts +9 -0
- package/slick-context-menu/slick-context-menu-item.component.d.ts +3 -0
- package/slick-context-menu/slick-context-menu.component.d.ts +3 -0
- package/slick-context-menu/slick-context-menu.module.d.ts +7 -0
- package/slick-currency-mask/slick-currency-mask.directive.d.ts +3 -0
- package/slick-currency-mask/slick-currency-mask.module.d.ts +5 -0
- package/slick-date-picker/slick-date-picker.component.d.ts +3 -0
- package/slick-date-picker/slick-date-picker.module.d.ts +8 -0
- package/slick-dialog/slick-dialog-footer.component.d.ts +3 -0
- package/slick-dialog/slick-dialog.component.d.ts +3 -0
- package/slick-dialog/slick-dialog.module.d.ts +10 -1
- package/slick-dialog/slick-dialog.service.d.ts +3 -0
- package/slick-drag-drop/slick-drag-drop.directive.d.ts +3 -0
- package/slick-drag-drop/slick-drag-drop.module.d.ts +11 -0
- package/slick-drag-drop/slick-draggable.directive.d.ts +3 -0
- package/slick-drop-down/slick-drop-down.component.d.ts +3 -0
- package/slick-drop-down/slick-drop-down.module.d.ts +9 -0
- package/slick-drop-down/slick-drop-down.service.d.ts +3 -0
- package/slick-drop-list/slick-drop-list-grab.directive.d.ts +3 -0
- package/slick-drop-list/slick-drop-list-item.directive.d.ts +3 -0
- package/slick-drop-list/slick-drop-list.directive.d.ts +13 -7
- package/slick-drop-list/slick-drop-list.module.d.ts +14 -0
- package/slick-email-viewer/slick-email-viewer-dialog.component.d.ts +3 -0
- package/slick-email-viewer/slick-email-viewer.component.d.ts +3 -0
- package/slick-email-viewer/slick-email-viewer.module.d.ts +10 -0
- package/slick-emailer/slick-emailer-dialog.component.d.ts +3 -0
- package/slick-emailer/slick-emailer.component.d.ts +3 -0
- package/slick-emailer/slick-emailer.module.d.ts +13 -0
- package/slick-file-drop/slick-file-drop.component.d.ts +3 -0
- package/slick-file-drop/slick-file-drop.module.d.ts +7 -0
- package/slick-file-list/slick-file-list-item.component.d.ts +3 -0
- package/slick-file-list/slick-file-list.component.d.ts +3 -0
- package/slick-file-list/slick-file-list.module.d.ts +10 -0
- package/slick-google-address-search/slick-google-address-search.directive.d.ts +3 -0
- package/slick-google-address-search/slick-google-address-search.module.d.ts +6 -0
- package/slick-google-map/slick-google-map-dialog.component.d.ts +3 -0
- package/slick-google-map/slick-google-map.component.d.ts +3 -0
- package/slick-google-map/slick-google-map.module.d.ts +8 -0
- package/slick-grid/slick-grid-column-template.directive.d.ts +3 -0
- package/slick-grid/slick-grid-sanitize.pipe.d.ts +3 -0
- package/slick-grid/slick-grid.component.d.ts +3 -0
- package/slick-grid/slick-grid.module.d.ts +16 -0
- package/slick-grid/slick-grid.service.d.ts +3 -0
- package/slick-multi-select/slick-multi-select.component.d.ts +3 -0
- package/slick-multi-select/slick-multi-select.module.d.ts +7 -0
- package/slick-multi-select/slick-multi-select.service.d.ts +3 -0
- package/slick-ordered-list/slick-ordered-list.component.d.ts +3 -0
- package/slick-ordered-list/slick-ordered-list.module.d.ts +7 -0
- package/slick-paging/slick-paging.component.d.ts +3 -0
- package/slick-paging/slick-paging.module.d.ts +6 -0
- package/slick-photo-gallery/slick-photo-gallery.component.d.ts +3 -0
- package/slick-photo-gallery/slick-photo-gallery.module.d.ts +6 -0
- package/slick-pick-list/slick-pick-list.component.d.ts +3 -0
- package/slick-pick-list/slick-pick-list.module.d.ts +7 -0
- package/slick-popover/slick-popover.component.d.ts +3 -0
- package/slick-popover/slick-popover.module.d.ts +6 -0
- package/slick-profile-picture/slick-profile-picture.component.d.ts +3 -0
- package/slick-profile-picture/slick-profile-picture.module.d.ts +7 -0
- package/slick-progress-bar/slick-progress-bar.module.d.ts +5 -0
- package/slick-progress-bar/slick-progress-bar.service.d.ts +3 -0
- package/slick-screen-blocker/slick-screen-blocker.module.d.ts +5 -0
- package/slick-screen-blocker/slick-screen-blocker.service.d.ts +3 -0
- package/slick-slider/slick-slider.component.d.ts +3 -0
- package/slick-slider/slick-slider.module.d.ts +6 -0
- package/slick-split-screen/slick-screen-split-left-content.component.d.ts +3 -0
- package/slick-split-screen/slick-screen-split-right-content.component.d.ts +3 -0
- package/slick-split-screen/slick-split-screen.component.d.ts +3 -0
- package/slick-split-screen/slick-split-screen.module.d.ts +8 -0
- package/slick-tabs/slick-tab-header.component.d.ts +3 -0
- package/slick-tabs/slick-tab.component.d.ts +3 -0
- package/slick-tabs/slick-tabs.component.d.ts +3 -0
- package/slick-tabs/slick-tabs.module.d.ts +10 -0
- package/slick-toast/slick-toast.module.d.ts +5 -0
- package/slick-toast/slick-toast.service.d.ts +3 -0
- package/slick-tree-view/slick-tree-view.component.d.ts +3 -0
- package/slick-tree-view/slick-tree-view.module.d.ts +8 -0
- package/slick-type-ahead/slick-type-ahead.directive.d.ts +3 -0
- package/slick-type-ahead/slick-type-ahead.module.d.ts +5 -0
- package/slick-validation-indicator/slick-validation-indicator.directive.d.ts +3 -0
- package/slick-validation-indicator/slick-validation-indicator.module.d.ts +6 -0
- package/utils/slick-function-lock.service.d.ts +3 -0
- package/utils/slick-init.service.d.ts +3 -0
- package/utils/slick-log.service.d.ts +3 -0
- package/utils/slick-sleep.service.d.ts +3 -0
- package/utils/slick-utils.service.d.ts +5 -0
- package/bundles/slick-components.umd.js +0 -9777
- package/bundles/slick-components.umd.js.map +0 -1
- package/esm2015/public-api.js +0 -43
- package/esm2015/slick-accordion/slick-accordion-item-header.component.js +0 -10
- package/esm2015/slick-accordion/slick-accordion-item.component.js +0 -80
- package/esm2015/slick-accordion/slick-accordion.component.js +0 -77
- package/esm2015/slick-accordion/slick-accordion.module.js +0 -18
- package/esm2015/slick-auto-complete/slick-auto-complete-list-item-template.directive.js +0 -21
- package/esm2015/slick-auto-complete/slick-auto-complete.component.js +0 -352
- package/esm2015/slick-auto-complete/slick-auto-complete.module.js +0 -19
- package/esm2015/slick-button-spinner/slick-button-spinner.component.js +0 -186
- package/esm2015/slick-button-spinner/slick-button-spinner.module.js +0 -14
- package/esm2015/slick-calendar/slick-calendar.component.js +0 -233
- package/esm2015/slick-calendar/slick-calendar.module.js +0 -14
- package/esm2015/slick-card/slick-card-header.component.js +0 -10
- package/esm2015/slick-card/slick-card.component.js +0 -37
- package/esm2015/slick-card/slick-card.module.js +0 -14
- package/esm2015/slick-components.js +0 -27
- package/esm2015/slick-confirm-dialog/slick-confirm-dialog.component.js +0 -62
- package/esm2015/slick-confirm-dialog/slick-confirm-dialog.module.js +0 -15
- package/esm2015/slick-container/slick-container-body.component.js +0 -18
- package/esm2015/slick-container/slick-container-footer.component.js +0 -16
- package/esm2015/slick-container/slick-container-header.component.js +0 -16
- package/esm2015/slick-container/slick-container.component.js +0 -19
- package/esm2015/slick-container/slick-container.module.js +0 -20
- package/esm2015/slick-context-menu/slick-context-menu-item.component.js +0 -10
- package/esm2015/slick-context-menu/slick-context-menu.component.js +0 -43
- package/esm2015/slick-context-menu/slick-context-menu.module.js +0 -15
- package/esm2015/slick-currency-mask/slick-currency-mask.directive.js +0 -234
- package/esm2015/slick-currency-mask/slick-currency-mask.module.js +0 -14
- package/esm2015/slick-date-picker/slick-date-picker.component.js +0 -267
- package/esm2015/slick-date-picker/slick-date-picker.module.js +0 -16
- package/esm2015/slick-dialog/slick-dialog-footer.component.js +0 -18
- package/esm2015/slick-dialog/slick-dialog.component.js +0 -282
- package/esm2015/slick-dialog/slick-dialog.module.js +0 -18
- package/esm2015/slick-dialog/slick-dialog.service.js +0 -67
- package/esm2015/slick-drag-drop/slick-drag-drop.directive.js +0 -9
- package/esm2015/slick-drag-drop/slick-drag-drop.module.js +0 -14
- package/esm2015/slick-drag-drop/slick-draggable.directive.js +0 -9
- package/esm2015/slick-drop-down/slick-drop-down.component.js +0 -465
- package/esm2015/slick-drop-down/slick-drop-down.module.js +0 -19
- package/esm2015/slick-drop-down/slick-drop-down.service.js +0 -59
- package/esm2015/slick-drop-list/slick-drop-list-grab.directive.js +0 -18
- package/esm2015/slick-drop-list/slick-drop-list-item.directive.js +0 -18
- package/esm2015/slick-drop-list/slick-drop-list.directive.js +0 -162
- package/esm2015/slick-drop-list/slick-drop-list.module.js +0 -15
- package/esm2015/slick-email-viewer/slick-email-viewer-dialog.component.js +0 -61
- package/esm2015/slick-email-viewer/slick-email-viewer.component.js +0 -39
- package/esm2015/slick-email-viewer/slick-email-viewer.module.js +0 -21
- package/esm2015/slick-emailer/slick-emailer-dialog.component.js +0 -122
- package/esm2015/slick-emailer/slick-emailer.component.js +0 -226
- package/esm2015/slick-emailer/slick-emailer.module.js +0 -24
- package/esm2015/slick-file-drop/slick-file-drop.component.js +0 -144
- package/esm2015/slick-file-drop/slick-file-drop.module.js +0 -15
- package/esm2015/slick-file-list/slick-file-list-item.component.js +0 -156
- package/esm2015/slick-file-list/slick-file-list.component.js +0 -114
- package/esm2015/slick-file-list/slick-file-list.module.js +0 -18
- package/esm2015/slick-google-address-search/slick-google-address-search.directive.js +0 -75
- package/esm2015/slick-google-address-search/slick-google-address-search.module.js +0 -14
- package/esm2015/slick-google-map/slick-google-map-dialog.component.js +0 -45
- package/esm2015/slick-google-map/slick-google-map.component.js +0 -45
- package/esm2015/slick-google-map/slick-google-map.module.js +0 -17
- package/esm2015/slick-grid/slick-grid-column-template.directive.js +0 -19
- package/esm2015/slick-grid/slick-grid-sanitize.pipe.js +0 -20
- package/esm2015/slick-grid/slick-grid.component.js +0 -792
- package/esm2015/slick-grid/slick-grid.module.js +0 -38
- package/esm2015/slick-grid/slick-grid.service.js +0 -72
- package/esm2015/slick-multi-select/slick-multi-select.component.js +0 -356
- package/esm2015/slick-multi-select/slick-multi-select.module.js +0 -15
- package/esm2015/slick-multi-select/slick-multi-select.service.js +0 -74
- package/esm2015/slick-ordered-list/slick-ordered-list.component.js +0 -198
- package/esm2015/slick-ordered-list/slick-ordered-list.module.js +0 -15
- package/esm2015/slick-paging/slick-paging.component.js +0 -180
- package/esm2015/slick-paging/slick-paging.module.js +0 -14
- package/esm2015/slick-photo-gallery/slick-photo-gallery.component.js +0 -101
- package/esm2015/slick-photo-gallery/slick-photo-gallery.module.js +0 -16
- package/esm2015/slick-pick-list/slick-pick-list.component.js +0 -78
- package/esm2015/slick-pick-list/slick-pick-list.module.js +0 -15
- package/esm2015/slick-popover/slick-popover.component.js +0 -199
- package/esm2015/slick-popover/slick-popover.module.js +0 -14
- package/esm2015/slick-profile-picture/slick-profile-picture.component.js +0 -242
- package/esm2015/slick-profile-picture/slick-profile-picture.module.js +0 -15
- package/esm2015/slick-progress-bar/slick-progress-bar.module.js +0 -13
- package/esm2015/slick-progress-bar/slick-progress-bar.service.js +0 -50
- package/esm2015/slick-screen-blocker/slick-screen-blocker.module.js +0 -13
- package/esm2015/slick-screen-blocker/slick-screen-blocker.service.js +0 -80
- package/esm2015/slick-slider/slick-slider.component.js +0 -88
- package/esm2015/slick-slider/slick-slider.module.js +0 -15
- package/esm2015/slick-split-screen/slick-screen-split-left-content.component.js +0 -13
- package/esm2015/slick-split-screen/slick-screen-split-right-content.component.js +0 -13
- package/esm2015/slick-split-screen/slick-split-screen.component.js +0 -148
- package/esm2015/slick-split-screen/slick-split-screen.module.js +0 -16
- package/esm2015/slick-tabs/slick-tab-header.component.js +0 -25
- package/esm2015/slick-tabs/slick-tab.component.js +0 -67
- package/esm2015/slick-tabs/slick-tabs.component.js +0 -104
- package/esm2015/slick-tabs/slick-tabs.module.js +0 -17
- package/esm2015/slick-toast/slick-toast.module.js +0 -13
- package/esm2015/slick-toast/slick-toast.service.js +0 -91
- package/esm2015/slick-tree-view/slick-tree-view.component.js +0 -287
- package/esm2015/slick-tree-view/slick-tree-view.module.js +0 -17
- package/esm2015/slick-type-ahead/slick-type-ahead.directive.js +0 -155
- package/esm2015/slick-type-ahead/slick-type-ahead.module.js +0 -13
- package/esm2015/slick-validation-indicator/slick-validation-indicator.directive.js +0 -61
- package/esm2015/slick-validation-indicator/slick-validation-indicator.module.js +0 -14
- package/esm2015/utils/slick-function-lock.service.js +0 -54
- package/esm2015/utils/slick-init.service.js +0 -48
- package/esm2015/utils/slick-log.service.js +0 -27
- package/esm2015/utils/slick-sleep.service.js +0 -14
- package/esm2015/utils/slick-utils.service.js +0 -229
- package/fesm2015/slick-components.js.map +0 -1
- package/slick-components.metadata.json +0 -1
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { NgModule } from "@angular/core";
|
|
2
|
-
import { RouterModule } from "@angular/router";
|
|
3
|
-
import { SlickToastService } from "./slick-toast.service";
|
|
4
|
-
export class SlickToastModule {
|
|
5
|
-
}
|
|
6
|
-
SlickToastModule.decorators = [
|
|
7
|
-
{ type: NgModule, args: [{
|
|
8
|
-
imports: [RouterModule],
|
|
9
|
-
providers: [SlickToastService]
|
|
10
|
-
},] }
|
|
11
|
-
];
|
|
12
|
-
export { SlickToastService };
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stdG9hc3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stdG9hc3Qvc2xpY2stdG9hc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBTTFELE1BQU0sT0FBTyxnQkFBZ0I7OztZQUo1QixRQUFRLFNBQUM7Z0JBQ1QsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2dCQUN2QixTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQzthQUM5Qjs7QUFHRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBTbGlja1RvYXN0U2VydmljZSB9IGZyb20gXCIuL3NsaWNrLXRvYXN0LnNlcnZpY2VcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcblx0aW1wb3J0czogW1JvdXRlck1vZHVsZV0sXHJcblx0cHJvdmlkZXJzOiBbU2xpY2tUb2FzdFNlcnZpY2VdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbGlja1RvYXN0TW9kdWxlIHsgfVxyXG5cclxuZXhwb3J0IHsgU2xpY2tUb2FzdFNlcnZpY2UgfSJdfQ==
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { Injectable, Optional } from "@angular/core";
|
|
3
|
-
import { Router, NavigationStart } from "@angular/router";
|
|
4
|
-
import { SlickSleepService } from "../utils/slick-sleep.service";
|
|
5
|
-
import { SlickUtilsService } from "../utils/slick-utils.service";
|
|
6
|
-
class SlickToastInfo {
|
|
7
|
-
}
|
|
8
|
-
export class SlickToastService {
|
|
9
|
-
constructor(router) {
|
|
10
|
-
this.router = router;
|
|
11
|
-
if (document.getElementById("slick-toasts") === null) {
|
|
12
|
-
let container = document.createElement("div");
|
|
13
|
-
container.id = "slick-toasts";
|
|
14
|
-
document.body.appendChild(container);
|
|
15
|
-
}
|
|
16
|
-
if (this.router) {
|
|
17
|
-
// Every time we change a page, reset the page auto-logout timeout
|
|
18
|
-
this.router.events.subscribe((event) => {
|
|
19
|
-
if (event instanceof NavigationStart) {
|
|
20
|
-
this.resetAll();
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
showSuccess(message, delay = 6000) {
|
|
26
|
-
this.showMessage("<i style='font-size: 1.2em' class='far fa-check'></i> " + message, delay, "bg-success");
|
|
27
|
-
}
|
|
28
|
-
showInfo(message, delay = 6000) {
|
|
29
|
-
this.showMessage("<i style='font-size: 1.2em' class='far fa-info-circle'></i> " + message, delay, "bg-info");
|
|
30
|
-
}
|
|
31
|
-
showWarning(message, delay = 6000) {
|
|
32
|
-
this.showMessage("<i style='font-size: 1.2em' class='far fa-exclamation-triangle'></i> " + message, delay, "bg-warning");
|
|
33
|
-
}
|
|
34
|
-
showDanger(message, delay = 6000) {
|
|
35
|
-
this.showMessage("<i style='font-size: 1.2em' class='far fa-times-circle'></i> " + message, delay, "bg-danger");
|
|
36
|
-
}
|
|
37
|
-
resetAll() {
|
|
38
|
-
for (let i = 0; i < SlickToastService.messageInfos.length; i++) {
|
|
39
|
-
clearTimeout(SlickToastService.messageInfos[i].fadeTimeout);
|
|
40
|
-
const container = document.getElementById("slick-toasts");
|
|
41
|
-
if (container) {
|
|
42
|
-
try {
|
|
43
|
-
container.removeChild(SlickToastService.messageInfos[i].messageDiv);
|
|
44
|
-
}
|
|
45
|
-
catch (_a) { }
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
fadeOut(messageInfo) {
|
|
50
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
51
|
-
messageInfo.messageDiv.style.opacity = "0";
|
|
52
|
-
yield SlickSleepService.sleep(600);
|
|
53
|
-
let container = document.getElementById("slick-toasts");
|
|
54
|
-
if (container) {
|
|
55
|
-
try {
|
|
56
|
-
container.removeChild(messageInfo.messageDiv);
|
|
57
|
-
}
|
|
58
|
-
catch (_a) { }
|
|
59
|
-
}
|
|
60
|
-
SlickToastService.messageInfos = SlickToastService.messageInfos.filter(x => x.uuid !== messageInfo.uuid);
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
showMessage(message, delay, bgClass) {
|
|
64
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
65
|
-
let container = document.getElementById("slick-toasts");
|
|
66
|
-
let newMessage = new SlickToastInfo();
|
|
67
|
-
newMessage.uuid = SlickUtilsService.newGuid();
|
|
68
|
-
newMessage.message = message;
|
|
69
|
-
newMessage.fadeTimeout = setTimeout(() => this.fadeOut(newMessage), delay);
|
|
70
|
-
newMessage.messageDiv = document.createElement("div");
|
|
71
|
-
newMessage.messageDiv.id = "slick-toast_" + newMessage.uuid;
|
|
72
|
-
newMessage.messageDiv.classList.add('slick-toast');
|
|
73
|
-
newMessage.messageDiv.classList.add('jumbotron');
|
|
74
|
-
newMessage.messageDiv.classList.add(bgClass);
|
|
75
|
-
newMessage.messageDiv.innerHTML = message;
|
|
76
|
-
SlickToastService.messageInfos.push(newMessage);
|
|
77
|
-
container.insertAdjacentElement('afterbegin', newMessage.messageDiv);
|
|
78
|
-
yield SlickSleepService.sleep();
|
|
79
|
-
document.getElementById("slick-toast_" + newMessage.uuid).style.opacity = "1";
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
SlickToastService.messageInfos = [];
|
|
84
|
-
SlickToastService.decorators = [
|
|
85
|
-
{ type: Injectable }
|
|
86
|
-
];
|
|
87
|
-
/** @nocollapse */
|
|
88
|
-
SlickToastService.ctorParameters = () => [
|
|
89
|
-
{ type: Router, decorators: [{ type: Optional }] }
|
|
90
|
-
];
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stdG9hc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3NsaWNrLXRvYXN0L3NsaWNrLXRvYXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFTakUsTUFBTSxjQUFjO0NBS25CO0FBR0QsTUFBTSxPQUFPLGlCQUFpQjtJQUc3QixZQUFnQyxNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUM3QyxJQUFJLFFBQVEsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3JELElBQUksU0FBUyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUMsU0FBUyxDQUFDLEVBQUUsR0FBRyxjQUFjLENBQUM7WUFDOUIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDckM7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsa0VBQWtFO1lBQ2xFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUN0QyxJQUFJLEtBQUssWUFBWSxlQUFlLEVBQUU7b0JBQ3JDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztpQkFDaEI7WUFDRixDQUFDLENBQUMsQ0FBQztTQUNIO0lBQ0YsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFlLEVBQUUsUUFBZ0Is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QUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDakQsVUFBVSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdDLFVBQVUsQ0FBQyxVQUFVLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztZQUUxQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRWhELFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3JFLE1BQU0saUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO1FBQy9FLENBQUM7S0FBQTs7QUFuRmMsOEJBQVksR0FBc0IsRUFBRSxDQUFDOztZQUZwRCxVQUFVOzs7O1lBbEJGLE1BQU0sdUJBc0JELFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJvdXRlciwgTmF2aWdhdGlvblN0YXJ0IH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBTbGlja1NsZWVwU2VydmljZSB9IGZyb20gXCIuLi91dGlscy9zbGljay1zbGVlcC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNsaWNrVXRpbHNTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL3NsaWNrLXV0aWxzLnNlcnZpY2VcIjtcclxuXHJcbmludGVyZmFjZSBJU2xpY2tUb2FzdEluZm8ge1xyXG5cdHV1aWQ6IHN0cmluZ1xyXG5cdG1lc3NhZ2U6IHN0cmluZztcclxuXHRmYWRlVGltZW91dDogTm9kZUpTLlRpbWVyO1xyXG5cdG1lc3NhZ2VEaXY6IEhUTUxEaXZFbGVtZW50O1xyXG59XHJcblxyXG5jbGFzcyBTbGlja1RvYXN0SW5mbyB7XHJcblx0dXVpZDogc3RyaW5nO1xyXG5cdG1lc3NhZ2U6IHN0cmluZztcclxuXHRmYWRlVGltZW91dDogTm9kZUpTLlRpbWVyO1xyXG5cdG1lc3NhZ2VEaXY6IEhUTUxEaXZFbGVtZW50O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTbGlja1RvYXN0U2VydmljZSB7XHJcblx0cHJpdmF0ZSBzdGF0aWMgbWVzc2FnZUluZm9zOiBJU2xpY2tUb2FzdEluZm9bXSA9IFtdO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7XHJcblx0XHRpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzbGljay10b2FzdHNcIikgPT09IG51bGwpIHtcclxuXHRcdFx0bGV0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XHJcblx0XHRcdGNvbnRhaW5lci5pZCA9IFwic2xpY2stdG9hc3RzXCI7XHJcblx0XHRcdGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY29udGFpbmVyKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5yb3V0ZXIpIHtcclxuXHRcdFx0Ly8gRXZlcnkgdGltZSB3ZSBjaGFuZ2UgYSBwYWdlLCByZXNldCB0aGUgcGFnZSBhdXRvLWxvZ291dCB0aW1lb3V0XHJcblx0XHRcdHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcblx0XHRcdFx0aWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XHJcblx0XHRcdFx0XHR0aGlzLnJlc2V0QWxsKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHNob3dTdWNjZXNzKG1lc3NhZ2U6IHN0cmluZywgZGVsYXk6IG51bWJlciA9IDYwMDApIHtcclxuXHRcdHRoaXMuc2hvd01lc3NhZ2UoXCI8aSBzdHlsZT0nZm9udC1zaXplOiAxLjJlbScgY2xhc3M9J2ZhciBmYS1jaGVjayc+PC9pPiZuYnNwOyZuYnNwO1wiICsgbWVzc2FnZSwgZGVsYXksIFwiYmctc3VjY2Vzc1wiKTtcclxuXHR9XHJcblxyXG5cdHNob3dJbmZvKG1lc3NhZ2U6IHN0cmluZywgZGVsYXk6IG51bWJlciA9IDYwMDApIHtcclxuXHRcdHRoaXMuc2hvd01lc3NhZ2UoXCI8aSBzdHlsZT0nZm9udC1zaXplOiAxLjJlbScgY2xhc3M9J2ZhciBmYS1pbmZvLWNpcmNsZSc+PC9pPiZuYnNwOyZuYnNwO1wiICsgbWVzc2FnZSwgZGVsYXksIFwiYmctaW5mb1wiKTtcclxuXHR9XHJcblxyXG5cdHNob3dXYXJuaW5nKG1lc3NhZ2U6IHN0cmluZywgZGVsYXk6IG51bWJlciA9IDYwMDApIHtcclxuXHRcdHRoaXMuc2hvd01lc3NhZ2UoXCI8aSBzdHlsZT0nZm9udC1zaXplOiAxLjJlbScgY2xhc3M9J2ZhciBmYS1leGNsYW1hdGlvbi10cmlhbmdsZSc+PC9pPiZuYnNwOyZuYnNwO1wiICsgbWVzc2FnZSwgZGVsYXksIFwiYmctd2FybmluZ1wiKTtcclxuXHR9XHJcblxyXG5cdHNob3dEYW5nZXIobWVzc2FnZTogc3RyaW5nLCBkZWxheTogbnVtYmVyID0gNjAwMCkge1xyXG5cdFx0dGhpcy5zaG93TWVzc2FnZShcIjxpIHN0eWxlPSdmb250LXNpemU6IDEuMmVtJyBjbGFzcz0nZmFyIGZhLXRpbWVzLWNpcmNsZSc+PC9pPiZuYnNwOyZuYnNwO1wiICsgbWVzc2FnZSwgZGVsYXksIFwiYmctZGFuZ2VyXCIpO1xyXG5cdH1cclxuXHJcblx0cmVzZXRBbGwoKSB7XHJcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IFNsaWNrVG9hc3RTZXJ2aWNlLm1lc3NhZ2VJbmZvcy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRjbGVhclRpbWVvdXQoU2xpY2tUb2FzdFNlcnZpY2UubWVzc2FnZUluZm9zW2ldLmZhZGVUaW1lb3V0KTtcclxuXHRcdFx0Y29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzbGljay10b2FzdHNcIik7XHJcblxyXG5cdFx0XHRpZiAoY29udGFpbmVyKSB7XHJcblx0XHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRcdGNvbnRhaW5lci5yZW1vdmVDaGlsZChTbGlja1RvYXN0U2VydmljZS5tZXNzYWdlSW5mb3NbaV0ubWVzc2FnZURpdik7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGNhdGNoIHsgfVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGFzeW5jIGZhZGVPdXQobWVzc2FnZUluZm86IElTbGlja1RvYXN0SW5mbykge1xyXG5cdFx0bWVzc2FnZUluZm8ubWVzc2FnZURpdi5zdHlsZS5vcGFjaXR5ID0gXCIwXCI7XHJcblx0XHRhd2FpdCBTbGlja1NsZWVwU2VydmljZS5zbGVlcCg2MDApO1xyXG5cdFx0bGV0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwic2xpY2stdG9hc3RzXCIpO1xyXG5cdFx0aWYgKGNvbnRhaW5lcikge1xyXG5cdFx0XHR0cnkge1xyXG5cdFx0XHRcdGNvbnRhaW5lci5yZW1vdmVDaGlsZChtZXNzYWdlSW5mby5tZXNzYWdlRGl2KTtcclxuXHRcdFx0fVxyXG5cdFx0XHRjYXRjaCB7IH1cclxuXHRcdH1cclxuXHJcblx0XHRTbGlja1RvYXN0U2VydmljZS5tZXNzYWdlSW5mb3MgPSBTbGlja1RvYXN0U2VydmljZS5tZXNzYWdlSW5mb3MuZmlsdGVyKHggPT4geC51dWlkICE9PSBtZXNzYWdlSW5mby51dWlkKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgYXN5bmMgc2hvd01lc3NhZ2UobWVzc2FnZTogc3RyaW5nLCBkZWxheTogbnVtYmVyLCBiZ0NsYXNzOiBzdHJpbmcpIHtcclxuXHRcdGxldCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInNsaWNrLXRvYXN0c1wiKTtcclxuXHJcblx0XHRsZXQgbmV3TWVzc2FnZTogSVNsaWNrVG9hc3RJbmZvID0gbmV3IFNsaWNrVG9hc3RJbmZvKCk7XHJcblx0XHRuZXdNZXNzYWdlLnV1aWQgPSBTbGlja1V0aWxzU2VydmljZS5uZXdHdWlkKCk7XHJcblx0XHRuZXdNZXNzYWdlLm1lc3NhZ2UgPSBtZXNzYWdlO1xyXG5cdFx0bmV3TWVzc2FnZS5mYWRlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5mYWRlT3V0KG5ld01lc3NhZ2UpLCBkZWxheSk7XHJcblxyXG5cdFx0bmV3TWVzc2FnZS5tZXNzYWdlRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuXHRcdG5ld01lc3NhZ2UubWVzc2FnZURpdi5pZCA9IFwic2xpY2stdG9hc3RfXCIgKyBuZXdNZXNzYWdlLnV1aWQ7XHJcblx0XHRuZXdNZXNzYWdlLm1lc3NhZ2VEaXYuY2xhc3NMaXN0LmFkZCgnc2xpY2stdG9hc3QnKTtcclxuXHRcdG5ld01lc3NhZ2UubWVzc2FnZURpdi5jbGFzc0xpc3QuYWRkKCdqdW1ib3Ryb24nKTtcclxuXHRcdG5ld01lc3NhZ2UubWVzc2FnZURpdi5jbGFzc0xpc3QuYWRkKGJnQ2xhc3MpO1xyXG5cdFx0bmV3TWVzc2FnZS5tZXNzYWdlRGl2LmlubmVySFRNTCA9IG1lc3NhZ2U7XHJcblxyXG5cdFx0U2xpY2tUb2FzdFNlcnZpY2UubWVzc2FnZUluZm9zLnB1c2gobmV3TWVzc2FnZSk7XHJcblxyXG5cdFx0Y29udGFpbmVyLmluc2VydEFkamFjZW50RWxlbWVudCgnYWZ0ZXJiZWdpbicsIG5ld01lc3NhZ2UubWVzc2FnZURpdik7XHJcblx0XHRhd2FpdCBTbGlja1NsZWVwU2VydmljZS5zbGVlcCgpO1xyXG5cdFx0ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzbGljay10b2FzdF9cIiArIG5ld01lc3NhZ2UudXVpZCkuc3R5bGUub3BhY2l0eSA9IFwiMVwiO1xyXG5cdH1cclxufSJdfQ==
|
|
@@ -1,287 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { Component, Input, Output, EventEmitter, ViewChild, ElementRef } from "@angular/core";
|
|
3
|
-
import { SlickTreeNodeModel } from './slick-tree-node.model';
|
|
4
|
-
import { SlickSleepService } from "../utils/slick-sleep.service";
|
|
5
|
-
import { SlickUtilsService } from "../utils/slick-utils.service";
|
|
6
|
-
import { SlickConfirmDialogComponent, SlickConfirmDialogResults } from '../slick-confirm-dialog/slick-confirm-dialog.module';
|
|
7
|
-
class SlickTreeViewDisplayModel {
|
|
8
|
-
constructor(node, level) {
|
|
9
|
-
this.uuid = node.uuid;
|
|
10
|
-
this.parentUuid = node.parentUuid;
|
|
11
|
-
this.node = node;
|
|
12
|
-
this.text = node.text;
|
|
13
|
-
this.level = level;
|
|
14
|
-
this.expanded = node.expanded;
|
|
15
|
-
this.editingText = false;
|
|
16
|
-
this.indentArray = [];
|
|
17
|
-
for (let i = 0; i < this.level; i++)
|
|
18
|
-
this.indentArray.push(true);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
export class SlickTreeViewComponent {
|
|
22
|
-
constructor() {
|
|
23
|
-
this.nodesChange = new EventEmitter();
|
|
24
|
-
this.showRootNode = true;
|
|
25
|
-
this.expandOnClick = true;
|
|
26
|
-
this.onNodeSelected = new EventEmitter();
|
|
27
|
-
this.onNodeChanged = new EventEmitter();
|
|
28
|
-
this.onNodeAdded = new EventEmitter();
|
|
29
|
-
this.onNodeDeleted = new EventEmitter();
|
|
30
|
-
this.fnDocumentClick = (e) => this.documentClick(e);
|
|
31
|
-
this.fnContextMenu = (e) => this.contextMenu(e);
|
|
32
|
-
this.uuid = SlickUtilsService.newGuid();
|
|
33
|
-
this.newUuid = null;
|
|
34
|
-
}
|
|
35
|
-
ngOnInit() {
|
|
36
|
-
document.addEventListener("click", this.fnDocumentClick, true);
|
|
37
|
-
this.slickTreeViewRef.nativeElement.addEventListener("contextmenu", this.fnContextMenu, true);
|
|
38
|
-
}
|
|
39
|
-
ngOnDestroy() {
|
|
40
|
-
document.removeEventListener("click", this.fnDocumentClick, true);
|
|
41
|
-
this.slickTreeViewRef.nativeElement.removeEventListener("contextmenu", this.fnContextMenu, true);
|
|
42
|
-
}
|
|
43
|
-
ngOnChanges(changes) {
|
|
44
|
-
this.expandOnClick = (this.expandOnClick.toString().toLowerCase() === 'false') ? false : true;
|
|
45
|
-
this.showRootNode = (this.showRootNode.toString().toLowerCase() === 'false') ? false : true;
|
|
46
|
-
this.rootNodeUuid = this.rootNodeUuid || null;
|
|
47
|
-
if (changes.nodes)
|
|
48
|
-
this.refreshDisplay();
|
|
49
|
-
}
|
|
50
|
-
documentClick(e) {
|
|
51
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
-
if (e.target && SlickUtilsService.checkParentClassExists(e.target, "slick-tree-view_node-text-edit"))
|
|
53
|
-
return;
|
|
54
|
-
if (e.target && SlickUtilsService.checkParentClassExists(e.target, "slick-tree-view_context-menu"))
|
|
55
|
-
return;
|
|
56
|
-
const contextMenuElement = this.contextMenuRef.nativeElement;
|
|
57
|
-
contextMenuElement.classList.remove("menu-visible");
|
|
58
|
-
contextMenuElement.classList.add("menu-hidden");
|
|
59
|
-
this.processNewNode();
|
|
60
|
-
this.displayNodes = this.displayNodes.map(displayNode => {
|
|
61
|
-
if (displayNode.editingText) {
|
|
62
|
-
displayNode.editingText = false;
|
|
63
|
-
if (this.onNodeChanged && displayNode.text !== displayNode.node.text) {
|
|
64
|
-
displayNode.node.text = displayNode.text;
|
|
65
|
-
this.onNodeChanged.emit(displayNode.node);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return displayNode;
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
onTextKeydown(e, displayNode) {
|
|
73
|
-
// Esc
|
|
74
|
-
if (e.keyCode === 27) {
|
|
75
|
-
displayNode.editingText = false;
|
|
76
|
-
displayNode.node.text = displayNode.text;
|
|
77
|
-
this.processNewNode();
|
|
78
|
-
}
|
|
79
|
-
// Enter or tab
|
|
80
|
-
if (e.keyCode === 13 || e.keyCode === 9) {
|
|
81
|
-
displayNode.editingText = false;
|
|
82
|
-
this.processNewNode();
|
|
83
|
-
if (this.onNodeChanged && displayNode.text !== displayNode.node.text) {
|
|
84
|
-
displayNode.node.text = displayNode.text;
|
|
85
|
-
this.onNodeChanged.emit(displayNode.node);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
contextMenu(e) {
|
|
90
|
-
if (!e || !e.target)
|
|
91
|
-
return;
|
|
92
|
-
if (!SlickUtilsService.checkParentIdExists(e.target, `slick-tree-view_${this.uuid}`))
|
|
93
|
-
return;
|
|
94
|
-
const contextNodeElement = SlickUtilsService.findParent(e.target, "slick-tree-view-node");
|
|
95
|
-
if (!contextNodeElement)
|
|
96
|
-
return;
|
|
97
|
-
e.preventDefault();
|
|
98
|
-
this.contextNodeUuid = contextNodeElement.getAttribute("data-uuid");
|
|
99
|
-
const node = this.nodes.find(x => x.uuid === this.contextNodeUuid);
|
|
100
|
-
this.contextMenuShowAdd = node.canAddChildren;
|
|
101
|
-
this.contextMenuShowDelete = node.canDelete;
|
|
102
|
-
this.contextMenuShowEditText = node.canEditText;
|
|
103
|
-
// If there's nothing to do, don't even show the context menu
|
|
104
|
-
if (this.contextMenuShowAdd === false && this.contextMenuShowDelete === false && this.contextMenuShowEditText === false)
|
|
105
|
-
return;
|
|
106
|
-
const contextMenuElement = this.contextMenuRef.nativeElement;
|
|
107
|
-
const top = (contextNodeElement.offsetTop + contextNodeElement.offsetHeight - 5);
|
|
108
|
-
const indentationElement = contextNodeElement.querySelector(".slick-tree-view_indentation");
|
|
109
|
-
const iconElement = contextNodeElement.querySelector(".slick-tree-view_icon");
|
|
110
|
-
const indentationWidth = (indentationElement) ? indentationElement.offsetWidth : 0;
|
|
111
|
-
const iconWidth = (iconElement) ? iconElement.offsetWidth : 0;
|
|
112
|
-
const left = indentationWidth + iconWidth + 2;
|
|
113
|
-
contextMenuElement.style.top = top + "px";
|
|
114
|
-
contextMenuElement.style.left = left + "px";
|
|
115
|
-
contextMenuElement.classList.add("menu-visible");
|
|
116
|
-
contextMenuElement.classList.remove("menu-hidden");
|
|
117
|
-
}
|
|
118
|
-
addNode() {
|
|
119
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
120
|
-
// Hide the context menu
|
|
121
|
-
const contextMenuElement = this.contextMenuRef.nativeElement;
|
|
122
|
-
contextMenuElement.classList.remove("menu-visible");
|
|
123
|
-
contextMenuElement.classList.add("menu-hidden");
|
|
124
|
-
if (!this.contextNodeUuid)
|
|
125
|
-
return;
|
|
126
|
-
const parentNodeIdx = this.nodes.findIndex(x => x.uuid === this.contextNodeUuid);
|
|
127
|
-
const parentNode = this.nodes[parentNodeIdx];
|
|
128
|
-
// Since we want to add this one to the top, pass null as the parent
|
|
129
|
-
var newNode = new SlickTreeNodeModel(null, "New Folder");
|
|
130
|
-
newNode.parentUuid = parentNode.uuid;
|
|
131
|
-
parentNode.expanded = true;
|
|
132
|
-
this.nodes.splice(parentNodeIdx, 0, newNode);
|
|
133
|
-
this.refreshDisplay();
|
|
134
|
-
const displayNode = this.displayNodes.find(x => x.uuid === newNode.uuid);
|
|
135
|
-
this.editText(displayNode);
|
|
136
|
-
this.newUuid = newNode.uuid;
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
deleteNode() {
|
|
140
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
141
|
-
// Hide the context menu
|
|
142
|
-
const contextMenuElement = this.contextMenuRef.nativeElement;
|
|
143
|
-
contextMenuElement.classList.remove("menu-visible");
|
|
144
|
-
contextMenuElement.classList.add("menu-hidden");
|
|
145
|
-
if (!this.contextNodeUuid)
|
|
146
|
-
return;
|
|
147
|
-
const node = this.nodes.find(x => x.uuid === this.contextNodeUuid);
|
|
148
|
-
this.deleteNodeName = node.text;
|
|
149
|
-
const confirmResult = yield this.deleteNodeConfirmRef.confirm();
|
|
150
|
-
if (confirmResult === SlickConfirmDialogResults.Cancel)
|
|
151
|
-
return;
|
|
152
|
-
const removedNodes = this.deleteRecursive(node);
|
|
153
|
-
this.refreshDisplay();
|
|
154
|
-
if (this.onNodeDeleted)
|
|
155
|
-
this.onNodeDeleted.emit(removedNodes);
|
|
156
|
-
if (this.nodesChange)
|
|
157
|
-
this.nodesChange.emit(this.nodes);
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
editNodeText() {
|
|
161
|
-
// Hide the context menu
|
|
162
|
-
const contextMenuElement = this.contextMenuRef.nativeElement;
|
|
163
|
-
contextMenuElement.classList.remove("menu-visible");
|
|
164
|
-
contextMenuElement.classList.add("menu-hidden");
|
|
165
|
-
if (!this.contextNodeUuid)
|
|
166
|
-
return;
|
|
167
|
-
const displayNode = this.displayNodes.find(x => x.uuid === this.contextNodeUuid);
|
|
168
|
-
this.editText(displayNode);
|
|
169
|
-
if (this.nodesChange)
|
|
170
|
-
this.nodesChange.emit(this.nodes);
|
|
171
|
-
}
|
|
172
|
-
selectNode(displayNode) {
|
|
173
|
-
if (this.selectedUuid === displayNode.uuid)
|
|
174
|
-
return;
|
|
175
|
-
this.selectedUuid = displayNode.uuid;
|
|
176
|
-
if (displayNode.node.expandOnClick === true)
|
|
177
|
-
this.expandNode(displayNode);
|
|
178
|
-
if (this.onNodeSelected)
|
|
179
|
-
this.onNodeSelected.emit(displayNode.node);
|
|
180
|
-
}
|
|
181
|
-
expandNode(displayNode) {
|
|
182
|
-
displayNode.node.expanded = true;
|
|
183
|
-
this.refreshDisplay();
|
|
184
|
-
}
|
|
185
|
-
collapseNode(displayNode) {
|
|
186
|
-
displayNode.node.expanded = false;
|
|
187
|
-
this.refreshDisplay();
|
|
188
|
-
}
|
|
189
|
-
editText(displayNode) {
|
|
190
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
191
|
-
if (!displayNode.node.canEditText)
|
|
192
|
-
return;
|
|
193
|
-
displayNode.editingText = true;
|
|
194
|
-
yield SlickSleepService.sleep();
|
|
195
|
-
const textbox = document.querySelector(`.slick-tree-view_node-text-edit_${displayNode.uuid}`);
|
|
196
|
-
if (textbox) {
|
|
197
|
-
textbox.focus();
|
|
198
|
-
textbox.select();
|
|
199
|
-
}
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
refreshDisplay() {
|
|
203
|
-
this.displayNodes = [];
|
|
204
|
-
if (!this.nodes || this.nodes.length === 0)
|
|
205
|
-
return;
|
|
206
|
-
let rootNode;
|
|
207
|
-
if (this.rootNodeUuid)
|
|
208
|
-
rootNode = this.nodes.find(x => x.uuid === this.rootNodeUuid);
|
|
209
|
-
else
|
|
210
|
-
rootNode = this.nodes.find(x => x.parentUuid === null);
|
|
211
|
-
// Always expand the root node
|
|
212
|
-
rootNode.expanded = true;
|
|
213
|
-
// If we aren't showing the root node, start at -1 for the indent level
|
|
214
|
-
this.populateDisplayNodes(rootNode, (this.showRootNode) ? 0 : -1);
|
|
215
|
-
if (this.showRootNode === false)
|
|
216
|
-
this.displayNodes = this.displayNodes.filter(x => x.parentUuid !== null);
|
|
217
|
-
}
|
|
218
|
-
populateDisplayNodes(node, level) {
|
|
219
|
-
if (level >= 100) {
|
|
220
|
-
console.error("Exceeeded max of 100 levels deep. Possible infinite recursion.");
|
|
221
|
-
return;
|
|
222
|
-
}
|
|
223
|
-
const displayNode = new SlickTreeViewDisplayModel(node, level);
|
|
224
|
-
if (node.expandOnClick === null || node.expandOnClick === undefined)
|
|
225
|
-
node.expandOnClick = this.expandOnClick;
|
|
226
|
-
if (displayNode.parentUuid === null)
|
|
227
|
-
displayNode.node.canDelete = false;
|
|
228
|
-
if (displayNode.uuid === this.newUuid)
|
|
229
|
-
displayNode.editingText = true;
|
|
230
|
-
this.displayNodes.push(displayNode);
|
|
231
|
-
const childNodes = this.nodes.filter(x => x.parentUuid === node.uuid) || [];
|
|
232
|
-
displayNode.hasChildNodes = (childNodes.length > 0);
|
|
233
|
-
if (node.expanded === true)
|
|
234
|
-
childNodes.forEach(childNode => {
|
|
235
|
-
if (!childNode.hidden)
|
|
236
|
-
this.populateDisplayNodes(childNode, level + 1);
|
|
237
|
-
});
|
|
238
|
-
}
|
|
239
|
-
deleteRecursive(node) {
|
|
240
|
-
let removedNodes = [];
|
|
241
|
-
const childNodes = this.nodes.filter(x => x.parentUuid === node.uuid) || [];
|
|
242
|
-
childNodes.forEach(childNode => {
|
|
243
|
-
removedNodes = removedNodes.concat(this.deleteRecursive(childNode));
|
|
244
|
-
});
|
|
245
|
-
removedNodes.push(node);
|
|
246
|
-
this.nodes = this.nodes.filter(x => x.uuid !== node.uuid);
|
|
247
|
-
return removedNodes;
|
|
248
|
-
}
|
|
249
|
-
processNewNode() {
|
|
250
|
-
if (!this.newUuid)
|
|
251
|
-
return;
|
|
252
|
-
const newNode = this.nodes.find(x => x.uuid === this.newUuid);
|
|
253
|
-
const displayNode = this.displayNodes.find(x => x.uuid == this.newUuid);
|
|
254
|
-
// Do this so that we don't trigger the node update
|
|
255
|
-
newNode.text = displayNode.text;
|
|
256
|
-
this.newUuid = null;
|
|
257
|
-
if (!newNode)
|
|
258
|
-
return;
|
|
259
|
-
if (this.onNodeAdded)
|
|
260
|
-
this.onNodeAdded.emit(newNode);
|
|
261
|
-
if (this.nodesChange)
|
|
262
|
-
this.nodesChange.emit(this.nodes);
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
SlickTreeViewComponent.decorators = [
|
|
266
|
-
{ type: Component, args: [{
|
|
267
|
-
selector: 'slick-tree-view',
|
|
268
|
-
template: "<div #slickTreeViewRef id=\"slick-tree-view_{{uuid}}\" class=\"slick-tree-view position-relative pr-2\">\r\n\t<div class=\"d-flex slick-tree-view-node\" [attr.data-uuid]=\"displayNode.uuid\" *ngFor=\"let displayNode of displayNodes\">\r\n\t\t<div class=\"slick-tree-view_indentation\">\r\n\t\t\t<i *ngFor=\"let indent of displayNode.indentArray\" class=\"far fa-caret-right mr-1\" style=\"opacity: 0\"></i>\r\n\t\t\t<i *ngIf=\"!displayNode.hasChildNodes\" class=\"far fa-caret-right mr-1\" style=\"opacity: 0\"></i>\r\n\t\t\t<i *ngIf=\"displayNode.hasChildNodes && !displayNode.expanded\" class=\"far fa-caret-right mr-1\" style=\"cursor: pointer\" (click)=\"expandNode(displayNode)\"></i>\r\n\t\t\t<i *ngIf=\"displayNode.hasChildNodes && displayNode.expanded\" class=\"far fa-caret-down mr-1\" style=\"cursor: pointer\" (click)=\"collapseNode(displayNode)\"></i>\r\n\t\t</div>\r\n\t\t<div class=\"d-flex px-1\" [ngClass]=\"{'bg-success text-white' : displayNode.uuid === selectedUuid }\">\r\n\t\t\t<div *ngIf=\"displayNode.node.iconClass || displayNode.node.iconUrl\" class=\"mr-1 slick-tree-view_icon\">\r\n\t\t\t\t<i *ngIf=\"displayNode.node.iconClass\" [style.color]=\"displayNode.node.iconColor\" [ngClass]=\"displayNode.node.iconClass\"></i>\r\n\t\t\t</div>\r\n\t\t\t<div *ngIf=\"!displayNode.editingText\" style=\"cursor: pointer\" (click)=\"selectNode(displayNode)\" (dblclick)=\"editText(displayNode)\">{{displayNode.text}}</div>\r\n\t\t\t<div *ngIf=\"displayNode.editingText\" class=\"slick-tree-view_node-text-edit\"><input type=\"text\" class=\"form-control slick-tree-view_node-text-edit_{{displayNode.uuid}}\" [(ngModel)]=\"displayNode.text\" (keydown)=\"onTextKeydown($event, displayNode)\" /></div>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<div #contextMenuRef class='slick-tree-view_context-menu dropdown-menu p-0 show menu-hidden'>\r\n\t\t<div *ngIf=\"contextMenuShowAdd\" class=\"px-2 dropdown-item\" (click)=\"addNode()\">Add</div>\r\n\t\t<div *ngIf=\"contextMenuShowDelete\" class=\"px-2 dropdown-item\" (click)=\"deleteNode()\">Delete</div>\r\n\t\t<div *ngIf=\"contextMenuShowEditText\" class=\"px-2 dropdown-item\" (click)=\"editNodeText()\">Edit Name</div>\r\n\t</div>\r\n</div>\r\n\r\n<slick-confirm-dialog #deleteNodeConfirmRef>\r\n\tAre you sure you want to delete {{deleteNodeName}}?\r\n</slick-confirm-dialog>"
|
|
269
|
-
},] }
|
|
270
|
-
];
|
|
271
|
-
/** @nocollapse */
|
|
272
|
-
SlickTreeViewComponent.ctorParameters = () => [];
|
|
273
|
-
SlickTreeViewComponent.propDecorators = {
|
|
274
|
-
nodes: [{ type: Input }],
|
|
275
|
-
nodesChange: [{ type: Output }],
|
|
276
|
-
showRootNode: [{ type: Input }],
|
|
277
|
-
rootNodeUuid: [{ type: Input }],
|
|
278
|
-
expandOnClick: [{ type: Input }],
|
|
279
|
-
onNodeSelected: [{ type: Output }],
|
|
280
|
-
onNodeChanged: [{ type: Output }],
|
|
281
|
-
onNodeAdded: [{ type: Output }],
|
|
282
|
-
onNodeDeleted: [{ type: Output }],
|
|
283
|
-
slickTreeViewRef: [{ type: ViewChild, args: ["slickTreeViewRef", { static: true },] }],
|
|
284
|
-
contextMenuRef: [{ type: ViewChild, args: ["contextMenuRef",] }],
|
|
285
|
-
deleteNodeConfirmRef: [{ type: ViewChild, args: ["deleteNodeConfirmRef",] }]
|
|
286
|
-
};
|
|
287
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stdHJlZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3NsaWNrLXRyZWUtdmlldy9zbGljay10cmVlLXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBNEIsTUFBTSxFQUFFLFlBQVksRUFBcUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzSSxPQUFPLEVBQXVCLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLHlCQUF5QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFFN0gsTUFBTSx5QkFBeUI7SUFDOUIsWUFBWSxJQUF5QixFQUFFLEtBQWE7UUFDbkQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNsQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXpCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMs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Q0FBQztRQUVoQyxJQUFJLElBQUksQ0FBQyxXQUFXO1lBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDOzs7WUEzVUQsU0FBUyxTQUFDO2dCQUNWLFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLHd5RUFBNkM7YUFDN0M7Ozs7O29CQUVDLEtBQUs7MEJBQ0wsTUFBTTsyQkFDTixLQUFLOzJCQUNMLEtBQUs7NEJBQ0wsS0FBSzs2QkFDTCxNQUFNOzRCQUNOLE1BQU07MEJBQ04sTUFBTTs0QkFDTixNQUFNOytCQUVOLFNBQVMsU0FBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7NkJBQzlDLFNBQVMsU0FBQyxnQkFBZ0I7bUNBQzFCLFNBQVMsU0FBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSVNsaWNrVHJlZU5vZGVNb2RlbCwgU2xpY2tUcmVlTm9kZU1vZGVsIH0gZnJvbSAnLi9zbGljay10cmVlLW5vZGUubW9kZWwnO1xyXG5pbXBvcnQgeyBTbGlja1NsZWVwU2VydmljZSB9IGZyb20gXCIuLi91dGlscy9zbGljay1zbGVlcC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNsaWNrVXRpbHNTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL3NsaWNrLXV0aWxzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2xpY2tDb25maXJtRGlhbG9nQ29tcG9uZW50LCBTbGlja0NvbmZpcm1EaWFsb2dSZXN1bHRzIH0gZnJvbSAnLi4vc2xpY2stY29uZmlybS1kaWFsb2cvc2xpY2stY29uZmlybS1kaWFsb2cubW9kdWxlJztcclxuXHJcbmNsYXNzIFNsaWNrVHJlZVZpZXdEaXNwbGF5TW9kZWwge1xyXG5cdGNvbnN0cnVjdG9yKG5vZGU6IElTbGlja1RyZWVOb2RlTW9kZWwsIGxldmVsOiBudW1iZXIpIHtcclxuXHRcdHRoaXMudXVpZCA9IG5vZGUudXVpZDtcclxuXHRcdHRoaXMucGFyZW50VXVpZCA9IG5vZGUucGFyZW50VXVpZDtcclxuXHRcdHRoaXMubm9kZSA9IG5vZGU7XHJcblx0XHR0aGlzLnRleHQgPSBub2RlLnRleHQ7XHJcblx0XHR0aGlzLmxldmVsID0gbGV2ZWw7XHJcblx0XHR0aGlzLmV4cGFuZGVkID0gbm9kZS5leHBhbmRlZDtcclxuXHRcdHRoaXMuZWRpdGluZ1RleHQgPSBmYWxzZTtcclxuXHJcblx0XHR0aGlzLmluZGVudEFycmF5ID0gW107XHJcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGV2ZWw7IGkrKylcclxuXHRcdFx0dGhpcy5pbmRlbnRBcnJheS5wdXNoKHRydWUpO1xyXG5cdH1cclxuXHJcblx0bm9kZTogSVNsaWNrVHJlZU5vZGVNb2RlbDtcclxuXHR1dWlkOiBzdHJpbmc7XHJcblx0dGV4dDogc3RyaW5nO1xyXG5cdHBhcmVudFV1aWQ6IHN0cmluZztcclxuXHRsZXZlbDogbnVtYmVyO1xyXG5cdGluZGVudEFycmF5OiBib29sZWFuW107XHJcblx0ZXhwYW5kZWQ6IGJvb2xlYW47XHJcblx0aGFzQ2hpbGROb2RlczogYm9vbGVhbjtcclxuXHRlZGl0aW5nVGV4dDogYm9vbGVhbjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdzbGljay10cmVlLXZpZXcnLFxyXG5cdHRlbXBsYXRlVXJsOiAnc2xpY2stdHJlZS12aWV3LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2xpY2tUcmVlVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cdEBJbnB1dCgpIG5vZGVzOiBJU2xpY2tUcmVlTm9kZU1vZGVsW107XHJcblx0QE91dHB1dCgpIG5vZGVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVNsaWNrVHJlZU5vZGVNb2RlbFtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRASW5wdXQoKSBzaG93Um9vdE5vZGU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cdEBJbnB1dCgpIHJvb3ROb2RlVXVpZDogc3RyaW5nO1xyXG5cdEBJbnB1dCgpIGV4cGFuZE9uQ2xpY2s6IGJvb2xlYW4gPSB0cnVlO1xyXG5cdEBPdXRwdXQoKSBvbk5vZGVTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SVNsaWNrVHJlZU5vZGVNb2RlbD4oKTtcclxuXHRAT3V0cHV0KCkgb25Ob2RlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SVNsaWNrVHJlZU5vZGVNb2RlbD4oKTtcclxuXHRAT3V0cHV0KCkgb25Ob2RlQWRkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElTbGlja1RyZWVOb2RlTW9kZWw+KCk7XHJcblx0QE91dHB1dCgpIG9uTm9kZURlbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElTbGlja1RyZWVOb2RlTW9kZWxbXT4oKTtcclxuXHJcblx0QFZpZXdDaGlsZChcInNsaWNrVHJlZVZpZXdSZWZcIiwgeyBzdGF0aWM6IHRydWUgfSkgc2xpY2tUcmVlVmlld1JlZjogRWxlbWVudFJlZjtcclxuXHRAVmlld0NoaWxkKFwiY29udGV4dE1lbnVSZWZcIikgY29udGV4dE1lbnVSZWY6IEVsZW1lbnRSZWY7XHJcblx0QFZpZXdDaGlsZChcImRlbGV0ZU5vZGVDb25maXJtUmVmXCIpIGRlbGV0ZU5vZGVDb25maXJtUmVmOiBTbGlja0NvbmZpcm1EaWFsb2dDb21wb25lbnQ7XHJcblxyXG5cdGZuRG9jdW1lbnRDbGljayA9IChlKSA9PiB0aGlzLmRvY3VtZW50Q2xpY2soZSk7XHJcblx0Zm5Db250ZXh0TWVudSA9IChlKSA9PiB0aGlzLmNvbnRleHRNZW51KGUpO1xyXG5cclxuXHRjb250ZXh0Tm9kZVV1aWQ6IHN0cmluZztcclxuXHJcblx0dXVpZDogc3RyaW5nID0gU2xpY2tVdGlsc1NlcnZpY2UubmV3R3VpZCgpO1xyXG5cdGRpc3BsYXlOb2RlczogU2xpY2tUcmVlVmlld0Rpc3BsYXlNb2RlbFtdO1xyXG5cdHNlbGVjdGVkVXVpZDogc3RyaW5nO1xyXG5cdG5ld1V1aWQ6IHN0cmluZyA9IG51bGw7XHJcblx0ZGVsZXRlTm9kZU5hbWU6IHN0cmluZztcclxuXHJcblx0Y29udGV4dE1lbnVTaG93QWRkOiBib29sZWFuO1xyXG5cdGNvbnRleHRNZW51U2hvd0RlbGV0ZTogYm9vbGVhbjtcclxuXHRjb250ZXh0TWVudVNob3dFZGl0VGV4dDogYm9vbGVhbjtcclxuXHJcblx0Y29uc3RydWN0b3IoKSB7IH1cclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHRkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5mbkRvY3VtZW50Q2xpY2ssIHRydWUpO1xyXG5cdFx0dGhpcy5zbGlja1RyZWVWaWV3UmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNvbnRleHRtZW51XCIsIHRoaXMuZm5Db250ZXh0TWVudSwgdHJ1ZSk7XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0aGlzLmZuRG9jdW1lbnRDbGljaywgdHJ1ZSk7XHJcblx0XHR0aGlzLnNsaWNrVHJlZVZpZXdSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY29udGV4dG1lbnVcIiwgdGhpcy5mbkNvbnRleHRNZW51LCB0cnVlKTtcclxuXHR9XHJcblxyXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuXHRcdHRoaXMuZXhwYW5kT25DbGljayA9ICh0aGlzLmV4cGFuZE9uQ2xpY2sudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSAnZmFsc2UnKSA/IGZhbHNlIDogdHJ1ZTtcclxuXHRcdHRoaXMuc2hvd1Jvb3ROb2RlID0gKHRoaXMuc2hvd1Jvb3ROb2RlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhbHNlJykgPyBmYWxzZSA6IHRydWU7XHJcblx0XHR0aGlzLnJvb3ROb2RlVXVpZCA9IHRoaXMucm9vdE5vZGVVdWlkIHx8IG51bGw7XHJcblxyXG5cdFx0aWYgKGNoYW5nZXMubm9kZXMpXHJcblx0XHRcdHRoaXMucmVmcmVzaERpc3BsYXkoKTtcclxuXHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGFzeW5jIGRvY3VtZW50Q2xpY2soZTogTW91c2VFdmVudCkge1xyXG5cdFx0aWYgKGUudGFyZ2V0ICYmIFNsaWNrVXRpbHNTZXJ2aWNlLmNoZWNrUGFyZW50Q2xhc3NFeGlzdHMoPEhUTUxFbGVtZW50PmUudGFyZ2V0LCBcInNsaWNrLXRyZWUtdmlld19ub2RlLXRleHQtZWRpdFwiKSlcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGlmIChlLnRhcmdldCAmJiBTbGlja1V0aWxzU2VydmljZS5jaGVja1BhcmVudENsYXNzRXhpc3RzKDxIVE1MRWxlbWVudD5lLnRhcmdldCwgXCJzbGljay10cmVlLXZpZXdfY29udGV4dC1tZW51XCIpKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0Y29uc3QgY29udGV4dE1lbnVFbGVtZW50ID0gPEhUTUxFbGVtZW50PnRoaXMuY29udGV4dE1lbnVSZWYubmF0aXZlRWxlbWVudDtcclxuXHRcdGNvbnRleHRNZW51RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwibWVudS12aXNpYmxlXCIpO1xyXG5cdFx0Y29udGV4dE1lbnVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJtZW51LWhpZGRlblwiKTtcclxuXHJcblx0XHR0aGlzLnByb2Nlc3NOZXdOb2RlKCk7XHJcblxyXG5cdFx0dGhpcy5kaXNwbGF5Tm9kZXMgPSB0aGlzLmRpc3BsYXlOb2Rlcy5tYXAoZGlzcGxheU5vZGUgPT4ge1xyXG5cdFx0XHRpZiAoZGlzcGxheU5vZGUuZWRpdGluZ1RleHQpIHtcclxuXHRcdFx0XHRkaXNwbGF5Tm9kZS5lZGl0aW5nVGV4dCA9IGZhbHNlO1xyXG5cdFx0XHRcdGlmICh0aGlzLm9uTm9kZUNoYW5nZWQgJiYgZGlzcGxheU5vZGUudGV4dCAhPT0gZGlzcGxheU5vZGUubm9kZS50ZXh0KSB7XHJcblx0XHRcdFx0XHRkaXNwbGF5Tm9kZS5ub2RlLnRleHQgPSBkaXNwbGF5Tm9kZS50ZXh0O1xyXG5cdFx0XHRcdFx0dGhpcy5vbk5vZGVDaGFuZ2VkLmVtaXQoZGlzcGxheU5vZGUubm9kZSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRyZXR1cm4gZGlzcGxheU5vZGU7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG9uVGV4dEtleWRvd24oZTogS2V5Ym9hcmRFdmVudCwgZGlzcGxheU5vZGU6IFNsaWNrVHJlZVZpZXdEaXNwbGF5TW9kZWwpIHtcclxuXHRcdC8vIEVzY1xyXG5cdFx0aWYgKGUua2V5Q29kZSA9PT0gMjcpIHtcclxuXHRcdFx0ZGlzcGxheU5vZGUuZWRpdGluZ1RleHQgPSBmYWxzZTtcclxuXHRcdFx0ZGlzcGxheU5vZGUubm9kZS50ZXh0ID0gZGlzcGxheU5vZGUudGV4dDtcclxuXHRcdFx0dGhpcy5wcm9jZXNzTmV3Tm9kZSgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIEVudGVyIG9yIHRhYlxyXG5cdFx0aWYgKGUua2V5Q29kZSA9PT0gMTMgfHwgZS5rZXlDb2RlID09PSA5KSB7XHJcblx0XHRcdGRpc3BsYXlOb2RlLmVkaXRpbmdUZXh0ID0gZmFsc2U7XHJcblx0XHRcdHRoaXMucHJvY2Vzc05ld05vZGUoKTtcclxuXHRcdFx0aWYgKHRoaXMub25Ob2RlQ2hhbmdlZCAmJiBkaXNwbGF5Tm9kZS50ZXh0ICE9PSBkaXNwbGF5Tm9kZS5ub2RlLnRleHQpIHtcclxuXHRcdFx0XHRkaXNwbGF5Tm9kZS5ub2RlLnRleHQgPSBkaXNwbGF5Tm9kZS50ZXh0O1xyXG5cdFx0XHRcdHRoaXMub25Ob2RlQ2hhbmdlZC5lbWl0KGRpc3BsYXlOb2RlLm5vZGUpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRjb250ZXh0TWVudShlOiBNb3VzZUV2ZW50KSB7XHJcblx0XHRpZiAoIWUgfHwgIWUudGFyZ2V0KVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0aWYgKCFTbGlja1V0aWxzU2VydmljZS5jaGVja1BhcmVudElkRXhpc3RzKDxIVE1MRWxlbWVudD5lLnRhcmdldCwgYHNsaWNrLXRyZWUtdmlld18ke3RoaXMudXVpZH1gKSlcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IGNvbnRleHROb2RlRWxlbWVudCA9IDxIVE1MRGl2RWxlbWVudD5TbGlja1V0aWxzU2VydmljZS5maW5kUGFyZW50KDxIVE1MRWxlbWVudD5lLnRhcmdldCwgXCJzbGljay10cmVlLXZpZXctbm9kZVwiKTtcclxuXHRcdGlmICghY29udGV4dE5vZGVFbGVtZW50KVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuXHRcdHRoaXMuY29udGV4dE5vZGVVdWlkID0gY29udGV4dE5vZGVFbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtdXVpZFwiKTtcclxuXHJcblx0XHRjb25zdCBub2RlID0gdGhpcy5ub2Rlcy5maW5kKHggPT4geC51dWlkID09PSB0aGlzLmNvbnRleHROb2RlVXVpZCk7XHJcblx0XHR0aGlzLmNvbnRleHRNZW51U2hvd0FkZCA9IG5vZGUuY2FuQWRkQ2hpbGRyZW47XHJcblx0XHR0aGlzLmNvbnRleHRNZW51U2hvd0RlbGV0ZSA9IG5vZGUuY2FuRGVsZXRlO1xyXG5cdFx0dGhpcy5jb250ZXh0TWVudVNob3dFZGl0VGV4dCA9IG5vZGUuY2FuRWRpdFRleHQ7XHJcblxyXG5cdFx0Ly8gSWYgdGhlcmUncyBub3RoaW5nIHRvIGRvLCBkb24ndCBldmVuIHNob3cgdGhlIGNvbnRleHQgbWVudVxyXG5cdFx0aWYgKHRoaXMuY29udGV4dE1lbnVTaG93QWRkID09PSBmYWxzZSAmJiB0aGlzLmNvbnRleHRNZW51U2hvd0RlbGV0ZSA9PT0gZmFsc2UgJiYgdGhpcy5jb250ZXh0TWVudVNob3dFZGl0VGV4dCA9PT0gZmFsc2UpXHJcblx0XHRcdHJldHVybjtcclxuXHJcblx0XHRjb25zdCBjb250ZXh0TWVudUVsZW1lbnQgPSA8SFRNTEVsZW1lbnQ+dGhpcy5jb250ZXh0TWVudVJlZi5uYXRpdmVFbGVtZW50O1xyXG5cdFx0Y29uc3QgdG9wID0gKGNvbnRleHROb2RlRWxlbWVudC5vZmZzZXRUb3AgKyBjb250ZXh0Tm9kZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IC0gNSk7XHJcblxyXG5cdFx0Y29uc3QgaW5kZW50YXRpb25FbGVtZW50ID0gPEhUTUxEaXZFbGVtZW50PmNvbnRleHROb2RlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiLnNsaWNrLXRyZWUtdmlld19pbmRlbnRhdGlvblwiKTtcclxuXHRcdGNvbnN0IGljb25FbGVtZW50ID0gPEhUTUxEaXZFbGVtZW50PmNvbnRleHROb2RlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiLnNsaWNrLXRyZWUtdmlld19pY29uXCIpO1xyXG5cdFx0Y29uc3QgaW5kZW50YXRpb25XaWR0aCA9IChpbmRlbnRhdGlvbkVsZW1lbnQpID8gaW5kZW50YXRpb25FbGVtZW50Lm9mZnNldFdpZHRoIDogMDtcclxuXHRcdGNvbnN0IGljb25XaWR0aCA9IChpY29uRWxlbWVudCkgPyBpY29uRWxlbWVudC5vZmZzZXRXaWR0aCA6IDA7XHJcblx0XHRjb25zdCBsZWZ0ID0gaW5kZW50YXRpb25XaWR0aCArIGljb25XaWR0aCArIDI7XHJcblxyXG5cdFx0Y29udGV4dE1lbnVFbGVtZW50LnN0eWxlLnRvcCA9IHRvcCArIFwicHhcIjtcclxuXHRcdGNvbnRleHRNZW51RWxlbWVudC5zdHlsZS5sZWZ0ID0gbGVmdCArIFwicHhcIjtcclxuXHRcdGNvbnRleHRNZW51RWxlbWVudC5jbGFzc0xpc3QuYWRkKFwibWVudS12aXNpYmxlXCIpO1xyXG5cdFx0Y29udGV4dE1lbnVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJtZW51LWhpZGRlblwiKTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIGFkZE5vZGUoKSB7XHJcblx0XHQvLyBIaWRlIHRoZSBjb250ZXh0IG1lbnVcclxuXHRcdGNvbnN0IGNvbnRleHRNZW51RWxlbWVudCA9IDxIVE1MRWxlbWVudD50aGlzLmNvbnRleHRNZW51UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcblx0XHRjb250ZXh0TWVudUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcIm1lbnUtdmlzaWJsZVwiKTtcclxuXHRcdGNvbnRleHRNZW51RWxlbWVudC5jbGFzc0xpc3QuYWRkKFwibWVudS1oaWRkZW5cIik7XHJcblxyXG5cdFx0aWYgKCF0aGlzLmNvbnRleHROb2RlVXVpZClcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IHBhcmVudE5vZGVJZHggPSB0aGlzLm5vZGVzLmZpbmRJbmRleCh4ID0+IHgudXVpZCA9PT0gdGhpcy5jb250ZXh0Tm9kZVV1aWQpO1xyXG5cdFx0Y29uc3QgcGFyZW50Tm9kZSA9IHRoaXMubm9kZXNbcGFyZW50Tm9kZUlkeF1cclxuXHRcdC8vIFNpbmNlIHdlIHdhbnQgdG8gYWRkIHRoaXMgb25lIHRvIHRoZSB0b3AsIHBhc3MgbnVsbCBhcyB0aGUgcGFyZW50XHJcblx0XHR2YXIgbmV3Tm9kZSA9IG5ldyBTbGlja1RyZWVOb2RlTW9kZWwobnVsbCwgXCJOZXcgRm9sZGVyXCIpO1xyXG5cdFx0bmV3Tm9kZS5wYXJlbnRVdWlkID0gcGFyZW50Tm9kZS51dWlkO1xyXG5cdFx0cGFyZW50Tm9kZS5leHBhbmRlZCA9IHRydWU7XHJcblx0XHR0aGlzLm5vZGVzLnNwbGljZShwYXJlbnROb2RlSWR4LCAwLCBuZXdOb2RlKTtcclxuXHJcblx0XHR0aGlzLnJlZnJlc2hEaXNwbGF5KCk7XHJcblxyXG5cdFx0Y29uc3QgZGlzcGxheU5vZGUgPSB0aGlzLmRpc3BsYXlOb2Rlcy5maW5kKHggPT4geC51dWlkID09PSBuZXdOb2RlLnV1aWQpO1xyXG5cdFx0dGhpcy5lZGl0VGV4dChkaXNwbGF5Tm9kZSk7XHJcblxyXG5cdFx0dGhpcy5uZXdVdWlkID0gbmV3Tm9kZS51dWlkO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgZGVsZXRlTm9kZSgpIHtcclxuXHRcdC8vIEhpZGUgdGhlIGNvbnRleHQgbWVudVxyXG5cdFx0Y29uc3QgY29udGV4dE1lbnVFbGVtZW50ID0gPEhUTUxFbGVtZW50PnRoaXMuY29udGV4dE1lbnVSZWYubmF0aXZlRWxlbWVudDtcclxuXHRcdGNvbnRleHRNZW51RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwibWVudS12aXNpYmxlXCIpO1xyXG5cdFx0Y29udGV4dE1lbnVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJtZW51LWhpZGRlblwiKTtcclxuXHJcblx0XHRpZiAoIXRoaXMuY29udGV4dE5vZGVVdWlkKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0Y29uc3Qgbm9kZSA9IHRoaXMubm9kZXMuZmluZCh4ID0+IHgudXVpZCA9PT0gdGhpcy5jb250ZXh0Tm9kZVV1aWQpO1xyXG5cclxuXHRcdHRoaXMuZGVsZXRlTm9kZU5hbWUgPSBub2RlLnRleHQ7XHJcblxyXG5cdFx0Y29uc3QgY29uZmlybVJlc3VsdCA9IGF3YWl0IHRoaXMuZGVsZXRlTm9kZUNvbmZpcm1SZWYuY29uZmlybSgpO1xyXG5cclxuXHRcdGlmIChjb25maXJtUmVzdWx0ID09PSBTbGlja0NvbmZpcm1EaWFsb2dSZXN1bHRzLkNhbmNlbClcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IHJlbW92ZWROb2RlcyA9IHRoaXMuZGVsZXRlUmVjdXJzaXZlKG5vZGUpO1xyXG5cclxuXHRcdHRoaXMucmVmcmVzaERpc3BsYXkoKTtcclxuXHJcblx0XHRpZiAodGhpcy5vbk5vZGVEZWxldGVkKVxyXG5cdFx0XHR0aGlzLm9uTm9kZURlbGV0ZWQuZW1pdChyZW1vdmVkTm9kZXMpO1xyXG5cclxuXHRcdGlmICh0aGlzLm5vZGVzQ2hhbmdlKSBcclxuXHRcdFx0dGhpcy5ub2Rlc0NoYW5nZS5lbWl0KHRoaXMubm9kZXMpO1x0XHRcclxuXHR9XHJcblxyXG5cdGVkaXROb2RlVGV4dCgpIHtcclxuXHRcdC8vIEhpZGUgdGhlIGNvbnRleHQgbWVudVxyXG5cdFx0Y29uc3QgY29udGV4dE1lbnVFbGVtZW50ID0gPEhUTUxFbGVtZW50PnRoaXMuY29udGV4dE1lbnVSZWYubmF0aXZlRWxlbWVudDtcclxuXHRcdGNvbnRleHRNZW51RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwibWVudS12aXNpYmxlXCIpO1xyXG5cdFx0Y29udGV4dE1lbnVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJtZW51LWhpZGRlblwiKTtcclxuXHJcblx0XHRpZiAoIXRoaXMuY29udGV4dE5vZGVVdWlkKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0Y29uc3QgZGlzcGxheU5vZGUgPSB0aGlzLmRpc3BsYXlOb2Rlcy5maW5kKHggPT4geC51dWlkID09PSB0aGlzLmNvbnRleHROb2RlVXVpZCk7XHJcblx0XHR0aGlzLmVkaXRUZXh0KGRpc3BsYXlOb2RlKTtcclxuXHJcblx0XHRpZiAodGhpcy5ub2Rlc0NoYW5nZSkgXHJcblx0XHRcdHRoaXMubm9kZXNDaGFuZ2UuZW1pdCh0aGlzLm5vZGVzKTtcdFx0XHJcblx0fVxyXG5cclxuXHRzZWxlY3ROb2RlKGRpc3BsYXlOb2RlOiBTbGlja1RyZWVWaWV3RGlzcGxheU1vZGVsKSB7XHJcblx0XHRpZiAodGhpcy5zZWxlY3RlZFV1aWQgPT09IGRpc3BsYXlOb2RlLnV1aWQpXHJcblx0XHRcdHJldHVybjtcclxuXHJcblx0XHR0aGlzLnNlbGVjdGVkVXVpZCA9IGRpc3BsYXlOb2RlLnV1aWQ7XHJcblx0XHRpZiAoZGlzcGxheU5vZGUubm9kZS5leHBhbmRPbkNsaWNrID09PSB0cnVlKVxyXG5cdFx0XHR0aGlzLmV4cGFuZE5vZGUoZGlzcGxheU5vZGUpO1xyXG5cclxuXHRcdGlmICh0aGlzLm9uTm9kZVNlbGVjdGVkKVxyXG5cdFx0XHR0aGlzLm9uTm9kZVNlbGVjdGVkLmVtaXQoZGlzcGxheU5vZGUubm9kZSk7XHJcblx0fVxyXG5cclxuXHRleHBhbmROb2RlKGRpc3BsYXlOb2RlOiBTbGlja1RyZWVWaWV3RGlzcGxheU1vZGVsKSB7XHJcblx0XHRkaXNwbGF5Tm9kZS5ub2RlLmV4cGFuZGVkID0gdHJ1ZTtcclxuXHRcdHRoaXMucmVmcmVzaERpc3BsYXkoKTtcclxuXHR9XHJcblxyXG5cdGNvbGxhcHNlTm9kZShkaXNwbGF5Tm9kZTogU2xpY2tUcmVlVmlld0Rpc3BsYXlNb2RlbCkge1xyXG5cdFx0ZGlzcGxheU5vZGUubm9kZS5leHBhbmRlZCA9IGZhbHNlO1xyXG5cdFx0dGhpcy5yZWZyZXNoRGlzcGxheSgpO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgZWRpdFRleHQoZGlzcGxheU5vZGU6IFNsaWNrVHJlZVZpZXdEaXNwbGF5TW9kZWwpIHtcclxuXHRcdGlmICghZGlzcGxheU5vZGUubm9kZS5jYW5FZGl0VGV4dClcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGRpc3BsYXlOb2RlLmVkaXRpbmdUZXh0ID0gdHJ1ZTtcclxuXHJcblx0XHRhd2FpdCBTbGlja1NsZWVwU2VydmljZS5zbGVlcCgpO1xyXG5cdFx0Y29uc3QgdGV4dGJveCA9IDxIVE1MSW5wdXRFbGVtZW50PmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC5zbGljay10cmVlLXZpZXdfbm9kZS10ZXh0LWVkaXRfJHtkaXNwbGF5Tm9kZS51dWlkfWApO1xyXG5cdFx0aWYgKHRleHRib3gpIHtcclxuXHRcdFx0dGV4dGJveC5mb2N1cygpO1xyXG5cdFx0XHR0ZXh0Ym94LnNlbGVjdCgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSByZWZyZXNoRGlzcGxheSgpIHtcclxuXHRcdHRoaXMuZGlzcGxheU5vZGVzID0gW107XHJcblxyXG5cdFx0aWYgKCF0aGlzLm5vZGVzIHx8IHRoaXMubm9kZXMubGVuZ3RoID09PSAwKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0bGV0IHJvb3ROb2RlOiBJU2xpY2tUcmVlTm9kZU1vZGVsO1xyXG5cdFx0aWYgKHRoaXMucm9vdE5vZGVVdWlkKVxyXG5cdFx0XHRyb290Tm9kZSA9IHRoaXMubm9kZXMuZmluZCh4ID0+IHgudXVpZCA9PT0gdGhpcy5yb290Tm9kZVV1aWQpO1xyXG5cdFx0ZWxzZVxyXG5cdFx0XHRyb290Tm9kZSA9IHRoaXMubm9kZXMuZmluZCh4ID0+IHgucGFyZW50VXVpZCA9PT0gbnVsbCk7XHJcblx0XHQvLyBBbHdheXMgZXhwYW5kIHRoZSByb290IG5vZGVcclxuXHRcdHJvb3ROb2RlLmV4cGFuZGVkID0gdHJ1ZTtcclxuXHJcblx0XHQvLyBJZiB3ZSBhcmVuJ3Qgc2hvd2luZyB0aGUgcm9vdCBub2RlLCBzdGFydCBhdCAtMSBmb3IgdGhlIGluZGVudCBsZXZlbFxyXG5cdFx0dGhpcy5wb3B1bGF0ZURpc3BsYXlOb2Rlcyhyb290Tm9kZSwgKHRoaXMuc2hvd1Jvb3ROb2RlKSA/IDAgOiAtMSk7XHJcblxyXG5cdFx0aWYgKHRoaXMuc2hvd1Jvb3ROb2RlID09PSBmYWxzZSkgXHJcblx0XHRcdHRoaXMuZGlzcGxheU5vZGVzID0gdGhpcy5kaXNwbGF5Tm9kZXMuZmlsdGVyKHggPT4geC5wYXJlbnRVdWlkICE9PSBudWxsKTtcdFx0XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHBvcHVsYXRlRGlzcGxheU5vZGVzKG5vZGU6IElTbGlja1RyZWVOb2RlTW9kZWwsIGxldmVsOiBudW1iZXIpIHtcclxuXHRcdGlmIChsZXZlbCA+PSAxMDApIHtcclxuXHRcdFx0Y29uc29sZS5lcnJvcihcIkV4Y2VlZWRlZCBtYXggb2YgMTAwIGxldmVscyBkZWVwLiAgUG9zc2libGUgaW5maW5pdGUgcmVjdXJzaW9uLlwiKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGRpc3BsYXlOb2RlID0gbmV3IFNsaWNrVHJlZVZpZXdEaXNwbGF5TW9kZWwobm9kZSwgbGV2ZWwpO1xyXG5cclxuXHRcdGlmIChub2RlLmV4cGFuZE9uQ2xpY2sgPT09IG51bGwgfHwgbm9kZS5leHBhbmRPbkNsaWNrID09PSB1bmRlZmluZWQpXHJcblx0XHRcdG5vZGUuZXhwYW5kT25DbGljayA9IHRoaXMuZXhwYW5kT25DbGljaztcclxuXHJcblx0XHRpZiAoZGlzcGxheU5vZGUucGFyZW50VXVpZCA9PT0gbnVsbClcclxuXHRcdFx0ZGlzcGxheU5vZGUubm9kZS5jYW5EZWxldGUgPSBmYWxzZTtcclxuXHJcblx0XHRpZiAoZGlzcGxheU5vZGUudXVpZCA9PT0gdGhpcy5uZXdVdWlkKSBcclxuXHRcdFx0ZGlzcGxheU5vZGUuZWRpdGluZ1RleHQgPSB0cnVlO1xyXG5cdFx0XHJcblx0XHR0aGlzLmRpc3BsYXlOb2Rlcy5wdXNoKGRpc3BsYXlOb2RlKTtcclxuXHJcblx0XHRjb25zdCBjaGlsZE5vZGVzID0gdGhpcy5ub2Rlcy5maWx0ZXIoeCA9PiB4LnBhcmVudFV1aWQgPT09IG5vZGUudXVpZCkgfHwgW107XHJcblx0XHRkaXNwbGF5Tm9kZS5oYXNDaGlsZE5vZGVzID0gKGNoaWxkTm9kZXMubGVuZ3RoID4gMCk7XHJcblxyXG5cdFx0aWYgKG5vZGUuZXhwYW5kZWQgPT09IHRydWUpXHJcblx0XHRcdGNoaWxkTm9kZXMuZm9yRWFjaChjaGlsZE5vZGUgPT4ge1xyXG5cdFx0XHRcdGlmICghY2hpbGROb2RlLmhpZGRlbilcclxuXHRcdFx0XHRcdHRoaXMucG9wdWxhdGVEaXNwbGF5Tm9kZXMoY2hpbGROb2RlLCBsZXZlbCArIDEpXHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBkZWxldGVSZWN1cnNpdmUobm9kZTogSVNsaWNrVHJlZU5vZGVNb2RlbCk6IElTbGlja1RyZWVOb2RlTW9kZWxbXSB7XHJcblx0XHRsZXQgcmVtb3ZlZE5vZGVzOiBJU2xpY2tUcmVlTm9kZU1vZGVsW10gPSBbXTtcclxuXHJcblx0XHRjb25zdCBjaGlsZE5vZGVzID0gdGhpcy5ub2Rlcy5maWx0ZXIoeCA9PiB4LnBhcmVudFV1aWQgPT09IG5vZGUudXVpZCkgfHwgW107XHJcblxyXG5cdFx0Y2hpbGROb2Rlcy5mb3JFYWNoKGNoaWxkTm9kZSA9PiB7XHJcblx0XHRcdHJlbW92ZWROb2RlcyA9IHJlbW92ZWROb2Rlcy5jb25jYXQodGhpcy5kZWxldGVSZWN1cnNpdmUoY2hpbGROb2RlKSlcclxuXHRcdH0pO1xyXG5cclxuXHRcdHJlbW92ZWROb2Rlcy5wdXNoKG5vZGUpO1xyXG5cclxuXHRcdHRoaXMubm9kZXMgPSB0aGlzLm5vZGVzLmZpbHRlcih4ID0+IHgudXVpZCAhPT0gbm9kZS51dWlkKTtcclxuXHJcblx0XHRyZXR1cm4gcmVtb3ZlZE5vZGVzO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBwcm9jZXNzTmV3Tm9kZSgpIHtcclxuXHRcdGlmICghdGhpcy5uZXdVdWlkKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0Y29uc3QgbmV3Tm9kZSA9IHRoaXMubm9kZXMuZmluZCh4ID0+IHgudXVpZCA9PT0gdGhpcy5uZXdVdWlkKTtcclxuXHRcdGNvbnN0IGRpc3BsYXlOb2RlID0gdGhpcy5kaXNwbGF5Tm9kZXMuZmluZCh4ID0+IHgudXVpZCA9PSB0aGlzLm5ld1V1aWQpO1xyXG5cdFx0Ly8gRG8gdGhpcyBzbyB0aGF0IHdlIGRvbid0IHRyaWdnZXIgdGhlIG5vZGUgdXBkYXRlXHJcblx0XHQgbmV3Tm9kZS50ZXh0ID0gZGlzcGxheU5vZGUudGV4dDtcclxuXHJcblx0XHR0aGlzLm5ld1V1aWQgPSBudWxsO1xyXG5cclxuXHRcdGlmICghbmV3Tm9kZSkgXHJcblx0XHRcdHJldHVybjtcdFx0XHJcblxyXG5cdFx0aWYgKHRoaXMub25Ob2RlQWRkZWQpXHJcblx0XHRcdHRoaXMub25Ob2RlQWRkZWQuZW1pdChuZXdOb2RlKTtcclxuXHJcblx0XHRpZiAodGhpcy5ub2Rlc0NoYW5nZSlcclxuXHRcdFx0dGhpcy5ub2Rlc0NoYW5nZS5lbWl0KHRoaXMubm9kZXMpO1xyXG5cdH1cclxufVxyXG4iXX0=
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { NgModule } from "@angular/core";
|
|
3
|
-
import { FormsModule } from "@angular/forms";
|
|
4
|
-
import { SlickConfirmDialogModule } from "../slick-confirm-dialog/slick-confirm-dialog.module";
|
|
5
|
-
import { SlickTreeViewComponent } from "./slick-tree-view.component";
|
|
6
|
-
export class SlickTreeViewModule {
|
|
7
|
-
}
|
|
8
|
-
SlickTreeViewModule.decorators = [
|
|
9
|
-
{ type: NgModule, args: [{
|
|
10
|
-
imports: [CommonModule, FormsModule, SlickConfirmDialogModule],
|
|
11
|
-
declarations: [SlickTreeViewComponent],
|
|
12
|
-
exports: [CommonModule, FormsModule, SlickTreeViewComponent]
|
|
13
|
-
},] }
|
|
14
|
-
];
|
|
15
|
-
export { SlickTreeViewComponent };
|
|
16
|
-
export { SlickTreeNodeModel } from "./slick-tree-node.model";
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stdHJlZS12aWV3Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3NsaWNrLXRyZWUtdmlldy9zbGljay10cmVlLXZpZXcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQU9yRSxNQUFNLE9BQU8sbUJBQW1COzs7WUFML0IsUUFBUSxTQUFDO2dCQUNULE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsd0JBQXdCLENBQUM7Z0JBQzlELFlBQVksRUFBRSxDQUFDLHNCQUFzQixDQUFDO2dCQUN0QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixDQUFDO2FBQzVEOztBQUdELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxDQUFBO0FBQ2pDLE9BQU8sRUFBdUIsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgU2xpY2tDb25maXJtRGlhbG9nTW9kdWxlIH0gZnJvbSBcIi4uL3NsaWNrLWNvbmZpcm0tZGlhbG9nL3NsaWNrLWNvbmZpcm0tZGlhbG9nLm1vZHVsZVwiO1xyXG5pbXBvcnQgeyBTbGlja1RyZWVWaWV3Q29tcG9uZW50IH0gZnJvbSBcIi4vc2xpY2stdHJlZS12aWV3LmNvbXBvbmVudFwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgU2xpY2tDb25maXJtRGlhbG9nTW9kdWxlXSxcclxuXHRkZWNsYXJhdGlvbnM6IFtTbGlja1RyZWVWaWV3Q29tcG9uZW50XSxcclxuXHRleHBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgU2xpY2tUcmVlVmlld0NvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNsaWNrVHJlZVZpZXdNb2R1bGUgeyB9XHJcblxyXG5leHBvcnQgeyBTbGlja1RyZWVWaWV3Q29tcG9uZW50IH1cclxuZXhwb3J0IHsgSVNsaWNrVHJlZU5vZGVNb2RlbCwgU2xpY2tUcmVlTm9kZU1vZGVsIH0gZnJvbSBcIi4vc2xpY2stdHJlZS1ub2RlLm1vZGVsXCI7XHJcbiJdfQ==
|