@pepperi-addons/ngx-lib 0.5.0-ng15.2 → 0.5.0-ng16.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/address/address.component.d.ts +1 -1
- package/attachment/attachment.component.d.ts +1 -1
- package/bread-crumbs/bread-crumbs.component.d.ts +1 -1
- package/button/button.component.d.ts +1 -1
- package/carousel/carousel-item.directive.d.ts +1 -1
- package/carousel/carousel.component.d.ts +1 -1
- package/checkbox/checkbox.component.d.ts +1 -1
- package/chips/chips.component.d.ts +1 -1
- package/color/color.component.d.ts +1 -1
- package/core/clipboard/clipboard.directive.d.ts +1 -1
- package/core/common/directives/auto-width.directive.d.ts +1 -1
- package/core/common/directives/button-loader.directive.d.ts +1 -1
- package/core/common/directives/data-qa.directive.d.ts +1 -1
- package/core/common/directives/div-loader.directive.d.ts +1 -1
- package/core/common/directives/prevent-multi-click.directive.d.ts +1 -1
- package/core/common/directives/print.directive.d.ts +1 -1
- package/core/portal/attach.directive.d.ts +1 -1
- package/core/portal/target.directive.d.ts +1 -1
- package/date/date.component.d.ts +1 -1
- package/dialog/dialog.component.d.ts +1 -1
- package/draggable-items/draggable-item/draggable-item.component.d.ts +1 -1
- package/draggable-items/draggable-items.component.d.ts +1 -1
- package/esm2022/address/address.component.mjs +112 -0
- package/{esm2020 → esm2022}/address/address.module.mjs +23 -23
- package/{esm2020 → esm2022}/attachment/attachment.component.mjs +65 -61
- package/{esm2020 → esm2022}/attachment/attachment.module.mjs +21 -21
- package/esm2022/bread-crumbs/bread-crumbs.component.mjs +87 -0
- package/esm2022/bread-crumbs/bread-crumbs.model.mjs +10 -0
- package/esm2022/bread-crumbs/bread-crumbs.module.mjs +51 -0
- package/{esm2020 → esm2022}/button/button.component.mjs +76 -53
- package/esm2022/button/button.model.mjs +13 -0
- package/{esm2020 → esm2022}/button/button.module.mjs +19 -19
- package/esm2022/carousel/carousel-item.directive.mjs +34 -0
- package/esm2022/carousel/carousel.component.mjs +765 -0
- package/{esm2020 → esm2022}/carousel/carousel.module.mjs +5 -5
- package/esm2022/checkbox/checkbox.component.mjs +182 -0
- package/esm2022/checkbox/checkbox.module.mjs +64 -0
- package/esm2022/chips/chips.component.mjs +187 -0
- package/esm2022/chips/chips.module.mjs +82 -0
- package/{esm2020 → esm2022}/chips/chips.service.mjs +5 -5
- package/esm2022/color/color-picker.component.mjs +229 -0
- package/esm2022/color/color.component.mjs +93 -0
- package/esm2022/color/color.module.mjs +93 -0
- package/{esm2020 → esm2022}/core/clipboard/clipboard.directive.mjs +4 -4
- package/{esm2020 → esm2022}/core/clipboard/clipboard.service.mjs +4 -4
- package/esm2022/core/common/directives/auto-width.directive.mjs +79 -0
- package/esm2022/core/common/directives/base-destroyer.directive.mjs +23 -0
- package/esm2022/core/common/directives/button-blur.directive.mjs +25 -0
- package/esm2022/core/common/directives/button-loader.directive.mjs +117 -0
- package/esm2022/core/common/directives/data-qa.directive.mjs +26 -0
- package/esm2022/core/common/directives/div-loader.directive.mjs +67 -0
- package/esm2022/core/common/directives/menu-blur.directive.mjs +33 -0
- package/esm2022/core/common/directives/prevent-multi-click.directive.mjs +25 -0
- package/esm2022/core/common/directives/print.directive.mjs +176 -0
- package/esm2022/core/common/model/wapi.model.mjs +247 -0
- package/esm2022/core/common/pipes/common-pipes.mjs +180 -0
- package/esm2022/core/common/pipes/date-ago.pipe.mjs +47 -0
- package/esm2022/core/common/services/addon.service.mjs +234 -0
- package/esm2022/core/common/services/color.service.mjs +383 -0
- package/esm2022/core/common/services/cookie.service.mjs +156 -0
- package/esm2022/core/common/services/data-convertor.service.mjs +139 -0
- package/esm2022/core/common/services/file.service.mjs +252 -0
- package/{esm2020 → esm2022}/core/common/services/jwt-helper.service.mjs +4 -4
- package/esm2022/core/common/services/session.service.mjs +73 -0
- package/esm2022/core/common/services/translate.service.mjs +47 -0
- package/esm2022/core/common/services/utilities.service.mjs +302 -0
- package/esm2022/core/common/services/validator.service.mjs +273 -0
- package/esm2022/core/common/services/window-scrolling.service.mjs +38 -0
- package/esm2022/core/customization/customization.model.mjs +377 -0
- package/esm2022/core/customization/customization.service.mjs +802 -0
- package/{esm2020 → esm2022}/core/http/interceptors/error.interceptor.mjs +4 -4
- package/esm2022/core/http/interceptors/loader.interceptor.mjs +33 -0
- package/{esm2020 → esm2022}/core/http/interceptors/profiler.interceptor.mjs +4 -4
- package/esm2022/core/http/services/http.service.mjs +158 -0
- package/{esm2020 → esm2022}/core/http/services/loader.service.mjs +6 -6
- package/esm2022/core/layout/layout.service.mjs +171 -0
- package/esm2022/core/layout/rtl.directive.mjs +50 -0
- package/esm2022/core/portal/attach.directive.mjs +30 -0
- package/esm2022/core/portal/portal.service.mjs +37 -0
- package/esm2022/core/portal/target.directive.mjs +27 -0
- package/{esm2020 → esm2022}/core/scroll-to/scroll-to.service.mjs +4 -4
- package/esm2022/date/date.component.mjs +345 -0
- package/{esm2020 → esm2022}/date/date.model.mjs +7 -7
- package/esm2022/date/date.module.mjs +89 -0
- package/esm2022/dialog/default-dialog.component.mjs +39 -0
- package/esm2022/dialog/dialog.component.mjs +37 -0
- package/esm2022/dialog/dialog.model.mjs +41 -0
- package/esm2022/dialog/dialog.module.mjs +59 -0
- package/esm2022/dialog/dialog.service.mjs +106 -0
- package/esm2022/draggable-items/draggable-item/draggable-item.component.mjs +68 -0
- package/esm2022/draggable-items/draggable-items.component.mjs +95 -0
- package/esm2022/draggable-items/draggable-items.module.mjs +65 -0
- package/esm2022/field-title/field-title.component.mjs +46 -0
- package/esm2022/field-title/field-title.module.mjs +48 -0
- package/{esm2020 → esm2022}/files-uploader/files-uploader.component.mjs +36 -27
- package/esm2022/files-uploader/files-uploader.module.mjs +80 -0
- package/esm2022/form/field-generator.component.mjs +152 -0
- package/esm2022/form/form.component.mjs +1258 -0
- package/esm2022/form/form.module.mjs +180 -0
- package/esm2022/form/indicators.component.mjs +23 -0
- package/esm2022/form/internal-button.component.mjs +188 -0
- package/esm2022/form/internal-carusel.component.mjs +126 -0
- package/esm2022/form/internal-carusel.service.mjs +34 -0
- package/esm2022/form/internal-field-generator.component.mjs +146 -0
- package/esm2022/form/internal-form.component.mjs +1236 -0
- package/esm2022/form/internal-list.component.mjs +524 -0
- package/esm2022/form/internal-menu.component.mjs +62 -0
- package/esm2022/form/internal-page.component.mjs +380 -0
- package/esm2022/form/internal-page.service.mjs +125 -0
- package/esm2022/group-buttons/group-buttons.component.mjs +73 -0
- package/esm2022/group-buttons/group-buttons.module.mjs +60 -0
- package/esm2022/icon/icon-registry.service.mjs +24 -0
- package/esm2022/icon/icon.component.mjs +95 -0
- package/{esm2020 → esm2022}/icon/icon.module.mjs +5 -5
- package/esm2022/icon/icon.service.mjs +34 -0
- package/{esm2020 → esm2022}/image/image.component.mjs +45 -39
- package/esm2022/image/image.module.mjs +74 -0
- package/esm2022/image/image.service.mjs +53 -0
- package/esm2022/images-filmstrip/images-filmstrip.component.mjs +360 -0
- package/esm2022/images-filmstrip/images-filmstrip.module.mjs +84 -0
- package/esm2022/link/link.component.mjs +324 -0
- package/esm2022/link/link.module.mjs +81 -0
- package/{esm2020 → esm2022}/link/link.pipes.mjs +4 -4
- package/esm2022/list/list-actions.component.mjs +42 -0
- package/esm2022/list/list-carousel.component.mjs +110 -0
- package/esm2022/list/list-chooser.component.mjs +64 -0
- package/esm2022/list/list-pager.component.mjs +126 -0
- package/{esm2020 → esm2022}/list/list-sorting.component.mjs +15 -13
- package/esm2022/list/list-total.component.mjs +31 -0
- package/esm2022/list/list-views.component.mjs +86 -0
- package/esm2022/list/list.component.mjs +1394 -0
- package/{esm2020 → esm2022}/list/list.model.mjs +4 -1
- package/esm2022/list/list.module.mjs +145 -0
- package/esm2022/list/list.pipes.mjs +45 -0
- package/esm2022/list/virtual-scroller.mjs +1124 -0
- package/esm2022/menu/menu-item.component.mjs +111 -0
- package/esm2022/menu/menu.component.mjs +218 -0
- package/esm2022/menu/menu.model.mjs +23 -0
- package/esm2022/menu/menu.module.mjs +60 -0
- package/{esm2020 → esm2022}/ngx-lib.module.mjs +65 -65
- package/esm2022/page-layout/page-layout.component.mjs +41 -0
- package/{esm2020 → esm2022}/page-layout/page-layout.module.mjs +13 -13
- package/esm2022/profile-data-views-list/profile-data-view/profile-data-view.component.mjs +48 -0
- package/esm2022/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.mjs +82 -0
- package/esm2022/profile-data-views-list/profile-data-views-list.component.mjs +131 -0
- package/esm2022/profile-data-views-list/profile-data-views-list.module.mjs +89 -0
- package/esm2022/quantity-selector/quantity-selector-validation.directive.mjs +53 -0
- package/{esm2020 → esm2022}/quantity-selector/quantity-selector.component.mjs +83 -73
- package/esm2022/quantity-selector/quantity-selector.module.mjs +83 -0
- package/{esm2020 → esm2022}/quantity-selector/quantity-selector.pipes.mjs +4 -4
- package/esm2022/query-builder/common/model/type-map.mjs +28 -0
- package/esm2022/query-builder/common/services/output-query.service.mjs +118 -0
- package/esm2022/query-builder/common/services/query-structure.service.mjs +263 -0
- package/esm2022/query-builder/common/services/type-convertor.service.mjs +42 -0
- package/esm2022/query-builder/query-builder-item/query-builder-item.component.mjs +134 -0
- package/esm2022/query-builder/query-builder-section/query-builder-section.component.mjs +76 -0
- package/esm2022/query-builder/query-builder.component.mjs +116 -0
- package/esm2022/query-builder/query-builder.module.mjs +71 -0
- package/{esm2020 → esm2022}/query-builder/query-builder.service.mjs +4 -4
- package/esm2022/remote-loader/addon-block-loader.component.mjs +115 -0
- package/esm2022/remote-loader/addon-block-loader.service.mjs +66 -0
- package/esm2022/remote-loader/remote-loader-element.component.mjs +179 -0
- package/esm2022/remote-loader/remote-loader.component.mjs +120 -0
- package/{esm2020 → esm2022}/remote-loader/remote-loader.module.mjs +26 -26
- package/esm2022/remote-loader/remote-loader.service.mjs +107 -0
- package/{esm2020 → esm2022}/rich-html-textarea/rich-html-textarea.component.mjs +38 -30
- package/esm2022/rich-html-textarea/rich-html-textarea.module.mjs +96 -0
- package/esm2022/search/search.component.mjs +322 -0
- package/esm2022/search/search.module.mjs +71 -0
- package/esm2022/select/select.component.mjs +341 -0
- package/esm2022/select/select.module.mjs +71 -0
- package/esm2022/select-panel/select-panel.component.mjs +161 -0
- package/{esm2020 → esm2022}/select-panel/select-panel.module.mjs +31 -31
- package/esm2022/separator/separator.component.mjs +65 -0
- package/{esm2020 → esm2022}/separator/separator.module.mjs +5 -5
- package/esm2022/side-bar/side-bar.component.mjs +141 -0
- package/esm2022/side-bar/side-bar.module.mjs +56 -0
- package/esm2022/signature/signature-dialog.component.mjs +82 -0
- package/{esm2020 → esm2022}/signature/signature.component.mjs +41 -31
- package/esm2022/signature/signature.module.mjs +92 -0
- package/esm2022/size-detector/size-detector.component.mjs +97 -0
- package/esm2022/size-detector/size-detector.module.mjs +35 -0
- package/esm2022/skeleton-loader/skeleton-loader.component.mjs +46 -0
- package/{esm2020 → esm2022}/skeleton-loader/skeleton-loader.module.mjs +7 -7
- package/esm2022/slider/slider.component.mjs +105 -0
- package/{esm2020 → esm2022}/slider/slider.module.mjs +17 -17
- package/esm2022/smart-filters/boolean-filter/boolean-filter.component.mjs +74 -0
- package/esm2022/smart-filters/common/filter-actions.component.mjs +28 -0
- package/esm2022/smart-filters/common/model/base-filter-component.mjs +307 -0
- package/esm2022/smart-filters/common/model/field.mjs +125 -0
- package/esm2022/smart-filters/common/model/operator.mjs +287 -0
- package/esm2022/smart-filters/date-filter/date-filter.component.mjs +181 -0
- package/esm2022/smart-filters/multi-select-filter/multi-select-filter.component.mjs +202 -0
- package/esm2022/smart-filters/number-filter/number-filter.component.mjs +133 -0
- package/esm2022/smart-filters/smart-filters.component.mjs +143 -0
- package/esm2022/smart-filters/smart-filters.module.mjs +159 -0
- package/esm2022/smart-filters/text-filter/text-filter.component.mjs +110 -0
- package/esm2022/snack-bar/default-snack-bar.component.mjs +31 -0
- package/esm2022/snack-bar/snack-bar.component.mjs +28 -0
- package/esm2022/snack-bar/snack-bar.model.mjs +9 -0
- package/esm2022/snack-bar/snack-bar.module.mjs +63 -0
- package/esm2022/snack-bar/snack-bar.service.mjs +62 -0
- package/{esm2020 → esm2022}/textarea/textarea.component.mjs +35 -27
- package/esm2022/textarea/textarea.module.mjs +83 -0
- package/esm2022/textbox/textbox-validation.directive.mjs +96 -0
- package/esm2022/textbox/textbox.component.mjs +646 -0
- package/esm2022/textbox/textbox.module.mjs +73 -0
- package/esm2022/textbox-icon/textbox-icon.component.mjs +50 -0
- package/esm2022/textbox-icon/textbox-icon.module.mjs +65 -0
- package/esm2022/top-bar/top-bar.component.mjs +127 -0
- package/esm2022/top-bar/top-bar.module.mjs +63 -0
- package/fesm2022/pepperi-addons-ngx-lib-address.mjs +173 -0
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-address.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-attachment.mjs +84 -80
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-bread-crumbs.mjs +34 -28
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-bread-crumbs.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-button.mjs +227 -0
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-button.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-carousel.mjs +76 -55
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-carousel.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-checkbox.mjs +54 -48
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-chips.mjs +308 -0
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-color.mjs +92 -84
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-color.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-date.mjs +116 -104
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-date.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-dialog.mjs +50 -36
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-draggable-items.mjs +229 -0
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-field-title.mjs +101 -0
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-files-uploader.mjs +66 -56
- package/fesm2022/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-form.mjs +391 -310
- package/{fesm2015 → fesm2022}/pepperi-addons-ngx-lib-form.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-group-buttons.mjs +38 -35
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-icon.mjs +23 -18
- package/{fesm2015 → fesm2022}/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-image.mjs +77 -68
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-image.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-images-filmstrip.mjs +83 -60
- package/fesm2022/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-link.mjs +113 -103
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-link.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-list.mjs +339 -273
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-list.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-menu.mjs +89 -87
- package/{fesm2015 → fesm2022}/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
- package/{fesm2015 → fesm2022}/pepperi-addons-ngx-lib-page-layout.mjs +23 -17
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-profile-data-views-list.mjs +72 -63
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-quantity-selector.mjs +125 -110
- package/{fesm2015 → fesm2022}/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-query-builder.mjs +95 -68
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-remote-loader.mjs +84 -64
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-rich-html-textarea.mjs +76 -67
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-search.mjs +85 -79
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-search.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-select-panel.mjs +53 -49
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-select.mjs +74 -66
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-select.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-separator.mjs +18 -16
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-separator.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-side-bar.mjs +44 -38
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-signature.mjs +95 -81
- package/fesm2022/pepperi-addons-ngx-lib-signature.mjs.map +1 -0
- package/fesm2022/pepperi-addons-ngx-lib-size-detector.mjs +139 -0
- package/fesm2022/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -0
- package/fesm2022/pepperi-addons-ngx-lib-skeleton-loader.mjs +78 -0
- package/{fesm2015 → fesm2022}/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-slider.mjs +154 -0
- package/fesm2022/pepperi-addons-ngx-lib-slider.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-smart-filters.mjs +189 -161
- package/{fesm2015 → fesm2022}/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-snack-bar.mjs +42 -34
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-textarea.mjs +67 -58
- package/{fesm2015 → fesm2022}/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-textbox-icon.mjs +28 -25
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-textbox.mjs +156 -144
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-top-bar.mjs +48 -32
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib.mjs +661 -449
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib.mjs.map +1 -1
- package/field-title/field-title.component.d.ts +1 -1
- package/files-uploader/files-uploader.component.d.ts +1 -1
- package/form/field-generator.component.d.ts +1 -1
- package/form/form.component.d.ts +1 -1
- package/form/form.module.d.ts +2 -2
- package/form/indicators.component.d.ts +1 -1
- package/form/internal-button.component.d.ts +1 -1
- package/form/internal-carusel.component.d.ts +1 -1
- package/form/internal-field-generator.component.d.ts +1 -1
- package/form/internal-form.component.d.ts +1 -1
- package/form/internal-list.component.d.ts +1 -1
- package/form/internal-menu.component.d.ts +1 -1
- package/form/internal-page.component.d.ts +1 -1
- package/group-buttons/group-buttons.component.d.ts +1 -1
- package/icon/icon.component.d.ts +1 -1
- package/image/image.component.d.ts +1 -1
- package/images-filmstrip/images-filmstrip.component.d.ts +1 -1
- package/link/link.component.d.ts +1 -1
- package/list/list-actions.component.d.ts +1 -1
- package/list/list-carousel.component.d.ts +1 -1
- package/list/list-chooser.component.d.ts +1 -1
- package/list/list-pager.component.d.ts +1 -1
- package/list/list-sorting.component.d.ts +1 -1
- package/list/list-total.component.d.ts +1 -1
- package/list/list-views.component.d.ts +1 -1
- package/list/list.component.d.ts +1 -1
- package/list/virtual-scroller.d.ts +1 -1
- package/menu/menu-item.component.d.ts +1 -1
- package/menu/menu.component.d.ts +1 -1
- package/package.json +145 -235
- package/page-layout/page-layout.component.d.ts +1 -1
- package/profile-data-views-list/profile-data-view/profile-data-view.component.d.ts +1 -1
- package/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.d.ts +1 -1
- package/profile-data-views-list/profile-data-views-list.component.d.ts +1 -1
- package/quantity-selector/quantity-selector-validation.directive.d.ts +1 -1
- package/quantity-selector/quantity-selector.component.d.ts +1 -1
- package/query-builder/query-builder-item/query-builder-item.component.d.ts +1 -1
- package/query-builder/query-builder-section/query-builder-section.component.d.ts +1 -1
- package/query-builder/query-builder.component.d.ts +1 -1
- package/query-builder/query-builder.module.d.ts +1 -1
- package/remote-loader/addon-block-loader.component.d.ts +1 -1
- package/remote-loader/remote-loader-element.component.d.ts +1 -1
- package/remote-loader/remote-loader.component.d.ts +1 -1
- package/rich-html-textarea/rich-html-textarea.component.d.ts +1 -1
- package/search/search.component.d.ts +1 -1
- package/select/select.component.d.ts +1 -1
- package/select-panel/select-panel.component.d.ts +1 -1
- package/separator/separator.component.d.ts +1 -1
- package/side-bar/side-bar.component.d.ts +1 -1
- package/signature/signature-dialog.component.d.ts +2 -2
- package/signature/signature.component.d.ts +1 -1
- package/signature/signature.module.d.ts +2 -2
- package/size-detector/size-detector.component.d.ts +1 -1
- package/size-detector/size-detector.module.d.ts +1 -1
- package/skeleton-loader/skeleton-loader.component.d.ts +1 -1
- package/slider/slider.component.d.ts +1 -1
- package/slider/slider.component.theme.scss +13 -6
- package/smart-filters/boolean-filter/boolean-filter.component.d.ts +1 -1
- package/smart-filters/common/filter-actions.component.d.ts +1 -1
- package/smart-filters/common/model/base-filter-component.d.ts +1 -1
- package/smart-filters/smart-filters.component.d.ts +1 -1
- package/smart-filters/smart-filters.module.d.ts +1 -1
- package/snack-bar/snack-bar.component.d.ts +1 -1
- package/textarea/textarea.component.d.ts +1 -1
- package/textbox/textbox-validation.directive.d.ts +1 -1
- package/textbox/textbox.component.d.ts +1 -1
- package/textbox-icon/textbox-icon.component.d.ts +1 -1
- package/top-bar/top-bar.component.d.ts +1 -1
- package/esm2020/address/address.component.mjs +0 -109
- package/esm2020/bread-crumbs/bread-crumbs.component.mjs +0 -85
- package/esm2020/bread-crumbs/bread-crumbs.model.mjs +0 -7
- package/esm2020/bread-crumbs/bread-crumbs.module.mjs +0 -50
- package/esm2020/button/button.model.mjs +0 -6
- package/esm2020/carousel/carousel-item.directive.mjs +0 -33
- package/esm2020/carousel/carousel.component.mjs +0 -745
- package/esm2020/checkbox/checkbox.component.mjs +0 -177
- package/esm2020/checkbox/checkbox.module.mjs +0 -63
- package/esm2020/chips/chips.component.mjs +0 -185
- package/esm2020/chips/chips.module.mjs +0 -81
- package/esm2020/color/color-picker.component.mjs +0 -224
- package/esm2020/color/color.component.mjs +0 -90
- package/esm2020/color/color.module.mjs +0 -93
- package/esm2020/core/common/directives/auto-width.directive.mjs +0 -77
- package/esm2020/core/common/directives/base-destroyer.directive.mjs +0 -22
- package/esm2020/core/common/directives/button-blur.directive.mjs +0 -24
- package/esm2020/core/common/directives/button-loader.directive.mjs +0 -112
- package/esm2020/core/common/directives/data-qa.directive.mjs +0 -23
- package/esm2020/core/common/directives/div-loader.directive.mjs +0 -61
- package/esm2020/core/common/directives/menu-blur.directive.mjs +0 -32
- package/esm2020/core/common/directives/prevent-multi-click.directive.mjs +0 -27
- package/esm2020/core/common/directives/print.directive.mjs +0 -170
- package/esm2020/core/common/model/wapi.model.mjs +0 -157
- package/esm2020/core/common/pipes/common-pipes.mjs +0 -177
- package/esm2020/core/common/pipes/date-ago.pipe.mjs +0 -46
- package/esm2020/core/common/services/addon.service.mjs +0 -227
- package/esm2020/core/common/services/color.service.mjs +0 -385
- package/esm2020/core/common/services/cookie.service.mjs +0 -153
- package/esm2020/core/common/services/data-convertor.service.mjs +0 -122
- package/esm2020/core/common/services/file.service.mjs +0 -250
- package/esm2020/core/common/services/session.service.mjs +0 -72
- package/esm2020/core/common/services/translate.service.mjs +0 -46
- package/esm2020/core/common/services/utilities.service.mjs +0 -301
- package/esm2020/core/common/services/validator.service.mjs +0 -272
- package/esm2020/core/common/services/window-scrolling.service.mjs +0 -36
- package/esm2020/core/customization/customization.model.mjs +0 -338
- package/esm2020/core/customization/customization.service.mjs +0 -799
- package/esm2020/core/http/interceptors/loader.interceptor.mjs +0 -32
- package/esm2020/core/http/services/http.service.mjs +0 -155
- package/esm2020/core/layout/layout.service.mjs +0 -168
- package/esm2020/core/layout/rtl.directive.mjs +0 -44
- package/esm2020/core/portal/attach.directive.mjs +0 -27
- package/esm2020/core/portal/portal.service.mjs +0 -36
- package/esm2020/core/portal/target.directive.mjs +0 -24
- package/esm2020/date/date.component.mjs +0 -334
- package/esm2020/date/date.module.mjs +0 -88
- package/esm2020/dialog/default-dialog.component.mjs +0 -37
- package/esm2020/dialog/dialog.component.mjs +0 -36
- package/esm2020/dialog/dialog.model.mjs +0 -33
- package/esm2020/dialog/dialog.module.mjs +0 -59
- package/esm2020/dialog/dialog.service.mjs +0 -103
- package/esm2020/draggable-items/draggable-item/draggable-item.component.mjs +0 -67
- package/esm2020/draggable-items/draggable-items.component.mjs +0 -94
- package/esm2020/draggable-items/draggable-items.module.mjs +0 -64
- package/esm2020/field-title/field-title.component.mjs +0 -48
- package/esm2020/field-title/field-title.module.mjs +0 -47
- package/esm2020/files-uploader/files-uploader.module.mjs +0 -79
- package/esm2020/form/field-generator.component.mjs +0 -152
- package/esm2020/form/form.component.mjs +0 -1240
- package/esm2020/form/form.module.mjs +0 -179
- package/esm2020/form/indicators.component.mjs +0 -23
- package/esm2020/form/internal-button.component.mjs +0 -184
- package/esm2020/form/internal-carusel.component.mjs +0 -121
- package/esm2020/form/internal-carusel.service.mjs +0 -32
- package/esm2020/form/internal-field-generator.component.mjs +0 -146
- package/esm2020/form/internal-form.component.mjs +0 -1218
- package/esm2020/form/internal-list.component.mjs +0 -513
- package/esm2020/form/internal-menu.component.mjs +0 -64
- package/esm2020/form/internal-page.component.mjs +0 -361
- package/esm2020/form/internal-page.service.mjs +0 -120
- package/esm2020/group-buttons/group-buttons.component.mjs +0 -71
- package/esm2020/group-buttons/group-buttons.module.mjs +0 -59
- package/esm2020/icon/icon-registry.service.mjs +0 -26
- package/esm2020/icon/icon.component.mjs +0 -91
- package/esm2020/icon/icon.service.mjs +0 -31
- package/esm2020/image/image.module.mjs +0 -74
- package/esm2020/image/image.service.mjs +0 -50
- package/esm2020/images-filmstrip/images-filmstrip.component.mjs +0 -338
- package/esm2020/images-filmstrip/images-filmstrip.module.mjs +0 -83
- package/esm2020/link/link.component.mjs +0 -315
- package/esm2020/link/link.module.mjs +0 -80
- package/esm2020/list/list-actions.component.mjs +0 -44
- package/esm2020/list/list-carousel.component.mjs +0 -107
- package/esm2020/list/list-chooser.component.mjs +0 -64
- package/esm2020/list/list-pager.component.mjs +0 -120
- package/esm2020/list/list-total.component.mjs +0 -33
- package/esm2020/list/list-views.component.mjs +0 -85
- package/esm2020/list/list.component.mjs +0 -1382
- package/esm2020/list/list.module.mjs +0 -144
- package/esm2020/list/list.pipes.mjs +0 -47
- package/esm2020/list/virtual-scroller.mjs +0 -1080
- package/esm2020/menu/menu-item.component.mjs +0 -115
- package/esm2020/menu/menu.component.mjs +0 -216
- package/esm2020/menu/menu.model.mjs +0 -20
- package/esm2020/menu/menu.module.mjs +0 -59
- package/esm2020/page-layout/page-layout.component.mjs +0 -35
- package/esm2020/profile-data-views-list/profile-data-view/profile-data-view.component.mjs +0 -45
- package/esm2020/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.mjs +0 -81
- package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +0 -127
- package/esm2020/profile-data-views-list/profile-data-views-list.module.mjs +0 -88
- package/esm2020/quantity-selector/quantity-selector-validation.directive.mjs +0 -49
- package/esm2020/quantity-selector/quantity-selector.module.mjs +0 -82
- package/esm2020/query-builder/common/model/type-map.mjs +0 -27
- package/esm2020/query-builder/common/services/output-query.service.mjs +0 -116
- package/esm2020/query-builder/common/services/query-structure.service.mjs +0 -258
- package/esm2020/query-builder/common/services/type-convertor.service.mjs +0 -42
- package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +0 -127
- package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +0 -71
- package/esm2020/query-builder/query-builder.component.mjs +0 -110
- package/esm2020/query-builder/query-builder.module.mjs +0 -70
- package/esm2020/remote-loader/addon-block-loader.component.mjs +0 -112
- package/esm2020/remote-loader/addon-block-loader.service.mjs +0 -65
- package/esm2020/remote-loader/remote-loader-element.component.mjs +0 -171
- package/esm2020/remote-loader/remote-loader.component.mjs +0 -115
- package/esm2020/remote-loader/remote-loader.service.mjs +0 -104
- package/esm2020/rich-html-textarea/rich-html-textarea.module.mjs +0 -95
- package/esm2020/search/search.component.mjs +0 -317
- package/esm2020/search/search.module.mjs +0 -70
- package/esm2020/select/select.component.mjs +0 -334
- package/esm2020/select/select.module.mjs +0 -70
- package/esm2020/select-panel/select-panel.component.mjs +0 -157
- package/esm2020/separator/separator.component.mjs +0 -63
- package/esm2020/side-bar/side-bar.component.mjs +0 -136
- package/esm2020/side-bar/side-bar.module.mjs +0 -55
- package/esm2020/signature/signature-dialog.component.mjs +0 -79
- package/esm2020/signature/signature.module.mjs +0 -91
- package/esm2020/size-detector/size-detector.component.mjs +0 -94
- package/esm2020/size-detector/size-detector.module.mjs +0 -35
- package/esm2020/skeleton-loader/skeleton-loader.component.mjs +0 -44
- package/esm2020/slider/slider.component.mjs +0 -101
- package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +0 -75
- package/esm2020/smart-filters/common/filter-actions.component.mjs +0 -29
- package/esm2020/smart-filters/common/model/base-filter-component.mjs +0 -290
- package/esm2020/smart-filters/common/model/field.mjs +0 -117
- package/esm2020/smart-filters/common/model/operator.mjs +0 -280
- package/esm2020/smart-filters/date-filter/date-filter.component.mjs +0 -182
- package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +0 -200
- package/esm2020/smart-filters/number-filter/number-filter.component.mjs +0 -136
- package/esm2020/smart-filters/smart-filters.component.mjs +0 -141
- package/esm2020/smart-filters/smart-filters.module.mjs +0 -158
- package/esm2020/smart-filters/text-filter/text-filter.component.mjs +0 -113
- package/esm2020/snack-bar/default-snack-bar.component.mjs +0 -29
- package/esm2020/snack-bar/snack-bar.component.mjs +0 -26
- package/esm2020/snack-bar/snack-bar.model.mjs +0 -7
- package/esm2020/snack-bar/snack-bar.module.mjs +0 -63
- package/esm2020/snack-bar/snack-bar.service.mjs +0 -60
- package/esm2020/textarea/textarea.module.mjs +0 -82
- package/esm2020/textbox/textbox-validation.directive.mjs +0 -93
- package/esm2020/textbox/textbox.component.mjs +0 -638
- package/esm2020/textbox/textbox.module.mjs +0 -72
- package/esm2020/textbox-icon/textbox-icon.component.mjs +0 -48
- package/esm2020/textbox-icon/textbox-icon.module.mjs +0 -64
- package/esm2020/top-bar/top-bar.component.mjs +0 -112
- package/esm2020/top-bar/top-bar.module.mjs +0 -62
- package/fesm2015/pepperi-addons-ngx-lib-address.mjs +0 -170
- package/fesm2015/pepperi-addons-ngx-lib-address.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +0 -306
- package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.mjs +0 -147
- package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-button.mjs +0 -197
- package/fesm2015/pepperi-addons-ngx-lib-button.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs +0 -804
- package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs +0 -246
- package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-chips.mjs +0 -306
- package/fesm2015/pepperi-addons-ngx-lib-chips.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-color.mjs +0 -404
- package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-date.mjs +0 -481
- package/fesm2015/pepperi-addons-ngx-lib-date.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs +0 -263
- package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +0 -227
- package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs +0 -102
- package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs +0 -331
- package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-form.mjs +0 -4232
- package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs +0 -136
- package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-icon.mjs +0 -741
- package/fesm2015/pepperi-addons-ngx-lib-image.mjs +0 -397
- package/fesm2015/pepperi-addons-ngx-lib-image.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +0 -426
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-link.mjs +0 -414
- package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-list.mjs +0 -3131
- package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +0 -403
- package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +0 -337
- package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +0 -741
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +0 -1226
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +0 -644
- package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +0 -363
- package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-search.mjs +0 -393
- package/fesm2015/pepperi-addons-ngx-lib-search.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs +0 -235
- package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-select.mjs +0 -410
- package/fesm2015/pepperi-addons-ngx-lib-select.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-separator.mjs +0 -89
- package/fesm2015/pepperi-addons-ngx-lib-separator.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs +0 -196
- package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +0 -464
- package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs +0 -136
- package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs +0 -78
- package/fesm2015/pepperi-addons-ngx-lib-slider.mjs +0 -151
- package/fesm2015/pepperi-addons-ngx-lib-slider.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +0 -1731
- package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs +0 -183
- package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs +0 -286
- package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs +0 -118
- package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +0 -806
- package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs +0 -180
- package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib.mjs +0 -4995
- package/fesm2015/pepperi-addons-ngx-lib.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-lib-address.mjs +0 -170
- package/fesm2020/pepperi-addons-ngx-lib-button.mjs +0 -197
- package/fesm2020/pepperi-addons-ngx-lib-chips.mjs +0 -305
- package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +0 -226
- package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs +0 -102
- package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-lib-icon.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-lib-menu.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs +0 -77
- package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs +0 -136
- package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs +0 -76
- package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-lib-slider.mjs +0 -150
- package/fesm2020/pepperi-addons-ngx-lib-slider.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs.map +0 -1
- /package/{esm2020 → esm2022}/address/pepperi-addons-ngx-lib-address.mjs +0 -0
- /package/{esm2020 → esm2022}/address/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/attachment/pepperi-addons-ngx-lib-attachment.mjs +0 -0
- /package/{esm2020 → esm2022}/attachment/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.mjs +0 -0
- /package/{esm2020 → esm2022}/bread-crumbs/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/button/pepperi-addons-ngx-lib-button.mjs +0 -0
- /package/{esm2020 → esm2022}/button/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/carousel/pepperi-addons-ngx-lib-carousel.mjs +0 -0
- /package/{esm2020 → esm2022}/carousel/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/checkbox/pepperi-addons-ngx-lib-checkbox.mjs +0 -0
- /package/{esm2020 → esm2022}/checkbox/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/chips/chips.model.mjs +0 -0
- /package/{esm2020 → esm2022}/chips/pepperi-addons-ngx-lib-chips.mjs +0 -0
- /package/{esm2020 → esm2022}/chips/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/color/color.model.mjs +0 -0
- /package/{esm2020 → esm2022}/color/pepperi-addons-ngx-lib-color.mjs +0 -0
- /package/{esm2020 → esm2022}/color/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/clipboard/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/clipboard/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/directives/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/directives/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/model/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/model/papi.model.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/model/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/model/utilities.model.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/pipes/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/pipes/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/services/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/customization/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/customization/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/http/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/http/interceptors/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/http/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/layout/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/layout/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/portal/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/portal/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/scroll-to/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/scroll-to/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/date/pepperi-addons-ngx-lib-date.mjs +0 -0
- /package/{esm2020 → esm2022}/date/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/dialog/pepperi-addons-ngx-lib-dialog.mjs +0 -0
- /package/{esm2020 → esm2022}/dialog/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/draggable-items/draggable-items.model.mjs +0 -0
- /package/{esm2020 → esm2022}/draggable-items/pepperi-addons-ngx-lib-draggable-items.mjs +0 -0
- /package/{esm2020 → esm2022}/draggable-items/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/field-title/pepperi-addons-ngx-lib-field-title.mjs +0 -0
- /package/{esm2020 → esm2022}/field-title/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/files-uploader/pepperi-addons-ngx-lib-files-uploader.mjs +0 -0
- /package/{esm2020 → esm2022}/files-uploader/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/form/form.model.mjs +0 -0
- /package/{esm2020 → esm2022}/form/pepperi-addons-ngx-lib-form.mjs +0 -0
- /package/{esm2020 → esm2022}/form/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/group-buttons/pepperi-addons-ngx-lib-group-buttons.mjs +0 -0
- /package/{esm2020 → esm2022}/group-buttons/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/icon/icon-generated-all.model.mjs +0 -0
- /package/{esm2020 → esm2022}/icon/icon-generated.model.mjs +0 -0
- /package/{esm2020 → esm2022}/icon/pepperi-addons-ngx-lib-icon.mjs +0 -0
- /package/{esm2020 → esm2022}/icon/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/image/pepperi-addons-ngx-lib-image.mjs +0 -0
- /package/{esm2020 → esm2022}/image/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.mjs +0 -0
- /package/{esm2020 → esm2022}/images-filmstrip/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/link/pepperi-addons-ngx-lib-link.mjs +0 -0
- /package/{esm2020 → esm2022}/link/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/list/pepperi-addons-ngx-lib-list.mjs +0 -0
- /package/{esm2020 → esm2022}/list/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/menu/pepperi-addons-ngx-lib-menu.mjs +0 -0
- /package/{esm2020 → esm2022}/menu/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/page-layout/pepperi-addons-ngx-lib-page-layout.mjs +0 -0
- /package/{esm2020 → esm2022}/page-layout/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/pepperi-addons-ngx-lib.mjs +0 -0
- /package/{esm2020 → esm2022}/profile-data-views-list/pepperi-addons-ngx-lib-profile-data-views-list.mjs +0 -0
- /package/{esm2020 → esm2022}/profile-data-views-list/profile-data-views-list.model.mjs +0 -0
- /package/{esm2020 → esm2022}/profile-data-views-list/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.mjs +0 -0
- /package/{esm2020 → esm2022}/quantity-selector/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/query-builder/common/model/field.mjs +0 -0
- /package/{esm2020 → esm2022}/query-builder/common/model/filter.mjs +0 -0
- /package/{esm2020 → esm2022}/query-builder/common/model/legacy.mjs +0 -0
- /package/{esm2020 → esm2022}/query-builder/common/model/operator-unit.mjs +0 -0
- /package/{esm2020 → esm2022}/query-builder/common/model/operator.mjs +0 -0
- /package/{esm2020 → esm2022}/query-builder/common/model/structure.mjs +0 -0
- /package/{esm2020 → esm2022}/query-builder/common/model/type.mjs +0 -0
- /package/{esm2020 → esm2022}/query-builder/pepperi-addons-ngx-lib-query-builder.mjs +0 -0
- /package/{esm2020 → esm2022}/query-builder/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/remote-loader/pepperi-addons-ngx-lib-remote-loader.mjs +0 -0
- /package/{esm2020 → esm2022}/remote-loader/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/remote-loader/remote-loader.model.mjs +0 -0
- /package/{esm2020 → esm2022}/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.mjs +0 -0
- /package/{esm2020 → esm2022}/rich-html-textarea/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/search/pepperi-addons-ngx-lib-search.mjs +0 -0
- /package/{esm2020 → esm2022}/search/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/search/search.model.mjs +0 -0
- /package/{esm2020 → esm2022}/select/pepperi-addons-ngx-lib-select.mjs +0 -0
- /package/{esm2020 → esm2022}/select/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/select-panel/pepperi-addons-ngx-lib-select-panel.mjs +0 -0
- /package/{esm2020 → esm2022}/select-panel/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/select-panel/select-panel.model.mjs +0 -0
- /package/{esm2020 → esm2022}/separator/pepperi-addons-ngx-lib-separator.mjs +0 -0
- /package/{esm2020 → esm2022}/separator/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/side-bar/pepperi-addons-ngx-lib-side-bar.mjs +0 -0
- /package/{esm2020 → esm2022}/side-bar/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/side-bar/side-bar.model.mjs +0 -0
- /package/{esm2020 → esm2022}/signature/pepperi-addons-ngx-lib-signature.mjs +0 -0
- /package/{esm2020 → esm2022}/signature/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/size-detector/pepperi-addons-ngx-lib-size-detector.mjs +0 -0
- /package/{esm2020 → esm2022}/size-detector/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/skeleton-loader/pepperi-addons-ngx-lib-skeleton-loader.mjs +0 -0
- /package/{esm2020 → esm2022}/skeleton-loader/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/slider/pepperi-addons-ngx-lib-slider.mjs +0 -0
- /package/{esm2020 → esm2022}/slider/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/smart-filters/common/model/creator.mjs +0 -0
- /package/{esm2020 → esm2022}/smart-filters/common/model/filter.mjs +0 -0
- /package/{esm2020 → esm2022}/smart-filters/common/model/type.mjs +0 -0
- /package/{esm2020 → esm2022}/smart-filters/pepperi-addons-ngx-lib-smart-filters.mjs +0 -0
- /package/{esm2020 → esm2022}/smart-filters/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/snack-bar/pepperi-addons-ngx-lib-snack-bar.mjs +0 -0
- /package/{esm2020 → esm2022}/snack-bar/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/textarea/pepperi-addons-ngx-lib-textarea.mjs +0 -0
- /package/{esm2020 → esm2022}/textarea/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/textbox/pepperi-addons-ngx-lib-textbox.mjs +0 -0
- /package/{esm2020 → esm2022}/textbox/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/textbox-icon/pepperi-addons-ngx-lib-textbox-icon.mjs +0 -0
- /package/{esm2020 → esm2022}/textbox-icon/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/top-bar/pepperi-addons-ngx-lib-top-bar.mjs +0 -0
- /package/{esm2020 → esm2022}/top-bar/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/top-bar/top-bar.model.mjs +0 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { MatCommonModule } from '@angular/material/core';
|
|
5
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
6
|
+
import { MatInputModule } from '@angular/material/input';
|
|
7
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
8
|
+
import { MatBadgeModule } from '@angular/material/badge';
|
|
9
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
10
|
+
import { PepNgxLibModule } from '@pepperi-addons/ngx-lib';
|
|
11
|
+
import { PepIconModule, pepIconNumberMinus, pepIconNumberPlus, } from '@pepperi-addons/ngx-lib/icon';
|
|
12
|
+
import { PepFieldTitleModule } from '@pepperi-addons/ngx-lib/field-title';
|
|
13
|
+
import { PepQuantitySelectorComponent } from './quantity-selector.component';
|
|
14
|
+
import { PepQuantitySelectorValidationDirective } from './quantity-selector-validation.directive';
|
|
15
|
+
import { PepQuantitySelectorNumberPipe } from './quantity-selector.pipes';
|
|
16
|
+
import * as i0 from "@angular/core";
|
|
17
|
+
import * as i1 from "@pepperi-addons/ngx-lib/icon";
|
|
18
|
+
export class PepQuantitySelectorModule {
|
|
19
|
+
pepIconRegistry;
|
|
20
|
+
constructor(pepIconRegistry) {
|
|
21
|
+
this.pepIconRegistry = pepIconRegistry;
|
|
22
|
+
this.pepIconRegistry.registerIcons([
|
|
23
|
+
pepIconNumberMinus,
|
|
24
|
+
pepIconNumberPlus,
|
|
25
|
+
]);
|
|
26
|
+
}
|
|
27
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepQuantitySelectorModule, deps: [{ token: i1.PepIconRegistry }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
28
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PepQuantitySelectorModule, declarations: [PepQuantitySelectorComponent,
|
|
29
|
+
PepQuantitySelectorNumberPipe,
|
|
30
|
+
PepQuantitySelectorValidationDirective], imports: [CommonModule,
|
|
31
|
+
ReactiveFormsModule,
|
|
32
|
+
// Material modules
|
|
33
|
+
MatCommonModule,
|
|
34
|
+
MatFormFieldModule,
|
|
35
|
+
MatInputModule,
|
|
36
|
+
MatButtonModule,
|
|
37
|
+
MatBadgeModule,
|
|
38
|
+
MatIconModule,
|
|
39
|
+
// ngx-lib modules
|
|
40
|
+
PepNgxLibModule,
|
|
41
|
+
PepIconModule,
|
|
42
|
+
PepFieldTitleModule], exports: [PepQuantitySelectorComponent] });
|
|
43
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepQuantitySelectorModule, imports: [CommonModule,
|
|
44
|
+
ReactiveFormsModule,
|
|
45
|
+
// Material modules
|
|
46
|
+
MatCommonModule,
|
|
47
|
+
MatFormFieldModule,
|
|
48
|
+
MatInputModule,
|
|
49
|
+
MatButtonModule,
|
|
50
|
+
MatBadgeModule,
|
|
51
|
+
MatIconModule,
|
|
52
|
+
// ngx-lib modules
|
|
53
|
+
PepNgxLibModule,
|
|
54
|
+
PepIconModule,
|
|
55
|
+
PepFieldTitleModule] });
|
|
56
|
+
}
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepQuantitySelectorModule, decorators: [{
|
|
58
|
+
type: NgModule,
|
|
59
|
+
args: [{
|
|
60
|
+
imports: [
|
|
61
|
+
CommonModule,
|
|
62
|
+
ReactiveFormsModule,
|
|
63
|
+
// Material modules
|
|
64
|
+
MatCommonModule,
|
|
65
|
+
MatFormFieldModule,
|
|
66
|
+
MatInputModule,
|
|
67
|
+
MatButtonModule,
|
|
68
|
+
MatBadgeModule,
|
|
69
|
+
MatIconModule,
|
|
70
|
+
// ngx-lib modules
|
|
71
|
+
PepNgxLibModule,
|
|
72
|
+
PepIconModule,
|
|
73
|
+
PepFieldTitleModule,
|
|
74
|
+
],
|
|
75
|
+
exports: [PepQuantitySelectorComponent],
|
|
76
|
+
declarations: [
|
|
77
|
+
PepQuantitySelectorComponent,
|
|
78
|
+
PepQuantitySelectorNumberPipe,
|
|
79
|
+
PepQuantitySelectorValidationDirective,
|
|
80
|
+
],
|
|
81
|
+
}]
|
|
82
|
+
}], ctorParameters: function () { return [{ type: i1.PepIconRegistry }]; } });
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhbnRpdHktc2VsZWN0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9xdWFudGl0eS1zZWxlY3Rvci9xdWFudGl0eS1zZWxlY3Rvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUNILGFBQWEsRUFFYixrQkFBa0IsRUFDbEIsaUJBQWlCLEdBQ3BCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFMUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQXlCMUUsTUFBTSxPQUFPLHlCQUF5QjtJQUNkO0lBQXBCLFlBQW9CLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoRCxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQztZQUMvQixrQkFBa0I7WUFDbEIsaUJBQWlCO1NBQ3BCLENBQUMsQ0FBQztJQUNQLENBQUM7d0dBTlEseUJBQXlCO3lHQUF6Qix5QkFBeUIsaUJBTDlCLDRCQUE0QjtZQUM1Qiw2QkFBNkI7WUFDN0Isc0NBQXNDLGFBbEJ0QyxZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2Ysa0JBQWtCO1lBQ2xCLGNBQWM7WUFDZCxlQUFlO1lBQ2YsY0FBYztZQUNkLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsZUFBZTtZQUNmLGFBQWE7WUFDYixtQkFBbUIsYUFFYiw0QkFBNEI7eUdBTzdCLHlCQUF5QixZQXJCOUIsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixtQkFBbUI7WUFDbkIsZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QsZUFBZTtZQUNmLGNBQWM7WUFDZCxhQUFhO1lBQ2Isa0JBQWtCO1lBQ2xCLGVBQWU7WUFDZixhQUFhO1lBQ2IsbUJBQW1COzs0RkFTZCx5QkFBeUI7a0JBdkJyQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixtQkFBbUI7cUJBQ3RCO29CQUNELE9BQU8sRUFBRSxDQUFDLDRCQUE0QixDQUFDO29CQUN2QyxZQUFZLEVBQUU7d0JBQ1YsNEJBQTRCO3dCQUM1Qiw2QkFBNkI7d0JBQzdCLHNDQUFzQztxQkFDekM7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE1hdENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRCYWRnZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JhZGdlJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcblxuaW1wb3J0IHsgUGVwTmd4TGliTW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHtcbiAgICBQZXBJY29uTW9kdWxlLFxuICAgIFBlcEljb25SZWdpc3RyeSxcbiAgICBwZXBJY29uTnVtYmVyTWludXMsXG4gICAgcGVwSWNvbk51bWJlclBsdXMsXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2ljb24nO1xuaW1wb3J0IHsgUGVwRmllbGRUaXRsZU1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2ZpZWxkLXRpdGxlJztcblxuaW1wb3J0IHsgUGVwUXVhbnRpdHlTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4vcXVhbnRpdHktc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFBlcFF1YW50aXR5U2VsZWN0b3JWYWxpZGF0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9xdWFudGl0eS1zZWxlY3Rvci12YWxpZGF0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQZXBRdWFudGl0eVNlbGVjdG9yTnVtYmVyUGlwZSB9IGZyb20gJy4vcXVhbnRpdHktc2VsZWN0b3IucGlwZXMnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICAvLyBNYXRlcmlhbCBtb2R1bGVzXG4gICAgICAgIE1hdENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgICAgICBNYXRCYWRnZU1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgLy8gbmd4LWxpYiBtb2R1bGVzXG4gICAgICAgIFBlcE5neExpYk1vZHVsZSxcbiAgICAgICAgUGVwSWNvbk1vZHVsZSxcbiAgICAgICAgUGVwRmllbGRUaXRsZU1vZHVsZSxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtQZXBRdWFudGl0eVNlbGVjdG9yQ29tcG9uZW50XSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgUGVwUXVhbnRpdHlTZWxlY3RvckNvbXBvbmVudCxcbiAgICAgICAgUGVwUXVhbnRpdHlTZWxlY3Rvck51bWJlclBpcGUsXG4gICAgICAgIFBlcFF1YW50aXR5U2VsZWN0b3JWYWxpZGF0aW9uRGlyZWN0aXZlLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFBlcFF1YW50aXR5U2VsZWN0b3JNb2R1bGUge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcGVwSWNvblJlZ2lzdHJ5OiBQZXBJY29uUmVnaXN0cnkpIHtcbiAgICAgICAgdGhpcy5wZXBJY29uUmVnaXN0cnkucmVnaXN0ZXJJY29ucyhbXG4gICAgICAgICAgICBwZXBJY29uTnVtYmVyTWludXMsXG4gICAgICAgICAgICBwZXBJY29uTnVtYmVyUGx1cyxcbiAgICAgICAgXSk7XG4gICAgfVxufVxuIl19
|
|
@@ -13,11 +13,11 @@ export class PepQuantitySelectorNumberPipe {
|
|
|
13
13
|
return parseInt(value).toString();
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepQuantitySelectorNumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
17
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PepQuantitySelectorNumberPipe, name: "pepQuantitySelectorNumber" });
|
|
16
18
|
}
|
|
17
|
-
|
|
18
|
-
PepQuantitySelectorNumberPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: PepQuantitySelectorNumberPipe, name: "pepQuantitySelectorNumber" });
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PepQuantitySelectorNumberPipe, decorators: [{
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepQuantitySelectorNumberPipe, decorators: [{
|
|
20
20
|
type: Pipe,
|
|
21
21
|
args: [{ name: 'pepQuantitySelectorNumber' }]
|
|
22
22
|
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhbnRpdHktc2VsZWN0b3IucGlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1YW50aXR5LXNlbGVjdG9yL3F1YW50aXR5LXNlbGVjdG9yLnBpcGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUdwRCxNQUFNLE9BQU8sNkJBQTZCO0lBQ3RDLFNBQVMsQ0FBQyxLQUFhLEVBQUUsWUFBcUI7UUFDMUMsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRW5DLElBQUksUUFBUSxLQUFLLENBQUMsRUFBRTtZQUNoQixPQUFPLEdBQUcsQ0FBQztTQUNkO2FBQU0sSUFBSSxZQUFZLEVBQUU7WUFDckIsT0FBTyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDOUI7YUFBTTtZQUNILE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3JDO0lBQ0wsQ0FBQzt3R0FYUSw2QkFBNkI7c0dBQTdCLDZCQUE2Qjs7NEZBQTdCLDZCQUE2QjtrQkFEekMsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSwyQkFBMkIsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoeyBuYW1lOiAncGVwUXVhbnRpdHlTZWxlY3Rvck51bWJlcicgfSlcbmV4cG9ydCBjbGFzcyBQZXBRdWFudGl0eVNlbGVjdG9yTnVtYmVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nLCBhbGxvd0RlY2ltYWw6IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB0bXBWYWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpO1xuXG4gICAgICAgIGlmICh0bXBWYWx1ZSA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuICcwJztcbiAgICAgICAgfSBlbHNlIGlmIChhbGxvd0RlY2ltYWwpIHtcbiAgICAgICAgICAgIHJldHVybiB0bXBWYWx1ZS50b1N0cmluZygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KHZhbHVlKS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export class PepQueryBuilderTypeMap {
|
|
2
|
+
map;
|
|
3
|
+
constructor() {
|
|
4
|
+
this.loadTypes();
|
|
5
|
+
}
|
|
6
|
+
loadTypes() {
|
|
7
|
+
this.map = new Map();
|
|
8
|
+
this.map.set('Bool', 'boolean');
|
|
9
|
+
this.map.set('JsonBool', 'boolean');
|
|
10
|
+
this.map.set('Integer', 'int');
|
|
11
|
+
this.map.set('Double', 'real');
|
|
12
|
+
this.map.set('String', 'text');
|
|
13
|
+
this.map.set('Guid', 'text');
|
|
14
|
+
this.map.set('Date', 'date');
|
|
15
|
+
this.map.set('DateTime', 'date-time');
|
|
16
|
+
this.map.set('MultipleStringValues', 'multi-select');
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Converts legacy field type to smart filter type
|
|
20
|
+
* @param type legacy type
|
|
21
|
+
* @returns smart filter field type
|
|
22
|
+
*/
|
|
23
|
+
getSmartFilterType(key) {
|
|
24
|
+
const item = this.map.get(key);
|
|
25
|
+
return item ? item : null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1tYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1ZXJ5LWJ1aWxkZXIvY29tbW9uL21vZGVsL3R5cGUtbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxzQkFBc0I7SUFDdkIsR0FBRyxDQUFrQztJQUU3QztRQUNJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU8sU0FBUztRQUNiLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQThCLENBQUM7UUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGtCQUFrQixDQUFDLEdBQVc7UUFDMUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzlCLENBQUM7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBlcFNtYXJ0RmlsdGVyVHlwZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL3NtYXJ0LWZpbHRlcnMnO1xuXG5cbmV4cG9ydCBjbGFzcyBQZXBRdWVyeUJ1aWxkZXJUeXBlTWFwIHtcbiAgICBwcml2YXRlIG1hcDogTWFwPHN0cmluZywgUGVwU21hcnRGaWx0ZXJUeXBlPjtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmxvYWRUeXBlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZFR5cGVzKCkge1xuICAgICAgICB0aGlzLm1hcCA9IG5ldyBNYXA8c3RyaW5nLCBQZXBTbWFydEZpbHRlclR5cGU+KCk7XG4gICAgICAgIHRoaXMubWFwLnNldCgnQm9vbCcsICdib29sZWFuJyk7XG4gICAgICAgIHRoaXMubWFwLnNldCgnSnNvbkJvb2wnLCAnYm9vbGVhbicpO1xuICAgICAgICB0aGlzLm1hcC5zZXQoJ0ludGVnZXInLCAnaW50Jyk7XG4gICAgICAgIHRoaXMubWFwLnNldCgnRG91YmxlJywgJ3JlYWwnKTtcbiAgICAgICAgdGhpcy5tYXAuc2V0KCdTdHJpbmcnLCAndGV4dCcpO1xuICAgICAgICB0aGlzLm1hcC5zZXQoJ0d1aWQnLCAndGV4dCcpO1xuICAgICAgICB0aGlzLm1hcC5zZXQoJ0RhdGUnLCAnZGF0ZScpO1xuICAgICAgICB0aGlzLm1hcC5zZXQoJ0RhdGVUaW1lJywgJ2RhdGUtdGltZScpO1xuICAgICAgICB0aGlzLm1hcC5zZXQoJ011bHRpcGxlU3RyaW5nVmFsdWVzJywgJ211bHRpLXNlbGVjdCcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGxlZ2FjeSBmaWVsZCB0eXBlIHRvIHNtYXJ0IGZpbHRlciB0eXBlXG4gICAgICogQHBhcmFtIHR5cGUgbGVnYWN5IHR5cGVcbiAgICAgKiBAcmV0dXJucyBzbWFydCBmaWx0ZXIgZmllbGQgdHlwZVxuICAgICAqL1xuICAgIGdldFNtYXJ0RmlsdGVyVHlwZShrZXk6IHN0cmluZyk6IFBlcFNtYXJ0RmlsdGVyVHlwZSB8IG51bGwge1xuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5tYXAuZ2V0KGtleSk7XG4gICAgICAgIHJldHVybiBpdGVtID8gaXRlbSA6IG51bGw7XG4gICAgfVxuXG59XG5cbiJdfQ==
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { getLegacyOperator, getValueTypeOperator } from '../model/operator';
|
|
3
|
+
import { getLegacyOperationUnit } from '../model/operator-unit';
|
|
4
|
+
import { PepSmartFilterOperators, PepSmartFilterAdditionalOperators } from '@pepperi-addons/ngx-lib/smart-filters';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class PepOutputQueryService {
|
|
7
|
+
_complexIdCounter;
|
|
8
|
+
_expressionIdCounter;
|
|
9
|
+
constructor() {
|
|
10
|
+
//
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* generates a legacy query structure
|
|
14
|
+
* @param filters UI smart filters structure
|
|
15
|
+
* @returns legacy query
|
|
16
|
+
*/
|
|
17
|
+
generateQuery(filters) {
|
|
18
|
+
this.initParams();
|
|
19
|
+
return this.sectionWalk(filters);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* init params
|
|
23
|
+
*/
|
|
24
|
+
initParams() {
|
|
25
|
+
this._complexIdCounter = 1;
|
|
26
|
+
this._expressionIdCounter = 1;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* a recursive function dynamically builds legacy query structure
|
|
30
|
+
* @param current UI object represents either a section or filter component
|
|
31
|
+
* @returns section query data
|
|
32
|
+
*/
|
|
33
|
+
sectionWalk(current) {
|
|
34
|
+
let section = null;
|
|
35
|
+
Object.keys(current).forEach(key => {
|
|
36
|
+
if (key.includes('item')) {
|
|
37
|
+
section = this.addToSection(section, {
|
|
38
|
+
ExpressionId: (this._expressionIdCounter++).toString(),
|
|
39
|
+
ApiName: current[key].smart.fieldId,
|
|
40
|
+
FieldType: (current[key].smart.operator.id === 'inv' &&
|
|
41
|
+
current[key].smart.fieldType === 'text') ? 'MultipleStringValues' : current[key].query.fieldType,
|
|
42
|
+
Operation: getLegacyOperator(current[key].smart.operator, current[key].smart.fieldType),
|
|
43
|
+
ValueType: getValueTypeOperator(current[key].smart.operator, current[key].smart.fieldType),
|
|
44
|
+
Values: this.getItemValues(current[key].smart)
|
|
45
|
+
}, current.operator);
|
|
46
|
+
}
|
|
47
|
+
else if (key.includes('section')) {
|
|
48
|
+
const childSection = this.sectionWalk(current[key]);
|
|
49
|
+
if (childSection) {
|
|
50
|
+
section = this.addToSection(section, childSection, current.operator);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
return section;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* adds a legacy filter object to the current query structure
|
|
58
|
+
* @param section section query data
|
|
59
|
+
* @param item filter item
|
|
60
|
+
* @param operator query operator
|
|
61
|
+
* @returns
|
|
62
|
+
*/
|
|
63
|
+
addToSection(section, item, operator) {
|
|
64
|
+
return section ? this.createSection(section, item, operator) : item;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* creates a legacy complex object
|
|
68
|
+
* @param left LeftNode object
|
|
69
|
+
* @param right RightNode object
|
|
70
|
+
* @param operator query operator
|
|
71
|
+
* @returns legacy complex object
|
|
72
|
+
*/
|
|
73
|
+
createSection(left, right, operator) {
|
|
74
|
+
return {
|
|
75
|
+
ComplexId: (this._complexIdCounter++).toString(),
|
|
76
|
+
LeftNode: left,
|
|
77
|
+
RightNode: right,
|
|
78
|
+
Operation: operator
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* gets legacy filter values object
|
|
83
|
+
* @param current UI filter object's values
|
|
84
|
+
* @returns an array represents legacy values
|
|
85
|
+
*/
|
|
86
|
+
getItemValues(current) {
|
|
87
|
+
let values = [];
|
|
88
|
+
if (current?.values?.first) {
|
|
89
|
+
if (current.operator === PepSmartFilterOperators.In) { //multi select
|
|
90
|
+
values = current.values.first;
|
|
91
|
+
}
|
|
92
|
+
else if (current.operator === PepSmartFilterOperators.InTheLast ||
|
|
93
|
+
current.operator === PepSmartFilterAdditionalOperators.InTheLastCalendar ||
|
|
94
|
+
current.operator === PepSmartFilterOperators.NotInTheLast ||
|
|
95
|
+
current.operator === PepSmartFilterAdditionalOperators.NotInTheLastCalendar ||
|
|
96
|
+
current.operator === PepSmartFilterOperators.DueIn ||
|
|
97
|
+
current.operator === PepSmartFilterOperators.NotDueIn) { //operation unit
|
|
98
|
+
values.push(current.values.first);
|
|
99
|
+
if (current.operatorUnit) {
|
|
100
|
+
values.push(getLegacyOperationUnit(current.operatorUnit));
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
values.push(current.values.first);
|
|
105
|
+
if (current.values.second) {
|
|
106
|
+
values.push(current.values.second);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return values;
|
|
111
|
+
}
|
|
112
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepOutputQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
113
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepOutputQueryService });
|
|
114
|
+
}
|
|
115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepOutputQueryService, decorators: [{
|
|
116
|
+
type: Injectable
|
|
117
|
+
}], ctorParameters: function () { return []; } });
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0LXF1ZXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1ZXJ5LWJ1aWxkZXIvY29tbW9uL3NlcnZpY2VzL291dHB1dC1xdWVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQ0FBaUMsRUFDcEMsTUFBTSx1Q0FBdUMsQ0FBQzs7QUFJL0MsTUFBTSxPQUFPLHFCQUFxQjtJQUN0QixpQkFBaUIsQ0FBUztJQUMxQixvQkFBb0IsQ0FBUztJQUVyQztRQUNJLEVBQUU7SUFDTixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxPQUFZO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssVUFBVTtRQUNkLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLFdBQVcsQ0FBQyxPQUFZO1FBQzVCLElBQUksT0FBTyxHQUFxQyxJQUFJLENBQUM7UUFFckQsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUN0QixPQUFPLEdBQUcsSUFB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QzNFLE9BQU8sQ0FBQyxRQUFRLEtBQUssdUJBQXVCLENBQUMsS0FBSztnQkFDbEQsT0FBTyxDQUFDLFFBQVEsS0FBSyx1QkFBdUIsQ0FBQyxRQUFRLEVBQ3ZELEVBQUUsNEJBQTRCO2dCQUM1QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2xDLElBQUksT0FBTyxDQUFDLFlBQVksRUFBRTtvQkFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztpQkFDN0Q7YUFDSjtpQkFBTTtnQkFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2xDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7b0JBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDdEM7YUFDSjtTQUNKO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzt3R0FwSFEscUJBQXFCOzRHQUFyQixxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUGVwUXVlcnlTZWN0aW9uLCBJUGVwUXVlcnlJdGVtIH0gZnJvbSAnLi4vbW9kZWwvbGVnYWN5JztcbmltcG9ydCB7IGdldExlZ2FjeU9wZXJhdG9yLCBnZXRWYWx1ZVR5cGVPcGVyYXRvciB9IGZyb20gJy4uL21vZGVsL29wZXJhdG9yJztcbmltcG9ydCB7IFBlcE9wZXJhdG9yVHlwZXMgfSBmcm9tICcuLi9tb2RlbC90eXBlJztcbmltcG9ydCB7IGdldExlZ2FjeU9wZXJhdGlvblVuaXQgfSBmcm9tICcuLi9tb2RlbC9vcGVyYXRvci11bml0JztcbmltcG9ydCB7IFxuICAgIFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLFxuICAgIFBlcFNtYXJ0RmlsdGVyQWRkaXRpb25hbE9wZXJhdG9yc1xufSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9zbWFydC1maWx0ZXJzJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGVwT3V0cHV0UXVlcnlTZXJ2aWNlIHtcbiAgICBwcml2YXRlIF9jb21wbGV4SWRDb3VudGVyOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfZXhwcmVzc2lvbklkQ291bnRlcjogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIC8vXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2VuZXJhdGVzIGEgbGVnYWN5IHF1ZXJ5IHN0cnVjdHVyZSBcbiAgICAgKiBAcGFyYW0gZmlsdGVycyBVSSBzbWFydCBmaWx0ZXJzIHN0cnVjdHVyZSAgICAgXG4gICAgICogQHJldHVybnMgbGVnYWN5IHF1ZXJ5XG4gICAgICovXG4gICAgZ2VuZXJhdGVRdWVyeShmaWx0ZXJzOiBhbnkpIHtcbiAgICAgICAgdGhpcy5pbml0UGFyYW1zKCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc2VjdGlvbldhbGsoZmlsdGVycyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaW5pdCBwYXJhbXNcbiAgICAgKi9cbiAgICBwcml2YXRlIGluaXRQYXJhbXMoKSB7XG4gICAgICAgIHRoaXMuX2NvbXBsZXhJZENvdW50ZXIgPSAxO1xuICAgICAgICB0aGlzLl9leHByZXNzaW9uSWRDb3VudGVyID0gMTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBhIHJlY3Vyc2l2ZSBmdW5jdGlvbiBkeW5hbWljYWxseSBidWlsZHMgbGVnYWN5IHF1ZXJ5IHN0cnVjdHVyZVxuICAgICAqIEBwYXJhbSBjdXJyZW50IFVJIG9iamVjdCByZXByZXNlbnRzIGVpdGhlciBhIHNlY3Rpb24gb3IgZmlsdGVyIGNvbXBvbmVudFxuICAgICAqIEByZXR1cm5zIHNlY3Rpb24gcXVlcnkgZGF0YVxuICAgICAqL1xuICAgIHByaXZhdGUgc2VjdGlvbldhbGsoY3VycmVudDogYW55KSB7XG4gICAgICAgIGxldCBzZWN0aW9uOiBJUGVwUXVlcnlTZWN0aW9uIHwgSVBlcFF1ZXJ5SXRlbSA9IG51bGw7XG5cbiAgICAgICAgT2JqZWN0LmtleXMoY3VycmVudCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgaWYgKGtleS5pbmNsdWRlcygnaXRlbScpKSB7XG4gICAgICAgICAgICAgICAgc2VjdGlvbiA9IHRoaXMuYWRkVG9TZWN0aW9uKHNlY3Rpb24sIHtcbiAgICAgICAgICAgICAgICAgICAgRXhwcmVzc2lvbklkOiAodGhpcy5fZXhwcmVzc2lvbklkQ291bnRlcisrKS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICBBcGlOYW1lOiBjdXJyZW50W2tleV0uc21hcnQuZmllbGRJZCxcbiAgICAgICAgICAgICAgICAgICAgRmllbGRUeXBlOiAoY3VycmVudFtrZXldLnNtYXJ0Lm9wZXJhdG9yLmlkID09PSAnaW52JyAmJiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFtrZXldLnNtYXJ0LmZpZWxkVHlwZSA9PT0gJ3RleHQnKSA/ICdNdWx0aXBsZVN0cmluZ1ZhbHVlcycgOiBjdXJyZW50W2tleV0ucXVlcnkuZmllbGRUeXBlLFxuICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb246IGdldExlZ2FjeU9wZXJhdG9yKGN1cnJlbnRba2V5XS5zbWFydC5vcGVyYXRvciwgY3VycmVudFtrZXldLnNtYXJ0LmZpZWxkVHlwZSksXG4gICAgICAgICAgICAgICAgICAgIFZhbHVlVHlwZTogZ2V0VmFsdWVUeXBlT3BlcmF0b3IoY3VycmVudFtrZXldLnNtYXJ0Lm9wZXJhdG9yLCBjdXJyZW50W2tleV0uc21hcnQuZmllbGRUeXBlKSxcbiAgICAgICAgICAgICAgICAgICAgVmFsdWVzOiB0aGlzLmdldEl0ZW1WYWx1ZXMoY3VycmVudFtrZXldLnNtYXJ0KVxuICAgICAgICAgICAgICAgIH0gYXMgSVBlcFF1ZXJ5SXRlbSwgY3VycmVudC5vcGVyYXRvcik7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGtleS5pbmNsdWRlcygnc2VjdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGRTZWN0aW9uID0gdGhpcy5zZWN0aW9uV2FsayhjdXJyZW50W2tleV0pO1xuICAgICAgICAgICAgICAgIGlmIChjaGlsZFNlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgc2VjdGlvbiA9IHRoaXMuYWRkVG9TZWN0aW9uKHNlY3Rpb24sIGNoaWxkU2VjdGlvbiwgY3VycmVudC5vcGVyYXRvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gc2VjdGlvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBhZGRzIGEgbGVnYWN5IGZpbHRlciBvYmplY3QgdG8gdGhlIGN1cnJlbnQgcXVlcnkgc3RydWN0dXJlXG4gICAgICogQHBhcmFtIHNlY3Rpb24gc2VjdGlvbiBxdWVyeSBkYXRhXG4gICAgICogQHBhcmFtIGl0ZW0gZmlsdGVyIGl0ZW1cbiAgICAgKiBAcGFyYW0gb3BlcmF0b3IgcXVlcnkgb3BlcmF0b3JcbiAgICAgKiBAcmV0dXJucyBcbiAgICAgKi9cbiAgICBwcml2YXRlIGFkZFRvU2VjdGlvbihzZWN0aW9uOiBhbnksIGl0ZW06IGFueSwgb3BlcmF0b3I6IHN0cmluZyk6IGFueSB7XG4gICAgICAgIHJldHVybiBzZWN0aW9uID8gdGhpcy5jcmVhdGVTZWN0aW9uKHNlY3Rpb24sIGl0ZW0sIG9wZXJhdG9yKSA6IGl0ZW07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY3JlYXRlcyBhIGxlZ2FjeSBjb21wbGV4IG9iamVjdFxuICAgICAqIEBwYXJhbSBsZWZ0IExlZnROb2RlIG9iamVjdFxuICAgICAqIEBwYXJhbSByaWdodCBSaWdodE5vZGUgb2JqZWN0XG4gICAgICogQHBhcmFtIG9wZXJhdG9yIHF1ZXJ5IG9wZXJhdG9yXG4gICAgICogQHJldHVybnMgbGVnYWN5IGNvbXBsZXggb2JqZWN0XG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVTZWN0aW9uKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSwgb3BlcmF0b3I6IHN0cmluZyk6IElQZXBRdWVyeVNlY3Rpb24ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgQ29tcGxleElkOiAodGhpcy5fY29tcGxleElkQ291bnRlcisrKS50b1N0cmluZygpLFxuICAgICAgICAgICAgTGVmdE5vZGU6IGxlZnQsXG4gICAgICAgICAgICBSaWdodE5vZGU6IHJpZ2h0LFxuICAgICAgICAgICAgT3BlcmF0aW9uOiA8UGVwT3BlcmF0b3JUeXBlcz5vcGVyYXRvclxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0cyBsZWdhY3kgZmlsdGVyIHZhbHVlcyBvYmplY3RcbiAgICAgKiBAcGFyYW0gY3VycmVudCBVSSBmaWx0ZXIgb2JqZWN0J3MgdmFsdWVzXG4gICAgICogQHJldHVybnMgYW4gYXJyYXkgcmVwcmVzZW50cyBsZWdhY3kgdmFsdWVzXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRJdGVtVmFsdWVzKGN1cnJlbnQ6IGFueSkge1xuICAgICAgICBsZXQgdmFsdWVzOiBhbnlbXSA9IFtdO1xuXG4gICAgICAgIGlmIChjdXJyZW50Py52YWx1ZXM/LmZpcnN0KSB7XG4gICAgICAgICAgICBpZiAoY3VycmVudC5vcGVyYXRvciA9PT0gUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuSW4pIHsgLy9tdWx0aSBzZWxlY3QgXG4gICAgICAgICAgICAgICAgdmFsdWVzID0gY3VycmVudC52YWx1ZXMuZmlyc3Q7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgIGN1cnJlbnQub3BlcmF0b3IgPT09IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLkluVGhlTGFzdCB8fFxuICAgICAgICAgICAgICAgIGN1cnJlbnQub3BlcmF0b3IgPT09IFBlcFNtYXJ0RmlsdGVyQWRkaXRpb25hbE9wZXJhdG9ycy5JblRoZUxhc3RDYWxlbmRhciB8fFxuICAgICAgICAgICAgICAgIGN1cnJlbnQub3BlcmF0b3IgPT09IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLk5vdEluVGhlTGFzdCB8fFxuICAgICAgICAgICAgICAgIGN1cnJlbnQub3BlcmF0b3IgPT09IFBlcFNtYXJ0RmlsdGVyQWRkaXRpb25hbE9wZXJhdG9ycy5Ob3RJblRoZUxhc3RDYWxlbmRhciB8fFxuICAgICAgICAgICAgICAgIGN1cnJlbnQub3BlcmF0b3IgPT09IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLkR1ZUluIHx8XG4gICAgICAgICAgICAgICAgY3VycmVudC5vcGVyYXRvciA9PT0gUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuTm90RHVlSW5cbiAgICAgICAgICAgICkgeyAvL29wZXJhdGlvbiB1bml0ICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goY3VycmVudC52YWx1ZXMuZmlyc3QpO1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Lm9wZXJhdG9yVW5pdCkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRMZWdhY3lPcGVyYXRpb25Vbml0KGN1cnJlbnQub3BlcmF0b3JVbml0KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChjdXJyZW50LnZhbHVlcy5maXJzdCk7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQudmFsdWVzLnNlY29uZCkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChjdXJyZW50LnZhbHVlcy5zZWNvbmQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgfVxuXG59Il19
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { FormControl, FormGroup } from '@angular/forms';
|
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
|
4
|
+
import { PepQueryBuilderSectionComponent } from '../../query-builder-section/query-builder-section.component';
|
|
5
|
+
import { PepQueryBuilderItemComponent } from '../../query-builder-item/query-builder-item.component';
|
|
6
|
+
import { PepQueryBuilderTypeMap } from '../../common/model/type-map';
|
|
7
|
+
import { PepOperatorTypes } from '../../common/model/type';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "../../common/services/output-query.service";
|
|
10
|
+
import * as i2 from "../../query-builder.service";
|
|
11
|
+
const MAX_STRUCTURE_DEPTH = 3;
|
|
12
|
+
export class PepQueryStructureService {
|
|
13
|
+
_resolver;
|
|
14
|
+
_outputQueryService;
|
|
15
|
+
_queryBuilderService;
|
|
16
|
+
_outputQuery$ = new BehaviorSubject(null);
|
|
17
|
+
_smartFilterFields;
|
|
18
|
+
_variableFields = {};
|
|
19
|
+
_form;
|
|
20
|
+
_maxStructureDepth = MAX_STRUCTURE_DEPTH;
|
|
21
|
+
_cmpRefMap = new Map();
|
|
22
|
+
outputQuery$ = this._outputQuery$.asObservable();
|
|
23
|
+
constructor(_resolver, _outputQueryService, _queryBuilderService) {
|
|
24
|
+
this._resolver = _resolver;
|
|
25
|
+
this._outputQueryService = _outputQueryService;
|
|
26
|
+
this._queryBuilderService = _queryBuilderService;
|
|
27
|
+
}
|
|
28
|
+
set maxDepth(value) {
|
|
29
|
+
this._maxStructureDepth = value;
|
|
30
|
+
}
|
|
31
|
+
get maxDepth() {
|
|
32
|
+
return this._maxStructureDepth;
|
|
33
|
+
}
|
|
34
|
+
set fields(list) {
|
|
35
|
+
this._smartFilterFields = this._queryBuilderService.convertToSmartFilterFields(list);
|
|
36
|
+
}
|
|
37
|
+
get hasFields() {
|
|
38
|
+
return this._smartFilterFields?.length > 0;
|
|
39
|
+
}
|
|
40
|
+
set variableFields(list) {
|
|
41
|
+
if (list?.length) {
|
|
42
|
+
const typeMapper = new PepQueryBuilderTypeMap();
|
|
43
|
+
list.forEach(field => {
|
|
44
|
+
const fieldType = this.convertSmartFilterComponentType(typeMapper.getSmartFilterType(field.FieldType));
|
|
45
|
+
if (this.hasProperty(this._variableFields, fieldType)) {
|
|
46
|
+
if (!this._variableFields[fieldType].includes(field.FieldID)) {
|
|
47
|
+
this._variableFields[fieldType].push(field.FieldID);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
this._variableFields[fieldType] = [field.FieldID];
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
this._cmpRefMap.forEach((value, key) => {
|
|
56
|
+
if (value.instance.variableFields) {
|
|
57
|
+
Object.keys(value.instance.variableFields).forEach(function (key, index) {
|
|
58
|
+
value.instance.variableFields[key] = JSON.parse(JSON.stringify(value.instance.variableFields[key]));
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
set form(value) {
|
|
64
|
+
this._form = value;
|
|
65
|
+
}
|
|
66
|
+
get form() {
|
|
67
|
+
return this._form;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* builds a dynamic UI query structure
|
|
71
|
+
* might has a different structure than the query's due to parent-child elements merge
|
|
72
|
+
* @param query legacy query
|
|
73
|
+
* @param containerRef reference to root element
|
|
74
|
+
*/
|
|
75
|
+
buildQueryStructure(query, containerRef) {
|
|
76
|
+
// Remove all the components from the query builder.
|
|
77
|
+
this._cmpRefMap.forEach((value, key) => {
|
|
78
|
+
// console.log(key, value);
|
|
79
|
+
// value.instance.remove();
|
|
80
|
+
if (value.instance.parentForm) {
|
|
81
|
+
value.instance.parentForm.removeControl(key);
|
|
82
|
+
}
|
|
83
|
+
value.destroy();
|
|
84
|
+
this._cmpRefMap.delete(key);
|
|
85
|
+
});
|
|
86
|
+
// Clear containerRef
|
|
87
|
+
containerRef.clear();
|
|
88
|
+
//update root operator
|
|
89
|
+
if (this.hasProperty(query, 'ComplexId') &&
|
|
90
|
+
query?.Operation &&
|
|
91
|
+
query.Operation !== this._form.get('operator').value) {
|
|
92
|
+
this._form.get('operator').setValue(query.Operation);
|
|
93
|
+
}
|
|
94
|
+
this.flatten(this._form.get('operator').value, query, containerRef, this._form, 0);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* checks if the object contains property
|
|
98
|
+
* @param obj object
|
|
99
|
+
* @param prop property name
|
|
100
|
+
* @returns true if contains, false otherwise
|
|
101
|
+
*/
|
|
102
|
+
hasProperty(obj, prop) {
|
|
103
|
+
return Object.prototype.hasOwnProperty.call(obj, prop);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* a recursive function dynamically builds UI filters structure
|
|
107
|
+
* @param parentOperator parent legacy complex operator
|
|
108
|
+
* @param current child legacy object (either another complex or expression type)
|
|
109
|
+
* @param containerRef parent element
|
|
110
|
+
* @param parentForm parent form
|
|
111
|
+
*/
|
|
112
|
+
flatten(parentOperator, current, containerRef, parentForm, depth) {
|
|
113
|
+
if (this.hasProperty(current, 'ComplexId')) {
|
|
114
|
+
const section = current;
|
|
115
|
+
if (parentOperator === current.Operation) {
|
|
116
|
+
this.flatten(current.Operation, section.LeftNode, containerRef, parentForm, depth);
|
|
117
|
+
this.flatten(current.Operation, section.RightNode, containerRef, parentForm, depth);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
const result = this.createSection(section.Operation, containerRef, parentForm, depth + 1);
|
|
121
|
+
this.flatten(section.Operation, section.LeftNode, result.containerRef, result.parentForm, depth + 1);
|
|
122
|
+
this.flatten(section.Operation, section.RightNode, result.containerRef, result.parentForm, depth + 1);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
else if (this.hasProperty(current, 'ExpressionId')) {
|
|
126
|
+
this.createItem(current, containerRef, parentForm);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* creates a container object of two or more child filter items
|
|
131
|
+
* @param operator AND/OR operator
|
|
132
|
+
* @param containerRef parent element
|
|
133
|
+
* @param parentForm parent form
|
|
134
|
+
* @param depth
|
|
135
|
+
* @returns an object containing the current element and current form
|
|
136
|
+
*/
|
|
137
|
+
createSection(operator, containerRef, parentForm, depth) {
|
|
138
|
+
const factory = this._resolver.resolveComponentFactory(PepQueryBuilderSectionComponent);
|
|
139
|
+
const componentRef = containerRef.createComponent(factory);
|
|
140
|
+
// const sectionGroup = this._fb.group({
|
|
141
|
+
// operator: this._fb.control(operator)
|
|
142
|
+
// });
|
|
143
|
+
const sectionGroup = new FormGroup({
|
|
144
|
+
operator: new FormControl(operator)
|
|
145
|
+
});
|
|
146
|
+
let counter = 1;
|
|
147
|
+
Object.keys(parentForm.controls).forEach(item => { if (item.includes('section')) {
|
|
148
|
+
counter++;
|
|
149
|
+
} });
|
|
150
|
+
const formKey = `section${counter}`;
|
|
151
|
+
parentForm.addControl(formKey, sectionGroup);
|
|
152
|
+
componentRef.instance.form = sectionGroup;
|
|
153
|
+
componentRef.instance.depth = {
|
|
154
|
+
current: depth,
|
|
155
|
+
max: this._maxStructureDepth
|
|
156
|
+
};
|
|
157
|
+
componentRef.instance.createSection.subscribe(() => {
|
|
158
|
+
const section = this.createSection(PepOperatorTypes.And, componentRef.instance.sectionContainer, sectionGroup, depth + 1);
|
|
159
|
+
this.createItem(null, section.containerRef, section.parentForm);
|
|
160
|
+
});
|
|
161
|
+
componentRef.instance.createItem.subscribe(() => {
|
|
162
|
+
this.createItem(null, componentRef.instance.sectionContainer, sectionGroup);
|
|
163
|
+
});
|
|
164
|
+
componentRef.instance.remove.subscribe(() => {
|
|
165
|
+
parentForm.removeControl(formKey);
|
|
166
|
+
componentRef.destroy();
|
|
167
|
+
this.createOutputQuery();
|
|
168
|
+
if (this._cmpRefMap.has(formKey)) {
|
|
169
|
+
this._cmpRefMap.delete(formKey);
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
componentRef.instance.operatorChange.subscribe(() => {
|
|
173
|
+
this.createOutputQuery();
|
|
174
|
+
});
|
|
175
|
+
// Add this to remove all the components when fields changes.
|
|
176
|
+
this._cmpRefMap.set(formKey, componentRef);
|
|
177
|
+
return {
|
|
178
|
+
containerRef: componentRef.instance.sectionContainer,
|
|
179
|
+
parentForm: sectionGroup
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* creates a component represents filter item (leaf element - has no childs)
|
|
184
|
+
* @param current filter legacy element
|
|
185
|
+
* @param containerRef parent element
|
|
186
|
+
* @param parentForm parent form
|
|
187
|
+
*/
|
|
188
|
+
createItem(current, containerRef, parentForm) {
|
|
189
|
+
const factory = this._resolver.resolveComponentFactory(PepQueryBuilderItemComponent);
|
|
190
|
+
const componentRef = containerRef.createComponent(factory);
|
|
191
|
+
let counter = 1;
|
|
192
|
+
Object.keys(parentForm.controls).forEach(item => { if (item.includes('item')) {
|
|
193
|
+
counter++;
|
|
194
|
+
} });
|
|
195
|
+
const formKey = `item${counter}`;
|
|
196
|
+
componentRef.instance.formKey = formKey;
|
|
197
|
+
componentRef.instance.fields = this._smartFilterFields;
|
|
198
|
+
componentRef.instance.variableFields = this._variableFields;
|
|
199
|
+
const selectedField = this.getSelectedField(current);
|
|
200
|
+
if (selectedField) {
|
|
201
|
+
componentRef.instance.selected = selectedField;
|
|
202
|
+
if (current) {
|
|
203
|
+
componentRef.instance.filter = this._queryBuilderService.getFilter(current, selectedField.smart);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
componentRef.instance.parentForm = parentForm;
|
|
207
|
+
componentRef.instance.filterChange.subscribe(() => {
|
|
208
|
+
this.createOutputQuery();
|
|
209
|
+
});
|
|
210
|
+
componentRef.instance.remove.subscribe(() => {
|
|
211
|
+
parentForm.removeControl(formKey);
|
|
212
|
+
componentRef.destroy();
|
|
213
|
+
this.createOutputQuery();
|
|
214
|
+
if (this._cmpRefMap.has(formKey)) {
|
|
215
|
+
this._cmpRefMap.delete(formKey);
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
// Add this to remove all the components when fields changes.
|
|
219
|
+
this._cmpRefMap.set(formKey, componentRef);
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* get smart filter field
|
|
223
|
+
* @param current filter legacy element
|
|
224
|
+
* @returns smart filter field, if not found returns the first field
|
|
225
|
+
*/
|
|
226
|
+
getSelectedField(current) {
|
|
227
|
+
if (current) {
|
|
228
|
+
const item = this._smartFilterFields.find(field => field.smart.id === current.ApiName);
|
|
229
|
+
return item ? item : this._smartFilterFields?.length > 0 ? this._smartFilterFields[0] : null;
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
return this._smartFilterFields?.length > 0 ? this._smartFilterFields[0] : null;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
convertSmartFilterComponentType(type) {
|
|
236
|
+
switch (type) {
|
|
237
|
+
case 'int':
|
|
238
|
+
case 'currency':
|
|
239
|
+
case 'real':
|
|
240
|
+
case 'percentage':
|
|
241
|
+
return 'number';
|
|
242
|
+
case 'date-time':
|
|
243
|
+
return 'date';
|
|
244
|
+
default:
|
|
245
|
+
return type;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* creates a legacy output query
|
|
250
|
+
*/
|
|
251
|
+
createOutputQuery() {
|
|
252
|
+
if (this._form.valid) {
|
|
253
|
+
const query = this._outputQueryService.generateQuery(this._form.value);
|
|
254
|
+
this._outputQuery$.next(query);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepQueryStructureService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i1.PepOutputQueryService }, { token: i2.PepQueryBuilderService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
258
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepQueryStructureService });
|
|
259
|
+
}
|
|
260
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepQueryStructureService, decorators: [{
|
|
261
|
+
type: Injectable
|
|
262
|
+
}], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i1.PepOutputQueryService }, { type: i2.PepQueryBuilderService }]; } });
|
|
263
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktc3RydWN0dXJlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1ZXJ5LWJ1aWxkZXIvY29tbW9uL3NlcnZpY2VzL3F1ZXJ5LXN0cnVjdHVyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQTRELE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUt2QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUVyRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUUzRCxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQztBQUc5QixNQUFNLE9BQU8sd0JBQXdCO0lBYXJCO0lBQ0E7SUFDQTtJQWRKLGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBbUMsSUFBSSxDQUFDLENBQUM7SUFFNUUsa0JBQWtCLENBQXdDO0lBQzFELGVBQWUsR0FBUSxFQUFFLENBQUM7SUFDMUIsS0FBSyxDQUFZO0lBQ2pCLGtCQUFrQixHQUFHLG1CQUFtQixDQUFDO0lBRXpDLFVBQVUsR0FBbUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUV4RCxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUV4RCxZQUNZLFNBQW1DLEVBQ25DLG1CQUEwQyxFQUMxQyxvQkFBNEM7UUFGNUMsY0FBUyxHQUFULFNBQVMsQ0FBMEI7UUFDbkMsd0JBQW1CLEdBQW5CLG1C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O2dCQUNJLE9BQU8sSUFBSSxDQUFDO1NBQ25CO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsaUJBQWlCO1FBQ2IsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtZQUNsQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbEM7SUFDTCxDQUFDO3dHQTFRUSx3QkFBd0I7NEdBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFZpZXdDb250YWluZXJSZWYsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBJUGVwUXVlcnlCdWlsZGVyRmllbGQsIElQZXBRdWVyeVNlY3Rpb24sIElQZXBRdWVyeUl0ZW0gfSBmcm9tICcuLi8uLi9jb21tb24vbW9kZWwvbGVnYWN5JztcbmltcG9ydCB7IFBlcFF1ZXJ5QnVpbGRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9xdWVyeS1idWlsZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVwT3V0cHV0UXVlcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2VzL291dHB1dC1xdWVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcFF1ZXJ5QnVpbGRlclNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9xdWVyeS1idWlsZGVyLXNlY3Rpb24vcXVlcnktYnVpbGRlci1zZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZXBRdWVyeUJ1aWxkZXJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcXVlcnktYnVpbGRlci1pdGVtL3F1ZXJ5LWJ1aWxkZXItaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSVBlcFF1ZXJ5QnVpbGRlckZpZWxkQ29udGFpbmVyIH0gZnJvbSAnLi4vLi4vY29tbW9uL21vZGVsL2ZpZWxkJztcbmltcG9ydCB7IFBlcFF1ZXJ5QnVpbGRlclR5cGVNYXAgfSBmcm9tICcuLi8uLi9jb21tb24vbW9kZWwvdHlwZS1tYXAnO1xuaW1wb3J0IHsgUGVwT3BlcmF0b3JUeXBlcyB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbC90eXBlJztcblxuY29uc3QgTUFYX1NUUlVDVFVSRV9ERVBUSCA9IDM7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQZXBRdWVyeVN0cnVjdHVyZVNlcnZpY2Uge1xuICAgIHByaXZhdGUgX291dHB1dFF1ZXJ5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SVBlcFF1ZXJ5U2VjdGlvbiB8IElQZXBRdWVyeUl0ZW0+KG51bGwpO1xuXG4gICAgcHJpdmF0ZSBfc21hcnRGaWx0ZXJGaWVsZHM6IEFycmF5PElQZXBRdWVyeUJ1aWxkZXJGaWVsZENvbnRhaW5lcj47XG4gICAgcHJpdmF0ZSBfdmFyaWFibGVGaWVsZHM6IGFueSA9IHt9O1xuICAgIHByaXZhdGUgX2Zvcm06IEZvcm1Hcm91cDtcbiAgICBwcml2YXRlIF9tYXhTdHJ1Y3R1cmVEZXB0aCA9IE1BWF9TVFJVQ1RVUkVfREVQVEg7XG5cbiAgICBwcml2YXRlIF9jbXBSZWZNYXA6IE1hcDxzdHJpbmcsIENvbXBvbmVudFJlZjxhbnk+PiA9IG5ldyBNYXAoKTtcblxuICAgIHB1YmxpYyBvdXRwdXRRdWVyeSQgPSB0aGlzLl9vdXRwdXRRdWVyeSQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfcmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgcHJpdmF0ZSBfb3V0cHV0UXVlcnlTZXJ2aWNlOiBQZXBPdXRwdXRRdWVyeVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX3F1ZXJ5QnVpbGRlclNlcnZpY2U6IFBlcFF1ZXJ5QnVpbGRlclNlcnZpY2UpIHtcblxuICAgIH1cblxuICAgIHNldCBtYXhEZXB0aCh2YWx1ZSkge1xuICAgICAgICB0aGlzLl9tYXhTdHJ1Y3R1cmVEZXB0aCA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBtYXhEZXB0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heFN0cnVjdHVyZURlcHRoO1xuICAgIH1cblxuICAgIHNldCBmaWVsZHMobGlzdDogQXJyYXk8SVBlcFF1ZXJ5QnVpbGRlckZpZWxkPikge1xuICAgICAgICB0aGlzLl9zbWFydEZpbHRlckZpZWxkcyA9IHRoaXMuX3F1ZXJ5QnVpbGRlclNlcnZpY2UuY29udmVydFRvU21hcnRGaWx0ZXJGaWVsZHMobGlzdCk7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0ZpZWxkcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzPy5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIHNldCB2YXJpYWJsZUZpZWxkcyhsaXN0OiBBcnJheTxJUGVwUXVlcnlCdWlsZGVyRmllbGQ+KSB7XG4gICAgICAgIGlmIChsaXN0Py5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVNYXBwZXIgPSBuZXcgUGVwUXVlcnlCdWlsZGVyVHlwZU1hcCgpO1xuICAgICAgICAgICAgbGlzdC5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZFR5cGUgPSB0aGlzLmNvbnZlcnRTbWFydEZpbHRlckNvbXBvbmVudFR5cGUodHlwZU1hcHBlci5nZXRTbWFydEZpbHRlclR5cGUoZmllbGQuRmllbGRUeXBlKSk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzUHJvcGVydHkodGhpcy5fdmFyaWFibGVGaWVsZHMsIGZpZWxkVHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYoIXRoaXMuX3ZhcmlhYmxlRmllbGRzW2ZpZWxkVHlwZV0uaW5jbHVkZXMoZmllbGQuRmllbGRJRCkpe1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFyaWFibGVGaWVsZHNbZmllbGRUeXBlXS5wdXNoKGZpZWxkLkZpZWxkSUQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFyaWFibGVGaWVsZHNbZmllbGRUeXBlXSA9IFtmaWVsZC5GaWVsZElEXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NtcFJlZk1hcC5mb3JFYWNoKCh2YWx1ZTogQ29tcG9uZW50UmVmPGFueT4sIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWUuaW5zdGFuY2UudmFyaWFibGVGaWVsZHMpIHtcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyh2YWx1ZS5pbnN0YW5jZS52YXJpYWJsZUZpZWxkcykuZm9yRWFjaChmdW5jdGlvbihrZXksIGluZGV4KXtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUuaW5zdGFuY2UudmFyaWFibGVGaWVsZHNba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodmFsdWUuaW5zdGFuY2UudmFyaWFibGVGaWVsZHNba2V5XSkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXQgZm9ybSh2YWx1ZTogRm9ybUdyb3VwKSB7XG4gICAgICAgIHRoaXMuX2Zvcm0gPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgZm9ybSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYnVpbGRzIGEgZHluYW1pYyBVSSBxdWVyeSBzdHJ1Y3R1cmVcbiAgICAgKiBtaWdodCBoYXMgYSBkaWZmZXJlbnQgc3RydWN0dXJlIHRoYW4gdGhlIHF1ZXJ5J3MgZHVlIHRvIHBhcmVudC1jaGlsZCBlbGVtZW50cyBtZXJnZVxuICAgICAqIEBwYXJhbSBxdWVyeSBsZWdhY3kgcXVlcnkgICAgIFxuICAgICAqIEBwYXJhbSBjb250YWluZXJSZWYgcmVmZXJlbmNlIHRvIHJvb3QgZWxlbWVudFxuICAgICAqL1xuICAgIGJ1aWxkUXVlcnlTdHJ1Y3R1cmUoXG4gICAgICAgIHF1ZXJ5OiBJUGVwUXVlcnlTZWN0aW9uIHwgSVBlcFF1ZXJ5SXRlbSxcbiAgICAgICAgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmXG4gICAgKSB7XG4gICAgICAgIC8vIFJlbW92ZSBhbGwgdGhlIGNvbXBvbmVudHMgZnJvbSB0aGUgcXVlcnkgYnVpbGRlci5cbiAgICAgICAgdGhpcy5fY21wUmVmTWFwLmZvckVhY2goKHZhbHVlOiBDb21wb25lbnRSZWY8YW55Piwga2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgLy8gdmFsdWUuaW5zdGFuY2UucmVtb3ZlKCk7XG4gICAgICAgICAgICBpZiAodmFsdWUuaW5zdGFuY2UucGFyZW50Rm9ybSkge1xuICAgICAgICAgICAgICAgIHZhbHVlLmluc3RhbmNlLnBhcmVudEZvcm0ucmVtb3ZlQ29udHJvbChrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFsdWUuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5fY21wUmVmTWFwLmRlbGV0ZShrZXkpO1xuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIC8vIENsZWFyIGNvbnRhaW5lclJlZlxuICAgICAgICBjb250YWluZXJSZWYuY2xlYXIoKTtcblxuICAgICAgICAvL3VwZGF0ZSByb290IG9wZXJhdG9yICAgICAgICBcbiAgICAgICAgaWYgKHRoaXMuaGFzUHJvcGVydHkocXVlcnksICdDb21wbGV4SWQnKSAmJlxuICAgICAgICAgICAgcXVlcnk/Lk9wZXJhdGlvbiAmJlxuICAgICAgICAgICAgcXVlcnkuT3BlcmF0aW9uICE9PSB0aGlzLl9mb3JtLmdldCgnb3BlcmF0b3InKS52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fZm9ybS5nZXQoJ29wZXJhdG9yJykuc2V0VmFsdWUocXVlcnkuT3BlcmF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZsYXR0ZW4odGhpcy5fZm9ybS5nZXQoJ29wZXJhdG9yJykudmFsdWUsIHF1ZXJ5LCBjb250YWluZXJSZWYsIHRoaXMuX2Zvcm0sIDApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogY2hlY2tzIGlmIHRoZSBvYmplY3QgY29udGFpbnMgcHJvcGVydHlcbiAgICAqIEBwYXJhbSBvYmogb2JqZWN0XG4gICAgKiBAcGFyYW0gcHJvcCBwcm9wZXJ0eSBuYW1lXG4gICAgKiBAcmV0dXJucyB0cnVlIGlmIGNvbnRhaW5zLCBmYWxzZSBvdGhlcndpc2VcbiAgICAqL1xuICAgIHByaXZhdGUgaGFzUHJvcGVydHkob2JqLCBwcm9wKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBhIHJlY3Vyc2l2ZSBmdW5jdGlvbiBkeW5hbWljYWxseSBidWlsZHMgVUkgZmlsdGVycyBzdHJ1Y3R1cmVcbiAgICAgKiBAcGFyYW0gcGFyZW50T3BlcmF0b3IgcGFyZW50IGxlZ2FjeSBjb21wbGV4IG9wZXJhdG9yXG4gICAgICogQHBhcmFtIGN1cnJlbnQgY2hpbGQgbGVnYWN5IG9iamVjdCAoZWl0aGVyIGFub3RoZXIgY29tcGxleCBvciBleHByZXNzaW9uIHR5cGUpXG4gICAgICogQHBhcmFtIGNvbnRhaW5lclJlZiBwYXJlbnQgZWxlbWVudFxuICAgICAqIEBwYXJhbSBwYXJlbnRGb3JtIHBhcmVudCBmb3JtXG4gICAgICovXG4gICAgcHJpdmF0ZSBmbGF0dGVuKHBhcmVudE9wZXJhdG9yOiBzdHJpbmcsIGN1cnJlbnQ6IElQZXBRdWVyeVNlY3Rpb24gfCBJUGVwUXVlcnlJdGVtLCBjb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIHBhcmVudEZvcm06IEZvcm1Hcm91cCwgZGVwdGg6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5oYXNQcm9wZXJ0eShjdXJyZW50LCAnQ29tcGxleElkJykpIHtcbiAgICAgICAgICAgIGNvbnN0IHNlY3Rpb24gPSBjdXJyZW50IGFzIElQZXBRdWVyeVNlY3Rpb247XG4gICAgICAgICAgICBpZiAocGFyZW50T3BlcmF0b3IgPT09IGN1cnJlbnQuT3BlcmF0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mbGF0dGVuKGN1cnJlbnQuT3BlcmF0aW9uLCBzZWN0aW9uLkxlZnROb2RlLCBjb250YWluZXJSZWYsIHBhcmVudEZvcm0sIGRlcHRoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZsYXR0ZW4oY3VycmVudC5PcGVyYXRpb24sIHNlY3Rpb24uUmlnaHROb2RlLCBjb250YWluZXJSZWYsIHBhcmVudEZvcm0sIGRlcHRoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5jcmVhdGVTZWN0aW9uKHNlY3Rpb24uT3BlcmF0aW9uLCBjb250YWluZXJSZWYsIHBhcmVudEZvcm0sIGRlcHRoICsgMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mbGF0dGVuKHNlY3Rpb24uT3BlcmF0aW9uLCBzZWN0aW9uLkxlZnROb2RlLCByZXN1bHQuY29udGFpbmVyUmVmLCByZXN1bHQucGFyZW50Rm9ybSwgZGVwdGggKyAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZsYXR0ZW4oc2VjdGlvbi5PcGVyYXRpb24sIHNlY3Rpb24uUmlnaHROb2RlLCByZXN1bHQuY29udGFpbmVyUmVmLCByZXN1bHQucGFyZW50Rm9ybSwgZGVwdGggKyAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmhhc1Byb3BlcnR5KGN1cnJlbnQsICdFeHByZXNzaW9uSWQnKSkge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVJdGVtKGN1cnJlbnQgYXMgSVBlcFF1ZXJ5SXRlbSwgY29udGFpbmVyUmVmLCBwYXJlbnRGb3JtKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNyZWF0ZXMgYSBjb250YWluZXIgb2JqZWN0IG9mIHR3byBvciBtb3JlIGNoaWxkIGZpbHRlciBpdGVtc1xuICAgICAqIEBwYXJhbSBvcGVyYXRvciBBTkQvT1Igb3BlcmF0b3JcbiAgICAgKiBAcGFyYW0gY29udGFpbmVyUmVmIHBhcmVudCBlbGVtZW50XG4gICAgICogQHBhcmFtIHBhcmVudEZvcm0gcGFyZW50IGZvcm1cbiAgICAgKiBAcGFyYW0gZGVwdGhcbiAgICAgKiBAcmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCBlbGVtZW50IGFuZCBjdXJyZW50IGZvcm1cbiAgICAgKi9cbiAgICBjcmVhdGVTZWN0aW9uKG9wZXJhdG9yOiBQZXBPcGVyYXRvclR5cGVzLCBjb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIHBhcmVudEZvcm06IEZvcm1Hcm91cCwgZGVwdGg6IG51bWJlcikge1xuICAgICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5fcmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoUGVwUXVlcnlCdWlsZGVyU2VjdGlvbkNvbXBvbmVudCk7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGNvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XG5cbiAgICAgICAgLy8gY29uc3Qgc2VjdGlvbkdyb3VwID0gdGhpcy5fZmIuZ3JvdXAoe1xuICAgICAgICAvLyAgICAgb3BlcmF0b3I6IHRoaXMuX2ZiLmNvbnRyb2wob3BlcmF0b3IpXG4gICAgICAgIC8vIH0pO1xuICAgICAgICBjb25zdCBzZWN0aW9uR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgICAgIG9wZXJhdG9yOiBuZXcgRm9ybUNvbnRyb2wob3BlcmF0b3IpXG4gICAgICAgIH0pO1xuICAgICAgICBsZXQgY291bnRlciA9IDE7XG4gICAgICAgIE9iamVjdC5rZXlzKHBhcmVudEZvcm0uY29udHJvbHMpLmZvckVhY2goaXRlbSA9PiB7IGlmIChpdGVtLmluY2x1ZGVzKCdzZWN0aW9uJykpIHsgY291bnRlcisrOyB9IH0pO1xuICAgICAgICBjb25zdCBmb3JtS2V5ID0gYHNlY3Rpb24ke2NvdW50ZXJ9YDtcbiAgICAgICAgcGFyZW50Rm9ybS5hZGRDb250cm9sKGZvcm1LZXksIHNlY3Rpb25Hcm91cCk7XG5cbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmZvcm0gPSBzZWN0aW9uR3JvdXA7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5kZXB0aCA9IHtcbiAgICAgICAgICAgIGN1cnJlbnQ6IGRlcHRoLFxuICAgICAgICAgICAgbWF4OiB0aGlzLl9tYXhTdHJ1Y3R1cmVEZXB0aFxuICAgICAgICB9O1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY3JlYXRlU2VjdGlvbi5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VjdGlvbiA9IHRoaXMuY3JlYXRlU2VjdGlvbihQZXBPcGVyYXRvclR5cGVzLkFuZCwgY29tcG9uZW50UmVmLmluc3RhbmNlLnNlY3Rpb25Db250YWluZXIsIHNlY3Rpb25Hcm91cCwgZGVwdGggKyAxKTtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlSXRlbShudWxsLCBzZWN0aW9uLmNvbnRhaW5lclJlZiwgc2VjdGlvbi5wYXJlbnRGb3JtKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5jcmVhdGVJdGVtLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUl0ZW0obnVsbCwgY29tcG9uZW50UmVmLmluc3RhbmNlLnNlY3Rpb25Db250YWluZXIsIHNlY3Rpb25Hcm91cCk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UucmVtb3ZlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBwYXJlbnRGb3JtLnJlbW92ZUNvbnRyb2woZm9ybUtleSk7XG4gICAgICAgICAgICBjb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVPdXRwdXRRdWVyeSgpO1xuICAgICAgICAgICAgaWYgKHRoaXMuX2NtcFJlZk1hcC5oYXMoZm9ybUtleSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jbXBSZWZNYXAuZGVsZXRlKGZvcm1LZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLm9wZXJhdG9yQ2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZU91dHB1dFF1ZXJ5KCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEFkZCB0aGlzIHRvIHJlbW92ZSBhbGwgdGhlIGNvbXBvbmVudHMgd2hlbiBmaWVsZHMgY2hhbmdlcy5cbiAgICAgICAgdGhpcy5fY21wUmVmTWFwLnNldChmb3JtS2V5LCBjb21wb25lbnRSZWYpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb250YWluZXJSZWY6IGNvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWN0aW9uQ29udGFpbmVyLFxuICAgICAgICAgICAgcGFyZW50Rm9ybTogc2VjdGlvbkdyb3VwXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY3JlYXRlcyBhIGNvbXBvbmVudCByZXByZXNlbnRzIGZpbHRlciBpdGVtIChsZWFmIGVsZW1lbnQgLSBoYXMgbm8gY2hpbGRzKVxuICAgICAqIEBwYXJhbSBjdXJyZW50IGZpbHRlciBsZWdhY3kgZWxlbWVudFxuICAgICAqIEBwYXJhbSBjb250YWluZXJSZWYgcGFyZW50IGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gcGFyZW50Rm9ybSBwYXJlbnQgZm9ybVxuICAgICAqL1xuICAgIGNyZWF0ZUl0ZW0oY3VycmVudDogSVBlcFF1ZXJ5SXRlbSwgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwYXJlbnRGb3JtOiBGb3JtR3JvdXApIHtcbiAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuX3Jlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFBlcFF1ZXJ5QnVpbGRlckl0ZW1Db21wb25lbnQpO1xuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSBjb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xuICAgICAgICBcbiAgICAgICAgbGV0IGNvdW50ZXIgPSAxO1xuICAgICAgICBPYmplY3Qua2V5cyhwYXJlbnRGb3JtLmNvbnRyb2xzKS5mb3JFYWNoKGl0ZW0gPT4geyBpZiAoaXRlbS5pbmNsdWRlcygnaXRlbScpKSB7IGNvdW50ZXIrKzsgfSB9KTtcbiAgICAgICAgY29uc3QgZm9ybUtleSA9IGBpdGVtJHtjb3VudGVyfWA7XG5cbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmZvcm1LZXkgPSBmb3JtS2V5O1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZmllbGRzID0gdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHM7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS52YXJpYWJsZUZpZWxkcyA9IHRoaXMuX3ZhcmlhYmxlRmllbGRzO1xuICAgICAgICBjb25zdCBzZWxlY3RlZEZpZWxkID0gdGhpcy5nZXRTZWxlY3RlZEZpZWxkKGN1cnJlbnQpO1xuICAgICAgICBpZiAoc2VsZWN0ZWRGaWVsZCkge1xuICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnNlbGVjdGVkID0gc2VsZWN0ZWRGaWVsZDtcbiAgICAgICAgICAgIGlmIChjdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmZpbHRlciA9IHRoaXMuX3F1ZXJ5QnVpbGRlclNlcnZpY2UuZ2V0RmlsdGVyKGN1cnJlbnQsIHNlbGVjdGVkRmllbGQuc21hcnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5wYXJlbnRGb3JtID0gcGFyZW50Rm9ybTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmZpbHRlckNoYW5nZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVPdXRwdXRRdWVyeSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnJlbW92ZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgcGFyZW50Rm9ybS5yZW1vdmVDb250cm9sKGZvcm1LZXkpO1xuICAgICAgICAgICAgY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlT3V0cHV0UXVlcnkoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9jbXBSZWZNYXAuaGFzKGZvcm1LZXkpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY21wUmVmTWFwLmRlbGV0ZShmb3JtS2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gQWRkIHRoaXMgdG8gcmVtb3ZlIGFsbCB0aGUgY29tcG9uZW50cyB3aGVuIGZpZWxkcyBjaGFuZ2VzLlxuICAgICAgICB0aGlzLl9jbXBSZWZNYXAuc2V0KGZvcm1LZXksIGNvbXBvbmVudFJlZik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0IHNtYXJ0IGZpbHRlciBmaWVsZFxuICAgICAqIEBwYXJhbSBjdXJyZW50IGZpbHRlciBsZWdhY3kgZWxlbWVudFxuICAgICAqIEByZXR1cm5zIHNtYXJ0IGZpbHRlciBmaWVsZCwgaWYgbm90IGZvdW5kIHJldHVybnMgdGhlIGZpcnN0IGZpZWxkXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRTZWxlY3RlZEZpZWxkKGN1cnJlbnQ6IElQZXBRdWVyeUl0ZW0pOiBJUGVwUXVlcnlCdWlsZGVyRmllbGRDb250YWluZXIgfCBudWxsIHtcbiAgICAgICAgaWYgKGN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLl9zbWFydEZpbHRlckZpZWxkcy5maW5kKGZpZWxkID0+IGZpZWxkLnNtYXJ0LmlkID09PSBjdXJyZW50LkFwaU5hbWUpO1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW0gPyBpdGVtIDogdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHM/Lmxlbmd0aCA+IDAgPyB0aGlzLl9zbWFydEZpbHRlckZpZWxkc1swXSA6IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHM/Lmxlbmd0aCA+IDAgPyB0aGlzLl9zbWFydEZpbHRlckZpZWxkc1swXSA6IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnZlcnRTbWFydEZpbHRlckNvbXBvbmVudFR5cGUodHlwZTogc3RyaW5nKSB7XG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnaW50JzpcbiAgICAgICAgICAgIGNhc2UgJ2N1cnJlbmN5JzpcbiAgICAgICAgICAgIGNhc2UgJ3JlYWwnOlxuICAgICAgICAgICAgY2FzZSAncGVyY2VudGFnZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdudW1iZXInO1xuICAgICAgICAgICAgY2FzZSAnZGF0ZS10aW1lJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2RhdGUnO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNyZWF0ZXMgYSBsZWdhY3kgb3V0cHV0IHF1ZXJ5IFxuICAgICAqL1xuICAgIGNyZWF0ZU91dHB1dFF1ZXJ5KCkge1xuICAgICAgICBpZiAodGhpcy5fZm9ybS52YWxpZCkge1xuICAgICAgICAgICAgY29uc3QgcXVlcnkgPSB0aGlzLl9vdXRwdXRRdWVyeVNlcnZpY2UuZ2VuZXJhdGVRdWVyeSh0aGlzLl9mb3JtLnZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX291dHB1dFF1ZXJ5JC5uZXh0KHF1ZXJ5KTtcbiAgICAgICAgfVxuICAgIH1cblxufSJdfQ==
|