@pepperi-addons/ngx-lib 0.4.2-beta.137 → 0.4.2-beta.139
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/address/address.component.d.ts +30 -0
- package/address/address.module.d.ts +15 -0
- package/address/index.d.ts +5 -0
- package/address/public-api.d.ts +2 -0
- package/attachment/attachment.component.d.ts +94 -0
- package/attachment/attachment.module.d.ts +14 -0
- package/attachment/index.d.ts +5 -0
- package/attachment/public-api.d.ts +2 -0
- package/bread-crumbs/bread-crumbs.component.d.ts +27 -0
- package/bread-crumbs/bread-crumbs.model.d.ts +11 -0
- package/bread-crumbs/bread-crumbs.module.d.ts +15 -0
- package/bread-crumbs/index.d.ts +5 -0
- package/bread-crumbs/public-api.d.ts +3 -0
- package/carousel/carousel-item.directive.d.ts +12 -0
- package/carousel/carousel.component.d.ts +148 -0
- package/carousel/carousel.module.d.ts +8 -0
- package/carousel/index.d.ts +5 -0
- package/carousel/public-api.d.ts +3 -0
- package/checkbox/checkbox.component.d.ts +50 -0
- package/checkbox/checkbox.module.d.ts +19 -0
- package/checkbox/index.d.ts +5 -0
- package/checkbox/public-api.d.ts +2 -0
- package/color/color-picker.component.d.ts +57 -0
- package/color/color.component.d.ts +30 -0
- package/color/color.model.d.ts +1 -0
- package/color/color.module.d.ts +26 -0
- package/color/index.d.ts +5 -0
- package/color/public-api.d.ts +3 -0
- package/date/date.component.d.ts +70 -0
- package/date/date.model.d.ts +31 -0
- package/date/date.module.d.ts +23 -0
- package/date/index.d.ts +5 -0
- package/date/public-api.d.ts +2 -0
- package/draggable-items/draggable-item/draggable-item.component.d.ts +11 -0
- package/draggable-items/draggable-items.component.d.ts +36 -0
- package/draggable-items/draggable-items.model.d.ts +11 -0
- package/draggable-items/draggable-items.module.d.ts +18 -0
- package/draggable-items/index.d.ts +5 -0
- package/draggable-items/public-api.d.ts +4 -0
- package/esm2020/address/address.component.mjs +109 -0
- package/esm2020/address/address.module.mjs +54 -0
- package/esm2020/address/pepperi-addons-ngx-lib-address.mjs +5 -0
- package/esm2020/address/public-api.mjs +6 -0
- package/esm2020/attachment/attachment.component.mjs +240 -0
- package/esm2020/attachment/attachment.module.mjs +50 -0
- package/esm2020/attachment/pepperi-addons-ngx-lib-attachment.mjs +5 -0
- package/esm2020/attachment/public-api.mjs +6 -0
- package/esm2020/bread-crumbs/bread-crumbs.component.mjs +85 -0
- package/esm2020/bread-crumbs/bread-crumbs.model.mjs +7 -0
- package/esm2020/bread-crumbs/bread-crumbs.module.mjs +50 -0
- package/esm2020/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.mjs +5 -0
- package/esm2020/bread-crumbs/public-api.mjs +7 -0
- package/esm2020/carousel/carousel-item.directive.mjs +33 -0
- package/esm2020/carousel/carousel.component.mjs +745 -0
- package/esm2020/carousel/carousel.module.mjs +17 -0
- package/esm2020/carousel/pepperi-addons-ngx-lib-carousel.mjs +5 -0
- package/esm2020/carousel/public-api.mjs +8 -0
- package/esm2020/checkbox/checkbox.component.mjs +168 -0
- package/esm2020/checkbox/checkbox.module.mjs +63 -0
- package/esm2020/checkbox/pepperi-addons-ngx-lib-checkbox.mjs +5 -0
- package/esm2020/checkbox/public-api.mjs +6 -0
- package/esm2020/color/color-picker.component.mjs +224 -0
- package/esm2020/color/color.component.mjs +90 -0
- package/esm2020/color/color.model.mjs +2 -0
- package/esm2020/color/color.module.mjs +93 -0
- package/esm2020/color/pepperi-addons-ngx-lib-color.mjs +5 -0
- package/esm2020/color/public-api.mjs +7 -0
- package/esm2020/date/date.component.mjs +312 -0
- package/esm2020/date/date.model.mjs +54 -0
- package/esm2020/date/date.module.mjs +88 -0
- package/esm2020/date/pepperi-addons-ngx-lib-date.mjs +5 -0
- package/esm2020/date/public-api.mjs +6 -0
- package/esm2020/draggable-items/draggable-item/draggable-item.component.mjs +27 -0
- package/esm2020/draggable-items/draggable-items.component.mjs +102 -0
- package/esm2020/draggable-items/draggable-items.model.mjs +2 -0
- package/esm2020/draggable-items/draggable-items.module.mjs +60 -0
- package/esm2020/draggable-items/pepperi-addons-ngx-lib-draggable-items.mjs +5 -0
- package/esm2020/draggable-items/public-api.mjs +8 -0
- package/esm2020/files-uploader/files-uploader.component.mjs +246 -0
- package/esm2020/files-uploader/files-uploader.module.mjs +79 -0
- package/esm2020/files-uploader/pepperi-addons-ngx-lib-files-uploader.mjs +5 -0
- package/esm2020/files-uploader/public-api.mjs +6 -0
- package/esm2020/form/field-generator.component.mjs +152 -0
- package/esm2020/form/form.component.mjs +1238 -0
- package/esm2020/form/form.model.mjs +2 -0
- package/esm2020/form/form.module.mjs +179 -0
- package/esm2020/form/indicators.component.mjs +23 -0
- package/esm2020/form/internal-button.component.mjs +184 -0
- package/esm2020/form/internal-carusel.component.mjs +117 -0
- package/esm2020/form/internal-carusel.service.mjs +32 -0
- package/esm2020/form/internal-field-generator.component.mjs +146 -0
- package/esm2020/form/internal-form.component.mjs +1216 -0
- package/esm2020/form/internal-list.component.mjs +513 -0
- package/esm2020/form/internal-menu.component.mjs +66 -0
- package/esm2020/form/internal-page.component.mjs +361 -0
- package/esm2020/form/internal-page.service.mjs +120 -0
- package/esm2020/form/pepperi-addons-ngx-lib-form.mjs +5 -0
- package/esm2020/form/public-api.mjs +7 -0
- package/esm2020/group-buttons/group-buttons.component.mjs +71 -0
- package/esm2020/group-buttons/group-buttons.module.mjs +59 -0
- package/esm2020/group-buttons/pepperi-addons-ngx-lib-group-buttons.mjs +5 -0
- package/esm2020/group-buttons/public-api.mjs +6 -0
- package/esm2020/image/image.component.mjs +263 -0
- package/esm2020/image/image.module.mjs +74 -0
- package/esm2020/image/image.service.mjs +50 -0
- package/esm2020/image/pepperi-addons-ngx-lib-image.mjs +5 -0
- package/esm2020/image/public-api.mjs +7 -0
- package/esm2020/images-filmstrip/images-filmstrip.component.mjs +337 -0
- package/esm2020/images-filmstrip/images-filmstrip.module.mjs +83 -0
- package/esm2020/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.mjs +5 -0
- package/esm2020/images-filmstrip/public-api.mjs +6 -0
- package/esm2020/link/link.component.mjs +300 -0
- package/esm2020/link/link.module.mjs +80 -0
- package/esm2020/link/link.pipes.mjs +18 -0
- package/esm2020/link/pepperi-addons-ngx-lib-link.mjs +5 -0
- package/esm2020/link/public-api.mjs +7 -0
- package/esm2020/list/list-actions.component.mjs +44 -0
- package/esm2020/list/list-carousel.component.mjs +107 -0
- package/esm2020/list/list-chooser.component.mjs +64 -0
- package/esm2020/list/list-pager.component.mjs +120 -0
- package/esm2020/list/list-sorting.component.mjs +61 -0
- package/esm2020/list/list-total.component.mjs +30 -0
- package/esm2020/list/list-views.component.mjs +85 -0
- package/esm2020/list/list.component.mjs +1303 -0
- package/esm2020/list/list.model.mjs +4 -0
- package/esm2020/list/list.module.mjs +144 -0
- package/esm2020/list/list.pipes.mjs +47 -0
- package/esm2020/list/pepperi-addons-ngx-lib-list.mjs +5 -0
- package/esm2020/list/public-api.mjs +15 -0
- package/esm2020/list/virtual-scroller.mjs +1080 -0
- package/esm2020/menu/menu-item.component.mjs +115 -0
- package/esm2020/menu/menu.component.mjs +213 -0
- package/esm2020/menu/menu.model.mjs +19 -0
- package/esm2020/menu/menu.module.mjs +59 -0
- package/esm2020/menu/pepperi-addons-ngx-lib-menu.mjs +5 -0
- package/esm2020/menu/public-api.mjs +7 -0
- package/esm2020/page-layout/page-layout.component.mjs +35 -0
- package/esm2020/page-layout/page-layout.module.mjs +34 -0
- package/esm2020/page-layout/pepperi-addons-ngx-lib-page-layout.mjs +5 -0
- package/esm2020/page-layout/public-api.mjs +6 -0
- package/esm2020/profile-data-views-list/pepperi-addons-ngx-lib-profile-data-views-list.mjs +5 -0
- package/esm2020/profile-data-views-list/profile-data-view/profile-data-view.component.mjs +45 -0
- package/esm2020/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.mjs +81 -0
- package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +127 -0
- package/esm2020/profile-data-views-list/profile-data-views-list.model.mjs +2 -0
- package/esm2020/profile-data-views-list/profile-data-views-list.module.mjs +88 -0
- package/esm2020/profile-data-views-list/public-api.mjs +9 -0
- package/esm2020/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.mjs +5 -0
- package/esm2020/quantity-selector/public-api.mjs +6 -0
- package/esm2020/quantity-selector/quantity-selector-validation.directive.mjs +49 -0
- package/esm2020/quantity-selector/quantity-selector.component.mjs +574 -0
- package/esm2020/quantity-selector/quantity-selector.module.mjs +82 -0
- package/esm2020/quantity-selector/quantity-selector.pipes.mjs +23 -0
- package/esm2020/query-builder/common/model/field.mjs +2 -0
- package/esm2020/query-builder/common/model/filter.mjs +2 -0
- package/esm2020/query-builder/common/model/legacy.mjs +2 -0
- package/esm2020/query-builder/common/model/operator-unit.mjs +42 -0
- package/esm2020/query-builder/common/model/operator.mjs +276 -0
- package/esm2020/query-builder/common/model/structure.mjs +2 -0
- package/esm2020/query-builder/common/model/type-map.mjs +27 -0
- package/esm2020/query-builder/common/model/type.mjs +6 -0
- package/esm2020/query-builder/common/services/output-query.service.mjs +116 -0
- package/esm2020/query-builder/common/services/query-structure.service.mjs +249 -0
- package/esm2020/query-builder/common/services/type-convertor.service.mjs +42 -0
- package/esm2020/query-builder/pepperi-addons-ngx-lib-query-builder.mjs +5 -0
- package/esm2020/query-builder/public-api.mjs +9 -0
- package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +125 -0
- package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +71 -0
- package/esm2020/query-builder/query-builder.component.mjs +110 -0
- package/esm2020/query-builder/query-builder.module.mjs +70 -0
- package/esm2020/query-builder/query-builder.service.mjs +102 -0
- package/esm2020/remote-loader/addon-block-loader.component.mjs +102 -0
- package/esm2020/remote-loader/addon-block-loader.service.mjs +62 -0
- package/esm2020/remote-loader/pepperi-addons-ngx-lib-remote-loader.mjs +5 -0
- package/esm2020/remote-loader/public-api.mjs +11 -0
- package/esm2020/remote-loader/remote-loader-element.component.mjs +116 -0
- package/esm2020/remote-loader/remote-loader.component.mjs +115 -0
- package/esm2020/remote-loader/remote-loader.model.mjs +2 -0
- package/esm2020/remote-loader/remote-loader.module.mjs +69 -0
- package/esm2020/remote-loader/remote-loader.service.mjs +81 -0
- package/esm2020/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.mjs +5 -0
- package/esm2020/rich-html-textarea/public-api.mjs +6 -0
- package/esm2020/rich-html-textarea/rich-html-textarea.component.mjs +250 -0
- package/esm2020/rich-html-textarea/rich-html-textarea.module.mjs +95 -0
- package/esm2020/search/pepperi-addons-ngx-lib-search.mjs +5 -0
- package/esm2020/search/public-api.mjs +7 -0
- package/esm2020/search/search.component.mjs +317 -0
- package/esm2020/search/search.model.mjs +2 -0
- package/esm2020/search/search.module.mjs +70 -0
- package/esm2020/select/pepperi-addons-ngx-lib-select.mjs +5 -0
- package/esm2020/select/public-api.mjs +6 -0
- package/esm2020/select/select.component.mjs +290 -0
- package/esm2020/select/select.module.mjs +70 -0
- package/esm2020/select-panel/pepperi-addons-ngx-lib-select-panel.mjs +5 -0
- package/esm2020/select-panel/public-api.mjs +7 -0
- package/esm2020/select-panel/select-panel.component.mjs +159 -0
- package/esm2020/select-panel/select-panel.model.mjs +2 -0
- package/esm2020/select-panel/select-panel.module.mjs +70 -0
- package/esm2020/separator/pepperi-addons-ngx-lib-separator.mjs +5 -0
- package/esm2020/separator/public-api.mjs +6 -0
- package/esm2020/separator/separator.component.mjs +63 -0
- package/esm2020/separator/separator.module.mjs +18 -0
- package/esm2020/side-bar/pepperi-addons-ngx-lib-side-bar.mjs +5 -0
- package/esm2020/side-bar/public-api.mjs +7 -0
- package/esm2020/side-bar/side-bar.component.mjs +122 -0
- package/esm2020/side-bar/side-bar.model.mjs +2 -0
- package/esm2020/side-bar/side-bar.module.mjs +55 -0
- package/esm2020/signature/pepperi-addons-ngx-lib-signature.mjs +5 -0
- package/esm2020/signature/public-api.mjs +7 -0
- package/esm2020/signature/signature-dialog.component.mjs +79 -0
- package/esm2020/signature/signature.component.mjs +282 -0
- package/esm2020/signature/signature.module.mjs +91 -0
- package/esm2020/size-detector/pepperi-addons-ngx-lib-size-detector.mjs +5 -0
- package/esm2020/size-detector/public-api.mjs +6 -0
- package/esm2020/size-detector/size-detector.component.mjs +92 -0
- package/esm2020/size-detector/size-detector.module.mjs +35 -0
- package/esm2020/skeleton-loader/pepperi-addons-ngx-lib-skeleton-loader.mjs +5 -0
- package/esm2020/skeleton-loader/public-api.mjs +6 -0
- package/esm2020/skeleton-loader/skeleton-loader.component.mjs +44 -0
- package/esm2020/skeleton-loader/skeleton-loader.module.mjs +24 -0
- package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +75 -0
- package/esm2020/smart-filters/common/filter-actions.component.mjs +29 -0
- package/esm2020/smart-filters/common/model/base-filter-component.mjs +296 -0
- package/esm2020/smart-filters/common/model/creator.mjs +76 -0
- package/esm2020/smart-filters/common/model/field.mjs +117 -0
- package/esm2020/smart-filters/common/model/filter.mjs +2 -0
- package/esm2020/smart-filters/common/model/operator.mjs +278 -0
- package/esm2020/smart-filters/common/model/type.mjs +2 -0
- package/esm2020/smart-filters/date-filter/date-filter.component.mjs +182 -0
- package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +200 -0
- package/esm2020/smart-filters/number-filter/number-filter.component.mjs +136 -0
- package/esm2020/smart-filters/pepperi-addons-ngx-lib-smart-filters.mjs +5 -0
- package/esm2020/smart-filters/public-api.mjs +19 -0
- package/esm2020/smart-filters/smart-filters.component.mjs +141 -0
- package/esm2020/smart-filters/smart-filters.module.mjs +158 -0
- package/esm2020/smart-filters/text-filter/text-filter.component.mjs +93 -0
- package/esm2020/snack-bar/default-snack-bar.component.mjs +29 -0
- package/esm2020/snack-bar/pepperi-addons-ngx-lib-snack-bar.mjs +5 -0
- package/esm2020/snack-bar/public-api.mjs +8 -0
- package/esm2020/snack-bar/snack-bar.component.mjs +26 -0
- package/esm2020/snack-bar/snack-bar.model.mjs +7 -0
- package/esm2020/snack-bar/snack-bar.module.mjs +63 -0
- package/esm2020/snack-bar/snack-bar.service.mjs +60 -0
- package/esm2020/textarea/pepperi-addons-ngx-lib-textarea.mjs +5 -0
- package/esm2020/textarea/public-api.mjs +6 -0
- package/esm2020/textarea/textarea.component.mjs +188 -0
- package/esm2020/textarea/textarea.module.mjs +82 -0
- package/esm2020/textbox/pepperi-addons-ngx-lib-textbox.mjs +5 -0
- package/esm2020/textbox/public-api.mjs +6 -0
- package/esm2020/textbox/textbox-validation.directive.mjs +93 -0
- package/esm2020/textbox/textbox.component.mjs +582 -0
- package/esm2020/textbox/textbox.module.mjs +72 -0
- package/esm2020/top-bar/pepperi-addons-ngx-lib-top-bar.mjs +5 -0
- package/esm2020/top-bar/public-api.mjs +7 -0
- package/esm2020/top-bar/top-bar.component.mjs +112 -0
- package/esm2020/top-bar/top-bar.model.mjs +2 -0
- package/esm2020/top-bar/top-bar.module.mjs +62 -0
- package/fesm2015/pepperi-addons-ngx-lib-address.mjs +170 -0
- package/fesm2015/pepperi-addons-ngx-lib-address.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +297 -0
- package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.mjs +147 -0
- package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs +804 -0
- package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs +237 -0
- package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-color.mjs +404 -0
- package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-date.mjs +458 -0
- package/fesm2015/pepperi-addons-ngx-lib-date.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +192 -0
- package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs +331 -0
- package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-form.mjs +4226 -0
- package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs +136 -0
- package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-image.mjs +388 -0
- package/fesm2015/pepperi-addons-ngx-lib-image.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +425 -0
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-link.mjs +399 -0
- package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-list.mjs +3047 -0
- package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +399 -0
- package/fesm2015/pepperi-addons-ngx-lib-menu.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs +77 -0
- package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +337 -0
- package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +728 -0
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +1216 -0
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +555 -0
- package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +349 -0
- package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-search.mjs +393 -0
- package/fesm2015/pepperi-addons-ngx-lib-search.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs +237 -0
- package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-select.mjs +366 -0
- package/fesm2015/pepperi-addons-ngx-lib-select.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-separator.mjs +89 -0
- package/fesm2015/pepperi-addons-ngx-lib-separator.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs +182 -0
- package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +455 -0
- package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs +134 -0
- package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs +78 -0
- package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +1715 -0
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs +183 -0
- package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs +277 -0
- package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +748 -0
- package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs +180 -0
- package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-address.mjs +170 -0
- package/fesm2020/pepperi-addons-ngx-lib-address.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs +297 -0
- package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-bread-crumbs.mjs +147 -0
- package/fesm2020/pepperi-addons-ngx-lib-bread-crumbs.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs +800 -0
- package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs +237 -0
- package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-color.mjs +401 -0
- package/fesm2020/pepperi-addons-ngx-lib-color.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-date.mjs +454 -0
- package/fesm2020/pepperi-addons-ngx-lib-date.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +191 -0
- package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs +328 -0
- package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-form.mjs +4225 -0
- package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs +136 -0
- package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-image.mjs +386 -0
- package/fesm2020/pepperi-addons-ngx-lib-image.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +422 -0
- package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-link.mjs +399 -0
- package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-list.mjs +3035 -0
- package/fesm2020/pepperi-addons-ngx-lib-list.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +399 -0
- package/fesm2020/pepperi-addons-ngx-lib-menu.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs +77 -0
- package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +336 -0
- package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +726 -0
- package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +1202 -0
- package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +532 -0
- package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs +349 -0
- package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-search.mjs +392 -0
- package/fesm2020/pepperi-addons-ngx-lib-search.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs +236 -0
- package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-select.mjs +366 -0
- package/fesm2020/pepperi-addons-ngx-lib-select.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-separator.mjs +89 -0
- package/fesm2020/pepperi-addons-ngx-lib-separator.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs +182 -0
- package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +450 -0
- package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs +134 -0
- package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs +76 -0
- package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +1708 -0
- package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs +180 -0
- package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs +276 -0
- package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +748 -0
- package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs +179 -0
- package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -0
- package/files-uploader/files-uploader.component.d.ts +60 -0
- package/files-uploader/files-uploader.module.d.ts +21 -0
- package/files-uploader/index.d.ts +5 -0
- package/files-uploader/public-api.d.ts +2 -0
- package/form/field-generator.component.d.ts +37 -0
- package/form/form.component.d.ts +93 -0
- package/form/form.model.d.ts +20 -0
- package/form/form.module.d.ts +50 -0
- package/form/index.d.ts +5 -0
- package/form/indicators.component.d.ts +10 -0
- package/form/internal-button.component.d.ts +42 -0
- package/form/internal-carusel.component.d.ts +39 -0
- package/form/internal-carusel.service.d.ts +10 -0
- package/form/internal-field-generator.component.d.ts +33 -0
- package/form/internal-form.component.d.ts +89 -0
- package/form/internal-list.component.d.ts +95 -0
- package/form/internal-menu.component.d.ts +19 -0
- package/form/internal-page.component.d.ts +73 -0
- package/form/internal-page.service.d.ts +22 -0
- package/form/public-api.d.ts +3 -0
- package/group-buttons/group-buttons.component.d.ts +24 -0
- package/group-buttons/group-buttons.module.d.ts +18 -0
- package/group-buttons/index.d.ts +5 -0
- package/group-buttons/public-api.d.ts +2 -0
- package/image/image.component.d.ts +74 -0
- package/image/image.module.d.ts +20 -0
- package/image/image.service.d.ts +14 -0
- package/image/index.d.ts +5 -0
- package/image/public-api.d.ts +3 -0
- package/images-filmstrip/images-filmstrip.component.d.ts +87 -0
- package/images-filmstrip/images-filmstrip.module.d.ts +22 -0
- package/images-filmstrip/index.d.ts +5 -0
- package/images-filmstrip/public-api.d.ts +2 -0
- package/link/index.d.ts +5 -0
- package/link/link.component.d.ts +121 -0
- package/link/link.module.d.ts +22 -0
- package/link/link.pipes.d.ts +7 -0
- package/link/public-api.d.ts +3 -0
- package/list/index.d.ts +5 -0
- package/list/list-actions.component.d.ts +18 -0
- package/list/list-carousel.component.d.ts +40 -0
- package/list/list-chooser.component.d.ts +29 -0
- package/list/list-pager.component.d.ts +39 -0
- package/list/list-sorting.component.d.ts +30 -0
- package/list/list-total.component.d.ts +11 -0
- package/list/list-views.component.d.ts +35 -0
- package/list/list.component.d.ts +177 -0
- package/list/list.model.d.ts +32 -0
- package/list/list.module.d.ts +34 -0
- package/list/list.pipes.d.ts +16 -0
- package/list/public-api.d.ts +10 -0
- package/list/virtual-scroller.d.ts +183 -0
- package/menu/index.d.ts +5 -0
- package/menu/menu-item.component.d.ts +28 -0
- package/menu/menu.component.d.ts +48 -0
- package/menu/menu.model.d.ts +25 -0
- package/menu/menu.module.d.ts +18 -0
- package/menu/public-api.d.ts +3 -0
- package/package.json +1 -1
- package/page-layout/index.d.ts +5 -0
- package/page-layout/page-layout.component.d.ts +19 -0
- package/page-layout/page-layout.module.d.ts +10 -0
- package/page-layout/public-api.d.ts +2 -0
- package/profile-data-views-list/index.d.ts +5 -0
- package/profile-data-views-list/profile-data-view/profile-data-view.component.d.ts +18 -0
- package/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.d.ts +25 -0
- package/profile-data-views-list/profile-data-views-list.component.d.ts +38 -0
- package/profile-data-views-list/profile-data-views-list.model.d.ts +26 -0
- package/profile-data-views-list/profile-data-views-list.module.d.ts +23 -0
- package/profile-data-views-list/public-api.d.ts +5 -0
- package/quantity-selector/index.d.ts +5 -0
- package/quantity-selector/public-api.d.ts +2 -0
- package/quantity-selector/quantity-selector-validation.directive.d.ts +17 -0
- package/quantity-selector/quantity-selector.component.d.ts +110 -0
- package/quantity-selector/quantity-selector.module.d.ts +23 -0
- package/quantity-selector/quantity-selector.pipes.d.ts +7 -0
- package/query-builder/common/model/field.d.ts +8 -0
- package/query-builder/common/model/filter.d.ts +6 -0
- package/query-builder/common/model/legacy.d.ts +31 -0
- package/query-builder/common/model/operator-unit.d.ts +13 -0
- package/query-builder/common/model/operator.d.ts +31 -0
- package/query-builder/common/model/structure.d.ts +4 -0
- package/query-builder/common/model/type-map.d.ts +12 -0
- package/query-builder/common/model/type.d.ts +4 -0
- package/query-builder/common/services/output-query.service.d.ts +47 -0
- package/query-builder/common/services/query-structure.service.d.ts +83 -0
- package/query-builder/common/services/type-convertor.service.d.ts +13 -0
- package/query-builder/index.d.ts +5 -0
- package/query-builder/public-api.d.ts +5 -0
- package/query-builder/query-builder-item/query-builder-item.component.d.ts +41 -0
- package/query-builder/query-builder-section/query-builder-section.component.d.ts +30 -0
- package/query-builder/query-builder.component.d.ts +39 -0
- package/query-builder/query-builder.module.d.ts +20 -0
- package/query-builder/query-builder.service.d.ts +30 -0
- package/remote-loader/addon-block-loader.component.d.ts +36 -0
- package/remote-loader/addon-block-loader.service.d.ts +15 -0
- package/remote-loader/index.d.ts +5 -0
- package/remote-loader/public-api.d.ts +7 -0
- package/remote-loader/remote-loader-element.component.d.ts +32 -0
- package/remote-loader/remote-loader.component.d.ts +25 -0
- package/remote-loader/remote-loader.model.d.ts +41 -0
- package/remote-loader/remote-loader.module.d.ts +15 -0
- package/remote-loader/remote-loader.service.d.ts +15 -0
- package/rich-html-textarea/index.d.ts +5 -0
- package/rich-html-textarea/public-api.d.ts +2 -0
- package/rich-html-textarea/rich-html-textarea.component.d.ts +80 -0
- package/rich-html-textarea/rich-html-textarea.module.d.ts +25 -0
- package/search/index.d.ts +5 -0
- package/search/public-api.d.ts +3 -0
- package/search/search.component.d.ts +65 -0
- package/search/search.model.d.ts +14 -0
- package/search/search.module.d.ts +20 -0
- package/select/index.d.ts +5 -0
- package/select/public-api.d.ts +2 -0
- package/select/select.component.d.ts +67 -0
- package/select/select.module.d.ts +20 -0
- package/select-panel/index.d.ts +5 -0
- package/select-panel/public-api.d.ts +3 -0
- package/select-panel/select-panel.component.d.ts +51 -0
- package/select-panel/select-panel.model.d.ts +5 -0
- package/select-panel/select-panel.module.d.ts +19 -0
- package/separator/index.d.ts +5 -0
- package/separator/public-api.d.ts +2 -0
- package/separator/separator.component.d.ts +22 -0
- package/separator/separator.module.d.ts +8 -0
- package/side-bar/index.d.ts +5 -0
- package/side-bar/public-api.d.ts +3 -0
- package/side-bar/side-bar.component.d.ts +42 -0
- package/side-bar/side-bar.model.d.ts +4 -0
- package/side-bar/side-bar.module.d.ts +16 -0
- package/signature/index.d.ts +5 -0
- package/signature/public-api.d.ts +3 -0
- package/signature/signature-dialog.component.d.ts +29 -0
- package/signature/signature.component.d.ts +59 -0
- package/signature/signature.module.d.ts +25 -0
- package/size-detector/index.d.ts +5 -0
- package/size-detector/public-api.d.ts +2 -0
- package/size-detector/size-detector.component.d.ts +29 -0
- package/size-detector/size-detector.module.d.ts +11 -0
- package/skeleton-loader/index.d.ts +5 -0
- package/skeleton-loader/public-api.d.ts +2 -0
- package/skeleton-loader/skeleton-loader.component.d.ts +20 -0
- package/skeleton-loader/skeleton-loader.module.d.ts +9 -0
- package/smart-filters/boolean-filter/boolean-filter.component.d.ts +29 -0
- package/smart-filters/common/filter-actions.component.d.ts +12 -0
- package/smart-filters/common/model/base-filter-component.d.ts +74 -0
- package/smart-filters/common/model/creator.d.ts +6 -0
- package/smart-filters/common/model/field.d.ts +69 -0
- package/smart-filters/common/model/filter.d.ts +11 -0
- package/smart-filters/common/model/operator.d.ts +52 -0
- package/smart-filters/common/model/type.d.ts +4 -0
- package/smart-filters/date-filter/date-filter.component.d.ts +61 -0
- package/smart-filters/index.d.ts +5 -0
- package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +57 -0
- package/smart-filters/number-filter/number-filter.component.d.ts +53 -0
- package/smart-filters/public-api.d.ts +14 -0
- package/smart-filters/smart-filters.component.d.ts +35 -0
- package/smart-filters/smart-filters.module.d.ts +37 -0
- package/smart-filters/text-filter/text-filter.component.d.ts +29 -0
- package/snack-bar/default-snack-bar.component.d.ts +13 -0
- package/snack-bar/index.d.ts +5 -0
- package/snack-bar/public-api.d.ts +4 -0
- package/snack-bar/snack-bar.component.d.ts +12 -0
- package/snack-bar/snack-bar.model.d.ts +8 -0
- package/snack-bar/snack-bar.module.d.ts +19 -0
- package/snack-bar/snack-bar.service.d.ts +24 -0
- package/textarea/index.d.ts +5 -0
- package/textarea/public-api.d.ts +2 -0
- package/textarea/textarea.component.d.ts +56 -0
- package/textarea/textarea.module.d.ts +23 -0
- package/textbox/index.d.ts +5 -0
- package/textbox/public-api.d.ts +2 -0
- package/textbox/textbox-validation.directive.d.ts +22 -0
- package/textbox/textbox.component.d.ts +157 -0
- package/textbox/textbox.module.d.ts +22 -0
- package/top-bar/index.d.ts +5 -0
- package/top-bar/public-api.d.ts +3 -0
- package/top-bar/top-bar.component.d.ts +39 -0
- package/top-bar/top-bar.model.d.ts +4 -0
- package/top-bar/top-bar.module.d.ts +18 -0
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { EventEmitter, Component, Injectable, Input, Output, ViewChild, NgModule } from '@angular/core';
|
|
3
|
+
import * as i2 from '@angular/common';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import * as i3 from '@angular/forms';
|
|
6
|
+
import { FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
7
|
+
import * as i5 from '@angular/material/core';
|
|
8
|
+
import { MatCommonModule } from '@angular/material/core';
|
|
9
|
+
import * as i4 from '@angular/material/autocomplete';
|
|
10
|
+
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
11
|
+
import * as i6 from '@angular/material/button';
|
|
12
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
13
|
+
import * as i7 from '@angular/material/form-field';
|
|
14
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
15
|
+
import * as i8 from '@angular/material/icon';
|
|
16
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
17
|
+
import * as i10 from '@angular/material/input';
|
|
18
|
+
import { MatInputModule } from '@angular/material/input';
|
|
19
|
+
import * as i1 from '@pepperi-addons/ngx-lib';
|
|
20
|
+
import { PepScreenSizeType, PepNgxLibModule } from '@pepperi-addons/ngx-lib';
|
|
21
|
+
import * as i1$1 from '@pepperi-addons/ngx-lib/icon';
|
|
22
|
+
import { pepIconSystemClose, pepIconSystemSearch, PepIconModule } from '@pepperi-addons/ngx-lib/icon';
|
|
23
|
+
import { Subject } from 'rxjs';
|
|
24
|
+
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
25
|
+
import { debounceTime, takeUntil } from 'rxjs/operators';
|
|
26
|
+
import * as i11 from '@ngx-translate/core';
|
|
27
|
+
|
|
28
|
+
class PepSearchComponent {
|
|
29
|
+
constructor(hostElement, layoutService) {
|
|
30
|
+
this.hostElement = hostElement;
|
|
31
|
+
this.layoutService = layoutService;
|
|
32
|
+
this.triggerOn = 'click';
|
|
33
|
+
this.autoCompleteTop = 20;
|
|
34
|
+
this._autoCompleteValues = [];
|
|
35
|
+
// @Input() shrinkInSmallScreen = true;
|
|
36
|
+
this._shrink = 'small-screen';
|
|
37
|
+
this._searchControl = null;
|
|
38
|
+
this._useAsWebComponent = false;
|
|
39
|
+
/**
|
|
40
|
+
* The size of the button.
|
|
41
|
+
*
|
|
42
|
+
* @type {PepSizeType}
|
|
43
|
+
* @memberof PepButtonComponent
|
|
44
|
+
*/
|
|
45
|
+
this.sizeType = 'md';
|
|
46
|
+
this.search = new EventEmitter();
|
|
47
|
+
this.autocompleteChange = new EventEmitter();
|
|
48
|
+
this.stateChange = new EventEmitter();
|
|
49
|
+
this._destroyed = new Subject();
|
|
50
|
+
this.type = 'regular';
|
|
51
|
+
this.state = 'open';
|
|
52
|
+
this.lastValue = null;
|
|
53
|
+
this.showFloatSrcBtn = true;
|
|
54
|
+
this.isRtl = false;
|
|
55
|
+
this.isFloating = false;
|
|
56
|
+
//
|
|
57
|
+
}
|
|
58
|
+
set autoCompleteValues(val) {
|
|
59
|
+
this.type = 'auto-complete';
|
|
60
|
+
this._autoCompleteValues = val;
|
|
61
|
+
}
|
|
62
|
+
get autoCompleteValues() {
|
|
63
|
+
return this._autoCompleteValues;
|
|
64
|
+
}
|
|
65
|
+
set shrink(value) {
|
|
66
|
+
this._shrink = value;
|
|
67
|
+
this.setIsFloating();
|
|
68
|
+
}
|
|
69
|
+
get shrink() {
|
|
70
|
+
return this._shrink;
|
|
71
|
+
}
|
|
72
|
+
set value(val) {
|
|
73
|
+
this.createSearchControlIfNotExist();
|
|
74
|
+
this.searchControl.setValue(val);
|
|
75
|
+
}
|
|
76
|
+
get value() {
|
|
77
|
+
return this.searchControl.value || '';
|
|
78
|
+
}
|
|
79
|
+
set searchControl(ctrl) {
|
|
80
|
+
this._searchControl = ctrl;
|
|
81
|
+
}
|
|
82
|
+
get searchControl() {
|
|
83
|
+
return this._searchControl;
|
|
84
|
+
}
|
|
85
|
+
set useAsWebComponent(value) {
|
|
86
|
+
if (value) {
|
|
87
|
+
this.exportFunctionsOnHostElement();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
get useAsWebComponent() {
|
|
91
|
+
return this._useAsWebComponent;
|
|
92
|
+
}
|
|
93
|
+
setIsFloating() {
|
|
94
|
+
if (this.shrink === 'small-screen') {
|
|
95
|
+
this.isFloating = this.screenSize > PepScreenSizeType.SM;
|
|
96
|
+
}
|
|
97
|
+
else if (this.shrink === 'always') {
|
|
98
|
+
this.isFloating = true;
|
|
99
|
+
}
|
|
100
|
+
else { // never
|
|
101
|
+
this.isFloating = false;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
ngOnInit() {
|
|
105
|
+
this.layoutService.onResize$.pipe().subscribe((size) => {
|
|
106
|
+
this.screenSize = size;
|
|
107
|
+
this.setIsFloating();
|
|
108
|
+
// Just for the smoote animation
|
|
109
|
+
if (this.isFloating) {
|
|
110
|
+
this.showFloatSrcBtn = false;
|
|
111
|
+
this.showFloatingButton();
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
this.fadeState = 'fadeIn';
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
this.isRtl = this.layoutService.isRtl();
|
|
118
|
+
this.createSearchControlIfNotExist();
|
|
119
|
+
this.searchControl.valueChanges
|
|
120
|
+
.pipe(debounceTime(1000), takeUntil(this._destroyed))
|
|
121
|
+
.subscribe((newValue) => {
|
|
122
|
+
if (this.type === 'auto-complete') {
|
|
123
|
+
this.autoCompleteValues = [];
|
|
124
|
+
if (newValue &&
|
|
125
|
+
newValue.length > 2 &&
|
|
126
|
+
newValue !== this.lastValue) {
|
|
127
|
+
this.autocompleteChange.emit({
|
|
128
|
+
value: newValue,
|
|
129
|
+
top: this.autoCompleteTop,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
else if (this.type === 'regular') {
|
|
134
|
+
if (this.triggerOn === 'keydown') {
|
|
135
|
+
this.emitSearchClick();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
ngOnDestroy() {
|
|
141
|
+
this._destroyed.next();
|
|
142
|
+
this._destroyed.complete();
|
|
143
|
+
}
|
|
144
|
+
exportFunctionsOnHostElement() {
|
|
145
|
+
// This is for web component usage for use those functions.
|
|
146
|
+
this.hostElement.nativeElement.initSearch = this.initSearch.bind(this);
|
|
147
|
+
}
|
|
148
|
+
createSearchControlIfNotExist() {
|
|
149
|
+
if (!this.searchControl) {
|
|
150
|
+
this.searchControl = new FormControl();
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
blur() {
|
|
154
|
+
setTimeout(() => {
|
|
155
|
+
this.searchInput.nativeElement.blur();
|
|
156
|
+
}, 0);
|
|
157
|
+
}
|
|
158
|
+
showFloatingButton() {
|
|
159
|
+
this.fadeState = 'fadeOut';
|
|
160
|
+
setTimeout(() => {
|
|
161
|
+
this.stateChange.emit({ state: 'close' });
|
|
162
|
+
this.showFloatSrcBtn = true;
|
|
163
|
+
}, 500);
|
|
164
|
+
// close the phone keyboard
|
|
165
|
+
this.blur();
|
|
166
|
+
}
|
|
167
|
+
initSearch() {
|
|
168
|
+
this.lastValue = null;
|
|
169
|
+
this.searchControl.setValue('');
|
|
170
|
+
}
|
|
171
|
+
onClearClicked(event) {
|
|
172
|
+
if (this.type === 'auto-complete') {
|
|
173
|
+
this.autoCompleteValues = [];
|
|
174
|
+
}
|
|
175
|
+
this.initSearch();
|
|
176
|
+
this.search.emit({ value: '' });
|
|
177
|
+
event.preventDefault();
|
|
178
|
+
/*
|
|
179
|
+
if (this.isFloating) {
|
|
180
|
+
this.showFloatingButton();
|
|
181
|
+
} */
|
|
182
|
+
}
|
|
183
|
+
onSearchClicked() {
|
|
184
|
+
if (this.isFloating) {
|
|
185
|
+
this.triggerSearch();
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
if (this.state === 'open') {
|
|
189
|
+
this.triggerSearch();
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
this.state = 'open';
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
onFocusout() {
|
|
197
|
+
var _a;
|
|
198
|
+
if (this.isFloating && ((_a = this.searchControl.value) === null || _a === void 0 ? void 0 : _a.length) === 0) {
|
|
199
|
+
this.showFloatingButton();
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
onSearch(event) {
|
|
203
|
+
// Stop the event propagation - cause we don't want fire two events.
|
|
204
|
+
event.stopPropagation();
|
|
205
|
+
this.triggerSearch();
|
|
206
|
+
}
|
|
207
|
+
triggerSearch() {
|
|
208
|
+
if (this.type === 'auto-complete') {
|
|
209
|
+
this.autoCompleteValues = [];
|
|
210
|
+
}
|
|
211
|
+
this.blur();
|
|
212
|
+
this.emitSearchClick();
|
|
213
|
+
}
|
|
214
|
+
animateSearch() {
|
|
215
|
+
if (this.state === 'open') {
|
|
216
|
+
this.fadeState =
|
|
217
|
+
this.fadeState === 'fadeOut' ? 'fadeIn' : 'fadeOut';
|
|
218
|
+
if (this.fadeState === 'fadeIn') {
|
|
219
|
+
this.stateChange.emit({ state: 'open' });
|
|
220
|
+
this.showFloatSrcBtn = false;
|
|
221
|
+
this.searchInput.nativeElement.focus();
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
this.fadeState = 'fadeIn';
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
// do the emit just when done because of the line break when closing the search
|
|
229
|
+
// component and showen all other components before
|
|
230
|
+
animateSearchDone() {
|
|
231
|
+
if (this.state !== 'open') {
|
|
232
|
+
this.stateChange.emit({ state: 'close' });
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
emitSearchClick() {
|
|
236
|
+
const value = this.searchControl.value;
|
|
237
|
+
if (value !== this.lastValue) {
|
|
238
|
+
this.lastValue = value;
|
|
239
|
+
this.search.emit({ value });
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
PepSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSearchComponent, deps: [{ token: i0.ElementRef }, { token: i1.PepLayoutService }], target: i0.ɵɵFactoryTarget.Component });
|
|
244
|
+
PepSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepSearchComponent, selector: "pep-search", inputs: { triggerOn: "triggerOn", autoCompleteTop: "autoCompleteTop", autoCompleteValues: "autoCompleteValues", shrink: "shrink", value: "value", searchControl: "searchControl", useAsWebComponent: "useAsWebComponent", sizeType: "sizeType" }, outputs: { search: "search", autocompleteChange: "autocompleteChange", stateChange: "stateChange" }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }], ngImport: i0, template: "<!-- <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n</ng-container> -->\n<ng-container *ngIf=\"shrink !== 'never'; then shrinkBlock; else staticBlock\"></ng-container>\n<ng-template #shrinkBlock>\n <div pepRtlClass class=\"pep-search-container {{ sizeType }}\" [ngClass]=\"{ 'pep-floating-search': isFloating}\"\n [@fadeInOut]=\"fadeState\">\n <div class=\"pep-search-input\">\n <ng-container *ngIf=\"type === 'auto-complete'\">\n <ng-container *ngTemplateOutlet=\"autoCompleteBlock\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"type === 'regular'\">\n <ng-container *ngTemplateOutlet=\"regularBlock\"></ng-container>\n </ng-container>\n </div>\n </div>\n <button *ngIf=\"isFloating && fadeState !='fadeIn' && showFloatSrcBtn\"\n class=\"pep-button icon-button {{ sizeType }} weak\" mat-button (click)=\"animateSearch()\">\n <mat-icon>\n <pep-icon name=\"system_search\"></pep-icon>\n </mat-icon>\n </button>\n</ng-template>\n<ng-template #staticBlock>\n <div pepRtlClass class=\"pep-search-container {{ sizeType }}\">\n <div class=\"pep-search-input\">\n <ng-container *ngIf=\"type === 'auto-complete'\">\n <ng-container *ngTemplateOutlet=\"autoCompleteBlock\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"type === 'regular'\">\n <ng-container *ngTemplateOutlet=\"regularBlock\"></ng-container>\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #autoCompleteBlock>\n <mat-form-field appearance=\"outline\">\n <!-- (@slideInOut.done)=\"animateSearchDone()\" [@slideInOut]=\"state\" -->\n <input #searchInput class=\"body-sm pep-search-input\" matInput autocomplete=\"off\"\n [ngStyle]=\"{ textAlign: isRtl ? 'right' : 'left' }\" type=\"text\" (keyup.enter)=\"onSearch($event)\" results=\"5\"\n [formControl]=\"searchControl\" placeholder=\"{{ 'SEARCH.HINT' | translate }}...\" [matAutocomplete]=\"auto\" />\n <mat-autocomplete #auto=\"matAutocomplete\" class=\"pep-select\">\n <mat-option *ngFor=\"let value of autoCompleteValues\" [value]=\"value\" (click)=\"triggerSearch()\">\n {{value}}\n </mat-option>\n <mat-option *ngIf=\"autoCompleteValues?.length > autoCompleteTop - 1\" [value]=\"value\"\n (click)=\"triggerSearch()\">{{ 'SEARCH.MORE_RESULTS' | translate }}</mat-option>\n </mat-autocomplete>\n <div matSuffix class=\"flex align-center\">\n <ng-container *ngIf=\"triggerOn === 'click'\">\n <ng-container *ngTemplateOutlet=\"triggerOnClickBlock\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"triggerOn === 'keydown'\">\n <ng-container *ngTemplateOutlet=\"triggerOnKeydownBlock\"></ng-container>\n </ng-container>\n </div>\n </mat-form-field>\n</ng-template>\n\n<ng-template #regularBlock>\n <mat-form-field appearance=\"outline\">\n <input #searchInput class=\"body-sm pep-search-input\" matInput autocomplete=\"off\"\n [ngStyle]=\"{ textAlign: isRtl ? 'right' : 'left' }\" type=\"text\" (keyup.enter)=\"onSearch($event)\"\n [formControl]=\"searchControl\" placeholder=\"{{ 'SEARCH.HINT' | translate }}...\" (focusout)=\"onFocusout()\" />\n <div matSuffix class=\"flex align-center\">\n <ng-container *ngIf=\"triggerOn === 'click'\">\n <ng-container *ngTemplateOutlet=\"triggerOnClickBlock\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"triggerOn === 'keydown'\">\n <ng-container *ngTemplateOutlet=\"triggerOnKeydownBlock\"></ng-container>\n </ng-container>\n </div>\n </mat-form-field>\n</ng-template>\n<ng-template #triggerOnClickBlock>\n <mat-icon class=\"pep-text-icon pep-pointer\"\n [ngClass]=\"{'hide-clear-icon' : state == 'close' || searchControl.value?.length === 0}\"\n (click)=\"onClearClicked($event)\">\n <pep-icon name=\"system_close\"></pep-icon>\n </mat-icon>\n <span class=\"pep-text-icon pep-spacing-element pep-v-separator\"\n [ngClass]=\"{'hide-clear-icon' : state == 'close' || searchControl.value?.length === 0}\">|</span>\n <mat-icon class=\"pep-text-icon pep-pointer\" (click)=\"onSearchClicked()\">\n <pep-icon name=\"system_search\"></pep-icon>\n </mat-icon>\n</ng-template>\n\n<ng-template #triggerOnKeydownBlock>\n <ng-container *ngIf=\"searchControl.value?.length > 0; then clearBlock; else searchBlock\"></ng-container>\n <ng-template #clearBlock>\n <button class=\"pep-button regular {{ sizeType }}\" mat-button (click)=\"onClearClicked($event)\">\n <mat-icon>\n <pep-icon name=\"system_close\"></pep-icon>\n </mat-icon>\n </button>\n </ng-template>\n <ng-template #searchBlock>\n <mat-icon class=\"pep-text-icon\">\n <pep-icon name=\"system_search\"></pep-icon>\n </mat-icon>\n </ng-template>\n</ng-template>", styles: [".pep-search-container .pep-search-input .mat-form-field{display:inherit}.pep-search-container .pep-search-input .pep-v-separator{padding:var(--pep-spacing-xs, .25rem) 0;height:100%}.pep-search-container .pep-search-input .pep-text-icon.pep-pointer{cursor:pointer}.pep-search-container .pep-search-input .hide-clear-icon{visibility:hidden}.pep-search-container.pep-floating-search{display:inline-block}.pep-search-container.pep-floating-search.pep-is-action-button-visable{width:calc(100% - (var(--pep-spacing-sm, .5rem) * 2 + var(--pep-spacing-xl, 1.5rem)))}@media (max-width: 599px){.pep-search-container ::ng-deep .mat-button-wrapper{max-width:3.125rem}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i4.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1.PepRtlClassDirective, selector: "[pepRtlClass]" }, { kind: "component", type: i1$1.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }], animations: [
|
|
245
|
+
trigger('slideInOut', [
|
|
246
|
+
state('close', style({
|
|
247
|
+
width: '0',
|
|
248
|
+
padding: '0',
|
|
249
|
+
border: 'none',
|
|
250
|
+
})),
|
|
251
|
+
state('open', style({
|
|
252
|
+
width: 'inherit',
|
|
253
|
+
})),
|
|
254
|
+
transition('close => open', animate('500ms ease-in-out')),
|
|
255
|
+
transition('open => close', animate('500ms ease-in-out')),
|
|
256
|
+
]),
|
|
257
|
+
trigger('fadeInOut', [
|
|
258
|
+
state('fadeOut', style({
|
|
259
|
+
opacity: 0,
|
|
260
|
+
width: '1px',
|
|
261
|
+
})),
|
|
262
|
+
state('fadeIn', style({
|
|
263
|
+
opacity: 1,
|
|
264
|
+
width: '100%',
|
|
265
|
+
})),
|
|
266
|
+
transition('fadeOut => fadeIn', animate(300, style({ opacity: 1, width: '100%' }))),
|
|
267
|
+
transition('fadeIn => fadeOut', animate(350, style({ opacity: 0, width: '1px' }))),
|
|
268
|
+
]),
|
|
269
|
+
] });
|
|
270
|
+
PepSearchComponent.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSearchComponent });
|
|
271
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSearchComponent, decorators: [{
|
|
272
|
+
type: Component,
|
|
273
|
+
args: [{ selector: 'pep-search', animations: [
|
|
274
|
+
trigger('slideInOut', [
|
|
275
|
+
state('close', style({
|
|
276
|
+
width: '0',
|
|
277
|
+
padding: '0',
|
|
278
|
+
border: 'none',
|
|
279
|
+
})),
|
|
280
|
+
state('open', style({
|
|
281
|
+
width: 'inherit',
|
|
282
|
+
})),
|
|
283
|
+
transition('close => open', animate('500ms ease-in-out')),
|
|
284
|
+
transition('open => close', animate('500ms ease-in-out')),
|
|
285
|
+
]),
|
|
286
|
+
trigger('fadeInOut', [
|
|
287
|
+
state('fadeOut', style({
|
|
288
|
+
opacity: 0,
|
|
289
|
+
width: '1px',
|
|
290
|
+
})),
|
|
291
|
+
state('fadeIn', style({
|
|
292
|
+
opacity: 1,
|
|
293
|
+
width: '100%',
|
|
294
|
+
})),
|
|
295
|
+
transition('fadeOut => fadeIn', animate(300, style({ opacity: 1, width: '100%' }))),
|
|
296
|
+
transition('fadeIn => fadeOut', animate(350, style({ opacity: 0, width: '1px' }))),
|
|
297
|
+
]),
|
|
298
|
+
], template: "<!-- <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n</ng-container> -->\n<ng-container *ngIf=\"shrink !== 'never'; then shrinkBlock; else staticBlock\"></ng-container>\n<ng-template #shrinkBlock>\n <div pepRtlClass class=\"pep-search-container {{ sizeType }}\" [ngClass]=\"{ 'pep-floating-search': isFloating}\"\n [@fadeInOut]=\"fadeState\">\n <div class=\"pep-search-input\">\n <ng-container *ngIf=\"type === 'auto-complete'\">\n <ng-container *ngTemplateOutlet=\"autoCompleteBlock\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"type === 'regular'\">\n <ng-container *ngTemplateOutlet=\"regularBlock\"></ng-container>\n </ng-container>\n </div>\n </div>\n <button *ngIf=\"isFloating && fadeState !='fadeIn' && showFloatSrcBtn\"\n class=\"pep-button icon-button {{ sizeType }} weak\" mat-button (click)=\"animateSearch()\">\n <mat-icon>\n <pep-icon name=\"system_search\"></pep-icon>\n </mat-icon>\n </button>\n</ng-template>\n<ng-template #staticBlock>\n <div pepRtlClass class=\"pep-search-container {{ sizeType }}\">\n <div class=\"pep-search-input\">\n <ng-container *ngIf=\"type === 'auto-complete'\">\n <ng-container *ngTemplateOutlet=\"autoCompleteBlock\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"type === 'regular'\">\n <ng-container *ngTemplateOutlet=\"regularBlock\"></ng-container>\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #autoCompleteBlock>\n <mat-form-field appearance=\"outline\">\n <!-- (@slideInOut.done)=\"animateSearchDone()\" [@slideInOut]=\"state\" -->\n <input #searchInput class=\"body-sm pep-search-input\" matInput autocomplete=\"off\"\n [ngStyle]=\"{ textAlign: isRtl ? 'right' : 'left' }\" type=\"text\" (keyup.enter)=\"onSearch($event)\" results=\"5\"\n [formControl]=\"searchControl\" placeholder=\"{{ 'SEARCH.HINT' | translate }}...\" [matAutocomplete]=\"auto\" />\n <mat-autocomplete #auto=\"matAutocomplete\" class=\"pep-select\">\n <mat-option *ngFor=\"let value of autoCompleteValues\" [value]=\"value\" (click)=\"triggerSearch()\">\n {{value}}\n </mat-option>\n <mat-option *ngIf=\"autoCompleteValues?.length > autoCompleteTop - 1\" [value]=\"value\"\n (click)=\"triggerSearch()\">{{ 'SEARCH.MORE_RESULTS' | translate }}</mat-option>\n </mat-autocomplete>\n <div matSuffix class=\"flex align-center\">\n <ng-container *ngIf=\"triggerOn === 'click'\">\n <ng-container *ngTemplateOutlet=\"triggerOnClickBlock\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"triggerOn === 'keydown'\">\n <ng-container *ngTemplateOutlet=\"triggerOnKeydownBlock\"></ng-container>\n </ng-container>\n </div>\n </mat-form-field>\n</ng-template>\n\n<ng-template #regularBlock>\n <mat-form-field appearance=\"outline\">\n <input #searchInput class=\"body-sm pep-search-input\" matInput autocomplete=\"off\"\n [ngStyle]=\"{ textAlign: isRtl ? 'right' : 'left' }\" type=\"text\" (keyup.enter)=\"onSearch($event)\"\n [formControl]=\"searchControl\" placeholder=\"{{ 'SEARCH.HINT' | translate }}...\" (focusout)=\"onFocusout()\" />\n <div matSuffix class=\"flex align-center\">\n <ng-container *ngIf=\"triggerOn === 'click'\">\n <ng-container *ngTemplateOutlet=\"triggerOnClickBlock\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"triggerOn === 'keydown'\">\n <ng-container *ngTemplateOutlet=\"triggerOnKeydownBlock\"></ng-container>\n </ng-container>\n </div>\n </mat-form-field>\n</ng-template>\n<ng-template #triggerOnClickBlock>\n <mat-icon class=\"pep-text-icon pep-pointer\"\n [ngClass]=\"{'hide-clear-icon' : state == 'close' || searchControl.value?.length === 0}\"\n (click)=\"onClearClicked($event)\">\n <pep-icon name=\"system_close\"></pep-icon>\n </mat-icon>\n <span class=\"pep-text-icon pep-spacing-element pep-v-separator\"\n [ngClass]=\"{'hide-clear-icon' : state == 'close' || searchControl.value?.length === 0}\">|</span>\n <mat-icon class=\"pep-text-icon pep-pointer\" (click)=\"onSearchClicked()\">\n <pep-icon name=\"system_search\"></pep-icon>\n </mat-icon>\n</ng-template>\n\n<ng-template #triggerOnKeydownBlock>\n <ng-container *ngIf=\"searchControl.value?.length > 0; then clearBlock; else searchBlock\"></ng-container>\n <ng-template #clearBlock>\n <button class=\"pep-button regular {{ sizeType }}\" mat-button (click)=\"onClearClicked($event)\">\n <mat-icon>\n <pep-icon name=\"system_close\"></pep-icon>\n </mat-icon>\n </button>\n </ng-template>\n <ng-template #searchBlock>\n <mat-icon class=\"pep-text-icon\">\n <pep-icon name=\"system_search\"></pep-icon>\n </mat-icon>\n </ng-template>\n</ng-template>", styles: [".pep-search-container .pep-search-input .mat-form-field{display:inherit}.pep-search-container .pep-search-input .pep-v-separator{padding:var(--pep-spacing-xs, .25rem) 0;height:100%}.pep-search-container .pep-search-input .pep-text-icon.pep-pointer{cursor:pointer}.pep-search-container .pep-search-input .hide-clear-icon{visibility:hidden}.pep-search-container.pep-floating-search{display:inline-block}.pep-search-container.pep-floating-search.pep-is-action-button-visable{width:calc(100% - (var(--pep-spacing-sm, .5rem) * 2 + var(--pep-spacing-xl, 1.5rem)))}@media (max-width: 599px){.pep-search-container ::ng-deep .mat-button-wrapper{max-width:3.125rem}}\n"] }]
|
|
299
|
+
}, {
|
|
300
|
+
type: Injectable
|
|
301
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.PepLayoutService }]; }, propDecorators: { triggerOn: [{
|
|
302
|
+
type: Input
|
|
303
|
+
}], autoCompleteTop: [{
|
|
304
|
+
type: Input
|
|
305
|
+
}], autoCompleteValues: [{
|
|
306
|
+
type: Input
|
|
307
|
+
}], shrink: [{
|
|
308
|
+
type: Input
|
|
309
|
+
}], value: [{
|
|
310
|
+
type: Input
|
|
311
|
+
}], searchControl: [{
|
|
312
|
+
type: Input
|
|
313
|
+
}], useAsWebComponent: [{
|
|
314
|
+
type: Input
|
|
315
|
+
}], sizeType: [{
|
|
316
|
+
type: Input
|
|
317
|
+
}], search: [{
|
|
318
|
+
type: Output
|
|
319
|
+
}], autocompleteChange: [{
|
|
320
|
+
type: Output
|
|
321
|
+
}], stateChange: [{
|
|
322
|
+
type: Output
|
|
323
|
+
}], searchInput: [{
|
|
324
|
+
type: ViewChild,
|
|
325
|
+
args: ['searchInput']
|
|
326
|
+
}] } });
|
|
327
|
+
|
|
328
|
+
class PepSearchModule {
|
|
329
|
+
constructor(pepIconRegistry) {
|
|
330
|
+
this.pepIconRegistry = pepIconRegistry;
|
|
331
|
+
this.pepIconRegistry.registerIcons([
|
|
332
|
+
pepIconSystemClose,
|
|
333
|
+
pepIconSystemSearch,
|
|
334
|
+
]);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
PepSearchModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSearchModule, deps: [{ token: i1$1.PepIconRegistry }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
338
|
+
PepSearchModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: PepSearchModule, declarations: [PepSearchComponent], imports: [CommonModule,
|
|
339
|
+
ReactiveFormsModule,
|
|
340
|
+
// Material modules,
|
|
341
|
+
MatCommonModule,
|
|
342
|
+
MatAutocompleteModule,
|
|
343
|
+
MatButtonModule,
|
|
344
|
+
MatFormFieldModule,
|
|
345
|
+
MatIconModule,
|
|
346
|
+
// ngx-lib modules
|
|
347
|
+
PepNgxLibModule,
|
|
348
|
+
PepIconModule,
|
|
349
|
+
MatInputModule], exports: [PepSearchComponent] });
|
|
350
|
+
PepSearchModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSearchModule, imports: [CommonModule,
|
|
351
|
+
ReactiveFormsModule,
|
|
352
|
+
// Material modules,
|
|
353
|
+
MatCommonModule,
|
|
354
|
+
MatAutocompleteModule,
|
|
355
|
+
MatButtonModule,
|
|
356
|
+
MatFormFieldModule,
|
|
357
|
+
MatIconModule,
|
|
358
|
+
// ngx-lib modules
|
|
359
|
+
PepNgxLibModule,
|
|
360
|
+
PepIconModule,
|
|
361
|
+
MatInputModule] });
|
|
362
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSearchModule, decorators: [{
|
|
363
|
+
type: NgModule,
|
|
364
|
+
args: [{
|
|
365
|
+
imports: [
|
|
366
|
+
CommonModule,
|
|
367
|
+
ReactiveFormsModule,
|
|
368
|
+
// Material modules,
|
|
369
|
+
MatCommonModule,
|
|
370
|
+
MatAutocompleteModule,
|
|
371
|
+
MatButtonModule,
|
|
372
|
+
MatFormFieldModule,
|
|
373
|
+
MatIconModule,
|
|
374
|
+
// ngx-lib modules
|
|
375
|
+
PepNgxLibModule,
|
|
376
|
+
PepIconModule,
|
|
377
|
+
MatInputModule,
|
|
378
|
+
],
|
|
379
|
+
exports: [PepSearchComponent],
|
|
380
|
+
declarations: [PepSearchComponent],
|
|
381
|
+
}]
|
|
382
|
+
}], ctorParameters: function () { return [{ type: i1$1.PepIconRegistry }]; } });
|
|
383
|
+
|
|
384
|
+
/*
|
|
385
|
+
* Public API Surface of ngx-lib/search
|
|
386
|
+
*/
|
|
387
|
+
|
|
388
|
+
/**
|
|
389
|
+
* Generated bundle index. Do not edit.
|
|
390
|
+
*/
|
|
391
|
+
|
|
392
|
+
export { PepSearchComponent, PepSearchModule };
|
|
393
|
+
//# sourceMappingURL=pepperi-addons-ngx-lib-search.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pepperi-addons-ngx-lib-search.mjs","sources":["../../../projects/ngx-lib/search/search.component.ts","../../../projects/ngx-lib/search/search.component.html","../../../projects/ngx-lib/search/search.module.ts","../../../projects/ngx-lib/search/public-api.ts","../../../projects/ngx-lib/search/pepperi-addons-ngx-lib-search.ts"],"sourcesContent":["import {\n Component,\n OnInit,\n Injectable,\n Input,\n OnDestroy,\n Output,\n EventEmitter,\n ViewChild,\n ElementRef,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport {\n trigger,\n state,\n style,\n transition,\n animate,\n} from '@angular/animations';\nimport { FormControl } from '@angular/forms';\nimport {\n PepLayoutService,\n PepScreenSizeType,\n PepSizeType,\n} from '@pepperi-addons/ngx-lib';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport {\n IPepSearchClickEvent,\n IPepSearchAutocompleteChangeEvent,\n IPepSearchStateChangeEvent,\n PepSearchType,\n PepSearchTriggerType,\n PepSearchShrinkType,\n} from './search.model';\n\n@Component({\n selector: 'pep-search',\n templateUrl: './search.component.html',\n styleUrls: ['./search.component.scss'],\n animations: [\n trigger('slideInOut', [\n state(\n 'close',\n style({\n width: '0',\n padding: '0',\n border: 'none',\n })\n ),\n state(\n 'open',\n style({\n width: 'inherit',\n })\n ),\n transition('close => open', animate('500ms ease-in-out')),\n transition('open => close', animate('500ms ease-in-out')),\n ]),\n trigger('fadeInOut', [\n state(\n 'fadeOut',\n style({\n opacity: 0,\n width: '1px',\n })\n ),\n state(\n 'fadeIn',\n style({\n opacity: 1,\n width: '100%',\n })\n ),\n transition(\n 'fadeOut => fadeIn',\n animate(300, style({ opacity: 1, width: '100%' }))\n ),\n transition(\n 'fadeIn => fadeOut',\n animate(350, style({ opacity: 0, width: '1px' }))\n ),\n ]),\n ],\n})\n@Injectable()\nexport class PepSearchComponent implements OnInit, OnDestroy {\n @Input() triggerOn: PepSearchTriggerType = 'click';\n @Input() autoCompleteTop = 20;\n private _autoCompleteValues = [];\n @Input()\n set autoCompleteValues(val: any[]) {\n this.type = 'auto-complete';\n this._autoCompleteValues = val;\n }\n get autoCompleteValues(): any[] {\n return this._autoCompleteValues;\n }\n\n // @Input() shrinkInSmallScreen = true;\n\n private _shrink: PepSearchShrinkType = 'small-screen';\n @Input()\n set shrink(value: PepSearchShrinkType) {\n this._shrink = value;\n this.setIsFloating()\n }\n get shrink(): PepSearchShrinkType {\n return this._shrink;\n }\n\n @Input()\n set value(val: string) {\n this.createSearchControlIfNotExist();\n this.searchControl.setValue(val);\n }\n get value(): string {\n return this.searchControl.value || '';\n }\n\n private _searchControl: FormControl = null;\n @Input()\n set searchControl(ctrl: FormControl) {\n this._searchControl = ctrl;\n }\n get searchControl(): FormControl {\n return this._searchControl;\n }\n\n private _useAsWebComponent = false;\n @Input()\n set useAsWebComponent(value: boolean) {\n if (value) {\n this.exportFunctionsOnHostElement();\n }\n }\n get useAsWebComponent(): boolean {\n return this._useAsWebComponent;\n }\n\n /**\n * The size of the button.\n *\n * @type {PepSizeType}\n * @memberof PepButtonComponent\n */\n @Input() sizeType: PepSizeType = 'md';\n\n @Output()\n search: EventEmitter<IPepSearchClickEvent> = new EventEmitter<IPepSearchClickEvent>();\n @Output()\n autocompleteChange: EventEmitter<IPepSearchAutocompleteChangeEvent> = new EventEmitter<IPepSearchAutocompleteChangeEvent>();\n @Output()\n stateChange: EventEmitter<IPepSearchStateChangeEvent> = new EventEmitter<IPepSearchStateChangeEvent>();\n\n @ViewChild('searchInput') searchInput: ElementRef;\n\n private readonly _destroyed = new Subject<void>();\n type: PepSearchType = 'regular';\n fadeState: 'fadeOut' | 'fadeIn';\n state: 'open' | 'close' = 'open';\n lastValue = null;\n showFloatSrcBtn = true;\n isRtl = false;\n isFloating = false;\n screenSize: PepScreenSizeType;\n\n constructor(\n private hostElement: ElementRef,\n private layoutService: PepLayoutService\n ) {\n //\n }\n\n private setIsFloating() {\n if (this.shrink === 'small-screen') {\n this.isFloating = this.screenSize > PepScreenSizeType.SM;\n } else if (this.shrink === 'always') {\n this.isFloating = true;\n } else { // never\n this.isFloating = false;\n }\n }\n\n ngOnInit(): void {\n this.layoutService.onResize$.pipe().subscribe((size) => {\n this.screenSize = size;\n this.setIsFloating();\n\n // Just for the smoote animation\n if (this.isFloating) {\n this.showFloatSrcBtn = false;\n\n this.showFloatingButton();\n } else {\n this.fadeState = 'fadeIn';\n }\n });\n\n this.isRtl = this.layoutService.isRtl();\n this.createSearchControlIfNotExist();\n\n this.searchControl.valueChanges\n .pipe(debounceTime(1000), takeUntil(this._destroyed))\n .subscribe((newValue) => {\n if (this.type === 'auto-complete') {\n this.autoCompleteValues = [];\n if (\n newValue &&\n newValue.length > 2 &&\n newValue !== this.lastValue\n ) {\n this.autocompleteChange.emit({\n value: newValue,\n top: this.autoCompleteTop,\n });\n }\n } else if (this.type === 'regular') {\n if (this.triggerOn === 'keydown') {\n this.emitSearchClick();\n }\n }\n });\n }\n\n ngOnDestroy(): void {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n private exportFunctionsOnHostElement() {\n // This is for web component usage for use those functions.\n this.hostElement.nativeElement.initSearch = this.initSearch.bind(this);\n }\n\n private createSearchControlIfNotExist(): void {\n if (!this.searchControl) {\n this.searchControl = new FormControl();\n }\n }\n\n private blur() {\n setTimeout(() => {\n this.searchInput.nativeElement.blur();\n }, 0);\n }\n\n private showFloatingButton() {\n this.fadeState = 'fadeOut';\n\n setTimeout(() => {\n this.stateChange.emit({ state: 'close' });\n this.showFloatSrcBtn = true;\n }, 500);\n\n // close the phone keyboard\n this.blur();\n }\n\n initSearch() {\n this.lastValue = null;\n this.searchControl.setValue('');\n }\n\n onClearClicked(event: any) {\n if (this.type === 'auto-complete') {\n this.autoCompleteValues = [];\n }\n\n this.initSearch();\n this.search.emit({ value: '' });\n\n event.preventDefault();\n\n /*\n if (this.isFloating) {\n this.showFloatingButton();\n } */\n }\n\n onSearchClicked() {\n if (this.isFloating) {\n this.triggerSearch();\n } else {\n if (this.state === 'open') {\n this.triggerSearch();\n } else {\n this.state = 'open';\n }\n }\n }\n\n onFocusout() {\n if (this.isFloating && this.searchControl.value?.length === 0) {\n this.showFloatingButton();\n }\n }\n\n onSearch(event: Event) {\n // Stop the event propagation - cause we don't want fire two events.\n event.stopPropagation();\n this.triggerSearch();\n }\n\n triggerSearch() {\n if (this.type === 'auto-complete') {\n this.autoCompleteValues = [];\n }\n\n this.blur();\n this.emitSearchClick();\n }\n\n animateSearch() {\n if (this.state === 'open') {\n this.fadeState =\n this.fadeState === 'fadeOut' ? 'fadeIn' : 'fadeOut';\n if (this.fadeState === 'fadeIn') {\n this.stateChange.emit({ state: 'open' });\n this.showFloatSrcBtn = false;\n this.searchInput.nativeElement.focus();\n }\n } else {\n this.fadeState = 'fadeIn';\n }\n }\n\n // do the emit just when done because of the line break when closing the search\n // component and showen all other components before\n animateSearchDone() {\n if (this.state !== 'open') {\n this.stateChange.emit({ state: 'close' });\n }\n }\n\n emitSearchClick() {\n const value = this.searchControl.value;\n\n if (value !== this.lastValue) {\n this.lastValue = value;\n this.search.emit({ value });\n }\n }\n}\n","<!-- <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n</ng-container> -->\n<ng-container *ngIf=\"shrink !== 'never'; then shrinkBlock; else staticBlock\"></ng-container>\n<ng-template #shrinkBlock>\n <div pepRtlClass class=\"pep-search-container {{ sizeType }}\" [ngClass]=\"{ 'pep-floating-search': isFloating}\"\n [@fadeInOut]=\"fadeState\">\n <div class=\"pep-search-input\">\n <ng-container *ngIf=\"type === 'auto-complete'\">\n <ng-container *ngTemplateOutlet=\"autoCompleteBlock\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"type === 'regular'\">\n <ng-container *ngTemplateOutlet=\"regularBlock\"></ng-container>\n </ng-container>\n </div>\n </div>\n <button *ngIf=\"isFloating && fadeState !='fadeIn' && showFloatSrcBtn\"\n class=\"pep-button icon-button {{ sizeType }} weak\" mat-button (click)=\"animateSearch()\">\n <mat-icon>\n <pep-icon name=\"system_search\"></pep-icon>\n </mat-icon>\n </button>\n</ng-template>\n<ng-template #staticBlock>\n <div pepRtlClass class=\"pep-search-container {{ sizeType }}\">\n <div class=\"pep-search-input\">\n <ng-container *ngIf=\"type === 'auto-complete'\">\n <ng-container *ngTemplateOutlet=\"autoCompleteBlock\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"type === 'regular'\">\n <ng-container *ngTemplateOutlet=\"regularBlock\"></ng-container>\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #autoCompleteBlock>\n <mat-form-field appearance=\"outline\">\n <!-- (@slideInOut.done)=\"animateSearchDone()\" [@slideInOut]=\"state\" -->\n <input #searchInput class=\"body-sm pep-search-input\" matInput autocomplete=\"off\"\n [ngStyle]=\"{ textAlign: isRtl ? 'right' : 'left' }\" type=\"text\" (keyup.enter)=\"onSearch($event)\" results=\"5\"\n [formControl]=\"searchControl\" placeholder=\"{{ 'SEARCH.HINT' | translate }}...\" [matAutocomplete]=\"auto\" />\n <mat-autocomplete #auto=\"matAutocomplete\" class=\"pep-select\">\n <mat-option *ngFor=\"let value of autoCompleteValues\" [value]=\"value\" (click)=\"triggerSearch()\">\n {{value}}\n </mat-option>\n <mat-option *ngIf=\"autoCompleteValues?.length > autoCompleteTop - 1\" [value]=\"value\"\n (click)=\"triggerSearch()\">{{ 'SEARCH.MORE_RESULTS' | translate }}</mat-option>\n </mat-autocomplete>\n <div matSuffix class=\"flex align-center\">\n <ng-container *ngIf=\"triggerOn === 'click'\">\n <ng-container *ngTemplateOutlet=\"triggerOnClickBlock\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"triggerOn === 'keydown'\">\n <ng-container *ngTemplateOutlet=\"triggerOnKeydownBlock\"></ng-container>\n </ng-container>\n </div>\n </mat-form-field>\n</ng-template>\n\n<ng-template #regularBlock>\n <mat-form-field appearance=\"outline\">\n <input #searchInput class=\"body-sm pep-search-input\" matInput autocomplete=\"off\"\n [ngStyle]=\"{ textAlign: isRtl ? 'right' : 'left' }\" type=\"text\" (keyup.enter)=\"onSearch($event)\"\n [formControl]=\"searchControl\" placeholder=\"{{ 'SEARCH.HINT' | translate }}...\" (focusout)=\"onFocusout()\" />\n <div matSuffix class=\"flex align-center\">\n <ng-container *ngIf=\"triggerOn === 'click'\">\n <ng-container *ngTemplateOutlet=\"triggerOnClickBlock\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"triggerOn === 'keydown'\">\n <ng-container *ngTemplateOutlet=\"triggerOnKeydownBlock\"></ng-container>\n </ng-container>\n </div>\n </mat-form-field>\n</ng-template>\n<ng-template #triggerOnClickBlock>\n <mat-icon class=\"pep-text-icon pep-pointer\"\n [ngClass]=\"{'hide-clear-icon' : state == 'close' || searchControl.value?.length === 0}\"\n (click)=\"onClearClicked($event)\">\n <pep-icon name=\"system_close\"></pep-icon>\n </mat-icon>\n <span class=\"pep-text-icon pep-spacing-element pep-v-separator\"\n [ngClass]=\"{'hide-clear-icon' : state == 'close' || searchControl.value?.length === 0}\">|</span>\n <mat-icon class=\"pep-text-icon pep-pointer\" (click)=\"onSearchClicked()\">\n <pep-icon name=\"system_search\"></pep-icon>\n </mat-icon>\n</ng-template>\n\n<ng-template #triggerOnKeydownBlock>\n <ng-container *ngIf=\"searchControl.value?.length > 0; then clearBlock; else searchBlock\"></ng-container>\n <ng-template #clearBlock>\n <button class=\"pep-button regular {{ sizeType }}\" mat-button (click)=\"onClearClicked($event)\">\n <mat-icon>\n <pep-icon name=\"system_close\"></pep-icon>\n </mat-icon>\n </button>\n </ng-template>\n <ng-template #searchBlock>\n <mat-icon class=\"pep-text-icon\">\n <pep-icon name=\"system_search\"></pep-icon>\n </mat-icon>\n </ng-template>\n</ng-template>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport {\n PepIconModule,\n PepIconRegistry,\n pepIconSystemClose,\n pepIconSystemSearch,\n} from '@pepperi-addons/ngx-lib/icon';\n\nimport { PepSearchComponent } from './search.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n // Material modules,\n MatCommonModule,\n MatAutocompleteModule,\n MatButtonModule,\n MatFormFieldModule,\n MatIconModule,\n // ngx-lib modules\n PepNgxLibModule,\n PepIconModule,\n MatInputModule,\n ],\n exports: [PepSearchComponent],\n declarations: [PepSearchComponent],\n})\nexport class PepSearchModule {\n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([\n pepIconSystemClose,\n pepIconSystemSearch,\n ]);\n }\n}\n","/*\n * Public API Surface of ngx-lib/search\n */\nexport * from './search.module';\nexport * from './search.model';\nexport * from './search.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i9","i1"],"mappings":"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"}
|