@pepperi-addons/ngx-lib 0.5.0-ng16.8 → 0.5.0-ng17.2
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/core/http/interceptors/index.d.ts +2 -2
- package/esm2022/address/address.component.mjs +6 -6
- package/esm2022/address/address.module.mjs +4 -4
- package/esm2022/attachment/attachment.component.mjs +5 -5
- package/esm2022/attachment/attachment.module.mjs +4 -4
- package/esm2022/bread-crumbs/bread-crumbs.component.mjs +6 -6
- package/esm2022/bread-crumbs/bread-crumbs.module.mjs +5 -5
- package/esm2022/button/button.component.mjs +6 -6
- package/esm2022/button/button.module.mjs +4 -4
- package/esm2022/carousel/carousel-item.directive.mjs +6 -6
- package/esm2022/carousel/carousel.component.mjs +6 -6
- package/esm2022/carousel/carousel.module.mjs +4 -4
- package/esm2022/checkbox/checkbox.component.mjs +5 -5
- package/esm2022/checkbox/checkbox.module.mjs +5 -5
- package/esm2022/chips/chips.component.mjs +6 -6
- package/esm2022/chips/chips.module.mjs +5 -5
- package/esm2022/chips/chips.service.mjs +4 -4
- package/esm2022/color/color-picker.component.mjs +6 -6
- package/esm2022/color/color.component.mjs +5 -5
- package/esm2022/color/color.module.mjs +5 -5
- package/esm2022/core/clipboard/clipboard.directive.mjs +3 -3
- package/esm2022/core/clipboard/clipboard.service.mjs +3 -3
- package/esm2022/core/common/directives/auto-width.directive.mjs +5 -5
- package/esm2022/core/common/directives/base-destroyer.directive.mjs +4 -4
- package/esm2022/core/common/directives/button-blur.directive.mjs +5 -5
- package/esm2022/core/common/directives/button-loader.directive.mjs +6 -6
- package/esm2022/core/common/directives/data-qa.directive.mjs +5 -5
- package/esm2022/core/common/directives/div-loader.directive.mjs +6 -6
- package/esm2022/core/common/directives/menu-blur.directive.mjs +5 -5
- package/esm2022/core/common/directives/prevent-multi-click.directive.mjs +3 -3
- package/esm2022/core/common/directives/print.directive.mjs +3 -3
- package/esm2022/core/common/pipes/common-pipes.mjs +33 -33
- package/esm2022/core/common/pipes/date-ago.pipe.mjs +4 -4
- package/esm2022/core/common/services/addon.service.mjs +5 -5
- package/esm2022/core/common/services/color.service.mjs +3 -3
- package/esm2022/core/common/services/cookie.service.mjs +5 -5
- package/esm2022/core/common/services/data-convertor.service.mjs +3 -3
- package/esm2022/core/common/services/file.service.mjs +4 -4
- package/esm2022/core/common/services/jwt-helper.service.mjs +3 -3
- package/esm2022/core/common/services/session.service.mjs +4 -4
- package/esm2022/core/common/services/translate.service.mjs +4 -4
- package/esm2022/core/common/services/utilities.service.mjs +5 -5
- package/esm2022/core/common/services/validator.service.mjs +5 -5
- package/esm2022/core/common/services/window-scrolling.service.mjs +4 -4
- package/esm2022/core/customization/customization.service.mjs +4 -4
- package/esm2022/core/http/interceptors/error.interceptor.mjs +3 -3
- package/esm2022/core/http/interceptors/loader.interceptor.mjs +4 -4
- package/esm2022/core/http/interceptors/profiler.interceptor.mjs +3 -3
- package/esm2022/core/http/services/http.service.mjs +4 -4
- package/esm2022/core/http/services/loader.service.mjs +4 -4
- package/esm2022/core/layout/layout.service.mjs +5 -5
- package/esm2022/core/layout/rtl.directive.mjs +8 -8
- package/esm2022/core/portal/attach.directive.mjs +5 -5
- package/esm2022/core/portal/portal.service.mjs +4 -4
- package/esm2022/core/portal/target.directive.mjs +5 -5
- package/esm2022/core/scroll-to/scroll-to.service.mjs +3 -3
- package/esm2022/date/date.component.mjs +6 -6
- package/esm2022/date/date.model.mjs +10 -10
- package/esm2022/date/date.module.mjs +5 -5
- package/esm2022/dialog/default-dialog.component.mjs +6 -6
- package/esm2022/dialog/dialog.component.mjs +5 -5
- package/esm2022/dialog/dialog.module.mjs +5 -5
- package/esm2022/dialog/dialog.service.mjs +4 -4
- package/esm2022/draggable-items/draggable-item/draggable-item.component.mjs +5 -5
- package/esm2022/draggable-items/draggable-items.component.mjs +5 -5
- package/esm2022/draggable-items/draggable-items.module.mjs +5 -5
- package/esm2022/field-title/field-title.component.mjs +4 -4
- package/esm2022/field-title/field-title.module.mjs +5 -5
- package/esm2022/files-uploader/files-uploader.component.mjs +6 -6
- package/esm2022/files-uploader/files-uploader.module.mjs +5 -5
- package/esm2022/form/field-generator.component.mjs +4 -4
- package/esm2022/form/form.component.mjs +5 -5
- package/esm2022/form/form.module.mjs +5 -5
- package/esm2022/form/indicators.component.mjs +4 -4
- package/esm2022/form/internal-button.component.mjs +5 -5
- package/esm2022/form/internal-carusel.component.mjs +5 -5
- package/esm2022/form/internal-carusel.service.mjs +4 -4
- package/esm2022/form/internal-field-generator.component.mjs +4 -4
- package/esm2022/form/internal-form.component.mjs +5 -5
- package/esm2022/form/internal-list.component.mjs +5 -5
- package/esm2022/form/internal-menu.component.mjs +4 -4
- package/esm2022/form/internal-page.component.mjs +5 -5
- package/esm2022/form/internal-page.service.mjs +4 -4
- package/esm2022/group-buttons/group-buttons.component.mjs +5 -5
- package/esm2022/group-buttons/group-buttons.module.mjs +5 -5
- package/esm2022/icon/icon-registry.service.mjs +3 -3
- package/esm2022/icon/icon.component.mjs +5 -5
- package/esm2022/icon/icon.module.mjs +4 -4
- package/esm2022/icon/icon.service.mjs +5 -5
- package/esm2022/image/image.component.mjs +5 -5
- package/esm2022/image/image.module.mjs +5 -5
- package/esm2022/image/image.service.mjs +4 -4
- package/esm2022/images-filmstrip/images-filmstrip.component.mjs +6 -6
- package/esm2022/images-filmstrip/images-filmstrip.module.mjs +5 -5
- package/esm2022/link/link.component.mjs +5 -5
- package/esm2022/link/link.module.mjs +5 -5
- package/esm2022/link/link.pipes.mjs +3 -3
- package/esm2022/list/list-actions.component.mjs +5 -5
- package/esm2022/list/list-carousel.component.mjs +6 -6
- package/esm2022/list/list-chooser.component.mjs +5 -5
- package/esm2022/list/list-pager.component.mjs +7 -7
- package/esm2022/list/list-sorting.component.mjs +5 -5
- package/esm2022/list/list-total.component.mjs +5 -5
- package/esm2022/list/list-views.component.mjs +5 -5
- package/esm2022/list/list.component.mjs +5 -5
- package/esm2022/list/list.module.mjs +5 -5
- package/esm2022/list/list.pipes.mjs +6 -6
- package/esm2022/list/virtual-scroller.mjs +10 -10
- package/esm2022/menu/menu-item.component.mjs +5 -5
- package/esm2022/menu/menu.component.mjs +7 -7
- package/esm2022/menu/menu.module.mjs +5 -5
- package/esm2022/ngx-lib.module.mjs +4 -4
- package/esm2022/page-layout/page-layout.component.mjs +5 -5
- package/esm2022/page-layout/page-layout.module.mjs +4 -4
- package/esm2022/profile-data-views-list/profile-data-view/profile-data-view.component.mjs +5 -5
- package/esm2022/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.mjs +5 -5
- package/esm2022/profile-data-views-list/profile-data-views-list.component.mjs +5 -5
- package/esm2022/profile-data-views-list/profile-data-views-list.module.mjs +5 -5
- package/esm2022/quantity-selector/quantity-selector-validation.directive.mjs +5 -5
- package/esm2022/quantity-selector/quantity-selector.component.mjs +7 -7
- package/esm2022/quantity-selector/quantity-selector.module.mjs +5 -5
- package/esm2022/quantity-selector/quantity-selector.pipes.mjs +3 -3
- package/esm2022/query-builder/common/services/output-query.service.mjs +4 -4
- package/esm2022/query-builder/common/services/query-structure.service.mjs +4 -4
- package/esm2022/query-builder/common/services/type-convertor.service.mjs +4 -4
- package/esm2022/query-builder/query-builder-item/query-builder-item.component.mjs +5 -5
- package/esm2022/query-builder/query-builder-section/query-builder-section.component.mjs +5 -5
- package/esm2022/query-builder/query-builder.component.mjs +5 -5
- package/esm2022/query-builder/query-builder.module.mjs +5 -5
- package/esm2022/query-builder/query-builder.service.mjs +4 -4
- package/esm2022/remote-loader/addon-block-loader.component.mjs +5 -5
- package/esm2022/remote-loader/addon-block-loader.service.mjs +4 -4
- package/esm2022/remote-loader/remote-loader-element.component.mjs +6 -6
- package/esm2022/remote-loader/remote-loader.component.mjs +7 -9
- package/esm2022/remote-loader/remote-loader.module.mjs +4 -4
- package/esm2022/remote-loader/remote-loader.service.mjs +4 -4
- package/esm2022/rich-html-textarea/rich-html-textarea.component.mjs +5 -5
- package/esm2022/rich-html-textarea/rich-html-textarea.module.mjs +5 -5
- package/esm2022/search/search.component.mjs +8 -8
- package/esm2022/search/search.module.mjs +5 -5
- package/esm2022/select/select.component.mjs +5 -5
- package/esm2022/select/select.module.mjs +5 -5
- package/esm2022/select-panel/select-panel.component.mjs +5 -5
- package/esm2022/select-panel/select-panel.module.mjs +4 -4
- package/esm2022/separator/separator.component.mjs +5 -5
- package/esm2022/separator/separator.module.mjs +4 -4
- package/esm2022/side-bar/side-bar.component.mjs +7 -7
- package/esm2022/side-bar/side-bar.module.mjs +5 -5
- package/esm2022/signature/signature-dialog.component.mjs +6 -6
- package/esm2022/signature/signature.component.mjs +5 -5
- package/esm2022/signature/signature.module.mjs +5 -5
- package/esm2022/size-detector/size-detector.component.mjs +5 -5
- package/esm2022/size-detector/size-detector.module.mjs +4 -4
- package/esm2022/skeleton-loader/skeleton-loader.component.mjs +6 -6
- package/esm2022/skeleton-loader/skeleton-loader.module.mjs +4 -4
- package/esm2022/slider/slider.component.mjs +6 -6
- package/esm2022/slider/slider.module.mjs +4 -4
- package/esm2022/smart-filters/boolean-filter/boolean-filter.component.mjs +4 -4
- package/esm2022/smart-filters/common/filter-actions.component.mjs +4 -4
- package/esm2022/smart-filters/common/model/base-filter-component.mjs +5 -5
- package/esm2022/smart-filters/date-filter/date-filter.component.mjs +4 -4
- package/esm2022/smart-filters/multi-select-filter/multi-select-filter.component.mjs +4 -4
- package/esm2022/smart-filters/number-filter/number-filter.component.mjs +4 -4
- package/esm2022/smart-filters/smart-filters.component.mjs +5 -5
- package/esm2022/smart-filters/smart-filters.module.mjs +5 -5
- package/esm2022/smart-filters/text-filter/text-filter.component.mjs +4 -4
- package/esm2022/snack-bar/default-snack-bar.component.mjs +6 -6
- package/esm2022/snack-bar/snack-bar.component.mjs +5 -5
- package/esm2022/snack-bar/snack-bar.module.mjs +5 -5
- package/esm2022/snack-bar/snack-bar.service.mjs +4 -4
- package/esm2022/textarea/textarea.component.mjs +5 -5
- package/esm2022/textarea/textarea.module.mjs +5 -5
- package/esm2022/textbox/textbox-validation.directive.mjs +5 -5
- package/esm2022/textbox/textbox.component.mjs +5 -5
- package/esm2022/textbox/textbox.module.mjs +5 -5
- package/esm2022/textbox-icon/textbox-icon.component.mjs +4 -4
- package/esm2022/textbox-icon/textbox-icon.module.mjs +5 -5
- package/esm2022/top-bar/top-bar.component.mjs +5 -5
- package/esm2022/top-bar/top-bar.module.mjs +5 -5
- package/fesm2022/pepperi-addons-ngx-lib-address.mjs +10 -10
- package/fesm2022/pepperi-addons-ngx-lib-address.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-attachment.mjs +9 -9
- package/fesm2022/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-bread-crumbs.mjs +11 -11
- package/fesm2022/pepperi-addons-ngx-lib-bread-crumbs.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-button.mjs +10 -10
- package/fesm2022/pepperi-addons-ngx-lib-button.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-carousel.mjs +15 -15
- package/fesm2022/pepperi-addons-ngx-lib-carousel.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-checkbox.mjs +10 -10
- package/fesm2022/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-chips.mjs +15 -15
- package/fesm2022/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-color.mjs +16 -16
- package/fesm2022/pepperi-addons-ngx-lib-color.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-date.mjs +21 -21
- package/fesm2022/pepperi-addons-ngx-lib-date.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-dialog.mjs +19 -19
- package/fesm2022/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-draggable-items.mjs +14 -14
- package/fesm2022/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-field-title.mjs +9 -9
- package/fesm2022/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-files-uploader.mjs +11 -11
- package/fesm2022/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-form.mjs +50 -50
- package/fesm2022/pepperi-addons-ngx-lib-form.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-group-buttons.mjs +10 -10
- package/fesm2022/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-icon.mjs +17 -17
- package/fesm2022/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-image.mjs +14 -14
- package/fesm2022/pepperi-addons-ngx-lib-image.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-images-filmstrip.mjs +11 -11
- package/fesm2022/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-link.mjs +13 -13
- package/fesm2022/pepperi-addons-ngx-lib-link.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-list.mjs +47 -47
- package/fesm2022/pepperi-addons-ngx-lib-list.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-menu.mjs +17 -17
- package/fesm2022/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-page-layout.mjs +9 -9
- package/fesm2022/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-profile-data-views-list.mjs +18 -18
- package/fesm2022/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-quantity-selector.mjs +20 -20
- package/fesm2022/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-query-builder.mjs +34 -34
- package/fesm2022/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-remote-loader.mjs +28 -30
- package/fesm2022/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-rich-html-textarea.mjs +10 -10
- package/fesm2022/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-search.mjs +14 -14
- package/fesm2022/pepperi-addons-ngx-lib-search.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-select-panel.mjs +9 -9
- package/fesm2022/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-select.mjs +10 -10
- package/fesm2022/pepperi-addons-ngx-lib-select.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-separator.mjs +9 -9
- package/fesm2022/pepperi-addons-ngx-lib-separator.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-side-bar.mjs +12 -12
- package/fesm2022/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-signature.mjs +15 -15
- package/fesm2022/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-size-detector.mjs +9 -9
- package/fesm2022/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-skeleton-loader.mjs +10 -10
- package/fesm2022/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-slider.mjs +10 -10
- package/fesm2022/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-smart-filters.mjs +32 -32
- package/fesm2022/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-snack-bar.mjs +19 -19
- package/fesm2022/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-textarea.mjs +10 -10
- package/fesm2022/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-textbox-icon.mjs +9 -9
- package/fesm2022/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-textbox.mjs +14 -14
- package/fesm2022/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-top-bar.mjs +10 -10
- package/fesm2022/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib.mjs +178 -178
- package/fesm2022/pepperi-addons-ngx-lib.mjs.map +1 -1
- package/package.json +77 -77
- package/slider/slider.component.theme.scss +7 -0
- package/src/core/style/base/base.scss +6 -0
- package/src/core/style/base/borderRadius.component.ts +2 -4
- package/src/core/style/base/breakpoints.component.ts +2 -4
- package/src/core/style/base/colors.component.ts +2 -4
- package/src/core/style/base/shadows.component.ts +2 -4
- package/src/core/style/base/spacing.component.ts +2 -4
- package/src/core/style/base/states.component.ts +2 -4
- package/src/core/style/base/typography.component.ts +2 -4
- package/src/core/style/base/zIndex.component.ts +2 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pepperi-addons-ngx-lib-quantity-selector.mjs","sources":["../../../projects/ngx-lib/quantity-selector/quantity-selector-validation.directive.ts","../../../projects/ngx-lib/quantity-selector/quantity-selector.component.ts","../../../projects/ngx-lib/quantity-selector/quantity-selector.component.html","../../../projects/ngx-lib/quantity-selector/quantity-selector.pipes.ts","../../../projects/ngx-lib/quantity-selector/quantity-selector.module.ts","../../../projects/ngx-lib/quantity-selector/public-api.ts","../../../projects/ngx-lib/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.ts"],"sourcesContent":["import { getLocaleNumberSymbol, NumberSymbol } from '@angular/common';\nimport {\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnInit,\n} from '@angular/core';\nimport { PepUtilitiesService, PepValidatorService } from '@pepperi-addons/ngx-lib';\n\n@Directive({\n selector: '[pepQsValidation]',\n})\nexport class PepQuantitySelectorValidationDirective implements OnInit {\n @Input() allowDecimal: boolean;\n\n previousValue = '';\n\n constructor(\n private hostElement: ElementRef,\n private utilitiesService: PepUtilitiesService,\n private validatorService: PepValidatorService\n ) {}\n\n ngOnInit() {\n //\n }\n\n @HostListener('change', ['$event'])\n onChange(e) {\n this.validateValue(this.hostElement.nativeElement.value);\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(e: KeyboardEvent) {\n const originalValue: string = e.target['value'];\n\n // save value before keydown event\n this.previousValue = originalValue;\n\n const isNumber = this.validatorService.isNumber(e, this.allowDecimal);\n if (isNumber) return;\n else e.preventDefault();\n }\n\n validateValue(value: string): void {\n const newValue = this.validatorService.validateNumber(\n value,\n this.allowDecimal\n );\n // this.hostElement.nativeElement['value'] = newValue ? newValue : 0;\n this.hostElement.nativeElement['value'] = newValue ? this.utilitiesService.changeDecimalSeparatorWhenItsComma(newValue) : 0;\n }\n}\n","import {\n Component,\n OnInit,\n OnChanges,\n OnDestroy,\n Input,\n Output,\n EventEmitter,\n ViewChild,\n ElementRef,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n Renderer2,\n AfterViewInit\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport {\n trigger,\n state,\n style,\n animate,\n transition,\n} from '@angular/animations';\nimport {\n PepLayoutType,\n PepStyleType,\n PepCustomizationService,\n PepHorizontalAlignment,\n DEFAULT_HORIZONTAL_ALIGNMENT,\n IPepFieldClickEvent,\n PepQuantitySelectorFieldType,\n PepQuantitySelectorField,\n PepUtilitiesService,\n BaseDestroyerDirective\n} from '@pepperi-addons/ngx-lib';\nimport { BehaviorSubject, fromEvent, Observable, Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'pep-quantity-selector',\n templateUrl: './quantity-selector.component.html',\n styleUrls: ['./quantity-selector.component.scss', './quantity-selector.component.theme.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n styles: [`\n `],\n animations: [\n trigger('showHide', [\n state(\n 'show',\n style({\n opacity: 1,\n transform: 'scale(1)',\n })\n ),\n state(\n 'hide',\n style({\n opacity: 0,\n transform: 'scale(0)',\n })\n ),\n transition('show => hide', animate('250ms ease-out')),\n transition('hide => show', animate('250ms ease-in')),\n ]),\n ],\n})\nexport class PepQuantitySelectorComponent extends BaseDestroyerDirective\n implements OnChanges, OnInit, AfterViewInit {\n public static ENTER_CHILDREN = '[EnterChildren]';\n public static ENTER_PACKAGE = '[EnterPackage]';\n public static PLUS = '[+]';\n public static MINUS = '[-]';\n\n @Input() key = '';\n\n private _value = '';\n @Input()\n set value(value: string) {\n if (!value) {\n value = '';\n }\n\n if (this._value === '' || this.isDifferentValue(value)) {\n this._value = value;\n }\n\n // Cut the .000 if exist for non allowDecimal.\n if (!this.allowDecimal) {\n this._value = this._value?.split('.')[0];\n }\n\n this.setFormattedValue(this.value);\n this.changeDisplayValue();\n }\n get value(): string {\n return this._value;\n }\n \n get valueAsCurrentCulture(): string {\n return this.utilitiesService.changeDecimalSeparatorWhenItsComma(this.value, true);\n // let res = this.value;\n\n // if (this.allowDecimal) {\n // res = this.utilitiesService.formatDecimal(this.value, this.minFractionDigits, this.maxFractionDigits, false);\n // }\n \n // return res;\n }\n\n protected formattedValue = '';\n // private _formattedValue = '';\n // @Input()\n // set formattedValue(value: string) {\n // // if (!value) {\n // // value = '';\n // // }\n\n // // if (this._calculateFormattedValue) {\n // // this._calculateFormattedValue = false;\n // // }\n\n // // this.setFormattedValue(value);\n // }\n // get formattedValue(): string {\n // return this._formattedValue;\n // }\n \n private _minFractionDigits = NaN;\n @Input()\n set minFractionDigits(value: number) {\n this._minFractionDigits = value;\n this.setFormattedValue(this.value);\n this.changeDisplayValue();\n }\n get minFractionDigits(): number {\n return this._minFractionDigits;\n }\n\n private _maxFractionDigits = NaN;\n @Input()\n set maxFractionDigits(value: number) {\n this._maxFractionDigits = value;\n this.setFormattedValue(this.value);\n this.changeDisplayValue();\n }\n get maxFractionDigits(): number {\n return this._maxFractionDigits;\n }\n\n @Input() label = '';\n @Input() type: PepQuantitySelectorFieldType = 'qs';\n @Input() mandatory = false;\n @Input() disabled = false;\n @Input() readonly = false;\n\n private _textColor = '';\n @Input()\n set textColor(value: string) {\n this._textColor = value;\n this.isCaution = value === '#FF0000';\n }\n get textColor(): string {\n return this._textColor;\n }\n\n @Input() xAlignment: PepHorizontalAlignment = DEFAULT_HORIZONTAL_ALIGNMENT;\n @Input() rowSpan = 2;\n \n private _allowDecimal = false;\n @Input() \n set allowDecimal(value: boolean) {\n this._allowDecimal = value;\n\n if (this.value) {\n this.setFormattedValue(this.value);\n this.changeDisplayValue();\n }\n }\n get allowDecimal(): boolean {\n return this._allowDecimal;\n }\n\n @Input() additionalValue = '';\n\n private _notificationInfo: any;\n @Input()\n set notificationInfo(value: any) {\n this._notificationInfo = value;\n\n const messages = value && value > 0 ? JSON.parse(value).Messages : '';\n if (messages && messages.length > 0) {\n // Replace the msg keys.\n for (const msg of messages) {\n if (msg.Key === 'Inventory_Limit_Msg') {\n msg.Key = 'MESSAGES.ERROR_INVENTORY_LIMIT';\n } else if (msg.Key === 'Case_Quantity_Limit_Msg') {\n msg.Key = 'MESSAGES.ERROR_CASE_QUANTITY_LIMIT';\n } else if (msg.Key === 'Min_Quantity_Limit_Msg') {\n msg.Key = 'MESSAGES.ERROR_MIN_QUANTITY_LIMIT';\n } else if (msg.Key === 'Max_Quantity_Limit_Msg') {\n msg.Key = 'MESSAGES.ERROR_MAX_QUANTITY_LIMIT';\n }\n }\n\n this.messages = messages;\n\n const fieldControl = this.form.controls[this.key];\n fieldControl.setErrors({\n serverError: 'Error',\n });\n\n this.sameElementInTheWantedRow = null;\n setTimeout(() => {\n if (this.QSInput && this.QSInput.nativeElement) {\n this.QSInput.nativeElement.focus();\n }\n }, 150);\n }\n }\n get notificationInfo(): any {\n return this._notificationInfo;\n }\n\n private _visible = true;\n @Input()\n set visible(visible: boolean) {\n this._visible = visible;\n if (visible) {\n this.renderer.removeClass(\n this.element.nativeElement,\n 'hidden-element'\n );\n } else {\n this.renderer.addClass(\n this.element.nativeElement,\n 'hidden-element'\n );\n }\n }\n get visible(): boolean {\n return this._visible;\n }\n\n controlType = 'qs';\n\n @Input() form: FormGroup = null;\n @Input() showTitle = true;\n @Input() renderTitle = true;\n @Input() layoutType: PepLayoutType = 'form';\n @Input() isActive = false;\n\n // Get default style from theme.\n private _styleType: PepStyleType = document.documentElement.style.getPropertyValue(\n PepCustomizationService.STYLE_QS_KEY\n ) as PepStyleType; //'strong';\n @Input()\n set styleType(value: PepStyleType) {\n if (value) {\n this._styleType = value;\n } else {\n this._styleType = document.documentElement.style.getPropertyValue(\n PepCustomizationService.STYLE_QS_KEY\n ) as PepStyleType; //'strong';\n }\n }\n get styleType(): PepStyleType {\n return this._styleType;\n }\n\n @Output()\n valueChange: EventEmitter<string> = new EventEmitter<string>();\n\n @Output()\n elementClick: EventEmitter<IPepFieldClickEvent> = new EventEmitter<IPepFieldClickEvent>();\n\n @Output()\n validationChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @ViewChild('QSCont') QSCont: ElementRef;\n @ViewChild('QSInput') QSInput: ElementRef;\n\n private _calculateFormattedValue = true;\n get calculateFormattedValue(): boolean {\n return this._calculateFormattedValue;\n }\n\n private qsWidthSubject: BehaviorSubject<number>;\n lastQsContClientWidth = 0;\n //showQsBtn = true;\n\n standAlone = false;\n private _isInFocus = false;\n @Input()\n set isInFocus(isInFocus: boolean) {\n this._isInFocus = isInFocus;\n this.changeDisplayValue();\n }\n get isInFocus(): boolean {\n return this._isInFocus;\n }\n isMatrixFocus = false;\n\n isCaution = false;\n messages: Array<any> = null;\n\n sameElementInTheWantedRow = null;\n\n isEmptyKey = false;\n\n private _displayValueSubject: BehaviorSubject<string> = new BehaviorSubject<string>('');\n get displayValue$(): Observable<string> {\n return this._displayValueSubject.asObservable().pipe(distinctUntilChanged());\n }\n\n constructor(\n private cd: ChangeDetectorRef,\n private customizationService: PepCustomizationService,\n private renderer: Renderer2,\n private element: ElementRef,\n private translate: TranslateService,\n private utilitiesService: PepUtilitiesService\n ) {\n super();\n // this.qsWidthSubject = new BehaviorSubject(0);\n }\n\n setForm() {\n const pepField = new PepQuantitySelectorField({\n key: this.key,\n value: this.valueAsCurrentCulture,\n mandatory: this.mandatory,\n readonly: this.readonly,\n disabled: this.disabled,\n });\n this.form = this.customizationService.getDefaultFromGroup(pepField);\n }\n\n private setFormattedValue(value: string) {\n if (this._calculateFormattedValue) {\n if (this.allowDecimal) {\n this.formattedValue = this.utilitiesService.formatDecimal(value, this.minFractionDigits, this.maxFractionDigits);\n } else {\n this.formattedValue = this.utilitiesService.formatNumber(value);\n }\n } else {\n this.formattedValue = value;\n }\n \n this.updateFormFieldValue();\n }\n\n private notifyDisplayValueChange(value: string) {\n this._displayValueSubject.next(value);\n }\n\n private changeDisplayValue(): void {\n let res = '';\n\n if (this.allowDecimal) {\n res = this.isInFocus ? this.valueAsCurrentCulture : this.formattedValue;\n } else {\n res = this.isInFocus ? this.value : this.formattedValue;\n }\n\n this.notifyDisplayValueChange(res);\n // console.log('changeDisplayValue' + res);\n }\n\n private updateFormFieldValue(firstLoad = false) {\n // Set the formatted value only for the first load cause it's not formatted if we set the value (I don't know why)\n // Else we set the value - this is important to set the value only cause setting the formatted value will cause bug when the number is with thousand separator\n this.customizationService.updateFormFieldValue(\n this.form,\n this.key,\n firstLoad ? this.formattedValue : this.value,\n );\n\n // Raise this only for stand alone fields, If false then the usage for this field is inside a form. \n // Then the form will take care of raising the (onFormValidationChanged) event\n if (this.standAlone) {\n const isValid = (this.disabled || this.readonly) ? true : this.form.valid; \n this.validationChange.emit(isValid);\n }\n }\n\n // get displayValue(): string {\n // const res = this.isInFocus\n // ? this.utilitiesService.formatDecimal(this.value, this.minFractionDigits, this.maxFractionDigits)\n // : this.formattedValue;\n // return res;\n // }\n\n ngOnInit(): void {\n if (this.form === null) {\n if (this.key === '') {\n this.isEmptyKey = true;\n }\n\n this.standAlone = true;\n this.setForm();\n\n this.renderer.addClass(\n this.element.nativeElement,\n PepCustomizationService.STAND_ALONE_FIELD_CLASS_NAME\n );\n\n if (!this.renderTitle) {\n this.renderer.addClass(\n this.element.nativeElement,\n PepCustomizationService.STAND_ALONE_FIELD_NO_SPACING_CLASS_NAME\n );\n }\n }\n\n // this.qsWidthSubject\n // .asObservable()\n // .pipe(this.getDestroyer(), distinctUntilChanged())\n // .subscribe((qsWidth: number) => {\n // this.setupQsButtons(qsWidth);\n // });\n\n this.updateFormFieldValue(true);\n }\n\n ngAfterViewInit() {\n // setTimeout(() => {\n // if (this.QSCont &&\n // this.QSCont.nativeElement &&\n // this.QSCont.nativeElement.clientWidth > 0\n // ) {\n // this.showQsBtn = this.QSCont.nativeElement.clientWidth > 120;\n // }\n\n // if (!this.cd['destroyed']) {\n // this.cd.detectChanges();\n // }\n // }, 0);\n }\n\n ngAfterViewChecked(): void {\n // this.setQsView();\n }\n\n ngOnChanges(changes: any): void {\n // Bug fix for addons when the key is '' in the ngOnInit for some reson\n if (this.isEmptyKey && this.key !== '') {\n this.setForm();\n }\n\n setTimeout(() => {\n this.focusToTheSameElementInTheWantedRow();\n }, 150);\n }\n\n get getAdditionalValue(): string {\n return this.additionalValue.length > 0 ? 'show' : 'hide';\n }\n\n getParentByClass(el, parentSelector /* optional */): any {\n // If no parentSelector defined will bubble up all the way to *document*\n if (parentSelector === undefined) {\n parentSelector = document;\n }\n\n let p = el.parentNode;\n\n while (\n p &&\n !p?.classList?.contains(parentSelector) &&\n parentSelector !== document\n ) {\n const o = p;\n p = o?.parentNode || null;\n }\n\n return p?.className.indexOf(parentSelector) > -1 ? p : null;\n }\n\n getSameElementInTheWantedRowByClassName(event: any, isNext = true): any {\n const eventTarget = event.target || event.srcElement;\n let sameElementInTheWantedRowByClassName;\n\n let parentSelector;\n if (this.layoutType === 'table') {\n parentSelector = this.getParentByClass(eventTarget, 'table-row');\n } else if (this.layoutType === 'card') {\n parentSelector = this.getParentByClass(eventTarget, 'card-view');\n if (!parentSelector) {\n parentSelector = this.getParentByClass(\n eventTarget,\n 'line-view'\n );\n }\n }\n\n if (\n parentSelector.nextElementSibling === null &&\n parentSelector.previousElementSibling === null\n ) {\n sameElementInTheWantedRowByClassName = null;\n } else {\n if (isNext) {\n if (parentSelector.nextElementSibling === null) {\n sameElementInTheWantedRowByClassName = parentSelector.parentElement.querySelectorAll(\n '[name=' + this.key + ']'\n )[0];\n } else {\n sameElementInTheWantedRowByClassName = parentSelector.nextElementSibling.querySelectorAll(\n '[name=' + this.key + ']'\n )[0];\n }\n } else {\n if (parentSelector.previousElementSibling === null) {\n const elementsList = parentSelector.parentElement.querySelectorAll(\n '[name=' + this.key + ']'\n );\n sameElementInTheWantedRowByClassName =\n elementsList[elementsList.length - 1];\n } else {\n sameElementInTheWantedRowByClassName = parentSelector.previousElementSibling.querySelectorAll(\n '[name=' + this.key + ']'\n )[0];\n }\n }\n }\n\n return sameElementInTheWantedRowByClassName;\n }\n\n setSameElementInTheWantedRow(event: any, isNext = true): void {\n // Navigate to the QS in the next row.\n if (this.layoutType === 'card' || this.layoutType === 'table') {\n this.sameElementInTheWantedRow = this.getSameElementInTheWantedRowByClassName(\n event,\n isNext\n );\n }\n\n this.QSInput.nativeElement.blur();\n }\n\n focusToTheSameElementInTheWantedRow(): void {\n if (this.sameElementInTheWantedRow) {\n const elem = this.sameElementInTheWantedRow;\n // If this is regular item (qs and not button) .\n if (elem instanceof HTMLInputElement && elem.type === 'text') {\n elem.click();\n elem.select();\n } else {\n const parentElem = elem.parentNode;\n parentElem.click();\n elem.focus();\n }\n this.sameElementInTheWantedRow = null;\n }\n }\n\n cleanError(): void {\n const fieldControl = this.form.controls[this.key];\n\n // Clean the error message\n if (this.messages && this.messages.length > 0) {\n this.messages = this.notificationInfo = null;\n fieldControl.setErrors(null);\n }\n }\n\n onMatrixMouseEnter(event: any): void {\n this.isMatrixFocus = true;\n }\n\n onMatrixMouseleave(event: any): void {\n this.isMatrixFocus = false;\n }\n\n onMatrixClick(event: any): void {\n this.isInFocus = true;\n\n if (this.QSInput && this.QSInput.nativeElement) {\n this.QSInput.nativeElement.focus();\n }\n }\n\n onMatrixBlur(event: any): void {\n if (\n !event.relatedTarget ||\n event.relatedTarget.className.indexOf('qs') < 0\n ) {\n this.isMatrixFocus = false;\n }\n\n this.onBlur(event);\n }\n\n onFocus(event: any): void {\n this.isInFocus = true;\n\n // setTimeout(() => {\n // if (this.isInFocus) {\n // const eventTarget = event.target || event.srcElement;\n // if (eventTarget) {\n // eventTarget.select();\n // }\n // }\n // }, 0);\n }\n\n isDifferentValue(value: string): boolean {\n const res = this.utilitiesService.isEqualNumber(this.valueAsCurrentCulture, value) === false;\n return res;\n }\n\n onBlur(event: any): void {\n this.isInFocus = false;\n this.cleanError();\n const value = event.target ? event.target.value : event;\n\n // For decimal we need to replace the decimal separator back if it's comma (',').\n const correctValue = this.allowDecimal ? this.utilitiesService.changeDecimalSeparatorWhenItsComma(value) : value;\n \n if (correctValue !== this.valueAsCurrentCulture && this.isDifferentValue(value)) {\n this.value = correctValue;\n this.valueChange.emit(this.value);\n }\n \n this.focusToTheSameElementInTheWantedRow();\n }\n\n onKeydown(event): any {\n const keyboardEvent = event as KeyboardEvent;\n\n if (keyboardEvent.key === 'Enter') {\n this.setSameElementInTheWantedRow(\n keyboardEvent,\n !keyboardEvent.shiftKey\n );\n return true;\n }\n }\n\n increment(event): void {\n if (this.standAlone) {\n this.value = this.utilitiesService.incrementNumber(this.value);\n }\n\n this.elementClick.emit({\n key: this.key,\n value: PepQuantitySelectorComponent.PLUS,\n controlType: this.controlType,\n eventWhich: event.which,\n });\n event.stopPropagation();\n }\n\n decrement(event): void {\n if (this.standAlone) {\n this.value = this.utilitiesService.decrementNumber(this.value);\n }\n\n this.elementClick.emit({\n key: this.key,\n value: PepQuantitySelectorComponent.MINUS,\n controlType: this.controlType,\n eventWhich: event.which,\n });\n event.stopPropagation();\n }\n\n enterChildren(event): void {\n this.elementClick.emit({\n key: this.key,\n value: PepQuantitySelectorComponent.ENTER_CHILDREN,\n controlType: this.controlType,\n eventWhich: event.which,\n });\n }\n\n enterPackage(event): void {\n this.elementClick.emit({\n key: this.key,\n value: PepQuantitySelectorComponent.ENTER_PACKAGE,\n controlType: this.controlType,\n eventWhich: event.which,\n otherData: this.notificationInfo,\n });\n }\n\n // setupQsButtons(qsWidth: number) {\n // this.showQsBtn = qsWidth > 120;\n\n // if (!this.cd['destroyed']) {\n // this.cd.detectChanges();\n // }\n // }\n\n // setQsView(): void {\n // if (\n // this.QSCont &&\n // this.QSCont.nativeElement &&\n // this.QSCont.nativeElement.clientWidth > 0\n // ) {\n // setTimeout(() => {\n // this.qsWidthSubject.next(this.QSCont.nativeElement.clientWidth);\n // }, 0);\n // }\n // }\n}\n","<ng-container [formGroup]=\"form\">\n <ng-template #pepTemplate>\n <div #QSCont class=\"pep-quantity-selector-container {{ styleType }}\" [ngClass]=\"{\n 'hide-qs-actions' : layoutType === 'card' && rowSpan <= 1,\n 'pep-table-quantity-selector': layoutType === 'table',\n 'one-row': rowSpan === 1,\n caution: isCaution,\n 'matrix-qs': type === 'qsForMatrix',\n 'zero-quantity': formattedValue === '0'\n }\">\n <pep-field-title *ngIf=\"renderTitle && layoutType !== 'table' && layoutType !== 'card'\" [label]=\"label\"\n [mandatory]=\"mandatory\" [disabled]=\"disabled\" [showTitle]=\"showTitle\" [xAlignment]=\"xAlignment\">\n </pep-field-title>\n\n <ng-container *ngIf=\"type == 'qs'\">\n <ng-container *ngIf=\"readonly; then readonlyBlock; else editableQSBlock\"></ng-container>\n <ng-template #readonlyBlock>\n <button [id]=\"key\" mat-button class=\"pep-button {{ styleType }} disable \"\n [ngClass]=\"{caution: isCaution, md: rowSpan !== 1, xs: rowSpan === 1}\"\n title=\"{{ formattedValue }}\" disabled=\"true\">\n <span class=\"ellipsis\">\n {{ formattedValue }}\n </span>\n </button>\n </ng-template>\n <ng-template #editableQSBlock>\n <mat-form-field appearance=\"outline\" class=\"qs-container\">\n <input pepQsValidation [allowDecimal]=\"allowDecimal\" type=\"decimalNumber\" inputmode=\"decimal\"\n matInput #QSInput name=\"{{ key }}\" class=\"body-lg ellipsis\" title=\"{{ formattedValue }}\"\n autocomplete=\"off\" [id]=\"key\" [formControlName]=\"key\" [value]=\"displayValue$ | async\"\n (click)=\"$event.target.setSelectionRange(0, 999)\" (keydown)=\"onKeydown($event)\"\n (blur)=\"onBlur($event)\" (focus)=\"onFocus($event)\" />\n <button mat-button matPrefix (click)=\"decrement($event)\"\n class=\"pep-button icon-button sm weak qs-action\" [disabled]=\"disabled\" [ngClass]=\"{ disable: disabled, caution: isCaution && styleType !== 'strong',\n 'keep-background-on-focus': styleType === 'strong'}\">\n <mat-icon>\n <pep-icon name=\"number_minus\">\n </pep-icon>\n </mat-icon>\n </button>\n <button mat-button matSuffix (click)=\"increment($event)\"\n class=\"pep-button icon-button sm weak qs-action\" [disabled]=\"disabled\" [ngClass]=\"{ disable: disabled, caution: isCaution && styleType !== 'strong',\n 'keep-background-on-focus': styleType === 'strong'}\">\n <mat-icon>\n <pep-icon name=\"number_plus\">\n </pep-icon>\n </mat-icon>\n </button>\n <mat-error *ngIf=\"messages?.length > 0\">\n <span class=\"qs-error body-xs\" *ngFor=\"let msg of messages\"> {{ msg.Key | translate }} :\n {{ msg.Value }} </span>\n </mat-error>\n </mat-form-field>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"type == 'qsForMatrix'\">\n <ng-container *ngIf=\"readonly; then readonlyBlock; else editableQSBlock\"></ng-container>\n <ng-template #readonlyBlock>\n <button [id]=\"key\" mat-button class=\"pep-button {{ styleType }} disable\" disabled=\"true\"\n [ngClass]=\"{caution: isCaution, md: rowSpan !== 1, xs: rowSpan === 1}\">\n X\n </button>\n </ng-template>\n <ng-template #editableQSBlock>\n <span *ngIf=\" xAlignment=='right'\" class=\" body-sm additional-value prefix\"\n matBadge=\"{{ additionalValue }}\" matBadgePosition=\"before\"\n matBadgeSize=\"rowSpan === 1 ? small : medium\" [@showHide]=\"getAdditionalValue\"></span>\n\n <mat-form-field appearance=\"outline\" (mouseleave)=\"!isInFocus ? onMatrixMouseleave($event) : null\">\n <input pepQsValidation [allowDecimal]=\"allowDecimal\" type=\"decimalNumber\" inputmode=\"decimal\"\n matInput #QSInput name=\"{{ key }}\" title=\"{{ formattedValue }}\" class=\"body-sm ellipsis\"\n autocomplete=\"off\" [id]=\"key\" [formControlName]=\"key\" [value]=\"displayValue$ | async\"\n (click)=\"onMatrixClick($event); $event.target.setSelectionRange(0, 999)\"\n (keydown)=\"onKeydown($event)\" (blur)=\"onMatrixBlur($event)\"\n (focus)=\"onMatrixMouseEnter($event); onFocus($event)\"\n (mouseenter)=\"onMatrixMouseEnter($event)\" />\n\n <mat-error *ngIf=\"messages?.length > 0\">\n <span class=\"qs-error body-xs\" *ngFor=\"let msg of messages\"> {{ msg.Key | translate }} :\n {{ msg.Value }} </span>\n </mat-error>\n </mat-form-field>\n\n <span *ngIf=\"xAlignment != 'right'\" class=\"body-sm additional-value suffix\"\n matBadge=\"{{ additionalValue }}\" matBadgePosition=\"before\"\n matBadgeSize=\"rowSpan === 1 ? small : medium\" [@showHide]=\"getAdditionalValue\"></span>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"type == 'button'\">\n <ng-container *ngIf=\"(value | pepToNumber) == 0; then regularBlock; else withBadgeBlock\">\n </ng-container>\n <ng-template #regularBlock>\n <button mat-button [disabled]=\"disabled\" class=\"pep-button {{ styleType }} \" [id]=\"key\"\n name=\"{{ key }}\"\n [ngClass]=\"{ disable: disabled, caution: isCaution, md: rowSpan !== 1, xs: rowSpan === 1}\"\n [title]=\"'QS.ORDER' | translate\" (click)=\"enterChildren($event)\">\n <span class=\"ellipsis\">\n {{ 'QS.ORDER' | translate }}\n </span>\n </button>\n </ng-template>\n <ng-template #withBadgeBlock>\n <button mat-button matBadge=\"{{ formattedValue }}\"\n matBadgePosition=\"{{xAlignment == 'right' ? 'before' : 'after'}}\"\n [matBadgeSize]=\"layoutType === 'card' && rowSpan === 1 ? 'small' : 'medium'\"\n class=\"pep-button {{ styleType }} \" [id]=\"key\" name=\"{{ key }}\" [ngClass]=\"{ disable: disabled, caution: isCaution, md: rowSpan !== 1, xs: rowSpan === 1,\n 'right-alignment': xAlignment == 'right', 'left-alignment': xAlignment != 'right'}\"\n [title]=\"'QS.ORDER' | translate\" (click)=\"enterChildren($event)\" [disabled]=\"disabled\">\n <span class=\"ellipsis\">\n {{ 'QS.ORDER' | translate }}\n </span>\n </button>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"type == 'packageButton'\">\n <button mat-button class=\"pep-button {{ styleType }} \" [id]=\"key\" name=\"{{ key }}\"\n [ngClass]=\"{ disable: disabled, caution: isCaution, md: rowSpan !== 1, xs: rowSpan === 1}\"\n [title]=\"'QS.ORDER' | translate\" (click)=\"enterPackage($event)\" [disabled]=\"disabled\">\n <span class=\"ellipsis\">\n {{ 'QS.ORDER' | translate }} ({{ formattedValue }})\n </span>\n </button>\n </ng-container>\n </div>\n </ng-template>\n\n <ng-container *ngIf=\"layoutType === 'form'\">\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'card'\">\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'table'\">\n <ng-container *ngIf=\"readonly || disabled; then readonlyBlock; else editableBlock\"></ng-container>\n <ng-template #readonlyBlock>\n <div class=\"pep-quantity-selector-container pep-table-quantity-selector disable {{ styleType }}\" [ngClass]=\"{\n 'one-row': rowSpan === 1,\n caution: isCaution,\n 'zero-quantity': formattedValue === '0'\n }\">\n <span class=\"mat-form-field\">\n <span class=\"mat-input-element\">{{formattedValue}}</span>\n </span>\n </div>\n </ng-template>\n <ng-template #editableBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\n </ng-template>\n </ng-container>\n</ng-container>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'pepQuantitySelectorNumber' })\nexport class PepQuantitySelectorNumberPipe implements PipeTransform {\n transform(value: string, allowDecimal: boolean): string {\n const tmpValue = parseFloat(value);\n\n if (tmpValue === 0) {\n return '0';\n } else if (allowDecimal) {\n return tmpValue.toString();\n } else {\n return parseInt(value).toString();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport {\n PepIconModule,\n PepIconRegistry,\n pepIconNumberMinus,\n pepIconNumberPlus,\n} from '@pepperi-addons/ngx-lib/icon';\nimport { PepFieldTitleModule } from '@pepperi-addons/ngx-lib/field-title';\n\nimport { PepQuantitySelectorComponent } from './quantity-selector.component';\nimport { PepQuantitySelectorValidationDirective } from './quantity-selector-validation.directive';\nimport { PepQuantitySelectorNumberPipe } from './quantity-selector.pipes';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n // Material modules\n MatCommonModule,\n MatFormFieldModule,\n MatInputModule,\n MatButtonModule,\n MatBadgeModule,\n MatIconModule,\n // Translation module\n TranslateModule,\n // ngx-lib modules\n PepNgxLibModule,\n PepIconModule,\n PepFieldTitleModule,\n ],\n exports: [PepQuantitySelectorComponent],\n declarations: [\n PepQuantitySelectorComponent,\n PepQuantitySelectorNumberPipe,\n PepQuantitySelectorValidationDirective,\n ],\n})\nexport class PepQuantitySelectorModule {\n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([\n pepIconNumberMinus,\n pepIconNumberPlus,\n ]);\n }\n}\n","/*\n * Public API Surface of ngx-lib/quantity-selector\n */\nexport * from './quantity-selector.module';\nexport * from './quantity-selector.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i10","i12.PepQuantitySelectorValidationDirective","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pepperi-addons-ngx-lib-quantity-selector.mjs","sources":["../../../projects/ngx-lib/quantity-selector/quantity-selector-validation.directive.ts","../../../projects/ngx-lib/quantity-selector/quantity-selector.component.ts","../../../projects/ngx-lib/quantity-selector/quantity-selector.component.html","../../../projects/ngx-lib/quantity-selector/quantity-selector.pipes.ts","../../../projects/ngx-lib/quantity-selector/quantity-selector.module.ts","../../../projects/ngx-lib/quantity-selector/public-api.ts","../../../projects/ngx-lib/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.ts"],"sourcesContent":["import { getLocaleNumberSymbol, NumberSymbol } from '@angular/common';\nimport {\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnInit,\n} from '@angular/core';\nimport { PepUtilitiesService, PepValidatorService } from '@pepperi-addons/ngx-lib';\n\n@Directive({\n selector: '[pepQsValidation]',\n})\nexport class PepQuantitySelectorValidationDirective implements OnInit {\n @Input() allowDecimal: boolean;\n\n previousValue = '';\n\n constructor(\n private hostElement: ElementRef,\n private utilitiesService: PepUtilitiesService,\n private validatorService: PepValidatorService\n ) {}\n\n ngOnInit() {\n //\n }\n\n @HostListener('change', ['$event'])\n onChange(e) {\n this.validateValue(this.hostElement.nativeElement.value);\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(e: KeyboardEvent) {\n const originalValue: string = e.target['value'];\n\n // save value before keydown event\n this.previousValue = originalValue;\n\n const isNumber = this.validatorService.isNumber(e, this.allowDecimal);\n if (isNumber) return;\n else e.preventDefault();\n }\n\n validateValue(value: string): void {\n const newValue = this.validatorService.validateNumber(\n value,\n this.allowDecimal\n );\n // this.hostElement.nativeElement['value'] = newValue ? newValue : 0;\n this.hostElement.nativeElement['value'] = newValue ? this.utilitiesService.changeDecimalSeparatorWhenItsComma(newValue) : 0;\n }\n}\n","import {\n Component,\n OnInit,\n OnChanges,\n OnDestroy,\n Input,\n Output,\n EventEmitter,\n ViewChild,\n ElementRef,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n Renderer2,\n AfterViewInit\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport {\n trigger,\n state,\n style,\n animate,\n transition,\n} from '@angular/animations';\nimport {\n PepLayoutType,\n PepStyleType,\n PepCustomizationService,\n PepHorizontalAlignment,\n DEFAULT_HORIZONTAL_ALIGNMENT,\n IPepFieldClickEvent,\n PepQuantitySelectorFieldType,\n PepQuantitySelectorField,\n PepUtilitiesService,\n BaseDestroyerDirective\n} from '@pepperi-addons/ngx-lib';\nimport { BehaviorSubject, fromEvent, Observable, Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({selector: 'pep-quantity-selector',\n templateUrl: './quantity-selector.component.html',\n styleUrls: ['./quantity-selector.component.scss', './quantity-selector.component.theme.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n styles: [`\n `],\n animations: [\n trigger('showHide', [\n state(\n 'show',\n style({\n opacity: 1,\n transform: 'scale(1)'})\n ),\n state(\n 'hide',\n style({\n opacity: 0,\n transform: 'scale(0)',\n })\n ),\n transition('show => hide', animate('250ms ease-out')),\n transition('hide => show', animate('250ms ease-in')),\n ]),\n ],\n})\nexport class PepQuantitySelectorComponent extends BaseDestroyerDirective\n implements OnChanges, OnInit, AfterViewInit {\n public static ENTER_CHILDREN = '[EnterChildren]';\n public static ENTER_PACKAGE = '[EnterPackage]';\n public static PLUS = '[+]';\n public static MINUS = '[-]';\n\n @Input() key = '';\n\n private _value = '';\n @Input()\n set value(value: string) {\n if (!value) {\n value = '';\n }\n\n if (this._value === '' || this.isDifferentValue(value)) {\n this._value = value;\n }\n\n // Cut the .000 if exist for non allowDecimal.\n if (!this.allowDecimal) {\n this._value = this._value?.split('.')[0];\n }\n\n this.setFormattedValue(this.value);\n this.changeDisplayValue();\n }\n get value(): string {\n return this._value;\n }\n \n get valueAsCurrentCulture(): string {\n return this.utilitiesService.changeDecimalSeparatorWhenItsComma(this.value, true);\n // let res = this.value;\n\n // if (this.allowDecimal) {\n // res = this.utilitiesService.formatDecimal(this.value, this.minFractionDigits, this.maxFractionDigits, false);\n // }\n \n // return res;\n }\n\n protected formattedValue = '';\n // private _formattedValue = '';\n // @Input()\n // set formattedValue(value: string) {\n // // if (!value) {\n // // value = '';\n // // }\n\n // // if (this._calculateFormattedValue) {\n // // this._calculateFormattedValue = false;\n // // }\n\n // // this.setFormattedValue(value);\n // }\n // get formattedValue(): string {\n // return this._formattedValue;\n // }\n \n private _minFractionDigits = NaN;\n @Input()\n set minFractionDigits(value: number) {\n this._minFractionDigits = value;\n this.setFormattedValue(this.value);\n this.changeDisplayValue();\n }\n get minFractionDigits(): number {\n return this._minFractionDigits;\n }\n\n private _maxFractionDigits = NaN;\n @Input()\n set maxFractionDigits(value: number) {\n this._maxFractionDigits = value;\n this.setFormattedValue(this.value);\n this.changeDisplayValue();\n }\n get maxFractionDigits(): number {\n return this._maxFractionDigits;\n }\n\n @Input() label = '';\n @Input() type: PepQuantitySelectorFieldType = 'qs';\n @Input() mandatory = false;\n @Input() disabled = false;\n @Input() readonly = false;\n\n private _textColor = '';\n @Input()\n set textColor(value: string) {\n this._textColor = value;\n this.isCaution = value === '#FF0000';\n }\n get textColor(): string {\n return this._textColor;\n }\n\n @Input() xAlignment: PepHorizontalAlignment = DEFAULT_HORIZONTAL_ALIGNMENT;\n @Input() rowSpan = 2;\n \n private _allowDecimal = false;\n @Input() \n set allowDecimal(value: boolean) {\n this._allowDecimal = value;\n\n if (this.value) {\n this.setFormattedValue(this.value);\n this.changeDisplayValue();\n }\n }\n get allowDecimal(): boolean {\n return this._allowDecimal;\n }\n\n @Input() additionalValue = '';\n\n private _notificationInfo: any;\n @Input()\n set notificationInfo(value: any) {\n this._notificationInfo = value;\n\n const messages = value && value > 0 ? JSON.parse(value).Messages : '';\n if (messages && messages.length > 0) {\n // Replace the msg keys.\n for (const msg of messages) {\n if (msg.Key === 'Inventory_Limit_Msg') {\n msg.Key = 'MESSAGES.ERROR_INVENTORY_LIMIT';\n } else if (msg.Key === 'Case_Quantity_Limit_Msg') {\n msg.Key = 'MESSAGES.ERROR_CASE_QUANTITY_LIMIT';\n } else if (msg.Key === 'Min_Quantity_Limit_Msg') {\n msg.Key = 'MESSAGES.ERROR_MIN_QUANTITY_LIMIT';\n } else if (msg.Key === 'Max_Quantity_Limit_Msg') {\n msg.Key = 'MESSAGES.ERROR_MAX_QUANTITY_LIMIT';\n }\n }\n\n this.messages = messages;\n\n const fieldControl = this.form.controls[this.key];\n fieldControl.setErrors({\n serverError: 'Error',\n });\n\n this.sameElementInTheWantedRow = null;\n setTimeout(() => {\n if (this.QSInput && this.QSInput.nativeElement) {\n this.QSInput.nativeElement.focus();\n }\n }, 150);\n }\n }\n get notificationInfo(): any {\n return this._notificationInfo;\n }\n\n private _visible = true;\n @Input()\n set visible(visible: boolean) {\n this._visible = visible;\n if (visible) {\n this.renderer.removeClass(\n this.element.nativeElement,\n 'hidden-element'\n );\n } else {\n this.renderer.addClass(\n this.element.nativeElement,\n 'hidden-element'\n );\n }\n }\n get visible(): boolean {\n return this._visible;\n }\n\n controlType = 'qs';\n\n @Input() form: FormGroup = null;\n @Input() showTitle = true;\n @Input() renderTitle = true;\n @Input() layoutType: PepLayoutType = 'form';\n @Input() isActive = false;\n\n // Get default style from theme.\n private _styleType: PepStyleType = document.documentElement.style.getPropertyValue(\n PepCustomizationService.STYLE_QS_KEY\n ) as PepStyleType; //'strong';\n @Input()\n set styleType(value: PepStyleType) {\n if (value) {\n this._styleType = value;\n } else {\n this._styleType = document.documentElement.style.getPropertyValue(\n PepCustomizationService.STYLE_QS_KEY\n ) as PepStyleType; //'strong';\n }\n }\n get styleType(): PepStyleType {\n return this._styleType;\n }\n\n @Output()\n valueChange: EventEmitter<string> = new EventEmitter<string>();\n\n @Output()\n elementClick: EventEmitter<IPepFieldClickEvent> = new EventEmitter<IPepFieldClickEvent>();\n\n @Output()\n validationChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @ViewChild('QSCont') QSCont: ElementRef;\n @ViewChild('QSInput') QSInput: ElementRef;\n\n private _calculateFormattedValue = true;\n get calculateFormattedValue(): boolean {\n return this._calculateFormattedValue;\n }\n\n private qsWidthSubject: BehaviorSubject<number>;\n lastQsContClientWidth = 0;\n //showQsBtn = true;\n\n standAlone = false;\n private _isInFocus = false;\n @Input()\n set isInFocus(isInFocus: boolean) {\n this._isInFocus = isInFocus;\n this.changeDisplayValue();\n }\n get isInFocus(): boolean {\n return this._isInFocus;\n }\n isMatrixFocus = false;\n\n isCaution = false;\n messages: Array<any> = null;\n\n sameElementInTheWantedRow = null;\n\n isEmptyKey = false;\n\n private _displayValueSubject: BehaviorSubject<string> = new BehaviorSubject<string>('');\n get displayValue$(): Observable<string> {\n return this._displayValueSubject.asObservable().pipe(distinctUntilChanged());\n }\n\n constructor(\n private cd: ChangeDetectorRef,\n private customizationService: PepCustomizationService,\n private renderer: Renderer2,\n private element: ElementRef,\n private translate: TranslateService,\n private utilitiesService: PepUtilitiesService\n ) {\n super();\n // this.qsWidthSubject = new BehaviorSubject(0);\n }\n\n setForm() {\n const pepField = new PepQuantitySelectorField({\n key: this.key,\n value: this.valueAsCurrentCulture,\n mandatory: this.mandatory,\n readonly: this.readonly,\n disabled: this.disabled,\n });\n this.form = this.customizationService.getDefaultFromGroup(pepField);\n }\n\n private setFormattedValue(value: string) {\n if (this._calculateFormattedValue) {\n if (this.allowDecimal) {\n this.formattedValue = this.utilitiesService.formatDecimal(value, this.minFractionDigits, this.maxFractionDigits);\n } else {\n this.formattedValue = this.utilitiesService.formatNumber(value);\n }\n } else {\n this.formattedValue = value;\n }\n \n this.updateFormFieldValue();\n }\n\n private notifyDisplayValueChange(value: string) {\n this._displayValueSubject.next(value);\n }\n\n private changeDisplayValue(): void {\n let res = '';\n\n if (this.allowDecimal) {\n res = this.isInFocus ? this.valueAsCurrentCulture : this.formattedValue;\n } else {\n res = this.isInFocus ? this.value : this.formattedValue;\n }\n\n this.notifyDisplayValueChange(res);\n // console.log('changeDisplayValue' + res);\n }\n\n private updateFormFieldValue(firstLoad = false) {\n // Set the formatted value only for the first load cause it's not formatted if we set the value (I don't know why)\n // Else we set the value - this is important to set the value only cause setting the formatted value will cause bug when the number is with thousand separator\n this.customizationService.updateFormFieldValue(\n this.form,\n this.key,\n firstLoad ? this.formattedValue : this.value,\n );\n\n // Raise this only for stand alone fields, If false then the usage for this field is inside a form. \n // Then the form will take care of raising the (onFormValidationChanged) event\n if (this.standAlone) {\n const isValid = (this.disabled || this.readonly) ? true : this.form.valid; \n this.validationChange.emit(isValid);\n }\n }\n\n // get displayValue(): string {\n // const res = this.isInFocus\n // ? this.utilitiesService.formatDecimal(this.value, this.minFractionDigits, this.maxFractionDigits)\n // : this.formattedValue;\n // return res;\n // }\n\n ngOnInit(): void {\n if (this.form === null) {\n if (this.key === '') {\n this.isEmptyKey = true;\n }\n\n this.standAlone = true;\n this.setForm();\n\n this.renderer.addClass(\n this.element.nativeElement,\n PepCustomizationService.STAND_ALONE_FIELD_CLASS_NAME\n );\n\n if (!this.renderTitle) {\n this.renderer.addClass(\n this.element.nativeElement,\n PepCustomizationService.STAND_ALONE_FIELD_NO_SPACING_CLASS_NAME\n );\n }\n }\n\n // this.qsWidthSubject\n // .asObservable()\n // .pipe(this.getDestroyer(), distinctUntilChanged())\n // .subscribe((qsWidth: number) => {\n // this.setupQsButtons(qsWidth);\n // });\n\n this.updateFormFieldValue(true);\n }\n\n ngAfterViewInit() {\n // setTimeout(() => {\n // if (this.QSCont &&\n // this.QSCont.nativeElement &&\n // this.QSCont.nativeElement.clientWidth > 0\n // ) {\n // this.showQsBtn = this.QSCont.nativeElement.clientWidth > 120;\n // }\n\n // if (!this.cd['destroyed']) {\n // this.cd.detectChanges();\n // }\n // }, 0);\n }\n\n ngAfterViewChecked(): void {\n // this.setQsView();\n }\n\n ngOnChanges(changes: any): void {\n // Bug fix for addons when the key is '' in the ngOnInit for some reson\n if (this.isEmptyKey && this.key !== '') {\n this.setForm();\n }\n\n setTimeout(() => {\n this.focusToTheSameElementInTheWantedRow();\n }, 150);\n }\n\n get getAdditionalValue(): string {\n return this.additionalValue.length > 0 ? 'show' : 'hide';\n }\n\n getParentByClass(el, parentSelector /* optional */): any {\n // If no parentSelector defined will bubble up all the way to *document*\n if (parentSelector === undefined) {\n parentSelector = document;\n }\n\n let p = el.parentNode;\n\n while (\n p &&\n !p?.classList?.contains(parentSelector) &&\n parentSelector !== document\n ) {\n const o = p;\n p = o?.parentNode || null;\n }\n\n return p?.className.indexOf(parentSelector) > -1 ? p : null;\n }\n\n getSameElementInTheWantedRowByClassName(event: any, isNext = true): any {\n const eventTarget = event.target || event.srcElement;\n let sameElementInTheWantedRowByClassName;\n\n let parentSelector;\n if (this.layoutType === 'table') {\n parentSelector = this.getParentByClass(eventTarget, 'table-row');\n } else if (this.layoutType === 'card') {\n parentSelector = this.getParentByClass(eventTarget, 'card-view');\n if (!parentSelector) {\n parentSelector = this.getParentByClass(\n eventTarget,\n 'line-view'\n );\n }\n }\n\n if (\n parentSelector.nextElementSibling === null &&\n parentSelector.previousElementSibling === null\n ) {\n sameElementInTheWantedRowByClassName = null;\n } else {\n if (isNext) {\n if (parentSelector.nextElementSibling === null) {\n sameElementInTheWantedRowByClassName = parentSelector.parentElement.querySelectorAll(\n '[name=' + this.key + ']'\n )[0];\n } else {\n sameElementInTheWantedRowByClassName = parentSelector.nextElementSibling.querySelectorAll(\n '[name=' + this.key + ']'\n )[0];\n }\n } else {\n if (parentSelector.previousElementSibling === null) {\n const elementsList = parentSelector.parentElement.querySelectorAll(\n '[name=' + this.key + ']'\n );\n sameElementInTheWantedRowByClassName =\n elementsList[elementsList.length - 1];\n } else {\n sameElementInTheWantedRowByClassName = parentSelector.previousElementSibling.querySelectorAll(\n '[name=' + this.key + ']'\n )[0];\n }\n }\n }\n\n return sameElementInTheWantedRowByClassName;\n }\n\n setSameElementInTheWantedRow(event: any, isNext = true): void {\n // Navigate to the QS in the next row.\n if (this.layoutType === 'card' || this.layoutType === 'table') {\n this.sameElementInTheWantedRow = this.getSameElementInTheWantedRowByClassName(\n event,\n isNext\n );\n }\n\n this.QSInput.nativeElement.blur();\n }\n\n focusToTheSameElementInTheWantedRow(): void {\n if (this.sameElementInTheWantedRow) {\n const elem = this.sameElementInTheWantedRow;\n // If this is regular item (qs and not button) .\n if (elem instanceof HTMLInputElement && elem.type === 'text') {\n elem.click();\n elem.select();\n } else {\n const parentElem = elem.parentNode;\n parentElem.click();\n elem.focus();\n }\n this.sameElementInTheWantedRow = null;\n }\n }\n\n cleanError(): void {\n const fieldControl = this.form.controls[this.key];\n\n // Clean the error message\n if (this.messages && this.messages.length > 0) {\n this.messages = this.notificationInfo = null;\n fieldControl.setErrors(null);\n }\n }\n\n onMatrixMouseEnter(event: any): void {\n this.isMatrixFocus = true;\n }\n\n onMatrixMouseleave(event: any): void {\n this.isMatrixFocus = false;\n }\n\n onMatrixClick(event: any): void {\n this.isInFocus = true;\n\n if (this.QSInput && this.QSInput.nativeElement) {\n this.QSInput.nativeElement.focus();\n }\n }\n\n onMatrixBlur(event: any): void {\n if (\n !event.relatedTarget ||\n event.relatedTarget.className.indexOf('qs') < 0\n ) {\n this.isMatrixFocus = false;\n }\n\n this.onBlur(event);\n }\n\n onFocus(event: any): void {\n this.isInFocus = true;\n\n // setTimeout(() => {\n // if (this.isInFocus) {\n // const eventTarget = event.target || event.srcElement;\n // if (eventTarget) {\n // eventTarget.select();\n // }\n // }\n // }, 0);\n }\n\n isDifferentValue(value: string): boolean {\n const res = this.utilitiesService.isEqualNumber(this.valueAsCurrentCulture, value) === false;\n return res;\n }\n\n onBlur(event: any): void {\n this.isInFocus = false;\n this.cleanError();\n const value = event.target ? event.target.value : event;\n\n // For decimal we need to replace the decimal separator back if it's comma (',').\n const correctValue = this.allowDecimal ? this.utilitiesService.changeDecimalSeparatorWhenItsComma(value) : value;\n \n if (correctValue !== this.valueAsCurrentCulture && this.isDifferentValue(value)) {\n this.value = correctValue;\n this.valueChange.emit(this.value);\n }\n \n this.focusToTheSameElementInTheWantedRow();\n }\n\n onKeydown(event): any {\n const keyboardEvent = event as KeyboardEvent;\n\n if (keyboardEvent.key === 'Enter') {\n this.setSameElementInTheWantedRow(\n keyboardEvent,\n !keyboardEvent.shiftKey\n );\n return true;\n }\n }\n\n increment(event): void {\n if (this.standAlone) {\n this.value = this.utilitiesService.incrementNumber(this.value);\n }\n\n this.elementClick.emit({\n key: this.key,\n value: PepQuantitySelectorComponent.PLUS,\n controlType: this.controlType,\n eventWhich: event.which,\n });\n event.stopPropagation();\n }\n\n decrement(event): void {\n if (this.standAlone) {\n this.value = this.utilitiesService.decrementNumber(this.value);\n }\n\n this.elementClick.emit({\n key: this.key,\n value: PepQuantitySelectorComponent.MINUS,\n controlType: this.controlType,\n eventWhich: event.which,\n });\n event.stopPropagation();\n }\n\n enterChildren(event): void {\n this.elementClick.emit({\n key: this.key,\n value: PepQuantitySelectorComponent.ENTER_CHILDREN,\n controlType: this.controlType,\n eventWhich: event.which,\n });\n }\n\n enterPackage(event): void {\n this.elementClick.emit({\n key: this.key,\n value: PepQuantitySelectorComponent.ENTER_PACKAGE,\n controlType: this.controlType,\n eventWhich: event.which,\n otherData: this.notificationInfo,\n });\n }\n\n // setupQsButtons(qsWidth: number) {\n // this.showQsBtn = qsWidth > 120;\n\n // if (!this.cd['destroyed']) {\n // this.cd.detectChanges();\n // }\n // }\n\n // setQsView(): void {\n // if (\n // this.QSCont &&\n // this.QSCont.nativeElement &&\n // this.QSCont.nativeElement.clientWidth > 0\n // ) {\n // setTimeout(() => {\n // this.qsWidthSubject.next(this.QSCont.nativeElement.clientWidth);\n // }, 0);\n // }\n // }\n}\n","<ng-container [formGroup]=\"form\">\n <ng-template #pepTemplate>\n <div #QSCont class=\"pep-quantity-selector-container {{ styleType }}\" [ngClass]=\"{\n 'hide-qs-actions' : layoutType === 'card' && rowSpan <= 1,\n 'pep-table-quantity-selector': layoutType === 'table',\n 'one-row': rowSpan === 1,\n caution: isCaution,\n 'matrix-qs': type === 'qsForMatrix',\n 'zero-quantity': formattedValue === '0'\n }\">\n <pep-field-title *ngIf=\"renderTitle && layoutType !== 'table' && layoutType !== 'card'\" [label]=\"label\"\n [mandatory]=\"mandatory\" [disabled]=\"disabled\" [showTitle]=\"showTitle\" [xAlignment]=\"xAlignment\">\n </pep-field-title>\n\n <ng-container *ngIf=\"type == 'qs'\">\n <ng-container *ngIf=\"readonly; then readonlyBlock; else editableQSBlock\"></ng-container>\n <ng-template #readonlyBlock>\n <button [id]=\"key\" mat-button class=\"pep-button {{ styleType }} disable \"\n [ngClass]=\"{caution: isCaution, md: rowSpan !== 1, xs: rowSpan === 1}\"\n title=\"{{ formattedValue }}\" disabled=\"true\">\n <span class=\"ellipsis\">\n {{ formattedValue }}\n </span>\n </button>\n </ng-template>\n <ng-template #editableQSBlock>\n <mat-form-field appearance=\"outline\" class=\"qs-container\">\n <input pepQsValidation [allowDecimal]=\"allowDecimal\" type=\"decimalNumber\" inputmode=\"decimal\"\n matInput #QSInput name=\"{{ key }}\" class=\"body-lg ellipsis\" title=\"{{ formattedValue }}\"\n autocomplete=\"off\" [id]=\"key\" [formControlName]=\"key\" [value]=\"displayValue$ | async\"\n (click)=\"$event.target.setSelectionRange(0, 999)\" (keydown)=\"onKeydown($event)\"\n (blur)=\"onBlur($event)\" (focus)=\"onFocus($event)\" />\n <button mat-button matPrefix (click)=\"decrement($event)\"\n class=\"pep-button icon-button sm weak qs-action\" [disabled]=\"disabled\" [ngClass]=\"{ disable: disabled, caution: isCaution && styleType !== 'strong',\n 'keep-background-on-focus': styleType === 'strong'}\">\n <mat-icon>\n <pep-icon name=\"number_minus\">\n </pep-icon>\n </mat-icon>\n </button>\n <button mat-button matSuffix (click)=\"increment($event)\"\n class=\"pep-button icon-button sm weak qs-action\" [disabled]=\"disabled\" [ngClass]=\"{ disable: disabled, caution: isCaution && styleType !== 'strong',\n 'keep-background-on-focus': styleType === 'strong'}\">\n <mat-icon>\n <pep-icon name=\"number_plus\">\n </pep-icon>\n </mat-icon>\n </button>\n <mat-error *ngIf=\"messages?.length > 0\">\n <span class=\"qs-error body-xs\" *ngFor=\"let msg of messages\"> {{ msg.Key | translate }} :\n {{ msg.Value }} </span>\n </mat-error>\n </mat-form-field>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"type == 'qsForMatrix'\">\n <ng-container *ngIf=\"readonly; then readonlyBlock; else editableQSBlock\"></ng-container>\n <ng-template #readonlyBlock>\n <button [id]=\"key\" mat-button class=\"pep-button {{ styleType }} disable\" disabled=\"true\"\n [ngClass]=\"{caution: isCaution, md: rowSpan !== 1, xs: rowSpan === 1}\">\n X\n </button>\n </ng-template>\n <ng-template #editableQSBlock>\n <span *ngIf=\" xAlignment=='right'\" class=\" body-sm additional-value prefix\"\n matBadge=\"{{ additionalValue }}\" matBadgePosition=\"before\"\n matBadgeSize=\"rowSpan === 1 ? small : medium\" [@showHide]=\"getAdditionalValue\"></span>\n\n <mat-form-field appearance=\"outline\" (mouseleave)=\"!isInFocus ? onMatrixMouseleave($event) : null\">\n <input pepQsValidation [allowDecimal]=\"allowDecimal\" type=\"decimalNumber\" inputmode=\"decimal\"\n matInput #QSInput name=\"{{ key }}\" title=\"{{ formattedValue }}\" class=\"body-sm ellipsis\"\n autocomplete=\"off\" [id]=\"key\" [formControlName]=\"key\" [value]=\"displayValue$ | async\"\n (click)=\"onMatrixClick($event); $event.target.setSelectionRange(0, 999)\"\n (keydown)=\"onKeydown($event)\" (blur)=\"onMatrixBlur($event)\"\n (focus)=\"onMatrixMouseEnter($event); onFocus($event)\"\n (mouseenter)=\"onMatrixMouseEnter($event)\" />\n\n <mat-error *ngIf=\"messages?.length > 0\">\n <span class=\"qs-error body-xs\" *ngFor=\"let msg of messages\"> {{ msg.Key | translate }} :\n {{ msg.Value }} </span>\n </mat-error>\n </mat-form-field>\n\n <span *ngIf=\"xAlignment != 'right'\" class=\"body-sm additional-value suffix\"\n matBadge=\"{{ additionalValue }}\" matBadgePosition=\"before\"\n matBadgeSize=\"rowSpan === 1 ? small : medium\" [@showHide]=\"getAdditionalValue\"></span>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"type == 'button'\">\n <ng-container *ngIf=\"(value | pepToNumber) == 0; then regularBlock; else withBadgeBlock\">\n </ng-container>\n <ng-template #regularBlock>\n <button mat-button [disabled]=\"disabled\" class=\"pep-button {{ styleType }} \" [id]=\"key\"\n name=\"{{ key }}\"\n [ngClass]=\"{ disable: disabled, caution: isCaution, md: rowSpan !== 1, xs: rowSpan === 1}\"\n [title]=\"'QS.ORDER' | translate\" (click)=\"enterChildren($event)\">\n <span class=\"ellipsis\">\n {{ 'QS.ORDER' | translate }}\n </span>\n </button>\n </ng-template>\n <ng-template #withBadgeBlock>\n <button mat-button matBadge=\"{{ formattedValue }}\"\n matBadgePosition=\"{{xAlignment == 'right' ? 'before' : 'after'}}\"\n [matBadgeSize]=\"layoutType === 'card' && rowSpan === 1 ? 'small' : 'medium'\"\n class=\"pep-button {{ styleType }} \" [id]=\"key\" name=\"{{ key }}\" [ngClass]=\"{ disable: disabled, caution: isCaution, md: rowSpan !== 1, xs: rowSpan === 1,\n 'right-alignment': xAlignment == 'right', 'left-alignment': xAlignment != 'right'}\"\n [title]=\"'QS.ORDER' | translate\" (click)=\"enterChildren($event)\" [disabled]=\"disabled\">\n <span class=\"ellipsis\">\n {{ 'QS.ORDER' | translate }}\n </span>\n </button>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"type == 'packageButton'\">\n <button mat-button class=\"pep-button {{ styleType }} \" [id]=\"key\" name=\"{{ key }}\"\n [ngClass]=\"{ disable: disabled, caution: isCaution, md: rowSpan !== 1, xs: rowSpan === 1}\"\n [title]=\"'QS.ORDER' | translate\" (click)=\"enterPackage($event)\" [disabled]=\"disabled\">\n <span class=\"ellipsis\">\n {{ 'QS.ORDER' | translate }} ({{ formattedValue }})\n </span>\n </button>\n </ng-container>\n </div>\n </ng-template>\n\n <ng-container *ngIf=\"layoutType === 'form'\">\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'card'\">\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'table'\">\n <ng-container *ngIf=\"readonly || disabled; then readonlyBlock; else editableBlock\"></ng-container>\n <ng-template #readonlyBlock>\n <div class=\"pep-quantity-selector-container pep-table-quantity-selector disable {{ styleType }}\" [ngClass]=\"{\n 'one-row': rowSpan === 1,\n caution: isCaution,\n 'zero-quantity': formattedValue === '0'\n }\">\n <span class=\"mat-form-field\">\n <span class=\"mat-input-element\">{{formattedValue}}</span>\n </span>\n </div>\n </ng-template>\n <ng-template #editableBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\n </ng-template>\n </ng-container>\n</ng-container>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'pepQuantitySelectorNumber' })\nexport class PepQuantitySelectorNumberPipe implements PipeTransform {\n transform(value: string, allowDecimal: boolean): string {\n const tmpValue = parseFloat(value);\n\n if (tmpValue === 0) {\n return '0';\n } else if (allowDecimal) {\n return tmpValue.toString();\n } else {\n return parseInt(value).toString();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport {\n PepIconModule,\n PepIconRegistry,\n pepIconNumberMinus,\n pepIconNumberPlus,\n} from '@pepperi-addons/ngx-lib/icon';\nimport { PepFieldTitleModule } from '@pepperi-addons/ngx-lib/field-title';\n\nimport { PepQuantitySelectorComponent } from './quantity-selector.component';\nimport { PepQuantitySelectorValidationDirective } from './quantity-selector-validation.directive';\nimport { PepQuantitySelectorNumberPipe } from './quantity-selector.pipes';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n // Material modules\n MatCommonModule,\n MatFormFieldModule,\n MatInputModule,\n MatButtonModule,\n MatBadgeModule,\n MatIconModule,\n // Translation module\n TranslateModule,\n // ngx-lib modules\n PepNgxLibModule,\n PepIconModule,\n PepFieldTitleModule,\n ],\n exports: [PepQuantitySelectorComponent],\n declarations: [\n PepQuantitySelectorComponent,\n PepQuantitySelectorNumberPipe,\n PepQuantitySelectorValidationDirective,\n ],\n})\nexport class PepQuantitySelectorModule {\n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([\n pepIconNumberMinus,\n pepIconNumberPlus,\n ]);\n }\n}\n","/*\n * Public API Surface of ngx-lib/quantity-selector\n */\nexport * from './quantity-selector.module';\nexport * from './quantity-selector.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i10","i12.PepQuantitySelectorValidationDirective","i1"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, EventEmitter, ViewContainerRef,
|
|
2
|
+
import { Injectable, EventEmitter, ViewContainerRef, ViewChild, Output, Input, Component, NgModule } from '@angular/core';
|
|
3
3
|
import * as i4 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import * as i1 from '@angular/forms';
|
|
@@ -51,12 +51,12 @@ class PepTypeConvertorService {
|
|
|
51
51
|
value: 'False'
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
55
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
54
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PepTypeConvertorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
55
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PepTypeConvertorService });
|
|
56
56
|
}
|
|
57
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PepTypeConvertorService, decorators: [{
|
|
58
58
|
type: Injectable
|
|
59
|
-
}], ctorParameters:
|
|
59
|
+
}], ctorParameters: () => [] });
|
|
60
60
|
|
|
61
61
|
class PepQueryBuilderSectionComponent {
|
|
62
62
|
_typeConvertorService;
|
|
@@ -102,13 +102,13 @@ class PepQueryBuilderSectionComponent {
|
|
|
102
102
|
onDeleteSectionClicked() {
|
|
103
103
|
this.remove.emit();
|
|
104
104
|
}
|
|
105
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
106
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
105
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PepQueryBuilderSectionComponent, deps: [{ token: PepTypeConvertorService }], target: i0.ɵɵFactoryTarget.Component });
|
|
106
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PepQueryBuilderSectionComponent, selector: "pep-query-builder-section", inputs: { form: "form", depth: "depth", hasFields: "hasFields" }, outputs: { createSection: "createSection", createItem: "createItem", remove: "remove", operatorChange: "operatorChange" }, viewQueries: [{ propertyName: "sectionContainer", first: true, predicate: ["sectionContainer"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<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>", styles: [".query-section-container{border-radius:var(--pep-border-radius-md, .25rem);padding:.5rem;width:100%}\n", ".query-section-container{box-shadow:var(--pep-shadow-sm-offset, 0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.08);border:1px solid hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.24)}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "component", type: i4$1.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i5.PepGroupButtonsComponent, selector: "pep-group-buttons", inputs: ["viewType", "styleType", "sizeType", "buttons", "buttonsDisabled", "supportUnselect", "selectedButtonKey", "stretch"], outputs: ["buttonClick"] }] });
|
|
107
107
|
}
|
|
108
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
108
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PepQueryBuilderSectionComponent, decorators: [{
|
|
109
109
|
type: Component,
|
|
110
110
|
args: [{ selector: 'pep-query-builder-section', template: "<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>", styles: [".query-section-container{border-radius:var(--pep-border-radius-md, .25rem);padding:.5rem;width:100%}\n", ".query-section-container{box-shadow:var(--pep-shadow-sm-offset, 0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.08);border:1px solid hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.24)}\n"] }]
|
|
111
|
-
}], ctorParameters:
|
|
111
|
+
}], ctorParameters: () => [{ type: PepTypeConvertorService }], propDecorators: { form: [{
|
|
112
112
|
type: Input
|
|
113
113
|
}], depth: [{
|
|
114
114
|
type: Input
|
|
@@ -227,13 +227,13 @@ class PepQueryBuilderItemComponent {
|
|
|
227
227
|
onDeleteItemClicked() {
|
|
228
228
|
this.remove.emit();
|
|
229
229
|
}
|
|
230
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
231
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
230
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PepQueryBuilderItemComponent, deps: [{ token: i1.FormBuilder }, { token: PepTypeConvertorService }, { token: PepQueryStructureService }], target: i0.ɵɵFactoryTarget.Component });
|
|
231
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PepQueryBuilderItemComponent, selector: "pep-query-builder-item", inputs: { formKey: "formKey", fields: "fields", selected: "selected", filter: "filter", parentForm: "parentForm", variableFields: "variableFields" }, outputs: { filterChange: "filterChange", remove: "remove" }, ngImport: i0, template: "<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>", styles: ["::ng-deep .pep-field-no-spacing{min-height:0!important;margin-bottom:0!important}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i6.PepSelectComponent, selector: "pep-select", inputs: ["key", "value", "label", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "placeholder", "placeholderWhenDisabled", "autoSortOptions", "options", "visible", "emptyOption", "form", "layoutType", "parentFieldKey", "isActive", "showTitle", "renderTitle", "typeaheadDebounceInterval", "addValueToOptionsIfNotExist"], outputs: ["valueChange", "validationChange"] }, { kind: "component", type: i4$1.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i8.PepTextFilterComponent, selector: "pep-text-filter" }, { kind: "component", type: i8.PepBooleanFilterComponent, selector: "pep-boolean-filter", inputs: ["options"] }, { kind: "component", type: i8.PepDateFilterComponent, selector: "pep-date-filter" }, { kind: "component", type: i8.PepMultiSelectFilterComponent, selector: "pep-multi-select-filter" }, { kind: "component", type: i8.PepNumberFilterComponent, selector: "pep-number-filter" }] });
|
|
232
232
|
}
|
|
233
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
233
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PepQueryBuilderItemComponent, decorators: [{
|
|
234
234
|
type: Component,
|
|
235
235
|
args: [{ selector: 'pep-query-builder-item', template: "<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>", styles: ["::ng-deep .pep-field-no-spacing{min-height:0!important;margin-bottom:0!important}\n"] }]
|
|
236
|
-
}], ctorParameters:
|
|
236
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: PepTypeConvertorService }, { type: PepQueryStructureService }], propDecorators: { formKey: [{
|
|
237
237
|
type: Input
|
|
238
238
|
}], fields: [{
|
|
239
239
|
type: Input
|
|
@@ -707,12 +707,12 @@ class PepOutputQueryService {
|
|
|
707
707
|
}
|
|
708
708
|
return values;
|
|
709
709
|
}
|
|
710
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
711
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
710
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PepOutputQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
711
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PepOutputQueryService });
|
|
712
712
|
}
|
|
713
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
713
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PepOutputQueryService, decorators: [{
|
|
714
714
|
type: Injectable
|
|
715
|
-
}], ctorParameters:
|
|
715
|
+
}], ctorParameters: () => [] });
|
|
716
716
|
|
|
717
717
|
class PepQueryBuilderService {
|
|
718
718
|
constructor() {
|
|
@@ -800,15 +800,15 @@ class PepQueryBuilderService {
|
|
|
800
800
|
}
|
|
801
801
|
return data;
|
|
802
802
|
}
|
|
803
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
804
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
803
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PepQueryBuilderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
804
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PepQueryBuilderService, providedIn: 'root' });
|
|
805
805
|
}
|
|
806
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
806
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PepQueryBuilderService, decorators: [{
|
|
807
807
|
type: Injectable,
|
|
808
808
|
args: [{
|
|
809
809
|
providedIn: 'root'
|
|
810
810
|
}]
|
|
811
|
-
}], ctorParameters:
|
|
811
|
+
}], ctorParameters: () => [] });
|
|
812
812
|
|
|
813
813
|
const MAX_STRUCTURE_DEPTH = 3;
|
|
814
814
|
class PepQueryStructureService {
|
|
@@ -1056,12 +1056,12 @@ class PepQueryStructureService {
|
|
|
1056
1056
|
this._outputQuery$.next(query);
|
|
1057
1057
|
}
|
|
1058
1058
|
}
|
|
1059
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1060
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1059
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PepQueryStructureService, deps: [{ token: i0.ComponentFactoryResolver }, { token: PepOutputQueryService }, { token: PepQueryBuilderService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1060
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PepQueryStructureService });
|
|
1061
1061
|
}
|
|
1062
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1062
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PepQueryStructureService, decorators: [{
|
|
1063
1063
|
type: Injectable
|
|
1064
|
-
}], ctorParameters:
|
|
1064
|
+
}], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }, { type: PepOutputQueryService }, { type: PepQueryBuilderService }] });
|
|
1065
1065
|
|
|
1066
1066
|
class PepQueryBuilderComponent {
|
|
1067
1067
|
_fb;
|
|
@@ -1147,13 +1147,13 @@ class PepQueryBuilderComponent {
|
|
|
1147
1147
|
this._outputQuerySubscription$.unsubscribe();
|
|
1148
1148
|
}
|
|
1149
1149
|
}
|
|
1150
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1151
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
1150
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PepQueryBuilderComponent, deps: [{ token: i1.FormBuilder }, { token: PepQueryStructureService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1151
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PepQueryBuilderComponent, selector: "pep-query-builder", inputs: { query: "query", fields: "fields", variableFields: "variableFields", maxDepth: "maxDepth" }, outputs: { queryChange: "queryChange", formValidationChange: "formValidationChange" }, providers: [PepQueryStructureService, PepTypeConvertorService, PepOutputQueryService], viewQueries: [{ propertyName: "root", first: true, predicate: ["rootContainer"], descendants: true, static: true }], ngImport: i0, template: "<pep-query-builder-section #rootContainer [form]=\"queryStructureService.form\" [depth]=\"depth\" [hasFields]=\"hasFields\"\n (createSection)=\"onCreateSection()\" (createItem)=\"onCreateItem()\" (operatorChange)=\"onOperatorChange()\">\n</pep-query-builder-section>", styles: [""], dependencies: [{ kind: "component", type: PepQueryBuilderSectionComponent, selector: "pep-query-builder-section", inputs: ["form", "depth", "hasFields"], outputs: ["createSection", "createItem", "remove", "operatorChange"] }] });
|
|
1152
1152
|
}
|
|
1153
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1153
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PepQueryBuilderComponent, decorators: [{
|
|
1154
1154
|
type: Component,
|
|
1155
1155
|
args: [{ selector: 'pep-query-builder', providers: [PepQueryStructureService, PepTypeConvertorService, PepOutputQueryService], template: "<pep-query-builder-section #rootContainer [form]=\"queryStructureService.form\" [depth]=\"depth\" [hasFields]=\"hasFields\"\n (createSection)=\"onCreateSection()\" (createItem)=\"onCreateItem()\" (operatorChange)=\"onOperatorChange()\">\n</pep-query-builder-section>" }]
|
|
1156
|
-
}], ctorParameters:
|
|
1156
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: PepQueryStructureService }], propDecorators: { query: [{
|
|
1157
1157
|
type: Input
|
|
1158
1158
|
}], fields: [{
|
|
1159
1159
|
type: Input
|
|
@@ -1178,8 +1178,8 @@ class PepQueryBuilderModule {
|
|
|
1178
1178
|
pepIconSystemBin,
|
|
1179
1179
|
]);
|
|
1180
1180
|
}
|
|
1181
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1182
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
1181
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PepQueryBuilderModule, deps: [{ token: i1$1.PepIconRegistry }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1182
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: PepQueryBuilderModule, declarations: [PepQueryBuilderComponent,
|
|
1183
1183
|
PepQueryBuilderSectionComponent,
|
|
1184
1184
|
PepQueryBuilderItemComponent], imports: [CommonModule,
|
|
1185
1185
|
ReactiveFormsModule,
|
|
@@ -1189,7 +1189,7 @@ class PepQueryBuilderModule {
|
|
|
1189
1189
|
PepIconModule,
|
|
1190
1190
|
PepGroupButtonsModule,
|
|
1191
1191
|
PepSmartFiltersModule], exports: [PepQueryBuilderComponent] });
|
|
1192
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
1192
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PepQueryBuilderModule, providers: [
|
|
1193
1193
|
FormBuilder
|
|
1194
1194
|
], imports: [CommonModule,
|
|
1195
1195
|
ReactiveFormsModule,
|
|
@@ -1200,7 +1200,7 @@ class PepQueryBuilderModule {
|
|
|
1200
1200
|
PepGroupButtonsModule,
|
|
1201
1201
|
PepSmartFiltersModule] });
|
|
1202
1202
|
}
|
|
1203
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1203
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PepQueryBuilderModule, decorators: [{
|
|
1204
1204
|
type: NgModule,
|
|
1205
1205
|
args: [{
|
|
1206
1206
|
imports: [
|
|
@@ -1225,7 +1225,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1225
1225
|
FormBuilder
|
|
1226
1226
|
]
|
|
1227
1227
|
}]
|
|
1228
|
-
}], ctorParameters:
|
|
1228
|
+
}], ctorParameters: () => [{ type: i1$1.PepIconRegistry }] });
|
|
1229
1229
|
|
|
1230
1230
|
/*
|
|
1231
1231
|
* Public API Surface of ngx-lib/query-builder
|