@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,612 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, HostListener, Input, ViewChildren, ViewEncapsulation } from '@angular/core';
|
|
3
|
-
import { FormMasterService } from '../../core/service/form-master.service';
|
|
4
|
-
import { BaseSimpleGridComponent } from './base-simple-grid.component';
|
|
5
|
-
import { ColumnAlign } from './simple-grid-column.directive';
|
|
6
|
-
import { CoreComponentsIcon } from "../../core/enum/core-components-icon.enum";
|
|
7
|
-
import { IconCacheService } from "../icon/icon-cache.service";
|
|
8
|
-
import * as XLSX from 'xlsx';
|
|
9
|
-
export class SimpleGridComponent extends BaseSimpleGridComponent {
|
|
10
|
-
constructor(icons, _changeDetection, _formMaster) {
|
|
11
|
-
super();
|
|
12
|
-
this.icons = icons;
|
|
13
|
-
this._changeDetection = _changeDetection;
|
|
14
|
-
this._formMaster = _formMaster;
|
|
15
|
-
this.defaultTextAlign = ColumnAlign.Left;
|
|
16
|
-
this.showAdd = false;
|
|
17
|
-
this.showDelete = false;
|
|
18
|
-
this.editOnCellClick = true;
|
|
19
|
-
this.rightToolbar = false;
|
|
20
|
-
this.showGridSettings = false;
|
|
21
|
-
this.rowsPerPage = 1000;
|
|
22
|
-
this.editing = false;
|
|
23
|
-
this.isSettingsMenuOpen = false;
|
|
24
|
-
this.editRowIndex = -1;
|
|
25
|
-
this.editCellIndex = -1;
|
|
26
|
-
this.selectedRowIndex = -1;
|
|
27
|
-
this.currentPage = 1;
|
|
28
|
-
this.sortDirection = 'asc';
|
|
29
|
-
this.Icons = CoreComponentsIcon;
|
|
30
|
-
this._doubleClicked = false;
|
|
31
|
-
this._newRow = false;
|
|
32
|
-
this.dataChanged.subscribe(() => {
|
|
33
|
-
this.currentPage = 1;
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
set headerCells(cells) {
|
|
37
|
-
const headerElements = cells.toArray();
|
|
38
|
-
for (let i = 0; i < headerElements.length; i++) {
|
|
39
|
-
this.columns[i].elementRef = headerElements[i];
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
showClass() {
|
|
43
|
-
return true;
|
|
44
|
-
}
|
|
45
|
-
handleKeyDown(event) {
|
|
46
|
-
if (!this.inlineEdit) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
if (event.code === 'Tab') {
|
|
50
|
-
event.preventDefault();
|
|
51
|
-
this._nextAvailableCellToEdit(!event.shiftKey, this.editCellIndex)
|
|
52
|
-
.then((index) => {
|
|
53
|
-
this.editCellIndex = index;
|
|
54
|
-
this._changeDetection.markForCheck();
|
|
55
|
-
});
|
|
56
|
-
this._detectChanges();
|
|
57
|
-
}
|
|
58
|
-
if (event.code === 'Escape') {
|
|
59
|
-
this.cancelEditRow();
|
|
60
|
-
}
|
|
61
|
-
if (event.code === 'Enter') {
|
|
62
|
-
this.validateAndSave();
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
handleClickOutsideRow() {
|
|
66
|
-
this.validateAndSave();
|
|
67
|
-
}
|
|
68
|
-
getIsRowDisabled(idx) {
|
|
69
|
-
return this.disabledRows.indexOf(idx) > -1;
|
|
70
|
-
}
|
|
71
|
-
isRowDisabled(row, index) {
|
|
72
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
73
|
-
if (this.rowDisabledFn && (typeof this.rowDisabledFn === 'function')) {
|
|
74
|
-
const disabled = yield this.rowDisabledFn.call(this, row);
|
|
75
|
-
const idxRow = this.disabledRows.indexOf(index);
|
|
76
|
-
if (disabled) {
|
|
77
|
-
if (idxRow < 0) {
|
|
78
|
-
this.disabledRows.push(index);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
if (idxRow > -1) {
|
|
83
|
-
this.disabledRows.splice(idxRow, 1);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
return disabled;
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
return false;
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
isSingleColumn(column) {
|
|
94
|
-
return column.singleColumn;
|
|
95
|
-
}
|
|
96
|
-
rowContainsSingleColumn(row, columns) {
|
|
97
|
-
const singleColumn = columns.find(column => this.isSingleColumn(column) && !!row[column.field]);
|
|
98
|
-
return !!singleColumn;
|
|
99
|
-
}
|
|
100
|
-
addNewRow() {
|
|
101
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
102
|
-
if (this.inlineEdit) {
|
|
103
|
-
const valid = this.validateAndSave();
|
|
104
|
-
// this._detectChanges();
|
|
105
|
-
if (valid) {
|
|
106
|
-
this.data.push({});
|
|
107
|
-
this._detectChanges();
|
|
108
|
-
this._newRow = true;
|
|
109
|
-
this.editing = true;
|
|
110
|
-
this.editRowIndex = this.data.length - 1;
|
|
111
|
-
this.rowToEdit = this.data[this.editRowIndex];
|
|
112
|
-
this.editCellIndex = yield this._nextAvailableCellToEdit(true);
|
|
113
|
-
this._detectChanges();
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
this.addRow.next();
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
validateAndSave(stopediting = true) {
|
|
122
|
-
if (!this.editing) {
|
|
123
|
-
return true;
|
|
124
|
-
}
|
|
125
|
-
const valid = this._formMaster.submitSlaves();
|
|
126
|
-
this._detectChanges();
|
|
127
|
-
if (valid) {
|
|
128
|
-
this._saveRow(stopediting);
|
|
129
|
-
return true;
|
|
130
|
-
}
|
|
131
|
-
return false;
|
|
132
|
-
}
|
|
133
|
-
cancelEditRow() {
|
|
134
|
-
if (!this.editing) {
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
if (this._newRow) {
|
|
138
|
-
this.data.splice(this.data.length - 1, 1);
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
this.data[this.editRowIndex] = this.rowToEdit;
|
|
142
|
-
}
|
|
143
|
-
this._resetEdit();
|
|
144
|
-
this._detectChanges();
|
|
145
|
-
}
|
|
146
|
-
removeRow() {
|
|
147
|
-
this.deleteRow.next(this.data[this.selectedRowIndex]);
|
|
148
|
-
}
|
|
149
|
-
handleClickRow(event, index, row) {
|
|
150
|
-
setTimeout(() => {
|
|
151
|
-
if (this._doubleClicked) {
|
|
152
|
-
return;
|
|
153
|
-
}
|
|
154
|
-
this.selectTheRow(index);
|
|
155
|
-
}, 200);
|
|
156
|
-
}
|
|
157
|
-
selectTheRow(index, emit = true) {
|
|
158
|
-
if (this.selectedRowIndex === -1 || (this.selectedRowIndex !== index && ((this.editing && this.validateAndSave()) || !this.editing))) {
|
|
159
|
-
this.selectedRowIndex = index;
|
|
160
|
-
}
|
|
161
|
-
if (emit) {
|
|
162
|
-
this.selectRow.next(this.data[this.selectedRowIndex]);
|
|
163
|
-
}
|
|
164
|
-
this._detectChanges();
|
|
165
|
-
}
|
|
166
|
-
handleDblClickRow(event, index, row) {
|
|
167
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
168
|
-
if (yield this.isRowDisabled(row, index)) {
|
|
169
|
-
this.selectedRowIndex = -1;
|
|
170
|
-
return;
|
|
171
|
-
}
|
|
172
|
-
let canEdit = true;
|
|
173
|
-
if (this.canRowBeEdittedFn && typeof this.canRowBeEdittedFn === 'function') {
|
|
174
|
-
canEdit = yield this.canRowBeEdittedFn.call(this, row);
|
|
175
|
-
}
|
|
176
|
-
if (canEdit) {
|
|
177
|
-
this._doubleClicked = true;
|
|
178
|
-
this.dblClickRow.next(this.data[index]);
|
|
179
|
-
this.selectTheRow(index, false);
|
|
180
|
-
if (this.inlineEdit) {
|
|
181
|
-
this.editRow(event);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
this._resetDblClick();
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
editRow(event, selectCell = true) {
|
|
188
|
-
this.editRowIndex = this.selectedRowIndex;
|
|
189
|
-
this.rowToEdit = this.data[this.editRowIndex];
|
|
190
|
-
this.editing = true;
|
|
191
|
-
if (selectCell) {
|
|
192
|
-
this._nextAvailableCellToEdit(true).then((index) => {
|
|
193
|
-
this.editCellIndex = index;
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
this._detectChanges();
|
|
197
|
-
}
|
|
198
|
-
handleCellClick(event, row, rowIndex, cellIndex) {
|
|
199
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
200
|
-
if (this.editOnCellClick) {
|
|
201
|
-
if (yield this.isRowDisabled(row, rowIndex)) {
|
|
202
|
-
this.selectedRowIndex = -1;
|
|
203
|
-
return;
|
|
204
|
-
}
|
|
205
|
-
this.selectTheRow(rowIndex, false);
|
|
206
|
-
if (this.inlineEdit) {
|
|
207
|
-
this.editRowIndex = rowIndex;
|
|
208
|
-
this.editCellIndex = cellIndex;
|
|
209
|
-
this.editing = true;
|
|
210
|
-
this.editRow(event, false);
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
else {
|
|
214
|
-
this.editCellIndex = cellIndex;
|
|
215
|
-
}
|
|
216
|
-
this._detectChanges();
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
toggleSettingsMenu() {
|
|
220
|
-
this.headerColumnsCopy.forEach(i => i.isSelected = false);
|
|
221
|
-
this.isSettingsMenuOpen = !this.isSettingsMenuOpen;
|
|
222
|
-
}
|
|
223
|
-
toggleColumnMenu(col) {
|
|
224
|
-
if (!this.showGridSettings) {
|
|
225
|
-
return;
|
|
226
|
-
}
|
|
227
|
-
this.isSettingsMenuOpen = false;
|
|
228
|
-
if (col.isSelected) {
|
|
229
|
-
col.isSelected = false;
|
|
230
|
-
}
|
|
231
|
-
else {
|
|
232
|
-
this.headerColumnsCopy.forEach(i => i.isSelected = false);
|
|
233
|
-
col.isSelected = true;
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
hideColumn(col) {
|
|
237
|
-
col.isSelected = false;
|
|
238
|
-
this.headerColumnsCopy = this.headerColumnsCopy.filter((obj) => {
|
|
239
|
-
return obj !== col;
|
|
240
|
-
});
|
|
241
|
-
}
|
|
242
|
-
// TODO Fix this sort method
|
|
243
|
-
// public sortColumn(col: any, columnValue: string): void {
|
|
244
|
-
// console.log(col);
|
|
245
|
-
// console.log("columnValue " + columnValue);
|
|
246
|
-
// col.isSelected = false;
|
|
247
|
-
//
|
|
248
|
-
// if (this.sortColumnValue === columnValue) {
|
|
249
|
-
// this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';
|
|
250
|
-
// } else {
|
|
251
|
-
// this.sortColumnValue = columnValue;
|
|
252
|
-
// this.sortDirection = 'asc';
|
|
253
|
-
// }
|
|
254
|
-
//
|
|
255
|
-
// console.log(this.data);
|
|
256
|
-
// // this.data = this._sortData(this.data);
|
|
257
|
-
//
|
|
258
|
-
//
|
|
259
|
-
// this.data.sort((a, b) => {
|
|
260
|
-
// const sign = this.sortDirection === 'asc' ? 1 : -1;
|
|
261
|
-
//
|
|
262
|
-
// console.log("a " + a);
|
|
263
|
-
// console.log("b " + b);
|
|
264
|
-
// console.log(a[this.sortColumnValue]);
|
|
265
|
-
// console.log(b[this.sortColumnValue]);
|
|
266
|
-
// console.log("sign " + sign);
|
|
267
|
-
//
|
|
268
|
-
// if (a[this.sortColumnValue] < b[this.sortColumnValue]) {
|
|
269
|
-
// return -1 * sign;
|
|
270
|
-
// } else if (a[this.sortColumnValue] > b[this.sortColumnValue]) {
|
|
271
|
-
// return 1 * sign;
|
|
272
|
-
// }
|
|
273
|
-
// return 0;
|
|
274
|
-
// });
|
|
275
|
-
//
|
|
276
|
-
//
|
|
277
|
-
//
|
|
278
|
-
// this._detectChanges();
|
|
279
|
-
// // this.data.sort((a, b) => a[this.sortColumnValue] - b[this.sortColumnValue]);
|
|
280
|
-
// console.log(this.data);
|
|
281
|
-
// }
|
|
282
|
-
_sortData(tableData) {
|
|
283
|
-
return tableData.sort((a, b) => {
|
|
284
|
-
const sign = this.sortDirection === 'asc' ? 1 : -1;
|
|
285
|
-
console.log("a " + a);
|
|
286
|
-
console.log("b " + b);
|
|
287
|
-
console.log(a[this.sortColumnValue]);
|
|
288
|
-
console.log(b[this.sortColumnValue]);
|
|
289
|
-
console.log("sign " + sign);
|
|
290
|
-
if (a[this.sortColumnValue] < b[this.sortColumnValue]) {
|
|
291
|
-
return -1 * sign;
|
|
292
|
-
}
|
|
293
|
-
else if (a[this.sortColumnValue] > b[this.sortColumnValue]) {
|
|
294
|
-
return 1 * sign;
|
|
295
|
-
}
|
|
296
|
-
return 0;
|
|
297
|
-
});
|
|
298
|
-
}
|
|
299
|
-
showAllColumns() {
|
|
300
|
-
this.isSettingsMenuOpen = false;
|
|
301
|
-
this.headerColumnsCopy = this.headerColumns;
|
|
302
|
-
}
|
|
303
|
-
exportToExcel() {
|
|
304
|
-
this.isSettingsMenuOpen = false;
|
|
305
|
-
let element = document.getElementById('simple-grid-table');
|
|
306
|
-
const ws = XLSX.utils.table_to_sheet(element);
|
|
307
|
-
const wb = XLSX.utils.book_new();
|
|
308
|
-
XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
|
|
309
|
-
XLSX.writeFile(wb, 'ExcelSheet.xlsx');
|
|
310
|
-
}
|
|
311
|
-
prepareDataRow(row, index) {
|
|
312
|
-
this.isRowDisabled(row, index);
|
|
313
|
-
}
|
|
314
|
-
_resetDblClick() {
|
|
315
|
-
setTimeout(() => {
|
|
316
|
-
this._doubleClicked = false;
|
|
317
|
-
}, 500);
|
|
318
|
-
}
|
|
319
|
-
/**
|
|
320
|
-
*
|
|
321
|
-
* @param next; Move to next or previous cell
|
|
322
|
-
* @param start; Start from cellindex
|
|
323
|
-
* @private
|
|
324
|
-
*/
|
|
325
|
-
_nextAvailableCellToEdit(next, start = -1) {
|
|
326
|
-
return new Promise((resolve, reject) => {
|
|
327
|
-
const numEditableColumns = this.columns.filter(c => !c.readonly).length;
|
|
328
|
-
const wantedIndex = start + (next ? 1 : -1);
|
|
329
|
-
if (wantedIndex >= numEditableColumns) {
|
|
330
|
-
this._getNextEditRowIndex()
|
|
331
|
-
.then((index) => {
|
|
332
|
-
this.editRowIndex = index;
|
|
333
|
-
resolve(this._getNextEditCellIndex(0));
|
|
334
|
-
})
|
|
335
|
-
.catch((e) => {
|
|
336
|
-
reject();
|
|
337
|
-
});
|
|
338
|
-
}
|
|
339
|
-
else if (wantedIndex < 0) {
|
|
340
|
-
this._getPreviousEditRowIndex()
|
|
341
|
-
.then((index) => {
|
|
342
|
-
this.editRowIndex = index;
|
|
343
|
-
resolve(this._getPreviousEditCellIndex(this.columns.length - 1));
|
|
344
|
-
})
|
|
345
|
-
.catch((e) => {
|
|
346
|
-
reject();
|
|
347
|
-
});
|
|
348
|
-
}
|
|
349
|
-
else {
|
|
350
|
-
resolve(next ? this._getNextEditCellIndex(start + 1) : this._getPreviousEditCellIndex(start - 1));
|
|
351
|
-
}
|
|
352
|
-
});
|
|
353
|
-
}
|
|
354
|
-
_getNextEditCellIndex(start) {
|
|
355
|
-
for (let i = start; i < this.columns.length; i++) {
|
|
356
|
-
if (!this.columns[i].readonly) {
|
|
357
|
-
return i;
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
_getPreviousEditCellIndex(start) {
|
|
362
|
-
for (let i = start; i >= 0; i--) {
|
|
363
|
-
if (!this.columns[i].readonly) {
|
|
364
|
-
return i;
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
_getNextEditRowIndex() {
|
|
369
|
-
return new Promise((resolve, reject) => {
|
|
370
|
-
let newRowIndex = 0;
|
|
371
|
-
if (this.editRowIndex + 1 >= this.data.length) {
|
|
372
|
-
if (this.autoAddRow) {
|
|
373
|
-
this.addNewRow();
|
|
374
|
-
newRowIndex = this.editRowIndex;
|
|
375
|
-
}
|
|
376
|
-
else {
|
|
377
|
-
newRowIndex = 0;
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
else {
|
|
381
|
-
newRowIndex = this.editRowIndex + 1;
|
|
382
|
-
}
|
|
383
|
-
if (newRowIndex !== this.editRowIndex) { // go to different row validate current one first
|
|
384
|
-
if (this.validateAndSave(false)) {
|
|
385
|
-
this.rowToEdit = this.data[newRowIndex];
|
|
386
|
-
resolve(newRowIndex);
|
|
387
|
-
}
|
|
388
|
-
else {
|
|
389
|
-
reject();
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
else {
|
|
393
|
-
resolve(newRowIndex);
|
|
394
|
-
}
|
|
395
|
-
});
|
|
396
|
-
}
|
|
397
|
-
_getPreviousEditRowIndex() {
|
|
398
|
-
return new Promise((resolve, reject) => {
|
|
399
|
-
let newRowIndex = 0;
|
|
400
|
-
if (this.editRowIndex - 1 < 0) {
|
|
401
|
-
newRowIndex = this.data.length - 1;
|
|
402
|
-
}
|
|
403
|
-
else {
|
|
404
|
-
newRowIndex = this.editRowIndex - 1;
|
|
405
|
-
}
|
|
406
|
-
if (newRowIndex !== this.editRowIndex) { // go to different row validate current one first
|
|
407
|
-
if (this.validateAndSave(false)) {
|
|
408
|
-
this.rowToEdit = this.data[newRowIndex];
|
|
409
|
-
resolve(newRowIndex);
|
|
410
|
-
}
|
|
411
|
-
else {
|
|
412
|
-
reject();
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
else {
|
|
416
|
-
resolve(newRowIndex);
|
|
417
|
-
}
|
|
418
|
-
});
|
|
419
|
-
}
|
|
420
|
-
_saveRow(stopediting = true) {
|
|
421
|
-
// emit saveEvent
|
|
422
|
-
if (this.rowToEdit) {
|
|
423
|
-
this.saveRow.next(this.rowToEdit);
|
|
424
|
-
}
|
|
425
|
-
this._newRow = false;
|
|
426
|
-
if (stopediting) {
|
|
427
|
-
this._resetEdit();
|
|
428
|
-
}
|
|
429
|
-
this._detectChanges();
|
|
430
|
-
}
|
|
431
|
-
goToPreviousPage() {
|
|
432
|
-
this.currentPage -= 1;
|
|
433
|
-
}
|
|
434
|
-
goToNextPage() {
|
|
435
|
-
this.currentPage += 1;
|
|
436
|
-
}
|
|
437
|
-
setCurrentPage(page) {
|
|
438
|
-
this.currentPage = page;
|
|
439
|
-
}
|
|
440
|
-
_detectChanges() {
|
|
441
|
-
this._changeDetection.detectChanges();
|
|
442
|
-
}
|
|
443
|
-
_resetEdit() {
|
|
444
|
-
this._newRow = false;
|
|
445
|
-
this.selectedRowIndex = -1;
|
|
446
|
-
this.editRowIndex = -1;
|
|
447
|
-
this.editCellIndex = -1;
|
|
448
|
-
this.editing = false;
|
|
449
|
-
this.rowToEdit = undefined;
|
|
450
|
-
}
|
|
451
|
-
}
|
|
452
|
-
SimpleGridComponent.decorators = [
|
|
453
|
-
{ type: Component, args: [{
|
|
454
|
-
selector: 'co-simple-grid',
|
|
455
|
-
template: `
|
|
456
|
-
<co-grid-toolbar *ngIf="showToolbar" [class.right]="rightToolbar"
|
|
457
|
-
[showEdit]="showEdit"
|
|
458
|
-
[showAdd]="showAdd"
|
|
459
|
-
[showDelete]="showDelete"
|
|
460
|
-
[deleteEnabled]="selectedRowIndex > -1"
|
|
461
|
-
(addClick)="addNewRow()"
|
|
462
|
-
(editClick)="editRow($event)"
|
|
463
|
-
(saveClick)="validateAndSave()"
|
|
464
|
-
(cancelClick)="cancelEditRow()"
|
|
465
|
-
(deleteClick)="removeRow()"
|
|
466
|
-
></co-grid-toolbar>
|
|
467
|
-
<table
|
|
468
|
-
id="simple-grid-table"
|
|
469
|
-
class="simple-grid-table"
|
|
470
|
-
[clickOutside]="editing"
|
|
471
|
-
(clickOutside)="handleClickOutsideRow()">
|
|
472
|
-
<colgroup>
|
|
473
|
-
<col *ngFor="let column of headerColumnsCopy; let index = index"
|
|
474
|
-
[class.simple-grid-column-auto-fit]="column.autoFit"
|
|
475
|
-
[style.width.px]="column.width"
|
|
476
|
-
[style.min-width.px]="MIN_COLUMN_WIDTH">
|
|
477
|
-
</colgroup>
|
|
478
|
-
<thead>
|
|
479
|
-
<tr>
|
|
480
|
-
<th
|
|
481
|
-
scope="col"
|
|
482
|
-
#headerCell
|
|
483
|
-
class="simple-grid-column-header"
|
|
484
|
-
*ngFor="let column of headerColumnsCopy; let index = index">
|
|
485
|
-
<div
|
|
486
|
-
class="simple-grid-column-header-wrapper"
|
|
487
|
-
[class.resizable]="resizable"
|
|
488
|
-
[class.selected]="column.isSelected"
|
|
489
|
-
[ngClass]="column.textAlign ? column.textAlign : defaultTextAlign">
|
|
490
|
-
<ng-container *ngIf="column.headerTemplate; else noHeaderTemplate">
|
|
491
|
-
<ng-container [ngTemplateOutlet]="column.headerTemplate"></ng-container>
|
|
492
|
-
</ng-container>
|
|
493
|
-
<ng-template #noHeaderTemplate>
|
|
494
|
-
<div class="simple-grid-column-header-label"
|
|
495
|
-
[ngClass]="column.textAlign ? column.textAlign : defaultTextAlign"
|
|
496
|
-
[class.with-menu]="showGridSettings"
|
|
497
|
-
[textContent]="column.headerText || ' '"
|
|
498
|
-
(click)="toggleColumnMenu(column)">
|
|
499
|
-
</div>
|
|
500
|
-
|
|
501
|
-
<div class="column-menu" *ngIf="column.isSelected">
|
|
502
|
-
<h3 [textContent]="'COLUMN_OPTIONS' | coreLocalize"></h3>
|
|
503
|
-
<ul>
|
|
504
|
-
<li (click)="hideColumn(column)">Hide Column</li>
|
|
505
|
-
<!-- <li (click)="sortColumn(column, column.field)">Sort Column</li>-->
|
|
506
|
-
</ul>
|
|
507
|
-
</div>
|
|
508
|
-
</ng-template>
|
|
509
|
-
<div *ngIf="resizable && column.resizable" class="simple-grid-column-sizer"
|
|
510
|
-
(mousedown)="handleSizerMouseDown($event, column)"
|
|
511
|
-
></div>
|
|
512
|
-
</div>
|
|
513
|
-
</th>
|
|
514
|
-
<th *ngIf="showGridSettings" class="simple-grid-column-header grid-settings">
|
|
515
|
-
<co-button
|
|
516
|
-
[class.selected]="isSettingsMenuOpen"
|
|
517
|
-
[iconData]="icons.getIcon(Icons.CogWheels)"
|
|
518
|
-
(click)="toggleSettingsMenu()">
|
|
519
|
-
</co-button>
|
|
520
|
-
|
|
521
|
-
<div class="settings-menu" *ngIf="isSettingsMenuOpen">
|
|
522
|
-
<h3 [textContent]="'GRID_OPTIONS' | coreLocalize"></h3>
|
|
523
|
-
<ul>
|
|
524
|
-
<li (click)="exportToExcel()">Export to Excel</li>
|
|
525
|
-
<li *ngIf="headerColumnsCopy.length !== headerColumns.length" (click)="showAllColumns()">Show All
|
|
526
|
-
Columns
|
|
527
|
-
</li>
|
|
528
|
-
</ul>
|
|
529
|
-
</div>
|
|
530
|
-
</th>
|
|
531
|
-
</tr>
|
|
532
|
-
</thead>
|
|
533
|
-
<tbody #dropList cdkDropList cdkDropListOrientation="vertical"
|
|
534
|
-
class="simple-grid-drag-drop-list"
|
|
535
|
-
[cdkDropListDisabled]="!dragDropEnabled || editing"
|
|
536
|
-
[cdkDropListData]="data"
|
|
537
|
-
[cdkDropListEnterPredicate]="handleCanDragDrop"
|
|
538
|
-
(cdkDropListDropped)="handleDrop($event)">
|
|
539
|
-
<tr
|
|
540
|
-
class="simple-grid-row"
|
|
541
|
-
[class.selected]="rowIndex === selectedRowIndex && !editing" observeVisibility
|
|
542
|
-
[class.disabled]="getIsRowDisabled(rowIndex)"
|
|
543
|
-
[class.editing]="rowIndex === editRowIndex"
|
|
544
|
-
*ngFor="let row of (!!rowsPerPage ? (data | paginate: {itemsPerPage: rowsPerPage, currentPage: currentPage}) : data); last as last; let rowIndex = index"
|
|
545
|
-
cdkDrag
|
|
546
|
-
(click)="handleClickRow($event, rowIndex, row)" (dblclick)="handleDblClickRow($event, rowIndex, row)"
|
|
547
|
-
(visibilityChange)="rowVisible.next(row)">
|
|
548
|
-
<co-form class="simple-grid-row-form">
|
|
549
|
-
<ng-container *ngIf="isSingleColumnRow(row)">
|
|
550
|
-
<td class="simple-grid-single-column-cell" [attr.colspan]="headerColumnsCopy.length">
|
|
551
|
-
<co-simple-grid-cell
|
|
552
|
-
[column]="columns[singleColumnIndex(row)]"
|
|
553
|
-
[row]="row"
|
|
554
|
-
[editMode]="false"
|
|
555
|
-
></co-simple-grid-cell>
|
|
556
|
-
</td>
|
|
557
|
-
</ng-container>
|
|
558
|
-
<ng-container *ngIf="!isSingleColumnRow(row)">
|
|
559
|
-
<ng-container *ngFor="let column of headerColumnsCopy; let columnIndex = index">
|
|
560
|
-
<td class="simple-grid-column-cell" *ngIf="columnIndex !== singleColumnIndex(row)">
|
|
561
|
-
<co-simple-grid-cell
|
|
562
|
-
[column]="column"
|
|
563
|
-
[row]="row"
|
|
564
|
-
[editMode]="inlineEdit && editing && rowIndex === editRowIndex"
|
|
565
|
-
[fieldEditMode]="editCellIndex === columnIndex && rowIndex === editRowIndex"
|
|
566
|
-
(cellClick)="handleCellClick($event, row, rowIndex, columnIndex)"
|
|
567
|
-
></co-simple-grid-cell>
|
|
568
|
-
<div *ngIf="column.resizable" class="simple-grid-column-sizer-placeholder"></div>
|
|
569
|
-
</td>
|
|
570
|
-
</ng-container>
|
|
571
|
-
</ng-container>
|
|
572
|
-
<td *ngIf="showGridSettings"></td>
|
|
573
|
-
</co-form>
|
|
574
|
-
</tr>
|
|
575
|
-
</tbody>
|
|
576
|
-
</table>
|
|
577
|
-
<co-pagination-bar *ngIf="data?.length > rowsPerPage" class="pagination-bar"
|
|
578
|
-
[itemsPerPage]="rowsPerPage"
|
|
579
|
-
[currentPage]="currentPage"
|
|
580
|
-
[totalItems]="data.length"
|
|
581
|
-
[autoHide]="true"
|
|
582
|
-
(previousClick)="goToPreviousPage()"
|
|
583
|
-
(nextClick)="goToNextPage()"
|
|
584
|
-
(pageClick)="setCurrentPage($event)"
|
|
585
|
-
></co-pagination-bar>
|
|
586
|
-
`,
|
|
587
|
-
providers: [
|
|
588
|
-
FormMasterService
|
|
589
|
-
],
|
|
590
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
591
|
-
encapsulation: ViewEncapsulation.None
|
|
592
|
-
},] }
|
|
593
|
-
];
|
|
594
|
-
SimpleGridComponent.ctorParameters = () => [
|
|
595
|
-
{ type: IconCacheService },
|
|
596
|
-
{ type: ChangeDetectorRef },
|
|
597
|
-
{ type: FormMasterService }
|
|
598
|
-
];
|
|
599
|
-
SimpleGridComponent.propDecorators = {
|
|
600
|
-
headerCells: [{ type: ViewChildren, args: ['headerCell',] }],
|
|
601
|
-
showAdd: [{ type: Input }],
|
|
602
|
-
showDelete: [{ type: Input }],
|
|
603
|
-
editOnCellClick: [{ type: Input }],
|
|
604
|
-
rightToolbar: [{ type: Input }],
|
|
605
|
-
showGridSettings: [{ type: Input }],
|
|
606
|
-
rowsPerPage: [{ type: Input }],
|
|
607
|
-
rowDisabledFn: [{ type: Input }],
|
|
608
|
-
canRowBeEdittedFn: [{ type: Input }],
|
|
609
|
-
showClass: [{ type: HostBinding, args: ['class.co-simple-grid',] }],
|
|
610
|
-
handleKeyDown: [{ type: HostListener, args: ['keydown', ['$event'],] }]
|
|
611
|
-
};
|
|
612
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NpbXBsZS1ncmlkL3NpbXBsZS1ncmlkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUNMLFlBQVksRUFDWixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDekUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFDLFdBQVcsRUFBNEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQThJN0IsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHVCQUF1QjtJQThFOUQsWUFDUyxLQUF1QixFQUN0QixnQkFBbUMsRUFDbkMsV0FBOEI7UUFFdEMsS0FBSyxFQUFFLENBQUM7UUFKRCxVQUFLLEdBQUwsS0FBSyxDQUFrQjtRQUN0QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ25DLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtRQWhGeEIscUJBQWdCLEdBQWdCLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFVMUQsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUd6QixlQUFVLEdBQVksS0FBSyxDQUFDO1FBRzVCLG9CQUFlLEdBQVksSUFBSSxDQUFDO1FBR2hDLGlCQUFZLEdBQVks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UUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIFZpZXdDaGlsZHJlbixcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1NYXN0ZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2UvZm9ybS1tYXN0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7QmFzZVNpbXBsZUdyaWRDb21wb25lbnR9IGZyb20gJy4vYmFzZS1zaW1wbGUtZ3JpZC5jb21wb25lbnQnO1xyXG5pbXBvcnQge0NvbHVtbkFsaWduLCBTaW1wbGVHcmlkQ29sdW1uRGlyZWN0aXZlfSBmcm9tICcuL3NpbXBsZS1ncmlkLWNvbHVtbi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQge0NvcmVDb21wb25lbnRzSWNvbn0gZnJvbSBcIi4uLy4uL2NvcmUvZW51bS9jb3JlLWNvbXBvbmVudHMtaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uL2ljb24vaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLXNpbXBsZS1ncmlkJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGNvLWdyaWQtdG9vbGJhciAqbmdJZj1cInNob3dUb29sYmFyXCIgW2NsYXNzLnJpZ2h0XT1cInJpZ2h0VG9vbGJhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtzaG93RWRpdF09XCJzaG93RWRpdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtzaG93QWRkXT1cInNob3dBZGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbc2hvd0RlbGV0ZV09XCJzaG93RGVsZXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2RlbGV0ZUVuYWJsZWRdPVwic2VsZWN0ZWRSb3dJbmRleCA+IC0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGFkZENsaWNrKT1cImFkZE5ld1JvdygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGVkaXRDbGljayk9XCJlZGl0Um93KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAoc2F2ZUNsaWNrKT1cInZhbGlkYXRlQW5kU2F2ZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNhbmNlbENsaWNrKT1cImNhbmNlbEVkaXRSb3coKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChkZWxldGVDbGljayk9XCJyZW1vdmVSb3coKVwiXHJcbiAgICA+PC9jby1ncmlkLXRvb2xiYXI+XHJcbiAgICA8dGFibGVcclxuICAgICAgaWQ9XCJzaW1wbGUtZ3JpZC10YWJsZVwiXHJcbiAgICAgIGNsYXNzPVwic2ltcGxlLWdyaWQtdGFibGVcIlxyXG4gICAgICBbY2xpY2tPdXRzaWRlXT1cImVkaXRpbmdcIlxyXG4gICAgICAoY2xpY2tPdXRzaWRlKT1cImhhbmRsZUNsaWNrT3V0c2lkZVJvdygpXCI+XHJcbiAgICAgIDxjb2xncm91cD5cclxuICAgICAgICA8Y29sICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgaGVhZGVyQ29sdW1uc0NvcHk7IGxldCBpbmRleCA9IGluZGV4XCJcclxuICAgICAgICAgICAgIFtjbGFzcy5zaW1wbGUtZ3JpZC1jb2x1bW4tYXV0by1maXRdPVwiY29sdW1uLmF1dG9GaXRcIlxyXG4gICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImNvbHVtbi53aWR0aFwiXHJcbiAgICAgICAgICAgICBbc3R5bGUubWluLXdpZHRoLnB4XT1cIk1JTl9DT0xVTU5fV0lEVEhcIj5cclxuICAgICAgPC9jb2xncm91cD5cclxuICAgICAgPHRoZWFkPlxyXG4gICAgICA8dHI+XHJcbiAgICAgICAgPHRoXHJcbiAgICAgICAgICBzY29wZT1cImNvbFwiXHJcbiAgICAgICAgICAjaGVhZGVyQ2VsbFxyXG4gICAgICAgICAgY2xhc3M9XCJzaW1wbGUtZ3JpZC1jb2x1bW4taGVhZGVyXCJcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgaGVhZGVyQ29sdW1uc0NvcHk7IGxldCBpbmRleCA9IGluZGV4XCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwic2ltcGxlLWdyaWQtY29sdW1uLWhlYWRlci13cmFwcGVyXCJcclxuICAgICAgICAgICAgW2NsYXNzLnJlc2l6YWJsZV09XCJyZXNpemFibGVcIlxyXG4gICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiY29sdW1uLmlzU2VsZWN0ZWRcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJjb2x1bW4udGV4dEFsaWduID8gY29sdW1uLnRleHRBbGlnbiA6IGRlZmF1bHRUZXh0QWxpZ25cIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5oZWFkZXJUZW1wbGF0ZTsgZWxzZSBub0hlYWRlclRlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjb2x1bW4uaGVhZGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9IZWFkZXJUZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2ltcGxlLWdyaWQtY29sdW1uLWhlYWRlci1sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJjb2x1bW4udGV4dEFsaWduID8gY29sdW1uLnRleHRBbGlnbiA6IGRlZmF1bHRUZXh0QWxpZ25cIlxyXG4gICAgICAgICAgICAgICAgICAgW2NsYXNzLndpdGgtbWVudV09XCJzaG93R3JpZFNldHRpbmdzXCJcclxuICAgICAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJjb2x1bW4uaGVhZGVyVGV4dCB8fCAnJm5ic3A7J1wiXHJcbiAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQ29sdW1uTWVudShjb2x1bW4pXCI+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4tbWVudVwiICpuZ0lmPVwiY29sdW1uLmlzU2VsZWN0ZWRcIj5cclxuICAgICAgICAgICAgICAgIDxoMyBbdGV4dENvbnRlbnRdPVwiJ0NPTFVNTl9PUFRJT05TJyB8IGNvcmVMb2NhbGl6ZVwiPjwvaDM+XHJcbiAgICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICAgIDxsaSAoY2xpY2spPVwiaGlkZUNvbHVtbihjb2x1bW4pXCI+SGlkZSBDb2x1bW48L2xpPlxyXG48IS0tICAgICAgICAgICAgICAgICAgPGxpIChjbGljayk9XCJzb3J0Q29sdW1uKGNvbHVtbiwgY29sdW1uLmZpZWxkKVwiPlNvcnQgQ29sdW1uPC9saT4tLT5cclxuICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZXNpemFibGUgJiYgY29sdW1uLnJlc2l6YWJsZVwiIGNsYXNzPVwic2ltcGxlLWdyaWQtY29sdW1uLXNpemVyXCJcclxuICAgICAgICAgICAgICAgICAobW91c2Vkb3duKT1cImhhbmRsZVNpemVyTW91c2VEb3duKCRldmVudCwgY29sdW1uKVwiXHJcbiAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvdGg+XHJcbiAgICAgICAgPHRoICpuZ0lmPVwic2hvd0dyaWRTZXR0aW5nc1wiIGNsYXNzPVwic2ltcGxlLWdyaWQtY29sdW1uLWhlYWRlciBncmlkLXNldHRpbmdzXCI+XHJcbiAgICAgICAgICA8Y28tYnV0dG9uXHJcbiAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJpc1NldHRpbmdzTWVudU9wZW5cIlxyXG4gICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbnMuZ2V0SWNvbihJY29ucy5Db2dXaGVlbHMpXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVNldHRpbmdzTWVudSgpXCI+XHJcbiAgICAgICAgICA8L2NvLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2V0dGluZ3MtbWVudVwiICpuZ0lmPVwiaXNTZXR0aW5nc01lbnVPcGVuXCI+XHJcbiAgICAgICAgICAgIDxoMyBbdGV4dENvbnRlbnRdPVwiJ0dSSURfT1BUSU9OUycgfCBjb3JlTG9jYWxpemVcIj48L2gzPlxyXG4gICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgPGxpIChjbGljayk9XCJleHBvcnRUb0V4Y2VsKClcIj5FeHBvcnQgdG8gRXhjZWw8L2xpPlxyXG4gICAgICAgICAgICAgIDxsaSAqbmdJZj1cImhlYWRlckNvbHVtbnNDb3B5Lmxlbmd0aCAhPT0gaGVhZGVyQ29sdW1ucy5sZW5ndGhcIiAoY2xpY2spPVwic2hvd0FsbENvbHVtbnMoKVwiPlNob3cgQWxsXHJcbiAgICAgICAgICAgICAgICBDb2x1bW5zXHJcbiAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvdGg+XHJcbiAgICAgIDwvdHI+XHJcbiAgICAgIDwvdGhlYWQ+XHJcbiAgICAgIDx0Ym9keSAjZHJvcExpc3QgY2RrRHJvcExpc3QgY2RrRHJvcExpc3RPcmllbnRhdGlvbj1cInZlcnRpY2FsXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwic2ltcGxlLWdyaWQtZHJhZy1kcm9wLWxpc3RcIlxyXG4gICAgICAgICAgICAgW2Nka0Ryb3BMaXN0RGlzYWJsZWRdPVwiIWRyYWdEcm9wRW5hYmxlZCB8fCBlZGl0aW5nXCJcclxuICAgICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiZGF0YVwiXHJcbiAgICAgICAgICAgICBbY2RrRHJvcExpc3RFbnRlclByZWRpY2F0ZV09XCJoYW5kbGVDYW5EcmFnRHJvcFwiXHJcbiAgICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImhhbmRsZURyb3AoJGV2ZW50KVwiPlxyXG4gICAgICA8dHJcclxuICAgICAgICBjbGFzcz1cInNpbXBsZS1ncmlkLXJvd1wiXHJcbiAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cInJvd0luZGV4ID09PSBzZWxlY3RlZFJvd0luZGV4ICYmICFlZGl0aW5nXCIgb2JzZXJ2ZVZpc2liaWxpdHlcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiZ2V0SXNSb3dEaXNhYmxlZChyb3dJbmRleClcIlxyXG4gICAgICAgIFtjbGFzcy5lZGl0aW5nXT1cInJvd0luZGV4ID09PSBlZGl0Um93SW5kZXhcIlxyXG4gICAgICAgICpuZ0Zvcj1cImxldCByb3cgb2YgKCEhcm93c1BlclBhZ2UgPyAoZGF0YSB8IHBhZ2luYXRlOiB7aXRlbXNQZXJQYWdlOiByb3dzUGVyUGFnZSwgY3VycmVudFBhZ2U6IGN1cnJlbnRQYWdlfSkgOiBkYXRhKTsgbGFzdCBhcyBsYXN0OyBsZXQgcm93SW5kZXggPSBpbmRleFwiXHJcbiAgICAgICAgY2RrRHJhZ1xyXG4gICAgICAgIChjbGljayk9XCJoYW5kbGVDbGlja1JvdygkZXZlbnQsIHJvd0luZGV4LCByb3cpXCIgKGRibGNsaWNrKT1cImhhbmRsZURibENsaWNrUm93KCRldmVudCwgcm93SW5kZXgsIHJvdylcIlxyXG4gICAgICAgICh2aXNpYmlsaXR5Q2hhbmdlKT1cInJvd1Zpc2libGUubmV4dChyb3cpXCI+XHJcbiAgICAgICAgPGNvLWZvcm0gY2xhc3M9XCJzaW1wbGUtZ3JpZC1yb3ctZm9ybVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2luZ2xlQ29sdW1uUm93KHJvdylcIj5cclxuICAgICAgICAgICAgPHRkIGNsYXNzPVwic2ltcGxlLWdyaWQtc2luZ2xlLWNvbHVtbi1jZWxsXCIgW2F0dHIuY29sc3Bhbl09XCJoZWFkZXJDb2x1bW5zQ29weS5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY2VsbFxyXG4gICAgICAgICAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5zW3NpbmdsZUNvbHVtbkluZGV4KHJvdyldXCJcclxuICAgICAgICAgICAgICAgIFtyb3ddPVwicm93XCJcclxuICAgICAgICAgICAgICAgIFtlZGl0TW9kZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPjwvY28tc2ltcGxlLWdyaWQtY2VsbD5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1NpbmdsZUNvbHVtblJvdyhyb3cpXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBoZWFkZXJDb2x1bW5zQ29weTsgbGV0IGNvbHVtbkluZGV4ID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJzaW1wbGUtZ3JpZC1jb2x1bW4tY2VsbFwiICpuZ0lmPVwiY29sdW1uSW5kZXggIT09IHNpbmdsZUNvbHVtbkluZGV4KHJvdylcIj5cclxuICAgICAgICAgICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jZWxsXHJcbiAgICAgICAgICAgICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcclxuICAgICAgICAgICAgICAgICAgW3Jvd109XCJyb3dcIlxyXG4gICAgICAgICAgICAgICAgICBbZWRpdE1vZGVdPVwiaW5saW5lRWRpdCAmJiBlZGl0aW5nICYmIHJvd0luZGV4ID09PSBlZGl0Um93SW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICBbZmllbGRFZGl0TW9kZV09XCJlZGl0Q2VsbEluZGV4ID09PSBjb2x1bW5JbmRleCAmJiByb3dJbmRleCA9PT0gZWRpdFJvd0luZGV4XCJcclxuICAgICAgICAgICAgICAgICAgKGNlbGxDbGljayk9XCJoYW5kbGVDZWxsQ2xpY2soJGV2ZW50LCByb3csIHJvd0luZGV4LCBjb2x1bW5JbmRleClcIlxyXG4gICAgICAgICAgICAgICAgPjwvY28tc2ltcGxlLWdyaWQtY2VsbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2x1bW4ucmVzaXphYmxlXCIgY2xhc3M9XCJzaW1wbGUtZ3JpZC1jb2x1bW4tc2l6ZXItcGxhY2Vob2xkZXJcIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPHRkICpuZ0lmPVwic2hvd0dyaWRTZXR0aW5nc1wiPjwvdGQ+XHJcbiAgICAgICAgPC9jby1mb3JtPlxyXG4gICAgICA8L3RyPlxyXG4gICAgICA8L3Rib2R5PlxyXG4gICAgPC90YWJsZT5cclxuICAgIDxjby1wYWdpbmF0aW9uLWJhciAqbmdJZj1cImRhdGE/Lmxlbmd0aCA+IHJvd3NQZXJQYWdlXCIgY2xhc3M9XCJwYWdpbmF0aW9uLWJhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2l0ZW1zUGVyUGFnZV09XCJyb3dzUGVyUGFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbdG90YWxJdGVtc109XCJkYXRhLmxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9IaWRlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChwcmV2aW91c0NsaWNrKT1cImdvVG9QcmV2aW91c1BhZ2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKG5leHRDbGljayk9XCJnb1RvTmV4dFBhZ2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKHBhZ2VDbGljayk9XCJzZXRDdXJyZW50UGFnZSgkZXZlbnQpXCJcclxuICAgID48L2NvLXBhZ2luYXRpb24tYmFyPlxyXG4gIGAsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBGb3JtTWFzdGVyU2VydmljZVxyXG4gIF0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpbXBsZUdyaWRDb21wb25lbnQgZXh0ZW5kcyBCYXNlU2ltcGxlR3JpZENvbXBvbmVudCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGRlZmF1bHRUZXh0QWxpZ246IENvbHVtbkFsaWduID0gQ29sdW1uQWxpZ24uTGVmdDtcclxuXHJcbiAgQFZpZXdDaGlsZHJlbignaGVhZGVyQ2VsbCcpIHNldCBoZWFkZXJDZWxscyhjZWxscykge1xyXG4gICAgY29uc3QgaGVhZGVyRWxlbWVudHMgPSBjZWxscy50b0FycmF5KCk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGhlYWRlckVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHRoaXMuY29sdW1uc1tpXS5lbGVtZW50UmVmID0gaGVhZGVyRWxlbWVudHNbaV07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93QWRkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dEZWxldGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZWRpdE9uQ2VsbENsaWNrOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcmlnaHRUb29sYmFyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dHcmlkU2V0dGluZ3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcm93c1BlclBhZ2U6IG51bWJlciA9IDEwMDA7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJvd0Rpc2FibGVkRm46IEZ1bmN0aW9uO1xyXG5cclxuICAvKipcclxuICAgKiBQcm9taXNlIGZ1bmN0aW9uLCBpZiBwcm92aWRlZCBzaG91bGQgcmV0dXJuIGJvb2xlYW5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjYW5Sb3dCZUVkaXR0ZWRGbjogRnVuY3Rpb247XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28tc2ltcGxlLWdyaWQnKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxyXG4gIHB1YmxpYyBoYW5kbGVLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaW5saW5lRWRpdCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoZXZlbnQuY29kZSA9PT0gJ1RhYicpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgdGhpcy5fbmV4dEF2YWlsYWJsZUNlbGxUb0VkaXQoIWV2ZW50LnNoaWZ0S2V5LCB0aGlzLmVkaXRDZWxsSW5kZXgpXHJcbiAgICAgICAgLnRoZW4oKGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgIHRoaXMuZWRpdENlbGxJbmRleCA9IGluZGV4O1xyXG4gICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0aW9uLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgIHRoaXMuX2RldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICAgIGlmIChldmVudC5jb2RlID09PSAnRXNjYXBlJykge1xyXG4gICAgICB0aGlzLmNhbmNlbEVkaXRSb3coKTtcclxuICAgIH1cclxuICAgIGlmIChldmVudC5jb2RlID09PSAnRW50ZXInKSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdGVBbmRTYXZlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZWRpdGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBpc1NldHRpbmdzTWVudU9wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZWRpdFJvd0luZGV4OiBudW1iZXIgPSAtMTtcclxuICBwdWJsaWMgZWRpdENlbGxJbmRleDogbnVtYmVyID0gLTE7XHJcbiAgcHVibGljIHNlbGVjdGVkUm93SW5kZXg6IG51bWJlciA9IC0xO1xyXG4gIHB1YmxpYyByb3dUb0VkaXQ6IGFueTtcclxuICBwdWJsaWMgY3VycmVudFBhZ2U6IG51bWJlciA9IDE7XHJcbiAgcHVibGljIHNvcnRDb2x1bW5WYWx1ZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBzb3J0RGlyZWN0aW9uOiAnYXNjJyB8ICdkZXNjJyA9ICdhc2MnO1xyXG4gIHB1YmxpYyByZWFkb25seSBJY29ucyA9IENvcmVDb21wb25lbnRzSWNvbjtcclxuXHJcbiAgcHJpdmF0ZSBfZG91YmxlQ2xpY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX25ld1JvdzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpY29uczogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9mb3JtTWFzdGVyOiBGb3JtTWFzdGVyU2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLmRhdGFDaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVDbGlja091dHNpZGVSb3coKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbGlkYXRlQW5kU2F2ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldElzUm93RGlzYWJsZWQoaWR4OiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmRpc2FibGVkUm93cy5pbmRleE9mKGlkeCkgPiAtMTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBpc1Jvd0Rpc2FibGVkKHJvdzogYW55LCBpbmRleDogbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAodGhpcy5yb3dEaXNhYmxlZEZuICYmICh0eXBlb2YgdGhpcy5yb3dEaXNhYmxlZEZuID09PSAnZnVuY3Rpb24nKSkge1xyXG4gICAgICBjb25zdCBkaXNhYmxlZCA9IGF3YWl0IHRoaXMucm93RGlzYWJsZWRGbi5jYWxsKHRoaXMsIHJvdyk7XHJcbiAgICAgIGNvbnN0IGlkeFJvdzogbnVtYmVyID0gdGhpcy5kaXNhYmxlZFJvd3MuaW5kZXhPZihpbmRleCk7XHJcbiAgICAgIGlmIChkaXNhYmxlZCkge1xyXG4gICAgICAgIGlmIChpZHhSb3cgPCAwKSB7XHJcbiAgICAgICAgICB0aGlzLmRpc2FibGVkUm93cy5wdXNoKGluZGV4KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGlkeFJvdyA+IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLmRpc2FibGVkUm93cy5zcGxpY2UoaWR4Um93LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGRpc2FibGVkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzU2luZ2xlQ29sdW1uKGNvbHVtbik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGNvbHVtbi5zaW5nbGVDb2x1bW47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcm93Q29udGFpbnNTaW5nbGVDb2x1bW4ocm93LCBjb2x1bW5zKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBzaW5nbGVDb2x1bW4gPSBjb2x1bW5zLmZpbmQoY29sdW1uID0+IHRoaXMuaXNTaW5nbGVDb2x1bW4oY29sdW1uKSAmJiAhIXJvd1tjb2x1bW4uZmllbGRdKTtcclxuICAgIHJldHVybiAhIXNpbmdsZUNvbHVtbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBhZGROZXdSb3coKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5pbmxpbmVFZGl0KSB7XHJcbiAgICAgIGNvbnN0IHZhbGlkOiBib29sZWFuID0gdGhpcy52YWxpZGF0ZUFuZFNhdmUoKTtcclxuICAgICAgLy8gdGhpcy5fZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICBpZiAodmFsaWQpIHtcclxuICAgICAgICB0aGlzLmRhdGEucHVzaCh7fSk7XHJcbiAgICAgICAgdGhpcy5fZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIHRoaXMuX25ld1JvdyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5lZGl0aW5nID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmVkaXRSb3dJbmRleCA9IHRoaXMuZGF0YS5sZW5ndGggLSAxO1xyXG4gICAgICAgIHRoaXMucm93VG9FZGl0ID0gdGhpcy5kYXRhW3RoaXMuZWRpdFJvd0luZGV4XTtcclxuICAgICAgICB0aGlzLmVkaXRDZWxsSW5kZXggPSBhd2FpdCB0aGlzLl9uZXh0QXZhaWxhYmxlQ2VsbFRvRWRpdCh0cnVlKTtcclxuICAgICAgICB0aGlzLl9kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYWRkUm93Lm5leHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyB2YWxpZGF0ZUFuZFNhdmUoc3RvcGVkaXRpbmc6IGJvb2xlYW4gPSB0cnVlKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuZWRpdGluZykge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIGNvbnN0IHZhbGlkOiBib29sZWFuID0gdGhpcy5fZm9ybU1hc3Rlci5zdWJtaXRTbGF2ZXMoKTtcclxuICAgIHRoaXMuX2RldGVjdENoYW5nZXMoKTtcclxuICAgIGlmICh2YWxpZCkge1xyXG4gICAgICB0aGlzLl9zYXZlUm93KHN0b3BlZGl0aW5nKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FuY2VsRWRpdFJvdygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5lZGl0aW5nKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9uZXdSb3cpIHtcclxuICAgICAgdGhpcy5kYXRhLnNwbGljZSh0aGlzLmRhdGEubGVuZ3RoIC0gMSwgMSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRhdGFbdGhpcy5lZGl0Um93SW5kZXhdID0gdGhpcy5yb3dUb0VkaXQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9yZXNldEVkaXQoKTtcclxuICAgIHRoaXMuX2RldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW1vdmVSb3coKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlbGV0ZVJvdy5uZXh0KHRoaXMuZGF0YVt0aGlzLnNlbGVjdGVkUm93SW5kZXhdKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVDbGlja1JvdyhldmVudDogTW91c2VFdmVudCwgaW5kZXg6IG51bWJlciwgcm93OiBhbnkpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5fZG91YmxlQ2xpY2tlZCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNlbGVjdFRoZVJvdyhpbmRleCk7XHJcbiAgICB9LCAyMDApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdFRoZVJvdyhpbmRleDogbnVtYmVyLCBlbWl0OiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRSb3dJbmRleCA9PT0gLTEgfHwgKHRoaXMuc2VsZWN0ZWRSb3dJbmRleCAhPT0gaW5kZXggJiYgKCh0aGlzLmVkaXRpbmcgJiYgdGhpcy52YWxpZGF0ZUFuZFNhdmUoKSkgfHwgIXRoaXMuZWRpdGluZykpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRSb3dJbmRleCA9IGluZGV4O1xyXG4gICAgfVxyXG4gICAgaWYgKGVtaXQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RSb3cubmV4dCh0aGlzLmRhdGFbdGhpcy5zZWxlY3RlZFJvd0luZGV4XSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlRGJsQ2xpY2tSb3coZXZlbnQ6IE1vdXNlRXZlbnQsIGluZGV4OiBudW1iZXIsIHJvdzogYW55KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoYXdhaXQgdGhpcy5pc1Jvd0Rpc2FibGVkKHJvdywgaW5kZXgpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRSb3dJbmRleCA9IC0xO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgY2FuRWRpdDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5jYW5Sb3dCZUVkaXR0ZWRGbiAmJiB0eXBlb2YgdGhpcy5jYW5Sb3dCZUVkaXR0ZWRGbiA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICBjYW5FZGl0ID0gYXdhaXQgdGhpcy5jYW5Sb3dCZUVkaXR0ZWRGbi5jYWxsKHRoaXMsIHJvdyk7XHJcbiAgICB9XHJcbiAgICBpZiAoY2FuRWRpdCkge1xyXG4gICAgICB0aGlzLl9kb3VibGVDbGlja2VkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5kYmxDbGlja1Jvdy5uZXh0KHRoaXMuZGF0YVtpbmRleF0pO1xyXG4gICAgICB0aGlzLnNlbGVjdFRoZVJvdyhpbmRleCwgZmFsc2UpO1xyXG4gICAgICBpZiAodGhpcy5pbmxpbmVFZGl0KSB7XHJcbiAgICAgICAgdGhpcy5lZGl0Um93KGV2ZW50KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5fcmVzZXREYmxDbGljaygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVkaXRSb3coZXZlbnQ6IE1vdXNlRXZlbnQsIHNlbGVjdENlbGw6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcbiAgICB0aGlzLmVkaXRSb3dJbmRleCA9IHRoaXMuc2VsZWN0ZWRSb3dJbmRleDtcclxuICAgIHRoaXMucm93VG9FZGl0ID0gdGhpcy5kYXRhW3RoaXMuZWRpdFJvd0luZGV4XTtcclxuICAgIHRoaXMuZWRpdGluZyA9IHRydWU7XHJcbiAgICBpZiAoc2VsZWN0Q2VsbCkge1xyXG4gICAgICB0aGlzLl9uZXh0QXZhaWxhYmxlQ2VsbFRvRWRpdCh0cnVlKS50aGVuKChpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgdGhpcy5lZGl0Q2VsbEluZGV4ID0gaW5kZXg7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZUNlbGxDbGljayhldmVudDogTW91c2VFdmVudCwgcm93OiBhbnksIHJvd0luZGV4OiBudW1iZXIsIGNlbGxJbmRleDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5lZGl0T25DZWxsQ2xpY2spIHtcclxuICAgICAgaWYgKGF3YWl0IHRoaXMuaXNSb3dEaXNhYmxlZChyb3csIHJvd0luZGV4KSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSb3dJbmRleCA9IC0xO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNlbGVjdFRoZVJvdyhyb3dJbmRleCwgZmFsc2UpO1xyXG4gICAgICBpZiAodGhpcy5pbmxpbmVFZGl0KSB7XHJcbiAgICAgICAgdGhpcy5lZGl0Um93SW5kZXggPSByb3dJbmRleDtcclxuICAgICAgICB0aGlzLmVkaXRDZWxsSW5kZXggPSBjZWxsSW5kZXg7XHJcbiAgICAgICAgdGhpcy5lZGl0aW5nID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmVkaXRSb3coZXZlbnQsIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5lZGl0Q2VsbEluZGV4ID0gY2VsbEluZGV4O1xyXG4gICAgfVxyXG4gICAgdGhpcy5fZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZVNldHRpbmdzTWVudSgpOiB2b2lkIHtcclxuICAgIHRoaXMuaGVhZGVyQ29sdW1uc0NvcHkuZm9yRWFjaChpID0+IGkuaXNTZWxlY3RlZCA9IGZhbHNlKTtcclxuICAgIHRoaXMuaXNTZXR0aW5nc01lbnVPcGVuID0gIXRoaXMuaXNTZXR0aW5nc01lbnVPcGVuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZUNvbHVtbk1lbnUoY29sOiAgYW55KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuc2hvd0dyaWRTZXR0aW5ncykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc1NldHRpbmdzTWVudU9wZW4gPSBmYWxzZTtcclxuICAgIGlmIChjb2wuaXNTZWxlY3RlZCkge1xyXG4gICAgICBjb2wuaXNTZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5oZWFkZXJDb2x1bW5zQ29weS5mb3JFYWNoKGkgPT4gaS5pc1NlbGVjdGVkID0gZmFsc2UpO1xyXG4gICAgICBjb2wuaXNTZWxlY3RlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGlkZUNvbHVtbihjb2w6IGFueSk6IHZvaWQge1xyXG4gICAgY29sLmlzU2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaGVhZGVyQ29sdW1uc0NvcHkgPSB0aGlzLmhlYWRlckNvbHVtbnNDb3B5LmZpbHRlcigob2JqKSA9PiB7XHJcbiAgICAgIHJldHVybiBvYmogIT09IGNvbDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gVE9ETyBGaXggdGhpcyBzb3J0IG1ldGhvZFxyXG4gIC8vIHB1YmxpYyBzb3J0Q29sdW1uKGNvbDogYW55LCBjb2x1bW5WYWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgLy8gICBjb25zb2xlLmxvZyhjb2wpO1xyXG4gIC8vICAgY29uc29sZS5sb2coXCJjb2x1bW5WYWx1ZSBcIiArIGNvbHVtblZhbHVlKTtcclxuICAvLyAgIGNvbC5pc1NlbGVjdGVkID0gZmFsc2U7XHJcbiAgLy9cclxuICAvLyAgIGlmICh0aGlzLnNvcnRDb2x1bW5WYWx1ZSA9PT0gY29sdW1uVmFsdWUpIHtcclxuICAvLyAgICAgdGhpcy5zb3J0RGlyZWN0aW9uID0gdGhpcy5zb3J0RGlyZWN0aW9uID09PSAnYXNjJyA/ICdkZXNjJyA6ICdhc2MnO1xyXG4gIC8vICAgfSBlbHNlIHtcclxuICAvLyAgICAgdGhpcy5zb3J0Q29sdW1uVmFsdWUgPSBjb2x1bW5WYWx1ZTtcclxuICAvLyAgICAgdGhpcy5zb3J0RGlyZWN0aW9uID0gJ2FzYyc7XHJcbiAgLy8gICB9XHJcbiAgLy9cclxuICAvLyAgIGNvbnNvbGUubG9nKHRoaXMuZGF0YSk7XHJcbiAgLy8gICAvLyB0aGlzLmRhdGEgPSB0aGlzLl9zb3J0RGF0YSh0aGlzLmRhdGEpO1xyXG4gIC8vXHJcbiAgLy9cclxuICAvLyAgIHRoaXMuZGF0YS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgLy8gICAgIGNvbnN0IHNpZ24gPSB0aGlzLnNvcnREaXJlY3Rpb24gPT09ICdhc2MnID8gMSA6IC0xO1xyXG4gIC8vXHJcbiAgLy8gICAgIGNvbnNvbGUubG9nKFwiYSBcIiArIGEpO1xyXG4gIC8vICAgICBjb25zb2xlLmxvZyhcImIgXCIgKyBiKTtcclxuICAvLyAgICAgY29uc29sZS5sb2coYVt0aGlzLnNvcnRDb2x1bW5WYWx1ZV0pO1xyXG4gIC8vICAgICBjb25zb2xlLmxvZyhiW3RoaXMuc29ydENvbHVtblZhbHVlXSk7XHJcbiAgLy8gICAgIGNvbnNvbGUubG9nKFwic2lnbiBcIiArIHNpZ24pO1xyXG4gIC8vXHJcbiAgLy8gICAgIGlmIChhW3RoaXMuc29ydENvbHVtblZhbHVlXSA8IGJbdGhpcy5zb3J0Q29sdW1uVmFsdWVdKSB7XHJcbiAgLy8gICAgICAgcmV0dXJuIC0xICogc2lnbjtcclxuICAvLyAgICAgfSBlbHNlIGlmIChhW3RoaXMuc29ydENvbHVtblZhbHVlXSA+IGJbdGhpcy5zb3J0Q29sdW1uVmFsdWVdKSB7XHJcbiAgLy8gICAgICAgcmV0dXJuIDEgKiBzaWduO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICAgIHJldHVybiAwO1xyXG4gIC8vICAgfSk7XHJcbiAgLy9cclxuICAvL1xyXG4gIC8vXHJcbiAgLy8gICB0aGlzLl9kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgLy8gICAvLyB0aGlzLmRhdGEuc29ydCgoYSwgYikgPT4gYVt0aGlzLnNvcnRDb2x1bW5WYWx1ZV0gLSBiW3RoaXMuc29ydENvbHVtblZhbHVlXSk7XHJcbiAgLy8gICBjb25zb2xlLmxvZyh0aGlzLmRhdGEpO1xyXG4gIC8vIH1cclxuXHJcbiAgcHJpdmF0ZSBfc29ydERhdGEodGFibGVEYXRhOiBhbnkpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRhYmxlRGF0YS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgIGNvbnN0IHNpZ24gPSB0aGlzLnNvcnREaXJlY3Rpb24gPT09ICdhc2MnID8gMSA6IC0xO1xyXG5cclxuICAgICAgY29uc29sZS5sb2coXCJhIFwiICsgYSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiYiBcIiArIGIpO1xyXG4gICAgICBjb25zb2xlLmxvZyhhW3RoaXMuc29ydENvbHVtblZhbHVlXSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKGJbdGhpcy5zb3J0Q29sdW1uVmFsdWVdKTtcclxuICAgICAgY29uc29sZS5sb2coXCJzaWduIFwiICsgc2lnbik7XHJcblxyXG4gICAgICBpZiAoYVt0aGlzLnNvcnRDb2x1bW5WYWx1ZV0gPCBiW3RoaXMuc29ydENvbHVtblZhbHVlXSkge1xyXG4gICAgICAgIHJldHVybiAtMSAqIHNpZ247XHJcbiAgICAgIH0gZWxzZSBpZiAoYVt0aGlzLnNvcnRDb2x1bW5WYWx1ZV0gPiBiW3RoaXMuc29ydENvbHVtblZhbHVlXSkge1xyXG4gICAgICAgIHJldHVybiAxICogc2lnbjtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dBbGxDb2x1bW5zKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc1NldHRpbmdzTWVudU9wZW4gPSBmYWxzZTtcclxuICAgIHRoaXMuaGVhZGVyQ29sdW1uc0NvcHkgPSB0aGlzLmhlYWRlckNvbHVtbnM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZXhwb3J0VG9FeGNlbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNTZXR0aW5nc01lbnVPcGVuID0gZmFsc2U7XHJcbiAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzaW1wbGUtZ3JpZC10YWJsZScpO1xyXG4gICAgY29uc3Qgd3M6IFhMU1guV29ya1NoZWV0ID0gWExTWC51dGlscy50YWJsZV90b19zaGVldChlbGVtZW50KTtcclxuICAgIGNvbnN0IHdiOiBYTFNYLldvcmtCb29rID0gWExTWC51dGlscy5ib29rX25ldygpO1xyXG4gICAgWExTWC51dGlscy5ib29rX2FwcGVuZF9zaGVldCh3Yiwgd3MsICdTaGVldDEnKTtcclxuICAgIFhMU1gud3JpdGVGaWxlKHdiLCAnRXhjZWxTaGVldC54bHN4Jyk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcHJlcGFyZURhdGFSb3cocm93OiBhbnksIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNSb3dEaXNhYmxlZChyb3csIGluZGV4KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Jlc2V0RGJsQ2xpY2soKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5fZG91YmxlQ2xpY2tlZCA9IGZhbHNlO1xyXG4gICAgfSwgNTAwKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIG5leHQ7IE1vdmUgdG8gbmV4dCBvciBwcmV2aW91cyBjZWxsXHJcbiAgICogQHBhcmFtIHN0YXJ0OyBTdGFydCBmcm9tIGNlbGxpbmRleFxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfbmV4dEF2YWlsYWJsZUNlbGxUb0VkaXQobmV4dDogYm9vbGVhbiwgc3RhcnQ6IG51bWJlciA9IC0xKTogUHJvbWlzZTxudW1iZXI+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgY29uc3QgbnVtRWRpdGFibGVDb2x1bW5zOiBudW1iZXIgPSB0aGlzLmNvbHVtbnMuZmlsdGVyKGMgPT4gIWMucmVhZG9ubHkpLmxlbmd0aDtcclxuICAgICAgY29uc3Qgd2FudGVkSW5kZXggPSBzdGFydCArIChuZXh0ID8gMSA6IC0xKTtcclxuICAgICAgaWYgKHdhbnRlZEluZGV4ID49IG51bUVkaXRhYmxlQ29sdW1ucykge1xyXG4gICAgICAgIHRoaXMuX2dldE5leHRFZGl0Um93SW5kZXgoKVxyXG4gICAgICAgICAgLnRoZW4oKGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5lZGl0Um93SW5kZXggPSBpbmRleDtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLl9nZXROZXh0RWRpdENlbGxJbmRleCgwKSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLmNhdGNoKChlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlamVjdCgpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAod2FudGVkSW5kZXggPCAwKSB7XHJcbiAgICAgICAgdGhpcy5fZ2V0UHJldmlvdXNFZGl0Um93SW5kZXgoKVxyXG4gICAgICAgICAgLnRoZW4oKGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5lZGl0Um93SW5kZXggPSBpbmRleDtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLl9nZXRQcmV2aW91c0VkaXRDZWxsSW5kZXgodGhpcy5jb2x1bW5zLmxlbmd0aCAtIDEpKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuY2F0Y2goKGUpID0+IHtcclxuICAgICAgICAgICAgcmVqZWN0KCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXNvbHZlKG5leHQgPyB0aGlzLl9nZXROZXh0RWRpdENlbGxJbmRleChzdGFydCArIDEpIDogdGhpcy5fZ2V0UHJldmlvdXNFZGl0Q2VsbEluZGV4KHN0YXJ0IC0gMSkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldE5leHRFZGl0Q2VsbEluZGV4KHN0YXJ0OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gc3RhcnQ7IGkgPCB0aGlzLmNvbHVtbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKCF0aGlzLmNvbHVtbnNbaV0ucmVhZG9ubHkpIHtcclxuICAgICAgICByZXR1cm4gaTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2V0UHJldmlvdXNFZGl0Q2VsbEluZGV4KHN0YXJ0OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gc3RhcnQ7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgIGlmICghdGhpcy5jb2x1bW5zW2ldLnJlYWRvbmx5KSB7XHJcbiAgICAgICAgcmV0dXJuIGk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldE5leHRFZGl0Um93SW5kZXgoKTogUHJvbWlzZTxudW1iZXI+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgbGV0IG5ld1Jvd0luZGV4OiBudW1iZXIgPSAwO1xyXG4gICAgICBpZiAodGhpcy5lZGl0Um93SW5kZXggKyAxID49IHRoaXMuZGF0YS5sZW5ndGgpIHtcclxuICAgICAgICBpZiAodGhpcy5hdXRvQWRkUm93KSB7XHJcbiAgICAgICAgICB0aGlzLmFkZE5ld1JvdygpO1xyXG4gICAgICAgICAgbmV3Um93SW5kZXggPSB0aGlzLmVkaXRSb3dJbmRleDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbmV3Um93SW5kZXggPSAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdSb3dJbmRleCA9IHRoaXMuZWRpdFJvd0luZGV4ICsgMTtcclxuICAgICAgfVxyXG4gICAgICBpZiAobmV3Um93SW5kZXggIT09IHRoaXMuZWRpdFJvd0luZGV4KSB7IC8vIGdvIHRvIGRpZmZlcmVudCByb3cgdmFsaWRhdGUgY3VycmVudCBvbmUgZmlyc3RcclxuICAgICAgICBpZiAodGhpcy52YWxpZGF0ZUFuZFNhdmUoZmFsc2UpKSB7XHJcbiAgICAgICAgICB0aGlzLnJvd1RvRWRpdCA9IHRoaXMuZGF0YVtuZXdSb3dJbmRleF07XHJcbiAgICAgICAgICByZXNvbHZlKG5ld1Jvd0luZGV4KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJlc29sdmUobmV3Um93SW5kZXgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldFByZXZpb3VzRWRpdFJvd0luZGV4KCk6IFByb21pc2U8bnVtYmVyPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIGxldCBuZXdSb3dJbmRleDogbnVtYmVyID0gMDtcclxuICAgICAgaWYgKHRoaXMuZWRpdFJvd0luZGV4IC0gMSA8IDApIHtcclxuICAgICAgICBuZXdSb3dJbmRleCA9IHRoaXMuZGF0YS5sZW5ndGggLSAxO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5ld1Jvd0luZGV4ID0gdGhpcy5lZGl0Um93SW5kZXggLSAxO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChuZXdSb3dJbmRleCAhPT0gdGhpcy5lZGl0Um93SW5kZXgpIHsgLy8gZ28gdG8gZGlmZmVyZW50IHJvdyB2YWxpZGF0ZSBjdXJyZW50IG9uZSBmaXJzdFxyXG4gICAgICAgIGlmICh0aGlzLnZhbGlkYXRlQW5kU2F2ZShmYWxzZSkpIHtcclxuICAgICAgICAgIHRoaXMucm93VG9FZGl0ID0gdGhpcy5kYXRhW25ld1Jvd0luZGV4XTtcclxuICAgICAgICAgIHJlc29sdmUobmV3Um93SW5kZXgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmVzb2x2ZShuZXdSb3dJbmRleCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2F2ZVJvdyhzdG9wZWRpdGluZzogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcclxuICAgIC8vIGVtaXQgc2F2ZUV2ZW50XHJcbiAgICBpZiAodGhpcy5yb3dUb0VkaXQpIHtcclxuICAgICAgdGhpcy5zYXZlUm93Lm5leHQodGhpcy5yb3dUb0VkaXQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fbmV3Um93ID0gZmFsc2U7XHJcbiAgICBpZiAoc3RvcGVkaXRpbmcpIHtcclxuICAgICAgdGhpcy5fcmVzZXRFZGl0KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ29Ub1ByZXZpb3VzUGFnZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgLT0gMTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnb1RvTmV4dFBhZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlICs9IDE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0Q3VycmVudFBhZ2UocGFnZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gcGFnZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2RldGVjdENoYW5nZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rpb24uZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVzZXRFZGl0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fbmV3Um93ID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlbGVjdGVkUm93SW5kZXggPSAtMTtcclxuICAgIHRoaXMuZWRpdFJvd0luZGV4ID0gLTE7XHJcbiAgICB0aGlzLmVkaXRDZWxsSW5kZXggPSAtMTtcclxuICAgIHRoaXMuZWRpdGluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5yb3dUb0VkaXQgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|