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,233 @@
|
|
|
1
|
+
import { Directive, Input, forwardRef } from "@angular/core";
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from "@angular/forms";
|
|
3
|
+
import { SlickSleepService } from '../utils/slick-sleep.service';
|
|
4
|
+
import { SlickCurrencyMaskOptions } from "./slick-currency-mask-options.model";
|
|
5
|
+
import { SlickUtilsService } from '../utils/slick-utils.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class SlickCurrencyMaskDirective {
|
|
8
|
+
constructor(el) {
|
|
9
|
+
this.el = el;
|
|
10
|
+
this.hasFocus = false;
|
|
11
|
+
this.uuid = SlickUtilsService.newGuid();
|
|
12
|
+
this.options = new SlickCurrencyMaskOptions();
|
|
13
|
+
this.fnKeyDown = (e) => this.keyDown(e);
|
|
14
|
+
this.fnFocus = () => this.focus();
|
|
15
|
+
this.fnBlur = () => this.blur();
|
|
16
|
+
this.propagateChange = (_) => { };
|
|
17
|
+
this.el.nativeElement.style.textAlign = "right";
|
|
18
|
+
this.hasFocus = false;
|
|
19
|
+
this.el.nativeElement.addEventListener('keydown', this.fnKeyDown);
|
|
20
|
+
this.el.nativeElement.addEventListener('focus', this.fnFocus);
|
|
21
|
+
this.el.nativeElement.addEventListener('blur', this.fnBlur);
|
|
22
|
+
}
|
|
23
|
+
ngOnInit() {
|
|
24
|
+
// If the currency mask doesn't have any options, set default options
|
|
25
|
+
if (!this.slickCurrencyMask)
|
|
26
|
+
this.slickCurrencyMask = new SlickCurrencyMaskOptions();
|
|
27
|
+
this.options = new SlickCurrencyMaskOptions();
|
|
28
|
+
this.options.prefix = this.slickCurrencyMask.prefix || "$";
|
|
29
|
+
this.options.decimal = this.slickCurrencyMask.decimal || ".";
|
|
30
|
+
this.options.thousands = this.slickCurrencyMask.thousands || ",";
|
|
31
|
+
this.options.precision = (this.slickCurrencyMask.precision === null || this.slickCurrencyMask.precision === undefined) ? 2 : parseInt(this.slickCurrencyMask.precision.toString());
|
|
32
|
+
this.options.allowNegative = (this.slickCurrencyMask.allowNegative === null || this.slickCurrencyMask.allowNegative === undefined) ? true : (this.slickCurrencyMask.allowNegative.toString() === 'true');
|
|
33
|
+
this.options.updateOnBlurOnly = (this.slickCurrencyMask.updateOnBlurOnly === null || this.slickCurrencyMask.updateOnBlurOnly === undefined) ? true : (this.slickCurrencyMask.updateOnBlurOnly.toString() === 'true');
|
|
34
|
+
this.options.defaultToZero = (this.slickCurrencyMask.defaultToZero === null || this.slickCurrencyMask.defaultToZero === undefined) ? true : (this.slickCurrencyMask.defaultToZero.toString() === 'true');
|
|
35
|
+
}
|
|
36
|
+
ngOnDestroy() {
|
|
37
|
+
this.el.nativeElement.removeEventListener('keydown', this.fnKeyDown);
|
|
38
|
+
this.el.nativeElement.removeEventListener('focus', this.fnFocus);
|
|
39
|
+
this.el.nativeElement.removeEventListener('blur', this.fnBlur);
|
|
40
|
+
}
|
|
41
|
+
async keyDown(e) {
|
|
42
|
+
if (e.altKey || e.ctrlKey)
|
|
43
|
+
return;
|
|
44
|
+
let isValid = false;
|
|
45
|
+
if (e.key === this.options.decimal)
|
|
46
|
+
isValid = true;
|
|
47
|
+
if (e.code === 'ArrowLeft' || e.code === 'ArrowRight')
|
|
48
|
+
isValid = true;
|
|
49
|
+
// Backspace
|
|
50
|
+
if (e.keyCode === 8)
|
|
51
|
+
isValid = true;
|
|
52
|
+
// Tab
|
|
53
|
+
if (e.keyCode === 9)
|
|
54
|
+
isValid = true;
|
|
55
|
+
// Del
|
|
56
|
+
if (e.keyCode === 46)
|
|
57
|
+
isValid = true;
|
|
58
|
+
// F1-F12
|
|
59
|
+
if (e.keyCode >= 112 && e.keyCode <= 123)
|
|
60
|
+
isValid = true;
|
|
61
|
+
if (e.key >= '0' && e.key <= '9')
|
|
62
|
+
isValid = true;
|
|
63
|
+
if (e.key === '-' && this.options.allowNegative === true)
|
|
64
|
+
isValid = true;
|
|
65
|
+
if (e.keyCode === 46)
|
|
66
|
+
isValid = true;
|
|
67
|
+
if (!isValid) {
|
|
68
|
+
e.preventDefault();
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
await SlickSleepService.sleep();
|
|
72
|
+
const usLocaleText = this.convertToUSLocale(this.el.nativeElement.value);
|
|
73
|
+
const dollarValue = this.parseDollarValue(usLocaleText);
|
|
74
|
+
if (this.options.updateOnBlurOnly === false)
|
|
75
|
+
this.propagateChange(dollarValue);
|
|
76
|
+
}
|
|
77
|
+
async focus() {
|
|
78
|
+
this.el.nativeElement.addEventListener('keydown', this.fnKeyDown);
|
|
79
|
+
this.el.nativeElement.addEventListener('blur', this.fnBlur);
|
|
80
|
+
this.hasFocus = true;
|
|
81
|
+
const usLocaleText = this.convertToUSLocale(this.el.nativeElement.value);
|
|
82
|
+
this.updateTextbox(usLocaleText);
|
|
83
|
+
this.el.nativeElement.select();
|
|
84
|
+
}
|
|
85
|
+
async blur() {
|
|
86
|
+
this.el.nativeElement.removeEventListener('keydown', this.fnKeyDown);
|
|
87
|
+
this.el.nativeElement.removeEventListener('blur', this.fnBlur);
|
|
88
|
+
this.hasFocus = false;
|
|
89
|
+
const usLocaleText = this.convertToUSLocale(this.el.nativeElement.value);
|
|
90
|
+
this.updateTextbox(usLocaleText);
|
|
91
|
+
const dollarValue = this.parseDollarValue(usLocaleText);
|
|
92
|
+
this.propagateChange(dollarValue);
|
|
93
|
+
}
|
|
94
|
+
// this is the initial value set to the component
|
|
95
|
+
writeValue(obj) {
|
|
96
|
+
if (obj === null || obj === undefined) {
|
|
97
|
+
if (this.options.defaultToZero === true) {
|
|
98
|
+
obj = 0;
|
|
99
|
+
this.propagateChange(0);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
this.el.nativeElement.value = null;
|
|
103
|
+
this.propagateChange(null);
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// If this is a locale where , is the decimal separator, convert it back to . for our purposes
|
|
108
|
+
const objStr = obj.toString().replace(",", ".");
|
|
109
|
+
const objNum = parseFloat(objStr);
|
|
110
|
+
// toLocaleString will add in the ,'s so make sure to remove them
|
|
111
|
+
const objStrLocale = objNum.toLocaleString("en-US").replace(",", "");
|
|
112
|
+
this.updateTextbox(objStrLocale);
|
|
113
|
+
}
|
|
114
|
+
// registers 'fn' that will be fired when changes are made
|
|
115
|
+
// this is how we emit the changes back to the form
|
|
116
|
+
registerOnChange(fn) {
|
|
117
|
+
this.propagateChange = fn;
|
|
118
|
+
}
|
|
119
|
+
// not used, used for touch input
|
|
120
|
+
registerOnTouched() { }
|
|
121
|
+
convertToUSLocale(text) {
|
|
122
|
+
while (text.indexOf(" ") >= 0)
|
|
123
|
+
text = text.replace(" ", "");
|
|
124
|
+
if (!text) {
|
|
125
|
+
if (this.options.defaultToZero === true)
|
|
126
|
+
text = "0.0";
|
|
127
|
+
else
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
if (text.indexOf(this.options.decimal) === 0)
|
|
131
|
+
text = `0${text}`;
|
|
132
|
+
const textParts = text.split(this.options.decimal).filter(x => x !== "");
|
|
133
|
+
if (textParts.length === 0)
|
|
134
|
+
textParts.push('0');
|
|
135
|
+
if (textParts.length === 1)
|
|
136
|
+
textParts.push('0');
|
|
137
|
+
// Only take the first 2. The rest are errors
|
|
138
|
+
if (textParts.length > 2)
|
|
139
|
+
textParts.slice(0, 1);
|
|
140
|
+
textParts[0] = textParts[0]
|
|
141
|
+
.replace(this.options.thousands, "")
|
|
142
|
+
.replace(this.options.prefix, "")
|
|
143
|
+
.replace(this.options.decimal, "");
|
|
144
|
+
return `${textParts[0]}.${textParts[1]}`;
|
|
145
|
+
}
|
|
146
|
+
parseDollarValue(text) {
|
|
147
|
+
if (!text)
|
|
148
|
+
return null;
|
|
149
|
+
while (text.indexOf(" ") >= 0)
|
|
150
|
+
text = text.replace(" ", "");
|
|
151
|
+
// Split the text into the dollar's part and the cents part
|
|
152
|
+
const textParts = text.split(".").filter(x => x !== "");
|
|
153
|
+
// Make sure we have a dollars and cents
|
|
154
|
+
if (textParts.length === 0)
|
|
155
|
+
textParts.push('0');
|
|
156
|
+
if (textParts.length === 1)
|
|
157
|
+
textParts.push('0');
|
|
158
|
+
// Only take the first 2. The rest are not allowed
|
|
159
|
+
if (textParts.length > 2)
|
|
160
|
+
textParts.slice(0, 1);
|
|
161
|
+
textParts[0] = textParts[0]
|
|
162
|
+
.replace(this.options.prefix, "")
|
|
163
|
+
.replace(",", "");
|
|
164
|
+
try {
|
|
165
|
+
return parseFloat(`${textParts[0]}.${textParts[1]}`);
|
|
166
|
+
}
|
|
167
|
+
catch {
|
|
168
|
+
return 0;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
updateTextbox(strVal) {
|
|
172
|
+
if (!strVal) {
|
|
173
|
+
this.el.nativeElement.value = null;
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
if (this.options.allowNegative === false)
|
|
177
|
+
strVal = strVal.replace("-", "");
|
|
178
|
+
// If there is a - sign, remove it temporarily
|
|
179
|
+
const negativePart = (strVal.indexOf("-") === 0) ? "-" : "";
|
|
180
|
+
strVal = strVal.replace("-", "");
|
|
181
|
+
const currencyParts = strVal.split(".").filter(x => x !== "");
|
|
182
|
+
// make sure there is a dollar amount
|
|
183
|
+
if (currencyParts.length === 0)
|
|
184
|
+
currencyParts.push("0");
|
|
185
|
+
// make sure there is a cents amount
|
|
186
|
+
if (currencyParts.length === 1)
|
|
187
|
+
currencyParts.push("0");
|
|
188
|
+
// Only take the first 2. The rest are errors
|
|
189
|
+
if (currencyParts.length > 2)
|
|
190
|
+
currencyParts.slice(0, 1);
|
|
191
|
+
let dollarPart = currencyParts[0];
|
|
192
|
+
dollarPart = dollarPart.replace(',', '').replace('.', '');
|
|
193
|
+
let centsPart = currencyParts[1];
|
|
194
|
+
if (centsPart.length > this.options.precision)
|
|
195
|
+
centsPart = centsPart.substr(0, this.options.precision);
|
|
196
|
+
while (centsPart.length < this.options.precision)
|
|
197
|
+
centsPart = centsPart + "0";
|
|
198
|
+
// reverse the dollar part so we can put commas every 3 chars
|
|
199
|
+
if (!this.hasFocus && dollarPart.length > 3) {
|
|
200
|
+
for (let i = dollarPart.length - 3; i > 0; i -= 3)
|
|
201
|
+
dollarPart = [dollarPart.slice(0, i), this.options.thousands, dollarPart.slice(i)].join('');
|
|
202
|
+
}
|
|
203
|
+
let textboxVal = `${negativePart}${dollarPart}${this.options.decimal}${centsPart}`;
|
|
204
|
+
if (!this.hasFocus)
|
|
205
|
+
textboxVal = `${this.options.prefix}${textboxVal}`;
|
|
206
|
+
this.el.nativeElement.value = textboxVal;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
/** @nocollapse */ SlickCurrencyMaskDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickCurrencyMaskDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
210
|
+
/** @nocollapse */ SlickCurrencyMaskDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.3", type: SlickCurrencyMaskDirective, selector: "[slick-currency-mask]", inputs: { slickCurrencyMask: ["slick-currency-mask", "slickCurrencyMask"] }, providers: [
|
|
211
|
+
{
|
|
212
|
+
provide: NG_VALUE_ACCESSOR,
|
|
213
|
+
useExisting: forwardRef((() => SlickCurrencyMaskDirective)),
|
|
214
|
+
multi: true,
|
|
215
|
+
}
|
|
216
|
+
], ngImport: i0 });
|
|
217
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickCurrencyMaskDirective, decorators: [{
|
|
218
|
+
type: Directive,
|
|
219
|
+
args: [{
|
|
220
|
+
selector: '[slick-currency-mask]',
|
|
221
|
+
providers: [
|
|
222
|
+
{
|
|
223
|
+
provide: NG_VALUE_ACCESSOR,
|
|
224
|
+
useExisting: forwardRef((() => SlickCurrencyMaskDirective)),
|
|
225
|
+
multi: true,
|
|
226
|
+
}
|
|
227
|
+
]
|
|
228
|
+
}]
|
|
229
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { slickCurrencyMask: [{
|
|
230
|
+
type: Input,
|
|
231
|
+
args: ["slick-currency-mask"]
|
|
232
|
+
}] } });
|
|
233
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stY3VycmVuY3ktbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9zbGljay1jdXJyZW5jeS1tYXNrL3NsaWNrLWN1cnJlbmN5LW1hc2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFjLFVBQVUsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQVdqRSxNQUFNLE9BQU8sMEJBQTBCO0lBWXRDLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBVmxDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIsU0FBSSxHQUFXLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRTNDLFlBQU8sR0FBNkIsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO1FBRTNELGNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxZQUFPLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLFdBQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUF5R25DLG9CQUFlLEdBQUcsQ0FBQyxDQUFTLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQXRHaEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFjLENBQUMsS0FBSyxDQUFD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LENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzdGO1FBRUQsSUFBSSxVQUFVLEdBQUcsR0FBRyxZQUFZLEdBQUcsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBQ25GLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUNqQixVQUFVLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxVQUFVLEVBQUUsQ0FBQztRQUVqQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWMsQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDO0lBQzlELENBQUM7OzBJQXBRVywwQkFBMEI7OEhBQTFCLDBCQUEwQiw2SEFQM0I7UUFDVjtZQUNDLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsRUFBQyxHQUFHLEVBQUUsQ0FBQywwQkFBMEIsRUFBQztZQUN6RCxLQUFLLEVBQUUsSUFBSTtTQUNYO0tBQUM7MkZBRVMsMEJBQTBCO2tCQVR0QyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFNBQVMsRUFBRTt3QkFDVjs0QkFDQyxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSwyQkFBMkIsRUFBQzs0QkFDekQsS0FBSyxFQUFFLElBQUk7eUJBQ1g7cUJBQUM7aUJBQ0g7aUdBRThCLGlCQUFpQjtzQkFBOUMsS0FBSzt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBTbGlja1NsZWVwU2VydmljZSB9IGZyb20gJy4uL3V0aWxzL3NsaWNrLXNsZWVwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbGlja0N1cnJlbmN5TWFza09wdGlvbnMgfSBmcm9tIFwiLi9zbGljay1jdXJyZW5jeS1tYXNrLW9wdGlvbnMubW9kZWxcIjtcclxuaW1wb3J0IHsgU2xpY2tVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi91dGlscy9zbGljay11dGlscy5zZXJ2aWNlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG5cdHNlbGVjdG9yOiAnW3NsaWNrLWN1cnJlbmN5LW1hc2tdJyxcclxuXHRwcm92aWRlcnM6IFtcclxuXHRcdHtcclxuXHRcdFx0cHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcblx0XHRcdHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNsaWNrQ3VycmVuY3lNYXNrRGlyZWN0aXZlKSxcclxuXHRcdFx0bXVsdGk6IHRydWUsXHJcblx0XHR9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2xpY2tDdXJyZW5jeU1hc2tEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHRASW5wdXQoXCJzbGljay1jdXJyZW5jeS1tYXNrXCIpIHNsaWNrQ3VycmVuY3lNYXNrOiBTbGlja0N1cnJlbmN5TWFza09wdGlvbnM7XHJcblx0aGFzRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0dXVpZDogc3RyaW5nID0gU2xpY2tVdGlsc1NlcnZpY2UubmV3R3VpZCgpO1xyXG5cclxuXHRvcHRpb25zOiBTbGlja0N1cnJlbmN5TWFza09wdGlvbnMgPSBuZXcgU2xpY2tDdXJyZW5jeU1hc2tPcHRpb25zKCk7XHJcblxyXG5cdHByaXZhdGUgZm5LZXlEb3duID0gKGUpID0+IHRoaXMua2V5RG93bihlKTtcclxuXHRwcml2YXRlIGZuRm9jdXMgPSAoKSA9PiB0aGlzLmZvY3VzKCk7XHJcblx0cHJpdmF0ZSBmbkJsdXIgPSAoKSA9PiB0aGlzLmJsdXIoKTtcclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge1xyXG5cdFx0KDxIVE1MSW5wdXRFbGVtZW50PnRoaXMuZWwubmF0aXZlRWxlbWVudCkuc3R5bGUudGV4dEFsaWduID0gXCJyaWdodFwiO1xyXG5cdFx0dGhpcy5oYXNGb2N1cyA9IGZhbHNlO1xyXG5cclxuXHRcdHRoaXMuZWwubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5mbktleURvd24pO1xyXG5cdFx0dGhpcy5lbC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgdGhpcy5mbkZvY3VzKTtcclxuXHRcdHRoaXMuZWwubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgdGhpcy5mbkJsdXIpO1xyXG5cdH1cclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHQvLyBJZiB0aGUgY3VycmVuY3kgbWFzayBkb2Vzbid0IGhhdmUgYW55IG9wdGlvbnMsIHNldCBkZWZhdWx0IG9wdGlvbnNcclxuXHRcdGlmICghdGhpcy5zbGlja0N1cnJlbmN5TWFzaykgXHJcblx0XHRcdHRoaXMuc2xpY2tDdXJyZW5jeU1hc2sgPSBuZXcgU2xpY2tDdXJyZW5jeU1hc2tPcHRpb25zKCk7XHJcblxyXG5cdFx0dGhpcy5vcHRpb25zID0gbmV3IFNsaWNrQ3VycmVuY3lNYXNrT3B0aW9ucygpO1xyXG5cdFx0dGhpcy5vcHRpb25zLnByZWZpeCA9IHRoaXMuc2xpY2tDdXJyZW5jeU1hc2sucHJlZml4IHx8IFwiJFwiO1xyXG5cdFx0dGhpcy5vcHRpb25zLmRlY2ltYWwgPSB0aGlzLnNsaWNrQ3VycmVuY3lNYXNrLmRlY2ltYWwgfHwgXCIuXCI7XHJcblx0XHR0aGlzLm9wdGlvbnMudGhvdXNhbmRzID0gdGhpcy5zbGlja0N1cnJlbmN5TWFzay50aG91c2FuZHMgfHwgXCIsXCI7XHJcblx0XHR0aGlzLm9wdGlvbnMucHJlY2lzaW9uID0gKHRoaXMuc2xpY2tDdXJyZW5jeU1hc2sucHJlY2lzaW9uID09PSBudWxsIHx8IHRoaXMuc2xpY2tDdXJyZW5jeU1hc2sucHJlY2lzaW9uID09PSB1bmRlZmluZWQpID8gMiA6IHBhcnNlSW50KHRoaXMuc2xpY2tDdXJyZW5jeU1hc2sucHJlY2lzaW9uLnRvU3RyaW5nKCkpO1xyXG5cdFx0dGhpcy5vcHRpb25zLmFsbG93TmVnYXRpdmUgPSAodGhpcy5zbGlja0N1cnJlbmN5TWFzay5hbGxvd05lZ2F0aXZlID09PSBudWxsIHx8IHRoaXMuc2xpY2tDdXJyZW5jeU1hc2suYWxsb3dOZWdhdGl2ZSA9PT0gdW5kZWZpbmVkKSA/IHRydWUgOiAodGhpcy5zbGlja0N1cnJlbmN5TWFzay5hbGxvd05lZ2F0aXZlLnRvU3RyaW5nKCkgPT09ICd0cnVlJyk7XHJcblx0XHR0aGlzLm9wdGlvbnMudXBkYXRlT25CbHVyT25seSA9ICh0aGlzLnNsaWNrQ3VycmVuY3lNYXNrLnVwZGF0ZU9uQmx1ck9ubHkgPT09IG51bGwgfHwgdGhpcy5zbGlja0N1cnJlbmN5TWFzay51cGRhdGVPbkJsdXJPbmx5ID09PSB1bmRlZmluZWQpID8gdHJ1ZSA6ICh0aGlzLnNsaWNrQ3VycmVuY3lNYXNrLnVwZGF0ZU9uQmx1ck9ubHkudG9TdHJpbmcoKSA9PT0gJ3RydWUnKTtcclxuXHRcdHRoaXMub3B0aW9ucy5kZWZhdWx0VG9aZXJvID0gKHRoaXMuc2xpY2tDdXJyZW5jeU1hc2suZGVmYXVsdFRvWmVybyA9PT0gbnVsbCB8fCB0aGlzLnNsaWNrQ3VycmVuY3lNYXNrLmRlZmF1bHRUb1plcm8gPT09IHVuZGVmaW5lZCkgPyB0cnVlIDogKHRoaXMuc2xpY2tDdXJyZW5jeU1hc2suZGVmYXVsdFRvWmVyby50b1N0cmluZygpID09PSAndHJ1ZScpO1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHR0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuZm5LZXlEb3duKTtcclxuXHRcdHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1cycsIHRoaXMuZm5Gb2N1cyk7XHJcblx0XHR0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignYmx1cicsIHRoaXMuZm5CbHVyKTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIGtleURvd24oZTogS2V5Ym9hcmRFdmVudCkge1xyXG5cdFx0aWYgKGUuYWx0S2V5IHx8IGUuY3RybEtleSlcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGxldCBpc1ZhbGlkID0gZmFsc2U7XHJcblxyXG5cdFx0aWYgKGUua2V5ID09PSB0aGlzLm9wdGlvbnMuZGVjaW1hbClcclxuXHRcdFx0aXNWYWxpZCA9IHRydWU7XHJcblxyXG5cdFx0aWYgKGUuY29kZSA9PT0gJ0Fycm93TGVmdCcgfHwgZS5jb2RlID09PSAnQXJyb3dSaWdodCcpXHJcblx0XHRcdGlzVmFsaWQgPSB0cnVlO1xyXG5cclxuXHRcdC8vIEJhY2tzcGFjZVxyXG5cdFx0aWYgKGUua2V5Q29kZSA9PT0gOClcclxuXHRcdFx0aXNWYWxpZCA9IHRydWU7XHJcblxyXG5cdFx0Ly8gVGFiXHJcblx0XHRpZiAoZS5rZXlDb2RlID09PSA5KVxyXG5cdFx0XHRpc1ZhbGlkID0gdHJ1ZTtcclxuXHJcblx0XHQvLyBEZWxcclxuXHRcdGlmIChlLmtleUNvZGUgPT09IDQ2KVxyXG5cdFx0XHRpc1ZhbGlkID0gdHJ1ZTtcclxuXHJcblx0XHQvLyBGMS1GMTJcclxuXHRcdGlmIChlLmtleUNvZGUgPj0gMTEyICYmIGUua2V5Q29kZSA8PSAxMjMpXHJcblx0XHRcdGlzVmFsaWQgPSB0cnVlO1xyXG5cclxuXHRcdGlmIChlLmtleSA+PSAnMCcgJiYgZS5rZXkgPD0gJzknKVxyXG5cdFx0XHRpc1ZhbGlkID0gdHJ1ZTtcclxuXHJcblx0XHRpZiAoZS5rZXkgPT09ICctJyAmJiB0aGlzLm9wdGlvbnMuYWxsb3dOZWdhdGl2ZSA9PT0gdHJ1ZSlcclxuXHRcdFx0aXNWYWxpZCA9IHRydWU7XHJcblxyXG5cdFx0aWYgKGUua2V5Q29kZSA9PT0gNDYpXHJcblx0XHRcdGlzVmFsaWQgPSB0cnVlO1xyXG5cclxuXHRcdGlmICghaXNWYWxpZCkge1xyXG5cdFx0XHRlLnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRhd2FpdCBTbGlja1NsZWVwU2VydmljZS5zbGVlcCgpO1x0XHRcclxuXHJcblx0XHRjb25zdCB1c0xvY2FsZVRleHQgPSB0aGlzLmNvbnZlcnRUb1VTTG9jYWxlKCg8SFRNTElucHV0RWxlbWVudD50aGlzLmVsLm5hdGl2ZUVsZW1lbnQpLnZhbHVlKTtcclxuXHJcblx0XHRjb25zdCBkb2xsYXJWYWx1ZSA9IHRoaXMucGFyc2VEb2xsYXJWYWx1ZSh1c0xvY2FsZVRleHQpO1xyXG5cdFx0aWYgKHRoaXMub3B0aW9ucy51cGRhdGVPbkJsdXJPbmx5ID09PSBmYWxzZSlcclxuXHRcdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UoZG9sbGFyVmFsdWUpO1xyXG5cclxuXHR9XHJcblxyXG5cdGFzeW5jIGZvY3VzKCkge1xyXG5cdFx0dGhpcy5lbC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLmZuS2V5RG93bik7XHJcblx0XHR0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHRoaXMuZm5CbHVyKTtcclxuXHJcblx0XHR0aGlzLmhhc0ZvY3VzID0gdHJ1ZTtcclxuXHRcdGNvbnN0IHVzTG9jYWxlVGV4dCA9IHRoaXMuY29udmVydFRvVVNMb2NhbGUoKDxIVE1MSW5wdXRFbGVtZW50PnRoaXMuZWwubmF0aXZlRWxlbWVudCkudmFsdWUpO1xyXG5cdFx0dGhpcy51cGRhdGVUZXh0Ym94KHVzTG9jYWxlVGV4dCk7XHJcblx0XHQoPEhUTUxJbnB1dEVsZW1lbnQ+dGhpcy5lbC5uYXRpdmVFbGVtZW50KS5zZWxlY3QoKVxyXG5cdH1cclxuXHJcblx0YXN5bmMgYmx1cigpIHtcclxuXHRcdHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5mbktleURvd24pO1xyXG5cdFx0dGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2JsdXInLCB0aGlzLmZuQmx1cik7XHJcblxyXG5cdFx0dGhpcy5oYXNGb2N1cyA9IGZhbHNlO1xyXG5cdFx0Y29uc3QgdXNMb2NhbGVUZXh0ID0gdGhpcy5jb252ZXJ0VG9VU0xvY2FsZSgoPEhUTUxJbnB1dEVsZW1lbnQ+dGhpcy5lbC5uYXRpdmVFbGVtZW50KS52YWx1ZSk7XHJcblx0XHR0aGlzLnVwZGF0ZVRleHRib3godXNMb2NhbGVUZXh0KTtcclxuXHRcdGNvbnN0IGRvbGxhclZhbHVlID0gdGhpcy5wYXJzZURvbGxhclZhbHVlKHVzTG9jYWxlVGV4dCk7XHJcblx0XHR0aGlzLnByb3BhZ2F0ZUNoYW5nZShkb2xsYXJWYWx1ZSk7XHJcblx0fVxyXG5cclxuXHRwcm9wYWdhdGVDaGFuZ2UgPSAoXzogbnVtYmVyKSA9PiB7fTtcclxuXHJcblx0Ly8gdGhpcyBpcyB0aGUgaW5pdGlhbCB2YWx1ZSBzZXQgdG8gdGhlIGNvbXBvbmVudFxyXG5cdHB1YmxpYyB3cml0ZVZhbHVlKG9iajogbnVtYmVyIHwgc3RyaW5nKSB7XHJcblx0XHRpZiAob2JqID09PSBudWxsIHx8IG9iaiA9PT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdGlmICh0aGlzLm9wdGlvbnMuZGVmYXVsdFRvWmVybyA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdG9iaiA9IDA7XHJcblx0XHRcdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UoMCk7XHJcblx0XHRcdH1cclxuXHRcdFx0ZWxzZSB7XHJcblx0XHRcdFx0KDxIVE1MSW5wdXRFbGVtZW50PnRoaXMuZWwubmF0aXZlRWxlbWVudCkudmFsdWUgPSBudWxsO1xyXG5cdFx0XHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlKG51bGwpO1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC8vIElmIHRoaXMgaXMgYSBsb2NhbGUgd2hlcmUgLCBpcyB0aGUgZGVjaW1hbCBzZXBhcmF0b3IsIGNvbnZlcnQgaXQgYmFjayB0byAuIGZvciBvdXIgcHVycG9zZXNcclxuXHRcdGNvbnN0IG9ialN0ciA9IG9iai50b1N0cmluZygpLnJlcGxhY2UoXCIsXCIsIFwiLlwiKTtcclxuXHRcdGNvbnN0IG9iak51bSA9IHBhcnNlRmxvYXQob2JqU3RyKTtcclxuXHRcdC8vIHRvTG9jYWxlU3RyaW5nIHdpbGwgYWRkIGluIHRoZSAsJ3Mgc28gbWFrZSBzdXJlIHRvIHJlbW92ZSB0aGVtXHJcblx0XHRjb25zdCBvYmpTdHJMb2NhbGUgPSBvYmpOdW0udG9Mb2NhbGVTdHJpbmcoXCJlbi1VU1wiKS5yZXBsYWNlKFwiLFwiLCBcIlwiKTtcclxuXHRcdHRoaXMudXBkYXRlVGV4dGJveChvYmpTdHJMb2NhbGUpO1xyXG5cdH1cclxuXHJcblx0Ly8gcmVnaXN0ZXJzICdmbicgdGhhdCB3aWxsIGJlIGZpcmVkIHdoZW4gY2hhbmdlcyBhcmUgbWFkZVxyXG5cdC8vIHRoaXMgaXMgaG93IHdlIGVtaXQgdGhlIGNoYW5nZXMgYmFjayB0byB0aGUgZm9ybVxyXG5cdHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuXHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XHJcblx0fVxyXG5cclxuXHQvLyBub3QgdXNlZCwgdXNlZCBmb3IgdG91Y2ggaW5wdXRcclxuXHRwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoKSB7IH1cclxuXHJcblx0cHJpdmF0ZSBjb252ZXJ0VG9VU0xvY2FsZSh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xyXG5cdFx0d2hpbGUgKHRleHQuaW5kZXhPZihcIiBcIikgPj0gMClcclxuXHRcdFx0dGV4dCA9IHRleHQucmVwbGFjZShcIiBcIiwgXCJcIik7XHJcblxyXG5cdFx0aWYgKCF0ZXh0KSB7XHJcblx0XHRcdGlmICh0aGlzLm9wdGlvbnMuZGVmYXVsdFRvWmVybyA9PT0gdHJ1ZSkgXHJcblx0XHRcdFx0dGV4dCA9IFwiMC4wXCI7XHRcdFx0XHJcblx0XHRcdGVsc2UgXHJcblx0XHRcdFx0cmV0dXJuIG51bGw7XHRcdFx0XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRleHQuaW5kZXhPZih0aGlzLm9wdGlvbnMuZGVjaW1hbCkgPT09IDApXHJcblx0XHRcdHRleHQgPSBgMCR7dGV4dH1gO1xyXG5cclxuXHRcdGNvbnN0IHRleHRQYXJ0cyA9IHRleHQuc3BsaXQodGhpcy5vcHRpb25zLmRlY2ltYWwpLmZpbHRlcih4ID0+IHggIT09IFwiXCIpO1xyXG5cclxuXHRcdGlmICh0ZXh0UGFydHMubGVuZ3RoID09PSAwKVxyXG5cdFx0XHR0ZXh0UGFydHMucHVzaCgnMCcpO1xyXG5cclxuXHRcdGlmICh0ZXh0UGFydHMubGVuZ3RoID09PSAxKVxyXG5cdFx0XHR0ZXh0UGFydHMucHVzaCgnMCcpO1xyXG5cclxuXHRcdC8vIE9ubHkgdGFrZSB0aGUgZmlyc3QgMi4gIFRoZSByZXN0IGFyZSBlcnJvcnNcclxuXHRcdGlmICh0ZXh0UGFydHMubGVuZ3RoID4gMilcclxuXHRcdFx0dGV4dFBhcnRzLnNsaWNlKDAsIDEpO1xyXG5cclxuXHRcdHRleHRQYXJ0c1swXSA9IHRleHRQYXJ0c1swXVxyXG5cdFx0XHQucmVwbGFjZSh0aGlzLm9wdGlvbnMudGhvdXNhbmRzLCBcIlwiKVxyXG5cdFx0XHQucmVwbGFjZSh0aGlzLm9wdGlvbnMucHJlZml4LCBcIlwiKVxyXG5cdFx0XHQucmVwbGFjZSh0aGlzLm9wdGlvbnMuZGVjaW1hbCwgXCJcIik7XHJcblxyXG5cdFx0cmV0dXJuIGAke3RleHRQYXJ0c1swXX0uJHt0ZXh0UGFydHNbMV19YDtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgcGFyc2VEb2xsYXJWYWx1ZSh0ZXh0OiBzdHJpbmcpOiBudW1iZXIge1xyXG5cdFx0aWYgKCF0ZXh0KSBcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHRcclxuXHRcdHdoaWxlICh0ZXh0LmluZGV4T2YoXCIgXCIpID49IDApXHJcblx0XHRcdHRleHQgPSB0ZXh0LnJlcGxhY2UoXCIgXCIsIFwiXCIpO1xyXG5cclxuXHRcdC8vIFNwbGl0IHRoZSB0ZXh0IGludG8gdGhlIGRvbGxhcidzIHBhcnQgYW5kIHRoZSBjZW50cyBwYXJ0XHJcblx0XHRjb25zdCB0ZXh0UGFydHMgPSB0ZXh0LnNwbGl0KFwiLlwiKS5maWx0ZXIoeCA9PiB4ICE9PSBcIlwiKTtcclxuXHRcdC8vIE1ha2Ugc3VyZSB3ZSBoYXZlIGEgZG9sbGFycyBhbmQgY2VudHNcclxuXHRcdGlmICh0ZXh0UGFydHMubGVuZ3RoID09PSAwKVxyXG5cdFx0XHR0ZXh0UGFydHMucHVzaCgnMCcpO1xyXG5cclxuXHRcdGlmICh0ZXh0UGFydHMubGVuZ3RoID09PSAxKVxyXG5cdFx0XHR0ZXh0UGFydHMucHVzaCgnMCcpO1xyXG5cclxuXHRcdC8vIE9ubHkgdGFrZSB0aGUgZmlyc3QgMi4gIFRoZSByZXN0IGFyZSBub3QgYWxsb3dlZFxyXG5cdFx0aWYgKHRleHRQYXJ0cy5sZW5ndGggPiAyKVxyXG5cdFx0XHR0ZXh0UGFydHMuc2xpY2UoMCwgMSk7XHJcblxyXG5cdFx0dGV4dFBhcnRzWzBdID0gdGV4dFBhcnRzWzBdXHJcblx0XHRcdC5yZXBsYWNlKHRoaXMub3B0aW9ucy5wcmVmaXgsIFwiXCIpXHJcblx0XHRcdC5yZXBsYWNlKFwiLFwiLCBcIlwiKTtcclxuXHJcblx0XHR0cnkge1xyXG5cdFx0XHRyZXR1cm4gcGFyc2VGbG9hdChgJHt0ZXh0UGFydHNbMF19LiR7dGV4dFBhcnRzWzFdfWApO1xyXG5cdFx0fVxyXG5cdFx0Y2F0Y2gge1xyXG5cdFx0XHRyZXR1cm4gMDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgdXBkYXRlVGV4dGJveChzdHJWYWw6IHN0cmluZykge1xyXG5cdFx0aWYgKCFzdHJWYWwpIHtcclxuXHRcdFx0KDxIVE1MSW5wdXRFbGVtZW50PnRoaXMuZWwubmF0aXZlRWxlbWVudCkudmFsdWUgPSBudWxsO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMub3B0aW9ucy5hbGxvd05lZ2F0aXZlID09PSBmYWxzZSlcclxuXHRcdFx0c3RyVmFsID0gc3RyVmFsLnJlcGxhY2UoXCItXCIsIFwiXCIpO1xyXG5cclxuXHRcdC8vIElmIHRoZXJlIGlzIGEgLSBzaWduLCByZW1vdmUgaXQgdGVtcG9yYXJpbHlcclxuXHRcdGNvbnN0IG5lZ2F0aXZlUGFydCA9IChzdHJWYWwuaW5kZXhPZihcIi1cIikgPT09IDApID8gXCItXCIgOiBcIlwiO1xyXG5cdFx0c3RyVmFsID0gc3RyVmFsLnJlcGxhY2UoXCItXCIsIFwiXCIpO1xyXG5cclxuXHRcdGNvbnN0IGN1cnJlbmN5UGFydHMgPSBzdHJWYWwuc3BsaXQoXCIuXCIpLmZpbHRlcih4ID0+IHggIT09IFwiXCIpO1xyXG5cdFx0Ly8gbWFrZSBzdXJlIHRoZXJlIGlzIGEgZG9sbGFyIGFtb3VudFxyXG5cdFx0aWYgKGN1cnJlbmN5UGFydHMubGVuZ3RoID09PSAwKSBcclxuXHRcdFx0Y3VycmVuY3lQYXJ0cy5wdXNoKFwiMFwiKTtcclxuXHJcblx0XHQvLyBtYWtlIHN1cmUgdGhlcmUgaXMgYSBjZW50cyBhbW91bnRcclxuXHRcdGlmIChjdXJyZW5jeVBhcnRzLmxlbmd0aCA9PT0gMSlcclxuXHRcdFx0Y3VycmVuY3lQYXJ0cy5wdXNoKFwiMFwiKTtcclxuXHJcblx0XHQvLyBPbmx5IHRha2UgdGhlIGZpcnN0IDIuICBUaGUgcmVzdCBhcmUgZXJyb3JzXHJcblx0XHRpZiAoY3VycmVuY3lQYXJ0cy5sZW5ndGggPiAyKVxyXG5cdFx0XHRjdXJyZW5jeVBhcnRzLnNsaWNlKDAsIDEpO1xyXG5cclxuXHRcdGxldCBkb2xsYXJQYXJ0ID0gPHN0cmluZz5jdXJyZW5jeVBhcnRzWzBdO1xyXG5cdFx0ZG9sbGFyUGFydCA9IGRvbGxhclBhcnQucmVwbGFjZSgnLCcsICcnKS5yZXBsYWNlKCcuJywgJycpO1xyXG5cdFx0bGV0IGNlbnRzUGFydCA9IGN1cnJlbmN5UGFydHNbMV07XHJcblx0XHRpZiAoY2VudHNQYXJ0Lmxlbmd0aCA+IHRoaXMub3B0aW9ucy5wcmVjaXNpb24pXHJcblx0XHRcdGNlbnRzUGFydCA9IGNlbnRzUGFydC5zdWJzdHIoMCwgdGhpcy5vcHRpb25zLnByZWNpc2lvbik7XHJcblxyXG5cdFx0d2hpbGUgKGNlbnRzUGFydC5sZW5ndGggPCB0aGlzLm9wdGlvbnMucHJlY2lzaW9uKVxyXG5cdFx0XHRjZW50c1BhcnQgPSBjZW50c1BhcnQgKyBcIjBcIjtcclxuXHJcblx0XHQvLyByZXZlcnNlIHRoZSBkb2xsYXIgcGFydCBzbyB3ZSBjYW4gcHV0IGNvbW1hcyBldmVyeSAzIGNoYXJzXHJcblx0XHRpZiAoIXRoaXMuaGFzRm9jdXMgJiYgZG9sbGFyUGFydC5sZW5ndGggPiAzKSB7XHJcblx0XHRcdGZvciAobGV0IGkgPSBkb2xsYXJQYXJ0Lmxlbmd0aCAtIDM7IGkgPiAwOyBpIC09IDMpXHJcblx0XHRcdFx0ZG9sbGFyUGFydCA9IFtkb2xsYXJQYXJ0LnNsaWNlKDAsIGkpLCB0aGlzLm9wdGlvbnMudGhvdXNhbmRzLCBkb2xsYXJQYXJ0LnNsaWNlKGkpXS5qb2luKCcnKTtcclxuXHRcdH1cclxuXHJcblx0XHRsZXQgdGV4dGJveFZhbCA9IGAke25lZ2F0aXZlUGFydH0ke2RvbGxhclBhcnR9JHt0aGlzLm9wdGlvbnMuZGVjaW1hbH0ke2NlbnRzUGFydH1gO1xyXG5cdFx0aWYgKCF0aGlzLmhhc0ZvY3VzKVxyXG5cdFx0XHR0ZXh0Ym94VmFsID0gYCR7dGhpcy5vcHRpb25zLnByZWZpeH0ke3RleHRib3hWYWx9YDtcclxuXHJcblx0XHQoPEhUTUxJbnB1dEVsZW1lbnQ+dGhpcy5lbC5uYXRpdmVFbGVtZW50KS52YWx1ZSA9IHRleHRib3hWYWw7XHJcblx0fVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { SlickCurrencyMaskDirective } from "./slick-currency-mask.directive";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class SlickCurrencyMaskModule {
|
|
5
|
+
}
|
|
6
|
+
/** @nocollapse */ SlickCurrencyMaskModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickCurrencyMaskModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
+
/** @nocollapse */ SlickCurrencyMaskModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickCurrencyMaskModule, declarations: [SlickCurrencyMaskDirective], exports: [SlickCurrencyMaskDirective] });
|
|
8
|
+
/** @nocollapse */ SlickCurrencyMaskModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickCurrencyMaskModule, imports: [[]] });
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickCurrencyMaskModule, decorators: [{
|
|
10
|
+
type: NgModule,
|
|
11
|
+
args: [{
|
|
12
|
+
imports: [],
|
|
13
|
+
declarations: [SlickCurrencyMaskDirective],
|
|
14
|
+
exports: [SlickCurrencyMaskDirective]
|
|
15
|
+
}]
|
|
16
|
+
}] });
|
|
17
|
+
export { SlickCurrencyMaskDirective };
|
|
18
|
+
export { SlickCurrencyMaskOptions } from "./slick-currency-mask-options.model";
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stY3VycmVuY3ktbWFzay5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9zbGljay1jdXJyZW5jeS1tYXNrL3NsaWNrLWN1cnJlbmN5LW1hc2subW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBTzdFLE1BQU0sT0FBTyx1QkFBdUI7O3VJQUF2Qix1QkFBdUI7d0lBQXZCLHVCQUF1QixpQkFIcEIsMEJBQTBCLGFBQy9CLDBCQUEwQjt3SUFFeEIsdUJBQXVCLFlBSjFCLEVBQUU7MkZBSUMsdUJBQXVCO2tCQUxuQyxRQUFRO21CQUFDO29CQUNULE9BQU8sRUFBRSxFQUFFO29CQUNYLFlBQVksRUFBRSxDQUFDLDBCQUEwQixDQUFDO29CQUMxQyxPQUFPLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztpQkFDckM7O0FBRUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLENBQUE7QUFDckMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFNsaWNrQ3VycmVuY3lNYXNrRGlyZWN0aXZlIH0gZnJvbSBcIi4vc2xpY2stY3VycmVuY3ktbWFzay5kaXJlY3RpdmVcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcblx0aW1wb3J0czogW10sXHJcblx0ZGVjbGFyYXRpb25zOiBbU2xpY2tDdXJyZW5jeU1hc2tEaXJlY3RpdmVdLFxyXG5cdGV4cG9ydHM6IFtTbGlja0N1cnJlbmN5TWFza0RpcmVjdGl2ZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNsaWNrQ3VycmVuY3lNYXNrTW9kdWxlIHsgfVxyXG5leHBvcnQgeyBTbGlja0N1cnJlbmN5TWFza0RpcmVjdGl2ZSB9XHJcbmV4cG9ydCB7IFNsaWNrQ3VycmVuY3lNYXNrT3B0aW9ucyB9IGZyb20gXCIuL3NsaWNrLWN1cnJlbmN5LW1hc2stb3B0aW9ucy5tb2RlbFwiO1xyXG4iXX0=
|