@pepperi-addons/ngx-lib 0.4.2-scroll.7 → 0.5.0-ng15.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 +2 -1
- package/bread-crumbs/bread-crumbs.component.d.ts +1 -1
- package/bread-crumbs/bread-crumbs.model.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 +2 -1
- package/chips/chips.component.d.ts +4 -5
- package/chips/chips.component.theme.scss +15 -5
- package/chips/chips.model.d.ts +2 -2
- package/chips/chips.service.d.ts +0 -3
- package/color/color-picker.component.d.ts +1 -1
- package/color/color-picker.component.theme.scss +2 -1
- package/color/color.component.d.ts +1 -1
- package/color/color.model.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/base-destroyer.directive.d.ts +10 -0
- package/core/common/directives/button-blur.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/menu-blur.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/common/directives/public-api.d.ts +1 -0
- package/core/common/pipes/common-pipes.d.ts +2 -2
- package/core/common/services/addon.service.d.ts +6 -4
- package/core/common/services/file.service.d.ts +1 -1
- package/core/common/services/utilities.service.d.ts +4 -4
- package/core/customization/customization.model.d.ts +15 -12
- package/core/customization/customization.service.d.ts +4 -0
- package/core/layout/layout.service.d.ts +1 -1
- package/core/layout/rtl.directive.d.ts +2 -2
- package/core/portal/attach.directive.d.ts +1 -1
- package/core/portal/target.directive.d.ts +1 -1
- package/date/date.component.d.ts +4 -2
- package/dialog/default-dialog.component.d.ts +1 -1
- package/dialog/dialog.component.d.ts +1 -1
- package/dialog/dialog.model.d.ts +2 -2
- package/draggable-items/draggable-item/draggable-item.component.d.ts +16 -2
- package/draggable-items/draggable-items.component.d.ts +4 -7
- package/draggable-items/draggable-items.model.d.ts +2 -2
- package/draggable-items/draggable-items.module.d.ts +4 -3
- package/esm2020/address/address.component.mjs +16 -16
- package/esm2020/address/address.module.mjs +5 -5
- package/esm2020/attachment/attachment.component.mjs +58 -49
- package/esm2020/attachment/attachment.module.mjs +5 -5
- package/esm2020/bread-crumbs/bread-crumbs.component.mjs +15 -15
- package/esm2020/bread-crumbs/bread-crumbs.module.mjs +5 -5
- package/esm2020/button/button.component.mjs +23 -23
- package/esm2020/button/button.module.mjs +5 -5
- package/esm2020/carousel/carousel-item.directive.mjs +9 -9
- package/esm2020/carousel/carousel.component.mjs +52 -52
- package/esm2020/carousel/carousel.module.mjs +5 -5
- package/esm2020/checkbox/checkbox.component.mjs +40 -31
- package/esm2020/checkbox/checkbox.module.mjs +5 -5
- package/esm2020/chips/chips.component.mjs +26 -28
- package/esm2020/chips/chips.module.mjs +5 -5
- package/esm2020/chips/chips.service.mjs +5 -14
- package/esm2020/color/color-picker.component.mjs +5 -5
- package/esm2020/color/color.component.mjs +4 -4
- package/esm2020/color/color.module.mjs +5 -5
- package/esm2020/core/clipboard/clipboard.directive.mjs +4 -4
- package/esm2020/core/clipboard/clipboard.service.mjs +4 -4
- package/esm2020/core/common/directives/auto-width.directive.mjs +4 -4
- package/esm2020/core/common/directives/base-destroyer.directive.mjs +22 -0
- package/esm2020/core/common/directives/button-blur.directive.mjs +4 -4
- package/esm2020/core/common/directives/button-loader.directive.mjs +10 -10
- package/esm2020/core/common/directives/data-qa.directive.mjs +4 -4
- package/esm2020/core/common/directives/div-loader.directive.mjs +4 -4
- package/esm2020/core/common/directives/menu-blur.directive.mjs +4 -4
- package/esm2020/core/common/directives/prevent-multi-click.directive.mjs +4 -4
- package/esm2020/core/common/directives/print.directive.mjs +4 -4
- package/esm2020/core/common/directives/public-api.mjs +2 -1
- package/esm2020/core/common/pipes/common-pipes.mjs +35 -35
- package/esm2020/core/common/pipes/date-ago.pipe.mjs +4 -4
- package/esm2020/core/common/services/addon.service.mjs +36 -12
- package/esm2020/core/common/services/color.service.mjs +4 -4
- package/esm2020/core/common/services/cookie.service.mjs +4 -4
- package/esm2020/core/common/services/data-convertor.service.mjs +6 -6
- package/esm2020/core/common/services/file.service.mjs +4 -4
- package/esm2020/core/common/services/jwt-helper.service.mjs +4 -4
- package/esm2020/core/common/services/session.service.mjs +4 -4
- package/esm2020/core/common/services/translate.service.mjs +4 -4
- package/esm2020/core/common/services/utilities.service.mjs +10 -10
- package/esm2020/core/common/services/validator.service.mjs +4 -4
- package/esm2020/core/common/services/window-scrolling.service.mjs +4 -4
- package/esm2020/core/customization/customization.model.mjs +40 -11
- package/esm2020/core/customization/customization.service.mjs +22 -4
- package/esm2020/core/http/interceptors/error.interceptor.mjs +4 -4
- package/esm2020/core/http/interceptors/loader.interceptor.mjs +4 -4
- package/esm2020/core/http/interceptors/profiler.interceptor.mjs +4 -4
- package/esm2020/core/http/services/http.service.mjs +4 -4
- package/esm2020/core/http/services/loader.service.mjs +9 -9
- package/esm2020/core/layout/layout.service.mjs +12 -12
- package/esm2020/core/layout/rtl.directive.mjs +7 -7
- package/esm2020/core/portal/attach.directive.mjs +4 -4
- package/esm2020/core/portal/portal.service.mjs +4 -4
- package/esm2020/core/portal/target.directive.mjs +4 -4
- package/esm2020/core/scroll-to/scroll-to.service.mjs +4 -4
- package/esm2020/date/date.component.mjs +81 -59
- package/esm2020/date/date.model.mjs +7 -7
- package/esm2020/date/date.module.mjs +5 -5
- package/esm2020/dialog/default-dialog.component.mjs +4 -4
- package/esm2020/dialog/dialog.component.mjs +4 -4
- package/esm2020/dialog/dialog.module.mjs +5 -5
- package/esm2020/dialog/dialog.service.mjs +4 -4
- package/esm2020/draggable-items/draggable-item/draggable-item.component.mjs +46 -6
- package/esm2020/draggable-items/draggable-items.component.mjs +21 -29
- package/esm2020/draggable-items/draggable-items.module.mjs +9 -5
- package/esm2020/field-title/field-title.component.mjs +8 -5
- package/esm2020/field-title/field-title.module.mjs +5 -5
- package/esm2020/files-uploader/files-uploader.component.mjs +12 -12
- package/esm2020/files-uploader/files-uploader.module.mjs +5 -5
- package/esm2020/form/field-generator.component.mjs +5 -5
- package/esm2020/form/form.component.mjs +29 -27
- package/esm2020/form/form.module.mjs +5 -5
- package/esm2020/form/indicators.component.mjs +4 -4
- package/esm2020/form/internal-button.component.mjs +17 -17
- package/esm2020/form/internal-carusel.component.mjs +18 -18
- package/esm2020/form/internal-carusel.service.mjs +4 -4
- package/esm2020/form/internal-field-generator.component.mjs +5 -5
- package/esm2020/form/internal-form.component.mjs +29 -27
- package/esm2020/form/internal-list.component.mjs +7 -7
- package/esm2020/form/internal-menu.component.mjs +4 -4
- package/esm2020/form/internal-page.component.mjs +4 -4
- package/esm2020/form/internal-page.service.mjs +4 -4
- package/esm2020/group-buttons/group-buttons.component.mjs +5 -5
- package/esm2020/group-buttons/group-buttons.module.mjs +5 -5
- package/esm2020/icon/icon-registry.service.mjs +4 -4
- package/esm2020/icon/icon.component.mjs +11 -11
- package/esm2020/icon/icon.module.mjs +5 -5
- package/esm2020/icon/icon.service.mjs +4 -4
- package/esm2020/image/image.component.mjs +52 -43
- package/esm2020/image/image.module.mjs +5 -5
- package/esm2020/image/image.service.mjs +4 -4
- package/esm2020/images-filmstrip/images-filmstrip.component.mjs +26 -25
- package/esm2020/images-filmstrip/images-filmstrip.module.mjs +5 -5
- package/esm2020/link/link.component.mjs +59 -50
- package/esm2020/link/link.module.mjs +5 -5
- package/esm2020/link/link.pipes.mjs +4 -4
- package/esm2020/list/list-actions.component.mjs +6 -6
- package/esm2020/list/list-carousel.component.mjs +20 -20
- package/esm2020/list/list-chooser.component.mjs +6 -6
- package/esm2020/list/list-pager.component.mjs +12 -12
- package/esm2020/list/list-sorting.component.mjs +6 -6
- package/esm2020/list/list-total.component.mjs +9 -6
- package/esm2020/list/list-views.component.mjs +6 -6
- package/esm2020/list/list.component.mjs +135 -83
- package/esm2020/list/list.module.mjs +5 -5
- package/esm2020/list/list.pipes.mjs +7 -7
- package/esm2020/list/virtual-scroller.mjs +58 -58
- package/esm2020/menu/menu-item.component.mjs +5 -5
- package/esm2020/menu/menu.component.mjs +11 -11
- package/esm2020/menu/menu.module.mjs +5 -5
- package/esm2020/ngx-lib.module.mjs +5 -5
- package/esm2020/page-layout/page-layout.component.mjs +4 -4
- package/esm2020/page-layout/page-layout.module.mjs +5 -5
- package/esm2020/profile-data-views-list/profile-data-view/profile-data-view.component.mjs +4 -4
- package/esm2020/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.mjs +4 -4
- package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +17 -17
- package/esm2020/profile-data-views-list/profile-data-views-list.module.mjs +5 -5
- package/esm2020/quantity-selector/quantity-selector-validation.directive.mjs +4 -4
- package/esm2020/quantity-selector/quantity-selector.component.mjs +102 -89
- package/esm2020/quantity-selector/quantity-selector.module.mjs +5 -5
- package/esm2020/quantity-selector/quantity-selector.pipes.mjs +4 -4
- package/esm2020/query-builder/common/services/output-query.service.mjs +4 -4
- package/esm2020/query-builder/common/services/query-structure.service.mjs +14 -5
- package/esm2020/query-builder/common/services/type-convertor.service.mjs +10 -10
- package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +24 -22
- package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +4 -4
- package/esm2020/query-builder/query-builder.component.mjs +19 -19
- package/esm2020/query-builder/query-builder.module.mjs +5 -5
- package/esm2020/query-builder/query-builder.service.mjs +4 -4
- package/esm2020/remote-loader/addon-block-loader.component.mjs +45 -35
- package/esm2020/remote-loader/addon-block-loader.service.mjs +8 -5
- package/esm2020/remote-loader/remote-loader-element.component.mjs +81 -26
- package/esm2020/remote-loader/remote-loader.component.mjs +13 -13
- package/esm2020/remote-loader/remote-loader.model.mjs +1 -1
- package/esm2020/remote-loader/remote-loader.module.mjs +5 -5
- package/esm2020/remote-loader/remote-loader.service.mjs +38 -15
- package/esm2020/rich-html-textarea/rich-html-textarea.component.mjs +47 -38
- package/esm2020/rich-html-textarea/rich-html-textarea.module.mjs +5 -5
- package/esm2020/search/search.component.mjs +35 -35
- package/esm2020/search/search.module.mjs +5 -5
- package/esm2020/select/select.component.mjs +89 -45
- package/esm2020/select/select.module.mjs +5 -5
- package/esm2020/select-panel/select-panel.component.mjs +26 -26
- package/esm2020/select-panel/select-panel.module.mjs +5 -5
- package/esm2020/separator/separator.component.mjs +16 -16
- package/esm2020/separator/separator.module.mjs +5 -5
- package/esm2020/side-bar/side-bar.component.mjs +29 -15
- package/esm2020/side-bar/side-bar.module.mjs +5 -5
- package/esm2020/signature/signature-dialog.component.mjs +4 -4
- package/esm2020/signature/signature.component.mjs +40 -31
- package/esm2020/signature/signature.module.mjs +5 -5
- package/esm2020/size-detector/size-detector.component.mjs +15 -13
- package/esm2020/size-detector/size-detector.module.mjs +5 -5
- package/esm2020/skeleton-loader/skeleton-loader.component.mjs +5 -5
- package/esm2020/skeleton-loader/skeleton-loader.module.mjs +5 -5
- package/esm2020/slider/slider.component.mjs +21 -21
- package/esm2020/slider/slider.module.mjs +5 -5
- package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +4 -4
- package/esm2020/smart-filters/common/filter-actions.component.mjs +4 -4
- package/esm2020/smart-filters/common/model/base-filter-component.mjs +28 -34
- package/esm2020/smart-filters/common/model/field.mjs +7 -7
- package/esm2020/smart-filters/common/model/operator.mjs +6 -4
- package/esm2020/smart-filters/date-filter/date-filter.component.mjs +4 -4
- package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +5 -5
- package/esm2020/smart-filters/number-filter/number-filter.component.mjs +4 -4
- package/esm2020/smart-filters/smart-filters.component.mjs +19 -19
- package/esm2020/smart-filters/smart-filters.module.mjs +5 -5
- package/esm2020/smart-filters/text-filter/text-filter.component.mjs +29 -9
- package/esm2020/snack-bar/default-snack-bar.component.mjs +4 -4
- package/esm2020/snack-bar/snack-bar.component.mjs +4 -4
- package/esm2020/snack-bar/snack-bar.module.mjs +5 -5
- package/esm2020/snack-bar/snack-bar.service.mjs +4 -4
- package/esm2020/textarea/textarea.component.mjs +40 -31
- package/esm2020/textarea/textarea.module.mjs +5 -5
- package/esm2020/textbox/textbox-validation.directive.mjs +5 -5
- package/esm2020/textbox/textbox.component.mjs +152 -116
- package/esm2020/textbox/textbox.module.mjs +5 -5
- package/esm2020/textbox-icon/textbox-icon.component.mjs +4 -4
- package/esm2020/textbox-icon/textbox-icon.module.mjs +5 -5
- package/esm2020/top-bar/top-bar.component.mjs +5 -5
- package/esm2020/top-bar/top-bar.module.mjs +5 -5
- package/fesm2015/pepperi-addons-ngx-lib-address.mjs +19 -19
- package/fesm2015/pepperi-addons-ngx-lib-address.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +61 -52
- package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.mjs +18 -18
- package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-button.mjs +26 -26
- package/fesm2015/pepperi-addons-ngx-lib-button.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs +63 -63
- package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs +43 -34
- package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-chips.mjs +33 -44
- package/fesm2015/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-color.mjs +11 -11
- package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-date.mjs +91 -68
- package/fesm2015/pepperi-addons-ngx-lib-date.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs +13 -13
- package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +75 -40
- package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs +11 -8
- package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs +15 -15
- package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-form.mjs +122 -118
- package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs +8 -8
- package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-icon.mjs +20 -20
- package/fesm2015/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-image.mjs +58 -49
- package/fesm2015/pepperi-addons-ngx-lib-image.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +29 -28
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-link.mjs +65 -56
- package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-list.mjs +261 -204
- package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +18 -18
- package/fesm2015/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs +7 -7
- package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +26 -26
- package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +110 -97
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +75 -65
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +197 -108
- package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +50 -41
- package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-search.mjs +38 -38
- package/fesm2015/pepperi-addons-ngx-lib-search.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs +29 -29
- package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-select.mjs +92 -48
- package/fesm2015/pepperi-addons-ngx-lib-select.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-separator.mjs +19 -19
- package/fesm2015/pepperi-addons-ngx-lib-separator.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs +32 -18
- package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +46 -37
- package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs +18 -16
- package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs +8 -8
- package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-slider.mjs +24 -24
- package/fesm2015/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +105 -89
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs +13 -13
- package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs +43 -34
- package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs +7 -7
- package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +161 -124
- package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs +8 -8
- package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib.mjs +282 -190
- package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-address.mjs +19 -19
- package/fesm2020/pepperi-addons-ngx-lib-address.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs +61 -52
- package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-bread-crumbs.mjs +18 -18
- package/fesm2020/pepperi-addons-ngx-lib-bread-crumbs.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-button.mjs +26 -26
- package/fesm2020/pepperi-addons-ngx-lib-button.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs +63 -63
- package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs +43 -34
- package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-chips.mjs +33 -44
- package/fesm2020/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-color.mjs +11 -11
- package/fesm2020/pepperi-addons-ngx-lib-color.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-date.mjs +90 -68
- package/fesm2020/pepperi-addons-ngx-lib-date.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs +13 -13
- package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +74 -39
- package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs +11 -8
- package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs +15 -15
- package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-form.mjs +122 -118
- package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs +8 -8
- package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-icon.mjs +20 -20
- package/fesm2020/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-image.mjs +58 -49
- package/fesm2020/pepperi-addons-ngx-lib-image.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +29 -28
- package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-link.mjs +65 -56
- package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-list.mjs +259 -204
- package/fesm2020/pepperi-addons-ngx-lib-list.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +18 -18
- package/fesm2020/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs +7 -7
- package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +26 -26
- package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +110 -97
- package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +75 -65
- package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +184 -93
- package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs +50 -41
- package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-search.mjs +38 -38
- package/fesm2020/pepperi-addons-ngx-lib-search.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs +29 -29
- package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-select.mjs +92 -48
- package/fesm2020/pepperi-addons-ngx-lib-select.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-separator.mjs +19 -19
- package/fesm2020/pepperi-addons-ngx-lib-separator.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs +32 -18
- package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +46 -37
- package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs +18 -16
- package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs +8 -8
- package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-slider.mjs +24 -24
- package/fesm2020/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +105 -89
- package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs +13 -13
- package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs +43 -34
- package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs +7 -7
- package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +160 -124
- package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs +8 -8
- package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib.mjs +281 -190
- package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
- package/field-title/field-title.component.d.ts +2 -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/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 +2 -2
- 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 +2 -2
- package/icon/icon-generated.model.d.ts +2 -2
- package/icon/icon.component.d.ts +1 -1
- package/image/image.component.d.ts +2 -1
- package/image/image.component.theme.scss +4 -2
- package/images-filmstrip/images-filmstrip.component.d.ts +1 -1
- package/link/link.component.d.ts +2 -1
- package/list/list-actions.component.d.ts +1 -1
- package/list/list-carousel.component.d.ts +2 -2
- 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 +2 -1
- package/list/list-views.component.d.ts +2 -2
- package/list/list.component.d.ts +8 -5
- package/list/list.model.d.ts +6 -6
- package/list/virtual-scroller.d.ts +2 -2
- package/menu/menu-item.component.d.ts +1 -1
- package/menu/menu.component.d.ts +1 -1
- package/menu/menu.model.d.ts +3 -3
- package/package.json +1 -1
- 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 +8 -9
- package/quantity-selector/quantity-selector.component.theme.scss +12 -6
- package/query-builder/common/model/operator.d.ts +1 -1
- package/query-builder/query-builder-item/query-builder-item.component.d.ts +4 -2
- 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/remote-loader/addon-block-loader.component.d.ts +4 -2
- package/remote-loader/remote-loader-element.component.d.ts +9 -2
- package/remote-loader/remote-loader.component.d.ts +1 -1
- package/remote-loader/remote-loader.model.d.ts +3 -2
- package/remote-loader/remote-loader.service.d.ts +2 -0
- package/rich-html-textarea/rich-html-textarea.component.d.ts +2 -1
- package/rich-html-textarea/rich-html-textarea.component.theme.scss +6 -3
- package/search/search.component.d.ts +1 -1
- package/search/search.model.d.ts +4 -4
- package/select/select.component.d.ts +9 -1
- package/select/select.component.theme.scss +22 -11
- package/select-panel/select-panel.component.d.ts +1 -1
- package/select-panel/select-panel.component.theme.scss +0 -2
- package/separator/separator.component.d.ts +1 -1
- package/side-bar/side-bar.component.d.ts +4 -1
- package/side-bar/side-bar.model.d.ts +1 -1
- package/signature/signature-dialog.component.d.ts +1 -1
- package/signature/signature.component.d.ts +2 -1
- package/size-detector/size-detector.component.d.ts +1 -1
- package/skeleton-loader/skeleton-loader.component.d.ts +2 -2
- package/slider/slider.component.d.ts +1 -1
- package/slider/slider.component.theme.scss +15 -5
- package/smart-filters/boolean-filter/boolean-filter.component.d.ts +3 -1
- package/smart-filters/common/filter-actions.component.d.ts +1 -1
- package/smart-filters/common/model/base-filter-component.d.ts +3 -5
- package/smart-filters/common/model/operator.d.ts +2 -0
- package/smart-filters/common/model/type.d.ts +4 -4
- package/smart-filters/date-filter/date-filter.component.d.ts +3 -1
- package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +3 -1
- package/smart-filters/number-filter/number-filter.component.d.ts +3 -1
- package/smart-filters/smart-filters.component.d.ts +1 -1
- package/smart-filters/text-filter/text-filter.component.d.ts +4 -1
- package/snack-bar/default-snack-bar.component.d.ts +1 -1
- package/snack-bar/snack-bar.component.d.ts +1 -1
- package/src/assets/i18n/ar.ngx-lib.json +180 -0
- package/src/assets/i18n/de.ngx-lib.json +104 -5
- package/src/assets/i18n/en.ngx-lib.json +4 -3
- package/src/assets/i18n/es.ngx-lib.json +113 -11
- package/src/assets/i18n/fr.ngx-lib.json +105 -4
- package/src/assets/i18n/he.ngx-lib.json +105 -4
- package/src/assets/i18n/it.ngx-lib.json +114 -13
- package/src/assets/i18n/ja.ngx-lib.json +105 -4
- package/src/assets/i18n/pl.ngx-lib.json +105 -4
- package/src/assets/i18n/pt.ngx-lib.json +105 -4
- package/src/assets/i18n/sr.ngx-lib.json +180 -0
- package/src/assets/i18n/zh.ngx-lib.json +105 -2
- package/src/core/style/abstracts/mixins.scss +88 -30
- package/src/core/style/abstracts/variables.scss +9 -0
- package/src/core/style/base/Spacing.stories.mdx +22 -22
- package/src/core/style/base/base.scss +215 -115
- package/src/core/style/components/button.scss +41 -19
- package/src/core/style/components/checkbox.scss +132 -128
- package/src/core/style/components/file.scss +13 -9
- package/src/core/style/components/general.scss +149 -65
- package/src/core/style/components/radio-button.scss +50 -23
- package/src/core/style/components/textarea.scss +69 -30
- package/textarea/textarea.component.d.ts +2 -1
- package/textbox/textbox-validation.directive.d.ts +1 -1
- package/textbox/textbox.component.d.ts +2 -1
- package/textbox-icon/textbox-icon.component.d.ts +1 -1
- package/theming-offline.scss +2 -1
- package/theming.scss +2 -1
- package/top-bar/top-bar.component.d.ts +1 -1
- package/top-bar/top-bar.model.d.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pepperi-addons-ngx-lib-query-builder.mjs","sources":["../../../projects/ngx-lib/query-builder/common/services/type-convertor.service.ts","../../../projects/ngx-lib/query-builder/query-builder-section/query-builder-section.component.ts","../../../projects/ngx-lib/query-builder/query-builder-section/query-builder-section.component.html","../../../projects/ngx-lib/query-builder/query-builder-item/query-builder-item.component.ts","../../../projects/ngx-lib/query-builder/query-builder-item/query-builder-item.component.html","../../../projects/ngx-lib/query-builder/common/model/type-map.ts","../../../projects/ngx-lib/query-builder/common/model/type.ts","../../../projects/ngx-lib/query-builder/common/model/operator.ts","../../../projects/ngx-lib/query-builder/common/model/operator-unit.ts","../../../projects/ngx-lib/query-builder/common/services/output-query.service.ts","../../../projects/ngx-lib/query-builder/query-builder.service.ts","../../../projects/ngx-lib/query-builder/common/services/query-structure.service.ts","../../../projects/ngx-lib/query-builder/query-builder.component.ts","../../../projects/ngx-lib/query-builder/query-builder.component.html","../../../projects/ngx-lib/query-builder/query-builder.module.ts","../../../projects/ngx-lib/query-builder/public-api.ts","../../../projects/ngx-lib/query-builder/pepperi-addons-ngx-lib-query-builder.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\n\n@Injectable()\nexport class PepTypeConvertorService {\n private readonly _operators: IPepOption[] = [];\n private readonly _booleans: IPepOption[] = [];\n\n public get operators(): IPepOption[] {\n return this._operators;\n }\n\n public get booleans(): IPepOption[] {\n return this._booleans;\n }\n\n constructor() {\n this.initOperators();\n this.initBooleans();\n }\n\n private initOperators() {\n this._operators.push({\n key: 'AND',\n value: 'And'\n });\n this._operators.push({\n key: 'OR',\n value: 'Or'\n });\n }\n\n private initBooleans() {\n this._booleans.push({\n key: 'True',\n value: 'True'\n });\n this._booleans.push({\n key: 'False',\n value: 'False'\n });\n }\n\n}","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport {\n IPepButtonClickEvent,\n PepButton,\n} from '@pepperi-addons/ngx-lib/button';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { PepTypeConvertorService } from '../common/services/type-convertor.service';\nimport { IPepQueryDepth } from '../common/model/structure';\n\n@Component({\n selector: 'pep-query-builder-section',\n templateUrl: './query-builder-section.component.html',\n styleUrls: ['./query-builder-section.component.scss', './query-builder-section.component.theme.scss'],\n})\nexport class PepQueryBuilderSectionComponent {\n @Input() form: FormGroup;\n @Input() depth: IPepQueryDepth;\n @Input() hasFields = true;\n\n @Output()\n createSection = new EventEmitter();\n @Output()\n createItem = new EventEmitter();\n @Output()\n remove = new EventEmitter();\n @Output()\n operatorChange = new EventEmitter();\n\n @ViewChild('sectionContainer', { read: ViewContainerRef, static: true }) sectionContainer: ViewContainerRef;\n\n toggleButtons: Array<PepButton>;\n\n constructor(private _typeConvertorService: PepTypeConvertorService) {\n }\n\n ngOnInit() {\n this.initOperators();\n }\n\n get f() {\n return this.form.controls;\n }\n\n initOperators() {\n this.toggleButtons = this._typeConvertorService.operators.map((operator: IPepOption) => {\n return {\n key: operator.key,\n value: operator.value,\n callback: (event: IPepButtonClickEvent) =>\n this.onOperatorChanged(event)\n } as PepButton\n });\n }\n\n onOperatorChanged(event) {\n if (event?.source?.key) {\n this.f.operator.setValue(event.source.key);\n this.operatorChange.emit();\n }\n }\n\n onAddRuleClicked() {\n this.createItem.emit();\n }\n\n onAddRuleSetClicked() {\n this.createSection.emit();\n }\n\n onDeleteSectionClicked() {\n this.remove.emit();\n }\n\n\n}\n","<div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <div class=\"query-section-container\" fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between\">\n <pep-group-buttons [buttons]=\"toggleButtons\" [selectedButtonKey]=\"f.operator?.value || ''\" styleType=\"weak\"\n sizeType=\"sm\" [viewType]=\"'toggle'\" [buttonsDisabled]=\"!hasFields\">\n </pep-group-buttons>\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-button value=\"Add Filter\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"sm\" classNames=\"\"\n [disabled]=\"!hasFields\" iconName=\"number_plus\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onAddRuleClicked()\"></pep-button>\n <ng-container *ngIf=\"depth.current < depth.max-1\">\n <pep-button value=\"Add Filter Group\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"sm\"\n classNames=\"\" [disabled]=\"!hasFields\" iconName=\"number_plus\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onAddRuleSetClicked()\"></pep-button>\n </ng-container>\n </div>\n </div>\n <ng-container #sectionContainer></ng-container>\n </div>\n <pep-button *ngIf=\"depth.current > 0\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"md\" classNames=\"\"\n [disabled]=\"false\" iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onDeleteSectionClicked()\">\n </pep-button>\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { PepSmartFilterBaseField, IPepSmartFilterField } from '@pepperi-addons/ngx-lib/smart-filters';\nimport { IPepSmartFilterData } from '@pepperi-addons/ngx-lib/smart-filters';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { PepTypeConvertorService } from '../common/services/type-convertor.service';\nimport { IPepQueryBuilderFieldContainer } from '../common/model/field';\n\n\n@Component({\n selector: 'pep-query-builder-item',\n templateUrl: './query-builder-item.component.html',\n styleUrls: ['./query-builder-item.component.scss'],\n})\nexport class PepQueryBuilderItemComponent {\n @Input() formKey: string;\n _fields: Array<IPepQueryBuilderFieldContainer> = [];\n _options: IPepOption[] = [];\n @Input()\n set fields(list: Array<IPepQueryBuilderFieldContainer>) {\n if (list?.length > 0) {\n this._fields = list;\n this._options = list.map(field => {\n return {\n key: field.smart.id,\n value: field.smart.name\n }\n })\n }\n }\n _selectedField: PepSmartFilterBaseField = null;\n @Input()\n set selected(value: IPepQueryBuilderFieldContainer) {\n if (value) {\n this._selectedField = value.smart;\n this.queryForm.fieldType.setValue(value.query.fieldType);\n }\n }\n _filter: IPepSmartFilterData;\n @Input()\n set filter(value: IPepSmartFilterData) {\n if (value) {\n this._filter = value;\n }\n }\n _parentForm: FormGroup;\n @Input()\n set parentForm(value: FormGroup) {\n if (value) {\n this._parentForm = value;\n this.addToParentForm();\n }\n }\n \n @Input() \n variableFields: any = {};\n\n @Output()\n filterChange = new EventEmitter();\n @Output()\n remove = new EventEmitter();\n\n form: FormGroup;\n\n constructor(\n private _fb: FormBuilder,\n public typeConvertorService: PepTypeConvertorService\n ) {\n this.setupForm();\n }\n\n ngOnInit() {\n //\n }\n\n get f() {\n return this.form.controls;\n }\n\n get queryForm() {\n return (this.f.query as FormGroup).controls;\n }\n\n setupForm() {\n this.form = this._fb.group({\n smart: this._fb.group({\n fieldId: this._fb.control(null),\n fieldType: this._fb.control(null),\n operator: this._fb.control(null),\n operatorUnit: this._fb.control(null),\n values: this._fb.group({\n first: this._fb.control(null),\n second: this._fb.control(null)\n })\n }),\n query: this._fb.group({\n fieldType: this._fb.control(null)\n })\n });\n }\n\n addToParentForm() {\n this._parentForm.setControl(this.formKey, this.form);\n }\n\n onFieldChanged(key) {\n const item = this._fields.find(field => field.smart.id === key);\n\n this.setupForm();\n this.queryForm.fieldType.setValue(item.query.fieldType);\n this.addToParentForm();\n\n /**\n * hack due to angular's change detection bug -\n * ERROR Error: There is no FormControl instance attached to form control element with name: [formControlName]\n */\n this._selectedField = null;\n setTimeout(() => {\n this._selectedField = item ? item.smart : null;\n }, 0);\n\n this._filter = null;\n }\n\n onFilterChanged() {\n if (this.form.valid) {\n this.filterChange.emit();\n }\n }\n\n onDeleteItemClicked() {\n this.remove.emit();\n }\n\n\n\n}\n","<div fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select fxFlex=\"25%\" [value]=\"_selectedField?.id\" xAlignment=\"left\" [options]=\"_options\"\n [renderTitle]=\"false\" (valueChange)=\"onFieldChanged($event)\"></pep-select>\n <ng-container *ngIf=\"_selectedField?.componentType\">\n <ng-container [ngSwitch]=\"_selectedField.componentType\">\n <ng-container *ngSwitchCase=\"'text'\">\n <pep-text-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [variableField]=\"variableFields?.text\"\n [field]=\"_selectedField\" [filter]=\"_filter\" [parentForm]=\"f.smart\" [emitOnChange]=\"true\"\n [inline]=\"true\" [renderTitle]=\"false\" (filterChange)=\"onFilterChanged()\">\n </pep-text-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'boolean'\">\n <pep-boolean-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.boolean\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\"\n [options]=\"typeConvertorService.booleans\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-boolean-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <pep-date-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [showAdditionalOperators]=\"true\"\n [variableField]=\"variableFields?.date\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-date-filter>\n </ng-container>\n <!-- <ng-container *ngSwitchCase=\"'text'\">\n <pep-multi-select-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.text\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-multi-select-filter>\n </ng-container> -->\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <pep-multi-select-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.text\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-multi-select-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <pep-number-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.number\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-number-filter>\n </ng-container>\n </ng-container>\n </ng-container>\n <pep-button styleType=\"weak\" styleStateType=\"system\" sizeType=\"md\" classNames=\"\" [disabled]=\"false\"\n iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\" (buttonClick)=\"onDeleteItemClicked()\">\n </pep-button>\n </div>\n</div>","import { PepSmartFilterType } from '@pepperi-addons/ngx-lib/smart-filters';\n\n\nexport class PepQueryBuilderTypeMap {\n private map: Map<string, PepSmartFilterType>;\n\n constructor() {\n this.loadTypes();\n }\n\n private loadTypes() {\n this.map = new Map<string, PepSmartFilterType>();\n this.map.set('Bool', 'boolean');\n this.map.set('JsonBool', 'boolean');\n this.map.set('Integer', 'int');\n this.map.set('Double', 'real');\n this.map.set('String', 'text');\n this.map.set('Guid', 'text');\n this.map.set('Date', 'date');\n this.map.set('DateTime', 'date-time');\n this.map.set('MultipleStringValues', 'multi-select');\n }\n\n /**\n * Converts legacy field type to smart filter type\n * @param type legacy type\n * @returns smart filter field type\n */\n getSmartFilterType(key: string): PepSmartFilterType | null {\n const item = this.map.get(key);\n return item ? item : null;\n }\n\n}\n\n","export enum PepOperatorTypes {\n And = 'AND',\n Or = 'OR'\n}\n\n","import {\n PepSmartFilterOperators,\n PepSmartFilterAdditionalOperators,\n PepSmartFilterVariableOperators,\n IPepSmartFilterOperator\n} from '@pepperi-addons/ngx-lib/smart-filters';\nimport { PepSmartFilterType } from '@pepperi-addons/ngx-lib/smart-filters';\n\nexport type IpepQueryBuilderValueType = 'Static' | 'Dynamic';\nexport interface IPepQueryBuilderOperator {\n legacy: string, //legacy Operator \n valueType: IpepQueryBuilderValueType,\n smartFilter: IPepSmartFilterOperator, //smart filter operator \n type: PepSmartFilterType[] | null, //smart filter type\n fieldType?: Array<string> | null\n}\n\nconst Equals: IPepQueryBuilderOperator = {\n legacy: 'IsEqual',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.Equals,\n type: ['boolean', 'int', 'text', 'real']\n};\n\nconst EqualsVariable: IPepQueryBuilderOperator = {\n legacy: 'IsEqual',\n valueType: 'Dynamic',\n smartFilter: PepSmartFilterVariableOperators.EqualsToVariable,\n type: ['boolean', 'int', 'text'],\n fieldType: ['String','Bool','Integer']\n};\n\nconst NotEqual: IPepQueryBuilderOperator = {\n legacy: 'IsNotEqual',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.NotEqual,\n type: null\n};\n\nconst NotEqualsVariable: IPepQueryBuilderOperator = {\n legacy: 'IsNotEqual',\n valueType: 'Dynamic',\n smartFilter: PepSmartFilterVariableOperators.NotEqualsToVariable,\n type: ['boolean']\n};\n\nconst LessThan: IPepQueryBuilderOperator = {\n legacy: '<',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.LessThan,\n type: null\n};\n\nconst LessThanVariable: IPepQueryBuilderOperator = {\n legacy: '<',\n valueType: 'Dynamic',\n smartFilter: PepSmartFilterVariableOperators.LessThanVariable,\n type: null\n};\n\nconst GreaterThan: IPepQueryBuilderOperator = {\n legacy: '>',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.GreaterThan,\n type: null\n};\n\nconst GreaterThanVariable: IPepQueryBuilderOperator = {\n legacy: '>',\n valueType: 'Dynamic',\n smartFilter: PepSmartFilterVariableOperators.GreaterThanVariable,\n type: null\n};\n\n/*\nconst GreaterThanOrEquals: IPepQueryBuilderOperator = {\n legacy: {\n operator: '>=',\n type: 'Integer'\n },\n smartFilter: {\n item: PepSmartFilterOperators.GreaterThanOrEquals,\n type: 'int'\n }\n};\n\nconst LessThanOrEquals: IPepQueryBuilderOperator = {\n legacy: {\n operator: '<=',\n type: 'Integer'\n },\n smartFilter: {\n item: PepSmartFilterOperators.LessThanOrEquals,\n type: 'int',\n type: 'Integer'\n }\n}; */\n\nconst NumberRange: IPepQueryBuilderOperator = {\n legacy: 'Between',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.NumberRange,\n type: ['int']\n};\n\nconst Contains: IPepQueryBuilderOperator = {\n legacy: 'Contains',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.Contains,\n type: null\n};\n\nconst BeginsWith: IPepQueryBuilderOperator = {\n legacy: 'StartWith',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.BeginsWith,\n type: null\n};\n\nconst EndsWith: IPepQueryBuilderOperator = {\n legacy: 'EndWith',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.EndsWith,\n type: null\n};\n\nconst InTheLast: IPepQueryBuilderOperator = {\n legacy: 'InTheLast',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.InTheLast,\n type: null\n};\n\nconst InTheLastCalendar: IPepQueryBuilderOperator = {\n legacy: 'InTheLastCalendar',\n valueType: 'Static',\n smartFilter: PepSmartFilterAdditionalOperators.InTheLastCalendar,\n type: null\n}\n\n/*\nconst InTheLastVariable: IPepQueryBuilderOperator = {\n legacy: 'InTheLast',\n valueType: 'Dynamic',\n smartFilter: PepSmartFilterVariableOperators.InTheLastVariable,\n type: null\n} */\n\nconst NotInTheLast: IPepQueryBuilderOperator = {\n legacy: 'NotInTheLast',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.NotInTheLast,\n type: null\n};\n\nconst NotInTheLastCalendar: IPepQueryBuilderOperator = {\n legacy: 'NotInTheLastCalendar',\n valueType: 'Static',\n smartFilter: PepSmartFilterAdditionalOperators.NotInTheLastCalendar,\n type: null\n}\n\nconst Today: IPepQueryBuilderOperator = {\n legacy: 'Today',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.Today,\n type: null\n};\n\nconst ThisWeek: IPepQueryBuilderOperator = {\n legacy: 'ThisWeek',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.ThisWeek,\n type: null\n};\n\nconst ThisMonth: IPepQueryBuilderOperator = {\n legacy: 'ThisMonth',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.ThisMonth,\n type: null\n};\n\nconst DateRange: IPepQueryBuilderOperator = {\n legacy: 'Between',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.DateRange,\n type: ['date-time']\n};\n\nconst dateRangeVariable: IPepQueryBuilderOperator = {\n legacy: 'Between',\n valueType: 'Dynamic',\n smartFilter: PepSmartFilterVariableOperators.DateRangeVariable,\n type: ['date-time']\n};\n\nconst DueIn: IPepQueryBuilderOperator = {\n legacy: 'DueIn',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.DueIn,\n type: null\n};\n\nconst NotDueIn: IPepQueryBuilderOperator = {\n legacy: 'NotDueIn',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.NotDueIn,\n type: null\n};\n\nconst On: IPepQueryBuilderOperator = {\n legacy: 'On',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.On,\n type: null\n};\n\nconst IsEmpty: IPepQueryBuilderOperator = {\n legacy: 'IsEmpty',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.IsEmpty,\n type: null\n};\n\nconst IsNotEmpty: IPepQueryBuilderOperator = {\n legacy: 'IsNotEmpty',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.IsNotEmpty,\n type: null\n};\n\nconst In: IPepQueryBuilderOperator = {\n legacy: 'IsEqual',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.In,\n type: ['multi-select']\n};\n\nconst InVariable: IPepQueryBuilderOperator = {\n legacy: 'IsEqual',\n valueType: 'Dynamic',\n smartFilter: PepSmartFilterVariableOperators.InVariable,\n type: ['multi-select', 'text'],\n fieldType: ['MultipleStringValues']\n};\n\n\nconst PepQueryBuilderOperators = [\n Equals,\n EqualsVariable,\n NotEqual,\n NotEqualsVariable,\n LessThan,\n LessThanVariable,\n // LessThanOrEquals,\n GreaterThan,\n GreaterThanVariable,\n // GreaterThanOrEquals,\n NumberRange,\n Contains,\n BeginsWith,\n EndsWith,\n // After,\n // Before,\n InTheLast,\n // InTheLastVariable,\n InTheLastCalendar,\n NotInTheLast,\n NotInTheLastCalendar,\n Today,\n ThisWeek,\n ThisMonth,\n DateRange,\n dateRangeVariable,\n DueIn,\n NotDueIn,\n On,\n IsEmpty,\n IsNotEmpty,\n In,\n InVariable\n]\n\n/**\n * gets a smart filter operator item\n * @param operator legacy operator\n * @param type smart filter's type\n * @returns smart filter operator item\n */\nexport function getSmartFilterOperator(operator: string, type: PepSmartFilterType, valueType: IpepQueryBuilderValueType, fieldType = null): IPepSmartFilterOperator | null {\n const smartFilterOperator = PepQueryBuilderOperators.find(item =>\n item.legacy === operator &&\n item.valueType === valueType &&\n (item.type === null || item.type.includes(type)) &&\n (fieldType == null || item.fieldType === undefined || item.fieldType?.includes(fieldType))\n );\n /*\n FieldType: (current[key].smart.operator.id === 'inv' && \n current[key].smart.fieldType === 'text') ? 'MultipleStringValues' : current[key].query.fieldType,\n */\n return smartFilterOperator ? smartFilterOperator.smartFilter : null;\n}\n\n/**\n * gets a legacy operator value\n * @param operator smart filter operator item\n * @param type smart filter's type\n * @returns legacy operator value\n */\nexport function getLegacyOperator(operator: IPepSmartFilterOperator, type: PepSmartFilterType): string | null {\n const legacyOperator = PepQueryBuilderOperators.find(item =>\n item.smartFilter === operator &&\n (item.type === null || item.type.includes(type))\n );\n return legacyOperator ? legacyOperator.legacy : null;\n}\n\n/**\n * gets a value type of the operator value\n * @param operator smart filter operator item\n * @param type smart filter's type\n * @returns value type operator value\n */\n export function getValueTypeOperator(operator: IPepSmartFilterOperator, type: PepSmartFilterType): IpepQueryBuilderValueType {\n const valueType = PepQueryBuilderOperators.find(item =>\n item.smartFilter === operator &&\n (item.type === null || item.type.includes(type))\n );\n return valueType ? valueType.valueType : 'Static';\n}\n","\nimport { IPepSmartFilterOperatorUnit, PepSmartFilterOperatorUnits } from '@pepperi-addons/ngx-lib/smart-filters';\n\ninterface IPepQueryBuilderOperationUnit {\n legacy: string,\n smartFilter: IPepSmartFilterOperatorUnit,\n}\n\nconst Days: IPepQueryBuilderOperationUnit = {\n legacy: 'Days',\n smartFilter: PepSmartFilterOperatorUnits.Days\n};\n\nconst Weeks: IPepQueryBuilderOperationUnit = {\n legacy: 'Weeks',\n smartFilter: PepSmartFilterOperatorUnits.Weeks\n};\n\nconst Months: IPepQueryBuilderOperationUnit = {\n legacy: 'Months',\n smartFilter: PepSmartFilterOperatorUnits.Months\n};\n\nconst Years: IPepQueryBuilderOperationUnit = {\n legacy: 'Years',\n smartFilter: PepSmartFilterOperatorUnits.Years\n};\n\nconst PepQueryBuilderOperationUnit = [\n Days,\n Weeks,\n Months,\n Years,\n];\n\n/**\n * gets a smart filter operation unit item\n * @param operationUnit legacy operation unit\n * @returns smart filter operation unit item\n */\nexport function getSmartFilterOperationUnit(operationUnit: string): IPepSmartFilterOperatorUnit | null {\n const smartFilterOperationUnit: IPepQueryBuilderOperationUnit = PepQueryBuilderOperationUnit.find(unit => unit.legacy === operationUnit);\n return smartFilterOperationUnit ? smartFilterOperationUnit.smartFilter : null;\n}\n\n/**\n * gets a legacy operation unit value\n * @param operationUnit smart filter operation unit item\n * @returns legacy operation unit value\n */\nexport function getLegacyOperationUnit(operationUnit: IPepSmartFilterOperatorUnit): string | null {\n const legacyOperationUnit: IPepQueryBuilderOperationUnit = PepQueryBuilderOperationUnit.find(unit => unit.smartFilter === operationUnit);\n return legacyOperationUnit ? legacyOperationUnit.legacy : null;\n}\n","import { Injectable } from '@angular/core';\nimport { IPepQuerySection, IPepQueryItem } from '../model/legacy';\nimport { getLegacyOperator, getValueTypeOperator } from '../model/operator';\nimport { PepOperatorTypes } from '../model/type';\nimport { getLegacyOperationUnit } from '../model/operator-unit';\nimport { \n PepSmartFilterOperators,\n PepSmartFilterAdditionalOperators\n} from '@pepperi-addons/ngx-lib/smart-filters';\n\n\n@Injectable()\nexport class PepOutputQueryService {\n private _complexIdCounter: number;\n private _expressionIdCounter: number;\n\n constructor() {\n //\n }\n\n /**\n * generates a legacy query structure \n * @param filters UI smart filters structure \n * @returns legacy query\n */\n generateQuery(filters: any) {\n this.initParams();\n\n return this.sectionWalk(filters);\n }\n\n /**\n * init params\n */\n private initParams() {\n this._complexIdCounter = 1;\n this._expressionIdCounter = 1;\n }\n\n /**\n * a recursive function dynamically builds legacy query structure\n * @param current UI object represents either a section or filter component\n * @returns section query data\n */\n private sectionWalk(current: any) {\n let section: IPepQuerySection | IPepQueryItem = null;\n\n Object.keys(current).forEach(key => {\n if (key.includes('item')) {\n section = this.addToSection(section, {\n ExpressionId: (this._expressionIdCounter++).toString(),\n ApiName: current[key].smart.fieldId,\n FieldType: (current[key].smart.operator.id === 'inv' && \n current[key].smart.fieldType === 'text') ? 'MultipleStringValues' : current[key].query.fieldType,\n Operation: getLegacyOperator(current[key].smart.operator, current[key].smart.fieldType),\n ValueType: getValueTypeOperator(current[key].smart.operator, current[key].smart.fieldType),\n Values: this.getItemValues(current[key].smart)\n } as IPepQueryItem, current.operator);\n } else if (key.includes('section')) {\n const childSection = this.sectionWalk(current[key]);\n if (childSection) {\n section = this.addToSection(section, childSection, current.operator);\n }\n }\n });\n\n return section;\n }\n\n /**\n * adds a legacy filter object to the current query structure\n * @param section section query data\n * @param item filter item\n * @param operator query operator\n * @returns \n */\n private addToSection(section: any, item: any, operator: string): any {\n return section ? this.createSection(section, item, operator) : item;\n }\n\n /**\n * creates a legacy complex object\n * @param left LeftNode object\n * @param right RightNode object\n * @param operator query operator\n * @returns legacy complex object\n */\n private createSection(left: any, right: any, operator: string): IPepQuerySection {\n return {\n ComplexId: (this._complexIdCounter++).toString(),\n LeftNode: left,\n RightNode: right,\n Operation: <PepOperatorTypes>operator\n }\n }\n\n /**\n * gets legacy filter values object\n * @param current UI filter object's values\n * @returns an array represents legacy values\n */\n private getItemValues(current: any) {\n let values: any[] = [];\n\n if (current?.values?.first) {\n if (current.operator === PepSmartFilterOperators.In) { //multi select \n values = current.values.first;\n } else if (\n current.operator === PepSmartFilterOperators.InTheLast ||\n current.operator === PepSmartFilterAdditionalOperators.InTheLastCalendar ||\n current.operator === PepSmartFilterOperators.NotInTheLast ||\n current.operator === PepSmartFilterAdditionalOperators.NotInTheLastCalendar ||\n current.operator === PepSmartFilterOperators.DueIn ||\n current.operator === PepSmartFilterOperators.NotDueIn\n ) { //operation unit \n values.push(current.values.first);\n if (current.operatorUnit) {\n values.push(getLegacyOperationUnit(current.operatorUnit));\n }\n } else {\n values.push(current.values.first);\n if (current.values.second) {\n values.push(current.values.second);\n }\n }\n }\n\n return values;\n }\n\n}","import { Injectable } from '@angular/core';\nimport { \n IPepQueryBuilderField, \n IPepQueryItem \n} from './common/model/legacy';\nimport { \n IPepSmartFilterData,\n PepSmartFilterOperators,\n PepSmartFilterAdditionalOperators,\n IPepSmartFilterOperator,\n PepSmartFilterType,\n createSmartFilter,\n createSmartFilterField,\n PepSmartFilterBaseField\n} from '@pepperi-addons/ngx-lib/smart-filters';\nimport { getSmartFilterOperator } from './common/model/operator';\nimport { IPepQueryBuilderFieldContainer } from './common/model/field';\nimport { PepQueryBuilderTypeMap } from './common/model/type-map';\nimport { getSmartFilterOperationUnit } from './common/model/operator-unit';\nimport { IPepQueryBuilderValues } from './common/model/filter';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PepQueryBuilderService {\n\n constructor() {\n //\n }\n\n /**\n * creates a smart filter object\n * @param current filter legacy element\n * @param field filter's selected field\n * @returns smart filter object\n */\n getFilter(current: IPepQueryItem, field: PepSmartFilterBaseField): IPepSmartFilterData | null { \n const operator: IPepSmartFilterOperator = getSmartFilterOperator(current.Operation, field.type, current.ValueType || 'Static', current.FieldType || null);\n\n if (operator) {\n const filterValues: IPepQueryBuilderValues = this.getFilterValues(current, operator, field);\n return createSmartFilter(\n current.ApiName,\n operator,\n filterValues.first,\n filterValues.second,\n filterValues.operationUnit\n );\n } else {\n return null;\n }\n }\n \n /**\n * converts legacy fields to smart filter fields\n * @param fields legacy fields array\n * @returns smart filter fields array\n */\n convertToSmartFilterFields(fields: Array<IPepQueryBuilderField>): Array<IPepQueryBuilderFieldContainer> {\n if (fields?.length > 0) {\n const typeMapper = new PepQueryBuilderTypeMap();\n\n return fields.map((field) => {\n return {\n smart: createSmartFilterField(\n {\n id: field.FieldID,\n name: field.Title,\n options: field.OptionalValues?.map(option => {\n return {\n key: option.Key,\n value: option.Value\n }\n })\n }, typeMapper.getSmartFilterType(field.FieldType) as PepSmartFilterType),\n query: {\n fieldType: field.FieldType\n }\n }\n })\n } else {\n return [];\n }\n }\n \n /**\n * gets smart filter's values data\n * @param current filter legacy element\n * @param operator smart filter operator\n * @param field filter's selected field\n * @returns object contains the filter values data\n */\n private getFilterValues(current: IPepQueryItem, operator: IPepSmartFilterOperator, field: any) {\n const data: IPepQueryBuilderValues = {\n first: null,\n second: null,\n operationUnit: null\n };\n\n if (operator === PepSmartFilterOperators.In) { //multi select \n //filter keys don't exist on field options\n data.first = current?.Values?.length > 0 ? current.Values.filter(item => {\n return field.options.find(option => option.key === item);\n }) : null;\n } else if (\n operator === PepSmartFilterOperators.InTheLast ||\n operator === PepSmartFilterAdditionalOperators.InTheLastCalendar ||\n operator === PepSmartFilterOperators.NotInTheLast ||\n operator === PepSmartFilterAdditionalOperators.NotInTheLastCalendar ||\n operator === PepSmartFilterOperators.DueIn ||\n operator === PepSmartFilterOperators.NotDueIn\n ) { //operation unit\n data.first = current?.Values?.length > 0 ? current.Values[0] : null;\n if (current?.Values?.length === 2) {\n data.operationUnit = getSmartFilterOperationUnit(current.Values[1]);\n }\n } else {\n data.first = current?.Values?.length > 0 ? current.Values[0] : null;\n data.second = current?.Values?.length === 2 ? current.Values[1] : null;\n }\n\n return data;\n }\n\n}","import { Injectable, ViewContainerRef, ComponentFactoryResolver, ComponentRef } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { } from 'lodash';\nimport { IPepQueryBuilderField, IPepQuerySection, IPepQueryItem } from '../../common/model/legacy';\nimport { PepQueryBuilderService } from '../../query-builder.service';\nimport { PepOutputQueryService } from '../../common/services/output-query.service';\nimport { PepQueryBuilderSectionComponent } from '../../query-builder-section/query-builder-section.component';\nimport { PepQueryBuilderItemComponent } from '../../query-builder-item/query-builder-item.component';\nimport { IPepQueryBuilderFieldContainer } from '../../common/model/field';\nimport { PepQueryBuilderTypeMap } from '../../common/model/type-map';\nimport { PepOperatorTypes } from '../../common/model/type';\n\nconst MAX_STRUCTURE_DEPTH = 3;\n\n@Injectable()\nexport class PepQueryStructureService {\n private _outputQuery$ = new BehaviorSubject<IPepQuerySection | IPepQueryItem>(null);\n\n private _smartFilterFields: Array<IPepQueryBuilderFieldContainer>;\n private _variableFields: any = {};\n private _form: FormGroup;\n private _maxStructureDepth = MAX_STRUCTURE_DEPTH;\n\n private _cmpRefMap: Map<string, ComponentRef<any>> = new Map();\n\n public outputQuery$ = this._outputQuery$.asObservable();\n\n constructor(\n private _resolver: ComponentFactoryResolver,\n private _outputQueryService: PepOutputQueryService,\n private _queryBuilderService: PepQueryBuilderService) {\n\n }\n\n set maxDepth(value) {\n this._maxStructureDepth = value;\n }\n\n get maxDepth() {\n return this._maxStructureDepth;\n }\n\n set fields(list: Array<IPepQueryBuilderField>) {\n this._smartFilterFields = this._queryBuilderService.convertToSmartFilterFields(list);\n }\n\n get hasFields(): boolean {\n return this._smartFilterFields?.length > 0;\n }\n\n set variableFields(list: Array<IPepQueryBuilderField>) {\n if (list?.length) {\n const typeMapper = new PepQueryBuilderTypeMap();\n list.forEach(field => {\n const fieldType = this.convertSmartFilterComponentType(typeMapper.getSmartFilterType(field.FieldType));\n if (this.hasProperty(this._variableFields, fieldType)) {\n this._variableFields[fieldType].push(field.FieldID);\n } else {\n this._variableFields[fieldType] = [field.FieldID];\n }\n });\n }\n }\n\n set form(value: FormGroup) {\n this._form = value;\n }\n\n get form() {\n return this._form;\n }\n\n /**\n * builds a dynamic UI query structure\n * might has a different structure than the query's due to parent-child elements merge\n * @param query legacy query \n * @param containerRef reference to root element\n */\n buildQueryStructure(\n query: IPepQuerySection | IPepQueryItem,\n containerRef: ViewContainerRef\n ) {\n // Remove all the components from the query builder.\n this._cmpRefMap.forEach((value: ComponentRef<any>, key: string) => {\n // console.log(key, value);\n // value.instance.remove();\n if (value.instance.parentForm) {\n value.instance.parentForm.removeControl(key);\n }\n value.destroy();\n this._cmpRefMap.delete(key);\n });\n \n // Clear containerRef\n containerRef.clear();\n\n //update root operator \n if (this.hasProperty(query, 'ComplexId') &&\n query?.Operation &&\n query.Operation !== this._form.get('operator').value) {\n this._form.get('operator').setValue(query.Operation);\n }\n this.flatten(this._form.get('operator').value, query, containerRef, this._form, 0);\n }\n\n /**\n * checks if the object contains property\n * @param obj object\n * @param prop property name\n * @returns true if contains, false otherwise\n */\n private hasProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n /**\n * a recursive function dynamically builds UI filters structure\n * @param parentOperator parent legacy complex operator\n * @param current child legacy object (either another complex or expression type)\n * @param containerRef parent element\n * @param parentForm parent form\n */\n private flatten(parentOperator: string, current: IPepQuerySection | IPepQueryItem, containerRef: ViewContainerRef, parentForm: FormGroup, depth: number) {\n if (this.hasProperty(current, 'ComplexId')) {\n const section = current as IPepQuerySection;\n if (parentOperator === current.Operation) {\n this.flatten(current.Operation, section.LeftNode, containerRef, parentForm, depth);\n this.flatten(current.Operation, section.RightNode, containerRef, parentForm, depth);\n } else {\n const result = this.createSection(section.Operation, containerRef, parentForm, depth + 1);\n this.flatten(section.Operation, section.LeftNode, result.containerRef, result.parentForm, depth + 1);\n this.flatten(section.Operation, section.RightNode, result.containerRef, result.parentForm, depth + 1);\n }\n } else if (this.hasProperty(current, 'ExpressionId')) {\n this.createItem(current as IPepQueryItem, containerRef, parentForm);\n }\n }\n\n /**\n * creates a container object of two or more child filter items\n * @param operator AND/OR operator\n * @param containerRef parent element\n * @param parentForm parent form\n * @param depth\n * @returns an object containing the current element and current form\n */\n createSection(operator: PepOperatorTypes, containerRef: ViewContainerRef, parentForm: FormGroup, depth: number) {\n const factory = this._resolver.resolveComponentFactory(PepQueryBuilderSectionComponent);\n const componentRef = containerRef.createComponent(factory);\n\n // const sectionGroup = this._fb.group({\n // operator: this._fb.control(operator)\n // });\n const sectionGroup = new FormGroup({\n operator: new FormControl(operator)\n });\n let counter = 1;\n Object.keys(parentForm.controls).forEach(item => { if (item.includes('section')) { counter++; } });\n const formKey = `section${counter}`;\n parentForm.addControl(formKey, sectionGroup);\n\n componentRef.instance.form = sectionGroup;\n componentRef.instance.depth = {\n current: depth,\n max: this._maxStructureDepth\n };\n componentRef.instance.createSection.subscribe(() => {\n const section = this.createSection(PepOperatorTypes.And, componentRef.instance.sectionContainer, sectionGroup, depth + 1);\n this.createItem(null, section.containerRef, section.parentForm);\n });\n componentRef.instance.createItem.subscribe(() => {\n this.createItem(null, componentRef.instance.sectionContainer, sectionGroup);\n });\n componentRef.instance.remove.subscribe(() => {\n parentForm.removeControl(formKey);\n componentRef.destroy();\n this.createOutputQuery();\n if (this._cmpRefMap.has(formKey)) {\n this._cmpRefMap.delete(formKey);\n }\n });\n componentRef.instance.operatorChange.subscribe(() => {\n this.createOutputQuery();\n });\n\n // Add this to remove all the components when fields changes.\n this._cmpRefMap.set(formKey, componentRef);\n\n return {\n containerRef: componentRef.instance.sectionContainer,\n parentForm: sectionGroup\n };\n }\n\n /**\n * creates a component represents filter item (leaf element - has no childs)\n * @param current filter legacy element\n * @param containerRef parent element\n * @param parentForm parent form\n */\n createItem(current: IPepQueryItem, containerRef: ViewContainerRef, parentForm: FormGroup) {\n const factory = this._resolver.resolveComponentFactory(PepQueryBuilderItemComponent);\n const componentRef = containerRef.createComponent(factory);\n \n let counter = 1;\n Object.keys(parentForm.controls).forEach(item => { if (item.includes('item')) { counter++; } });\n const formKey = `item${counter}`;\n\n componentRef.instance.formKey = formKey;\n componentRef.instance.fields = this._smartFilterFields;\n componentRef.instance.variableFields = this._variableFields;\n const selectedField = this.getSelectedField(current);\n if (selectedField) {\n componentRef.instance.selected = selectedField;\n if (current) {\n componentRef.instance.filter = this._queryBuilderService.getFilter(current, selectedField.smart);\n }\n }\n componentRef.instance.parentForm = parentForm;\n componentRef.instance.filterChange.subscribe(() => {\n this.createOutputQuery();\n });\n componentRef.instance.remove.subscribe(() => {\n parentForm.removeControl(formKey);\n componentRef.destroy();\n this.createOutputQuery();\n if (this._cmpRefMap.has(formKey)) {\n this._cmpRefMap.delete(formKey);\n }\n });\n\n // Add this to remove all the components when fields changes.\n this._cmpRefMap.set(formKey, componentRef);\n }\n\n /**\n * get smart filter field\n * @param current filter legacy element\n * @returns smart filter field, if not found returns the first field\n */\n private getSelectedField(current: IPepQueryItem): IPepQueryBuilderFieldContainer | null {\n if (current) {\n const item = this._smartFilterFields.find(field => field.smart.id === current.ApiName);\n return item ? item : this._smartFilterFields?.length > 0 ? this._smartFilterFields[0] : null;\n } else {\n return this._smartFilterFields?.length > 0 ? this._smartFilterFields[0] : null;\n }\n }\n\n private convertSmartFilterComponentType(type: string) {\n switch (type) {\n case 'int':\n case 'currency':\n case 'real':\n case 'percentage':\n return 'number';\n case 'date-time':\n return 'date';\n default:\n return type;\n }\n }\n\n /**\n * creates a legacy output query \n */\n createOutputQuery() {\n if (this._form.valid) {\n const query = this._outputQueryService.generateQuery(this._form.value);\n this._outputQuery$.next(query);\n }\n }\n\n}","import {\n Component,\n EventEmitter,\n Input,\n Output,\n OnInit,\n OnDestroy,\n ViewChild\n} from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { PepQueryBuilderSectionComponent } from './query-builder-section/query-builder-section.component';\nimport { IPepQueryBuilderField, IPepQuerySection, IPepQueryItem } from './common/model/legacy';\nimport { PepQueryStructureService } from './common/services/query-structure.service';\nimport { PepTypeConvertorService } from './common/services/type-convertor.service';\nimport { PepOutputQueryService } from './common/services/output-query.service';\nimport { IPepQueryDepth } from './common/model/structure';\nimport { PepOperatorTypes } from './common/model/type';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'pep-query-builder',\n templateUrl: './query-builder.component.html',\n styleUrls: ['./query-builder.component.scss'],\n providers: [ PepQueryStructureService, PepTypeConvertorService, PepOutputQueryService]\n})\nexport class PepQueryBuilderComponent implements OnInit, OnDestroy {\n _query: IPepQuerySection | IPepQueryItem = null;\n @Input()\n set query(object: IPepQuerySection | IPepQueryItem) {\n this._query = object;\n this.loadQuery()\n }\n @Input()\n set fields(list: Array<IPepQueryBuilderField>) {\n this.queryStructureService.fields = list;\n this.hasFields = this.queryStructureService.hasFields;\n this.loadQuery();\n }\n @Input() \n set variableFields(list : Array<IPepQueryBuilderField>) {\n this.queryStructureService.variableFields = list;\n }\n @Input()\n set maxDepth(value: number) {\n this.queryStructureService.maxDepth = value;\n }\n\n @Output()\n queryChange: EventEmitter<IPepQuerySection | IPepQueryItem> = new EventEmitter<IPepQuerySection | IPepQueryItem>();\n @Output()\n formValidationChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @ViewChild('rootContainer', { static: true }) root: PepQueryBuilderSectionComponent;\n\n _formSubscription$: Subscription;\n _outputQuerySubscription$: Subscription;\n _lastFormValidStatus = true;\n depth: IPepQueryDepth;\n hasFields = false;\n\n constructor(\n private _fb: FormBuilder,\n public queryStructureService: PepQueryStructureService\n ) {\n this.setupForm();\n this.initDepth();\n this._formSubscription$ = this.queryStructureService.form.valueChanges.subscribe((val) => {\n if (this.queryStructureService.form.valid !== this._lastFormValidStatus) {\n this._lastFormValidStatus = this.queryStructureService.form.valid;\n this.formValidationChange.emit(this._lastFormValidStatus);\n }\n });\n this._outputQuerySubscription$ = this.queryStructureService.outputQuery$.subscribe((outputQuery) => {\n this.queryChange.emit(outputQuery);\n });\n }\n\n ngOnInit() {\n //\n }\n\n setupForm() {\n this.queryStructureService.form = this._fb.group({\n operator: this._fb.control(PepOperatorTypes.And)\n });\n }\n\n initDepth() {\n this.depth = {\n current: 0,\n max: this.queryStructureService.maxDepth\n }\n }\n\n /**\n * builds UI query structure as soon as both the fields and query loads\n */\n loadQuery() {\n if (\n this._query &&\n this.queryStructureService.hasFields &&\n this.root?.sectionContainer\n ) {\n this.queryStructureService.buildQueryStructure(this._query, this.root.sectionContainer);\n }\n }\n\n onCreateSection() {\n const section = this.queryStructureService.createSection(PepOperatorTypes.And, this.root.sectionContainer, this.queryStructureService.form, 1);\n this.queryStructureService.createItem(null, section.containerRef, section.parentForm);\n }\n\n onCreateItem() {\n this.queryStructureService.createItem(null, this.root.sectionContainer, this.queryStructureService.form);\n }\n\n onOperatorChange() {\n this.queryStructureService.createOutputQuery();\n }\n\n ngOnDestroy() {\n if (this._formSubscription$) {\n this._formSubscription$.unsubscribe();\n }\n if (this._outputQuerySubscription$) {\n this._outputQuerySubscription$.unsubscribe();\n }\n }\n\n}\n","<pep-query-builder-section #rootContainer [form]=\"queryStructureService.form\" [depth]=\"depth\" [hasFields]=\"hasFields\"\n (createSection)=\"onCreateSection()\" (createItem)=\"onCreateItem()\" (operatorChange)=\"onOperatorChange()\">\n</pep-query-builder-section>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormBuilder, ReactiveFormsModule } from '@angular/forms';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { PepSmartFiltersModule } from '@pepperi-addons/ngx-lib/smart-filters';\nimport { PepSelectModule } from '@pepperi-addons/ngx-lib/select';\nimport { PepButtonModule } from '@pepperi-addons/ngx-lib/button';\nimport { PepGroupButtonsModule } from '@pepperi-addons/ngx-lib/group-buttons';\n\nimport { PepQueryBuilderComponent } from './query-builder.component';\nimport { PepQueryBuilderSectionComponent } from './query-builder-section/query-builder-section.component';\nimport { PepQueryBuilderItemComponent } from './query-builder-item/query-builder-item.component';\n\nimport {\n PepIconModule,\n PepIconRegistry,\n pepIconSystemBin,\n} from '@pepperi-addons/ngx-lib/icon';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FlexLayoutModule,\n PepSelectModule,\n PepButtonModule,\n PepIconModule,\n PepGroupButtonsModule,\n PepSmartFiltersModule\n ],\n exports: [\n PepQueryBuilderComponent\n ],\n declarations: [\n PepQueryBuilderComponent,\n PepQueryBuilderSectionComponent,\n PepQueryBuilderItemComponent\n ],\n providers: [\n FormBuilder\n ]\n})\nexport class PepQueryBuilderModule { \n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([\n pepIconSystemBin,\n ]);\n }\n}\n","/*\n * Public API Surface of ngx-lib/query-builder\n */\nexport * from './query-builder.module';\nexport * from './query-builder.component';\nexport * from './query-builder.service';\nexport * from './common/model/legacy';\nexport * from './query-builder.service';\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PepTypeConvertorService","i2","i3","i2.PepTypeConvertorService","i4","i5","i6","i1.PepOutputQueryService","i2.PepQueryBuilderService","i2.PepQueryStructureService","i3.PepQueryBuilderSectionComponent","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pepperi-addons-ngx-lib-query-builder.mjs","sources":["../../../projects/ngx-lib/query-builder/common/services/type-convertor.service.ts","../../../projects/ngx-lib/query-builder/query-builder-section/query-builder-section.component.ts","../../../projects/ngx-lib/query-builder/query-builder-section/query-builder-section.component.html","../../../projects/ngx-lib/query-builder/query-builder-item/query-builder-item.component.ts","../../../projects/ngx-lib/query-builder/query-builder-item/query-builder-item.component.html","../../../projects/ngx-lib/query-builder/common/model/type-map.ts","../../../projects/ngx-lib/query-builder/common/model/type.ts","../../../projects/ngx-lib/query-builder/common/model/operator.ts","../../../projects/ngx-lib/query-builder/common/model/operator-unit.ts","../../../projects/ngx-lib/query-builder/common/services/output-query.service.ts","../../../projects/ngx-lib/query-builder/query-builder.service.ts","../../../projects/ngx-lib/query-builder/common/services/query-structure.service.ts","../../../projects/ngx-lib/query-builder/query-builder.component.ts","../../../projects/ngx-lib/query-builder/query-builder.component.html","../../../projects/ngx-lib/query-builder/query-builder.module.ts","../../../projects/ngx-lib/query-builder/public-api.ts","../../../projects/ngx-lib/query-builder/pepperi-addons-ngx-lib-query-builder.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\n\n@Injectable()\nexport class PepTypeConvertorService {\n private readonly _operators: IPepOption[] = [];\n private readonly _booleans: IPepOption[] = [];\n\n public get operators(): IPepOption[] {\n return this._operators;\n }\n\n public get booleans(): IPepOption[] {\n return this._booleans;\n }\n\n constructor() {\n this.initOperators();\n this.initBooleans();\n }\n\n private initOperators() {\n this._operators.push({\n key: 'AND',\n value: 'And'\n });\n this._operators.push({\n key: 'OR',\n value: 'Or'\n });\n }\n\n private initBooleans() {\n this._booleans.push({\n key: 'True',\n value: 'True'\n });\n this._booleans.push({\n key: 'False',\n value: 'False'\n });\n }\n\n}","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport {\n IPepButtonClickEvent,\n PepButton,\n} from '@pepperi-addons/ngx-lib/button';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { PepTypeConvertorService } from '../common/services/type-convertor.service';\nimport { IPepQueryDepth } from '../common/model/structure';\n\n@Component({\n selector: 'pep-query-builder-section',\n templateUrl: './query-builder-section.component.html',\n styleUrls: ['./query-builder-section.component.scss', './query-builder-section.component.theme.scss'],\n})\nexport class PepQueryBuilderSectionComponent {\n @Input() form: FormGroup;\n @Input() depth: IPepQueryDepth;\n @Input() hasFields = true;\n\n @Output()\n createSection = new EventEmitter();\n @Output()\n createItem = new EventEmitter();\n @Output()\n remove = new EventEmitter();\n @Output()\n operatorChange = new EventEmitter();\n\n @ViewChild('sectionContainer', { read: ViewContainerRef, static: true }) sectionContainer: ViewContainerRef;\n\n toggleButtons: Array<PepButton>;\n\n constructor(private _typeConvertorService: PepTypeConvertorService) {\n }\n\n ngOnInit() {\n this.initOperators();\n }\n\n get f() {\n return this.form.controls;\n }\n\n initOperators() {\n this.toggleButtons = this._typeConvertorService.operators.map((operator: IPepOption) => {\n return {\n key: operator.key,\n value: operator.value,\n callback: (event: IPepButtonClickEvent) =>\n this.onOperatorChanged(event)\n } as PepButton\n });\n }\n\n onOperatorChanged(event) {\n if (event?.source?.key) {\n this.f.operator.setValue(event.source.key);\n this.operatorChange.emit();\n }\n }\n\n onAddRuleClicked() {\n this.createItem.emit();\n }\n\n onAddRuleSetClicked() {\n this.createSection.emit();\n }\n\n onDeleteSectionClicked() {\n this.remove.emit();\n }\n\n\n}\n","<div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <div class=\"query-section-container\" fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between\">\n <pep-group-buttons [buttons]=\"toggleButtons\" [selectedButtonKey]=\"f.operator?.value || ''\" styleType=\"weak\"\n sizeType=\"sm\" [viewType]=\"'toggle'\" [buttonsDisabled]=\"!hasFields\">\n </pep-group-buttons>\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-button value=\"Add Filter\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"sm\" classNames=\"\"\n [disabled]=\"!hasFields\" iconName=\"number_plus\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onAddRuleClicked()\"></pep-button>\n <ng-container *ngIf=\"depth.current < depth.max-1\">\n <pep-button value=\"Add Filter Group\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"sm\"\n classNames=\"\" [disabled]=\"!hasFields\" iconName=\"number_plus\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onAddRuleSetClicked()\"></pep-button>\n </ng-container>\n </div>\n </div>\n <ng-container #sectionContainer></ng-container>\n </div>\n <pep-button *ngIf=\"depth.current > 0\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"md\" classNames=\"\"\n [disabled]=\"false\" iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onDeleteSectionClicked()\">\n </pep-button>\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { PepSmartFilterBaseField, IPepSmartFilterField } from '@pepperi-addons/ngx-lib/smart-filters';\nimport { IPepSmartFilterData } from '@pepperi-addons/ngx-lib/smart-filters';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { PepTypeConvertorService } from '../common/services/type-convertor.service';\nimport { IPepQueryBuilderFieldContainer } from '../common/model/field';\nimport { PepQueryStructureService } from '../common/services/query-structure.service'\n\n@Component({\n selector: 'pep-query-builder-item',\n templateUrl: './query-builder-item.component.html',\n styleUrls: ['./query-builder-item.component.scss'],\n})\nexport class PepQueryBuilderItemComponent {\n @Input() formKey: string;\n _fields: Array<IPepQueryBuilderFieldContainer> = [];\n _options: IPepOption[] = [];\n @Input()\n set fields(list: Array<IPepQueryBuilderFieldContainer>) {\n if (list?.length > 0) {\n this._fields = list;\n this._options = list.map(field => {\n return {\n key: field.smart.id,\n value: field.smart.name\n }\n })\n }\n }\n _selectedField: PepSmartFilterBaseField = null;\n @Input()\n set selected(value: IPepQueryBuilderFieldContainer) {\n if (value) {\n this._selectedField = value.smart;\n this.queryForm.fieldType.setValue(value.query.fieldType);\n }\n }\n _filter: IPepSmartFilterData;\n @Input()\n set filter(value: IPepSmartFilterData) {\n if (value) {\n this._filter = value;\n }\n }\n _parentForm: FormGroup;\n @Input()\n set parentForm(value: FormGroup) {\n if (value) {\n this._parentForm = value;\n this.addToParentForm();\n }\n }\n \n @Input() \n variableFields: any = {};\n\n @Output()\n filterChange = new EventEmitter();\n @Output()\n remove = new EventEmitter();\n\n form: FormGroup;\n\n constructor(\n private _fb: FormBuilder,\n public typeConvertorService: PepTypeConvertorService,\n private queryStructureService: PepQueryStructureService\n ) {\n this.setupForm();\n }\n\n ngOnInit() {\n //this.variableFields = this.queryStructureService.variableFields;\n }\n\n get f() {\n return this.form.controls;\n }\n\n get queryForm() {\n return (this.f.query as FormGroup).controls;\n }\n\n setupForm() {\n this.form = this._fb.group({\n smart: this._fb.group({\n fieldId: this._fb.control(null),\n fieldType: this._fb.control(null),\n operator: this._fb.control(null),\n operatorUnit: this._fb.control(null),\n values: this._fb.group({\n first: this._fb.control(null),\n second: this._fb.control(null)\n })\n }),\n query: this._fb.group({\n fieldType: this._fb.control(null)\n })\n });\n }\n\n addToParentForm() {\n this._parentForm.setControl(this.formKey, this.form);\n }\n\n onFieldChanged(key) {\n const item = this._fields.find(field => field.smart.id === key);\n\n this.setupForm();\n this.queryForm.fieldType.setValue(item.query.fieldType);\n this.addToParentForm();\n\n /**\n * hack due to angular's change detection bug -\n * ERROR Error: There is no FormControl instance attached to form control element with name: [formControlName]\n */\n this._selectedField = null;\n setTimeout(() => {\n this._selectedField = item ? item.smart : null;\n }, 0);\n\n this._filter = null;\n }\n\n onFilterChanged() {\n if (this.form.valid) {\n this.filterChange.emit();\n }\n }\n\n onDeleteItemClicked() {\n this.remove.emit();\n }\n\n\n\n}\n","<div fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select fxFlex=\"25%\" [value]=\"_selectedField?.id\" xAlignment=\"left\" [options]=\"_options\"\n [renderTitle]=\"false\" (valueChange)=\"onFieldChanged($event)\"></pep-select>\n <ng-container *ngIf=\"_selectedField?.componentType\">\n <ng-container [ngSwitch]=\"_selectedField.componentType\">\n <ng-container *ngSwitchCase=\"'text'\">\n <pep-text-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [variableField]=\"variableFields?.text\"\n [field]=\"_selectedField\" [filter]=\"_filter\" [parentForm]=\"f.smart\" [emitOnChange]=\"true\"\n [inline]=\"true\" [renderTitle]=\"false\" (filterChange)=\"onFilterChanged()\">\n </pep-text-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'boolean'\">\n <pep-boolean-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.boolean\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\"\n [options]=\"typeConvertorService.booleans\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-boolean-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <pep-date-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [showAdditionalOperators]=\"true\"\n [variableField]=\"variableFields?.date\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-date-filter>\n </ng-container>\n <!-- <ng-container *ngSwitchCase=\"'text'\">\n <pep-multi-select-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.text\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-multi-select-filter>\n </ng-container> -->\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <pep-multi-select-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.text\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-multi-select-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <pep-number-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.number\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-number-filter>\n </ng-container>\n </ng-container>\n </ng-container>\n <pep-button styleType=\"weak\" styleStateType=\"system\" sizeType=\"md\" classNames=\"\" [disabled]=\"false\"\n iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\" (buttonClick)=\"onDeleteItemClicked()\">\n </pep-button>\n </div>\n</div>","import { PepSmartFilterType } from '@pepperi-addons/ngx-lib/smart-filters';\n\n\nexport class PepQueryBuilderTypeMap {\n private map: Map<string, PepSmartFilterType>;\n\n constructor() {\n this.loadTypes();\n }\n\n private loadTypes() {\n this.map = new Map<string, PepSmartFilterType>();\n this.map.set('Bool', 'boolean');\n this.map.set('JsonBool', 'boolean');\n this.map.set('Integer', 'int');\n this.map.set('Double', 'real');\n this.map.set('String', 'text');\n this.map.set('Guid', 'text');\n this.map.set('Date', 'date');\n this.map.set('DateTime', 'date-time');\n this.map.set('MultipleStringValues', 'multi-select');\n }\n\n /**\n * Converts legacy field type to smart filter type\n * @param type legacy type\n * @returns smart filter field type\n */\n getSmartFilterType(key: string): PepSmartFilterType | null {\n const item = this.map.get(key);\n return item ? item : null;\n }\n\n}\n\n","export enum PepOperatorTypes {\n And = 'AND',\n Or = 'OR'\n}\n\n","import {\n PepSmartFilterOperators,\n PepSmartFilterAdditionalOperators,\n PepSmartFilterVariableOperators,\n IPepSmartFilterOperator\n} from '@pepperi-addons/ngx-lib/smart-filters';\nimport { PepSmartFilterType } from '@pepperi-addons/ngx-lib/smart-filters';\n\nexport type IpepQueryBuilderValueType = 'Static' | 'Dynamic';\nexport interface IPepQueryBuilderOperator {\n legacy: string, //legacy Operator \n valueType: IpepQueryBuilderValueType,\n smartFilter: IPepSmartFilterOperator, //smart filter operator \n type: PepSmartFilterType[] | null, //smart filter type\n fieldType?: Array<string> | null\n}\n\nconst Equals: IPepQueryBuilderOperator = {\n legacy: 'IsEqual',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.Equals,\n type: ['boolean', 'int', 'text', 'real']\n};\n\nconst EqualsVariable: IPepQueryBuilderOperator = {\n legacy: 'IsEqual',\n valueType: 'Dynamic',\n smartFilter: PepSmartFilterVariableOperators.EqualsToVariable,\n type: ['boolean', 'int', 'text'],\n fieldType: ['String','Bool','Integer']\n};\n\nconst NotEqual: IPepQueryBuilderOperator = {\n legacy: 'IsNotEqual',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.NotEqual,\n type: null\n};\n\nconst NotEqualsVariable: IPepQueryBuilderOperator = {\n legacy: 'IsNotEqual',\n valueType: 'Dynamic',\n smartFilter: PepSmartFilterVariableOperators.NotEqualsToVariable,\n type: ['boolean']\n};\n\nconst LessThan: IPepQueryBuilderOperator = {\n legacy: '<',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.LessThan,\n type: null\n};\n\nconst LessThanVariable: IPepQueryBuilderOperator = {\n legacy: '<',\n valueType: 'Dynamic',\n smartFilter: PepSmartFilterVariableOperators.LessThanVariable,\n type: null\n};\n\nconst GreaterThan: IPepQueryBuilderOperator = {\n legacy: '>',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.GreaterThan,\n type: null\n};\n\nconst GreaterThanVariable: IPepQueryBuilderOperator = {\n legacy: '>',\n valueType: 'Dynamic',\n smartFilter: PepSmartFilterVariableOperators.GreaterThanVariable,\n type: null\n};\n\n/*\nconst GreaterThanOrEquals: IPepQueryBuilderOperator = {\n legacy: {\n operator: '>=',\n type: 'Integer'\n },\n smartFilter: {\n item: PepSmartFilterOperators.GreaterThanOrEquals,\n type: 'int'\n }\n};\n\nconst LessThanOrEquals: IPepQueryBuilderOperator = {\n legacy: {\n operator: '<=',\n type: 'Integer'\n },\n smartFilter: {\n item: PepSmartFilterOperators.LessThanOrEquals,\n type: 'int',\n type: 'Integer'\n }\n}; */\n\nconst NumberRange: IPepQueryBuilderOperator = {\n legacy: 'Between',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.NumberRange,\n type: ['int']\n};\n\nconst Contains: IPepQueryBuilderOperator = {\n legacy: 'Contains',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.Contains,\n type: null\n};\n\nconst BeginsWith: IPepQueryBuilderOperator = {\n legacy: 'StartWith',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.BeginsWith,\n type: null\n};\n\nconst EndsWith: IPepQueryBuilderOperator = {\n legacy: 'EndWith',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.EndsWith,\n type: null\n};\n\nconst InTheLast: IPepQueryBuilderOperator = {\n legacy: 'InTheLast',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.InTheLast,\n type: null\n};\n\nconst InTheLastCalendar: IPepQueryBuilderOperator = {\n legacy: 'InTheLastCalendar',\n valueType: 'Static',\n smartFilter: PepSmartFilterAdditionalOperators.InTheLastCalendar,\n type: null\n}\n\n/*\nconst InTheLastVariable: IPepQueryBuilderOperator = {\n legacy: 'InTheLast',\n valueType: 'Dynamic',\n smartFilter: PepSmartFilterVariableOperators.InTheLastVariable,\n type: null\n} */\n\nconst NotInTheLast: IPepQueryBuilderOperator = {\n legacy: 'NotInTheLast',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.NotInTheLast,\n type: null\n};\n\nconst NotInTheLastCalendar: IPepQueryBuilderOperator = {\n legacy: 'NotInTheLastCalendar',\n valueType: 'Static',\n smartFilter: PepSmartFilterAdditionalOperators.NotInTheLastCalendar,\n type: null\n}\n\nconst Today: IPepQueryBuilderOperator = {\n legacy: 'Today',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.Today,\n type: null\n};\n\nconst ThisWeek: IPepQueryBuilderOperator = {\n legacy: 'ThisWeek',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.ThisWeek,\n type: null\n};\n\nconst ThisMonth: IPepQueryBuilderOperator = {\n legacy: 'ThisMonth',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.ThisMonth,\n type: null\n};\n\nconst DateRange: IPepQueryBuilderOperator = {\n legacy: 'Between',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.DateRange,\n type: ['date-time']\n};\n\nconst dateRangeVariable: IPepQueryBuilderOperator = {\n legacy: 'Between',\n valueType: 'Dynamic',\n smartFilter: PepSmartFilterVariableOperators.DateRangeVariable,\n type: ['date-time']\n};\n\nconst DueIn: IPepQueryBuilderOperator = {\n legacy: 'DueIn',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.DueIn,\n type: null\n};\n\nconst NotDueIn: IPepQueryBuilderOperator = {\n legacy: 'NotDueIn',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.NotDueIn,\n type: null\n};\n\nconst On: IPepQueryBuilderOperator = {\n legacy: 'On',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.On,\n type: null\n};\n\nconst IsEmpty: IPepQueryBuilderOperator = {\n legacy: 'IsEmpty',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.IsEmpty,\n type: null\n};\n\nconst IsNotEmpty: IPepQueryBuilderOperator = {\n legacy: 'IsNotEmpty',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.IsNotEmpty,\n type: null\n};\n\nconst In: IPepQueryBuilderOperator = {\n legacy: 'IsEqual',\n valueType: 'Static',\n smartFilter: PepSmartFilterOperators.In,\n type: ['multi-select']\n};\n\nconst InVariable: IPepQueryBuilderOperator = {\n legacy: 'IsEqual',\n valueType: 'Dynamic',\n smartFilter: PepSmartFilterVariableOperators.InVariable,\n type: ['multi-select', 'text'],\n fieldType: ['MultipleStringValues']\n};\n\n\nconst PepQueryBuilderOperators = [\n Equals,\n EqualsVariable,\n NotEqual,\n NotEqualsVariable,\n LessThan,\n LessThanVariable,\n // LessThanOrEquals,\n GreaterThan,\n GreaterThanVariable,\n // GreaterThanOrEquals,\n NumberRange,\n Contains,\n BeginsWith,\n EndsWith,\n // After,\n // Before,\n InTheLast,\n // InTheLastVariable,\n InTheLastCalendar,\n NotInTheLast,\n NotInTheLastCalendar,\n Today,\n ThisWeek,\n ThisMonth,\n DateRange,\n dateRangeVariable,\n DueIn,\n NotDueIn,\n On,\n IsEmpty,\n IsNotEmpty,\n In,\n InVariable\n]\n\n/**\n * gets a smart filter operator item\n * @param operator legacy operator\n * @param type smart filter's type\n * @returns smart filter operator item\n */\nexport function getSmartFilterOperator(operator: string, type: PepSmartFilterType, valueType: IpepQueryBuilderValueType, fieldType = null): IPepSmartFilterOperator | null {\n const smartFilterOperator = PepQueryBuilderOperators.find(item =>\n item.legacy === operator &&\n item.valueType === valueType &&\n (item.type === null || item.type.includes(type)) &&\n (fieldType == null || item.fieldType === undefined || item.fieldType?.includes(fieldType))\n );\n /*\n FieldType: (current[key].smart.operator.id === 'inv' && \n current[key].smart.fieldType === 'text') ? 'MultipleStringValues' : current[key].query.fieldType,\n */\n return smartFilterOperator ? smartFilterOperator.smartFilter : null;\n}\n\n/**\n * gets a legacy operator value\n * @param operator smart filter operator item\n * @param type smart filter's type\n * @returns legacy operator value\n */\nexport function getLegacyOperator(operator: IPepSmartFilterOperator, type: PepSmartFilterType): string | null {\n const legacyOperator = PepQueryBuilderOperators.find(item =>\n item.smartFilter === operator &&\n (item.type === null || item.type.includes(type))\n );\n return legacyOperator ? legacyOperator.legacy : null;\n}\n\n/**\n * gets a value type of the operator value\n * @param operator smart filter operator item\n * @param type smart filter's type\n * @returns value type operator value\n */\n export function getValueTypeOperator(operator: IPepSmartFilterOperator, type: PepSmartFilterType): IpepQueryBuilderValueType {\n const valueType = PepQueryBuilderOperators.find(item =>\n item.smartFilter === operator &&\n (item.type === null || item.type.includes(type))\n );\n return valueType ? valueType.valueType : 'Static';\n}\n","\nimport { IPepSmartFilterOperatorUnit, PepSmartFilterOperatorUnits } from '@pepperi-addons/ngx-lib/smart-filters';\n\ninterface IPepQueryBuilderOperationUnit {\n legacy: string,\n smartFilter: IPepSmartFilterOperatorUnit,\n}\n\nconst Days: IPepQueryBuilderOperationUnit = {\n legacy: 'Days',\n smartFilter: PepSmartFilterOperatorUnits.Days\n};\n\nconst Weeks: IPepQueryBuilderOperationUnit = {\n legacy: 'Weeks',\n smartFilter: PepSmartFilterOperatorUnits.Weeks\n};\n\nconst Months: IPepQueryBuilderOperationUnit = {\n legacy: 'Months',\n smartFilter: PepSmartFilterOperatorUnits.Months\n};\n\nconst Years: IPepQueryBuilderOperationUnit = {\n legacy: 'Years',\n smartFilter: PepSmartFilterOperatorUnits.Years\n};\n\nconst PepQueryBuilderOperationUnit = [\n Days,\n Weeks,\n Months,\n Years,\n];\n\n/**\n * gets a smart filter operation unit item\n * @param operationUnit legacy operation unit\n * @returns smart filter operation unit item\n */\nexport function getSmartFilterOperationUnit(operationUnit: string): IPepSmartFilterOperatorUnit | null {\n const smartFilterOperationUnit: IPepQueryBuilderOperationUnit = PepQueryBuilderOperationUnit.find(unit => unit.legacy === operationUnit);\n return smartFilterOperationUnit ? smartFilterOperationUnit.smartFilter : null;\n}\n\n/**\n * gets a legacy operation unit value\n * @param operationUnit smart filter operation unit item\n * @returns legacy operation unit value\n */\nexport function getLegacyOperationUnit(operationUnit: IPepSmartFilterOperatorUnit): string | null {\n const legacyOperationUnit: IPepQueryBuilderOperationUnit = PepQueryBuilderOperationUnit.find(unit => unit.smartFilter === operationUnit);\n return legacyOperationUnit ? legacyOperationUnit.legacy : null;\n}\n","import { Injectable } from '@angular/core';\nimport { IPepQuerySection, IPepQueryItem } from '../model/legacy';\nimport { getLegacyOperator, getValueTypeOperator } from '../model/operator';\nimport { PepOperatorTypes } from '../model/type';\nimport { getLegacyOperationUnit } from '../model/operator-unit';\nimport { \n PepSmartFilterOperators,\n PepSmartFilterAdditionalOperators\n} from '@pepperi-addons/ngx-lib/smart-filters';\n\n\n@Injectable()\nexport class PepOutputQueryService {\n private _complexIdCounter: number;\n private _expressionIdCounter: number;\n\n constructor() {\n //\n }\n\n /**\n * generates a legacy query structure \n * @param filters UI smart filters structure \n * @returns legacy query\n */\n generateQuery(filters: any) {\n this.initParams();\n\n return this.sectionWalk(filters);\n }\n\n /**\n * init params\n */\n private initParams() {\n this._complexIdCounter = 1;\n this._expressionIdCounter = 1;\n }\n\n /**\n * a recursive function dynamically builds legacy query structure\n * @param current UI object represents either a section or filter component\n * @returns section query data\n */\n private sectionWalk(current: any) {\n let section: IPepQuerySection | IPepQueryItem = null;\n\n Object.keys(current).forEach(key => {\n if (key.includes('item')) {\n section = this.addToSection(section, {\n ExpressionId: (this._expressionIdCounter++).toString(),\n ApiName: current[key].smart.fieldId,\n FieldType: (current[key].smart.operator.id === 'inv' && \n current[key].smart.fieldType === 'text') ? 'MultipleStringValues' : current[key].query.fieldType,\n Operation: getLegacyOperator(current[key].smart.operator, current[key].smart.fieldType),\n ValueType: getValueTypeOperator(current[key].smart.operator, current[key].smart.fieldType),\n Values: this.getItemValues(current[key].smart)\n } as IPepQueryItem, current.operator);\n } else if (key.includes('section')) {\n const childSection = this.sectionWalk(current[key]);\n if (childSection) {\n section = this.addToSection(section, childSection, current.operator);\n }\n }\n });\n\n return section;\n }\n\n /**\n * adds a legacy filter object to the current query structure\n * @param section section query data\n * @param item filter item\n * @param operator query operator\n * @returns \n */\n private addToSection(section: any, item: any, operator: string): any {\n return section ? this.createSection(section, item, operator) : item;\n }\n\n /**\n * creates a legacy complex object\n * @param left LeftNode object\n * @param right RightNode object\n * @param operator query operator\n * @returns legacy complex object\n */\n private createSection(left: any, right: any, operator: string): IPepQuerySection {\n return {\n ComplexId: (this._complexIdCounter++).toString(),\n LeftNode: left,\n RightNode: right,\n Operation: <PepOperatorTypes>operator\n }\n }\n\n /**\n * gets legacy filter values object\n * @param current UI filter object's values\n * @returns an array represents legacy values\n */\n private getItemValues(current: any) {\n let values: any[] = [];\n\n if (current?.values?.first) {\n if (current.operator === PepSmartFilterOperators.In) { //multi select \n values = current.values.first;\n } else if (\n current.operator === PepSmartFilterOperators.InTheLast ||\n current.operator === PepSmartFilterAdditionalOperators.InTheLastCalendar ||\n current.operator === PepSmartFilterOperators.NotInTheLast ||\n current.operator === PepSmartFilterAdditionalOperators.NotInTheLastCalendar ||\n current.operator === PepSmartFilterOperators.DueIn ||\n current.operator === PepSmartFilterOperators.NotDueIn\n ) { //operation unit \n values.push(current.values.first);\n if (current.operatorUnit) {\n values.push(getLegacyOperationUnit(current.operatorUnit));\n }\n } else {\n values.push(current.values.first);\n if (current.values.second) {\n values.push(current.values.second);\n }\n }\n }\n\n return values;\n }\n\n}","import { Injectable } from '@angular/core';\nimport { \n IPepQueryBuilderField, \n IPepQueryItem \n} from './common/model/legacy';\nimport { \n IPepSmartFilterData,\n PepSmartFilterOperators,\n PepSmartFilterAdditionalOperators,\n IPepSmartFilterOperator,\n PepSmartFilterType,\n createSmartFilter,\n createSmartFilterField,\n PepSmartFilterBaseField\n} from '@pepperi-addons/ngx-lib/smart-filters';\nimport { getSmartFilterOperator } from './common/model/operator';\nimport { IPepQueryBuilderFieldContainer } from './common/model/field';\nimport { PepQueryBuilderTypeMap } from './common/model/type-map';\nimport { getSmartFilterOperationUnit } from './common/model/operator-unit';\nimport { IPepQueryBuilderValues } from './common/model/filter';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PepQueryBuilderService {\n\n constructor() {\n //\n }\n\n /**\n * creates a smart filter object\n * @param current filter legacy element\n * @param field filter's selected field\n * @returns smart filter object\n */\n getFilter(current: IPepQueryItem, field: PepSmartFilterBaseField): IPepSmartFilterData | null { \n const operator: IPepSmartFilterOperator = getSmartFilterOperator(current.Operation, field.type, current.ValueType || 'Static', current.FieldType || null);\n\n if (operator) {\n const filterValues: IPepQueryBuilderValues = this.getFilterValues(current, operator, field);\n return createSmartFilter(\n current.ApiName,\n operator,\n filterValues.first,\n filterValues.second,\n filterValues.operationUnit\n );\n } else {\n return null;\n }\n }\n \n /**\n * converts legacy fields to smart filter fields\n * @param fields legacy fields array\n * @returns smart filter fields array\n */\n convertToSmartFilterFields(fields: Array<IPepQueryBuilderField>): Array<IPepQueryBuilderFieldContainer> {\n if (fields?.length > 0) {\n const typeMapper = new PepQueryBuilderTypeMap();\n\n return fields.map((field) => {\n return {\n smart: createSmartFilterField(\n {\n id: field.FieldID,\n name: field.Title,\n options: field.OptionalValues?.map(option => {\n return {\n key: option.Key,\n value: option.Value\n }\n })\n }, typeMapper.getSmartFilterType(field.FieldType) as PepSmartFilterType),\n query: {\n fieldType: field.FieldType\n }\n }\n })\n } else {\n return [];\n }\n }\n \n /**\n * gets smart filter's values data\n * @param current filter legacy element\n * @param operator smart filter operator\n * @param field filter's selected field\n * @returns object contains the filter values data\n */\n private getFilterValues(current: IPepQueryItem, operator: IPepSmartFilterOperator, field: any) {\n const data: IPepQueryBuilderValues = {\n first: null,\n second: null,\n operationUnit: null\n };\n\n if (operator === PepSmartFilterOperators.In) { //multi select \n //filter keys don't exist on field options\n data.first = current?.Values?.length > 0 ? current.Values.filter(item => {\n return field.options.find(option => option.key === item);\n }) : null;\n } else if (\n operator === PepSmartFilterOperators.InTheLast ||\n operator === PepSmartFilterAdditionalOperators.InTheLastCalendar ||\n operator === PepSmartFilterOperators.NotInTheLast ||\n operator === PepSmartFilterAdditionalOperators.NotInTheLastCalendar ||\n operator === PepSmartFilterOperators.DueIn ||\n operator === PepSmartFilterOperators.NotDueIn\n ) { //operation unit\n data.first = current?.Values?.length > 0 ? current.Values[0] : null;\n if (current?.Values?.length === 2) {\n data.operationUnit = getSmartFilterOperationUnit(current.Values[1]);\n }\n } else {\n data.first = current?.Values?.length > 0 ? current.Values[0] : null;\n data.second = current?.Values?.length === 2 ? current.Values[1] : null;\n }\n\n return data;\n }\n\n}","import { Injectable, ViewContainerRef, ComponentFactoryResolver, ComponentRef } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { } from 'lodash';\nimport { IPepQueryBuilderField, IPepQuerySection, IPepQueryItem } from '../../common/model/legacy';\nimport { PepQueryBuilderService } from '../../query-builder.service';\nimport { PepOutputQueryService } from '../../common/services/output-query.service';\nimport { PepQueryBuilderSectionComponent } from '../../query-builder-section/query-builder-section.component';\nimport { PepQueryBuilderItemComponent } from '../../query-builder-item/query-builder-item.component';\nimport { IPepQueryBuilderFieldContainer } from '../../common/model/field';\nimport { PepQueryBuilderTypeMap } from '../../common/model/type-map';\nimport { PepOperatorTypes } from '../../common/model/type';\n\nconst MAX_STRUCTURE_DEPTH = 3;\n\n@Injectable()\nexport class PepQueryStructureService {\n private _outputQuery$ = new BehaviorSubject<IPepQuerySection | IPepQueryItem>(null);\n\n private _smartFilterFields: Array<IPepQueryBuilderFieldContainer>;\n private _variableFields: any = {};\n private _form: FormGroup;\n private _maxStructureDepth = MAX_STRUCTURE_DEPTH;\n\n private _cmpRefMap: Map<string, ComponentRef<any>> = new Map();\n\n public outputQuery$ = this._outputQuery$.asObservable();\n\n constructor(\n private _resolver: ComponentFactoryResolver,\n private _outputQueryService: PepOutputQueryService,\n private _queryBuilderService: PepQueryBuilderService) {\n\n }\n\n set maxDepth(value) {\n this._maxStructureDepth = value;\n }\n\n get maxDepth() {\n return this._maxStructureDepth;\n }\n\n set fields(list: Array<IPepQueryBuilderField>) {\n this._smartFilterFields = this._queryBuilderService.convertToSmartFilterFields(list);\n }\n\n get hasFields(): boolean {\n return this._smartFilterFields?.length > 0;\n }\n\n set variableFields(list: Array<IPepQueryBuilderField>) {\n if (list?.length) {\n const typeMapper = new PepQueryBuilderTypeMap();\n list.forEach(field => {\n const fieldType = this.convertSmartFilterComponentType(typeMapper.getSmartFilterType(field.FieldType));\n if (this.hasProperty(this._variableFields, fieldType)) {\n if(!this._variableFields[fieldType].includes(field.FieldID)){\n this._variableFields[fieldType].push(field.FieldID);\n }\n } else {\n this._variableFields[fieldType] = [field.FieldID];\n }\n });\n }\n\n this._cmpRefMap.forEach((value: ComponentRef<any>, key: string) => {\n if (value.instance.variableFields) {\n Object.keys(value.instance.variableFields).forEach(function(key, index){\n value.instance.variableFields[key] = JSON.parse(JSON.stringify(value.instance.variableFields[key]));\n });\n }\n });\n }\n\n set form(value: FormGroup) {\n this._form = value;\n }\n\n get form() {\n return this._form;\n }\n\n /**\n * builds a dynamic UI query structure\n * might has a different structure than the query's due to parent-child elements merge\n * @param query legacy query \n * @param containerRef reference to root element\n */\n buildQueryStructure(\n query: IPepQuerySection | IPepQueryItem,\n containerRef: ViewContainerRef\n ) {\n // Remove all the components from the query builder.\n this._cmpRefMap.forEach((value: ComponentRef<any>, key: string) => {\n // console.log(key, value);\n // value.instance.remove();\n if (value.instance.parentForm) {\n value.instance.parentForm.removeControl(key);\n }\n value.destroy();\n this._cmpRefMap.delete(key);\n });\n \n // Clear containerRef\n containerRef.clear();\n\n //update root operator \n if (this.hasProperty(query, 'ComplexId') &&\n query?.Operation &&\n query.Operation !== this._form.get('operator').value) {\n this._form.get('operator').setValue(query.Operation);\n }\n this.flatten(this._form.get('operator').value, query, containerRef, this._form, 0);\n }\n\n /**\n * checks if the object contains property\n * @param obj object\n * @param prop property name\n * @returns true if contains, false otherwise\n */\n private hasProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n /**\n * a recursive function dynamically builds UI filters structure\n * @param parentOperator parent legacy complex operator\n * @param current child legacy object (either another complex or expression type)\n * @param containerRef parent element\n * @param parentForm parent form\n */\n private flatten(parentOperator: string, current: IPepQuerySection | IPepQueryItem, containerRef: ViewContainerRef, parentForm: FormGroup, depth: number) {\n if (this.hasProperty(current, 'ComplexId')) {\n const section = current as IPepQuerySection;\n if (parentOperator === current.Operation) {\n this.flatten(current.Operation, section.LeftNode, containerRef, parentForm, depth);\n this.flatten(current.Operation, section.RightNode, containerRef, parentForm, depth);\n } else {\n const result = this.createSection(section.Operation, containerRef, parentForm, depth + 1);\n this.flatten(section.Operation, section.LeftNode, result.containerRef, result.parentForm, depth + 1);\n this.flatten(section.Operation, section.RightNode, result.containerRef, result.parentForm, depth + 1);\n }\n } else if (this.hasProperty(current, 'ExpressionId')) {\n this.createItem(current as IPepQueryItem, containerRef, parentForm);\n }\n }\n\n /**\n * creates a container object of two or more child filter items\n * @param operator AND/OR operator\n * @param containerRef parent element\n * @param parentForm parent form\n * @param depth\n * @returns an object containing the current element and current form\n */\n createSection(operator: PepOperatorTypes, containerRef: ViewContainerRef, parentForm: FormGroup, depth: number) {\n const factory = this._resolver.resolveComponentFactory(PepQueryBuilderSectionComponent);\n const componentRef = containerRef.createComponent(factory);\n\n // const sectionGroup = this._fb.group({\n // operator: this._fb.control(operator)\n // });\n const sectionGroup = new FormGroup({\n operator: new FormControl(operator)\n });\n let counter = 1;\n Object.keys(parentForm.controls).forEach(item => { if (item.includes('section')) { counter++; } });\n const formKey = `section${counter}`;\n parentForm.addControl(formKey, sectionGroup);\n\n componentRef.instance.form = sectionGroup;\n componentRef.instance.depth = {\n current: depth,\n max: this._maxStructureDepth\n };\n componentRef.instance.createSection.subscribe(() => {\n const section = this.createSection(PepOperatorTypes.And, componentRef.instance.sectionContainer, sectionGroup, depth + 1);\n this.createItem(null, section.containerRef, section.parentForm);\n });\n componentRef.instance.createItem.subscribe(() => {\n this.createItem(null, componentRef.instance.sectionContainer, sectionGroup);\n });\n componentRef.instance.remove.subscribe(() => {\n parentForm.removeControl(formKey);\n componentRef.destroy();\n this.createOutputQuery();\n if (this._cmpRefMap.has(formKey)) {\n this._cmpRefMap.delete(formKey);\n }\n });\n componentRef.instance.operatorChange.subscribe(() => {\n this.createOutputQuery();\n });\n\n // Add this to remove all the components when fields changes.\n this._cmpRefMap.set(formKey, componentRef);\n\n return {\n containerRef: componentRef.instance.sectionContainer,\n parentForm: sectionGroup\n };\n }\n\n /**\n * creates a component represents filter item (leaf element - has no childs)\n * @param current filter legacy element\n * @param containerRef parent element\n * @param parentForm parent form\n */\n createItem(current: IPepQueryItem, containerRef: ViewContainerRef, parentForm: FormGroup) {\n const factory = this._resolver.resolveComponentFactory(PepQueryBuilderItemComponent);\n const componentRef = containerRef.createComponent(factory);\n \n let counter = 1;\n Object.keys(parentForm.controls).forEach(item => { if (item.includes('item')) { counter++; } });\n const formKey = `item${counter}`;\n\n componentRef.instance.formKey = formKey;\n componentRef.instance.fields = this._smartFilterFields;\n componentRef.instance.variableFields = this._variableFields;\n const selectedField = this.getSelectedField(current);\n if (selectedField) {\n componentRef.instance.selected = selectedField;\n if (current) {\n componentRef.instance.filter = this._queryBuilderService.getFilter(current, selectedField.smart);\n }\n }\n componentRef.instance.parentForm = parentForm;\n componentRef.instance.filterChange.subscribe(() => {\n this.createOutputQuery();\n });\n componentRef.instance.remove.subscribe(() => {\n parentForm.removeControl(formKey);\n componentRef.destroy();\n this.createOutputQuery();\n if (this._cmpRefMap.has(formKey)) {\n this._cmpRefMap.delete(formKey);\n }\n });\n\n // Add this to remove all the components when fields changes.\n this._cmpRefMap.set(formKey, componentRef);\n }\n\n /**\n * get smart filter field\n * @param current filter legacy element\n * @returns smart filter field, if not found returns the first field\n */\n private getSelectedField(current: IPepQueryItem): IPepQueryBuilderFieldContainer | null {\n if (current) {\n const item = this._smartFilterFields.find(field => field.smart.id === current.ApiName);\n return item ? item : this._smartFilterFields?.length > 0 ? this._smartFilterFields[0] : null;\n } else {\n return this._smartFilterFields?.length > 0 ? this._smartFilterFields[0] : null;\n }\n }\n\n private convertSmartFilterComponentType(type: string) {\n switch (type) {\n case 'int':\n case 'currency':\n case 'real':\n case 'percentage':\n return 'number';\n case 'date-time':\n return 'date';\n default:\n return type;\n }\n }\n\n /**\n * creates a legacy output query \n */\n createOutputQuery() {\n if (this._form.valid) {\n const query = this._outputQueryService.generateQuery(this._form.value);\n this._outputQuery$.next(query);\n }\n }\n\n}","import {\n Component,\n EventEmitter,\n Input,\n Output,\n OnInit,\n OnDestroy,\n ViewChild\n} from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { PepQueryBuilderSectionComponent } from './query-builder-section/query-builder-section.component';\nimport { IPepQueryBuilderField, IPepQuerySection, IPepQueryItem } from './common/model/legacy';\nimport { PepQueryStructureService } from './common/services/query-structure.service';\nimport { PepTypeConvertorService } from './common/services/type-convertor.service';\nimport { PepOutputQueryService } from './common/services/output-query.service';\nimport { IPepQueryDepth } from './common/model/structure';\nimport { PepOperatorTypes } from './common/model/type';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'pep-query-builder',\n templateUrl: './query-builder.component.html',\n styleUrls: ['./query-builder.component.scss'],\n providers: [ PepQueryStructureService, PepTypeConvertorService, PepOutputQueryService]\n})\nexport class PepQueryBuilderComponent implements OnInit, OnDestroy {\n _query: IPepQuerySection | IPepQueryItem = null;\n @Input()\n set query(object: IPepQuerySection | IPepQueryItem) {\n this._query = object;\n this.loadQuery()\n }\n @Input()\n set fields(list: Array<IPepQueryBuilderField>) {\n this.queryStructureService.fields = list;\n this.hasFields = this.queryStructureService.hasFields;\n this.loadQuery();\n }\n @Input() \n set variableFields(list : Array<IPepQueryBuilderField>) {\n this.queryStructureService.variableFields = list;\n }\n @Input()\n set maxDepth(value: number) {\n this.queryStructureService.maxDepth = value;\n }\n\n @Output()\n queryChange: EventEmitter<IPepQuerySection | IPepQueryItem> = new EventEmitter<IPepQuerySection | IPepQueryItem>();\n @Output()\n formValidationChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @ViewChild('rootContainer', { static: true }) root: PepQueryBuilderSectionComponent;\n\n _formSubscription$: Subscription;\n _outputQuerySubscription$: Subscription;\n _lastFormValidStatus = true;\n depth: IPepQueryDepth;\n hasFields = false;\n\n constructor(\n private _fb: FormBuilder,\n public queryStructureService: PepQueryStructureService\n ) {\n this.setupForm();\n this.initDepth();\n this._formSubscription$ = this.queryStructureService.form.valueChanges.subscribe((val) => {\n if (this.queryStructureService.form.valid !== this._lastFormValidStatus) {\n this._lastFormValidStatus = this.queryStructureService.form.valid;\n this.formValidationChange.emit(this._lastFormValidStatus);\n }\n });\n this._outputQuerySubscription$ = this.queryStructureService.outputQuery$.subscribe((outputQuery) => {\n this.queryChange.emit(outputQuery);\n });\n }\n\n ngOnInit() {\n //\n }\n\n setupForm() {\n this.queryStructureService.form = this._fb.group({\n operator: this._fb.control(PepOperatorTypes.And)\n });\n }\n\n initDepth() {\n this.depth = {\n current: 0,\n max: this.queryStructureService.maxDepth\n }\n }\n\n /**\n * builds UI query structure as soon as both the fields and query loads\n */\n loadQuery() {\n if (\n this._query &&\n this.queryStructureService.hasFields &&\n this.root?.sectionContainer\n ) {\n this.queryStructureService.buildQueryStructure(this._query, this.root.sectionContainer);\n }\n }\n\n onCreateSection() {\n const section = this.queryStructureService.createSection(PepOperatorTypes.And, this.root.sectionContainer, this.queryStructureService.form, 1);\n this.queryStructureService.createItem(null, section.containerRef, section.parentForm);\n }\n\n onCreateItem() {\n this.queryStructureService.createItem(null, this.root.sectionContainer, this.queryStructureService.form);\n }\n\n onOperatorChange() {\n this.queryStructureService.createOutputQuery();\n }\n\n ngOnDestroy() {\n if (this._formSubscription$) {\n this._formSubscription$.unsubscribe();\n }\n if (this._outputQuerySubscription$) {\n this._outputQuerySubscription$.unsubscribe();\n }\n }\n\n}\n","<pep-query-builder-section #rootContainer [form]=\"queryStructureService.form\" [depth]=\"depth\" [hasFields]=\"hasFields\"\n (createSection)=\"onCreateSection()\" (createItem)=\"onCreateItem()\" (operatorChange)=\"onOperatorChange()\">\n</pep-query-builder-section>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormBuilder, ReactiveFormsModule } from '@angular/forms';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { PepSmartFiltersModule } from '@pepperi-addons/ngx-lib/smart-filters';\nimport { PepSelectModule } from '@pepperi-addons/ngx-lib/select';\nimport { PepButtonModule } from '@pepperi-addons/ngx-lib/button';\nimport { PepGroupButtonsModule } from '@pepperi-addons/ngx-lib/group-buttons';\n\nimport { PepQueryBuilderComponent } from './query-builder.component';\nimport { PepQueryBuilderSectionComponent } from './query-builder-section/query-builder-section.component';\nimport { PepQueryBuilderItemComponent } from './query-builder-item/query-builder-item.component';\n\nimport {\n PepIconModule,\n PepIconRegistry,\n pepIconSystemBin,\n} from '@pepperi-addons/ngx-lib/icon';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FlexLayoutModule,\n PepSelectModule,\n PepButtonModule,\n PepIconModule,\n PepGroupButtonsModule,\n PepSmartFiltersModule\n ],\n exports: [\n PepQueryBuilderComponent\n ],\n declarations: [\n PepQueryBuilderComponent,\n PepQueryBuilderSectionComponent,\n PepQueryBuilderItemComponent\n ],\n providers: [\n FormBuilder\n ]\n})\nexport class PepQueryBuilderModule { \n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([\n pepIconSystemBin,\n ]);\n }\n}\n","/*\n * Public API Surface of ngx-lib/query-builder\n */\nexport * from './query-builder.module';\nexport * from './query-builder.component';\nexport * from './query-builder.service';\nexport * from './common/model/legacy';\nexport * from './query-builder.service';\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PepTypeConvertorService","i2","i4","i2.PepTypeConvertorService","i3.PepQueryStructureService","i5","i7","i1.PepOutputQueryService","i2.PepQueryBuilderService","i2.PepQueryStructureService","i3.PepQueryBuilderSectionComponent","i1"],"mappings":"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"}
|