@colijnit/corecomponents_v12 12.2.26 → 12.2.28
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/bundles/colijnit-corecomponents_v12.umd.js +13792 -13682
- package/bundles/colijnit-corecomponents_v12.umd.js.map +1 -1
- package/colijnit-corecomponents_v12.d.ts +43 -43
- package/colijnit-corecomponents_v12.metadata.json +1 -1
- package/esm2015/colijnit-corecomponents_v12.js +43 -43
- package/esm2015/lib/components/article-tile/article-tile.component.js +49 -49
- package/esm2015/lib/components/article-tile/article-tile.module.js +34 -34
- package/esm2015/lib/components/base/base-input.component.js +833 -833
- package/esm2015/lib/components/base/base.module.js +21 -21
- package/esm2015/lib/components/base/commit-buttons/commit-buttons.component.js +85 -85
- package/esm2015/lib/components/base/commit-buttons/commit-buttons.module.js +20 -20
- package/esm2015/lib/components/base/dialog-base.component.js +5 -5
- package/esm2015/lib/components/base-input-date-picker/base-input-date-picker.directive.js +24 -24
- package/esm2015/lib/components/button/button.component.js +73 -73
- package/esm2015/lib/components/button/button.module.js +18 -18
- package/esm2015/lib/components/calendar/calendar-template.component.js +281 -281
- package/esm2015/lib/components/calendar/calendar.component.js +32 -32
- package/esm2015/lib/components/calendar/calendar.module.js +27 -27
- package/esm2015/lib/components/card/card.component.js +50 -50
- package/esm2015/lib/components/card/card.module.js +34 -34
- package/esm2015/lib/components/carousel/carousel.component.js +109 -109
- package/esm2015/lib/components/carousel/carousel.module.js +31 -31
- package/esm2015/lib/components/carousel-3d/carousel-3d.component.js +293 -293
- package/esm2015/lib/components/carousel-3d/carousel-3d.module.js +18 -18
- package/esm2015/lib/components/carousel-3d/carouselItem.js +53 -53
- package/esm2015/lib/components/checkmark-overlay/checkmark-overlay.component.js +72 -72
- package/esm2015/lib/components/checkmark-overlay/checkmark-overlay.module.js +18 -18
- package/esm2015/lib/components/co-dialog/co-dialog.component.js +91 -91
- package/esm2015/lib/components/co-dialog/co-dialog.module.js +18 -18
- package/esm2015/lib/components/co-dialog-wizard/co-dialog-wizard.component.js +35 -35
- package/esm2015/lib/components/co-dialog-wizard/co-dialog-wizard.module.js +16 -16
- package/esm2015/lib/components/collapsible/collapsible.component.js +67 -67
- package/esm2015/lib/components/collapsible/collapsible.module.js +18 -18
- package/esm2015/lib/components/color-picker/color-picker.component.js +33 -33
- package/esm2015/lib/components/color-picker/color-picker.module.js +20 -20
- package/esm2015/lib/components/core-dialog/confirmation-dialog/confirmation-dialog.component.js +46 -46
- package/esm2015/lib/components/core-dialog/core-dialog.module.js +38 -38
- package/esm2015/lib/components/core-dialog/core-dialog.service.js +66 -66
- package/esm2015/lib/components/core-dialog/core-dynamic-component.service.js +92 -92
- package/esm2015/lib/components/double-calendar/double-calendar.component.js +62 -62
- package/esm2015/lib/components/double-calendar/double-calendar.module.js +24 -24
- package/esm2015/lib/components/filter-item/filter-item-viewmodel.js +12 -12
- package/esm2015/lib/components/filter-item/filter-item.component.js +496 -496
- package/esm2015/lib/components/filter-item/filter-item.module.js +42 -42
- package/esm2015/lib/components/filter-item/filter-viewmodel.js +10 -10
- package/esm2015/lib/components/form/form.component.js +181 -181
- package/esm2015/lib/components/form/form.module.js +22 -22
- package/esm2015/lib/components/grid-toolbar/grid-toolbar.component.js +48 -48
- package/esm2015/lib/components/grid-toolbar/grid-toolbar.module.js +22 -22
- package/esm2015/lib/components/grid-toolbar-button/grid-toolbar-button.component.js +23 -23
- package/esm2015/lib/components/grid-toolbar-button/grid-toolbar-button.module.js +18 -18
- package/esm2015/lib/components/icon/icon-cache.service.js +51 -51
- package/esm2015/lib/components/icon/icon.component.js +47 -47
- package/esm2015/lib/components/icon/icon.module.js +24 -24
- package/esm2015/lib/components/icon-collapse-handle/icon-collapse-handle.component.js +56 -56
- package/esm2015/lib/components/icon-collapse-handle/icon-collapse-handle.module.js +22 -22
- package/esm2015/lib/components/image/image.component.js +31 -31
- package/esm2015/lib/components/image/image.module.js +13 -13
- package/esm2015/lib/components/input-checkbox/input-checkbox.component.js +71 -71
- package/esm2015/lib/components/input-checkbox/input-checkbox.module.js +18 -18
- package/esm2015/lib/components/input-date-picker/input-date-picker.component.js +74 -74
- package/esm2015/lib/components/input-date-picker/input-date-picker.module.js +25 -25
- package/esm2015/lib/components/input-date-range-picker/input-date-range-picker.component.js +107 -107
- package/esm2015/lib/components/input-date-range-picker/input-date-range-picker.module.js +26 -26
- package/esm2015/lib/components/input-number-picker/input-number-picker.component.js +285 -285
- package/esm2015/lib/components/input-number-picker/input-number-picker.module.js +22 -22
- package/esm2015/lib/components/input-radio-button/input-radio-button.component.js +77 -77
- package/esm2015/lib/components/input-radio-button/input-radio-button.module.js +18 -18
- package/esm2015/lib/components/input-scanner/bar-code-scanner.js +22 -22
- package/esm2015/lib/components/input-scanner/input-scanner.component.js +56 -56
- package/esm2015/lib/components/input-scanner/input-scanner.module.js +20 -20
- package/esm2015/lib/components/input-scanner/scanner.service.js +27 -27
- package/esm2015/lib/components/input-search/input-search.component.js +67 -63
- package/esm2015/lib/components/input-search/input-search.module.js +20 -20
- package/esm2015/lib/components/input-text/input-text.component.js +198 -194
- package/esm2015/lib/components/input-text/input-text.module.js +32 -32
- package/esm2015/lib/components/input-textarea/input-textarea.component.js +55 -55
- package/esm2015/lib/components/input-textarea/input-textarea.module.js +26 -26
- package/esm2015/lib/components/level-indicator/level-indicator-level.enum.js +6 -6
- package/esm2015/lib/components/level-indicator/level-indicator.component.js +29 -29
- package/esm2015/lib/components/level-indicator/level-indicator.module.js +14 -14
- package/esm2015/lib/components/list-of-values/list-of-values-multiselect-popup.component.js +87 -87
- package/esm2015/lib/components/list-of-values/list-of-values-popup.component.js +218 -218
- package/esm2015/lib/components/list-of-values/list-of-values.component.js +199 -199
- package/esm2015/lib/components/list-of-values/list-of-values.module.js +37 -37
- package/esm2015/lib/components/loader/loader.component.js +16 -16
- package/esm2015/lib/components/loader/loader.module.js +18 -18
- package/esm2015/lib/components/pagination/paginate.pipe.js +98 -98
- package/esm2015/lib/components/pagination/pagination-instance.js +1 -1
- package/esm2015/lib/components/pagination/pagination.component.js +107 -107
- package/esm2015/lib/components/pagination/pagination.module.js +27 -27
- package/esm2015/lib/components/pagination/pagination.service.js +87 -87
- package/esm2015/lib/components/pagination-bar/pagination-bar.component.js +136 -136
- package/esm2015/lib/components/pagination-bar/pagination-bar.module.js +18 -18
- package/esm2015/lib/components/popup/const/popup-window-token.js +2 -2
- package/esm2015/lib/components/popup/interface/popup-button.js +7 -7
- package/esm2015/lib/components/popup/interface/popup-close-event.js +1 -1
- package/esm2015/lib/components/popup/interface/popup-settings.js +41 -41
- package/esm2015/lib/components/popup/interface/popup.js +1 -1
- package/esm2015/lib/components/popup/model/popup-button-globals.js +10 -10
- package/esm2015/lib/components/popup/model/popup-window.js +37 -37
- package/esm2015/lib/components/popup/popup-buttons.component.js +42 -42
- package/esm2015/lib/components/popup/popup-message-display.component.js +37 -37
- package/esm2015/lib/components/popup/popup-window-shell.component.js +141 -141
- package/esm2015/lib/components/popup/popup.module.js +48 -48
- package/esm2015/lib/components/popup/service/popup-shower.service.js +89 -89
- package/esm2015/lib/components/popup/service/prompt.service.js +126 -126
- package/esm2015/lib/components/popup/text-input-popup.component.js +33 -33
- package/esm2015/lib/components/responsive-text/responsive-text.component.js +17 -17
- package/esm2015/lib/components/responsive-text/responsive-text.module.js +18 -18
- package/esm2015/lib/components/simple-grid/base-simple-grid.component.js +166 -164
- package/esm2015/lib/components/simple-grid/simple-grid-cell.component.js +141 -141
- package/esm2015/lib/components/simple-grid/simple-grid-column.directive.js +113 -111
- package/esm2015/lib/components/simple-grid/simple-grid.component.js +553 -412
- package/esm2015/lib/components/simple-grid/simple-grid.module.js +45 -41
- package/esm2015/lib/components/tile/tile.component.js +44 -44
- package/esm2015/lib/components/tile/tile.module.js +22 -22
- package/esm2015/lib/components/tile-select/tile-select.component.js +26 -26
- package/esm2015/lib/components/tile-select/tile-select.module.js +20 -20
- package/esm2015/lib/components/tooltip/tooltip.component.js +74 -74
- package/esm2015/lib/components/tooltip/tooltip.module.js +18 -18
- package/esm2015/lib/components/validation-error/validation-error.component.js +30 -30
- package/esm2015/lib/components/validation-error/validation-error.module.js +24 -24
- package/esm2015/lib/components/view-mode-buttons/content-view-mode.enum.js +10 -10
- package/esm2015/lib/components/view-mode-buttons/view-mode-buttons.component.js +41 -41
- package/esm2015/lib/components/view-mode-buttons/view-mode-buttons.module.js +20 -20
- package/esm2015/lib/core/constant/default-upper-bound-for-range-components.js +3 -3
- package/esm2015/lib/core/constant/java-max-int.js +1 -1
- package/esm2015/lib/core/constant/number-inputs-key-down-white-list.js +44 -44
- package/esm2015/lib/core/decorator/input-boolean.decorator.js +33 -33
- package/esm2015/lib/core/enum/co-direction.js +8 -8
- package/esm2015/lib/core/enum/co-document-image-display-kind.enum.js +6 -6
- package/esm2015/lib/core/enum/co-document-type.enum.js +10 -10
- package/esm2015/lib/core/enum/co-orientation.js +16 -16
- package/esm2015/lib/core/enum/core-components-icon.enum.js +299 -299
- package/esm2015/lib/core/enum/file-type-internal.enum.js +16 -16
- package/esm2015/lib/core/enum/file-type.enum.js +10 -10
- package/esm2015/lib/core/enum/filterItem-mode.enum.js +42 -42
- package/esm2015/lib/core/enum/input-number-picker-show-mode.enum.js +7 -7
- package/esm2015/lib/core/enum/keyboard-code.enum.js +73 -73
- package/esm2015/lib/core/enum/keyboard-key.enum.js +75 -75
- package/esm2015/lib/core/enum/object-right-type.enum.js +6 -6
- package/esm2015/lib/core/enum/popup-button-type.enum.js +11 -11
- package/esm2015/lib/core/enum/popup-type.enum.js +10 -10
- package/esm2015/lib/core/enum/table-name.enum.js +80 -80
- package/esm2015/lib/core/function/any-nill.function.js +5 -5
- package/esm2015/lib/core/function/is-nill.function.js +4 -4
- package/esm2015/lib/core/function/none-nill.function.js +16 -16
- package/esm2015/lib/core/function/not-nill.function.js +4 -4
- package/esm2015/lib/core/model/bounds-constrained-number-value.js +170 -170
- package/esm2015/lib/core/model/check-precision-and-scale-result.js +1 -1
- package/esm2015/lib/core/model/check-within-stepped-bounds-result.js +1 -1
- package/esm2015/lib/core/model/co-document-right.bo.js +2 -2
- package/esm2015/lib/core/model/co-document.bo.js +120 -120
- package/esm2015/lib/core/model/core-components-icon-svg.js +298 -298
- package/esm2015/lib/core/model/element-position.js +9 -9
- package/esm2015/lib/core/model/event/string-prompt-result-event.js +7 -7
- package/esm2015/lib/core/service/form-input-user-change-listener.service.js +24 -24
- package/esm2015/lib/core/service/form-master.service.js +101 -101
- package/esm2015/lib/core/service/ng-zone-wrapper.service.js +19 -19
- package/esm2015/lib/core/utils/array-utils.js +263 -263
- package/esm2015/lib/core/utils/browser-utils.js +99 -99
- package/esm2015/lib/core/utils/direction-enum-utils.js +13 -13
- package/esm2015/lib/core/utils/event-utils.js +52 -52
- package/esm2015/lib/core/utils/file-utils.js +266 -266
- package/esm2015/lib/core/utils/number-utils.js +308 -308
- package/esm2015/lib/core/utils/object-utils.js +185 -185
- package/esm2015/lib/core/utils/string-utils.js +93 -93
- package/esm2015/lib/core/validator/email.validator.js +5 -5
- package/esm2015/lib/core/validator/equal.validator.js +10 -10
- package/esm2015/lib/core/validator/max-string-length.validator.js +9 -9
- package/esm2015/lib/core/validator/password.validator.js +30 -30
- package/esm2015/lib/core/validator/precision-scale.validator.js +10 -10
- package/esm2015/lib/core/validator/required.validator.js +4 -4
- package/esm2015/lib/directives/clickoutside/click-outside-master.service.js +56 -56
- package/esm2015/lib/directives/clickoutside/click-outside.directive.js +70 -70
- package/esm2015/lib/directives/clickoutside/clickoutside.module.js +18 -18
- package/esm2015/lib/directives/observe-visibility/observe-visibility.directive.js +52 -52
- package/esm2015/lib/directives/observe-visibility/observe-visibility.module.js +14 -14
- package/esm2015/lib/directives/overlay/overlay-parent.directive.js +18 -18
- package/esm2015/lib/directives/overlay/overlay.directive.js +160 -160
- package/esm2015/lib/directives/overlay/overlay.module.js +17 -17
- package/esm2015/lib/directives/ripple/ripple-ref.js +25 -25
- package/esm2015/lib/directives/ripple/ripple-renderer.js +159 -159
- package/esm2015/lib/directives/ripple/ripple.directive.js +79 -79
- package/esm2015/lib/directives/ripple/ripple.module.js +23 -23
- package/esm2015/lib/directives/ripple/scroll-dispatcher.service.js +107 -107
- package/esm2015/lib/directives/ripple/scrollable.directive.js +39 -39
- package/esm2015/lib/directives/ripple/viewport-ruler.service.js +72 -72
- package/esm2015/lib/directives/screen-configuration/screen-configuration.directive.js +157 -157
- package/esm2015/lib/directives/screen-configuration/screen-configuration.module.js +18 -18
- package/esm2015/lib/directives/stopclick/stop-click.directive.js +37 -37
- package/esm2015/lib/directives/stopclick/stop-click.module.js +14 -14
- package/esm2015/lib/directives/template-wrapper/template-wrapper.directive.js +67 -67
- package/esm2015/lib/directives/template-wrapper/template-wrapper.module.js +14 -14
- package/esm2015/lib/directives/tooltip/tooltip-directive.module.js +18 -18
- package/esm2015/lib/directives/tooltip/tooltip.directive.js +77 -77
- package/esm2015/lib/interfaces/dialog-response.interface.js +1 -1
- package/esm2015/lib/interfaces/scanner-input.interface.js +1 -1
- package/esm2015/lib/interfaces/screen-config-adapter-component-interface-name.js +3 -3
- package/esm2015/lib/interfaces/screen-config-adapter.component.interface.js +1 -1
- package/esm2015/lib/model/enum/app-button-type.enum.js +10 -10
- package/esm2015/lib/model/enum/app-popup-type.enum.js +7 -7
- package/esm2015/lib/pipes/append.pipe.js +16 -16
- package/esm2015/lib/pipes/append.pipe.module.js +14 -14
- package/esm2015/lib/pipes/filter.pipe.js +15 -15
- package/esm2015/lib/pipes/filter.pipe.module.js +14 -14
- package/esm2015/lib/pipes/prepend.pipe.js +16 -16
- package/esm2015/lib/pipes/prepend.pipe.module.js +14 -14
- package/esm2015/lib/pipes/price-display-pipe.module.js +14 -14
- package/esm2015/lib/pipes/price-display.pipe.js +19 -19
- package/esm2015/lib/service/base-module-screen-config.service.js +204 -204
- package/esm2015/lib/service/base-module.service.js +41 -41
- package/esm2015/lib/service/color-sequence.service.js +22 -22
- package/esm2015/lib/service/overlay.service.js +72 -72
- package/esm2015/lib/translation/core-components-translation.module.js +28 -28
- package/esm2015/lib/translation/core-components-translation.service.js +16 -16
- package/esm2015/lib/translation/core-dictionary.service.js +28 -28
- package/esm2015/lib/translation/core-localize.pipe.js +25 -25
- package/esm2015/public-api.js +129 -129
- package/fesm2015/colijnit-corecomponents_v12.js +12271 -12118
- package/fesm2015/colijnit-corecomponents_v12.js.map +1 -1
- package/lib/components/article-tile/article-tile.component.d.ts +22 -22
- package/lib/components/article-tile/article-tile.module.d.ts +2 -2
- package/lib/components/base/base-input.component.d.ts +182 -182
- package/lib/components/base/base.module.d.ts +2 -2
- package/lib/components/base/commit-buttons/commit-buttons.component.d.ts +21 -21
- package/lib/components/base/commit-buttons/commit-buttons.module.d.ts +2 -2
- package/lib/components/base/dialog-base.component.d.ts +4 -4
- package/lib/components/base-input-date-picker/base-input-date-picker.directive.d.ts +15 -15
- package/lib/components/button/button.component.d.ts +29 -29
- package/lib/components/button/button.module.d.ts +2 -2
- package/lib/components/calendar/calendar-template.component.d.ts +60 -60
- package/lib/components/calendar/calendar.component.d.ts +13 -13
- package/lib/components/calendar/calendar.module.d.ts +2 -2
- package/lib/components/card/card.component.d.ts +23 -23
- package/lib/components/card/card.module.d.ts +2 -2
- package/lib/components/carousel/carousel.component.d.ts +23 -23
- package/lib/components/carousel/carousel.module.d.ts +6 -6
- package/lib/components/carousel-3d/carousel-3d.component.d.ts +55 -55
- package/lib/components/carousel-3d/carousel-3d.module.d.ts +2 -2
- package/lib/components/carousel-3d/carouselItem.d.ts +13 -13
- package/lib/components/checkmark-overlay/checkmark-overlay.component.d.ts +17 -17
- package/lib/components/checkmark-overlay/checkmark-overlay.module.d.ts +2 -2
- package/lib/components/co-dialog/co-dialog.component.d.ts +23 -23
- package/lib/components/co-dialog/co-dialog.module.d.ts +2 -2
- package/lib/components/co-dialog-wizard/co-dialog-wizard.component.d.ts +9 -9
- package/lib/components/co-dialog-wizard/co-dialog-wizard.module.d.ts +2 -2
- package/lib/components/collapsible/collapsible.component.d.ts +22 -22
- package/lib/components/collapsible/collapsible.module.d.ts +2 -2
- package/lib/components/color-picker/color-picker.component.d.ts +6 -6
- package/lib/components/color-picker/color-picker.module.d.ts +2 -2
- package/lib/components/core-dialog/confirmation-dialog/confirmation-dialog.component.d.ts +20 -20
- package/lib/components/core-dialog/core-dialog.module.d.ts +4 -4
- package/lib/components/core-dialog/core-dialog.service.d.ts +15 -15
- package/lib/components/core-dialog/core-dynamic-component.service.d.ts +12 -12
- package/lib/components/double-calendar/double-calendar.component.d.ts +18 -18
- package/lib/components/double-calendar/double-calendar.module.d.ts +2 -2
- package/lib/components/filter-item/filter-item-viewmodel.d.ts +9 -9
- package/lib/components/filter-item/filter-item.component.d.ts +80 -80
- package/lib/components/filter-item/filter-item.module.d.ts +2 -2
- package/lib/components/filter-item/filter-viewmodel.d.ts +8 -8
- package/lib/components/form/form.component.d.ts +39 -39
- package/lib/components/form/form.module.d.ts +2 -2
- package/lib/components/grid-toolbar/grid-toolbar.component.d.ts +19 -19
- package/lib/components/grid-toolbar/grid-toolbar.module.d.ts +2 -2
- package/lib/components/grid-toolbar-button/grid-toolbar-button.component.d.ts +8 -8
- package/lib/components/grid-toolbar-button/grid-toolbar-button.module.d.ts +2 -2
- package/lib/components/icon/icon-cache.service.d.ts +20 -20
- package/lib/components/icon/icon.component.d.ts +17 -17
- package/lib/components/icon/icon.module.d.ts +2 -2
- package/lib/components/icon-collapse-handle/icon-collapse-handle.component.d.ts +21 -21
- package/lib/components/icon-collapse-handle/icon-collapse-handle.module.d.ts +2 -2
- package/lib/components/image/image.component.d.ts +20 -20
- package/lib/components/image/image.module.d.ts +2 -2
- package/lib/components/input-checkbox/input-checkbox.component.d.ts +24 -24
- package/lib/components/input-checkbox/input-checkbox.module.d.ts +2 -2
- package/lib/components/input-date-picker/input-date-picker.component.d.ts +12 -12
- package/lib/components/input-date-picker/input-date-picker.module.d.ts +2 -2
- package/lib/components/input-date-range-picker/input-date-range-picker.component.d.ts +20 -20
- package/lib/components/input-date-range-picker/input-date-range-picker.module.d.ts +2 -2
- package/lib/components/input-number-picker/input-number-picker.component.d.ts +73 -73
- package/lib/components/input-number-picker/input-number-picker.module.d.ts +2 -2
- package/lib/components/input-radio-button/input-radio-button.component.d.ts +19 -19
- package/lib/components/input-radio-button/input-radio-button.module.d.ts +2 -2
- package/lib/components/input-scanner/bar-code-scanner.d.ts +7 -7
- package/lib/components/input-scanner/input-scanner.component.d.ts +24 -24
- package/lib/components/input-scanner/input-scanner.module.d.ts +2 -2
- package/lib/components/input-scanner/scanner.service.d.ts +11 -11
- package/lib/components/input-search/input-search.component.d.ts +20 -19
- package/lib/components/input-search/input-search.module.d.ts +2 -2
- package/lib/components/input-text/input-text.component.d.ts +66 -65
- package/lib/components/input-text/input-text.module.d.ts +2 -2
- package/lib/components/input-textarea/input-textarea.component.d.ts +19 -19
- package/lib/components/input-textarea/input-textarea.module.d.ts +2 -2
- package/lib/components/level-indicator/level-indicator-level.enum.d.ts +5 -5
- package/lib/components/level-indicator/level-indicator.component.d.ts +10 -10
- package/lib/components/level-indicator/level-indicator.module.d.ts +2 -2
- package/lib/components/list-of-values/list-of-values-multiselect-popup.component.d.ts +25 -25
- package/lib/components/list-of-values/list-of-values-popup.component.d.ts +47 -47
- package/lib/components/list-of-values/list-of-values.component.d.ts +37 -37
- package/lib/components/list-of-values/list-of-values.module.d.ts +2 -2
- package/lib/components/loader/loader.component.d.ts +3 -3
- package/lib/components/loader/loader.module.d.ts +2 -2
- package/lib/components/pagination/paginate.pipe.d.ts +15 -15
- package/lib/components/pagination/pagination-instance.d.ts +14 -14
- package/lib/components/pagination/pagination.component.d.ts +38 -38
- package/lib/components/pagination/pagination.module.d.ts +2 -2
- package/lib/components/pagination/pagination.service.d.ts +24 -24
- package/lib/components/pagination-bar/pagination-bar.component.d.ts +33 -33
- package/lib/components/pagination-bar/pagination-bar.module.d.ts +2 -2
- package/lib/components/popup/const/popup-window-token.d.ts +3 -3
- package/lib/components/popup/interface/popup-button.d.ts +8 -8
- package/lib/components/popup/interface/popup-close-event.d.ts +5 -5
- package/lib/components/popup/interface/popup-settings.d.ts +21 -21
- package/lib/components/popup/interface/popup.d.ts +9 -9
- package/lib/components/popup/model/popup-button-globals.d.ts +9 -9
- package/lib/components/popup/model/popup-window.d.ts +21 -21
- package/lib/components/popup/popup-buttons.component.d.ts +13 -13
- package/lib/components/popup/popup-message-display.component.d.ts +12 -12
- package/lib/components/popup/popup-window-shell.component.d.ts +42 -42
- package/lib/components/popup/popup.module.d.ts +4 -4
- package/lib/components/popup/service/popup-shower.service.d.ts +17 -17
- package/lib/components/popup/service/prompt.service.d.ts +17 -17
- package/lib/components/popup/text-input-popup.component.d.ts +12 -12
- package/lib/components/responsive-text/responsive-text.component.d.ts +4 -4
- package/lib/components/responsive-text/responsive-text.module.d.ts +2 -2
- package/lib/components/simple-grid/base-simple-grid.component.d.ts +53 -52
- package/lib/components/simple-grid/simple-grid-cell.component.d.ts +30 -30
- package/lib/components/simple-grid/simple-grid-column.directive.d.ts +43 -42
- package/lib/components/simple-grid/simple-grid.component.d.ts +77 -64
- package/lib/components/simple-grid/simple-grid.module.d.ts +2 -2
- package/lib/components/simple-grid/style/_layout.scss +68 -0
- package/lib/components/tile/tile.component.d.ts +16 -16
- package/lib/components/tile/tile.module.d.ts +2 -2
- package/lib/components/tile-select/tile-select.component.d.ts +8 -8
- package/lib/components/tile-select/tile-select.module.d.ts +2 -2
- package/lib/components/tooltip/tooltip.component.d.ts +18 -18
- package/lib/components/tooltip/tooltip.module.d.ts +2 -2
- package/lib/components/validation-error/validation-error.component.d.ts +12 -12
- package/lib/components/validation-error/validation-error.module.d.ts +2 -2
- package/lib/components/view-mode-buttons/content-view-mode.enum.d.ts +8 -8
- package/lib/components/view-mode-buttons/view-mode-buttons.component.d.ts +17 -17
- package/lib/components/view-mode-buttons/view-mode-buttons.module.d.ts +2 -2
- package/lib/core/constant/default-upper-bound-for-range-components.d.ts +2 -2
- package/lib/core/constant/java-max-int.d.ts +1 -1
- package/lib/core/constant/number-inputs-key-down-white-list.d.ts +2 -2
- package/lib/core/decorator/input-boolean.decorator.d.ts +8 -8
- package/lib/core/enum/co-direction.d.ts +6 -6
- package/lib/core/enum/co-document-image-display-kind.enum.d.ts +5 -5
- package/lib/core/enum/co-document-type.enum.d.ts +5 -5
- package/lib/core/enum/co-orientation.d.ts +6 -6
- package/lib/core/enum/core-components-icon.enum.d.ts +298 -298
- package/lib/core/enum/file-type-internal.enum.d.ts +15 -15
- package/lib/core/enum/file-type.enum.d.ts +5 -5
- package/lib/core/enum/filterItem-mode.enum.d.ts +15 -15
- package/lib/core/enum/input-number-picker-show-mode.enum.d.ts +5 -5
- package/lib/core/enum/keyboard-code.enum.d.ts +71 -71
- package/lib/core/enum/keyboard-key.enum.d.ts +70 -70
- package/lib/core/enum/object-right-type.enum.d.ts +5 -5
- package/lib/core/enum/popup-button-type.enum.d.ts +9 -9
- package/lib/core/enum/popup-type.enum.d.ts +9 -9
- package/lib/core/enum/table-name.enum.d.ts +79 -79
- package/lib/core/function/any-nill.function.d.ts +1 -1
- package/lib/core/function/is-nill.function.d.ts +1 -1
- package/lib/core/function/none-nill.function.d.ts +1 -1
- package/lib/core/function/not-nill.function.d.ts +1 -1
- package/lib/core/model/bounds-constrained-number-value.d.ts +46 -46
- package/lib/core/model/check-precision-and-scale-result.d.ts +4 -4
- package/lib/core/model/check-within-stepped-bounds-result.d.ts +8 -8
- package/lib/core/model/co-document-right.bo.d.ts +6 -6
- package/lib/core/model/co-document.bo.d.ts +61 -61
- package/lib/core/model/core-components-icon-svg.d.ts +4 -4
- package/lib/core/model/element-position.d.ts +7 -7
- package/lib/core/model/event/string-prompt-result-event.d.ts +6 -6
- package/lib/core/service/form-input-user-change-listener.service.d.ts +10 -10
- package/lib/core/service/form-master.service.d.ts +26 -26
- package/lib/core/service/ng-zone-wrapper.service.d.ts +6 -6
- package/lib/core/utils/array-utils.d.ts +85 -85
- package/lib/core/utils/browser-utils.d.ts +15 -15
- package/lib/core/utils/direction-enum-utils.d.ts +5 -5
- package/lib/core/utils/event-utils.d.ts +12 -12
- package/lib/core/utils/file-utils.d.ts +29 -29
- package/lib/core/utils/number-utils.d.ts +89 -89
- package/lib/core/utils/object-utils.d.ts +31 -31
- package/lib/core/utils/string-utils.d.ts +25 -25
- package/lib/core/validator/email.validator.d.ts +2 -2
- package/lib/core/validator/equal.validator.d.ts +2 -2
- package/lib/core/validator/max-string-length.validator.d.ts +2 -2
- package/lib/core/validator/password.validator.d.ts +3 -3
- package/lib/core/validator/precision-scale.validator.d.ts +2 -2
- package/lib/core/validator/required.validator.d.ts +2 -2
- package/lib/directives/clickoutside/click-outside-master.service.d.ts +15 -15
- package/lib/directives/clickoutside/click-outside.directive.d.ts +18 -18
- package/lib/directives/clickoutside/clickoutside.module.d.ts +2 -2
- package/lib/directives/observe-visibility/observe-visibility.directive.d.ts +14 -14
- package/lib/directives/observe-visibility/observe-visibility.module.d.ts +2 -2
- package/lib/directives/overlay/overlay-parent.directive.d.ts +6 -6
- package/lib/directives/overlay/overlay.directive.d.ts +25 -25
- package/lib/directives/overlay/overlay.module.d.ts +2 -2
- package/lib/directives/ripple/ripple-ref.d.ts +21 -21
- package/lib/directives/ripple/ripple-renderer.d.ts +56 -56
- package/lib/directives/ripple/ripple.directive.d.ts +56 -56
- package/lib/directives/ripple/ripple.module.d.ts +2 -2
- package/lib/directives/ripple/scroll-dispatcher.service.d.ts +51 -51
- package/lib/directives/ripple/scrollable.directive.d.ts +20 -20
- package/lib/directives/ripple/viewport-ruler.service.d.ts +29 -29
- package/lib/directives/screen-configuration/screen-configuration.directive.d.ts +32 -32
- package/lib/directives/screen-configuration/screen-configuration.module.d.ts +2 -2
- package/lib/directives/stopclick/stop-click.directive.d.ts +10 -10
- package/lib/directives/stopclick/stop-click.module.d.ts +2 -2
- package/lib/directives/template-wrapper/template-wrapper.directive.d.ts +13 -13
- package/lib/directives/template-wrapper/template-wrapper.module.d.ts +2 -2
- package/lib/directives/tooltip/tooltip-directive.module.d.ts +2 -2
- package/lib/directives/tooltip/tooltip.directive.d.ts +20 -20
- package/lib/interfaces/dialog-response.interface.d.ts +6 -6
- package/lib/interfaces/scanner-input.interface.d.ts +3 -3
- package/lib/interfaces/screen-config-adapter-component-interface-name.d.ts +3 -3
- package/lib/interfaces/screen-config-adapter.component.interface.d.ts +10 -10
- package/lib/model/enum/app-button-type.enum.d.ts +9 -9
- package/lib/model/enum/app-popup-type.enum.d.ts +6 -6
- package/lib/pipes/append.pipe.d.ts +4 -4
- package/lib/pipes/append.pipe.module.d.ts +2 -2
- package/lib/pipes/filter.pipe.d.ts +4 -4
- package/lib/pipes/filter.pipe.module.d.ts +2 -2
- package/lib/pipes/prepend.pipe.d.ts +4 -4
- package/lib/pipes/prepend.pipe.module.d.ts +2 -2
- package/lib/pipes/price-display-pipe.module.d.ts +2 -2
- package/lib/pipes/price-display.pipe.d.ts +4 -4
- package/lib/service/base-module-screen-config.service.d.ts +47 -47
- package/lib/service/base-module.service.d.ts +22 -22
- package/lib/service/color-sequence.service.d.ts +4 -4
- package/lib/service/overlay.service.d.ts +13 -13
- package/lib/translation/core-components-translation.module.d.ts +4 -4
- package/lib/translation/core-components-translation.service.d.ts +6 -6
- package/lib/translation/core-dictionary.service.d.ts +12 -12
- package/lib/translation/core-localize.pipe.d.ts +7 -7
- package/package.json +1 -1
- package/public-api.d.ts +126 -126
|
@@ -1,100 +1,100 @@
|
|
|
1
|
-
export class BrowserUtils {
|
|
2
|
-
static ScrollToTop(nativeElement, milliSeconds = 200) {
|
|
3
|
-
return BrowserUtils._ScrollTo("scrollTop", nativeElement, milliSeconds, 0);
|
|
4
|
-
}
|
|
5
|
-
static DownloadFile(encodedUri, fileType) {
|
|
6
|
-
const link = document.createElement("a");
|
|
7
|
-
const date = new Date().toDateString();
|
|
8
|
-
link.href = encodedUri;
|
|
9
|
-
link.target = '_blank';
|
|
10
|
-
link.download = "export_" + date + fileType;
|
|
11
|
-
document.body.appendChild(link);
|
|
12
|
-
link.click();
|
|
13
|
-
document.body.removeChild(link);
|
|
14
|
-
}
|
|
15
|
-
static CopyToClipboard(data) {
|
|
16
|
-
const textArea = document.createElement("TEXTAREA");
|
|
17
|
-
const textNode = document.createTextNode(data);
|
|
18
|
-
textArea.appendChild(textNode);
|
|
19
|
-
document.body.appendChild(textArea); // Required for FF
|
|
20
|
-
textArea.select();
|
|
21
|
-
document.execCommand("copy");
|
|
22
|
-
document.body.removeChild(textArea);
|
|
23
|
-
}
|
|
24
|
-
static TabFocusNextElement() {
|
|
25
|
-
const nextTabStop = BrowserUtils._FindNextTabStop(document.activeElement);
|
|
26
|
-
if (nextTabStop) {
|
|
27
|
-
nextTabStop.focus();
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
static AreDimensionsInView(dimensions, view) {
|
|
31
|
-
const vp = BrowserUtils.GetDimensions(view);
|
|
32
|
-
return dimensions.top >= vp.top && dimensions.left >= vp.left && dimensions.bottom <= vp.bottom && dimensions.right <= vp.right;
|
|
33
|
-
}
|
|
34
|
-
static HorizontalFitInView(dimensions, view) {
|
|
35
|
-
const vp = BrowserUtils.GetDimensions(view);
|
|
36
|
-
return dimensions.left >= vp.left && dimensions.right <= vp.right;
|
|
37
|
-
}
|
|
38
|
-
static VerticalFitInView(dimensions, view) {
|
|
39
|
-
const vp = BrowserUtils.GetDimensions(view);
|
|
40
|
-
return dimensions.top >= vp.top && dimensions.bottom <= vp.bottom;
|
|
41
|
-
}
|
|
42
|
-
static GetViewport() {
|
|
43
|
-
let viewPortWidth;
|
|
44
|
-
let viewPortHeight;
|
|
45
|
-
// the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight
|
|
46
|
-
if (typeof window.innerWidth !== 'undefined') {
|
|
47
|
-
viewPortWidth = window.innerWidth;
|
|
48
|
-
viewPortHeight = window.innerHeight;
|
|
49
|
-
}
|
|
50
|
-
else if (typeof document.documentElement !== 'undefined' &&
|
|
51
|
-
typeof document.documentElement.clientWidth !== 'undefined' &&
|
|
52
|
-
document.documentElement.clientWidth !== 0) {
|
|
53
|
-
viewPortWidth = document.documentElement.clientWidth;
|
|
54
|
-
viewPortHeight = document.documentElement.clientHeight;
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
viewPortWidth = document.getElementsByTagName('body')[0].clientWidth;
|
|
58
|
-
viewPortHeight = document.getElementsByTagName('body')[0].clientHeight;
|
|
59
|
-
}
|
|
60
|
-
return { left: 0, top: 0, right: viewPortWidth, bottom: viewPortHeight };
|
|
61
|
-
}
|
|
62
|
-
static GetDimensions(view) {
|
|
63
|
-
if (!view) {
|
|
64
|
-
return this.GetViewport();
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
const elem = view instanceof HTMLElement ? view : view.nativeElement;
|
|
68
|
-
const cr = elem.getBoundingClientRect();
|
|
69
|
-
return { left: cr.left, top: cr.top, right: cr.right, bottom: cr.bottom };
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
// Recursive.
|
|
73
|
-
static _ScrollTo(elementScrollProp, element, milliSeconds, toScrollEnd) {
|
|
74
|
-
if (!element || milliSeconds <= 0) {
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
const difference = toScrollEnd - element[elementScrollProp];
|
|
78
|
-
const scrollPerTick = difference / milliSeconds * 10;
|
|
79
|
-
setTimeout(() => {
|
|
80
|
-
element[elementScrollProp] = element[elementScrollProp] + scrollPerTick;
|
|
81
|
-
if (element[elementScrollProp] === toScrollEnd) {
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
BrowserUtils._ScrollTo(elementScrollProp, element, milliSeconds - 10, toScrollEnd);
|
|
85
|
-
}, 10);
|
|
86
|
-
}
|
|
87
|
-
static _FindNextTabStop(element) {
|
|
88
|
-
const tabStopElements = document.querySelectorAll('a[href], area[href], input:not(.hidden):not(.disabled):not(.readonly):not(.read-only), select:not(.hidden):not(.disabled):not(.readonly):not(.read-only), textarea:not(.hidden):not(.disabled):not(.readonly):not(.read-only), button:not(.hidden):not(.disabled):not(.readonly):not(.read-only), iframe, object, embed, *[tabindex]:not(.hidden):not(.disabled):not(.readonly):not(.read-only), *[contenteditable]:not(.hidden):not(.disabled):not(.readonly):not(.read-only)');
|
|
89
|
-
const actualStopEls = [];
|
|
90
|
-
for (let i = 0, len = tabStopElements.length; i < len; i++) {
|
|
91
|
-
const tabEl = tabStopElements[i];
|
|
92
|
-
if (tabEl.tabIndex >= 0) {
|
|
93
|
-
actualStopEls.push(tabEl);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
const elIdx = actualStopEls.indexOf(element);
|
|
97
|
-
return actualStopEls[elIdx + 1] || undefined;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
1
|
+
export class BrowserUtils {
|
|
2
|
+
static ScrollToTop(nativeElement, milliSeconds = 200) {
|
|
3
|
+
return BrowserUtils._ScrollTo("scrollTop", nativeElement, milliSeconds, 0);
|
|
4
|
+
}
|
|
5
|
+
static DownloadFile(encodedUri, fileType) {
|
|
6
|
+
const link = document.createElement("a");
|
|
7
|
+
const date = new Date().toDateString();
|
|
8
|
+
link.href = encodedUri;
|
|
9
|
+
link.target = '_blank';
|
|
10
|
+
link.download = "export_" + date + fileType;
|
|
11
|
+
document.body.appendChild(link);
|
|
12
|
+
link.click();
|
|
13
|
+
document.body.removeChild(link);
|
|
14
|
+
}
|
|
15
|
+
static CopyToClipboard(data) {
|
|
16
|
+
const textArea = document.createElement("TEXTAREA");
|
|
17
|
+
const textNode = document.createTextNode(data);
|
|
18
|
+
textArea.appendChild(textNode);
|
|
19
|
+
document.body.appendChild(textArea); // Required for FF
|
|
20
|
+
textArea.select();
|
|
21
|
+
document.execCommand("copy");
|
|
22
|
+
document.body.removeChild(textArea);
|
|
23
|
+
}
|
|
24
|
+
static TabFocusNextElement() {
|
|
25
|
+
const nextTabStop = BrowserUtils._FindNextTabStop(document.activeElement);
|
|
26
|
+
if (nextTabStop) {
|
|
27
|
+
nextTabStop.focus();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
static AreDimensionsInView(dimensions, view) {
|
|
31
|
+
const vp = BrowserUtils.GetDimensions(view);
|
|
32
|
+
return dimensions.top >= vp.top && dimensions.left >= vp.left && dimensions.bottom <= vp.bottom && dimensions.right <= vp.right;
|
|
33
|
+
}
|
|
34
|
+
static HorizontalFitInView(dimensions, view) {
|
|
35
|
+
const vp = BrowserUtils.GetDimensions(view);
|
|
36
|
+
return dimensions.left >= vp.left && dimensions.right <= vp.right;
|
|
37
|
+
}
|
|
38
|
+
static VerticalFitInView(dimensions, view) {
|
|
39
|
+
const vp = BrowserUtils.GetDimensions(view);
|
|
40
|
+
return dimensions.top >= vp.top && dimensions.bottom <= vp.bottom;
|
|
41
|
+
}
|
|
42
|
+
static GetViewport() {
|
|
43
|
+
let viewPortWidth;
|
|
44
|
+
let viewPortHeight;
|
|
45
|
+
// the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight
|
|
46
|
+
if (typeof window.innerWidth !== 'undefined') {
|
|
47
|
+
viewPortWidth = window.innerWidth;
|
|
48
|
+
viewPortHeight = window.innerHeight;
|
|
49
|
+
}
|
|
50
|
+
else if (typeof document.documentElement !== 'undefined' &&
|
|
51
|
+
typeof document.documentElement.clientWidth !== 'undefined' &&
|
|
52
|
+
document.documentElement.clientWidth !== 0) {
|
|
53
|
+
viewPortWidth = document.documentElement.clientWidth;
|
|
54
|
+
viewPortHeight = document.documentElement.clientHeight;
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
viewPortWidth = document.getElementsByTagName('body')[0].clientWidth;
|
|
58
|
+
viewPortHeight = document.getElementsByTagName('body')[0].clientHeight;
|
|
59
|
+
}
|
|
60
|
+
return { left: 0, top: 0, right: viewPortWidth, bottom: viewPortHeight };
|
|
61
|
+
}
|
|
62
|
+
static GetDimensions(view) {
|
|
63
|
+
if (!view) {
|
|
64
|
+
return this.GetViewport();
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
const elem = view instanceof HTMLElement ? view : view.nativeElement;
|
|
68
|
+
const cr = elem.getBoundingClientRect();
|
|
69
|
+
return { left: cr.left, top: cr.top, right: cr.right, bottom: cr.bottom };
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// Recursive.
|
|
73
|
+
static _ScrollTo(elementScrollProp, element, milliSeconds, toScrollEnd) {
|
|
74
|
+
if (!element || milliSeconds <= 0) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const difference = toScrollEnd - element[elementScrollProp];
|
|
78
|
+
const scrollPerTick = difference / milliSeconds * 10;
|
|
79
|
+
setTimeout(() => {
|
|
80
|
+
element[elementScrollProp] = element[elementScrollProp] + scrollPerTick;
|
|
81
|
+
if (element[elementScrollProp] === toScrollEnd) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
BrowserUtils._ScrollTo(elementScrollProp, element, milliSeconds - 10, toScrollEnd);
|
|
85
|
+
}, 10);
|
|
86
|
+
}
|
|
87
|
+
static _FindNextTabStop(element) {
|
|
88
|
+
const tabStopElements = document.querySelectorAll('a[href], area[href], input:not(.hidden):not(.disabled):not(.readonly):not(.read-only), select:not(.hidden):not(.disabled):not(.readonly):not(.read-only), textarea:not(.hidden):not(.disabled):not(.readonly):not(.read-only), button:not(.hidden):not(.disabled):not(.readonly):not(.read-only), iframe, object, embed, *[tabindex]:not(.hidden):not(.disabled):not(.readonly):not(.read-only), *[contenteditable]:not(.hidden):not(.disabled):not(.readonly):not(.read-only)');
|
|
89
|
+
const actualStopEls = [];
|
|
90
|
+
for (let i = 0, len = tabStopElements.length; i < len; i++) {
|
|
91
|
+
const tabEl = tabStopElements[i];
|
|
92
|
+
if (tabEl.tabIndex >= 0) {
|
|
93
|
+
actualStopEls.push(tabEl);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
const elIdx = actualStopEls.indexOf(element);
|
|
97
|
+
return actualStopEls[elIdx + 1] || undefined;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
100
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvY29yZS91dGlscy9icm93c2VyLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxZQUFZO0lBQ2QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxhQUFrQixFQUFFLGVBQXVCLEdBQUc7UUFDcEUsT0FBTyxZQUFZLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFTSxNQUFNLENBQUMsWUFBWSxDQUFDLFVBQWtCLEVBQUUsUUFBZ0I7UUFDM0QsTUFBTSxJQUFJLEdBQXNCLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUQsTUFBTSxJQUFJLEdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUUvQyxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsR0FBRyxJQUFJLEdBQUcsUUFBUSxDQUFDO1FBRTVDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLElBQVk7UUFFdEMsTUFBTSxRQUFRLEdBQVEsUUFBUSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RCxNQUFNLFFBQVEsR0FBUSxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBELFFB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SUFDWCxDQUFDO0lBRU8sTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQWdCO1FBQzVDLE1BQU0sZUFBZSxHQUF3QixRQUFRLENBQUMsZ0JBQWdCLENBQ2xFLGdkQUFnZCxDQUNuZCxDQUFDO1FBQ0YsTUFBTSxhQUFhLEdBQWMsRUFBRSxDQUFDO1FBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLEdBQUcsR0FBVyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDeEUsTUFBTSxLQUFLLEdBQVEsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDLEVBQUU7Z0JBQ3JCLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDN0I7U0FDSjtRQUNELE1BQU0sS0FBSyxHQUFXLGFBQWEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckQsT0FBTyxhQUFhLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztJQUNqRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVsZW1lbnRQb3NpdGlvbiB9IGZyb20gJy4uL21vZGVsL2VsZW1lbnQtcG9zaXRpb24nO1xyXG5cclxuZXhwb3J0IGNsYXNzIEJyb3dzZXJVdGlscyB7XHJcbiAgICBwdWJsaWMgc3RhdGljIFNjcm9sbFRvVG9wKG5hdGl2ZUVsZW1lbnQ6IGFueSwgbWlsbGlTZWNvbmRzOiBudW1iZXIgPSAyMDApOiB2b2lkIHtcclxuICAgICAgICByZXR1cm4gQnJvd3NlclV0aWxzLl9TY3JvbGxUbyhcInNjcm9sbFRvcFwiLCBuYXRpdmVFbGVtZW50LCBtaWxsaVNlY29uZHMsIDApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgRG93bmxvYWRGaWxlKGVuY29kZWRVcmk6IHN0cmluZywgZmlsZVR5cGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGxpbms6IEhUTUxBbmNob3JFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgICAgICAgY29uc3QgZGF0ZTogc3RyaW5nID0gbmV3IERhdGUoKS50b0RhdGVTdHJpbmcoKTtcclxuXHJcbiAgICAgICAgbGluay5ocmVmID0gZW5jb2RlZFVyaTtcclxuICAgICAgICBsaW5rLnRhcmdldCA9ICdfYmxhbmsnO1xyXG4gICAgICAgIGxpbmsuZG93bmxvYWQgPSBcImV4cG9ydF9cIiArIGRhdGUgKyBmaWxlVHlwZTtcclxuXHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcclxuICAgICAgICBsaW5rLmNsaWNrKCk7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIENvcHlUb0NsaXBib2FyZChkYXRhOiBzdHJpbmcpOiB2b2lkIHtcclxuXHJcbiAgICAgICAgY29uc3QgdGV4dEFyZWE6IGFueSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJURVhUQVJFQVwiKTtcclxuICAgICAgICBjb25zdCB0ZXh0Tm9kZTogYW55ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZGF0YSk7XHJcblxyXG4gICAgICAgIHRleHRBcmVhLmFwcGVuZENoaWxkKHRleHROb2RlKTtcclxuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRleHRBcmVhKTsgLy8gUmVxdWlyZWQgZm9yIEZGXHJcbiAgICAgICAgdGV4dEFyZWEuc2VsZWN0KCk7XHJcbiAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoXCJjb3B5XCIpO1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGV4dEFyZWEpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgVGFiRm9jdXNOZXh0RWxlbWVudCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBuZXh0VGFiU3RvcDogYW55ID0gQnJvd3NlclV0aWxzLl9GaW5kTmV4dFRhYlN0b3AoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgaWYgKG5leHRUYWJTdG9wKSB7XHJcbiAgICAgICAgICAgIG5leHRUYWJTdG9wLmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgQXJlRGltZW5zaW9uc0luVmlldyhkaW1lbnNpb25zOiBFbGVtZW50UG9zaXRpb24sIHZpZXc/OiBFbGVtZW50UmVmKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgdnA6IEVsZW1lbnRQb3NpdGlvbiA9IEJyb3dzZXJVdGlscy5HZXREaW1lbnNpb25zKHZpZXcpO1xyXG5cclxuICAgICAgICByZXR1cm4gZGltZW5zaW9ucy50b3AgPj0gdnAudG9wICYmIGRpbWVuc2lvbnMubGVmdCA+PSB2cC5sZWZ0ICYmIGRpbWVuc2lvbnMuYm90dG9tIDw9IHZwLmJvdHRvbSAmJiBkaW1lbnNpb25zLnJpZ2h0IDw9IHZwLnJpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgSG9yaXpvbnRhbEZpdEluVmlldyhkaW1lbnNpb25zOiBFbGVtZW50UG9zaXRpb24sIHZpZXc/OiBFbGVtZW50UmVmKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgdnA6IEVsZW1lbnRQb3NpdGlvbiA9IEJyb3dzZXJVdGlscy5HZXREaW1lbnNpb25zKHZpZXcpO1xyXG5cclxuICAgICAgICByZXR1cm4gZGltZW5zaW9ucy5sZWZ0ID49IHZwLmxlZnQgJiYgZGltZW5zaW9ucy5yaWdodCA8PSB2cC5yaWdodDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIFZlcnRpY2FsRml0SW5WaWV3KGRpbWVuc2lvbnM6IEVsZW1lbnRQb3NpdGlvbiwgdmlldz86IEVsZW1lbnRSZWYpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCB2cDogRWxlbWVudFBvc2l0aW9uID0gQnJvd3NlclV0aWxzLkdldERpbWVuc2lvbnModmlldyk7XHJcblxyXG4gICAgICAgIHJldHVybiBkaW1lbnNpb25zLnRvcCA+PSB2cC50b3AgJiYgZGltZW5zaW9ucy5ib3R0b20gPD0gdnAuYm90dG9tO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0Vmlld3BvcnQoKTogRWxlbWVudFBvc2l0aW9uIHtcclxuXHJcbiAgICAgICAgbGV0IHZpZXdQb3J0V2lkdGg6IG51bWJlcjtcclxuICAgICAgICBsZXQgdmlld1BvcnRIZWlnaHQ6IG51bWJlcjtcclxuXHJcbiAgICAgICAgLy8gdGhlIG1vcmUgc3RhbmRhcmRzIGNvbXBsaWFudCBicm93c2VycyAobW96aWxsYS9uZXRzY2FwZS9vcGVyYS9JRTcpIHVzZSB3aW5kb3cuaW5uZXJXaWR0aCBhbmQgd2luZG93LmlubmVySGVpZ2h0XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cuaW5uZXJXaWR0aCAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdmlld1BvcnRXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgICAgICAgICB2aWV3UG9ydEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgIT09ICd1bmRlZmluZWQnICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGggIT09ICd1bmRlZmluZWQnICYmXHJcbiAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCAhPT0gMCkge1xyXG4gICAgICAgICAgICB2aWV3UG9ydFdpZHRoID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO1xyXG4gICAgICAgICAgICB2aWV3UG9ydEhlaWdodCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdmlld1BvcnRXaWR0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF0uY2xpZW50V2lkdGg7XHJcbiAgICAgICAgICAgIHZpZXdQb3J0SGVpZ2h0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXS5jbGllbnRIZWlnaHQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4ge2xlZnQ6IDAsIHRvcDogMCwgcmlnaHQ6IHZpZXdQb3J0V2lkdGgsIGJvdHRvbTogdmlld1BvcnRIZWlnaHR9O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0RGltZW5zaW9ucyh2aWV3PzogRWxlbWVudFJlZik6IEVsZW1lbnRQb3NpdGlvbiB7XHJcbiAgICAgICAgaWYgKCF2aWV3KSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLkdldFZpZXdwb3J0KCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgZWxlbTogSFRNTEVsZW1lbnQgPSB2aWV3IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgPyB2aWV3IDogdmlldy5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgICAgICBjb25zdCBjcjogQ2xpZW50UmVjdCA9IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgICAgIHJldHVybiB7bGVmdDogY3IubGVmdCwgdG9wOiBjci50b3AsIHJpZ2h0OiBjci5yaWdodCwgYm90dG9tOiBjci5ib3R0b219O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBSZWN1cnNpdmUuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBfU2Nyb2xsVG8oZWxlbWVudFNjcm9sbFByb3A6IHN0cmluZywgZWxlbWVudDogYW55LCBtaWxsaVNlY29uZHM6IG51bWJlciwgdG9TY3JvbGxFbmQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIGlmICghZWxlbWVudCB8fCBtaWxsaVNlY29uZHMgPD0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBkaWZmZXJlbmNlOiBudW1iZXIgPSB0b1Njcm9sbEVuZCAtIGVsZW1lbnRbZWxlbWVudFNjcm9sbFByb3BdO1xyXG4gICAgICAgIGNvbnN0IHNjcm9sbFBlclRpY2s6IG51bWJlciA9IGRpZmZlcmVuY2UgLyBtaWxsaVNlY29uZHMgKiAxMDtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGVsZW1lbnRbZWxlbWVudFNjcm9sbFByb3BdID0gZWxlbWVudFtlbGVtZW50U2Nyb2xsUHJvcF0gKyBzY3JvbGxQZXJUaWNrO1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudFtlbGVtZW50U2Nyb2xsUHJvcF0gPT09IHRvU2Nyb2xsRW5kKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQnJvd3NlclV0aWxzLl9TY3JvbGxUbyhlbGVtZW50U2Nyb2xsUHJvcCwgZWxlbWVudCwgbWlsbGlTZWNvbmRzIC0gMTAsIHRvU2Nyb2xsRW5kKTtcclxuICAgICAgICB9LCAxMCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgX0ZpbmROZXh0VGFiU3RvcChlbGVtZW50OiBFbGVtZW50KTogRWxlbWVudCB7XHJcbiAgICAgICAgY29uc3QgdGFiU3RvcEVsZW1lbnRzOiBOb2RlTGlzdE9mPEVsZW1lbnQ+ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcclxuICAgICAgICAgICAgJ2FbaHJlZl0sIGFyZWFbaHJlZl0sIGlucHV0Om5vdCguaGlkZGVuKTpub3QoLmRpc2FibGVkKTpub3QoLnJlYWRvbmx5KTpub3QoLnJlYWQtb25seSksIHNlbGVjdDpub3QoLmhpZGRlbik6bm90KC5kaXNhYmxlZCk6bm90KC5yZWFkb25seSk6bm90KC5yZWFkLW9ubHkpLCB0ZXh0YXJlYTpub3QoLmhpZGRlbik6bm90KC5kaXNhYmxlZCk6bm90KC5yZWFkb25seSk6bm90KC5yZWFkLW9ubHkpLCBidXR0b246bm90KC5oaWRkZW4pOm5vdCguZGlzYWJsZWQpOm5vdCgucmVhZG9ubHkpOm5vdCgucmVhZC1vbmx5KSwgaWZyYW1lLCBvYmplY3QsIGVtYmVkLCAqW3RhYmluZGV4XTpub3QoLmhpZGRlbik6bm90KC5kaXNhYmxlZCk6bm90KC5yZWFkb25seSk6bm90KC5yZWFkLW9ubHkpLCAqW2NvbnRlbnRlZGl0YWJsZV06bm90KC5oaWRkZW4pOm5vdCguZGlzYWJsZWQpOm5vdCgucmVhZG9ubHkpOm5vdCgucmVhZC1vbmx5KSdcclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IGFjdHVhbFN0b3BFbHM6IEVsZW1lbnRbXSA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDAsIGxlbjogbnVtYmVyID0gdGFiU3RvcEVsZW1lbnRzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRhYkVsOiBhbnkgPSB0YWJTdG9wRWxlbWVudHNbaV07XHJcbiAgICAgICAgICAgIGlmICh0YWJFbC50YWJJbmRleCA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgICBhY3R1YWxTdG9wRWxzLnB1c2godGFiRWwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGVsSWR4OiBudW1iZXIgPSBhY3R1YWxTdG9wRWxzLmluZGV4T2YoZWxlbWVudCk7XHJcbiAgICAgICAgcmV0dXJuIGFjdHVhbFN0b3BFbHNbZWxJZHggKyAxXSB8fCB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { CoDirection } from "../enum/co-direction";
|
|
2
|
-
// @dynamic
|
|
3
|
-
export class DirectionEnumUtils {
|
|
4
|
-
static OppositeOf(direction) {
|
|
5
|
-
return this._OppositeDirections.get(direction);
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
DirectionEnumUtils._OppositeDirections = new Map([
|
|
9
|
-
[CoDirection.Right, CoDirection.Left],
|
|
10
|
-
[CoDirection.Left, CoDirection.Right],
|
|
11
|
-
[CoDirection.Up, CoDirection.Down],
|
|
12
|
-
[CoDirection.Down, CoDirection.Up]
|
|
13
|
-
]);
|
|
1
|
+
import { CoDirection } from "../enum/co-direction";
|
|
2
|
+
// @dynamic
|
|
3
|
+
export class DirectionEnumUtils {
|
|
4
|
+
static OppositeOf(direction) {
|
|
5
|
+
return this._OppositeDirections.get(direction);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
DirectionEnumUtils._OppositeDirections = new Map([
|
|
9
|
+
[CoDirection.Right, CoDirection.Left],
|
|
10
|
+
[CoDirection.Left, CoDirection.Right],
|
|
11
|
+
[CoDirection.Up, CoDirection.Down],
|
|
12
|
+
[CoDirection.Down, CoDirection.Up]
|
|
13
|
+
]);
|
|
14
14
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9uLWVudW0tdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2NvcmUvdXRpbHMvZGlyZWN0aW9uLWVudW0tdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELFdBQVc7QUFDWCxNQUFNLE9BQU8sa0JBQWtCO0lBUXBCLE1BQU0sQ0FBQyxVQUFVLENBQUMsU0FBc0I7UUFDM0MsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7O0FBVHVCLHNDQUFtQixHQUFrQyxJQUFJLEdBQUcsQ0FBMkI7SUFDM0csQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFDckMsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUM7SUFDckMsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFDbEMsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUM7Q0FDckMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29EaXJlY3Rpb24gfSBmcm9tIFwiLi4vZW51bS9jby1kaXJlY3Rpb25cIjtcclxuXHJcbi8vIEBkeW5hbWljXHJcbmV4cG9ydCBjbGFzcyBEaXJlY3Rpb25FbnVtVXRpbHMge1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgX09wcG9zaXRlRGlyZWN0aW9uczogTWFwPENvRGlyZWN0aW9uLCBDb0RpcmVjdGlvbj4gPSBuZXcgTWFwPENvRGlyZWN0aW9uLCBDb0RpcmVjdGlvbj4oW1xyXG4gICAgICAgIFtDb0RpcmVjdGlvbi5SaWdodCwgQ29EaXJlY3Rpb24uTGVmdF0sXHJcbiAgICAgICAgW0NvRGlyZWN0aW9uLkxlZnQsIENvRGlyZWN0aW9uLlJpZ2h0XSxcclxuICAgICAgICBbQ29EaXJlY3Rpb24uVXAsIENvRGlyZWN0aW9uLkRvd25dLFxyXG4gICAgICAgIFtDb0RpcmVjdGlvbi5Eb3duLCBDb0RpcmVjdGlvbi5VcF1cclxuICAgIF0pO1xyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgT3Bwb3NpdGVPZihkaXJlY3Rpb246IENvRGlyZWN0aW9uKTogQ29EaXJlY3Rpb24ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9PcHBvc2l0ZURpcmVjdGlvbnMuZ2V0KGRpcmVjdGlvbik7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
import { isNill } from "../function/is-nill.function";
|
|
2
|
-
// @dynamic
|
|
3
|
-
export class EventUtils {
|
|
4
|
-
static get passiveSupported() {
|
|
5
|
-
if (isNill(EventUtils._passiveSupported)) {
|
|
6
|
-
EventUtils._CheckPassiveSupported();
|
|
7
|
-
}
|
|
8
|
-
return EventUtils._passiveSupported;
|
|
9
|
-
}
|
|
10
|
-
static get passiveBubble() {
|
|
11
|
-
if (isNill(EventUtils._passiveBubble)) {
|
|
12
|
-
EventUtils._passiveBubble = EventUtils.passiveSupported ? { passive: true, capture: false } : false;
|
|
13
|
-
}
|
|
14
|
-
return EventUtils._passiveBubble;
|
|
15
|
-
}
|
|
16
|
-
static get passiveCapture() {
|
|
17
|
-
if (isNill(EventUtils._passiveCapture)) {
|
|
18
|
-
EventUtils._passiveCapture = EventUtils.passiveSupported ? { passive: true, capture: true } : true;
|
|
19
|
-
}
|
|
20
|
-
return EventUtils._passiveCapture;
|
|
21
|
-
}
|
|
22
|
-
static KillEvent(event) {
|
|
23
|
-
if (event) {
|
|
24
|
-
event.preventDefault();
|
|
25
|
-
event.stopPropagation();
|
|
26
|
-
event.stopImmediatePropagation();
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
static StopEvent(event) {
|
|
30
|
-
this.KillEvent(event);
|
|
31
|
-
}
|
|
32
|
-
static GetMouseEventOrTouch(originalEvent) {
|
|
33
|
-
return originalEvent instanceof MouseEvent ? originalEvent : originalEvent.touches[0];
|
|
34
|
-
}
|
|
35
|
-
static _CheckPassiveSupported() {
|
|
36
|
-
let passiveSupported = false;
|
|
37
|
-
try {
|
|
38
|
-
const options = Object.defineProperty({}, "passive", {
|
|
39
|
-
get: function () {
|
|
40
|
-
passiveSupported = true;
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
window.addEventListener("test", null, options);
|
|
44
|
-
}
|
|
45
|
-
catch (e) {
|
|
46
|
-
}
|
|
47
|
-
this._passiveSupported = passiveSupported;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
EventUtils._passiveSupported = undefined;
|
|
51
|
-
EventUtils._passiveCapture = undefined;
|
|
52
|
-
EventUtils._passiveBubble = undefined;
|
|
1
|
+
import { isNill } from "../function/is-nill.function";
|
|
2
|
+
// @dynamic
|
|
3
|
+
export class EventUtils {
|
|
4
|
+
static get passiveSupported() {
|
|
5
|
+
if (isNill(EventUtils._passiveSupported)) {
|
|
6
|
+
EventUtils._CheckPassiveSupported();
|
|
7
|
+
}
|
|
8
|
+
return EventUtils._passiveSupported;
|
|
9
|
+
}
|
|
10
|
+
static get passiveBubble() {
|
|
11
|
+
if (isNill(EventUtils._passiveBubble)) {
|
|
12
|
+
EventUtils._passiveBubble = EventUtils.passiveSupported ? { passive: true, capture: false } : false;
|
|
13
|
+
}
|
|
14
|
+
return EventUtils._passiveBubble;
|
|
15
|
+
}
|
|
16
|
+
static get passiveCapture() {
|
|
17
|
+
if (isNill(EventUtils._passiveCapture)) {
|
|
18
|
+
EventUtils._passiveCapture = EventUtils.passiveSupported ? { passive: true, capture: true } : true;
|
|
19
|
+
}
|
|
20
|
+
return EventUtils._passiveCapture;
|
|
21
|
+
}
|
|
22
|
+
static KillEvent(event) {
|
|
23
|
+
if (event) {
|
|
24
|
+
event.preventDefault();
|
|
25
|
+
event.stopPropagation();
|
|
26
|
+
event.stopImmediatePropagation();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
static StopEvent(event) {
|
|
30
|
+
this.KillEvent(event);
|
|
31
|
+
}
|
|
32
|
+
static GetMouseEventOrTouch(originalEvent) {
|
|
33
|
+
return originalEvent instanceof MouseEvent ? originalEvent : originalEvent.touches[0];
|
|
34
|
+
}
|
|
35
|
+
static _CheckPassiveSupported() {
|
|
36
|
+
let passiveSupported = false;
|
|
37
|
+
try {
|
|
38
|
+
const options = Object.defineProperty({}, "passive", {
|
|
39
|
+
get: function () {
|
|
40
|
+
passiveSupported = true;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
window.addEventListener("test", null, options);
|
|
44
|
+
}
|
|
45
|
+
catch (e) {
|
|
46
|
+
}
|
|
47
|
+
this._passiveSupported = passiveSupported;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
EventUtils._passiveSupported = undefined;
|
|
51
|
+
EventUtils._passiveCapture = undefined;
|
|
52
|
+
EventUtils._passiveBubble = undefined;
|
|
53
53
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2NvcmUvdXRpbHMvZXZlbnQtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRXBELFdBQVc7QUFDWCxNQUFNLE9BQU8sVUFBVTtJQUNaLE1BQU0sS0FBSyxnQkFBZ0I7UUFDOUIsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDdEMsVUFBVSxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDdkM7UUFDRCxPQUFPLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQztJQUN4QyxDQUFDO0lBRU0sTUFBTSxLQUFLLGFBQWE7UUFDM0IsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ25DLFVBQVUsQ0FBQyxjQUFjLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7U0FDckc7UUFDRCxPQUFPLFVBQVUsQ0FBQyxjQUFjLENBQUM7SUFDckMsQ0FBQztJQUVNLE1BQU0sS0FBSyxjQUFjO1FBQzVCLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUNwQyxVQUFVLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQ3BHO1FBQ0QsT0FBTyxVQUFVLENBQUMsZUFBZSxDQUFDO0lBQ3RDLENBQUM7SUFRTSxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVk7UUFDaEMsSUFBSSxLQUFLLEVBQUU7WUFDUCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hCLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1NBQ3BDO0lBQ0wsQ0FBQztJQUVNLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBWTtRQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFTSxNQUFNLENBQUMsb0JBQW9CLENBQUMsYUFBc0M7UUFDckUsT0FBTyxhQUFhLFlBQVksVUFBVSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVPLE1BQU0sQ0FBQyxzQkFBc0I7UUFDakMsSUFBSSxnQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDdEMsSUFBSTtZQUNBLE1BQU0sT0FBTyxHQUFRLE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRTtnQkFDdEQsR0FBRyxFQUFFO29CQUNELGdCQUFnQixHQUFHLElBQUksQ0FBQztnQkFDNUIsQ0FBQzthQUNKLENBQUMsQ0FBQztZQUNILE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ2xEO1FBQUMsT0FBTyxDQUFDLEVBQUU7U0FDWDtRQUNELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztJQUM5QyxDQUFDOztBQWxDYyw0QkFBaUIsR0FBWSxTQUFTLENBQUM7QUFFdkMsMEJBQWUsR0FBUSxTQUFTLENBQUM7QUFFakMseUJBQWMsR0FBUSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2lzTmlsbH0gZnJvbSBcIi4uL2Z1bmN0aW9uL2lzLW5pbGwuZnVuY3Rpb25cIjtcclxuXHJcbi8vIEBkeW5hbWljXHJcbmV4cG9ydCBjbGFzcyBFdmVudFV0aWxzIHtcclxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0IHBhc3NpdmVTdXBwb3J0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKGlzTmlsbChFdmVudFV0aWxzLl9wYXNzaXZlU3VwcG9ydGVkKSkge1xyXG4gICAgICAgICAgICBFdmVudFV0aWxzLl9DaGVja1Bhc3NpdmVTdXBwb3J0ZWQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIEV2ZW50VXRpbHMuX3Bhc3NpdmVTdXBwb3J0ZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXQgcGFzc2l2ZUJ1YmJsZSgpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoaXNOaWxsKEV2ZW50VXRpbHMuX3Bhc3NpdmVCdWJibGUpKSB7XHJcbiAgICAgICAgICAgIEV2ZW50VXRpbHMuX3Bhc3NpdmVCdWJibGUgPSBFdmVudFV0aWxzLnBhc3NpdmVTdXBwb3J0ZWQgPyB7cGFzc2l2ZTogdHJ1ZSwgY2FwdHVyZTogZmFsc2V9IDogZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBFdmVudFV0aWxzLl9wYXNzaXZlQnViYmxlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0IHBhc3NpdmVDYXB0dXJlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmIChpc05pbGwoRXZlbnRVdGlscy5fcGFzc2l2ZUNhcHR1cmUpKSB7XHJcbiAgICAgICAgICAgIEV2ZW50VXRpbHMuX3Bhc3NpdmVDYXB0dXJlID0gRXZlbnRVdGlscy5wYXNzaXZlU3VwcG9ydGVkID8ge3Bhc3NpdmU6IHRydWUsIGNhcHR1cmU6IHRydWV9IDogdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIEV2ZW50VXRpbHMuX3Bhc3NpdmVDYXB0dXJlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIF9wYXNzaXZlU3VwcG9ydGVkOiBib29sZWFuID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIF9wYXNzaXZlQ2FwdHVyZTogYW55ID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIF9wYXNzaXZlQnViYmxlOiBhbnkgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBLaWxsRXZlbnQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGV2ZW50KSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBTdG9wRXZlbnQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5LaWxsRXZlbnQoZXZlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0TW91c2VFdmVudE9yVG91Y2gob3JpZ2luYWxFdmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpOiBNb3VzZUV2ZW50IHwgVG91Y2gge1xyXG4gICAgICAgIHJldHVybiBvcmlnaW5hbEV2ZW50IGluc3RhbmNlb2YgTW91c2VFdmVudCA/IG9yaWdpbmFsRXZlbnQgOiBvcmlnaW5hbEV2ZW50LnRvdWNoZXNbMF07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgX0NoZWNrUGFzc2l2ZVN1cHBvcnRlZCgpOiB2b2lkIHtcclxuICAgICAgICBsZXQgcGFzc2l2ZVN1cHBvcnRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbnM6IGFueSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgXCJwYXNzaXZlXCIsIHtcclxuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCk6IHZvaWQge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhc3NpdmVTdXBwb3J0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJ0ZXN0XCIsIG51bGwsIG9wdGlvbnMpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fcGFzc2l2ZVN1cHBvcnRlZCA9IHBhc3NpdmVTdXBwb3J0ZWQ7XHJcbiAgICB9XHJcbn1cclxuIl19
|