@colijnit/corecomponents_v12 254.1.9 → 255.1.1
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/.browserslistrc +17 -0
- package/.editorconfig +16 -0
- package/.idea/CoreComponents_v12.iml +12 -0
- package/.idea/jpa-buddy.xml +6 -0
- package/.idea/misc.xml +9 -0
- package/.idea/modules.xml +8 -0
- package/.idea/vcs.xml +6 -0
- package/CoreComponents_v12.iml +12 -0
- package/README.md +12 -9
- package/angular.json +146 -0
- package/dist/corecomponentstest/favicon.ico +0 -0
- package/dist/corecomponentstest/index.html +13 -0
- package/dist/corecomponentstest/main.js +24644 -0
- package/dist/corecomponentstest/main.js.map +1 -0
- package/dist/corecomponentstest/polyfills.js +2891 -0
- package/dist/corecomponentstest/polyfills.js.map +1 -0
- package/dist/corecomponentstest/runtime.js +161 -0
- package/dist/corecomponentstest/runtime.js.map +1 -0
- package/dist/corecomponentstest/styles.css +3075 -0
- package/dist/corecomponentstest/styles.css.map +1 -0
- package/dist/corecomponentstest/vendor.js +147126 -0
- package/dist/corecomponentstest/vendor.js.map +1 -0
- package/karma.conf.js +44 -0
- package/move-assets.js +14 -0
- package/package.json +44 -23
- package/projects/corecomponents/README.md +24 -0
- package/projects/corecomponents/karma.conf.js +44 -0
- package/projects/corecomponents/ng-package.json +10 -0
- package/projects/corecomponents/package-lock.json +13 -0
- package/projects/corecomponents/package.json +20 -0
- package/projects/corecomponents/src/lib/components/article-tile/article-tile.component.ts +96 -0
- package/projects/corecomponents/src/lib/components/article-tile/article-tile.module.ts +34 -0
- package/projects/corecomponents/src/lib/components/base/base-input.component.ts +988 -0
- package/projects/corecomponents/src/lib/components/base/base.module.ts +22 -0
- package/projects/corecomponents/src/lib/components/base/commit-buttons/commit-buttons.component.ts +120 -0
- package/projects/corecomponents/src/lib/components/base/commit-buttons/commit-buttons.module.ts +19 -0
- package/projects/corecomponents/src/lib/components/base/dialog-base.component.ts +8 -0
- package/projects/corecomponents/src/lib/components/base-input-date-picker/base-input-date-picker.directive.ts +32 -0
- package/projects/corecomponents/src/lib/components/base-input-time/base-input-time-directive.ts +31 -0
- package/projects/corecomponents/src/lib/components/button/button.component.ts +117 -0
- package/projects/corecomponents/src/lib/components/button/button.module.ts +18 -0
- package/projects/corecomponents/src/lib/components/calendar/calendar-template.component.ts +392 -0
- package/projects/corecomponents/src/lib/components/calendar/calendar.component.ts +54 -0
- package/projects/corecomponents/src/lib/components/calendar/calendar.module.ts +26 -0
- package/projects/corecomponents/src/lib/components/card/card.component.ts +94 -0
- package/projects/corecomponents/src/lib/components/card/card.module.ts +34 -0
- package/projects/corecomponents/src/lib/components/carousel/carousel.component.ts +128 -0
- package/projects/corecomponents/src/lib/components/carousel/carousel.module.ts +28 -0
- package/projects/corecomponents/src/lib/components/carousel-3d/carousel-3d.component.ts +392 -0
- package/projects/corecomponents/src/lib/components/carousel-3d/carousel-3d.module.ts +17 -0
- package/projects/corecomponents/src/lib/components/carousel-3d/carouselItem.ts +77 -0
- package/projects/corecomponents/src/lib/components/checkmark-overlay/checkmark-overlay.component.ts +99 -0
- package/projects/corecomponents/src/lib/components/checkmark-overlay/checkmark-overlay.module.ts +18 -0
- package/projects/corecomponents/src/lib/components/co-dialog/animation.ts +2 -0
- package/projects/corecomponents/src/lib/components/co-dialog/co-dialog.component.ts +130 -0
- package/projects/corecomponents/src/lib/components/co-dialog/co-dialog.module.ts +17 -0
- package/projects/corecomponents/src/lib/components/co-dialog-wizard/co-dialog-wizard.component.ts +50 -0
- package/projects/corecomponents/src/lib/components/co-dialog-wizard/co-dialog-wizard.module.ts +15 -0
- package/projects/corecomponents/src/lib/components/collapsible/collapsible.component.ts +114 -0
- package/projects/corecomponents/src/lib/components/collapsible/collapsible.module.ts +17 -0
- package/projects/corecomponents/src/lib/components/color-picker/color-picker.component.ts +40 -0
- package/projects/corecomponents/src/lib/components/color-picker/color-picker.module.ts +19 -0
- package/projects/corecomponents/src/lib/components/core-dialog/confirmation-dialog/confirmation-dialog.component.ts +86 -0
- package/projects/corecomponents/src/lib/components/core-dialog/core-dialog.module.ts +37 -0
- package/projects/corecomponents/src/lib/components/core-dialog/core-dialog.service.ts +61 -0
- package/projects/corecomponents/src/lib/components/core-dialog/core-dynamic-component.service.ts +101 -0
- package/projects/corecomponents/src/lib/components/double-calendar/double-calendar.component.ts +102 -0
- package/projects/corecomponents/src/lib/components/double-calendar/double-calendar.module.ts +23 -0
- package/projects/corecomponents/src/lib/components/filter-item/filter-item-viewmodel.ts +20 -0
- package/projects/corecomponents/src/lib/components/filter-item/filter-item.component.ts +715 -0
- package/projects/corecomponents/src/lib/components/filter-item/filter-item.module.ts +42 -0
- package/projects/corecomponents/src/lib/components/filter-item/filter-viewmodel.ts +11 -0
- package/projects/corecomponents/src/lib/components/form/form.component.ts +211 -0
- package/projects/corecomponents/src/lib/components/form/form.module.ts +22 -0
- package/projects/corecomponents/src/lib/components/grid-toolbar/grid-toolbar.component.ts +62 -0
- package/projects/corecomponents/src/lib/components/grid-toolbar/grid-toolbar.module.ts +21 -0
- package/projects/corecomponents/src/lib/components/grid-toolbar-button/grid-toolbar-button.component.ts +28 -0
- package/projects/corecomponents/src/lib/components/grid-toolbar-button/grid-toolbar-button.module.ts +17 -0
- package/projects/corecomponents/src/lib/components/icon/icon-cache.service.ts +57 -0
- package/projects/corecomponents/src/lib/components/icon/icon.component.ts +54 -0
- package/projects/corecomponents/src/lib/components/icon/icon.module.ts +24 -0
- package/projects/corecomponents/src/lib/components/icon-collapse-handle/icon-collapse-handle.component.ts +75 -0
- package/projects/corecomponents/src/lib/components/icon-collapse-handle/icon-collapse-handle.module.ts +21 -0
- package/projects/corecomponents/src/lib/components/image/image.component.ts +51 -0
- package/projects/corecomponents/src/lib/components/image/image.module.ts +12 -0
- package/projects/corecomponents/src/lib/components/input-checkbox/input-checkbox.component.ts +85 -0
- package/projects/corecomponents/src/lib/components/input-checkbox/input-checkbox.module.ts +17 -0
- package/projects/corecomponents/src/lib/components/input-date-picker/input-date-picker.component.ts +103 -0
- package/projects/corecomponents/src/lib/components/input-date-picker/input-date-picker.module.ts +24 -0
- package/projects/corecomponents/src/lib/components/input-date-range-picker/input-date-range-picker.component.ts +155 -0
- package/projects/corecomponents/src/lib/components/input-date-range-picker/input-date-range-picker.module.ts +25 -0
- package/projects/corecomponents/src/lib/components/input-number-picker/input-number-picker.component.ts +378 -0
- package/projects/corecomponents/src/lib/components/input-number-picker/input-number-picker.module.ts +20 -0
- package/projects/corecomponents/src/lib/components/input-radio-button/input-radio-button.component.ts +86 -0
- package/projects/corecomponents/src/lib/components/input-radio-button/input-radio-button.module.ts +17 -0
- package/projects/corecomponents/src/lib/components/input-scanner/bar-code-scanner.ts +25 -0
- package/projects/corecomponents/src/lib/components/input-scanner/input-scanner.component.ts +89 -0
- package/projects/corecomponents/src/lib/components/input-scanner/input-scanner.module.ts +19 -0
- package/projects/corecomponents/src/lib/components/input-scanner/scanner.service.ts +28 -0
- package/projects/corecomponents/src/lib/components/input-search/input-search.component.ts +90 -0
- package/projects/corecomponents/src/lib/components/input-search/input-search.module.ts +20 -0
- package/projects/corecomponents/src/lib/components/input-text/input-text.component.ts +307 -0
- package/projects/corecomponents/src/lib/components/input-text/input-text.module.ts +31 -0
- package/projects/corecomponents/src/lib/components/input-textarea/input-textarea.component.ts +81 -0
- package/projects/corecomponents/src/lib/components/input-textarea/input-textarea.module.ts +25 -0
- package/projects/corecomponents/src/lib/components/input-time/input-time.component.ts +72 -0
- package/projects/corecomponents/src/lib/components/input-time/input-time.module.ts +22 -0
- package/projects/corecomponents/src/lib/components/level-indicator/level-indicator-level.enum.ts +5 -0
- package/projects/corecomponents/src/lib/components/level-indicator/level-indicator.component.ts +42 -0
- package/projects/corecomponents/src/lib/components/level-indicator/level-indicator.module.ts +13 -0
- package/projects/corecomponents/src/lib/components/list-of-icons/list-of-icons.component.ts +68 -0
- package/projects/corecomponents/src/lib/components/list-of-icons/list-of-icons.module.ts +22 -0
- package/projects/corecomponents/src/lib/components/list-of-icons/style/_layout.scss +84 -0
- package/projects/corecomponents/src/lib/components/list-of-values/list-of-values-multiselect-popup.component.ts +132 -0
- package/projects/corecomponents/src/lib/components/list-of-values/list-of-values-popup.component.ts +291 -0
- package/projects/corecomponents/src/lib/components/list-of-values/list-of-values.component.ts +257 -0
- package/projects/corecomponents/src/lib/components/list-of-values/list-of-values.module.ts +35 -0
- package/projects/corecomponents/src/lib/components/loader/loader.component.ts +82 -0
- package/projects/corecomponents/src/lib/components/loader/loader.module.ts +17 -0
- package/projects/corecomponents/src/lib/components/pagination/paginate.pipe.ts +116 -0
- package/projects/corecomponents/src/lib/components/pagination/pagination-instance.ts +18 -0
- package/projects/corecomponents/src/lib/components/pagination/pagination.component.ts +160 -0
- package/projects/corecomponents/src/lib/components/pagination/pagination.module.ts +26 -0
- package/projects/corecomponents/src/lib/components/pagination/pagination.service.ts +99 -0
- package/projects/corecomponents/src/lib/components/pagination-bar/pagination-bar.component.ts +178 -0
- package/projects/corecomponents/src/lib/components/pagination-bar/pagination-bar.module.ts +17 -0
- package/projects/corecomponents/src/lib/components/popup/const/popup-window-token.ts +4 -0
- package/projects/corecomponents/src/lib/components/popup/interface/popup-button.ts +14 -0
- package/projects/corecomponents/src/lib/components/popup/interface/popup-close-event.ts +8 -0
- package/projects/corecomponents/src/lib/components/popup/interface/popup-settings.ts +70 -0
- package/projects/corecomponents/src/lib/components/popup/interface/popup.ts +17 -0
- package/projects/corecomponents/src/lib/components/popup/model/popup-button-globals.ts +11 -0
- package/projects/corecomponents/src/lib/components/popup/model/popup-window.ts +51 -0
- package/projects/corecomponents/src/lib/components/popup/popup-buttons.component.ts +61 -0
- package/projects/corecomponents/src/lib/components/popup/popup-message-display.component.ts +49 -0
- package/projects/corecomponents/src/lib/components/popup/popup-window-shell.component.ts +222 -0
- package/projects/corecomponents/src/lib/components/popup/popup.module.ts +48 -0
- package/projects/corecomponents/src/lib/components/popup/service/popup-shower.service.ts +98 -0
- package/projects/corecomponents/src/lib/components/popup/service/prompt.service.ts +127 -0
- package/projects/corecomponents/src/lib/components/popup/text-input-popup.component.ts +36 -0
- package/projects/corecomponents/src/lib/components/responsive-text/responsive-text.component.ts +24 -0
- package/projects/corecomponents/src/lib/components/responsive-text/responsive-text.module.ts +17 -0
- package/projects/corecomponents/src/lib/components/simple-grid/base-simple-grid.component.ts +196 -0
- package/projects/corecomponents/src/lib/components/simple-grid/simple-grid-cell.component.ts +192 -0
- package/projects/corecomponents/src/lib/components/simple-grid/simple-grid-column.directive.ts +146 -0
- package/projects/corecomponents/src/lib/components/simple-grid/simple-grid.component.ts +645 -0
- package/projects/corecomponents/src/lib/components/simple-grid/simple-grid.module.ts +42 -0
- package/projects/corecomponents/src/lib/components/tile/tile.component.ts +71 -0
- package/projects/corecomponents/src/lib/components/tile/tile.module.ts +21 -0
- package/projects/corecomponents/src/lib/components/tile-select/tile-select.component.ts +36 -0
- package/projects/corecomponents/src/lib/components/tile-select/tile-select.module.ts +19 -0
- package/projects/corecomponents/src/lib/components/tooltip/tooltip.component.ts +96 -0
- package/projects/corecomponents/src/lib/components/tooltip/tooltip.module.ts +17 -0
- package/projects/corecomponents/src/lib/components/validation-error/validation-error.component.ts +45 -0
- package/projects/corecomponents/src/lib/components/validation-error/validation-error.module.ts +24 -0
- package/projects/corecomponents/src/lib/components/view-mode-buttons/content-view-mode.enum.ts +9 -0
- package/projects/corecomponents/src/lib/components/view-mode-buttons/view-mode-buttons.component.ts +63 -0
- package/projects/corecomponents/src/lib/components/view-mode-buttons/view-mode-buttons.module.ts +19 -0
- package/projects/corecomponents/src/lib/core/abstract/collection-based-component.ts +488 -0
- package/projects/corecomponents/src/lib/core/config/device-environment.ts +26 -0
- package/projects/corecomponents/src/lib/core/constant/default-upper-bound-for-range-components.ts +4 -0
- package/projects/corecomponents/src/lib/core/constant/java-max-int.ts +1 -0
- package/projects/corecomponents/src/lib/core/constant/number-inputs-key-down-white-list.ts +46 -0
- package/projects/corecomponents/src/lib/core/decorator/input-boolean.decorator.ts +35 -0
- package/projects/corecomponents/src/lib/core/enum/co-direction.ts +7 -0
- package/projects/corecomponents/src/lib/core/enum/co-document-image-display-kind.enum.ts +5 -0
- package/projects/corecomponents/src/lib/core/enum/co-document-type.enum.ts +9 -0
- package/projects/corecomponents/src/lib/core/enum/co-orientation.ts +18 -0
- package/projects/corecomponents/src/lib/core/enum/collection-based-component-input-driver-prop.enum.ts +10 -0
- package/projects/corecomponents/src/lib/core/enum/color-sequence-name.enum.ts +5 -0
- package/projects/corecomponents/src/lib/core/enum/core-components-icon.enum.ts +299 -0
- package/projects/corecomponents/src/lib/core/enum/file-type-internal.enum.ts +15 -0
- package/projects/corecomponents/src/lib/core/enum/file-type.enum.ts +9 -0
- package/projects/corecomponents/src/lib/core/enum/filterItem-mode.enum.ts +57 -0
- package/projects/corecomponents/src/lib/core/enum/float-label-type.enum.ts +5 -0
- package/projects/corecomponents/src/lib/core/enum/input-number-picker-show-mode.enum.ts +6 -0
- package/projects/corecomponents/src/lib/core/enum/input-text-type.enum.ts +4 -0
- package/projects/corecomponents/src/lib/core/enum/keyboard-code.enum.ts +72 -0
- package/projects/corecomponents/src/lib/core/enum/keyboard-key.enum.ts +78 -0
- package/projects/corecomponents/src/lib/core/enum/logical-operator-type.enum.ts +5 -0
- package/projects/corecomponents/src/lib/core/enum/object-right-type.enum.ts +5 -0
- package/projects/corecomponents/src/lib/core/enum/popup-button-type.enum.ts +10 -0
- package/projects/corecomponents/src/lib/core/enum/popup-type.enum.ts +9 -0
- package/projects/corecomponents/src/lib/core/enum/schedule-view.enum.ts +14 -0
- package/projects/corecomponents/src/lib/core/enum/search-data-type.ts +4 -0
- package/projects/corecomponents/src/lib/core/enum/search-property-state.ts +5 -0
- package/projects/corecomponents/src/lib/core/enum/sort-data-type.ts +6 -0
- package/projects/corecomponents/src/lib/core/enum/sort-direction.ts +9 -0
- package/projects/corecomponents/src/lib/core/enum/table-name.enum.ts +79 -0
- package/projects/corecomponents/src/lib/core/enum/value-comparison-type.ts +11 -0
- package/projects/corecomponents/src/lib/core/function/any-nill.function.ts +6 -0
- package/projects/corecomponents/src/lib/core/function/is-nill.function.ts +4 -0
- package/projects/corecomponents/src/lib/core/function/none-nill.function.ts +16 -0
- package/projects/corecomponents/src/lib/core/function/not-nill.function.ts +4 -0
- package/projects/corecomponents/src/lib/core/interface/search-property.ts +15 -0
- package/projects/corecomponents/src/lib/core/interface/sort-property.ts +16 -0
- package/projects/corecomponents/src/lib/core/model/bounds-constrained-number-value.ts +222 -0
- package/projects/corecomponents/src/lib/core/model/check-precision-and-scale-result.ts +5 -0
- package/projects/corecomponents/src/lib/core/model/check-within-stepped-bounds-result.ts +8 -0
- package/projects/corecomponents/src/lib/core/model/co-document-right.bo.ts +9 -0
- package/projects/corecomponents/src/lib/core/model/co-document.bo.ts +193 -0
- package/projects/corecomponents/src/lib/core/model/color-sequence.ts +39 -0
- package/projects/corecomponents/src/lib/core/model/color.ts +29 -0
- package/projects/corecomponents/src/lib/core/model/core-components-icon-svg.ts +299 -0
- package/projects/corecomponents/src/lib/core/model/element-position.ts +14 -0
- package/projects/corecomponents/src/lib/core/model/event/number-prompt-result-event.ts +10 -0
- package/projects/corecomponents/src/lib/core/model/event/string-prompt-result-event.ts +10 -0
- package/projects/corecomponents/src/lib/core/model/numerical-range.ts +19 -0
- package/projects/corecomponents/src/lib/core/service/form-input-user-change-listener.service.ts +31 -0
- package/projects/corecomponents/src/lib/core/service/form-master.service.ts +119 -0
- package/projects/corecomponents/src/lib/core/service/ng-zone-wrapper.service.ts +15 -0
- package/projects/corecomponents/src/lib/core/utils/array-utils.spec.ts +588 -0
- package/projects/corecomponents/src/lib/core/utils/array-utils.ts +301 -0
- package/projects/corecomponents/src/lib/core/utils/browser-utils.ts +123 -0
- package/projects/corecomponents/src/lib/core/utils/business-object-utils.ts +42 -0
- package/projects/corecomponents/src/lib/core/utils/css-utils.ts +276 -0
- package/projects/corecomponents/src/lib/core/utils/direction-enum-utils.ts +15 -0
- package/projects/corecomponents/src/lib/core/utils/element-ref.utils.ts +12 -0
- package/projects/corecomponents/src/lib/core/utils/event-utils.ts +61 -0
- package/projects/corecomponents/src/lib/core/utils/file-utils.ts +291 -0
- package/projects/corecomponents/src/lib/core/utils/number-utils.spec.ts +657 -0
- package/projects/corecomponents/src/lib/core/utils/number-utils.ts +350 -0
- package/projects/corecomponents/src/lib/core/utils/object-utils.ts +205 -0
- package/projects/corecomponents/src/lib/core/utils/parameter-value-conversion-utils.ts +116 -0
- package/projects/corecomponents/src/lib/core/utils/search-utils.ts +121 -0
- package/projects/corecomponents/src/lib/core/utils/sort-utils.ts +108 -0
- package/projects/corecomponents/src/lib/core/utils/string-utils.ts +100 -0
- package/projects/corecomponents/src/lib/core/validator/email.validator.ts +10 -0
- package/projects/corecomponents/src/lib/core/validator/equal.validator.ts +14 -0
- package/projects/corecomponents/src/lib/core/validator/max-string-length.validator.ts +11 -0
- package/projects/corecomponents/src/lib/core/validator/password.validator.ts +35 -0
- package/projects/corecomponents/src/lib/core/validator/precision-scale.validator.ts +14 -0
- package/projects/corecomponents/src/lib/core/validator/required.validator.ts +9 -0
- package/projects/corecomponents/src/lib/directives/align-with/align-with.directive.ts +158 -0
- package/projects/corecomponents/src/lib/directives/align-with/align-with.module.ts +13 -0
- package/projects/corecomponents/src/lib/directives/clickoutside/click-outside-master.service.ts +64 -0
- package/projects/corecomponents/src/lib/directives/clickoutside/click-outside.directive.ts +72 -0
- package/projects/corecomponents/src/lib/directives/clickoutside/clickoutside.module.ts +17 -0
- package/projects/corecomponents/src/lib/directives/observe-visibility/observe-visibility.directive.ts +55 -0
- package/projects/corecomponents/src/lib/directives/observe-visibility/observe-visibility.module.ts +13 -0
- package/projects/corecomponents/src/lib/directives/overlay/overlay-parent.directive.ts +20 -0
- package/projects/corecomponents/src/lib/directives/overlay/overlay.directive.ts +170 -0
- package/projects/corecomponents/src/lib/directives/overlay/overlay.module.ts +16 -0
- package/projects/corecomponents/src/lib/directives/parsevalue/parse-value.directive.ts +42 -0
- package/projects/corecomponents/src/lib/directives/parsevalue/parse-value.module.ts +13 -0
- package/projects/corecomponents/src/lib/directives/resize/resize-detect.directive.ts +54 -0
- package/projects/corecomponents/src/lib/directives/resize/resize-detect.module.ts +13 -0
- package/projects/corecomponents/src/lib/directives/ripple/ripple-ref.ts +28 -0
- package/projects/corecomponents/src/lib/directives/ripple/ripple-renderer.ts +217 -0
- package/projects/corecomponents/src/lib/directives/ripple/ripple.directive.ts +116 -0
- package/projects/corecomponents/src/lib/directives/ripple/ripple.module.ts +24 -0
- package/projects/corecomponents/src/lib/directives/ripple/scroll-dispatcher.service.ts +129 -0
- package/projects/corecomponents/src/lib/directives/ripple/scrollable.directive.ts +37 -0
- package/projects/corecomponents/src/lib/directives/ripple/viewport-ruler.service.ts +84 -0
- package/projects/corecomponents/src/lib/directives/screen-configuration/screen-configuration.directive.ts +170 -0
- package/projects/corecomponents/src/lib/directives/screen-configuration/screen-configuration.module.ts +16 -0
- package/projects/corecomponents/src/lib/directives/stopclick/stop-click.directive.ts +35 -0
- package/projects/corecomponents/src/lib/directives/stopclick/stop-click.module.ts +14 -0
- package/projects/corecomponents/src/lib/directives/template-wrapper/template-wrapper.directive.ts +71 -0
- package/projects/corecomponents/src/lib/directives/template-wrapper/template-wrapper.module.ts +13 -0
- package/projects/corecomponents/src/lib/directives/tooltip/tooltip-directive.module.ts +17 -0
- package/projects/corecomponents/src/lib/directives/tooltip/tooltip.directive.ts +94 -0
- package/projects/corecomponents/src/lib/interfaces/dialog-response.interface.ts +7 -0
- package/projects/corecomponents/src/lib/interfaces/lov-options.component.interface.ts +4 -0
- package/projects/corecomponents/src/lib/interfaces/screen-config-adapter-component-interface-name.ts +6 -0
- package/projects/corecomponents/src/lib/interfaces/screen-config-adapter.component.interface.ts +10 -0
- package/projects/corecomponents/src/lib/model/data-item.ts +9 -0
- package/projects/corecomponents/src/lib/model/enum/app-button-type.enum.ts +9 -0
- package/projects/corecomponents/src/lib/model/enum/app-popup-type.enum.ts +6 -0
- package/projects/corecomponents/src/lib/model/enum/currency-code.enum.ts +7 -0
- package/projects/corecomponents/src/lib/model/enum/language-code.enum.ts +8 -0
- package/projects/corecomponents/src/lib/model/icon-list-item.ts +7 -0
- package/projects/corecomponents/src/lib/model/map/currencies.map.ts +6 -0
- package/projects/corecomponents/src/lib/modules/drag-drop/drag-drop-container.component.ts +115 -0
- package/projects/corecomponents/src/lib/modules/drag-drop/drag-drop-container.css +34 -0
- package/projects/corecomponents/src/lib/modules/drag-drop/drag-drop-manager.service.ts +414 -0
- package/projects/corecomponents/src/lib/modules/drag-drop/drag-drop.module.ts +20 -0
- package/projects/corecomponents/src/lib/modules/drag-drop/draggable.directive.ts +70 -0
- package/projects/corecomponents/src/lib/modules/drag-drop/model/co-drag-event.ts +5 -0
- package/projects/corecomponents/src/lib/modules/drag-drop/model/co-drop-event.ts +9 -0
- package/projects/corecomponents/src/lib/modules/drag-drop/model/drag-drop-container-element.ts +7 -0
- package/projects/corecomponents/src/lib/modules/drag-drop/model/drag-drop-container.ts +9 -0
- package/projects/corecomponents/src/lib/modules/media-monitor/flex-layout-breakpoint.enum.ts +5 -0
- package/projects/corecomponents/src/lib/modules/media-monitor/media-monitor.module.ts +14 -0
- package/projects/corecomponents/src/lib/modules/media-monitor/media-monitor.service.ts +36 -0
- package/projects/corecomponents/src/lib/modules/pagination/paginate.pipe.ts +116 -0
- package/projects/corecomponents/src/lib/modules/pagination/pagination-instance.ts +18 -0
- package/projects/corecomponents/src/lib/modules/pagination/pagination.component.ts +229 -0
- package/projects/corecomponents/src/lib/modules/pagination/pagination.module.ts +25 -0
- package/projects/corecomponents/src/lib/modules/pagination/pagination.service.ts +98 -0
- package/projects/corecomponents/src/lib/pipes/append.pipe.module.ts +13 -0
- package/projects/corecomponents/src/lib/pipes/append.pipe.ts +17 -0
- package/projects/corecomponents/src/lib/pipes/co-currency-pipe.module.ts +13 -0
- package/projects/corecomponents/src/lib/pipes/co-currency.pipe.ts +45 -0
- package/projects/corecomponents/src/lib/pipes/emun-keys.pipe.ts +20 -0
- package/projects/corecomponents/src/lib/pipes/enum-keys-pipe.module.ts +13 -0
- package/projects/corecomponents/src/lib/pipes/file-type-image-pipe.module.ts +13 -0
- package/projects/corecomponents/src/lib/pipes/file-type-image.pipe.ts +45 -0
- package/projects/corecomponents/src/lib/pipes/filter.pipe.module.ts +13 -0
- package/projects/corecomponents/src/lib/pipes/filter.pipe.ts +14 -0
- package/projects/corecomponents/src/lib/pipes/master-pipe.module.ts +13 -0
- package/projects/corecomponents/src/lib/pipes/master.pipe.ts +71 -0
- package/projects/corecomponents/src/lib/pipes/prepend.pipe.module.ts +13 -0
- package/projects/corecomponents/src/lib/pipes/prepend.pipe.ts +17 -0
- package/projects/corecomponents/src/lib/pipes/price-display-pipe.module.ts +14 -0
- package/projects/corecomponents/src/lib/pipes/price-display.pipe.ts +20 -0
- package/projects/corecomponents/src/lib/pipes/safe-style.pipe.module.ts +13 -0
- package/projects/corecomponents/src/lib/pipes/safe-style.pipe.ts +14 -0
- package/projects/corecomponents/src/lib/pipes/ucfirst-pipe.module.ts +13 -0
- package/projects/corecomponents/src/lib/pipes/ucfirst.pipe.ts +14 -0
- package/projects/corecomponents/src/lib/service/base-module-screen-config.service.ts +241 -0
- package/projects/corecomponents/src/lib/service/base-module.service.ts +50 -0
- package/projects/corecomponents/src/lib/service/color-sequence.service.ts +50 -0
- package/projects/corecomponents/src/lib/service/overlay.service.ts +81 -0
- package/projects/corecomponents/src/lib/translation/core-components-translation.module.ts +27 -0
- package/projects/corecomponents/src/lib/translation/core-components-translation.service.ts +15 -0
- package/projects/corecomponents/src/lib/translation/core-dictionary.service.ts +27 -0
- package/projects/corecomponents/src/lib/translation/core-localize.pipe.ts +21 -0
- package/projects/corecomponents/src/public-api.ts +139 -0
- package/projects/corecomponents/src/res/icons/Barcode.svg +1 -0
- package/projects/corecomponents/src/res/icons/CashRegister.svg +1 -0
- package/projects/corecomponents/src/res/icons/CirclePlusSkinny.svg +1 -0
- package/projects/corecomponents/src/res/icons/CrossSkinny.svg +1 -0
- package/projects/corecomponents/src/res/icons/FolderArrow.svg +1 -0
- package/projects/corecomponents/src/res/icons/Home.svg +1 -0
- package/projects/corecomponents/src/res/icons/POS.svg +1 -0
- package/projects/corecomponents/src/res/icons/Shop.svg +1 -0
- package/projects/corecomponents/src/res/icons/SinglePerson.svg +1 -0
- package/projects/corecomponents/src/res/icons/Star.svg +1 -0
- package/projects/corecomponents/src/res/icons/TrashBin.svg +1 -0
- package/projects/corecomponents/src/res/icons/account.svg +1 -0
- package/projects/corecomponents/src/res/icons/account_round_open.svg +1 -0
- package/projects/corecomponents/src/res/icons/activities.svg +1 -0
- package/projects/corecomponents/src/res/icons/add_to_cart_drop.svg +1 -0
- package/projects/corecomponents/src/res/icons/arrow_down.svg +1 -0
- package/projects/corecomponents/src/res/icons/arrow_fat_left.svg +1 -0
- package/projects/corecomponents/src/res/icons/arrow_fat_right.svg +1 -0
- package/projects/corecomponents/src/res/icons/arrow_left.svg +4 -0
- package/projects/corecomponents/src/res/icons/arrow_left_round_open.svg +1 -0
- package/projects/corecomponents/src/res/icons/arrow_point_down.svg +6 -0
- package/projects/corecomponents/src/res/icons/arrow_point_left.svg +8 -0
- package/projects/corecomponents/src/res/icons/arrow_point_right.svg +8 -0
- package/projects/corecomponents/src/res/icons/arrow_point_up.svg +8 -0
- package/projects/corecomponents/src/res/icons/arrow_right_round_open.svg +1 -0
- package/projects/corecomponents/src/res/icons/arrow_scroll_down.svg +6 -0
- package/projects/corecomponents/src/res/icons/arrow_scroll_left.svg +22 -0
- package/projects/corecomponents/src/res/icons/arrow_scroll_right.svg +22 -0
- package/projects/corecomponents/src/res/icons/arrow_scroll_up.svg +6 -0
- package/projects/corecomponents/src/res/icons/arrow_up.svg +3 -0
- package/projects/corecomponents/src/res/icons/article.svg +1 -0
- package/projects/corecomponents/src/res/icons/article_with_fold.svg +1 -0
- package/projects/corecomponents/src/res/icons/asterisk_small.svg +1 -0
- package/projects/corecomponents/src/res/icons/attachments.svg +1 -0
- package/projects/corecomponents/src/res/icons/back_to_top.svg +1 -0
- package/projects/corecomponents/src/res/icons/big_mac.svg +6 -0
- package/projects/corecomponents/src/res/icons/boxes.svg +1 -0
- package/projects/corecomponents/src/res/icons/brush.svg +1 -0
- package/projects/corecomponents/src/res/icons/brush_round_open.svg +1 -0
- package/projects/corecomponents/src/res/icons/building_columns.svg +1 -0
- package/projects/corecomponents/src/res/icons/businessrules.svg +1 -0
- package/projects/corecomponents/src/res/icons/calendar.svg +1 -0
- package/projects/corecomponents/src/res/icons/calendar_day.svg +37 -0
- package/projects/corecomponents/src/res/icons/calendar_day_regular.svg +1 -0
- package/projects/corecomponents/src/res/icons/calendar_empty.svg +16 -0
- package/projects/corecomponents/src/res/icons/calendar_range.svg +1 -0
- package/projects/corecomponents/src/res/icons/calendar_round_open.svg +16 -0
- package/projects/corecomponents/src/res/icons/camera.svg +1 -0
- package/projects/corecomponents/src/res/icons/cancel.svg +1 -0
- package/projects/corecomponents/src/res/icons/cancel_round_filled.svg +1 -0
- package/projects/corecomponents/src/res/icons/cancel_round_open.svg +1 -0
- package/projects/corecomponents/src/res/icons/cart.svg +1 -0
- package/projects/corecomponents/src/res/icons/cart_open.svg +8 -0
- package/projects/corecomponents/src/res/icons/case_manager.svg +1 -0
- package/projects/corecomponents/src/res/icons/cash_register_simple.svg +1 -0
- package/projects/corecomponents/src/res/icons/change_location.svg +1 -0
- package/projects/corecomponents/src/res/icons/check.svg +1 -0
- package/projects/corecomponents/src/res/icons/check_duotone.svg +1 -0
- package/projects/corecomponents/src/res/icons/check_round.svg +1 -0
- package/projects/corecomponents/src/res/icons/check_round_open.svg +10 -0
- package/projects/corecomponents/src/res/icons/check_simple.svg +3 -0
- package/projects/corecomponents/src/res/icons/check_thin.svg +1 -0
- package/projects/corecomponents/src/res/icons/chevron_down_regular.svg +1 -0
- package/projects/corecomponents/src/res/icons/chevron_up_regular.svg +1 -0
- package/projects/corecomponents/src/res/icons/client.svg +1 -0
- package/projects/corecomponents/src/res/icons/clock.svg +1 -0
- package/projects/corecomponents/src/res/icons/clockArrow.svg +1 -0
- package/projects/corecomponents/src/res/icons/cogWheelPlus.svg +1 -0
- package/projects/corecomponents/src/res/icons/cogWheels.svg +1 -0
- package/projects/corecomponents/src/res/icons/column_options.svg +18 -0
- package/projects/corecomponents/src/res/icons/company.svg +1 -0
- package/projects/corecomponents/src/res/icons/company_flat.svg +4 -0
- package/projects/corecomponents/src/res/icons/configurable.svg +1 -0
- package/projects/corecomponents/src/res/icons/consultant.svg +1 -0
- package/projects/corecomponents/src/res/icons/copy.svg +1 -0
- package/projects/corecomponents/src/res/icons/crosshair_1.svg +1 -0
- package/projects/corecomponents/src/res/icons/dashboard.svg +1 -0
- package/projects/corecomponents/src/res/icons/delivery_method.svg +32 -0
- package/projects/corecomponents/src/res/icons/delivery_status_uncheck.svg +9 -0
- package/projects/corecomponents/src/res/icons/delivery_truck.svg +1 -0
- package/projects/corecomponents/src/res/icons/detail_record.svg +1 -0
- package/projects/corecomponents/src/res/icons/detail_view.svg +1 -0
- package/projects/corecomponents/src/res/icons/dictionary.svg +1 -0
- package/projects/corecomponents/src/res/icons/documentWrench.svg +1 -0
- package/projects/corecomponents/src/res/icons/documents.svg +1 -0
- package/projects/corecomponents/src/res/icons/dollar.svg +1 -0
- package/projects/corecomponents/src/res/icons/download.svg +1 -0
- package/projects/corecomponents/src/res/icons/dropdown.svg +4 -0
- package/projects/corecomponents/src/res/icons/dropzone.svg +1 -0
- package/projects/corecomponents/src/res/icons/edit_pencil.svg +1 -0
- package/projects/corecomponents/src/res/icons/edit_pencil_circle.svg +1 -0
- package/projects/corecomponents/src/res/icons/edit_pencil_round.svg +11 -0
- package/projects/corecomponents/src/res/icons/edit_pencil_simple.svg +16 -0
- package/projects/corecomponents/src/res/icons/email.svg +1 -0
- package/projects/corecomponents/src/res/icons/email_round_open.svg +6 -0
- package/projects/corecomponents/src/res/icons/employee.svg +1 -0
- package/projects/corecomponents/src/res/icons/employee_two.svg +1 -0
- package/projects/corecomponents/src/res/icons/employer.svg +1 -0
- package/projects/corecomponents/src/res/icons/employment.svg +1 -0
- package/projects/corecomponents/src/res/icons/employment_end.svg +7 -0
- package/projects/corecomponents/src/res/icons/equal.svg +1 -0
- package/projects/corecomponents/src/res/icons/euro.svg +1 -0
- package/projects/corecomponents/src/res/icons/exclamation.svg +1 -0
- package/projects/corecomponents/src/res/icons/exclamation_round_open.svg +1 -0
- package/projects/corecomponents/src/res/icons/eye_circle.svg +1 -0
- package/projects/corecomponents/src/res/icons/eye_circle_large.svg +1 -0
- package/projects/corecomponents/src/res/icons/eye_round_filled.svg +11 -0
- package/projects/corecomponents/src/res/icons/factory.svg +1 -0
- package/projects/corecomponents/src/res/icons/fasttrack.svg +1 -0
- package/projects/corecomponents/src/res/icons/filter.svg +1 -0
- package/projects/corecomponents/src/res/icons/finish.svg +1 -0
- package/projects/corecomponents/src/res/icons/fixed_option_value_tree.svg +1 -0
- package/projects/corecomponents/src/res/icons/fixed_tree_option_value.svg +1 -0
- package/projects/corecomponents/src/res/icons/floppy_disk_solid.svg +1 -0
- package/projects/corecomponents/src/res/icons/folder_arrow_in.svg +8 -0
- package/projects/corecomponents/src/res/icons/formula.svg +1 -0
- package/projects/corecomponents/src/res/icons/fullscreen.svg +6 -0
- package/projects/corecomponents/src/res/icons/gear_double.svg +21 -0
- package/projects/corecomponents/src/res/icons/global_search.svg +45 -0
- package/projects/corecomponents/src/res/icons/globe.svg +1 -0
- package/projects/corecomponents/src/res/icons/greater_than.svg +1 -0
- package/projects/corecomponents/src/res/icons/groupby.svg +1 -0
- package/projects/corecomponents/src/res/icons/hamburger.svg +1 -0
- package/projects/corecomponents/src/res/icons/hand_pointer.svg +1 -0
- package/projects/corecomponents/src/res/icons/hbarchart.svg +6 -0
- package/projects/corecomponents/src/res/icons/home_circle.svg +9 -0
- package/projects/corecomponents/src/res/icons/home_open.svg +7 -0
- package/projects/corecomponents/src/res/icons/home_round_open.svg +11 -0
- package/projects/corecomponents/src/res/icons/hourglass.svg +1 -0
- package/projects/corecomponents/src/res/icons/icon_3d.svg +1 -0
- package/projects/corecomponents/src/res/icons/id.svg +1 -0
- package/projects/corecomponents/src/res/icons/image.svg +1 -0
- package/projects/corecomponents/src/res/icons/incoming_storage.svg +1 -0
- package/projects/corecomponents/src/res/icons/information.svg +1 -0
- package/projects/corecomponents/src/res/icons/information_round_open.svg +6 -0
- package/projects/corecomponents/src/res/icons/input_multiplechoice.svg +1 -0
- package/projects/corecomponents/src/res/icons/input_text.svg +1 -0
- package/projects/corecomponents/src/res/icons/input_textarea.svg +1 -0
- package/projects/corecomponents/src/res/icons/inventory.svg +1 -0
- package/projects/corecomponents/src/res/icons/invoice.svg +20 -0
- package/projects/corecomponents/src/res/icons/ione_logo.svg +1 -0
- package/projects/corecomponents/src/res/icons/ione_logo_fat.svg +1 -0
- package/projects/corecomponents/src/res/icons/ione_status_next.svg +43 -0
- package/projects/corecomponents/src/res/icons/ione_workflow.svg +62 -0
- package/projects/corecomponents/src/res/icons/keyboard.svg +1 -0
- package/projects/corecomponents/src/res/icons/keychain.svg +1 -0
- package/projects/corecomponents/src/res/icons/label.svg +5 -0
- package/projects/corecomponents/src/res/icons/label_round_open.svg +6 -0
- package/projects/corecomponents/src/res/icons/landmark_flag.svg +1 -0
- package/projects/corecomponents/src/res/icons/library.svg +21 -0
- package/projects/corecomponents/src/res/icons/linechart.svg +1 -0
- package/projects/corecomponents/src/res/icons/link_circle.svg +1 -0
- package/projects/corecomponents/src/res/icons/linked_products.svg +1 -0
- package/projects/corecomponents/src/res/icons/list_view.svg +8 -0
- package/projects/corecomponents/src/res/icons/location.svg +1 -0
- package/projects/corecomponents/src/res/icons/lock.svg +1 -0
- package/projects/corecomponents/src/res/icons/lock_round_open.svg +8 -0
- package/projects/corecomponents/src/res/icons/logo.svg +1 -0
- package/projects/corecomponents/src/res/icons/logout.svg +1 -0
- package/projects/corecomponents/src/res/icons/magic_wand.svg +1 -0
- package/projects/corecomponents/src/res/icons/magnifier.svg +5 -0
- package/projects/corecomponents/src/res/icons/manager.svg +12 -0
- package/projects/corecomponents/src/res/icons/mask.svg +1 -0
- package/projects/corecomponents/src/res/icons/master_detail.svg +1 -0
- package/projects/corecomponents/src/res/icons/material_circle_large.svg +1 -0
- package/projects/corecomponents/src/res/icons/medal_bronze.svg +23 -0
- package/projects/corecomponents/src/res/icons/medal_gold.svg +23 -0
- package/projects/corecomponents/src/res/icons/medal_silver.svg +23 -0
- package/projects/corecomponents/src/res/icons/medical_officer.svg +14 -0
- package/projects/corecomponents/src/res/icons/microphone.svg +1 -0
- package/projects/corecomponents/src/res/icons/minus_round_open.svg +1 -0
- package/projects/corecomponents/src/res/icons/minus_simple.svg +1 -0
- package/projects/corecomponents/src/res/icons/mobile.svg +1 -0
- package/projects/corecomponents/src/res/icons/multi_select_check.svg +10 -0
- package/projects/corecomponents/src/res/icons/new_task.svg +1 -0
- package/projects/corecomponents/src/res/icons/not_equal.svg +4 -0
- package/projects/corecomponents/src/res/icons/note.svg +1 -0
- package/projects/corecomponents/src/res/icons/note_bordered.svg +1 -0
- package/projects/corecomponents/src/res/icons/notification.svg +1 -0
- package/projects/corecomponents/src/res/icons/option.svg +1 -0
- package/projects/corecomponents/src/res/icons/optionset.svg +1 -0
- package/projects/corecomponents/src/res/icons/order.svg +1 -0
- package/projects/corecomponents/src/res/icons/orderpicking.svg +1 -0
- package/projects/corecomponents/src/res/icons/outgoing_storage.svg +1 -0
- package/projects/corecomponents/src/res/icons/over_booking.svg +1 -0
- package/projects/corecomponents/src/res/icons/pause_circle.svg +12 -0
- package/projects/corecomponents/src/res/icons/pen_to_square_solid.svg +1 -0
- package/projects/corecomponents/src/res/icons/pencil_round_open.svg +10 -0
- package/projects/corecomponents/src/res/icons/phone.svg +1 -0
- package/projects/corecomponents/src/res/icons/phone_round_open.svg +10 -0
- package/projects/corecomponents/src/res/icons/piechart.svg +24 -0
- package/projects/corecomponents/src/res/icons/pin.svg +9 -0
- package/projects/corecomponents/src/res/icons/pin_round_open.svg +11 -0
- package/projects/corecomponents/src/res/icons/play_circle.svg +1 -0
- package/projects/corecomponents/src/res/icons/plus_round.svg +9 -0
- package/projects/corecomponents/src/res/icons/plus_round_open.svg +1 -0
- package/projects/corecomponents/src/res/icons/plus_simple.svg +1 -0
- package/projects/corecomponents/src/res/icons/plus_skinny.svg +8 -0
- package/projects/corecomponents/src/res/icons/plus_solid.svg +1 -0
- package/projects/corecomponents/src/res/icons/plus_stars.svg +1 -0
- package/projects/corecomponents/src/res/icons/pointer.svg +7 -0
- package/projects/corecomponents/src/res/icons/pointer_3d.svg +8 -0
- package/projects/corecomponents/src/res/icons/pointer_filled.svg +6 -0
- package/projects/corecomponents/src/res/icons/positioning.svg +1 -0
- package/projects/corecomponents/src/res/icons/pregnancy.svg +18 -0
- package/projects/corecomponents/src/res/icons/preset.svg +1 -0
- package/projects/corecomponents/src/res/icons/print.svg +1 -0
- package/projects/corecomponents/src/res/icons/product_properties.svg +1 -0
- package/projects/corecomponents/src/res/icons/purchase.svg +15 -0
- package/projects/corecomponents/src/res/icons/qrcode.svg +59 -0
- package/projects/corecomponents/src/res/icons/question.svg +1 -0
- package/projects/corecomponents/src/res/icons/radio_uncheck.svg +1 -0
- package/projects/corecomponents/src/res/icons/range.svg +1 -0
- package/projects/corecomponents/src/res/icons/range_select.svg +1 -0
- package/projects/corecomponents/src/res/icons/rectangles.svg +15 -0
- package/projects/corecomponents/src/res/icons/refresh.svg +1 -0
- package/projects/corecomponents/src/res/icons/relations.svg +20 -0
- package/projects/corecomponents/src/res/icons/remark.svg +1 -0
- package/projects/corecomponents/src/res/icons/remark_round_open.svg +6 -0
- package/projects/corecomponents/src/res/icons/report_in_type.svg +1 -0
- package/projects/corecomponents/src/res/icons/resize.svg +3 -0
- package/projects/corecomponents/src/res/icons/resize_down.svg +1 -0
- package/projects/corecomponents/src/res/icons/resize_up.svg +1 -0
- package/projects/corecomponents/src/res/icons/return_goods.svg +4 -0
- package/projects/corecomponents/src/res/icons/returns.svg +1 -0
- package/projects/corecomponents/src/res/icons/rotate_left_solid.svg +1 -0
- package/projects/corecomponents/src/res/icons/save_disk.svg +15 -0
- package/projects/corecomponents/src/res/icons/save_skinny.svg +3 -0
- package/projects/corecomponents/src/res/icons/scale_balanced.svg +1 -0
- package/projects/corecomponents/src/res/icons/scanner.svg +1 -0
- package/projects/corecomponents/src/res/icons/search_round_open.svg +9 -0
- package/projects/corecomponents/src/res/icons/sections.svg +1 -0
- package/projects/corecomponents/src/res/icons/select_all_round.svg +5 -0
- package/projects/corecomponents/src/res/icons/services.svg +1 -0
- package/projects/corecomponents/src/res/icons/settings.svg +20 -0
- package/projects/corecomponents/src/res/icons/shopping_cart.svg +1 -0
- package/projects/corecomponents/src/res/icons/shopping_cart_nr.svg +1 -0
- package/projects/corecomponents/src/res/icons/shortcut.svg +1 -0
- package/projects/corecomponents/src/res/icons/skills.svg +1 -0
- package/projects/corecomponents/src/res/icons/slide_in.svg +1 -0
- package/projects/corecomponents/src/res/icons/slider_panel.svg +7 -0
- package/projects/corecomponents/src/res/icons/small_tiles.svg +1 -0
- package/projects/corecomponents/src/res/icons/smaller_than.svg +1 -0
- package/projects/corecomponents/src/res/icons/sort_asc.svg +1 -0
- package/projects/corecomponents/src/res/icons/sort_desc.svg +1 -0
- package/projects/corecomponents/src/res/icons/star_round_open.svg +6 -0
- package/projects/corecomponents/src/res/icons/status_active.svg +1 -0
- package/projects/corecomponents/src/res/icons/status_adoption.svg +1 -0
- package/projects/corecomponents/src/res/icons/status_fostercare.svg +1 -0
- package/projects/corecomponents/src/res/icons/status_ill.svg +10 -0
- package/projects/corecomponents/src/res/icons/status_leave.svg +1 -0
- package/projects/corecomponents/src/res/icons/status_pregnancy.svg +10 -0
- package/projects/corecomponents/src/res/icons/stock.svg +1 -0
- package/projects/corecomponents/src/res/icons/stock_management.svg +25 -0
- package/projects/corecomponents/src/res/icons/storage.svg +1 -0
- package/projects/corecomponents/src/res/icons/supervisor.svg +1 -0
- package/projects/corecomponents/src/res/icons/supplier.svg +18 -0
- package/projects/corecomponents/src/res/icons/surgery.svg +35 -0
- package/projects/corecomponents/src/res/icons/tablechart.svg +15 -0
- package/projects/corecomponents/src/res/icons/tag.svg +1 -0
- package/projects/corecomponents/src/res/icons/talk_too_much.svg +7 -0
- package/projects/corecomponents/src/res/icons/target.svg +1 -0
- package/projects/corecomponents/src/res/icons/task.svg +1 -0
- package/projects/corecomponents/src/res/icons/thick_lines.svg +1 -0
- package/projects/corecomponents/src/res/icons/thin_lines.svg +1 -0
- package/projects/corecomponents/src/res/icons/three_sixty_view.svg +1 -0
- package/projects/corecomponents/src/res/icons/thumb_bronze.svg +29 -0
- package/projects/corecomponents/src/res/icons/thumb_gold.svg +29 -0
- package/projects/corecomponents/src/res/icons/thumb_silver.svg +29 -0
- package/projects/corecomponents/src/res/icons/timeline.svg +1 -0
- package/projects/corecomponents/src/res/icons/transaction_detail.svg +19 -0
- package/projects/corecomponents/src/res/icons/transactions.svg +12 -0
- package/projects/corecomponents/src/res/icons/trash_can_solid.svg +1 -0
- package/projects/corecomponents/src/res/icons/triangle_down.svg +1 -0
- package/projects/corecomponents/src/res/icons/triangle_large.svg +5 -0
- package/projects/corecomponents/src/res/icons/triangle_left.svg +1 -0
- package/projects/corecomponents/src/res/icons/triangle_right.svg +1 -0
- package/projects/corecomponents/src/res/icons/triangle_up.svg +1 -0
- package/projects/corecomponents/src/res/icons/truck.svg +1 -0
- package/projects/corecomponents/src/res/icons/truck_calendar.svg +15 -0
- package/projects/corecomponents/src/res/icons/undo_round_open.svg +1 -0
- package/projects/corecomponents/src/res/icons/user.svg +9 -0
- package/projects/corecomponents/src/res/icons/variants.svg +1 -0
- package/projects/corecomponents/src/res/icons/vbarchart.svg +6 -0
- package/projects/corecomponents/src/res/icons/view.svg +1 -0
- package/projects/corecomponents/src/res/icons/warehouse.svg +1 -0
- package/projects/corecomponents/src/res/icons/watermark.svg +10 -0
- package/projects/corecomponents/src/res/icons/website.svg +1 -0
- package/projects/corecomponents/src/res/icons/wizard.svg +18 -0
- package/projects/corecomponents/src/res/icons/wms.svg +24 -0
- package/projects/corecomponents/src/res/icons/work_in_progress.svg +10 -0
- package/projects/corecomponents/src/res/icons/work_in_progress_round_open.svg +9 -0
- package/projects/corecomponents/src/res/icons/wrench.svg +4 -0
- package/projects/corecomponents/src/res/icons/x_axis.svg +5 -0
- package/projects/corecomponents/src/res/icons/y_axis.svg +5 -0
- package/projects/corecomponents/src/test.ts +28 -0
- package/projects/corecomponents/tsconfig.lib.json +20 -0
- package/projects/corecomponents/tsconfig.lib.prod.json +16 -0
- package/projects/corecomponents/tsconfig.spec.json +17 -0
- package/scripts/export.bat +9 -0
- package/scripts/merge-icons.js +39 -0
- package/scripts/publish.bat +6 -0
- package/src/app/app.component.scss +36 -0
- package/src/app/app.component.spec.ts +31 -0
- package/src/app/app.component.ts +559 -0
- package/src/app/app.module.ts +146 -0
- package/src/app/components/button-showcase.component.ts +82 -0
- package/src/app/components/carousel-3d-showcase.component.ts +70 -0
- package/src/app/components/checkbox-showcase.component.ts +56 -0
- package/src/app/components/co-dialog-showcase.component.ts +189 -0
- package/src/app/components/co-simple-grid-test.component.ts +146 -0
- package/src/app/components/filter-item-showcase.component.ts +178 -0
- package/src/app/components/forms-showcase.component.ts +728 -0
- package/src/app/components/icon-showcase.component.ts +72 -0
- package/src/app/components/input-checkbox-showcase.component.ts +87 -0
- package/src/app/components/input-date-picker-showcase.component.ts +90 -0
- package/src/app/components/input-number-picker-showcase.component.ts +125 -0
- package/src/app/components/input-radio-button-showcase.component.ts +87 -0
- package/src/app/components/input-scanner-showcase.component.ts +35 -0
- package/src/app/components/input-text-showcase.component.ts +217 -0
- package/src/app/components/input-time-showcase.component.ts +104 -0
- package/src/app/components/number-picker-showcase.component.ts +17 -0
- package/src/app/components/simple-grid-showcase.component.ts +60 -0
- package/src/app/model/data-item.ts +9 -0
- package/src/app/model/enum/currency-code.enum.ts +7 -0
- package/src/app/model/enum/language-code.enum.ts +8 -0
- package/src/app/model/map/currencies.map.ts +6 -0
- package/src/app/service/showcase-data.service.ts +1110 -0
- package/src/assets/.gitkeep +0 -0
- package/src/environments/environment.prod.ts +3 -0
- package/src/environments/environment.ts +16 -0
- package/src/favicon.ico +0 -0
- package/src/index.html +13 -0
- package/src/main.ts +12 -0
- package/src/polyfills.ts +65 -0
- package/src/styles.scss +57 -0
- package/src/test.ts +27 -0
- package/tsconfig.app.json +15 -0
- package/tsconfig.json +37 -0
- package/tsconfig.spec.json +18 -0
- package/bundles/colijnit-corecomponents_v12.umd.js +0 -14264
- package/bundles/colijnit-corecomponents_v12.umd.js.map +0 -1
- package/colijnit-corecomponents_v12.d.ts +0 -43
- package/colijnit-corecomponents_v12.metadata.json +0 -1
- package/esm2015/colijnit-corecomponents_v12.js +0 -44
- package/esm2015/lib/components/article-tile/article-tile.component.js +0 -81
- package/esm2015/lib/components/article-tile/article-tile.module.js +0 -35
- package/esm2015/lib/components/base/base-input.component.js +0 -834
- package/esm2015/lib/components/base/base.module.js +0 -22
- package/esm2015/lib/components/base/commit-buttons/commit-buttons.component.js +0 -103
- package/esm2015/lib/components/base/commit-buttons/commit-buttons.module.js +0 -21
- package/esm2015/lib/components/base/dialog-base.component.js +0 -6
- package/esm2015/lib/components/base-input-date-picker/base-input-date-picker.directive.js +0 -25
- package/esm2015/lib/components/button/button.component.js +0 -79
- package/esm2015/lib/components/button/button.module.js +0 -19
- package/esm2015/lib/components/calendar/calendar-template.component.js +0 -342
- package/esm2015/lib/components/calendar/calendar.component.js +0 -45
- package/esm2015/lib/components/calendar/calendar.module.js +0 -28
- package/esm2015/lib/components/card/card.component.js +0 -72
- package/esm2015/lib/components/card/card.module.js +0 -35
- package/esm2015/lib/components/carousel/carousel.component.js +0 -130
- package/esm2015/lib/components/carousel/carousel.module.js +0 -32
- package/esm2015/lib/components/carousel-3d/carousel-3d.component.js +0 -315
- package/esm2015/lib/components/carousel-3d/carousel-3d.module.js +0 -19
- package/esm2015/lib/components/carousel-3d/carouselItem.js +0 -54
- package/esm2015/lib/components/checkmark-overlay/checkmark-overlay.component.js +0 -87
- package/esm2015/lib/components/checkmark-overlay/checkmark-overlay.module.js +0 -19
- package/esm2015/lib/components/co-dialog/co-dialog.component.js +0 -113
- package/esm2015/lib/components/co-dialog/co-dialog.module.js +0 -19
- package/esm2015/lib/components/co-dialog-wizard/co-dialog-wizard.component.js +0 -51
- package/esm2015/lib/components/co-dialog-wizard/co-dialog-wizard.module.js +0 -17
- package/esm2015/lib/components/collapsible/collapsible.component.js +0 -92
- package/esm2015/lib/components/collapsible/collapsible.module.js +0 -19
- package/esm2015/lib/components/color-picker/color-picker.component.js +0 -41
- package/esm2015/lib/components/color-picker/color-picker.module.js +0 -21
- package/esm2015/lib/components/core-dialog/confirmation-dialog/confirmation-dialog.component.js +0 -79
- package/esm2015/lib/components/core-dialog/core-dialog.module.js +0 -39
- package/esm2015/lib/components/core-dialog/core-dialog.service.js +0 -67
- package/esm2015/lib/components/core-dialog/core-dynamic-component.service.js +0 -93
- package/esm2015/lib/components/double-calendar/double-calendar.component.js +0 -80
- package/esm2015/lib/components/double-calendar/double-calendar.module.js +0 -25
- package/esm2015/lib/components/filter-item/filter-item-viewmodel.js +0 -13
- package/esm2015/lib/components/filter-item/filter-item.component.js +0 -646
- package/esm2015/lib/components/filter-item/filter-item.module.js +0 -43
- package/esm2015/lib/components/filter-item/filter-viewmodel.js +0 -11
- package/esm2015/lib/components/form/form.component.js +0 -184
- package/esm2015/lib/components/form/form.module.js +0 -23
- package/esm2015/lib/components/grid-toolbar/grid-toolbar.component.js +0 -57
- package/esm2015/lib/components/grid-toolbar/grid-toolbar.module.js +0 -23
- package/esm2015/lib/components/grid-toolbar-button/grid-toolbar-button.component.js +0 -28
- package/esm2015/lib/components/grid-toolbar-button/grid-toolbar-button.module.js +0 -19
- package/esm2015/lib/components/icon/icon-cache.service.js +0 -52
- package/esm2015/lib/components/icon/icon.component.js +0 -48
- package/esm2015/lib/components/icon/icon.module.js +0 -25
- package/esm2015/lib/components/icon-collapse-handle/icon-collapse-handle.component.js +0 -64
- package/esm2015/lib/components/icon-collapse-handle/icon-collapse-handle.module.js +0 -23
- package/esm2015/lib/components/image/image.component.js +0 -42
- package/esm2015/lib/components/image/image.module.js +0 -14
- package/esm2015/lib/components/input-checkbox/input-checkbox.component.js +0 -79
- package/esm2015/lib/components/input-checkbox/input-checkbox.module.js +0 -19
- package/esm2015/lib/components/input-date-picker/input-date-picker.component.js +0 -91
- package/esm2015/lib/components/input-date-picker/input-date-picker.module.js +0 -26
- package/esm2015/lib/components/input-date-range-picker/input-date-range-picker.component.js +0 -134
- package/esm2015/lib/components/input-date-range-picker/input-date-range-picker.module.js +0 -27
- package/esm2015/lib/components/input-number-picker/input-number-picker.component.js +0 -314
- package/esm2015/lib/components/input-number-picker/input-number-picker.module.js +0 -23
- package/esm2015/lib/components/input-radio-button/input-radio-button.component.js +0 -84
- package/esm2015/lib/components/input-radio-button/input-radio-button.module.js +0 -19
- package/esm2015/lib/components/input-scanner/bar-code-scanner.js +0 -23
- package/esm2015/lib/components/input-scanner/input-scanner.component.js +0 -72
- package/esm2015/lib/components/input-scanner/input-scanner.module.js +0 -21
- package/esm2015/lib/components/input-scanner/scanner.service.js +0 -28
- package/esm2015/lib/components/input-search/input-search.component.js +0 -83
- package/esm2015/lib/components/input-search/input-search.module.js +0 -21
- package/esm2015/lib/components/input-text/input-text.component.js +0 -246
- package/esm2015/lib/components/input-text/input-text.module.js +0 -33
- package/esm2015/lib/components/input-textarea/input-textarea.component.js +0 -78
- package/esm2015/lib/components/input-textarea/input-textarea.module.js +0 -27
- package/esm2015/lib/components/level-indicator/level-indicator-level.enum.js +0 -7
- package/esm2015/lib/components/level-indicator/level-indicator.component.js +0 -36
- package/esm2015/lib/components/level-indicator/level-indicator.module.js +0 -15
- package/esm2015/lib/components/list-of-icons/list-of-icons.component.js +0 -59
- package/esm2015/lib/components/list-of-icons/list-of-icons.module.js +0 -25
- package/esm2015/lib/components/list-of-values/list-of-values-multiselect-popup.component.js +0 -112
- package/esm2015/lib/components/list-of-values/list-of-values-popup.component.js +0 -251
- package/esm2015/lib/components/list-of-values/list-of-values.component.js +0 -233
- package/esm2015/lib/components/list-of-values/list-of-values.module.js +0 -38
- package/esm2015/lib/components/loader/loader.component.js +0 -84
- package/esm2015/lib/components/loader/loader.module.js +0 -19
- package/esm2015/lib/components/pagination/paginate.pipe.js +0 -99
- package/esm2015/lib/components/pagination/pagination-instance.js +0 -2
- package/esm2015/lib/components/pagination/pagination.component.js +0 -126
- package/esm2015/lib/components/pagination/pagination.module.js +0 -28
- package/esm2015/lib/components/pagination/pagination.service.js +0 -88
- package/esm2015/lib/components/pagination-bar/pagination-bar.component.js +0 -151
- package/esm2015/lib/components/pagination-bar/pagination-bar.module.js +0 -19
- package/esm2015/lib/components/popup/const/popup-window-token.js +0 -3
- package/esm2015/lib/components/popup/interface/popup-button.js +0 -8
- package/esm2015/lib/components/popup/interface/popup-close-event.js +0 -2
- package/esm2015/lib/components/popup/interface/popup-settings.js +0 -42
- package/esm2015/lib/components/popup/interface/popup.js +0 -2
- package/esm2015/lib/components/popup/model/popup-button-globals.js +0 -11
- package/esm2015/lib/components/popup/model/popup-window.js +0 -38
- package/esm2015/lib/components/popup/popup-buttons.component.js +0 -53
- package/esm2015/lib/components/popup/popup-message-display.component.js +0 -47
- package/esm2015/lib/components/popup/popup-window-shell.component.js +0 -159
- package/esm2015/lib/components/popup/popup.module.js +0 -49
- package/esm2015/lib/components/popup/service/popup-shower.service.js +0 -90
- package/esm2015/lib/components/popup/service/prompt.service.js +0 -127
- package/esm2015/lib/components/popup/text-input-popup.component.js +0 -36
- package/esm2015/lib/components/responsive-text/responsive-text.component.js +0 -24
- package/esm2015/lib/components/responsive-text/responsive-text.module.js +0 -19
- package/esm2015/lib/components/simple-grid/base-simple-grid.component.js +0 -166
- package/esm2015/lib/components/simple-grid/simple-grid-cell.component.js +0 -172
- package/esm2015/lib/components/simple-grid/simple-grid-column.directive.js +0 -113
- package/esm2015/lib/components/simple-grid/simple-grid.component.js +0 -612
- package/esm2015/lib/components/simple-grid/simple-grid.module.js +0 -45
- package/esm2015/lib/components/tile/tile.component.js +0 -73
- package/esm2015/lib/components/tile/tile.module.js +0 -23
- package/esm2015/lib/components/tile-select/tile-select.component.js +0 -36
- package/esm2015/lib/components/tile-select/tile-select.module.js +0 -21
- package/esm2015/lib/components/tooltip/tooltip.component.js +0 -77
- package/esm2015/lib/components/tooltip/tooltip.module.js +0 -19
- package/esm2015/lib/components/validation-error/validation-error.component.js +0 -38
- package/esm2015/lib/components/validation-error/validation-error.module.js +0 -25
- package/esm2015/lib/components/view-mode-buttons/content-view-mode.enum.js +0 -11
- package/esm2015/lib/components/view-mode-buttons/view-mode-buttons.component.js +0 -61
- package/esm2015/lib/components/view-mode-buttons/view-mode-buttons.module.js +0 -21
- package/esm2015/lib/core/constant/default-upper-bound-for-range-components.js +0 -4
- package/esm2015/lib/core/constant/java-max-int.js +0 -2
- package/esm2015/lib/core/constant/number-inputs-key-down-white-list.js +0 -45
- package/esm2015/lib/core/decorator/input-boolean.decorator.js +0 -34
- package/esm2015/lib/core/enum/co-direction.js +0 -9
- package/esm2015/lib/core/enum/co-document-image-display-kind.enum.js +0 -7
- package/esm2015/lib/core/enum/co-document-type.enum.js +0 -11
- package/esm2015/lib/core/enum/co-orientation.js +0 -17
- package/esm2015/lib/core/enum/core-components-icon.enum.js +0 -300
- package/esm2015/lib/core/enum/file-type-internal.enum.js +0 -17
- package/esm2015/lib/core/enum/file-type.enum.js +0 -11
- package/esm2015/lib/core/enum/filterItem-mode.enum.js +0 -43
- package/esm2015/lib/core/enum/input-number-picker-show-mode.enum.js +0 -8
- package/esm2015/lib/core/enum/keyboard-code.enum.js +0 -74
- package/esm2015/lib/core/enum/keyboard-key.enum.js +0 -76
- package/esm2015/lib/core/enum/object-right-type.enum.js +0 -7
- package/esm2015/lib/core/enum/popup-button-type.enum.js +0 -12
- package/esm2015/lib/core/enum/popup-type.enum.js +0 -11
- package/esm2015/lib/core/enum/table-name.enum.js +0 -81
- package/esm2015/lib/core/function/any-nill.function.js +0 -6
- package/esm2015/lib/core/function/is-nill.function.js +0 -5
- package/esm2015/lib/core/function/none-nill.function.js +0 -17
- package/esm2015/lib/core/function/not-nill.function.js +0 -5
- package/esm2015/lib/core/model/bounds-constrained-number-value.js +0 -171
- package/esm2015/lib/core/model/check-precision-and-scale-result.js +0 -2
- package/esm2015/lib/core/model/check-within-stepped-bounds-result.js +0 -2
- package/esm2015/lib/core/model/co-document-right.bo.js +0 -3
- package/esm2015/lib/core/model/co-document.bo.js +0 -121
- package/esm2015/lib/core/model/core-components-icon-svg.js +0 -299
- package/esm2015/lib/core/model/element-position.js +0 -10
- package/esm2015/lib/core/model/event/string-prompt-result-event.js +0 -8
- package/esm2015/lib/core/service/form-input-user-change-listener.service.js +0 -25
- package/esm2015/lib/core/service/form-master.service.js +0 -102
- package/esm2015/lib/core/service/ng-zone-wrapper.service.js +0 -20
- package/esm2015/lib/core/utils/array-utils.js +0 -264
- package/esm2015/lib/core/utils/browser-utils.js +0 -100
- package/esm2015/lib/core/utils/direction-enum-utils.js +0 -14
- package/esm2015/lib/core/utils/event-utils.js +0 -53
- package/esm2015/lib/core/utils/file-utils.js +0 -267
- package/esm2015/lib/core/utils/number-utils.js +0 -309
- package/esm2015/lib/core/utils/object-utils.js +0 -186
- package/esm2015/lib/core/utils/string-utils.js +0 -94
- package/esm2015/lib/core/validator/email.validator.js +0 -6
- package/esm2015/lib/core/validator/equal.validator.js +0 -11
- package/esm2015/lib/core/validator/max-string-length.validator.js +0 -10
- package/esm2015/lib/core/validator/password.validator.js +0 -31
- package/esm2015/lib/core/validator/precision-scale.validator.js +0 -11
- package/esm2015/lib/core/validator/required.validator.js +0 -5
- package/esm2015/lib/directives/clickoutside/click-outside-master.service.js +0 -57
- package/esm2015/lib/directives/clickoutside/click-outside.directive.js +0 -71
- package/esm2015/lib/directives/clickoutside/clickoutside.module.js +0 -19
- package/esm2015/lib/directives/observe-visibility/observe-visibility.directive.js +0 -53
- package/esm2015/lib/directives/observe-visibility/observe-visibility.module.js +0 -15
- package/esm2015/lib/directives/overlay/overlay-parent.directive.js +0 -19
- package/esm2015/lib/directives/overlay/overlay.directive.js +0 -161
- package/esm2015/lib/directives/overlay/overlay.module.js +0 -18
- package/esm2015/lib/directives/ripple/ripple-ref.js +0 -26
- package/esm2015/lib/directives/ripple/ripple-renderer.js +0 -160
- package/esm2015/lib/directives/ripple/ripple.directive.js +0 -80
- package/esm2015/lib/directives/ripple/ripple.module.js +0 -24
- package/esm2015/lib/directives/ripple/scroll-dispatcher.service.js +0 -108
- package/esm2015/lib/directives/ripple/scrollable.directive.js +0 -40
- package/esm2015/lib/directives/ripple/viewport-ruler.service.js +0 -73
- package/esm2015/lib/directives/screen-configuration/screen-configuration.directive.js +0 -158
- package/esm2015/lib/directives/screen-configuration/screen-configuration.module.js +0 -19
- package/esm2015/lib/directives/stopclick/stop-click.directive.js +0 -38
- package/esm2015/lib/directives/stopclick/stop-click.module.js +0 -15
- package/esm2015/lib/directives/template-wrapper/template-wrapper.directive.js +0 -68
- package/esm2015/lib/directives/template-wrapper/template-wrapper.module.js +0 -15
- package/esm2015/lib/directives/tooltip/tooltip-directive.module.js +0 -19
- package/esm2015/lib/directives/tooltip/tooltip.directive.js +0 -78
- package/esm2015/lib/interfaces/dialog-response.interface.js +0 -2
- package/esm2015/lib/interfaces/scanner-input.interface.js +0 -2
- package/esm2015/lib/interfaces/screen-config-adapter-component-interface-name.js +0 -4
- package/esm2015/lib/interfaces/screen-config-adapter.component.interface.js +0 -2
- package/esm2015/lib/model/enum/app-button-type.enum.js +0 -11
- package/esm2015/lib/model/enum/app-popup-type.enum.js +0 -8
- package/esm2015/lib/model/icon-list-item.js +0 -2
- package/esm2015/lib/pipes/append.pipe.js +0 -17
- package/esm2015/lib/pipes/append.pipe.module.js +0 -15
- package/esm2015/lib/pipes/filter.pipe.js +0 -16
- package/esm2015/lib/pipes/filter.pipe.module.js +0 -15
- package/esm2015/lib/pipes/prepend.pipe.js +0 -17
- package/esm2015/lib/pipes/prepend.pipe.module.js +0 -15
- package/esm2015/lib/pipes/price-display-pipe.module.js +0 -15
- package/esm2015/lib/pipes/price-display.pipe.js +0 -20
- package/esm2015/lib/service/base-module-screen-config.service.js +0 -205
- package/esm2015/lib/service/base-module.service.js +0 -42
- package/esm2015/lib/service/color-sequence.service.js +0 -49
- package/esm2015/lib/service/overlay.service.js +0 -73
- package/esm2015/lib/translation/core-components-translation.module.js +0 -29
- package/esm2015/lib/translation/core-components-translation.service.js +0 -17
- package/esm2015/lib/translation/core-dictionary.service.js +0 -29
- package/esm2015/lib/translation/core-localize.pipe.js +0 -26
- package/esm2015/public-api.js +0 -132
- package/fesm2015/colijnit-corecomponents_v12.js +0 -13660
- package/fesm2015/colijnit-corecomponents_v12.js.map +0 -1
- package/lib/components/article-tile/article-tile.component.d.ts +0 -22
- package/lib/components/article-tile/article-tile.module.d.ts +0 -2
- package/lib/components/base/base-input.component.d.ts +0 -182
- package/lib/components/base/base.module.d.ts +0 -2
- package/lib/components/base/commit-buttons/commit-buttons.component.d.ts +0 -21
- package/lib/components/base/commit-buttons/commit-buttons.module.d.ts +0 -2
- package/lib/components/base/dialog-base.component.d.ts +0 -4
- package/lib/components/base-input-date-picker/base-input-date-picker.directive.d.ts +0 -15
- package/lib/components/button/button.component.d.ts +0 -29
- package/lib/components/button/button.module.d.ts +0 -2
- package/lib/components/calendar/calendar-template.component.d.ts +0 -60
- package/lib/components/calendar/calendar.component.d.ts +0 -13
- package/lib/components/calendar/calendar.module.d.ts +0 -2
- package/lib/components/card/card.component.d.ts +0 -23
- package/lib/components/card/card.module.d.ts +0 -2
- package/lib/components/carousel/carousel.component.d.ts +0 -23
- package/lib/components/carousel/carousel.module.d.ts +0 -6
- package/lib/components/carousel-3d/carousel-3d.component.d.ts +0 -55
- package/lib/components/carousel-3d/carousel-3d.module.d.ts +0 -2
- package/lib/components/carousel-3d/carouselItem.d.ts +0 -13
- package/lib/components/checkmark-overlay/checkmark-overlay.component.d.ts +0 -17
- package/lib/components/checkmark-overlay/checkmark-overlay.module.d.ts +0 -2
- package/lib/components/co-dialog/co-dialog.component.d.ts +0 -23
- package/lib/components/co-dialog/co-dialog.module.d.ts +0 -2
- package/lib/components/co-dialog-wizard/co-dialog-wizard.component.d.ts +0 -9
- package/lib/components/co-dialog-wizard/co-dialog-wizard.module.d.ts +0 -2
- package/lib/components/collapsible/collapsible.component.d.ts +0 -22
- package/lib/components/collapsible/collapsible.module.d.ts +0 -2
- package/lib/components/color-picker/color-picker.component.d.ts +0 -6
- package/lib/components/color-picker/color-picker.module.d.ts +0 -2
- package/lib/components/core-dialog/confirmation-dialog/confirmation-dialog.component.d.ts +0 -20
- package/lib/components/core-dialog/core-dialog.module.d.ts +0 -4
- package/lib/components/core-dialog/core-dialog.service.d.ts +0 -15
- package/lib/components/core-dialog/core-dynamic-component.service.d.ts +0 -12
- package/lib/components/double-calendar/double-calendar.component.d.ts +0 -18
- package/lib/components/double-calendar/double-calendar.module.d.ts +0 -2
- package/lib/components/filter-item/filter-item-viewmodel.d.ts +0 -9
- package/lib/components/filter-item/filter-item.component.d.ts +0 -80
- package/lib/components/filter-item/filter-item.module.d.ts +0 -2
- package/lib/components/filter-item/filter-viewmodel.d.ts +0 -8
- package/lib/components/form/form.component.d.ts +0 -39
- package/lib/components/form/form.module.d.ts +0 -2
- package/lib/components/grid-toolbar/grid-toolbar.component.d.ts +0 -19
- package/lib/components/grid-toolbar/grid-toolbar.module.d.ts +0 -2
- package/lib/components/grid-toolbar-button/grid-toolbar-button.component.d.ts +0 -8
- package/lib/components/grid-toolbar-button/grid-toolbar-button.module.d.ts +0 -2
- package/lib/components/icon/icon-cache.service.d.ts +0 -20
- package/lib/components/icon/icon.component.d.ts +0 -17
- package/lib/components/icon/icon.module.d.ts +0 -2
- package/lib/components/icon-collapse-handle/icon-collapse-handle.component.d.ts +0 -21
- package/lib/components/icon-collapse-handle/icon-collapse-handle.module.d.ts +0 -2
- package/lib/components/image/image.component.d.ts +0 -20
- package/lib/components/image/image.module.d.ts +0 -2
- package/lib/components/input-checkbox/input-checkbox.component.d.ts +0 -24
- package/lib/components/input-checkbox/input-checkbox.module.d.ts +0 -2
- package/lib/components/input-date-picker/input-date-picker.component.d.ts +0 -12
- package/lib/components/input-date-picker/input-date-picker.module.d.ts +0 -2
- package/lib/components/input-date-range-picker/input-date-range-picker.component.d.ts +0 -20
- package/lib/components/input-date-range-picker/input-date-range-picker.module.d.ts +0 -2
- package/lib/components/input-number-picker/input-number-picker.component.d.ts +0 -73
- package/lib/components/input-number-picker/input-number-picker.module.d.ts +0 -2
- package/lib/components/input-radio-button/input-radio-button.component.d.ts +0 -19
- package/lib/components/input-radio-button/input-radio-button.module.d.ts +0 -2
- package/lib/components/input-scanner/bar-code-scanner.d.ts +0 -7
- package/lib/components/input-scanner/input-scanner.component.d.ts +0 -24
- package/lib/components/input-scanner/input-scanner.module.d.ts +0 -2
- package/lib/components/input-scanner/scanner.service.d.ts +0 -11
- package/lib/components/input-search/input-search.component.d.ts +0 -20
- package/lib/components/input-search/input-search.module.d.ts +0 -2
- package/lib/components/input-text/input-text.component.d.ts +0 -66
- package/lib/components/input-text/input-text.module.d.ts +0 -2
- package/lib/components/input-textarea/input-textarea.component.d.ts +0 -19
- package/lib/components/input-textarea/input-textarea.module.d.ts +0 -2
- package/lib/components/level-indicator/level-indicator-level.enum.d.ts +0 -5
- package/lib/components/level-indicator/level-indicator.component.d.ts +0 -10
- package/lib/components/level-indicator/level-indicator.module.d.ts +0 -2
- package/lib/components/list-of-icons/list-of-icons.component.d.ts +0 -18
- package/lib/components/list-of-icons/list-of-icons.module.d.ts +0 -2
- package/lib/components/list-of-icons/style/_layout.scss +0 -83
- package/lib/components/list-of-values/list-of-values-multiselect-popup.component.d.ts +0 -25
- package/lib/components/list-of-values/list-of-values-popup.component.d.ts +0 -47
- package/lib/components/list-of-values/list-of-values.component.d.ts +0 -37
- package/lib/components/list-of-values/list-of-values.module.d.ts +0 -2
- package/lib/components/loader/loader.component.d.ts +0 -3
- package/lib/components/loader/loader.module.d.ts +0 -2
- package/lib/components/pagination/paginate.pipe.d.ts +0 -15
- package/lib/components/pagination/pagination-instance.d.ts +0 -14
- package/lib/components/pagination/pagination.component.d.ts +0 -38
- package/lib/components/pagination/pagination.module.d.ts +0 -2
- package/lib/components/pagination/pagination.service.d.ts +0 -24
- package/lib/components/pagination-bar/pagination-bar.component.d.ts +0 -33
- package/lib/components/pagination-bar/pagination-bar.module.d.ts +0 -2
- package/lib/components/popup/const/popup-window-token.d.ts +0 -3
- package/lib/components/popup/interface/popup-button.d.ts +0 -8
- package/lib/components/popup/interface/popup-close-event.d.ts +0 -5
- package/lib/components/popup/interface/popup-settings.d.ts +0 -21
- package/lib/components/popup/interface/popup.d.ts +0 -9
- package/lib/components/popup/model/popup-button-globals.d.ts +0 -9
- package/lib/components/popup/model/popup-window.d.ts +0 -21
- package/lib/components/popup/popup-buttons.component.d.ts +0 -13
- package/lib/components/popup/popup-message-display.component.d.ts +0 -12
- package/lib/components/popup/popup-window-shell.component.d.ts +0 -42
- package/lib/components/popup/popup.module.d.ts +0 -4
- package/lib/components/popup/service/popup-shower.service.d.ts +0 -17
- package/lib/components/popup/service/prompt.service.d.ts +0 -17
- package/lib/components/popup/text-input-popup.component.d.ts +0 -12
- package/lib/components/responsive-text/responsive-text.component.d.ts +0 -4
- package/lib/components/responsive-text/responsive-text.module.d.ts +0 -2
- package/lib/components/simple-grid/base-simple-grid.component.d.ts +0 -53
- package/lib/components/simple-grid/simple-grid-cell.component.d.ts +0 -30
- package/lib/components/simple-grid/simple-grid-column.directive.d.ts +0 -43
- package/lib/components/simple-grid/simple-grid.component.d.ts +0 -78
- package/lib/components/simple-grid/simple-grid.module.d.ts +0 -2
- package/lib/components/tile/tile.component.d.ts +0 -16
- package/lib/components/tile/tile.module.d.ts +0 -2
- package/lib/components/tile-select/tile-select.component.d.ts +0 -8
- package/lib/components/tile-select/tile-select.module.d.ts +0 -2
- package/lib/components/tooltip/tooltip.component.d.ts +0 -18
- package/lib/components/tooltip/tooltip.module.d.ts +0 -2
- package/lib/components/validation-error/validation-error.component.d.ts +0 -12
- package/lib/components/validation-error/validation-error.module.d.ts +0 -2
- package/lib/components/view-mode-buttons/content-view-mode.enum.d.ts +0 -8
- package/lib/components/view-mode-buttons/view-mode-buttons.component.d.ts +0 -17
- package/lib/components/view-mode-buttons/view-mode-buttons.module.d.ts +0 -2
- package/lib/core/constant/default-upper-bound-for-range-components.d.ts +0 -2
- package/lib/core/constant/java-max-int.d.ts +0 -1
- package/lib/core/constant/number-inputs-key-down-white-list.d.ts +0 -2
- package/lib/core/decorator/input-boolean.decorator.d.ts +0 -8
- package/lib/core/enum/co-direction.d.ts +0 -6
- package/lib/core/enum/co-document-image-display-kind.enum.d.ts +0 -5
- package/lib/core/enum/co-document-type.enum.d.ts +0 -5
- package/lib/core/enum/co-orientation.d.ts +0 -6
- package/lib/core/enum/core-components-icon.enum.d.ts +0 -298
- package/lib/core/enum/file-type-internal.enum.d.ts +0 -15
- package/lib/core/enum/file-type.enum.d.ts +0 -5
- package/lib/core/enum/filterItem-mode.enum.d.ts +0 -15
- package/lib/core/enum/input-number-picker-show-mode.enum.d.ts +0 -5
- package/lib/core/enum/keyboard-code.enum.d.ts +0 -71
- package/lib/core/enum/keyboard-key.enum.d.ts +0 -70
- package/lib/core/enum/object-right-type.enum.d.ts +0 -5
- package/lib/core/enum/popup-button-type.enum.d.ts +0 -9
- package/lib/core/enum/popup-type.enum.d.ts +0 -9
- package/lib/core/enum/table-name.enum.d.ts +0 -79
- package/lib/core/function/any-nill.function.d.ts +0 -1
- package/lib/core/function/is-nill.function.d.ts +0 -1
- package/lib/core/function/none-nill.function.d.ts +0 -1
- package/lib/core/function/not-nill.function.d.ts +0 -1
- package/lib/core/model/bounds-constrained-number-value.d.ts +0 -46
- package/lib/core/model/check-precision-and-scale-result.d.ts +0 -4
- package/lib/core/model/check-within-stepped-bounds-result.d.ts +0 -8
- package/lib/core/model/co-document-right.bo.d.ts +0 -6
- package/lib/core/model/co-document.bo.d.ts +0 -61
- package/lib/core/model/core-components-icon-svg.d.ts +0 -4
- package/lib/core/model/element-position.d.ts +0 -7
- package/lib/core/model/event/string-prompt-result-event.d.ts +0 -6
- package/lib/core/service/form-input-user-change-listener.service.d.ts +0 -10
- package/lib/core/service/form-master.service.d.ts +0 -26
- package/lib/core/service/ng-zone-wrapper.service.d.ts +0 -6
- package/lib/core/utils/array-utils.d.ts +0 -85
- package/lib/core/utils/browser-utils.d.ts +0 -15
- package/lib/core/utils/direction-enum-utils.d.ts +0 -5
- package/lib/core/utils/event-utils.d.ts +0 -12
- package/lib/core/utils/file-utils.d.ts +0 -29
- package/lib/core/utils/number-utils.d.ts +0 -89
- package/lib/core/utils/object-utils.d.ts +0 -31
- package/lib/core/utils/string-utils.d.ts +0 -25
- package/lib/core/validator/email.validator.d.ts +0 -2
- package/lib/core/validator/equal.validator.d.ts +0 -2
- package/lib/core/validator/max-string-length.validator.d.ts +0 -2
- package/lib/core/validator/password.validator.d.ts +0 -3
- package/lib/core/validator/precision-scale.validator.d.ts +0 -2
- package/lib/core/validator/required.validator.d.ts +0 -2
- package/lib/directives/clickoutside/click-outside-master.service.d.ts +0 -15
- package/lib/directives/clickoutside/click-outside.directive.d.ts +0 -18
- package/lib/directives/clickoutside/clickoutside.module.d.ts +0 -2
- package/lib/directives/observe-visibility/observe-visibility.directive.d.ts +0 -14
- package/lib/directives/observe-visibility/observe-visibility.module.d.ts +0 -2
- package/lib/directives/overlay/overlay-parent.directive.d.ts +0 -6
- package/lib/directives/overlay/overlay.directive.d.ts +0 -25
- package/lib/directives/overlay/overlay.module.d.ts +0 -2
- package/lib/directives/ripple/ripple-ref.d.ts +0 -21
- package/lib/directives/ripple/ripple-renderer.d.ts +0 -56
- package/lib/directives/ripple/ripple.directive.d.ts +0 -56
- package/lib/directives/ripple/ripple.module.d.ts +0 -2
- package/lib/directives/ripple/scroll-dispatcher.service.d.ts +0 -51
- package/lib/directives/ripple/scrollable.directive.d.ts +0 -20
- package/lib/directives/ripple/viewport-ruler.service.d.ts +0 -29
- package/lib/directives/screen-configuration/screen-configuration.directive.d.ts +0 -32
- package/lib/directives/screen-configuration/screen-configuration.module.d.ts +0 -2
- package/lib/directives/stopclick/stop-click.directive.d.ts +0 -10
- package/lib/directives/stopclick/stop-click.module.d.ts +0 -2
- package/lib/directives/template-wrapper/template-wrapper.directive.d.ts +0 -13
- package/lib/directives/template-wrapper/template-wrapper.module.d.ts +0 -2
- package/lib/directives/tooltip/tooltip-directive.module.d.ts +0 -2
- package/lib/directives/tooltip/tooltip.directive.d.ts +0 -20
- package/lib/interfaces/dialog-response.interface.d.ts +0 -6
- package/lib/interfaces/screen-config-adapter-component-interface-name.d.ts +0 -3
- package/lib/interfaces/screen-config-adapter.component.interface.d.ts +0 -10
- package/lib/model/enum/app-button-type.enum.d.ts +0 -9
- package/lib/model/enum/app-popup-type.enum.d.ts +0 -6
- package/lib/model/icon-list-item.d.ts +0 -6
- package/lib/pipes/append.pipe.d.ts +0 -4
- package/lib/pipes/append.pipe.module.d.ts +0 -2
- package/lib/pipes/filter.pipe.d.ts +0 -4
- package/lib/pipes/filter.pipe.module.d.ts +0 -2
- package/lib/pipes/prepend.pipe.d.ts +0 -4
- package/lib/pipes/prepend.pipe.module.d.ts +0 -2
- package/lib/pipes/price-display-pipe.module.d.ts +0 -2
- package/lib/pipes/price-display.pipe.d.ts +0 -4
- package/lib/service/base-module-screen-config.service.d.ts +0 -47
- package/lib/service/base-module.service.d.ts +0 -22
- package/lib/service/color-sequence.service.d.ts +0 -7
- package/lib/service/overlay.service.d.ts +0 -13
- package/lib/translation/core-components-translation.module.d.ts +0 -4
- package/lib/translation/core-components-translation.service.d.ts +0 -6
- package/lib/translation/core-dictionary.service.d.ts +0 -12
- package/lib/translation/core-localize.pipe.d.ts +0 -7
- package/public-api.d.ts +0 -128
- /package/{lib → projects/corecomponents/src/lib}/components/article-tile/article-tile.component.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/base/commit-buttons/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/base/commit-buttons/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/base/commit-buttons/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/base/commit-buttons/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/button/style/_co-ripple.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/button/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/button/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/button/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/button/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/calendar/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/calendar/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/calendar/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/calendar/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/card/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/card/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/card/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/card/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/carousel/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/carousel/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/carousel/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/carousel/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/carousel-3d/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/carousel-3d/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/carousel-3d/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/carousel-3d/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/checkmark-overlay/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/checkmark-overlay/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/checkmark-overlay/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/checkmark-overlay/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/co-dialog/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/co-dialog/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/co-dialog/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/co-dialog/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/co-dialog-wizard/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/co-dialog-wizard/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/co-dialog-wizard/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/co-dialog-wizard/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/collapsible/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/collapsible/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/collapsible/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/collapsible/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/color-picker/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/color-picker/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/color-picker/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/color-picker/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/core-dialog/confirmation-dialog/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/core-dialog/confirmation-dialog/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/core-dialog/confirmation-dialog/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/core-dialog/confirmation-dialog/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/core-dialog/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/core-dialog/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/core-dialog/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/core-dialog/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/double-calendar/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/double-calendar/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/double-calendar/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/double-calendar/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/filter-item/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/filter-item/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/filter-item/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/filter-item/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/grid-toolbar/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/grid-toolbar/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/grid-toolbar/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/grid-toolbar/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/grid-toolbar-button/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/grid-toolbar-button/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/grid-toolbar-button/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/grid-toolbar-button/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/icon/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/icon/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/icon/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/icon/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/icon-collapse-handle/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/icon-collapse-handle/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/icon-collapse-handle/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/icon-collapse-handle/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/image/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/image/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/image/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/image/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-checkbox/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-checkbox/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-checkbox/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-checkbox/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-date-picker/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-date-picker/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-date-picker/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-date-picker/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-date-range-picker/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-date-range-picker/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-date-range-picker/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-date-range-picker/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-number-picker/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-number-picker/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-number-picker/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-number-picker/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-radio-button/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-radio-button/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-radio-button/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-radio-button/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-scanner/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-scanner/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-scanner/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-scanner/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-search/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-search/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-search/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-search/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-text/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-text/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-text/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-text/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-textarea/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-textarea/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-textarea/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/input-textarea/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/level-indicator/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/level-indicator/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/level-indicator/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/level-indicator/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/list-of-icons/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/list-of-icons/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/list-of-icons/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/list-of-values/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/list-of-values/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/list-of-values/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/list-of-values/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/loader/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/loader/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/loader/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/loader/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/pagination/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/pagination/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/pagination/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/pagination/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/pagination-bar/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/pagination-bar/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/pagination-bar/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/pagination-bar/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/popup/popup-buttons.component.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/popup/popup-window-shell.component.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/responsive-text/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/responsive-text/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/responsive-text/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/responsive-text/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/simple-grid/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/simple-grid/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/simple-grid/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/simple-grid/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/tile/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/tile/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/tile/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/tile/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/tile-select/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/tile-select/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/tile-select/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/tile-select/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/tooltip/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/tooltip/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/tooltip/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/tooltip/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/validation-error/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/validation-error/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/validation-error/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/validation-error/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/view-mode-buttons/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/view-mode-buttons/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/view-mode-buttons/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/components/view-mode-buttons/style/material.scss +0 -0
- /package/{lib/interfaces/scanner-input.interface.d.ts → projects/corecomponents/src/lib/interfaces/scanner-input.interface.ts} +0 -0
- /package/{lib → projects/corecomponents/src/lib}/modules/pagination/style/_layout.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/modules/pagination/style/_material-definition.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/modules/pagination/style/_theme.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/modules/pagination/style/material.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/style/_input.mixins.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/style/_mixin.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/style/_variables.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/style/corecomponents-globals.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/style/material2/_core.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/style/material2/_material2-scss-barrel.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/style/material2/ripple/_co-ripple.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/style/material2/style/_elevation.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/style/material2/style/_list-common.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/style/material2/style/_variables.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/style/material2/theming/_palette.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/style/material2/theming/_theming.scss +0 -0
- /package/{lib → projects/corecomponents/src/lib}/style/material2/typography/_typography.scss +0 -0
|
@@ -1,646 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
3
|
-
import { CoreComponentsIcon } from '../../core/enum/core-components-icon.enum';
|
|
4
|
-
import { IconCacheService } from '../icon/icon-cache.service';
|
|
5
|
-
import { FilterItemMode } from '../../core/enum/filterItem-mode.enum';
|
|
6
|
-
export class FilterItemComponent {
|
|
7
|
-
constructor(iconService, _changeDetector) {
|
|
8
|
-
this.iconService = iconService;
|
|
9
|
-
this._changeDetector = _changeDetector;
|
|
10
|
-
this.icons = CoreComponentsIcon;
|
|
11
|
-
this.modes = FilterItemMode;
|
|
12
|
-
this.initialLimit = 10;
|
|
13
|
-
this.expanded = false;
|
|
14
|
-
// Set to false to use filter item with a multi selectable collection. Set to true to specify custom content
|
|
15
|
-
this.customContent = false;
|
|
16
|
-
// Set to true to show all results. Set to false to get 'show more' and 'show less' buttons to expand and contract.
|
|
17
|
-
this.showAllResults = false;
|
|
18
|
-
this.filterButtonLabel = "Search";
|
|
19
|
-
this.searchPlaceholder = 'Search...';
|
|
20
|
-
this.showMoreLabel = 'Show more';
|
|
21
|
-
this.showLessLabel = 'Show less';
|
|
22
|
-
this.noResultsLabel = "No results";
|
|
23
|
-
this.sliderDefaultMin = 0;
|
|
24
|
-
this.sliderDefaultMax = 100000;
|
|
25
|
-
this.fullRangeIsNull = false;
|
|
26
|
-
this.modelChange = new EventEmitter();
|
|
27
|
-
this.collectionChange = new EventEmitter();
|
|
28
|
-
this.filterButtonClicked = new EventEmitter();
|
|
29
|
-
this.filteredCollection = [];
|
|
30
|
-
this.limitTo = 10;
|
|
31
|
-
this.filterText = "";
|
|
32
|
-
this.showButton = false;
|
|
33
|
-
this._collection = [];
|
|
34
|
-
this._mode = this.modes.Filterlist;
|
|
35
|
-
}
|
|
36
|
-
set mode(value) {
|
|
37
|
-
this._mode = value;
|
|
38
|
-
this.readModelForMode(this._model);
|
|
39
|
-
}
|
|
40
|
-
get mode() {
|
|
41
|
-
return this._mode;
|
|
42
|
-
}
|
|
43
|
-
set collection(value) {
|
|
44
|
-
var _a;
|
|
45
|
-
this._collection = value;
|
|
46
|
-
this.filteredCollection = (_a = this._collection) === null || _a === void 0 ? void 0 : _a.slice();
|
|
47
|
-
//reset the model in case there was no collection to set its values on when it was set.
|
|
48
|
-
this.model = this._model;
|
|
49
|
-
}
|
|
50
|
-
get collection() {
|
|
51
|
-
return this._collection;
|
|
52
|
-
}
|
|
53
|
-
set model(newModel) {
|
|
54
|
-
this.readModelForMode(newModel);
|
|
55
|
-
}
|
|
56
|
-
get model() {
|
|
57
|
-
return this._model;
|
|
58
|
-
}
|
|
59
|
-
ngOnInit() {
|
|
60
|
-
this.setToInitialLimit();
|
|
61
|
-
this.showButton = this.valueSelected();
|
|
62
|
-
if (this.checkBoxToTextModel === undefined || this.checkBoxToTextModel === null) {
|
|
63
|
-
this.checkBoxToTextModel = false;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
setToInitialLimit() {
|
|
67
|
-
this.limitTo = this.initialLimit;
|
|
68
|
-
}
|
|
69
|
-
increaseLimit() {
|
|
70
|
-
this.limitTo += 10;
|
|
71
|
-
}
|
|
72
|
-
moreToShow() {
|
|
73
|
-
var _a;
|
|
74
|
-
if (this.showAllResults) {
|
|
75
|
-
return false;
|
|
76
|
-
}
|
|
77
|
-
return ((_a = this.filteredCollection) === null || _a === void 0 ? void 0 : _a.length) > this.limitTo;
|
|
78
|
-
}
|
|
79
|
-
lessToShow() {
|
|
80
|
-
var _a, _b;
|
|
81
|
-
if (this.showAllResults) {
|
|
82
|
-
return false;
|
|
83
|
-
}
|
|
84
|
-
return ((_a = this.filteredCollection) === null || _a === void 0 ? void 0 : _a.length) <= this.limitTo && ((_b = this.filteredCollection) === null || _b === void 0 ? void 0 : _b.length) > this.initialLimit;
|
|
85
|
-
}
|
|
86
|
-
handleModelChange(model) {
|
|
87
|
-
switch (this.mode) {
|
|
88
|
-
case this.modes.Filterlist:
|
|
89
|
-
this.showButton = true;
|
|
90
|
-
model.checked = !model.checked;
|
|
91
|
-
this._createModelForFilterList();
|
|
92
|
-
break;
|
|
93
|
-
case this.modes.SelectListWithStringCollectionOutput:
|
|
94
|
-
this.showButton = true;
|
|
95
|
-
model.checked = !model.checked;
|
|
96
|
-
this._createModelForStringCollectionList();
|
|
97
|
-
break;
|
|
98
|
-
case this.modes.SingleSelectList:
|
|
99
|
-
this.showButton = true;
|
|
100
|
-
this.uncheckForSingleSelect(model);
|
|
101
|
-
model.checked = !model.checked;
|
|
102
|
-
this._createModelForSingleSelectList();
|
|
103
|
-
break;
|
|
104
|
-
case this.modes.SelectListWithNumberOutput:
|
|
105
|
-
this.showButton = true;
|
|
106
|
-
model.checked = !model.checked;
|
|
107
|
-
this._createModelForSelectListWithNumberOutput();
|
|
108
|
-
break;
|
|
109
|
-
case this.modes.Slider:
|
|
110
|
-
this.showButton = true;
|
|
111
|
-
this._createModelForSliderMode();
|
|
112
|
-
break;
|
|
113
|
-
case this.modes.NullableSlider:
|
|
114
|
-
this.showButton = true;
|
|
115
|
-
this._createModelForNullableSliderMode();
|
|
116
|
-
break;
|
|
117
|
-
case this.modes.CheckboxToText:
|
|
118
|
-
this.showButton = true;
|
|
119
|
-
this._createModelForCheckboxToText();
|
|
120
|
-
break;
|
|
121
|
-
case this.modes.CheckboxToSimpleText:
|
|
122
|
-
this.showButton = true;
|
|
123
|
-
this._createModelForCheckboxToSimpleText();
|
|
124
|
-
break;
|
|
125
|
-
case this.modes.CheckboxToBinary:
|
|
126
|
-
this.showButton = true;
|
|
127
|
-
this._createModelForCheckboxToBinary();
|
|
128
|
-
break;
|
|
129
|
-
case this.modes.DateRangeField:
|
|
130
|
-
this.showButton = true;
|
|
131
|
-
this._createModelForDateRange(model);
|
|
132
|
-
break;
|
|
133
|
-
case this.modes.TextField:
|
|
134
|
-
this.showButton = true;
|
|
135
|
-
this._model = (typeof this._model === 'string' && this._model.length === 0) ? undefined : this._model;
|
|
136
|
-
break;
|
|
137
|
-
}
|
|
138
|
-
this.modelChange.emit(this._model);
|
|
139
|
-
this.collectionChange.emit(this.collection);
|
|
140
|
-
}
|
|
141
|
-
valueSelected() {
|
|
142
|
-
if (this.collection) {
|
|
143
|
-
return !!this.collection.find(c => c.checked);
|
|
144
|
-
}
|
|
145
|
-
return false;
|
|
146
|
-
}
|
|
147
|
-
// Applies filter to the collection.
|
|
148
|
-
applyFilter(text) {
|
|
149
|
-
var _a, _b;
|
|
150
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
151
|
-
if (!isNaN(this.minSearchCharsToLoadCollection) && this.collectionLoadFn) {
|
|
152
|
-
if (text.length === this.minSearchCharsToLoadCollection && text.length > this.filterText.length) {
|
|
153
|
-
this.collection = yield this.collectionLoadFn(text);
|
|
154
|
-
}
|
|
155
|
-
else if (text.length < this.minSearchCharsToLoadCollection) {
|
|
156
|
-
this.collection = undefined;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
this.filterText = text;
|
|
160
|
-
if (!this.collection) {
|
|
161
|
-
return [];
|
|
162
|
-
}
|
|
163
|
-
const filterText = (_a = this.filterText) === null || _a === void 0 ? void 0 : _a.toString().toLowerCase();
|
|
164
|
-
let filteredItemCount = 0;
|
|
165
|
-
this.filteredCollection = (_b = this.collection) === null || _b === void 0 ? void 0 : _b.filter((item) => {
|
|
166
|
-
var _a;
|
|
167
|
-
const labelText = (_a = item.description) === null || _a === void 0 ? void 0 : _a.toString().toLowerCase();
|
|
168
|
-
const isHiddenByFilter = ((labelText === null || labelText === void 0 ? void 0 : labelText.indexOf(filterText)) === -1);
|
|
169
|
-
if (isHiddenByFilter) {
|
|
170
|
-
return false;
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
filteredItemCount++;
|
|
174
|
-
return true;
|
|
175
|
-
}
|
|
176
|
-
});
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
onButtonClicked() {
|
|
180
|
-
this.filterButtonClicked.emit();
|
|
181
|
-
}
|
|
182
|
-
uncheckForSingleSelect(model) {
|
|
183
|
-
this.collection.forEach(m => {
|
|
184
|
-
if (m.code !== model.code && m.description !== model.description) {
|
|
185
|
-
m.checked = false;
|
|
186
|
-
}
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
readModelForMode(newModel) {
|
|
190
|
-
switch (this.mode) {
|
|
191
|
-
case this.modes.Filterlist:
|
|
192
|
-
this._readModelForFilterList(newModel);
|
|
193
|
-
break;
|
|
194
|
-
case this.modes.SingleSelectList:
|
|
195
|
-
this._readModelForSingleSelectList(newModel);
|
|
196
|
-
break;
|
|
197
|
-
case this.modes.SelectListWithStringCollectionOutput:
|
|
198
|
-
this._readModelForStringCollectionList(newModel);
|
|
199
|
-
break;
|
|
200
|
-
case this.modes.SelectListWithNumberOutput:
|
|
201
|
-
this._readModelForSelectListWithNumberOutput(newModel);
|
|
202
|
-
break;
|
|
203
|
-
case this.modes.Slider:
|
|
204
|
-
case this.modes.NullableSlider:
|
|
205
|
-
this._readModelForSliderMode(newModel);
|
|
206
|
-
break;
|
|
207
|
-
case this.modes.CheckboxToText:
|
|
208
|
-
case this.modes.CheckboxToSimpleText:
|
|
209
|
-
this._readModelForCheckboxToText(newModel);
|
|
210
|
-
break;
|
|
211
|
-
case this.modes.CheckboxToBinary:
|
|
212
|
-
this._readModelForCheckboxToBinary(newModel);
|
|
213
|
-
break;
|
|
214
|
-
case this.modes.DateField:
|
|
215
|
-
this._readModelForDateField(newModel);
|
|
216
|
-
break;
|
|
217
|
-
case this.modes.DateRangeField:
|
|
218
|
-
this._readModelForDateRangeField(newModel);
|
|
219
|
-
break;
|
|
220
|
-
default:
|
|
221
|
-
this._model = newModel;
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
/////////////////////////////////////////////////////////////
|
|
225
|
-
//Model creation for all of the different options available//
|
|
226
|
-
/////////////////////////////////////////////////////////////
|
|
227
|
-
_createModelForFilterList() {
|
|
228
|
-
let filterRange = [];
|
|
229
|
-
if (this.collection !== null && this.collection !== undefined) {
|
|
230
|
-
this.collection.forEach((viewModel) => {
|
|
231
|
-
if (viewModel.checked) {
|
|
232
|
-
filterRange.push(`?='${viewModel.code}'`);
|
|
233
|
-
}
|
|
234
|
-
});
|
|
235
|
-
if (filterRange.length > 0) {
|
|
236
|
-
this._model = filterRange.join(',');
|
|
237
|
-
}
|
|
238
|
-
else {
|
|
239
|
-
this._model = undefined;
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
_createModelForStringCollectionList() {
|
|
244
|
-
let filterRange = [];
|
|
245
|
-
this.collection.forEach((viewModel) => {
|
|
246
|
-
if (viewModel.checked) {
|
|
247
|
-
filterRange.push(viewModel.code.toString());
|
|
248
|
-
}
|
|
249
|
-
});
|
|
250
|
-
if (filterRange.length > 0) {
|
|
251
|
-
this._model = filterRange;
|
|
252
|
-
}
|
|
253
|
-
else {
|
|
254
|
-
this._model = undefined;
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
_createModelForSingleSelectList() {
|
|
258
|
-
let filterString = "";
|
|
259
|
-
this.collection.forEach((viewModel) => {
|
|
260
|
-
if (viewModel.checked) {
|
|
261
|
-
filterString = viewModel.code.toString();
|
|
262
|
-
}
|
|
263
|
-
});
|
|
264
|
-
if (filterString.length > 0) {
|
|
265
|
-
this._model = filterString;
|
|
266
|
-
}
|
|
267
|
-
else {
|
|
268
|
-
this._model = undefined;
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
_createModelForSelectListWithNumberOutput() {
|
|
272
|
-
let filterNumber = null;
|
|
273
|
-
this.collection.forEach((viewModel) => {
|
|
274
|
-
if (viewModel.checked) {
|
|
275
|
-
if (filterNumber == null) {
|
|
276
|
-
filterNumber = 0;
|
|
277
|
-
}
|
|
278
|
-
filterNumber += Number(viewModel.code);
|
|
279
|
-
}
|
|
280
|
-
});
|
|
281
|
-
this._model = filterNumber;
|
|
282
|
-
}
|
|
283
|
-
_createModelForSliderMode() {
|
|
284
|
-
this.sliderMin = !!this.sliderMin ? this.sliderMin : this.sliderDefaultMin;
|
|
285
|
-
this.sliderMax = !!this.sliderMax ? this.sliderMax : this.sliderDefaultMax;
|
|
286
|
-
let trueLowerBound = Math.min(this.sliderMin, this.sliderMax);
|
|
287
|
-
let trueUpperBound = Math.max(this.sliderMin, this.sliderMax);
|
|
288
|
-
this.sliderMin = trueLowerBound;
|
|
289
|
-
this.sliderMax = trueUpperBound;
|
|
290
|
-
this._model = `${trueLowerBound} - ${trueUpperBound}`;
|
|
291
|
-
}
|
|
292
|
-
_createModelForNullableSliderMode() {
|
|
293
|
-
if (this.sliderMin && this.sliderMax) {
|
|
294
|
-
let trueLowerBound = Math.min(this.sliderMin, this.sliderMax);
|
|
295
|
-
let trueUpperBound = Math.max(this.sliderMin, this.sliderMax);
|
|
296
|
-
this._model = `${trueLowerBound} - ${trueUpperBound}`;
|
|
297
|
-
}
|
|
298
|
-
else {
|
|
299
|
-
this._model = null;
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
_createModelForCheckboxToText() {
|
|
303
|
-
if (this.checkBoxToTextModel) {
|
|
304
|
-
this._model = "?='J'";
|
|
305
|
-
}
|
|
306
|
-
else {
|
|
307
|
-
this._model = "?='N'";
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
_createModelForCheckboxToSimpleText() {
|
|
311
|
-
if (this.checkBoxToTextModel) {
|
|
312
|
-
this._model = "J";
|
|
313
|
-
}
|
|
314
|
-
else {
|
|
315
|
-
this._model = "N";
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
_createModelForCheckboxToBinary() {
|
|
319
|
-
if (this.checkBoxToTextModel) {
|
|
320
|
-
this._model = 1;
|
|
321
|
-
}
|
|
322
|
-
else {
|
|
323
|
-
this._model = 0;
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
_createModelForDateRange(dates) {
|
|
327
|
-
if (dates) {
|
|
328
|
-
let startDate = dates[0];
|
|
329
|
-
let endDate = dates[1];
|
|
330
|
-
const startDateRequest = startDate ? this._formatDateToString(startDate) : '';
|
|
331
|
-
const endDateRequest = endDate ? this._formatDateToString(endDate) : '';
|
|
332
|
-
this._model = `?>=\'${startDateRequest}\'& ?<=\'${endDateRequest}\'`;
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
_formatDateToString(date) {
|
|
336
|
-
let day = date.getDate().toString().padStart(2, '0');
|
|
337
|
-
let month = (date.getMonth() + 1).toString().padStart(2, '0');
|
|
338
|
-
let year = date.getFullYear();
|
|
339
|
-
return `${day}-${month}-${year}`;
|
|
340
|
-
}
|
|
341
|
-
////////////////////////////////////////////////////////////
|
|
342
|
-
//Model reading for all of the different options available//
|
|
343
|
-
////////////////////////////////////////////////////////////
|
|
344
|
-
_readModelForFilterList(filterModel) {
|
|
345
|
-
let filterList = [];
|
|
346
|
-
let itemsToCheck = [];
|
|
347
|
-
this._uncheckAll();
|
|
348
|
-
this._model = filterModel;
|
|
349
|
-
if (filterModel !== null && filterModel !== undefined && typeof filterModel === 'string' && filterModel.length != 0 && this.collection !== null && this.collection !== undefined) {
|
|
350
|
-
filterList = filterModel.split(",");
|
|
351
|
-
filterList.forEach((filter) => {
|
|
352
|
-
itemsToCheck.push(filter.substr(3, filter.length - 4));
|
|
353
|
-
});
|
|
354
|
-
for (const item of itemsToCheck) {
|
|
355
|
-
let filter = this.collection.find(element => element.code.toString() === item);
|
|
356
|
-
if (filter !== null && filter !== undefined) {
|
|
357
|
-
filter.checked = true;
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
this._model = filterModel;
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
_readModelForSingleSelectList(singleSelectModel) {
|
|
364
|
-
this._uncheckAll();
|
|
365
|
-
this._model = singleSelectModel;
|
|
366
|
-
if (singleSelectModel !== null && singleSelectModel !== undefined && this.collection !== null && this.collection !== undefined) {
|
|
367
|
-
let filter = this.collection.find(element => element.code.toString() === singleSelectModel);
|
|
368
|
-
if (filter !== null && filter !== undefined) {
|
|
369
|
-
filter.checked = true;
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
_readModelForStringCollectionList(collectionModel) {
|
|
374
|
-
this._uncheckAll();
|
|
375
|
-
this._model = collectionModel;
|
|
376
|
-
if (collectionModel !== null && collectionModel !== undefined && this.collection !== null && this.collection !== undefined) {
|
|
377
|
-
this.collection.forEach((viewModel) => {
|
|
378
|
-
if (collectionModel.indexOf(viewModel.code.toString()) > -1) {
|
|
379
|
-
viewModel.checked = true;
|
|
380
|
-
}
|
|
381
|
-
else {
|
|
382
|
-
viewModel.checked = false;
|
|
383
|
-
}
|
|
384
|
-
});
|
|
385
|
-
}
|
|
386
|
-
}
|
|
387
|
-
_readModelForSelectListWithNumberOutput(numberModel) {
|
|
388
|
-
this._uncheckAll();
|
|
389
|
-
this._model = numberModel;
|
|
390
|
-
if (numberModel !== null && numberModel !== undefined && this.collection !== null && this.collection !== undefined) {
|
|
391
|
-
for (const item of this.collection) {
|
|
392
|
-
const itemCode = item.code;
|
|
393
|
-
const modValue = (numberModel % (2 * itemCode));
|
|
394
|
-
item.checked = (modValue >= itemCode);
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
_uncheckAll() {
|
|
399
|
-
if (this.collection !== null && this.collection !== undefined) {
|
|
400
|
-
this.collection.forEach(m => {
|
|
401
|
-
m.checked = false;
|
|
402
|
-
});
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
_readModelForSliderMode(sliderModel) {
|
|
406
|
-
this._model = sliderModel;
|
|
407
|
-
if (sliderModel !== undefined && sliderModel !== null) {
|
|
408
|
-
let sliderInputCollection = sliderModel.split(' - ');
|
|
409
|
-
this.sliderMin = parseInt(sliderInputCollection[0]);
|
|
410
|
-
this.sliderMax = parseInt(sliderInputCollection[1]);
|
|
411
|
-
}
|
|
412
|
-
else {
|
|
413
|
-
this.sliderMin = this.sliderDefaultMin;
|
|
414
|
-
this.sliderMax = this.sliderDefaultMax;
|
|
415
|
-
}
|
|
416
|
-
}
|
|
417
|
-
_readModelForCheckboxToText(checkboxToTextModel) {
|
|
418
|
-
this._model = checkboxToTextModel;
|
|
419
|
-
if (checkboxToTextModel !== undefined && checkboxToTextModel !== null) {
|
|
420
|
-
this.checkBoxToTextModel = (checkboxToTextModel.indexOf('J') > -1);
|
|
421
|
-
}
|
|
422
|
-
else {
|
|
423
|
-
this.checkBoxToTextModel = false;
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
_readModelForCheckboxToBinary(checkboxToBinary) {
|
|
427
|
-
this._model = checkboxToBinary;
|
|
428
|
-
if (checkboxToBinary !== undefined && checkboxToBinary !== null) {
|
|
429
|
-
this.checkBoxToTextModel = (checkboxToBinary >= 1);
|
|
430
|
-
}
|
|
431
|
-
else {
|
|
432
|
-
this.checkBoxToTextModel = false;
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
_readModelForDateField(dateFieldModel) {
|
|
436
|
-
this._model = dateFieldModel;
|
|
437
|
-
if (dateFieldModel !== undefined && dateFieldModel !== null) {
|
|
438
|
-
this._model = new Date(dateFieldModel);
|
|
439
|
-
}
|
|
440
|
-
else {
|
|
441
|
-
this._model = undefined;
|
|
442
|
-
}
|
|
443
|
-
}
|
|
444
|
-
_readModelForDateRangeField(dateRangeFieldModel) {
|
|
445
|
-
this._model = dateRangeFieldModel;
|
|
446
|
-
if (dateRangeFieldModel !== undefined && dateRangeFieldModel !== null) {
|
|
447
|
-
let dateCollection = dateRangeFieldModel.split('&');
|
|
448
|
-
let startString = dateCollection[0].trim().substr(4, dateCollection[0].length - 5);
|
|
449
|
-
let endString = dateCollection[1].trim().substr(4, dateCollection[1].length - 5);
|
|
450
|
-
let startDateComponents = startString.split('-');
|
|
451
|
-
let endDateComponents = endString.split('-');
|
|
452
|
-
this.dateRangeStart = new Date(parseInt(startDateComponents[2]), parseInt(startDateComponents[1]) - 1, parseInt(startDateComponents[0]));
|
|
453
|
-
this.dateRangeEnd = new Date(parseInt(endDateComponents[2]), parseInt(endDateComponents[1]) - 1, parseInt(endDateComponents[0]));
|
|
454
|
-
}
|
|
455
|
-
else {
|
|
456
|
-
this.dateRangeStart = undefined;
|
|
457
|
-
this.dateRangeEnd = undefined;
|
|
458
|
-
}
|
|
459
|
-
}
|
|
460
|
-
}
|
|
461
|
-
FilterItemComponent.decorators = [
|
|
462
|
-
{ type: Component, args: [{
|
|
463
|
-
selector: "co-filter-item",
|
|
464
|
-
template: `
|
|
465
|
-
<div class="co-filter-item-header">
|
|
466
|
-
<co-collapsible
|
|
467
|
-
[headerTitle]="placeholder"
|
|
468
|
-
[expandButtonLast]="true"
|
|
469
|
-
[iconData]="iconService.getIcon(icons.ArrowPointDown)"
|
|
470
|
-
[expanded]="expanded"
|
|
471
|
-
[showButton]="showButton"
|
|
472
|
-
[buttonText]="filterButtonLabel"
|
|
473
|
-
(buttonClicked)="onButtonClicked()"
|
|
474
|
-
>
|
|
475
|
-
<div class="co-filter-item-collapsable-content">
|
|
476
|
-
<div class="co-filter-item-custom-content" *ngIf="customContent; else collectionContent"
|
|
477
|
-
(keydown)="showButton=true" (mousedown)="showButton=true">
|
|
478
|
-
<ng-content></ng-content>
|
|
479
|
-
</div>
|
|
480
|
-
<ng-template #collectionContent>
|
|
481
|
-
<div class="co-filter-item-collection-content" *ngIf="mode === modes.Filterlist || mode === modes.SingleSelectList
|
|
482
|
-
|| mode === modes.SelectListWithNumberOutput || mode === modes.SelectListWithStringCollectionOutput">
|
|
483
|
-
<co-input-text
|
|
484
|
-
*ngIf="collection?.length > 10 || minSearchCharsToLoadCollection"
|
|
485
|
-
[placeholder]="searchPlaceholder"
|
|
486
|
-
[model]="filterText"
|
|
487
|
-
(modelChange)="applyFilter($event)"
|
|
488
|
-
>
|
|
489
|
-
</co-input-text>
|
|
490
|
-
<div class="no-results" *ngIf="filteredCollection?.length === 0">
|
|
491
|
-
<span [textContent]="noResultsLabel"></span>
|
|
492
|
-
</div>
|
|
493
|
-
<div class="co-filter-item-collection-results">
|
|
494
|
-
<ng-container
|
|
495
|
-
*ngFor="let option of filteredCollection; let index = index">
|
|
496
|
-
<div class="co-filter-item-collection-result-item" *ngIf="index < limitTo || showAllResults">
|
|
497
|
-
<co-input-checkbox *ngIf="mode !== modes.SingleSelectList"
|
|
498
|
-
[label]="option.description"
|
|
499
|
-
[model]="option.checked"
|
|
500
|
-
[clickableLabel]="false"
|
|
501
|
-
(modelChange)="handleModelChange(option)"
|
|
502
|
-
></co-input-checkbox>
|
|
503
|
-
<co-input-radio-button *ngIf="mode === modes.SingleSelectList"
|
|
504
|
-
[label]="option.description"
|
|
505
|
-
[model]="option.checked"
|
|
506
|
-
(modelChange)="handleModelChange(option)"
|
|
507
|
-
></co-input-radio-button>
|
|
508
|
-
<div class="co-filter-item-amount" *ngIf="option.count"
|
|
509
|
-
[textContent]="option.count.toString() | append: ')' | prepend: ' ('"
|
|
510
|
-
></div>
|
|
511
|
-
</div>
|
|
512
|
-
|
|
513
|
-
</ng-container>
|
|
514
|
-
</div>
|
|
515
|
-
<div class="co-filter-show-more-or-less" *ngIf="!showAllResults">
|
|
516
|
-
<div class="co-filter-show-more clickable"
|
|
517
|
-
*ngIf="moreToShow()">
|
|
518
|
-
<a (click)="increaseLimit()">
|
|
519
|
-
<co-icon [iconData]="iconService.getIcon(icons.ArrowPointDown)"></co-icon>
|
|
520
|
-
<span [textContent]="showMoreLabel"></span>
|
|
521
|
-
</a>
|
|
522
|
-
</div>
|
|
523
|
-
<div class="co-filter-show-less clickable"
|
|
524
|
-
*ngIf="lessToShow()">
|
|
525
|
-
<a (click)="setToInitialLimit()">
|
|
526
|
-
<co-icon [iconData]="iconService.getIcon(icons.ArrowPointUp)"></co-icon>
|
|
527
|
-
<span [textContent]="showLessLabel"></span>
|
|
528
|
-
</a>
|
|
529
|
-
</div>
|
|
530
|
-
</div>
|
|
531
|
-
</div>
|
|
532
|
-
<div class="co-filter-item-slider-content" *ngIf="mode === modes.Slider">
|
|
533
|
-
<co-input-text
|
|
534
|
-
class="slider-from"
|
|
535
|
-
[type]="'number'"
|
|
536
|
-
[digitsOnly]="true"
|
|
537
|
-
[hideArrowButtons]="true"
|
|
538
|
-
[excludePlusMinus]="true"
|
|
539
|
-
[label]="'FROM' | coreLocalize"
|
|
540
|
-
[(model)]="sliderMin"
|
|
541
|
-
(focusout)="handleModelChange(sliderMin)"
|
|
542
|
-
></co-input-text>
|
|
543
|
-
<co-input-text
|
|
544
|
-
class="slider-to"
|
|
545
|
-
[type]="'number'"
|
|
546
|
-
[digitsOnly]="true"
|
|
547
|
-
[hideArrowButtons]="true"
|
|
548
|
-
[excludePlusMinus]="true"
|
|
549
|
-
[label]="'TO' | coreLocalize"
|
|
550
|
-
[(model)]="sliderMax"
|
|
551
|
-
(focusout)="handleModelChange(sliderMax)"
|
|
552
|
-
></co-input-text>
|
|
553
|
-
</div>
|
|
554
|
-
<div class="co-filter-item-slider-content" *ngIf="mode === modes.NullableSlider">
|
|
555
|
-
<co-input-text
|
|
556
|
-
class="slider-from"
|
|
557
|
-
[type]="'number'"
|
|
558
|
-
[digitsOnly]="true"
|
|
559
|
-
[hideArrowButtons]="true"
|
|
560
|
-
[excludePlusMinus]="true"
|
|
561
|
-
[label]="'FROM' | coreLocalize"
|
|
562
|
-
[(model)]="sliderMin"
|
|
563
|
-
(focusout)="handleModelChange(sliderMin)"
|
|
564
|
-
></co-input-text>
|
|
565
|
-
<co-input-text
|
|
566
|
-
class="slider-to"
|
|
567
|
-
[type]="'number'"
|
|
568
|
-
[digitsOnly]="true"
|
|
569
|
-
[hideArrowButtons]="true"
|
|
570
|
-
[excludePlusMinus]="true"
|
|
571
|
-
[label]="'TO' | coreLocalize"
|
|
572
|
-
[(model)]="sliderMax"
|
|
573
|
-
(focusout)="handleModelChange(sliderMax)"
|
|
574
|
-
></co-input-text>
|
|
575
|
-
</div>
|
|
576
|
-
<div class="co-filter-item-checkbox-content" *ngIf="mode === modes.Checkbox ">
|
|
577
|
-
<co-input-checkbox
|
|
578
|
-
[(model)]="model"
|
|
579
|
-
(modelChange)="handleModelChange($event)"
|
|
580
|
-
[label]="placeholder">
|
|
581
|
-
</co-input-checkbox>
|
|
582
|
-
</div>
|
|
583
|
-
<div class="co-filter-item-checkbox-content"
|
|
584
|
-
*ngIf="mode === modes.CheckboxToText || mode === modes.CheckboxToSimpleText || mode === modes.CheckboxToBinary">
|
|
585
|
-
<co-input-checkbox
|
|
586
|
-
[(model)]="checkBoxToTextModel"
|
|
587
|
-
(modelChange)="handleModelChange($event)"
|
|
588
|
-
[label]="placeholder"></co-input-checkbox>
|
|
589
|
-
</div>
|
|
590
|
-
<div class="co-filter-item-textfield-content" *ngIf="mode === modes.TextField">
|
|
591
|
-
<co-input-text
|
|
592
|
-
[(model)]="model"
|
|
593
|
-
(modelChange)="handleModelChange($event)"></co-input-text>
|
|
594
|
-
</div>
|
|
595
|
-
<div class="co-filter-item-dateField-content" *ngIf="mode === modes.DateField">
|
|
596
|
-
<co-input-date
|
|
597
|
-
[(model)]="model"
|
|
598
|
-
(modelChange)="handleModelChange($event)"
|
|
599
|
-
></co-input-date>
|
|
600
|
-
</div>
|
|
601
|
-
<div class="co-filter-item-dateField-content" *ngIf="mode === modes.DateRangeField">
|
|
602
|
-
<co-input-date-range
|
|
603
|
-
[model]="[dateRangeStart, dateRangeEnd]"
|
|
604
|
-
(modelChange)="handleModelChange($event)"
|
|
605
|
-
[placeholder]="'SELECT_DATE' | coreLocalize">
|
|
606
|
-
</co-input-date-range>
|
|
607
|
-
</div>
|
|
608
|
-
</ng-template>
|
|
609
|
-
</div>
|
|
610
|
-
</co-collapsible>
|
|
611
|
-
</div>
|
|
612
|
-
|
|
613
|
-
`,
|
|
614
|
-
encapsulation: ViewEncapsulation.None,
|
|
615
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
616
|
-
},] }
|
|
617
|
-
];
|
|
618
|
-
FilterItemComponent.ctorParameters = () => [
|
|
619
|
-
{ type: IconCacheService },
|
|
620
|
-
{ type: ChangeDetectorRef }
|
|
621
|
-
];
|
|
622
|
-
FilterItemComponent.propDecorators = {
|
|
623
|
-
mode: [{ type: Input }],
|
|
624
|
-
collection: [{ type: Input }],
|
|
625
|
-
placeholder: [{ type: Input }],
|
|
626
|
-
initialLimit: [{ type: Input }],
|
|
627
|
-
expanded: [{ type: Input }],
|
|
628
|
-
minSearchCharsToLoadCollection: [{ type: Input }],
|
|
629
|
-
collectionLoadFn: [{ type: Input }],
|
|
630
|
-
customContent: [{ type: Input }],
|
|
631
|
-
showAllResults: [{ type: Input }],
|
|
632
|
-
filterButtonLabel: [{ type: Input }],
|
|
633
|
-
searchPlaceholder: [{ type: Input }],
|
|
634
|
-
showMoreLabel: [{ type: Input }],
|
|
635
|
-
showLessLabel: [{ type: Input }],
|
|
636
|
-
noResultsLabel: [{ type: Input }],
|
|
637
|
-
sliderDefaultMin: [{ type: Input }],
|
|
638
|
-
sliderDefaultMax: [{ type: Input }],
|
|
639
|
-
fullRangeIsNull: [{ type: Input }],
|
|
640
|
-
model: [{ type: Input }],
|
|
641
|
-
modelChange: [{ type: Output }],
|
|
642
|
-
collectionChange: [{ type: Output }],
|
|
643
|
-
filterButtonClicked: [{ type: Output }],
|
|
644
|
-
filteredCollection: [{ type: HostBinding, args: ["class.co-filter-item",] }]
|
|
645
|
-
};
|
|
646
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci1pdGVtL2ZpbHRlci1pdGVtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUFFLGlCQUFpQixFQUMxQyxTQUFTLEVBQ1QsWUFBWSxFQUFFLFdBQVcsRUFDekIsS0FBSyxFQUVMLE1BQU0sRUFDTixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFFN0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBNkpwRSxNQUFNLE9BQU8sbUJBQW1CO0lBaUg5QixZQUFtQixXQUE2QixFQUM1QixlQUFrQztRQURuQyxnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDNUIsb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBakgvQyxVQUFLLEdBQThCLGtCQUFrQixDQUFDO1FBQ3RELFVBQUssR0FBMEIsY0FBYyxDQUFDO1FBNEI5QyxpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUcxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBUWpDLDRHQUE0RztRQUVyRyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUV0QyxtSEFBbUg7UUFFNUcsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFHaEMsc0JBQWlCLEdBQVcsUUFBUSxDQUFDO1FBR3JDLHNCQUFpQixHQUFXLFdBQVcsQ0FBQztRQUd4QyxrQkFBYSxHQUFXLFdBQVcsQ0FBQztRQUdwQyxrQkFBYSxHQUFXLFdBQVcsQ0FBQztRQUdwQyxtQkFBYyxHQUFXLFlBQVksQ0FBQztRQUd0QyxxQkFB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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUpUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDs7O1lBN0pPLGdCQUFnQjtZQVZHLGlCQUFpQjs7O21CQTRLekMsS0FBSzt5QkFVTCxLQUFLOzBCQVlMLEtBQUs7MkJBR0wsS0FBSzt1QkFHTCxLQUFLOzZDQUdMLEtBQUs7K0JBR0wsS0FBSzs0QkFJTCxLQUFLOzZCQUlMLEtBQUs7Z0NBR0wsS0FBSztnQ0FHTCxLQUFLOzRCQUdMLEtBQUs7NEJBR0wsS0FBSzs2QkFHTCxLQUFLOytCQUdMLEtBQUs7K0JBR0wsS0FBSzs4QkFHTCxLQUFLO29CQUdMLEtBQUs7MEJBU0wsTUFBTTsrQkFHTixNQUFNO2tDQUdOLE1BQU07aUNBR04sV0FBVyxTQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb3JlQ29tcG9uZW50c0ljb259IGZyb20gJy4uLy4uL2NvcmUvZW51bS9jb3JlLWNvbXBvbmVudHMtaWNvbi5lbnVtJztcclxuaW1wb3J0IHtGaWx0ZXJJdGVtVmlld21vZGVsfSBmcm9tICcuL2ZpbHRlci1pdGVtLXZpZXdtb2RlbCc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vaWNvbi9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0ZpbHRlckl0ZW1Nb2RlfSBmcm9tICcuLi8uLi9jb3JlL2VudW0vZmlsdGVySXRlbS1tb2RlLmVudW0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tZmlsdGVyLWl0ZW1cIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0taGVhZGVyXCI+XHJcbiAgICAgICAgICA8Y28tY29sbGFwc2libGVcclxuICAgICAgICAgICAgICAgICAgW2hlYWRlclRpdGxlXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgW2V4cGFuZEJ1dHRvbkxhc3RdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLkFycm93UG9pbnREb3duKVwiXHJcbiAgICAgICAgICAgICAgICAgIFtleHBhbmRlZF09XCJleHBhbmRlZFwiXHJcbiAgICAgICAgICAgICAgICAgIFtzaG93QnV0dG9uXT1cInNob3dCdXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBbYnV0dG9uVGV4dF09XCJmaWx0ZXJCdXR0b25MYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgIChidXR0b25DbGlja2VkKT1cIm9uQnV0dG9uQ2xpY2tlZCgpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0tY29sbGFwc2FibGUtY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0tY3VzdG9tLWNvbnRlbnRcIiAqbmdJZj1cImN1c3RvbUNvbnRlbnQ7IGVsc2UgY29sbGVjdGlvbkNvbnRlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cInNob3dCdXR0b249dHJ1ZVwiIChtb3VzZWRvd24pPVwic2hvd0J1dHRvbj10cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbGxlY3Rpb25Db250ZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWZpbHRlci1pdGVtLWNvbGxlY3Rpb24tY29udGVudFwiICpuZ0lmPVwibW9kZSA9PT0gbW9kZXMuRmlsdGVybGlzdCB8fCBtb2RlID09PSBtb2Rlcy5TaW5nbGVTZWxlY3RMaXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBtb2RlID09PSBtb2Rlcy5TZWxlY3RMaXN0V2l0aE51bWJlck91dHB1dCB8fCBtb2RlID09PSBtb2Rlcy5TZWxlY3RMaXN0V2l0aFN0cmluZ0NvbGxlY3Rpb25PdXRwdXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb2xsZWN0aW9uPy5sZW5ndGggPiAxMCB8fCBtaW5TZWFyY2hDaGFyc1RvTG9hZENvbGxlY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlbF09XCJmaWx0ZXJUZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJhcHBseUZpbHRlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuby1yZXN1bHRzXCIgKm5nSWY9XCJmaWx0ZXJlZENvbGxlY3Rpb24/Lmxlbmd0aCA9PT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwibm9SZXN1bHRzTGFiZWxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWZpbHRlci1pdGVtLWNvbGxlY3Rpb24tcmVzdWx0c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBmaWx0ZXJlZENvbGxlY3Rpb247IGxldCBpbmRleCA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0tY29sbGVjdGlvbi1yZXN1bHQtaXRlbVwiICpuZ0lmPVwiaW5kZXggPCBsaW1pdFRvIHx8IHNob3dBbGxSZXN1bHRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94ICpuZ0lmPVwibW9kZSAhPT0gbW9kZXMuU2luZ2xlU2VsZWN0TGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJvcHRpb24uZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwib3B0aW9uLmNoZWNrZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xpY2thYmxlTGFiZWxdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlTW9kZWxDaGFuZ2Uob3B0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28taW5wdXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXJhZGlvLWJ1dHRvbiAqbmdJZj1cIm1vZGUgPT09IG1vZGVzLlNpbmdsZVNlbGVjdExpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIm9wdGlvbi5kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwib3B0aW9uLmNoZWNrZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZU1vZGVsQ2hhbmdlKG9wdGlvbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLWlucHV0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0tYW1vdW50XCIgKm5nSWY9XCJvcHRpb24uY291bnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRDb250ZW50XT1cIm9wdGlvbi5jb3VudC50b1N0cmluZygpIHwgYXBwZW5kOiAnKScgfCBwcmVwZW5kOiAnICAgICAgKCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWZpbHRlci1zaG93LW1vcmUtb3ItbGVzc1wiICpuZ0lmPVwiIXNob3dBbGxSZXN1bHRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1maWx0ZXItc2hvdy1tb3JlIGNsaWNrYWJsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJtb3JlVG9TaG93KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJpbmNyZWFzZUxpbWl0KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taWNvbiBbaWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5BcnJvd1BvaW50RG93bilcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cInNob3dNb3JlTGFiZWxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLXNob3ctbGVzcyBjbGlja2FibGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibGVzc1RvU2hvdygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwic2V0VG9Jbml0aWFsTGltaXQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pY29uIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLkFycm93UG9pbnRVcClcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cInNob3dMZXNzTGFiZWxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0tc2xpZGVyLWNvbnRlbnRcIiAqbmdJZj1cIm1vZGUgPT09IG1vZGVzLlNsaWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsaWRlci1mcm9tXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIidudW1iZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaWdpdHNPbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGVBcnJvd0J1dHRvbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXhjbHVkZVBsdXNNaW51c109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInRlJPTScgfCBjb3JlTG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwic2xpZGVyTWluXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJoYW5kbGVNb2RlbENoYW5nZShzbGlkZXJNaW4pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsaWRlci10b1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCInbnVtYmVyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlnaXRzT25seV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRlQXJyb3dCdXR0b25zXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2V4Y2x1ZGVQbHVzTWludXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1RPJyB8IGNvcmVMb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJzbGlkZXJNYXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvY3Vzb3V0KT1cImhhbmRsZU1vZGVsQ2hhbmdlKHNsaWRlck1heClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1maWx0ZXItaXRlbS1zbGlkZXItY29udGVudFwiICpuZ0lmPVwibW9kZSA9PT0gbW9kZXMuTnVsbGFibGVTbGlkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbGlkZXItZnJvbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCInbnVtYmVyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlnaXRzT25seV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRlQXJyb3dCdXR0b25zXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2V4Y2x1ZGVQbHVzTWludXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0ZST00nIHwgY29yZUxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cInNsaWRlck1pblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9jdXNvdXQpPVwiaGFuZGxlTW9kZWxDaGFuZ2Uoc2xpZGVyTWluKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbGlkZXItdG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiJ251bWJlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RpZ2l0c09ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZUFycm93QnV0dG9uc109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtleGNsdWRlUGx1c01pbnVzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidUTycgfCBjb3JlTG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwic2xpZGVyTWF4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJoYW5kbGVNb2RlbENoYW5nZShzbGlkZXJNYXgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0tY2hlY2tib3gtY29udGVudFwiICpuZ0lmPVwibW9kZSA9PT0gbW9kZXMuQ2hlY2tib3ggXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJtb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwicGxhY2Vob2xkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0tY2hlY2tib3gtY29udGVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibW9kZSA9PT0gbW9kZXMuQ2hlY2tib3hUb1RleHQgfHwgbW9kZSA9PT0gbW9kZXMuQ2hlY2tib3hUb1NpbXBsZVRleHQgfHwgbW9kZSA9PT0gbW9kZXMuQ2hlY2tib3hUb0JpbmFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwiY2hlY2tCb3hUb1RleHRNb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwicGxhY2Vob2xkZXJcIj48L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0tdGV4dGZpZWxkLWNvbnRlbnRcIiAqbmdJZj1cIm1vZGUgPT09IG1vZGVzLlRleHRGaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJtb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlTW9kZWxDaGFuZ2UoJGV2ZW50KVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWZpbHRlci1pdGVtLWRhdGVGaWVsZC1jb250ZW50XCIgKm5nSWY9XCJtb2RlID09PSBtb2Rlcy5EYXRlRmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtZGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwibW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZU1vZGVsQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLWlucHV0LWRhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1maWx0ZXItaXRlbS1kYXRlRmllbGQtY29udGVudFwiICpuZ0lmPVwibW9kZSA9PT0gbW9kZXMuRGF0ZVJhbmdlRmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtZGF0ZS1yYW5nZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cIltkYXRlUmFuZ2VTdGFydCwgZGF0ZVJhbmdlRW5kXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NFTEVDVF9EQVRFJyB8IGNvcmVMb2NhbGl6ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvY28taW5wdXQtZGF0ZS1yYW5nZT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9jby1jb2xsYXBzaWJsZT5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVySXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHVibGljIGljb25zOiB0eXBlb2YgQ29yZUNvbXBvbmVudHNJY29uID0gQ29yZUNvbXBvbmVudHNJY29uO1xyXG4gIHB1YmxpYyBtb2RlczogdHlwZW9mIEZpbHRlckl0ZW1Nb2RlID0gRmlsdGVySXRlbU1vZGU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBtb2RlKHZhbHVlOiBGaWx0ZXJJdGVtTW9kZSkge1xyXG4gICAgdGhpcy5fbW9kZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5yZWFkTW9kZWxGb3JNb2RlKHRoaXMuX21vZGVsKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbW9kZSgpOiBGaWx0ZXJJdGVtTW9kZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbW9kZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBjb2xsZWN0aW9uKHZhbHVlOiBGaWx0ZXJJdGVtVmlld21vZGVsW10pIHtcclxuICAgIHRoaXMuX2NvbGxlY3Rpb24gPSB2YWx1ZTtcclxuICAgIHRoaXMuZmlsdGVyZWRDb2xsZWN0aW9uID0gdGhpcy5fY29sbGVjdGlvbj8uc2xpY2UoKTtcclxuICAgIC8vcmVzZXQgdGhlIG1vZGVsIGluIGNhc2UgdGhlcmUgd2FzIG5vIGNvbGxlY3Rpb24gdG8gc2V0IGl0cyB2YWx1ZXMgb24gd2hlbiBpdCB3YXMgc2V0LlxyXG4gICAgdGhpcy5tb2RlbCA9IHRoaXMuX21vZGVsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjb2xsZWN0aW9uKCk6IEZpbHRlckl0ZW1WaWV3bW9kZWxbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29sbGVjdGlvbjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGluaXRpYWxMaW1pdDogbnVtYmVyID0gMTA7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGV4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG1pblNlYXJjaENoYXJzVG9Mb2FkQ29sbGVjdGlvbjogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjb2xsZWN0aW9uTG9hZEZuOiBGdW5jdGlvbjtcclxuXHJcbiAgLy8gU2V0IHRvIGZhbHNlIHRvIHVzZSBmaWx0ZXIgaXRlbSB3aXRoIGEgbXVsdGkgc2VsZWN0YWJsZSBjb2xsZWN0aW9uLiBTZXQgdG8gdHJ1ZSB0byBzcGVjaWZ5IGN1c3RvbSBjb250ZW50XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgY3VzdG9tQ29udGVudDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvLyBTZXQgdG8gdHJ1ZSB0byBzaG93IGFsbCByZXN1bHRzLiBTZXQgdG8gZmFsc2UgdG8gZ2V0ICdzaG93IG1vcmUnIGFuZCAnc2hvdyBsZXNzJyBidXR0b25zIHRvIGV4cGFuZCBhbmQgY29udHJhY3QuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd0FsbFJlc3VsdHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZmlsdGVyQnV0dG9uTGFiZWw6IHN0cmluZyA9IFwiU2VhcmNoXCI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNlYXJjaFBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnU2VhcmNoLi4uJztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd01vcmVMYWJlbDogc3RyaW5nID0gJ1Nob3cgbW9yZSc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dMZXNzTGFiZWw6IHN0cmluZyA9ICdTaG93IGxlc3MnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBub1Jlc3VsdHNMYWJlbDogc3RyaW5nID0gXCJObyByZXN1bHRzXCI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNsaWRlckRlZmF1bHRNaW46IG51bWJlciA9IDA7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNsaWRlckRlZmF1bHRNYXg6IG51bWJlciA9IDEwMDAwMDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZnVsbFJhbmdlSXNOdWxsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBtb2RlbChuZXdNb2RlbDogYW55KSB7XHJcbiAgICB0aGlzLnJlYWRNb2RlbEZvck1vZGUobmV3TW9kZWwpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBtb2RlbCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX21vZGVsO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG1vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgY29sbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEZpbHRlckl0ZW1WaWV3bW9kZWxbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPEZpbHRlckl0ZW1WaWV3bW9kZWxbXT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGZpbHRlckJ1dHRvbkNsaWNrZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tZmlsdGVyLWl0ZW1cIilcclxuXHJcbiAgcHVibGljIGZpbHRlcmVkQ29sbGVjdGlvbjogRmlsdGVySXRlbVZpZXdtb2RlbFtdID0gW107XHJcbiAgcHVibGljIGxpbWl0VG86IG51bWJlciA9IDEwO1xyXG4gIHB1YmxpYyBmaWx0ZXJUZXh0OiBzdHJpbmcgPSBcIlwiO1xyXG4gIHB1YmxpYyBzaG93QnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vbW9kZWxzIGZvciB0aGUgc2xpZGVyIGZpZWxkIGlucHV0c1xyXG4gIHB1YmxpYyBzbGlkZXJNaW46IG51bWJlcjtcclxuICBwdWJsaWMgc2xpZGVyTWF4OiBudW1iZXI7XHJcblxyXG4gIC8vbW9kZWxzIGZvciB0aCBkYXRlcmFuZ2UgaW5wdXRcclxuICBwdWJsaWMgZGF0ZVJhbmdlU3RhcnQ6IERhdGU7XHJcbiAgcHVibGljIGRhdGVSYW5nZUVuZDogRGF0ZTtcclxuXHJcbiAgLy9tb2RlbCBmb3IgdGhlIHRleHRib3ggb3B0aW9ucyB0aGF0IG5lZWQgYSBjb252ZXJ0ZWQgb3V0cHV0XHJcbiAgcHVibGljIGNoZWNrQm94VG9UZXh0TW9kZWw6IGJvb2xlYW47XHJcblxyXG4gIHByaXZhdGUgX2NvbGxlY3Rpb246IEZpbHRlckl0ZW1WaWV3bW9kZWxbXSA9IFtdO1xyXG4gIHByaXZhdGUgX21vZGU6IEZpbHRlckl0ZW1Nb2RlID0gdGhpcy5tb2Rlcy5GaWx0ZXJsaXN0O1xyXG4gIHByaXZhdGUgX21vZGVsOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpY29uU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0VG9Jbml0aWFsTGltaXQoKTtcclxuICAgIHRoaXMuc2hvd0J1dHRvbiA9IHRoaXMudmFsdWVTZWxlY3RlZCgpO1xyXG4gICAgaWYodGhpcy5jaGVja0JveFRvVGV4dE1vZGVsID09PSB1bmRlZmluZWQgfHwgdGhpcy5jaGVja0JveFRvVGV4dE1vZGVsID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tCb3hUb1RleHRNb2RlbCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFRvSW5pdGlhbExpbWl0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5saW1pdFRvID0gdGhpcy5pbml0aWFsTGltaXQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaW5jcmVhc2VMaW1pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubGltaXRUbyArPSAxMDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBtb3JlVG9TaG93KCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuc2hvd0FsbFJlc3VsdHMpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRDb2xsZWN0aW9uPy5sZW5ndGggPiB0aGlzLmxpbWl0VG87XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbGVzc1RvU2hvdygpIHtcclxuICAgIGlmICh0aGlzLnNob3dBbGxSZXN1bHRzKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmZpbHRlcmVkQ29sbGVjdGlvbj8ubGVuZ3RoIDw9IHRoaXMubGltaXRUbyAmJiB0aGlzLmZpbHRlcmVkQ29sbGVjdGlvbj8ubGVuZ3RoID4gdGhpcy5pbml0aWFsTGltaXQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlTW9kZWxDaGFuZ2UobW9kZWw6IGFueSkge1xyXG4gICAgc3dpdGNoICh0aGlzLm1vZGUpIHtcclxuICAgICAgY2FzZSB0aGlzLm1vZGVzLkZpbHRlcmxpc3Q6XHJcbiAgICAgICAgdGhpcy5zaG93QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICBtb2RlbC5jaGVja2VkID0gIW1vZGVsLmNoZWNrZWQ7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlTW9kZWxGb3JGaWx0ZXJMaXN0KCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5TZWxlY3RMaXN0V2l0aFN0cmluZ0NvbGxlY3Rpb25PdXRwdXQ6XHJcbiAgICAgICAgdGhpcy5zaG93QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICBtb2RlbC5jaGVja2VkID0gIW1vZGVsLmNoZWNrZWQ7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlTW9kZWxGb3JTdHJpbmdDb2xsZWN0aW9uTGlzdCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuU2luZ2xlU2VsZWN0TGlzdDpcclxuICAgICAgICB0aGlzLnNob3dCdXR0b24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMudW5jaGVja0ZvclNpbmdsZVNlbGVjdChtb2RlbCk7XHJcbiAgICAgICAgbW9kZWwuY2hlY2tlZCA9ICFtb2RlbC5jaGVja2VkO1xyXG4gICAgICAgIHRoaXMuX2NyZWF0ZU1vZGVsRm9yU2luZ2xlU2VsZWN0TGlzdCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuU2VsZWN0TGlzdFdpdGhOdW1iZXJPdXRwdXQ6XHJcbiAgICAgICAgdGhpcy5zaG93QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICBtb2RlbC5jaGVja2VkID0gIW1vZGVsLmNoZWNrZWQ7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlTW9kZWxGb3JTZWxlY3RMaXN0V2l0aE51bWJlck91dHB1dCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuU2xpZGVyOlxyXG4gICAgICAgIHRoaXMuc2hvd0J1dHRvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlTW9kZWxGb3JTbGlkZXJNb2RlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5OdWxsYWJsZVNsaWRlcjpcclxuICAgICAgICB0aGlzLnNob3dCdXR0b24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX2NyZWF0ZU1vZGVsRm9yTnVsbGFibGVTbGlkZXJNb2RlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5DaGVja2JveFRvVGV4dDpcclxuICAgICAgICB0aGlzLnNob3dCdXR0b24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX2NyZWF0ZU1vZGVsRm9yQ2hlY2tib3hUb1RleHQoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLm1vZGVzLkNoZWNrYm94VG9TaW1wbGVUZXh0OlxyXG4gICAgICAgIHRoaXMuc2hvd0J1dHRvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlTW9kZWxGb3JDaGVja2JveFRvU2ltcGxlVGV4dCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuQ2hlY2tib3hUb0JpbmFyeTpcclxuICAgICAgICB0aGlzLnNob3dCdXR0b24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX2NyZWF0ZU1vZGVsRm9yQ2hlY2tib3hUb0JpbmFyeSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuRGF0ZVJhbmdlRmllbGQ6XHJcbiAgICAgICAgdGhpcy5zaG93QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLl9jcmVhdGVNb2RlbEZvckRhdGVSYW5nZShtb2RlbCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5UZXh0RmllbGQ6XHJcbiAgICAgICAgdGhpcy5zaG93QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLl9tb2RlbCA9ICh0eXBlb2YgdGhpcy5fbW9kZWwgPT09ICdzdHJpbmcnICYmIHRoaXMuX21vZGVsLmxlbmd0aCA9PT0gMCkgPyB1bmRlZmluZWQgOiB0aGlzLl9tb2RlbDtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLl9tb2RlbCk7XHJcbiAgICB0aGlzLmNvbGxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLmNvbGxlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHZhbHVlU2VsZWN0ZWQoKSB7XHJcbiAgICBpZiAodGhpcy5jb2xsZWN0aW9uKSB7XHJcbiAgICAgIHJldHVybiAhIXRoaXMuY29sbGVjdGlvbi5maW5kKGMgPT4gYy5jaGVja2VkKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8vIEFwcGxpZXMgZmlsdGVyIHRvIHRoZSBjb2xsZWN0aW9uLlxyXG4gIHB1YmxpYyBhc3luYyBhcHBseUZpbHRlcih0ZXh0OiBzdHJpbmcpOiBQcm9taXNlPFtdPiB7XHJcbiAgICBpZiAoIWlzTmFOKHRoaXMubWluU2VhcmNoQ2hhcnNUb0xvYWRDb2xsZWN0aW9uKSAmJiB0aGlzLmNvbGxlY3Rpb25Mb2FkRm4pIHtcclxuICAgICAgaWYgKHRleHQubGVuZ3RoID09PSB0aGlzLm1pblNlYXJjaENoYXJzVG9Mb2FkQ29sbGVjdGlvbiAmJiB0ZXh0Lmxlbmd0aCA+IHRoaXMuZmlsdGVyVGV4dC5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLmNvbGxlY3Rpb24gPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb25Mb2FkRm4odGV4dCk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGV4dC5sZW5ndGggPCB0aGlzLm1pblNlYXJjaENoYXJzVG9Mb2FkQ29sbGVjdGlvbikge1xyXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbiA9IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5maWx0ZXJUZXh0ID0gdGV4dDtcclxuICAgIGlmICghdGhpcy5jb2xsZWN0aW9uKSB7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmaWx0ZXJUZXh0OiBzdHJpbmcgPSB0aGlzLmZpbHRlclRleHQ/LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtcclxuICAgIGxldCBmaWx0ZXJlZEl0ZW1Db3VudDogbnVtYmVyID0gMDtcclxuICAgIHRoaXMuZmlsdGVyZWRDb2xsZWN0aW9uID0gdGhpcy5jb2xsZWN0aW9uPy5maWx0ZXIoKGl0ZW0pID0+IHtcclxuICAgICAgY29uc3QgbGFiZWxUZXh0OiBzdHJpbmcgPSBpdGVtLmRlc2NyaXB0aW9uPy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIGNvbnN0IGlzSGlkZGVuQnlGaWx0ZXI6IGJvb2xlYW4gPSAobGFiZWxUZXh0Py5pbmRleE9mKGZpbHRlclRleHQpID09PSAtMSk7XHJcbiAgICAgIGlmIChpc0hpZGRlbkJ5RmlsdGVyKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGZpbHRlcmVkSXRlbUNvdW50Kys7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsdGVyQnV0dG9uQ2xpY2tlZC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVuY2hlY2tGb3JTaW5nbGVTZWxlY3QobW9kZWw6IEZpbHRlckl0ZW1WaWV3bW9kZWwpOiB2b2lkIHtcclxuICAgIHRoaXMuY29sbGVjdGlvbi5mb3JFYWNoKG0gPT4ge1xyXG4gICAgICBpZiAobS5jb2RlICE9PSBtb2RlbC5jb2RlICYmIG0uZGVzY3JpcHRpb24gIT09IG1vZGVsLmRlc2NyaXB0aW9uKSB7XHJcbiAgICAgICAgbS5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkTW9kZWxGb3JNb2RlKG5ld01vZGVsOiBhbnkpOiB2b2lkIHtcclxuICAgIHN3aXRjaCAodGhpcy5tb2RlKSB7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5GaWx0ZXJsaXN0OlxyXG4gICAgICAgIHRoaXMuX3JlYWRNb2RlbEZvckZpbHRlckxpc3QobmV3TW9kZWwpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuU2luZ2xlU2VsZWN0TGlzdDpcclxuICAgICAgICB0aGlzLl9yZWFkTW9kZWxGb3JTaW5nbGVTZWxlY3RMaXN0KG5ld01vZGVsKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLm1vZGVzLlNlbGVjdExpc3RXaXRoU3RyaW5nQ29sbGVjdGlvbk91dHB1dDpcclxuICAgICAgICB0aGlzLl9yZWFkTW9kZWxGb3JTdHJpbmdDb2xsZWN0aW9uTGlzdChuZXdNb2RlbCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5TZWxlY3RMaXN0V2l0aE51bWJlck91dHB1dDpcclxuICAgICAgICB0aGlzLl9yZWFkTW9kZWxGb3JTZWxlY3RMaXN0V2l0aE51bWJlck91dHB1dChuZXdNb2RlbCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5TbGlkZXI6XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5OdWxsYWJsZVNsaWRlcjpcclxuICAgICAgICB0aGlzLl9yZWFkTW9kZWxGb3JTbGlkZXJNb2RlKG5ld01vZGVsKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLm1vZGVzLkNoZWNrYm94VG9UZXh0OlxyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuQ2hlY2tib3hUb1NpbXBsZVRleHQ6XHJcbiAgICAgICAgdGhpcy5fcmVhZE1vZGVsRm9yQ2hlY2tib3hUb1RleHQobmV3TW9kZWwpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuQ2hlY2tib3hUb0JpbmFyeTpcclxuICAgICAgICB0aGlzLl9yZWFkTW9kZWxGb3JDaGVja2JveFRvQmluYXJ5KG5ld01vZGVsKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLm1vZGVzLkRhdGVGaWVsZDpcclxuICAgICAgICB0aGlzLl9yZWFkTW9kZWxGb3JEYXRlRmllbGQobmV3TW9kZWwpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuRGF0ZVJhbmdlRmllbGQ6XHJcbiAgICAgICAgdGhpcy5fcmVhZE1vZGVsRm9yRGF0ZVJhbmdlRmllbGQobmV3TW9kZWwpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRoaXMuX21vZGVsID0gbmV3TW9kZWw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAvL01vZGVsIGNyZWF0aW9uIGZvciBhbGwgb2YgdGhlIGRpZmZlcmVudCBvcHRpb25zIGF2YWlsYWJsZS8vXHJcbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gIHByaXZhdGUgX2NyZWF0ZU1vZGVsRm9yRmlsdGVyTGlzdCgpOiB2b2lkIHtcclxuICAgIGxldCBmaWx0ZXJSYW5nZTogc3RyaW5nW10gPSBbXTtcclxuICAgIGlmICh0aGlzLmNvbGxlY3Rpb24gIT09IG51bGwgJiYgdGhpcy5jb2xsZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5jb2xsZWN0aW9uLmZvckVhY2goKHZpZXdNb2RlbDogRmlsdGVySXRlbVZpZXdtb2RlbCkgPT4ge1xyXG4gICAgICAgIGlmICh2aWV3TW9kZWwuY2hlY2tlZCkge1xyXG4gICAgICAgICAgZmlsdGVyUmFuZ2UucHVzaChgPz0nJHt2aWV3TW9kZWwuY29kZX0nYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKGZpbHRlclJhbmdlLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLl9tb2RlbCA9IGZpbHRlclJhbmdlLmpvaW4oJywnKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLl9tb2RlbCA9IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlTW9kZWxGb3JTdHJpbmdDb2xsZWN0aW9uTGlzdCgpOiB2b2lkIHtcclxuICAgIGxldCBmaWx0ZXJSYW5nZTogc3RyaW5nW10gPSBbXTtcclxuICAgIHRoaXMuY29sbGVjdGlvbi5mb3JFYWNoKCh2aWV3TW9kZWw6IEZpbHRlckl0ZW1WaWV3bW9kZWwpID0+IHtcclxuICAgICAgaWYgKHZpZXdNb2RlbC5jaGVja2VkKSB7XHJcbiAgICAgICAgZmlsdGVyUmFuZ2UucHVzaCh2aWV3TW9kZWwuY29kZS50b1N0cmluZygpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAoZmlsdGVyUmFuZ2UubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLl9tb2RlbCA9IGZpbHRlclJhbmdlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fbW9kZWwgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVNb2RlbEZvclNpbmdsZVNlbGVjdExpc3QoKTogdm9pZCB7XHJcbiAgICBsZXQgZmlsdGVyU3RyaW5nOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgdGhpcy5jb2xsZWN0aW9uLmZvckVhY2goKHZpZXdNb2RlbDogRmlsdGVySXRlbVZpZXdtb2RlbCkgPT4ge1xyXG4gICAgICBpZiAodmlld01vZGVsLmNoZWNrZWQpIHtcclxuICAgICAgICBmaWx0ZXJTdHJpbmcgPSB2aWV3TW9kZWwuY29kZS50b1N0cmluZygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmIChmaWx0ZXJTdHJpbmcubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLl9tb2RlbCA9IGZpbHRlclN0cmluZztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX21vZGVsID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlTW9kZWxGb3JTZWxlY3RMaXN0V2l0aE51bWJlck91dHB1dCgpOiB2b2lkIHtcclxuICAgIGxldCBmaWx0ZXJOdW1iZXI6IG51bWJlciA9IG51bGw7XHJcbiAgICB0aGlzLmNvbGxlY3Rpb24uZm9yRWFjaCgodmlld01vZGVsOiBGaWx0ZXJJdGVtVmlld21vZGVsKSA9PiB7XHJcbiAgICAgIGlmICh2aWV3TW9kZWwuY2hlY2tlZCkge1xyXG4gICAgICAgIGlmIChmaWx0ZXJOdW1iZXIgPT0gbnVsbCkge1xyXG4gICAgICAgICAgZmlsdGVyTnVtYmVyID0gMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmlsdGVyTnVtYmVyICs9IE51bWJlcih2aWV3TW9kZWwuY29kZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5fbW9kZWwgPSBmaWx0ZXJOdW1iZXI7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVNb2RlbEZvclNsaWRlck1vZGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNsaWRlck1pbiA9ICEhdGhpcy5zbGlkZXJNaW4gPyB0aGlzLnNsaWRlck1pbiA6IHRoaXMuc2xpZGVyRGVmYXVsdE1pbjtcclxuICAgIHRoaXMuc2xpZGVyTWF4ID0gISF0aGlzLnNsaWRlck1heCA/IHRoaXMuc2xpZGVyTWF4IDogdGhpcy5zbGlkZXJEZWZhdWx0TWF4O1xyXG5cclxuICAgIGxldCB0cnVlTG93ZXJCb3VuZCA9IE1hdGgubWluKHRoaXMuc2xpZGVyTWluLCB0aGlzLnNsaWRlck1heCk7XHJcbiAgICBsZXQgdHJ1ZVVwcGVyQm91bmQgPSBNYXRoLm1heCh0aGlzLnNsaWRlck1pbiwgdGhpcy5zbGlkZXJNYXgpO1xyXG5cclxuICAgIHRoaXMuc2xpZGVyTWluID0gdHJ1ZUxvd2VyQm91bmQ7XHJcbiAgICB0aGlzLnNsaWRlck1heCA9IHRydWVVcHBlckJvdW5kO1xyXG4gICAgdGhpcy5fbW9kZWwgPSBgJHt0cnVlTG93ZXJCb3VuZH0gLSAke3RydWVVcHBlckJvdW5kfWA7XHJcblxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlTW9kZWxGb3JOdWxsYWJsZVNsaWRlck1vZGUoKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKHRoaXMuc2xpZGVyTWluICYmIHRoaXMuc2xpZGVyTWF4KSB7XHJcbiAgICAgIGxldCB0cnVlTG93ZXJCb3VuZCA9IE1hdGgubWluKHRoaXMuc2xpZGVyTWluLCB0aGlzLnNsaWRlck1heCk7XHJcbiAgICAgIGxldCB0cnVlVXBwZXJCb3VuZCA9IE1hdGgubWF4KHRoaXMuc2xpZGVyTWluLCB0aGlzLnNsaWRlck1heCk7XHJcblxyXG4gICAgICB0aGlzLl9tb2RlbCA9IGAke3RydWVMb3dlckJvdW5kfSAtICR7dHJ1ZVVwcGVyQm91bmR9YDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX21vZGVsID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NyZWF0ZU1vZGVsRm9yQ2hlY2tib3hUb1RleHQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jaGVja0JveFRvVGV4dE1vZGVsKSB7XHJcbiAgICAgIHRoaXMuX21vZGVsID0gXCI/PSdKJ1wiO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fbW9kZWwgPSBcIj89J04nXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVNb2RlbEZvckNoZWNrYm94VG9TaW1wbGVUZXh0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY2hlY2tCb3hUb1RleHRNb2RlbCkge1xyXG4gICAgICB0aGlzLl9tb2RlbCA9IFwiSlwiO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fbW9kZWwgPSBcIk5cIjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NyZWF0ZU1vZGVsRm9yQ2hlY2tib3hUb0JpbmFyeSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNoZWNrQm94VG9UZXh0TW9kZWwpIHtcclxuICAgICAgdGhpcy5fbW9kZWwgPSAxO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fbW9kZWwgPSAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlTW9kZWxGb3JEYXRlUmFuZ2UoZGF0ZXM6IERhdGVbXSk6IHZvaWQge1xyXG4gICAgaWYgKGRhdGVzKSB7XHJcbiAgICAgIGxldCBzdGFydERhdGUgPSBkYXRlc1swXTtcclxuICAgICAgbGV0IGVuZERhdGUgPSBkYXRlc1sxXTtcclxuXHJcbiAgICAgIGNvbnN0IHN0YXJ0RGF0ZVJlcXVlc3QgPSBzdGFydERhdGUgPyB0aGlzLl9mb3JtYXREYXRlVG9TdHJpbmcoc3RhcnREYXRlKSA6ICcnO1xyXG4gICAgICBjb25zdCBlbmREYXRlUmVxdWVzdCA9IGVuZERhdGUgPyB0aGlzLl9mb3JtYXREYXRlVG9TdHJpbmcoZW5kRGF0ZSkgOiAnJztcclxuXHJcbiAgICAgIHRoaXMuX21vZGVsID0gYD8+PVxcJyR7c3RhcnREYXRlUmVxdWVzdH1cXCcmID88PVxcJyR7ZW5kRGF0ZVJlcXVlc3R9XFwnYDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2Zvcm1hdERhdGVUb1N0cmluZyhkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgIGxldCBkYXkgPSBkYXRlLmdldERhdGUoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICBsZXQgbW9udGggPSAoZGF0ZS5nZXRNb250aCgpICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgbGV0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XHJcblxyXG4gICAgcmV0dXJuIGAke2RheX0tJHttb250aH0tJHt5ZWFyfWA7XHJcbiAgfVxyXG5cclxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAvL01vZGVsIHJlYWRpbmcgZm9yIGFsbCBvZiB0aGUgZGlmZmVyZW50IG9wdGlvbnMgYXZhaWxhYmxlLy9cclxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICBwcml2YXRlIF9yZWFkTW9kZWxGb3JGaWx0ZXJMaXN0KGZpbHRlck1vZGVsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGxldCBmaWx0ZXJMaXN0OiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgbGV0IGl0ZW1zVG9DaGVjazogc3RyaW5nW10gPSBbXTtcclxuICAgIHRoaXMuX3VuY2hlY2tBbGwoKTtcclxuICAgIHRoaXMuX21vZGVsID0gZmlsdGVyTW9kZWw7XHJcblxyXG4gICAgaWYgKGZpbHRlck1vZGVsICE9PSBudWxsICYmIGZpbHRlck1vZGVsICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIGZpbHRlck1vZGVsID09PSAnc3RyaW5nJyAmJiBmaWx0ZXJNb2RlbC5sZW5ndGggIT0gMCAmJiB0aGlzLmNvbGxlY3Rpb24gIT09IG51bGwgJiYgdGhpcy5jb2xsZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgZmlsdGVyTGlzdCA9IGZpbHRlck1vZGVsLnNwbGl0KFwiLFwiKVxyXG4gICAgICBmaWx0ZXJMaXN0LmZvckVhY2goKGZpbHRlcjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgaXRlbXNUb0NoZWNrLnB1c2goZmlsdGVyLnN1YnN0cigzLCBmaWx0ZXIubGVuZ3RoIC0gNCkpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtc1RvQ2hlY2spIHtcclxuICAgICAgICBsZXQgZmlsdGVyID0gdGhpcy5jb2xsZWN0aW9uLmZpbmQoZWxlbWVudCA9PiBlbGVtZW50LmNvZGUudG9TdHJpbmcoKSA9PT0gaXRlbSk7XHJcbiAgICAgICAgaWYgKGZpbHRlciAhPT0gbnVsbCAmJiBmaWx0ZXIgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgZmlsdGVyLmNoZWNrZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9tb2RlbCA9IGZpbHRlck1vZGVsO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3JlYWRNb2RlbEZvclNpbmdsZVNlbGVjdExpc3Qoc2luZ2xlU2VsZWN0TW9kZWw6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdW5jaGVja0FsbCgpO1xyXG4gICAgdGhpcy5fbW9kZWwgPSBzaW5nbGVTZWxlY3RNb2RlbDtcclxuXHJcbiAgICBpZiAoc2luZ2xlU2VsZWN0TW9kZWwgIT09IG51bGwgJiYgc2luZ2xlU2VsZWN0TW9kZWwgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmNvbGxlY3Rpb24gIT09IG51bGwgJiYgdGhpcy5jb2xsZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgbGV0IGZpbHRlciA9IHRoaXMuY29sbGVjdGlvbi5maW5kKGVsZW1lbnQgPT4gZWxlbWVudC5jb2RlLnRvU3RyaW5nKCkgPT09IHNpbmdsZVNlbGVjdE1vZGVsKTtcclxuICAgICAgaWYgKGZpbHRlciAhPT0gbnVsbCAmJiBmaWx0ZXIgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGZpbHRlci5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVhZE1vZGVsRm9yU3RyaW5nQ29sbGVjdGlvbkxpc3QoY29sbGVjdGlvbk1vZGVsOiBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5jaGVja0FsbCgpO1xyXG4gICAgdGhpcy5fbW9kZWwgPSBjb2xsZWN0aW9uTW9kZWw7XHJcblxyXG4gICAgaWYgKGNvbGxlY3Rpb25Nb2RlbCAhPT0gbnVsbCAmJiBjb2xsZWN0aW9uTW9kZWwgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmNvbGxlY3Rpb24gIT09IG51bGwgJiYgdGhpcy5jb2xsZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5jb2xsZWN0aW9uLmZvckVhY2goKHZpZXdNb2RlbDogRmlsdGVySXRlbVZpZXdtb2RlbCkgPT4ge1xyXG4gICAgICAgIGlmIChjb2xsZWN0aW9uTW9kZWwuaW5kZXhPZih2aWV3TW9kZWwuY29kZS50b1N0cmluZygpKSA+IC0xKSB7XHJcbiAgICAgICAgICB2aWV3TW9kZWwuY2hlY2tlZCA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHZpZXdNb2RlbC5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3JlYWRNb2RlbEZvclNlbGVjdExpc3RXaXRoTnVtYmVyT3V0cHV0KG51bWJlck1vZGVsOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3VuY2hlY2tBbGwoKTtcclxuICAgIHRoaXMuX21vZGVsID0gbnVtYmVyTW9kZWw7XHJcblxyXG4gICAgaWYgKG51bWJlck1vZGVsICE9PSBudWxsICYmIG51bWJlck1vZGVsICE9PSB1bmRlZmluZWQgJiYgdGhpcy5jb2xsZWN0aW9uICE9PSBudWxsICYmIHRoaXMuY29sbGVjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLmNvbGxlY3Rpb24pIHtcclxuICAgICAgICBjb25zdCBpdGVtQ29kZTogbnVtYmVyID0gaXRlbS5jb2RlIGFzIG51bWJlcjtcclxuICAgICAgICBjb25zdCBtb2RWYWx1ZSA9IChudW1iZXJNb2RlbCAlICgyICogaXRlbUNvZGUpKTtcclxuICAgICAgICBpdGVtLmNoZWNrZWQgPSAobW9kVmFsdWUgPj0gaXRlbUNvZGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91bmNoZWNrQWxsKCkge1xyXG4gICAgaWYgKHRoaXMuY29sbGVjdGlvbiAhPT0gbnVsbCAmJiB0aGlzLmNvbGxlY3Rpb24gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmNvbGxlY3Rpb24uZm9yRWFjaChtID0+IHtcclxuICAgICAgICBtLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9yZWFkTW9kZWxGb3JTbGlkZXJNb2RlKHNsaWRlck1vZGVsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuX21vZGVsID0gc2xpZGVyTW9kZWw7XHJcbiAgICBpZiAoc2xpZGVyTW9kZWwgIT09IHVuZGVmaW5lZCAmJiBzbGlkZXJNb2RlbCAhPT0gbnVsbCkge1xyXG4gICAgICBsZXQgc2xpZGVySW5wdXRDb2xsZWN0aW9uID0gc2xpZGVyTW9kZWwuc3BsaXQoJyAtICcpO1xyXG4gICAgICB0aGlzLnNsaWRlck1pbiA9IHBhcnNlSW50KHNsaWRlcklucHV0Q29sbGVjdGlvblswXSk7XHJcbiAgICAgIHRoaXMuc2xpZGVyTWF4ID0gcGFyc2VJbnQoc2xpZGVySW5wdXRDb2xsZWN0aW9uWzFdKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2xpZGVyTWluID0gdGhpcy5zbGlkZXJEZWZhdWx0TWluO1xyXG4gICAgICB0aGlzLnNsaWRlck1heCA9IHRoaXMuc2xpZGVyRGVmYXVsdE1heDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3JlYWRNb2RlbEZvckNoZWNrYm94VG9UZXh0KGNoZWNrYm94VG9UZXh0TW9kZWw6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fbW9kZWwgPSBjaGVja2JveFRvVGV4dE1vZGVsO1xyXG4gICAgaWYgKGNoZWNrYm94VG9UZXh0TW9kZWwgIT09IHVuZGVmaW5lZCAmJiBjaGVja2JveFRvVGV4dE1vZGVsICE9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tCb3hUb1RleHRNb2RlbCA9IChjaGVja2JveFRvVGV4dE1vZGVsLmluZGV4T2YoJ0onKSA+IC0xKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2hlY2tCb3hUb1RleHRNb2RlbCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVhZE1vZGVsRm9yQ2hlY2tib3hUb0JpbmFyeShjaGVja2JveFRvQmluYXJ5OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX21vZGVsID0gY2hlY2tib3hUb0JpbmFyeTtcclxuICAgIGlmIChjaGVja2JveFRvQmluYXJ5ICE9PSB1bmRlZmluZWQgJiYgY2hlY2tib3hUb0JpbmFyeSAhPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmNoZWNrQm94VG9UZXh0TW9kZWwgPSAoY2hlY2tib3hUb0JpbmFyeSA+PSAxKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2hlY2tCb3hUb1RleHRNb2RlbCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVhZE1vZGVsRm9yRGF0ZUZpZWxkKGRhdGVGaWVsZE1vZGVsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuX21vZGVsID0gZGF0ZUZpZWxkTW9kZWw7XHJcbiAgICBpZiAoZGF0ZUZpZWxkTW9kZWwgIT09IHVuZGVmaW5lZCAmJiBkYXRlRmllbGRNb2RlbCAhPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLl9tb2RlbCA9IG5ldyBEYXRlKGRhdGVGaWVsZE1vZGVsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX21vZGVsID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVhZE1vZGVsRm9yRGF0ZVJhbmdlRmllbGQoZGF0ZVJhbmdlRmllbGRNb2RlbDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9tb2RlbCA9IGRhdGVSYW5nZUZpZWxkTW9kZWw7XHJcbiAgICBpZiAoZGF0ZVJhbmdlRmllbGRNb2RlbCAhPT0gdW5kZWZpbmVkICYmIGRhdGVSYW5nZUZpZWxkTW9kZWwgIT09IG51bGwpIHtcclxuICAgICAgbGV0IGRhdGVDb2xsZWN0aW9uID0gZGF0ZVJhbmdlRmllbGRNb2RlbC5zcGxpdCgnJicpO1xyXG5cclxuICAgICAgbGV0IHN0YXJ0U3RyaW5nID0gZGF0ZUNvbGxlY3Rpb25bMF0udHJpbSgpLnN1YnN0cig0LCBkYXRlQ29sbGVjdGlvblswXS5sZW5ndGggLSA1KTtcclxuICAgICAgbGV0IGVuZFN0cmluZyA9IGRhdGVDb2xsZWN0aW9uWzFdLnRyaW0oKS5zdWJzdHIoNCwgZGF0ZUNvbGxlY3Rpb25bMV0ubGVuZ3RoIC0gNSk7XHJcblxyXG4gICAgICBsZXQgc3RhcnREYXRlQ29tcG9uZW50cyA9IHN0YXJ0U3RyaW5nLnNwbGl0KCctJyk7XHJcbiAgICAgIGxldCBlbmREYXRlQ29tcG9uZW50cyA9IGVuZFN0cmluZy5zcGxpdCgnLScpO1xyXG5cclxuICAgICAgdGhpcy5kYXRlUmFuZ2VTdGFydCA9IG5ldyBEYXRlKHBhcnNlSW50KHN0YXJ0RGF0ZUNvbXBvbmVudHNbMl0pLCBwYXJzZUludChzdGFydERhdGVDb21wb25lbnRzWzFdKSAtIDEsIHBhcnNlSW50KHN0YXJ0RGF0ZUNvbXBvbmVudHNbMF0pKTtcclxuICAgICAgdGhpcy5kYXRlUmFuZ2VFbmQgPSBuZXcgRGF0ZShwYXJzZUludChlbmREYXRlQ29tcG9uZW50c1syXSksIHBhcnNlSW50KGVuZERhdGVDb21wb25lbnRzWzFdKSAtIDEsIHBhcnNlSW50KGVuZERhdGVDb21wb25lbnRzWzBdKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRhdGVSYW5nZVN0YXJ0ID0gdW5kZWZpbmVkO1xyXG4gICAgICB0aGlzLmRhdGVSYW5nZUVuZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|