@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,108 +1,108 @@
|
|
|
1
|
-
// NOTE: Copied and adapted to iOneJS from https://github.com/angular/material2/blob/master/src/lib/core on 14-march-2017.
|
|
2
|
-
import { Injectable, Optional, SkipSelf } from '@angular/core';
|
|
3
|
-
import { fromEvent, merge, Subject } from 'rxjs';
|
|
4
|
-
import { auditTime } from 'rxjs/operators';
|
|
5
|
-
/** Time in ms to throttle the scrolling events by default. */
|
|
6
|
-
export const DEFAULT_SCROLL_TIME = 20;
|
|
7
|
-
/**
|
|
8
|
-
* Service contained all registered Scrollable references and emits an event when any one of the
|
|
9
|
-
* Scrollable references emit a scrolled event.
|
|
10
|
-
*/
|
|
11
|
-
export class CoScrollDispatcherService {
|
|
12
|
-
constructor() {
|
|
13
|
-
/** Subject for notifying that a registered scrollable reference element has been scrolled. */
|
|
14
|
-
this._scrolled = new Subject();
|
|
15
|
-
/** Keeps track of the global `scroll` and `resize` subscriptions. */
|
|
16
|
-
this._globalSubscription = null;
|
|
17
|
-
/** Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards. */
|
|
18
|
-
this._scrolledCount = 0;
|
|
19
|
-
/**
|
|
20
|
-
* Map of all the scrollable references that are registered with the service and their
|
|
21
|
-
* scroll event subscriptions.
|
|
22
|
-
*/
|
|
23
|
-
this.scrollableReferences = new Map();
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Registers a Scrollable with the service and listens for its scrolled events. When the
|
|
27
|
-
* scrollable is scrolled, the service emits the event in its scrolled observable.
|
|
28
|
-
* @param scrollable Scrollable instance to be registered.
|
|
29
|
-
*/
|
|
30
|
-
register(scrollable) {
|
|
31
|
-
const scrollSubscription = scrollable.elementScrolled().subscribe(() => this._notify());
|
|
32
|
-
this.scrollableReferences.set(scrollable, scrollSubscription);
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Deregisters a Scrollable reference and unsubscribes from its scroll event observable.
|
|
36
|
-
* @param scrollable Scrollable instance to be deregistered.
|
|
37
|
-
*/
|
|
38
|
-
deregister(scrollable) {
|
|
39
|
-
if (this.scrollableReferences.has(scrollable)) {
|
|
40
|
-
this.scrollableReferences.get(scrollable).unsubscribe();
|
|
41
|
-
this.scrollableReferences.delete(scrollable);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Subscribes to an observable that emits an event whenever any of the registered Scrollable
|
|
46
|
-
* references (or window, document, or body) fire a scrolled event. Can provide a time in ms
|
|
47
|
-
* to override the default "throttle" time.
|
|
48
|
-
*/
|
|
49
|
-
scrolled(auditTimeInMs = DEFAULT_SCROLL_TIME, callback) {
|
|
50
|
-
// In the case of a 0ms delay, use an observable without auditTime
|
|
51
|
-
// since it does add a perceptible delay in processing overhead.
|
|
52
|
-
let observable = auditTimeInMs > 0 ?
|
|
53
|
-
auditTime(auditTimeInMs) :
|
|
54
|
-
this._scrolled.asObservable();
|
|
55
|
-
this._scrolledCount++;
|
|
56
|
-
if (!this._globalSubscription) {
|
|
57
|
-
this._globalSubscription = merge(fromEvent(window.document, 'scroll'), fromEvent(window, 'resize')).subscribe(() => this._notify());
|
|
58
|
-
}
|
|
59
|
-
// Note that we need to do the subscribing from here, in order to be able to remove
|
|
60
|
-
// the global event listeners once there are no more subscriptions.
|
|
61
|
-
return observable.subscribe(callback).add(() => {
|
|
62
|
-
this._scrolledCount--;
|
|
63
|
-
if (this._globalSubscription && !this.scrollableReferences.size && !this._scrolledCount) {
|
|
64
|
-
this._globalSubscription.unsubscribe();
|
|
65
|
-
this._globalSubscription = null;
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
/** Returns all registered Scrollables that contain the provided element. */
|
|
70
|
-
getScrollContainers(elementRef) {
|
|
71
|
-
const scrollingContainers = [];
|
|
72
|
-
this.scrollableReferences.forEach((subscription, scrollable) => {
|
|
73
|
-
if (this.scrollableContainsElement(scrollable, elementRef)) {
|
|
74
|
-
scrollingContainers.push(scrollable);
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
return scrollingContainers;
|
|
78
|
-
}
|
|
79
|
-
/** Returns true if the element is contained within the provided Scrollable. */
|
|
80
|
-
scrollableContainsElement(scrollable, elementRef) {
|
|
81
|
-
let element = elementRef.nativeElement;
|
|
82
|
-
let scrollableElement = scrollable.getElementRef().nativeElement;
|
|
83
|
-
// Traverse through the element parents until we reach null, checking if any of the elements
|
|
84
|
-
// are the scrollable's element.
|
|
85
|
-
do {
|
|
86
|
-
if (element == scrollableElement) {
|
|
87
|
-
return true;
|
|
88
|
-
}
|
|
89
|
-
} while (element = element.parentElement);
|
|
90
|
-
}
|
|
91
|
-
/** Sends a notification that a scroll event has been fired. */
|
|
92
|
-
_notify() {
|
|
93
|
-
this._scrolled.next();
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
CoScrollDispatcherService.decorators = [
|
|
97
|
-
{ type: Injectable }
|
|
98
|
-
];
|
|
99
|
-
export function SCROLL_DISPATCHER_PROVIDER_FACTORY(parentDispatcher) {
|
|
100
|
-
return parentDispatcher || new CoScrollDispatcherService();
|
|
101
|
-
}
|
|
102
|
-
export const SCROLL_DISPATCHER_PROVIDER = {
|
|
103
|
-
// If there is already a ScrollDispatcher available, use that. Otherwise, provide a new one.
|
|
104
|
-
provide: CoScrollDispatcherService,
|
|
105
|
-
deps: [[new Optional(), new SkipSelf(), CoScrollDispatcherService]],
|
|
106
|
-
useFactory: SCROLL_DISPATCHER_PROVIDER_FACTORY
|
|
107
|
-
};
|
|
1
|
+
// NOTE: Copied and adapted to iOneJS from https://github.com/angular/material2/blob/master/src/lib/core on 14-march-2017.
|
|
2
|
+
import { Injectable, Optional, SkipSelf } from '@angular/core';
|
|
3
|
+
import { fromEvent, merge, Subject } from 'rxjs';
|
|
4
|
+
import { auditTime } from 'rxjs/operators';
|
|
5
|
+
/** Time in ms to throttle the scrolling events by default. */
|
|
6
|
+
export const DEFAULT_SCROLL_TIME = 20;
|
|
7
|
+
/**
|
|
8
|
+
* Service contained all registered Scrollable references and emits an event when any one of the
|
|
9
|
+
* Scrollable references emit a scrolled event.
|
|
10
|
+
*/
|
|
11
|
+
export class CoScrollDispatcherService {
|
|
12
|
+
constructor() {
|
|
13
|
+
/** Subject for notifying that a registered scrollable reference element has been scrolled. */
|
|
14
|
+
this._scrolled = new Subject();
|
|
15
|
+
/** Keeps track of the global `scroll` and `resize` subscriptions. */
|
|
16
|
+
this._globalSubscription = null;
|
|
17
|
+
/** Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards. */
|
|
18
|
+
this._scrolledCount = 0;
|
|
19
|
+
/**
|
|
20
|
+
* Map of all the scrollable references that are registered with the service and their
|
|
21
|
+
* scroll event subscriptions.
|
|
22
|
+
*/
|
|
23
|
+
this.scrollableReferences = new Map();
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Registers a Scrollable with the service and listens for its scrolled events. When the
|
|
27
|
+
* scrollable is scrolled, the service emits the event in its scrolled observable.
|
|
28
|
+
* @param scrollable Scrollable instance to be registered.
|
|
29
|
+
*/
|
|
30
|
+
register(scrollable) {
|
|
31
|
+
const scrollSubscription = scrollable.elementScrolled().subscribe(() => this._notify());
|
|
32
|
+
this.scrollableReferences.set(scrollable, scrollSubscription);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Deregisters a Scrollable reference and unsubscribes from its scroll event observable.
|
|
36
|
+
* @param scrollable Scrollable instance to be deregistered.
|
|
37
|
+
*/
|
|
38
|
+
deregister(scrollable) {
|
|
39
|
+
if (this.scrollableReferences.has(scrollable)) {
|
|
40
|
+
this.scrollableReferences.get(scrollable).unsubscribe();
|
|
41
|
+
this.scrollableReferences.delete(scrollable);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Subscribes to an observable that emits an event whenever any of the registered Scrollable
|
|
46
|
+
* references (or window, document, or body) fire a scrolled event. Can provide a time in ms
|
|
47
|
+
* to override the default "throttle" time.
|
|
48
|
+
*/
|
|
49
|
+
scrolled(auditTimeInMs = DEFAULT_SCROLL_TIME, callback) {
|
|
50
|
+
// In the case of a 0ms delay, use an observable without auditTime
|
|
51
|
+
// since it does add a perceptible delay in processing overhead.
|
|
52
|
+
let observable = auditTimeInMs > 0 ?
|
|
53
|
+
auditTime(auditTimeInMs) :
|
|
54
|
+
this._scrolled.asObservable();
|
|
55
|
+
this._scrolledCount++;
|
|
56
|
+
if (!this._globalSubscription) {
|
|
57
|
+
this._globalSubscription = merge(fromEvent(window.document, 'scroll'), fromEvent(window, 'resize')).subscribe(() => this._notify());
|
|
58
|
+
}
|
|
59
|
+
// Note that we need to do the subscribing from here, in order to be able to remove
|
|
60
|
+
// the global event listeners once there are no more subscriptions.
|
|
61
|
+
return observable.subscribe(callback).add(() => {
|
|
62
|
+
this._scrolledCount--;
|
|
63
|
+
if (this._globalSubscription && !this.scrollableReferences.size && !this._scrolledCount) {
|
|
64
|
+
this._globalSubscription.unsubscribe();
|
|
65
|
+
this._globalSubscription = null;
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
/** Returns all registered Scrollables that contain the provided element. */
|
|
70
|
+
getScrollContainers(elementRef) {
|
|
71
|
+
const scrollingContainers = [];
|
|
72
|
+
this.scrollableReferences.forEach((subscription, scrollable) => {
|
|
73
|
+
if (this.scrollableContainsElement(scrollable, elementRef)) {
|
|
74
|
+
scrollingContainers.push(scrollable);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
return scrollingContainers;
|
|
78
|
+
}
|
|
79
|
+
/** Returns true if the element is contained within the provided Scrollable. */
|
|
80
|
+
scrollableContainsElement(scrollable, elementRef) {
|
|
81
|
+
let element = elementRef.nativeElement;
|
|
82
|
+
let scrollableElement = scrollable.getElementRef().nativeElement;
|
|
83
|
+
// Traverse through the element parents until we reach null, checking if any of the elements
|
|
84
|
+
// are the scrollable's element.
|
|
85
|
+
do {
|
|
86
|
+
if (element == scrollableElement) {
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
} while (element = element.parentElement);
|
|
90
|
+
}
|
|
91
|
+
/** Sends a notification that a scroll event has been fired. */
|
|
92
|
+
_notify() {
|
|
93
|
+
this._scrolled.next();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
CoScrollDispatcherService.decorators = [
|
|
97
|
+
{ type: Injectable }
|
|
98
|
+
];
|
|
99
|
+
export function SCROLL_DISPATCHER_PROVIDER_FACTORY(parentDispatcher) {
|
|
100
|
+
return parentDispatcher || new CoScrollDispatcherService();
|
|
101
|
+
}
|
|
102
|
+
export const SCROLL_DISPATCHER_PROVIDER = {
|
|
103
|
+
// If there is already a ScrollDispatcher available, use that. Otherwise, provide a new one.
|
|
104
|
+
provide: CoScrollDispatcherService,
|
|
105
|
+
deps: [[new Optional(), new SkipSelf(), CoScrollDispatcherService]],
|
|
106
|
+
useFactory: SCROLL_DISPATCHER_PROVIDER_FACTORY
|
|
107
|
+
};
|
|
108
108
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLWRpc3BhdGNoZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvZGlyZWN0aXZlcy9yaXBwbGUvc2Nyb2xsLWRpc3BhdGNoZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwSEFBMEg7QUFDMUgsT0FBTyxFQUFjLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFHM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLDhEQUE4RDtBQUM5RCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxFQUFFLENBQUM7QUFFdEM7OztHQUdHO0FBRUgsTUFBTSxPQUFPLHlCQUF5QjtJQUR0QztRQUVJLDhGQUE4RjtRQUM5RixjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFFL0MscUVBQXFFO1FBQ3JFLHdCQUFtQixHQUFpQixJQUFJLENBQUM7UUFFekMsaUdBQWlHO1FBQ3pGLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBRTNCOzs7V0FHRztRQUNILHlCQUFvQixHQUE2QyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBd0YvRSxDQUFDO0lBdEZHOzs7O09BSUc7SUFDSCxRQUFRLENBQUMsVUFBaUM7UUFDdEMsTUFBTSxrQkFBa0IsR0FBRyxVQUFVLENBQUMsZUFBZSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRXhGLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxVQUFpQztRQUN4QyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ2hEO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxRQUFRLENBQUMsZ0JBQXdCLG1CQUFtQixFQUFFLFFBQW1CO1FBQ3JFLGtFQUFrRTtRQUNsRSxnRUFBZ0U7UUFDaEUsSUFBSSxVQUFVLEdBQVEsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFbEMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXRCLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDM0IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FDNUIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQ3BDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQzlCLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1NBQ3JDO1FBRUQsbUZBQW1GO1FBQ25GLG1FQUFtRTtRQUNuRSxPQUFPLFVBQVUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUMzQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFFdEIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDckYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUN2QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO2FBQ25DO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsNEVBQTRFO0lBQzVFLG1CQUFtQixDQUFDLFVBQXNCO1FBQ3RDLE1BQU0sbUJBQW1CLEdBQTRCLEVBQUUsQ0FBQztRQUV4RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBMEIsRUFBRSxVQUFpQyxFQUFFLEVBQUU7WUFDaEcsSUFBSSxJQUFJLENBQUMseUJBQXlCLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFO2dCQUN4RCxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDeEM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sbUJBQW1CLENBQUM7SUFDL0IsQ0FBQztJQUVELCtFQUErRTtJQUMvRSx5QkFBeUIsQ0FBQyxVQUFpQyxFQUFFLFVBQXNCO1FBQy9FLElBQUksT0FBTyxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDdkMsSUFBSSxpQkFBaUIsR0FBRyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsYUFBYSxDQUFDO1FBRWpFLDRGQUE0RjtRQUM1RixnQ0FBZ0M7UUFDaEMsR0FBRztZQUNDLElBQUksT0FBTyxJQUFJLGlCQUFpQixFQUFFO2dCQUM5QixPQUFPLElBQUksQ0FBQzthQUNmO1NBQ0osUUFBUSxPQUFPLEdBQUcsT0FBTyxDQUFDLGFBQWEsRUFBRTtJQUM5QyxDQUFDO0lBRUQsK0RBQStEO0lBQy9ELE9BQU87UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7OztZQXRHSixVQUFVOztBQXlHWCxNQUFNLFVBQVUsa0NBQWtDLENBQUMsZ0JBQTJDO0lBQzFGLE9BQU8sZ0JBQWdCLElBQUksSUFBSSx5QkFBeUIsRUFBRSxDQUFDO0FBQy9ELENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRztJQUN0Qyw0RkFBNEY7SUFDNUYsT0FBTyxFQUFFLHlCQUF5QjtJQUNsQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxRQUFRLEVBQUUsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO0lBQ25FLFVBQVUsRUFBRSxrQ0FBa0M7Q0FDakQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIE5PVEU6IENvcGllZCBhbmQgYWRhcHRlZCB0byBpT25lSlMgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9tYXRlcmlhbDIvYmxvYi9tYXN0ZXIvc3JjL2xpYi9jb3JlIG9uIDE0LW1hcmNoLTIwMTcuXHJcbmltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IENvU2Nyb2xsYWJsZURpcmVjdGl2ZSB9IGZyb20gJy4vc2Nyb2xsYWJsZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBhdWRpdFRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG4vKiogVGltZSBpbiBtcyB0byB0aHJvdHRsZSB0aGUgc2Nyb2xsaW5nIGV2ZW50cyBieSBkZWZhdWx0LiAqL1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TQ1JPTExfVElNRSA9IDIwO1xyXG5cclxuLyoqXHJcbiAqIFNlcnZpY2UgY29udGFpbmVkIGFsbCByZWdpc3RlcmVkIFNjcm9sbGFibGUgcmVmZXJlbmNlcyBhbmQgZW1pdHMgYW4gZXZlbnQgd2hlbiBhbnkgb25lIG9mIHRoZVxyXG4gKiBTY3JvbGxhYmxlIHJlZmVyZW5jZXMgZW1pdCBhIHNjcm9sbGVkIGV2ZW50LlxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ29TY3JvbGxEaXNwYXRjaGVyU2VydmljZSB7XHJcbiAgICAvKiogU3ViamVjdCBmb3Igbm90aWZ5aW5nIHRoYXQgYSByZWdpc3RlcmVkIHNjcm9sbGFibGUgcmVmZXJlbmNlIGVsZW1lbnQgaGFzIGJlZW4gc2Nyb2xsZWQuICovXHJcbiAgICBfc2Nyb2xsZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIC8qKiBLZWVwcyB0cmFjayBvZiB0aGUgZ2xvYmFsIGBzY3JvbGxgIGFuZCBgcmVzaXplYCBzdWJzY3JpcHRpb25zLiAqL1xyXG4gICAgX2dsb2JhbFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgICAvKiogS2VlcHMgdHJhY2sgb2YgdGhlIGFtb3VudCBvZiBzdWJzY3JpcHRpb25zIHRvIGBzY3JvbGxlZGAuIFVzZWQgZm9yIGNsZWFuaW5nIHVwIGFmdGVyd2FyZHMuICovXHJcbiAgICBwcml2YXRlIF9zY3JvbGxlZENvdW50ID0gMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1hcCBvZiBhbGwgdGhlIHNjcm9sbGFibGUgcmVmZXJlbmNlcyB0aGF0IGFyZSByZWdpc3RlcmVkIHdpdGggdGhlIHNlcnZpY2UgYW5kIHRoZWlyXHJcbiAgICAgKiBzY3JvbGwgZXZlbnQgc3Vic2NyaXB0aW9ucy5cclxuICAgICAqL1xyXG4gICAgc2Nyb2xsYWJsZVJlZmVyZW5jZXM6IE1hcDxDb1Njcm9sbGFibGVEaXJlY3RpdmUsIFN1YnNjcmlwdGlvbj4gPSBuZXcgTWFwKCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZWdpc3RlcnMgYSBTY3JvbGxhYmxlIHdpdGggdGhlIHNlcnZpY2UgYW5kIGxpc3RlbnMgZm9yIGl0cyBzY3JvbGxlZCBldmVudHMuIFdoZW4gdGhlXHJcbiAgICAgKiBzY3JvbGxhYmxlIGlzIHNjcm9sbGVkLCB0aGUgc2VydmljZSBlbWl0cyB0aGUgZXZlbnQgaW4gaXRzIHNjcm9sbGVkIG9ic2VydmFibGUuXHJcbiAgICAgKiBAcGFyYW0gc2Nyb2xsYWJsZSBTY3JvbGxhYmxlIGluc3RhbmNlIHRvIGJlIHJlZ2lzdGVyZWQuXHJcbiAgICAgKi9cclxuICAgIHJlZ2lzdGVyKHNjcm9sbGFibGU6IENvU2Nyb2xsYWJsZURpcmVjdGl2ZSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHNjcm9sbFN1YnNjcmlwdGlvbiA9IHNjcm9sbGFibGUuZWxlbWVudFNjcm9sbGVkKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX25vdGlmeSgpKTtcclxuXHJcbiAgICAgICAgdGhpcy5zY3JvbGxhYmxlUmVmZXJlbmNlcy5zZXQoc2Nyb2xsYWJsZSwgc2Nyb2xsU3Vic2NyaXB0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlcmVnaXN0ZXJzIGEgU2Nyb2xsYWJsZSByZWZlcmVuY2UgYW5kIHVuc3Vic2NyaWJlcyBmcm9tIGl0cyBzY3JvbGwgZXZlbnQgb2JzZXJ2YWJsZS5cclxuICAgICAqIEBwYXJhbSBzY3JvbGxhYmxlIFNjcm9sbGFibGUgaW5zdGFuY2UgdG8gYmUgZGVyZWdpc3RlcmVkLlxyXG4gICAgICovXHJcbiAgICBkZXJlZ2lzdGVyKHNjcm9sbGFibGU6IENvU2Nyb2xsYWJsZURpcmVjdGl2ZSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnNjcm9sbGFibGVSZWZlcmVuY2VzLmhhcyhzY3JvbGxhYmxlKSkge1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbGFibGVSZWZlcmVuY2VzLmdldChzY3JvbGxhYmxlKS51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbGFibGVSZWZlcmVuY2VzLmRlbGV0ZShzY3JvbGxhYmxlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdWJzY3JpYmVzIHRvIGFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyBhbiBldmVudCB3aGVuZXZlciBhbnkgb2YgdGhlIHJlZ2lzdGVyZWQgU2Nyb2xsYWJsZVxyXG4gICAgICogcmVmZXJlbmNlcyAob3Igd2luZG93LCBkb2N1bWVudCwgb3IgYm9keSkgZmlyZSBhIHNjcm9sbGVkIGV2ZW50LiBDYW4gcHJvdmlkZSBhIHRpbWUgaW4gbXNcclxuICAgICAqIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IFwidGhyb3R0bGVcIiB0aW1lLlxyXG4gICAgICovXHJcbiAgICBzY3JvbGxlZChhdWRpdFRpbWVJbk1zOiBudW1iZXIgPSBERUZBVUxUX1NDUk9MTF9USU1FLCBjYWxsYmFjazogKCkgPT4gYW55KTogU3Vic2NyaXB0aW9uIHtcclxuICAgICAgICAvLyBJbiB0aGUgY2FzZSBvZiBhIDBtcyBkZWxheSwgdXNlIGFuIG9ic2VydmFibGUgd2l0aG91dCBhdWRpdFRpbWVcclxuICAgICAgICAvLyBzaW5jZSBpdCBkb2VzIGFkZCBhIHBlcmNlcHRpYmxlIGRlbGF5IGluIHByb2Nlc3Npbmcgb3ZlcmhlYWQuXHJcbiAgICAgICAgbGV0IG9ic2VydmFibGU6IGFueSA9IGF1ZGl0VGltZUluTXMgPiAwID9cclxuICAgICAgICAgICAgYXVkaXRUaW1lKGF1ZGl0VGltZUluTXMpIDpcclxuICAgICAgICAgICAgdGhpcy5fc2Nyb2xsZWQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX3Njcm9sbGVkQ291bnQrKztcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLl9nbG9iYWxTdWJzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5fZ2xvYmFsU3Vic2NyaXB0aW9uID0gbWVyZ2UoXHJcbiAgICAgICAgICAgICAgICBmcm9tRXZlbnQod2luZG93LmRvY3VtZW50LCAnc2Nyb2xsJyksXHJcbiAgICAgICAgICAgICAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJylcclxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fbm90aWZ5KCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gTm90ZSB0aGF0IHdlIG5lZWQgdG8gZG8gdGhlIHN1YnNjcmliaW5nIGZyb20gaGVyZSwgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byByZW1vdmVcclxuICAgICAgICAvLyB0aGUgZ2xvYmFsIGV2ZW50IGxpc3RlbmVycyBvbmNlIHRoZXJlIGFyZSBubyBtb3JlIHN1YnNjcmlwdGlvbnMuXHJcbiAgICAgICAgcmV0dXJuIG9ic2VydmFibGUuc3Vic2NyaWJlKGNhbGxiYWNrKS5hZGQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9zY3JvbGxlZENvdW50LS07XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5fZ2xvYmFsU3Vic2NyaXB0aW9uICYmICF0aGlzLnNjcm9sbGFibGVSZWZlcmVuY2VzLnNpemUgJiYgIXRoaXMuX3Njcm9sbGVkQ291bnQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2dsb2JhbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZ2xvYmFsU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBSZXR1cm5zIGFsbCByZWdpc3RlcmVkIFNjcm9sbGFibGVzIHRoYXQgY29udGFpbiB0aGUgcHJvdmlkZWQgZWxlbWVudC4gKi9cclxuICAgIGdldFNjcm9sbENvbnRhaW5lcnMoZWxlbWVudFJlZjogRWxlbWVudFJlZik6IENvU2Nyb2xsYWJsZURpcmVjdGl2ZVtdIHtcclxuICAgICAgICBjb25zdCBzY3JvbGxpbmdDb250YWluZXJzOiBDb1Njcm9sbGFibGVEaXJlY3RpdmVbXSA9IFtdO1xyXG5cclxuICAgICAgICB0aGlzLnNjcm9sbGFibGVSZWZlcmVuY2VzLmZvckVhY2goKHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uLCBzY3JvbGxhYmxlOiBDb1Njcm9sbGFibGVEaXJlY3RpdmUpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc2Nyb2xsYWJsZUNvbnRhaW5zRWxlbWVudChzY3JvbGxhYmxlLCBlbGVtZW50UmVmKSkge1xyXG4gICAgICAgICAgICAgICAgc2Nyb2xsaW5nQ29udGFpbmVycy5wdXNoKHNjcm9sbGFibGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBzY3JvbGxpbmdDb250YWluZXJzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIGVsZW1lbnQgaXMgY29udGFpbmVkIHdpdGhpbiB0aGUgcHJvdmlkZWQgU2Nyb2xsYWJsZS4gKi9cclxuICAgIHNjcm9sbGFibGVDb250YWluc0VsZW1lbnQoc2Nyb2xsYWJsZTogQ29TY3JvbGxhYmxlRGlyZWN0aXZlLCBlbGVtZW50UmVmOiBFbGVtZW50UmVmKTogYm9vbGVhbiB7XHJcbiAgICAgICAgbGV0IGVsZW1lbnQgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgbGV0IHNjcm9sbGFibGVFbGVtZW50ID0gc2Nyb2xsYWJsZS5nZXRFbGVtZW50UmVmKCkubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICAgICAgLy8gVHJhdmVyc2UgdGhyb3VnaCB0aGUgZWxlbWVudCBwYXJlbnRzIHVudGlsIHdlIHJlYWNoIG51bGwsIGNoZWNraW5nIGlmIGFueSBvZiB0aGUgZWxlbWVudHNcclxuICAgICAgICAvLyBhcmUgdGhlIHNjcm9sbGFibGUncyBlbGVtZW50LlxyXG4gICAgICAgIGRvIHtcclxuICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gc2Nyb2xsYWJsZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSB3aGlsZSAoZWxlbWVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFNlbmRzIGEgbm90aWZpY2F0aW9uIHRoYXQgYSBzY3JvbGwgZXZlbnQgaGFzIGJlZW4gZmlyZWQuICovXHJcbiAgICBfbm90aWZ5KCkge1xyXG4gICAgICAgIHRoaXMuX3Njcm9sbGVkLm5leHQoKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFNDUk9MTF9ESVNQQVRDSEVSX1BST1ZJREVSX0ZBQ1RPUlkocGFyZW50RGlzcGF0Y2hlcjogQ29TY3JvbGxEaXNwYXRjaGVyU2VydmljZSkge1xyXG4gICAgcmV0dXJuIHBhcmVudERpc3BhdGNoZXIgfHwgbmV3IENvU2Nyb2xsRGlzcGF0Y2hlclNlcnZpY2UoKTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFNDUk9MTF9ESVNQQVRDSEVSX1BST1ZJREVSID0ge1xyXG4gICAgLy8gSWYgdGhlcmUgaXMgYWxyZWFkeSBhIFNjcm9sbERpc3BhdGNoZXIgYXZhaWxhYmxlLCB1c2UgdGhhdC4gT3RoZXJ3aXNlLCBwcm92aWRlIGEgbmV3IG9uZS5cclxuICAgIHByb3ZpZGU6IENvU2Nyb2xsRGlzcGF0Y2hlclNlcnZpY2UsXHJcbiAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2tpcFNlbGYoKSwgQ29TY3JvbGxEaXNwYXRjaGVyU2VydmljZV1dLFxyXG4gICAgdXNlRmFjdG9yeTogU0NST0xMX0RJU1BBVENIRVJfUFJPVklERVJfRkFDVE9SWVxyXG59O1xyXG4iXX0=
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
// NOTE: Copied and adapted to TwoDSelector from iOneJS on 9-may-2018.
|
|
2
|
-
import { Directive, ElementRef } from '@angular/core';
|
|
3
|
-
import { CoScrollDispatcherService } from './scroll-dispatcher.service';
|
|
4
|
-
import { fromEvent } from 'rxjs';
|
|
5
|
-
/**
|
|
6
|
-
* Sends an event when the directive's element is scrolled. Registers itself with the
|
|
7
|
-
* ScrollDispatcher service to include itself as part of its collection of scrolling events that it
|
|
8
|
-
* can be listened to through the service.
|
|
9
|
-
*/
|
|
10
|
-
export class CoScrollableDirective {
|
|
11
|
-
constructor(_elementRef, _scroll) {
|
|
12
|
-
this._elementRef = _elementRef;
|
|
13
|
-
this._scroll = _scroll;
|
|
14
|
-
}
|
|
15
|
-
ngOnInit() {
|
|
16
|
-
this._scroll.register(this);
|
|
17
|
-
}
|
|
18
|
-
ngOnDestroy() {
|
|
19
|
-
this._scroll.deregister(this);
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Returns observable that emits when a scroll event is fired on the host element.
|
|
23
|
-
*/
|
|
24
|
-
elementScrolled() {
|
|
25
|
-
return fromEvent(this._elementRef.nativeElement, 'scroll');
|
|
26
|
-
}
|
|
27
|
-
getElementRef() {
|
|
28
|
-
return this._elementRef;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
CoScrollableDirective.decorators = [
|
|
32
|
-
{ type: Directive, args: [{
|
|
33
|
-
selector: '[cdk-scrollable]'
|
|
34
|
-
},] }
|
|
35
|
-
];
|
|
36
|
-
CoScrollableDirective.ctorParameters = () => [
|
|
37
|
-
{ type: ElementRef },
|
|
38
|
-
{ type: CoScrollDispatcherService }
|
|
39
|
-
];
|
|
1
|
+
// NOTE: Copied and adapted to TwoDSelector from iOneJS on 9-may-2018.
|
|
2
|
+
import { Directive, ElementRef } from '@angular/core';
|
|
3
|
+
import { CoScrollDispatcherService } from './scroll-dispatcher.service';
|
|
4
|
+
import { fromEvent } from 'rxjs';
|
|
5
|
+
/**
|
|
6
|
+
* Sends an event when the directive's element is scrolled. Registers itself with the
|
|
7
|
+
* ScrollDispatcher service to include itself as part of its collection of scrolling events that it
|
|
8
|
+
* can be listened to through the service.
|
|
9
|
+
*/
|
|
10
|
+
export class CoScrollableDirective {
|
|
11
|
+
constructor(_elementRef, _scroll) {
|
|
12
|
+
this._elementRef = _elementRef;
|
|
13
|
+
this._scroll = _scroll;
|
|
14
|
+
}
|
|
15
|
+
ngOnInit() {
|
|
16
|
+
this._scroll.register(this);
|
|
17
|
+
}
|
|
18
|
+
ngOnDestroy() {
|
|
19
|
+
this._scroll.deregister(this);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Returns observable that emits when a scroll event is fired on the host element.
|
|
23
|
+
*/
|
|
24
|
+
elementScrolled() {
|
|
25
|
+
return fromEvent(this._elementRef.nativeElement, 'scroll');
|
|
26
|
+
}
|
|
27
|
+
getElementRef() {
|
|
28
|
+
return this._elementRef;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
CoScrollableDirective.decorators = [
|
|
32
|
+
{ type: Directive, args: [{
|
|
33
|
+
selector: '[cdk-scrollable]'
|
|
34
|
+
},] }
|
|
35
|
+
];
|
|
36
|
+
CoScrollableDirective.ctorParameters = () => [
|
|
37
|
+
{ type: ElementRef },
|
|
38
|
+
{ type: CoScrollDispatcherService }
|
|
39
|
+
];
|
|
40
40
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2RpcmVjdGl2ZXMvcmlwcGxlL3Njcm9sbGFibGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNFQUFzRTtBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFekUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUU3Qzs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixZQUFvQixXQUF1QixFQUFVLE9BQWtDO1FBQW5FLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBMkI7SUFDdkYsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7T0FFRztJQUNILGVBQWU7UUFDWCxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsYUFBYTtRQUNULE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDOzs7WUF4QkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxrQkFBa0I7YUFDL0I7OztZQVptQixVQUFVO1lBRXJCLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIE5PVEU6IENvcGllZCBhbmQgYWRhcHRlZCB0byBUd29EU2VsZWN0b3IgZnJvbSBpT25lSlMgb24gOS1tYXktMjAxOC5cclxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQ29TY3JvbGxEaXNwYXRjaGVyU2VydmljZSB9IGZyb20gJy4vc2Nyb2xsLWRpc3BhdGNoZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IGZyb21FdmVudCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuLyoqXHJcbiAqIFNlbmRzIGFuIGV2ZW50IHdoZW4gdGhlIGRpcmVjdGl2ZSdzIGVsZW1lbnQgaXMgc2Nyb2xsZWQuIFJlZ2lzdGVycyBpdHNlbGYgd2l0aCB0aGVcclxuICogU2Nyb2xsRGlzcGF0Y2hlciBzZXJ2aWNlIHRvIGluY2x1ZGUgaXRzZWxmIGFzIHBhcnQgb2YgaXRzIGNvbGxlY3Rpb24gb2Ygc2Nyb2xsaW5nIGV2ZW50cyB0aGF0IGl0XHJcbiAqIGNhbiBiZSBsaXN0ZW5lZCB0byB0aHJvdWdoIHRoZSBzZXJ2aWNlLlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tjZGstc2Nyb2xsYWJsZV0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb1Njcm9sbGFibGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIF9zY3JvbGw6IENvU2Nyb2xsRGlzcGF0Y2hlclNlcnZpY2UpIHtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9zY3JvbGwucmVnaXN0ZXIodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc2Nyb2xsLmRlcmVnaXN0ZXIodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIG9ic2VydmFibGUgdGhhdCBlbWl0cyB3aGVuIGEgc2Nyb2xsIGV2ZW50IGlzIGZpcmVkIG9uIHRoZSBob3N0IGVsZW1lbnQuXHJcbiAgICAgKi9cclxuICAgIGVsZW1lbnRTY3JvbGxlZCgpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiBmcm9tRXZlbnQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnc2Nyb2xsJyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RWxlbWVudFJlZigpOiBFbGVtZW50UmVmIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZjtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
// NOTE: Copied and adapted to TwoDSelector from iOneJS on 9-may-2018.
|
|
2
|
-
import { Injectable, Optional, SkipSelf } from '@angular/core';
|
|
3
|
-
import { CoScrollDispatcherService } from "./scroll-dispatcher.service";
|
|
4
|
-
/**
|
|
5
|
-
* Simple utility for getting the bounds of the browser viewport.
|
|
6
|
-
* @docs-private
|
|
7
|
-
*/
|
|
8
|
-
export class CoViewportRulerService {
|
|
9
|
-
constructor(scrollDispatcher) {
|
|
10
|
-
// Initially cache the document rectangle.
|
|
11
|
-
this._cacheViewportGeometry();
|
|
12
|
-
// Subscribe to scroll and resize events and update the document rectangle on changes.
|
|
13
|
-
scrollDispatcher.scrolled(null, () => this._cacheViewportGeometry());
|
|
14
|
-
}
|
|
15
|
-
/** Gets a ClientRect for the viewport's bounds. */
|
|
16
|
-
getViewportRect(documentRect = this._documentRect) {
|
|
17
|
-
// Use the document element's bounding rect rather than the window scroll properties
|
|
18
|
-
// (e.g. pageYOffset, scrollY) due to in issue in Chrome and IE where window scroll
|
|
19
|
-
// properties and client coordinates (boundingClientRect, clientX/Y, etc.) are in different
|
|
20
|
-
// conceptual viewports. Under most circumstances these viewports are equivalent, but they
|
|
21
|
-
// can disagree when the page is pinch-zoomed (on devices that support touch).
|
|
22
|
-
// See https://bugs.chromium.org/p/chromium/issues/detail?id=489206#c4
|
|
23
|
-
// We use the documentElement instead of the body because, by default (without a css reset)
|
|
24
|
-
// browsers typically give the document body an 8px margin, which is not included in
|
|
25
|
-
// getBoundingClientRect().
|
|
26
|
-
const scrollPosition = this.getViewportScrollPosition(documentRect);
|
|
27
|
-
const height = window.innerHeight;
|
|
28
|
-
const width = window.innerWidth;
|
|
29
|
-
return {
|
|
30
|
-
top: scrollPosition.top,
|
|
31
|
-
left: scrollPosition.left,
|
|
32
|
-
bottom: scrollPosition.top + height,
|
|
33
|
-
right: scrollPosition.left + width,
|
|
34
|
-
height,
|
|
35
|
-
width,
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Gets the (top, left) scroll position of the viewport.
|
|
40
|
-
* @param documentRect
|
|
41
|
-
*/
|
|
42
|
-
getViewportScrollPosition(documentRect = this._documentRect) {
|
|
43
|
-
// The top-left-corner of the viewport is determined by the scroll position of the document
|
|
44
|
-
// body, normally just (scrollLeft, scrollTop). However, Chrome and Firefox disagree about
|
|
45
|
-
// whether `document.body` or `document.documentElement` is the scrolled element, so reading
|
|
46
|
-
// `scrollTop` and `scrollLeft` is inconsistent. However, using the bounding rect of
|
|
47
|
-
// `document.documentElement` works consistently, where the `top` and `left` values will
|
|
48
|
-
// equal negative the scroll position.
|
|
49
|
-
const top = -documentRect.top || document.body.scrollTop || window.scrollY || 0;
|
|
50
|
-
const left = -documentRect.left || document.body.scrollLeft || window.scrollX || 0;
|
|
51
|
-
return { top, left };
|
|
52
|
-
}
|
|
53
|
-
/** Caches the latest client rectangle of the document element. */
|
|
54
|
-
_cacheViewportGeometry() {
|
|
55
|
-
this._documentRect = document.documentElement.getBoundingClientRect();
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
CoViewportRulerService.decorators = [
|
|
59
|
-
{ type: Injectable }
|
|
60
|
-
];
|
|
61
|
-
CoViewportRulerService.ctorParameters = () => [
|
|
62
|
-
{ type: CoScrollDispatcherService }
|
|
63
|
-
];
|
|
64
|
-
export function VIEWPORT_RULER_PROVIDER_FACTORY(parentRuler, scrollDispatcher) {
|
|
65
|
-
return parentRuler || new CoViewportRulerService(scrollDispatcher);
|
|
66
|
-
}
|
|
67
|
-
export const VIEWPORT_RULER_PROVIDER = {
|
|
68
|
-
// If there is already a ViewportRuler available, use that. Otherwise, provide a new one.
|
|
69
|
-
provide: CoViewportRulerService,
|
|
70
|
-
deps: [[new Optional(), new SkipSelf(), CoViewportRulerService], CoScrollDispatcherService],
|
|
71
|
-
useFactory: VIEWPORT_RULER_PROVIDER_FACTORY
|
|
72
|
-
};
|
|
1
|
+
// NOTE: Copied and adapted to TwoDSelector from iOneJS on 9-may-2018.
|
|
2
|
+
import { Injectable, Optional, SkipSelf } from '@angular/core';
|
|
3
|
+
import { CoScrollDispatcherService } from "./scroll-dispatcher.service";
|
|
4
|
+
/**
|
|
5
|
+
* Simple utility for getting the bounds of the browser viewport.
|
|
6
|
+
* @docs-private
|
|
7
|
+
*/
|
|
8
|
+
export class CoViewportRulerService {
|
|
9
|
+
constructor(scrollDispatcher) {
|
|
10
|
+
// Initially cache the document rectangle.
|
|
11
|
+
this._cacheViewportGeometry();
|
|
12
|
+
// Subscribe to scroll and resize events and update the document rectangle on changes.
|
|
13
|
+
scrollDispatcher.scrolled(null, () => this._cacheViewportGeometry());
|
|
14
|
+
}
|
|
15
|
+
/** Gets a ClientRect for the viewport's bounds. */
|
|
16
|
+
getViewportRect(documentRect = this._documentRect) {
|
|
17
|
+
// Use the document element's bounding rect rather than the window scroll properties
|
|
18
|
+
// (e.g. pageYOffset, scrollY) due to in issue in Chrome and IE where window scroll
|
|
19
|
+
// properties and client coordinates (boundingClientRect, clientX/Y, etc.) are in different
|
|
20
|
+
// conceptual viewports. Under most circumstances these viewports are equivalent, but they
|
|
21
|
+
// can disagree when the page is pinch-zoomed (on devices that support touch).
|
|
22
|
+
// See https://bugs.chromium.org/p/chromium/issues/detail?id=489206#c4
|
|
23
|
+
// We use the documentElement instead of the body because, by default (without a css reset)
|
|
24
|
+
// browsers typically give the document body an 8px margin, which is not included in
|
|
25
|
+
// getBoundingClientRect().
|
|
26
|
+
const scrollPosition = this.getViewportScrollPosition(documentRect);
|
|
27
|
+
const height = window.innerHeight;
|
|
28
|
+
const width = window.innerWidth;
|
|
29
|
+
return {
|
|
30
|
+
top: scrollPosition.top,
|
|
31
|
+
left: scrollPosition.left,
|
|
32
|
+
bottom: scrollPosition.top + height,
|
|
33
|
+
right: scrollPosition.left + width,
|
|
34
|
+
height,
|
|
35
|
+
width,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Gets the (top, left) scroll position of the viewport.
|
|
40
|
+
* @param documentRect
|
|
41
|
+
*/
|
|
42
|
+
getViewportScrollPosition(documentRect = this._documentRect) {
|
|
43
|
+
// The top-left-corner of the viewport is determined by the scroll position of the document
|
|
44
|
+
// body, normally just (scrollLeft, scrollTop). However, Chrome and Firefox disagree about
|
|
45
|
+
// whether `document.body` or `document.documentElement` is the scrolled element, so reading
|
|
46
|
+
// `scrollTop` and `scrollLeft` is inconsistent. However, using the bounding rect of
|
|
47
|
+
// `document.documentElement` works consistently, where the `top` and `left` values will
|
|
48
|
+
// equal negative the scroll position.
|
|
49
|
+
const top = -documentRect.top || document.body.scrollTop || window.scrollY || 0;
|
|
50
|
+
const left = -documentRect.left || document.body.scrollLeft || window.scrollX || 0;
|
|
51
|
+
return { top, left };
|
|
52
|
+
}
|
|
53
|
+
/** Caches the latest client rectangle of the document element. */
|
|
54
|
+
_cacheViewportGeometry() {
|
|
55
|
+
this._documentRect = document.documentElement.getBoundingClientRect();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
CoViewportRulerService.decorators = [
|
|
59
|
+
{ type: Injectable }
|
|
60
|
+
];
|
|
61
|
+
CoViewportRulerService.ctorParameters = () => [
|
|
62
|
+
{ type: CoScrollDispatcherService }
|
|
63
|
+
];
|
|
64
|
+
export function VIEWPORT_RULER_PROVIDER_FACTORY(parentRuler, scrollDispatcher) {
|
|
65
|
+
return parentRuler || new CoViewportRulerService(scrollDispatcher);
|
|
66
|
+
}
|
|
67
|
+
export const VIEWPORT_RULER_PROVIDER = {
|
|
68
|
+
// If there is already a ViewportRuler available, use that. Otherwise, provide a new one.
|
|
69
|
+
provide: CoViewportRulerService,
|
|
70
|
+
deps: [[new Optional(), new SkipSelf(), CoViewportRulerService], CoScrollDispatcherService],
|
|
71
|
+
useFactory: VIEWPORT_RULER_PROVIDER_FACTORY
|
|
72
|
+
};
|
|
73
73
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQtcnVsZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvZGlyZWN0aXZlcy9yaXBwbGUvdmlld3BvcnQtcnVsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzRUFBc0U7QUFDdEUsT0FBTyxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRXRFOzs7R0FHRztBQUVILE1BQU0sT0FBTyxzQkFBc0I7SUFLL0IsWUFBWSxnQkFBMkM7UUFDbkQsMENBQTBDO1FBQzFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBRTlCLHNGQUFzRjtRQUN0RixnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELG1EQUFtRDtJQUNuRCxlQUFlLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhO1FBQzdDLG9GQUFvRjtRQUNwRixtRkFBbUY7UUFDbkYsMkZBQTJGO1FBQzNGLDBGQUEwRjtRQUMxRiw4RUFBOEU7UUFDOUUsc0VBQXNFO1FBQ3RFLDJGQUEyRjtRQUMzRixvRkFBb0Y7UUFDcEYsMkJBQTJCO1FBQzNCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwRSxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ2xDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFFaEMsT0FBTztZQUNILEdBQUcsRUFBRSxjQUFjLENBQUMsR0FBRztZQUN2QixJQUFJLEVBQUUsY0FBYyxDQUFDLElBQUk7WUFDekIsTUFBTSxFQUFFLGNBQWMsQ0FBQyxHQUFHLEdBQUcsTUFBTTtZQUNuQyxLQUFLLEVBQUUsY0FBYyxDQUFDLElBQUksR0FBRyxLQUFLO1lBQ2xDLE1BQU07WUFDTixLQUFLO1NBQ1IsQ0FBQztJQUNOLENBQUM7SUFHRDs7O09BR0c7SUFDSCx5QkFBeUIsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWE7UUFDdkQsMkZBQTJGO1FBQzNGLDBGQUEwRjtRQUMxRiw0RkFBNEY7UUFDNUYsb0ZBQW9GO1FBQ3BGLHdGQUF3RjtRQUN4RixzQ0FBc0M7UUFDdEMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDO1FBQ2hGLE1BQU0sSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQztRQUVuRixPQUFPLEVBQUMsR0FBRyxFQUFFLElBQUksRUFBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxrRUFBa0U7SUFDbEUsc0JBQXNCO1FBQ2xCLElBQUksQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQzFFLENBQUM7OztZQTVESixVQUFVOzs7WUFOSCx5QkFBeUI7O0FBc0VqQyxNQUFNLFVBQVUsK0JBQStCLENBQUMsV0FBbUMsRUFDL0UsZ0JBQTJDO0lBQzNDLE9BQU8sV0FBVyxJQUFJLElBQUksc0JBQXNCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUN2RSxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFDbkMseUZBQXlGO0lBQ3pGLE9BQU8sRUFBRSxzQkFBc0I7SUFDL0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsc0JBQXNCLENBQUMsRUFBRSx5QkFBeUIsQ0FBQztJQUMzRixVQUFVLEVBQUUsK0JBQStCO0NBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBOT1RFOiBDb3BpZWQgYW5kIGFkYXB0ZWQgdG8gVHdvRFNlbGVjdG9yIGZyb20gaU9uZUpTIG9uIDktbWF5LTIwMTguXHJcbmltcG9ydCB7SW5qZWN0YWJsZSwgT3B0aW9uYWwsIFNraXBTZWxmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7Q29TY3JvbGxEaXNwYXRjaGVyU2VydmljZX0gZnJvbSBcIi4vc2Nyb2xsLWRpc3BhdGNoZXIuc2VydmljZVwiO1xyXG5cclxuLyoqXHJcbiAqIFNpbXBsZSB1dGlsaXR5IGZvciBnZXR0aW5nIHRoZSBib3VuZHMgb2YgdGhlIGJyb3dzZXIgdmlld3BvcnQuXHJcbiAqIEBkb2NzLXByaXZhdGVcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENvVmlld3BvcnRSdWxlclNlcnZpY2Uge1xyXG5cclxuICAgIC8qKiBDYWNoZWQgZG9jdW1lbnQgY2xpZW50IHJlY3RhbmdsZS4gKi9cclxuICAgIHByaXZhdGUgX2RvY3VtZW50UmVjdD86IENsaWVudFJlY3Q7XHJcblxyXG4gICAgY29uc3RydWN0b3Ioc2Nyb2xsRGlzcGF0Y2hlcjogQ29TY3JvbGxEaXNwYXRjaGVyU2VydmljZSkge1xyXG4gICAgICAgIC8vIEluaXRpYWxseSBjYWNoZSB0aGUgZG9jdW1lbnQgcmVjdGFuZ2xlLlxyXG4gICAgICAgIHRoaXMuX2NhY2hlVmlld3BvcnRHZW9tZXRyeSgpO1xyXG5cclxuICAgICAgICAvLyBTdWJzY3JpYmUgdG8gc2Nyb2xsIGFuZCByZXNpemUgZXZlbnRzIGFuZCB1cGRhdGUgdGhlIGRvY3VtZW50IHJlY3RhbmdsZSBvbiBjaGFuZ2VzLlxyXG4gICAgICAgIHNjcm9sbERpc3BhdGNoZXIuc2Nyb2xsZWQobnVsbCwgKCkgPT4gdGhpcy5fY2FjaGVWaWV3cG9ydEdlb21ldHJ5KCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBHZXRzIGEgQ2xpZW50UmVjdCBmb3IgdGhlIHZpZXdwb3J0J3MgYm91bmRzLiAqL1xyXG4gICAgZ2V0Vmlld3BvcnRSZWN0KGRvY3VtZW50UmVjdCA9IHRoaXMuX2RvY3VtZW50UmVjdCk6IENsaWVudFJlY3Qge1xyXG4gICAgICAgIC8vIFVzZSB0aGUgZG9jdW1lbnQgZWxlbWVudCdzIGJvdW5kaW5nIHJlY3QgcmF0aGVyIHRoYW4gdGhlIHdpbmRvdyBzY3JvbGwgcHJvcGVydGllc1xyXG4gICAgICAgIC8vIChlLmcuIHBhZ2VZT2Zmc2V0LCBzY3JvbGxZKSBkdWUgdG8gaW4gaXNzdWUgaW4gQ2hyb21lIGFuZCBJRSB3aGVyZSB3aW5kb3cgc2Nyb2xsXHJcbiAgICAgICAgLy8gcHJvcGVydGllcyBhbmQgY2xpZW50IGNvb3JkaW5hdGVzIChib3VuZGluZ0NsaWVudFJlY3QsIGNsaWVudFgvWSwgZXRjLikgYXJlIGluIGRpZmZlcmVudFxyXG4gICAgICAgIC8vIGNvbmNlcHR1YWwgdmlld3BvcnRzLiBVbmRlciBtb3N0IGNpcmN1bXN0YW5jZXMgdGhlc2Ugdmlld3BvcnRzIGFyZSBlcXVpdmFsZW50LCBidXQgdGhleVxyXG4gICAgICAgIC8vIGNhbiBkaXNhZ3JlZSB3aGVuIHRoZSBwYWdlIGlzIHBpbmNoLXpvb21lZCAob24gZGV2aWNlcyB0aGF0IHN1cHBvcnQgdG91Y2gpLlxyXG4gICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD00ODkyMDYjYzRcclxuICAgICAgICAvLyBXZSB1c2UgdGhlIGRvY3VtZW50RWxlbWVudCBpbnN0ZWFkIG9mIHRoZSBib2R5IGJlY2F1c2UsIGJ5IGRlZmF1bHQgKHdpdGhvdXQgYSBjc3MgcmVzZXQpXHJcbiAgICAgICAgLy8gYnJvd3NlcnMgdHlwaWNhbGx5IGdpdmUgdGhlIGRvY3VtZW50IGJvZHkgYW4gOHB4IG1hcmdpbiwgd2hpY2ggaXMgbm90IGluY2x1ZGVkIGluXHJcbiAgICAgICAgLy8gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuXHJcbiAgICAgICAgY29uc3Qgc2Nyb2xsUG9zaXRpb24gPSB0aGlzLmdldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oZG9jdW1lbnRSZWN0KTtcclxuICAgICAgICBjb25zdCBoZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XHJcbiAgICAgICAgY29uc3Qgd2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgdG9wOiBzY3JvbGxQb3NpdGlvbi50b3AsXHJcbiAgICAgICAgICAgIGxlZnQ6IHNjcm9sbFBvc2l0aW9uLmxlZnQsXHJcbiAgICAgICAgICAgIGJvdHRvbTogc2Nyb2xsUG9zaXRpb24udG9wICsgaGVpZ2h0LFxyXG4gICAgICAgICAgICByaWdodDogc2Nyb2xsUG9zaXRpb24ubGVmdCArIHdpZHRoLFxyXG4gICAgICAgICAgICBoZWlnaHQsXHJcbiAgICAgICAgICAgIHdpZHRoLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgKHRvcCwgbGVmdCkgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSB2aWV3cG9ydC5cclxuICAgICAqIEBwYXJhbSBkb2N1bWVudFJlY3RcclxuICAgICAqL1xyXG4gICAgZ2V0Vmlld3BvcnRTY3JvbGxQb3NpdGlvbihkb2N1bWVudFJlY3QgPSB0aGlzLl9kb2N1bWVudFJlY3QpIHtcclxuICAgICAgICAvLyBUaGUgdG9wLWxlZnQtY29ybmVyIG9mIHRoZSB2aWV3cG9ydCBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBzY3JvbGwgcG9zaXRpb24gb2YgdGhlIGRvY3VtZW50XHJcbiAgICAgICAgLy8gYm9keSwgbm9ybWFsbHkganVzdCAoc2Nyb2xsTGVmdCwgc2Nyb2xsVG9wKS4gSG93ZXZlciwgQ2hyb21lIGFuZCBGaXJlZm94IGRpc2FncmVlIGFib3V0XHJcbiAgICAgICAgLy8gd2hldGhlciBgZG9jdW1lbnQuYm9keWAgb3IgYGRvY3VtZW50LmRvY3VtZW50RWxlbWVudGAgaXMgdGhlIHNjcm9sbGVkIGVsZW1lbnQsIHNvIHJlYWRpbmdcclxuICAgICAgICAvLyBgc2Nyb2xsVG9wYCBhbmQgYHNjcm9sbExlZnRgIGlzIGluY29uc2lzdGVudC4gSG93ZXZlciwgdXNpbmcgdGhlIGJvdW5kaW5nIHJlY3Qgb2ZcclxuICAgICAgICAvLyBgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50YCB3b3JrcyBjb25zaXN0ZW50bHksIHdoZXJlIHRoZSBgdG9wYCBhbmQgYGxlZnRgIHZhbHVlcyB3aWxsXHJcbiAgICAgICAgLy8gZXF1YWwgbmVnYXRpdmUgdGhlIHNjcm9sbCBwb3NpdGlvbi5cclxuICAgICAgICBjb25zdCB0b3AgPSAtZG9jdW1lbnRSZWN0LnRvcCB8fCBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCB8fCB3aW5kb3cuc2Nyb2xsWSB8fCAwO1xyXG4gICAgICAgIGNvbnN0IGxlZnQgPSAtZG9jdW1lbnRSZWN0LmxlZnQgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0IHx8IHdpbmRvdy5zY3JvbGxYIHx8IDA7XHJcblxyXG4gICAgICAgIHJldHVybiB7dG9wLCBsZWZ0fTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQ2FjaGVzIHRoZSBsYXRlc3QgY2xpZW50IHJlY3RhbmdsZSBvZiB0aGUgZG9jdW1lbnQgZWxlbWVudC4gKi9cclxuICAgIF9jYWNoZVZpZXdwb3J0R2VvbWV0cnkoKSB7XHJcbiAgICAgICAgdGhpcy5fZG9jdW1lbnRSZWN0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgfVxyXG5cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFZJRVdQT1JUX1JVTEVSX1BST1ZJREVSX0ZBQ1RPUlkocGFyZW50UnVsZXI6IENvVmlld3BvcnRSdWxlclNlcnZpY2UsXHJcbiAgICBzY3JvbGxEaXNwYXRjaGVyOiBDb1Njcm9sbERpc3BhdGNoZXJTZXJ2aWNlKSB7XHJcbiAgICByZXR1cm4gcGFyZW50UnVsZXIgfHwgbmV3IENvVmlld3BvcnRSdWxlclNlcnZpY2Uoc2Nyb2xsRGlzcGF0Y2hlcik7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBWSUVXUE9SVF9SVUxFUl9QUk9WSURFUiA9IHtcclxuICAgIC8vIElmIHRoZXJlIGlzIGFscmVhZHkgYSBWaWV3cG9ydFJ1bGVyIGF2YWlsYWJsZSwgdXNlIHRoYXQuIE90aGVyd2lzZSwgcHJvdmlkZSBhIG5ldyBvbmUuXHJcbiAgICBwcm92aWRlOiBDb1ZpZXdwb3J0UnVsZXJTZXJ2aWNlLFxyXG4gICAgZGVwczogW1tuZXcgT3B0aW9uYWwoKSwgbmV3IFNraXBTZWxmKCksIENvVmlld3BvcnRSdWxlclNlcnZpY2VdLCBDb1Njcm9sbERpc3BhdGNoZXJTZXJ2aWNlXSxcclxuICAgIHVzZUZhY3Rvcnk6IFZJRVdQT1JUX1JVTEVSX1BST1ZJREVSX0ZBQ1RPUllcclxufTsiXX0=
|