@pepperi-addons/ngx-lib 0.5.0-ng15.2 → 0.5.0-ng16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/address/address.component.d.ts +1 -1
- package/attachment/attachment.component.d.ts +1 -1
- package/bread-crumbs/bread-crumbs.component.d.ts +1 -1
- package/button/button.component.d.ts +1 -1
- package/carousel/carousel-item.directive.d.ts +1 -1
- package/carousel/carousel.component.d.ts +1 -1
- package/checkbox/checkbox.component.d.ts +1 -1
- package/chips/chips.component.d.ts +1 -1
- package/color/color.component.d.ts +1 -1
- package/core/clipboard/clipboard.directive.d.ts +1 -1
- package/core/common/directives/auto-width.directive.d.ts +1 -1
- package/core/common/directives/button-loader.directive.d.ts +1 -1
- package/core/common/directives/data-qa.directive.d.ts +1 -1
- package/core/common/directives/div-loader.directive.d.ts +1 -1
- package/core/common/directives/prevent-multi-click.directive.d.ts +1 -1
- package/core/common/directives/print.directive.d.ts +1 -1
- package/core/portal/attach.directive.d.ts +1 -1
- package/core/portal/target.directive.d.ts +1 -1
- package/date/date.component.d.ts +1 -1
- package/dialog/dialog.component.d.ts +1 -1
- package/draggable-items/draggable-item/draggable-item.component.d.ts +1 -1
- package/draggable-items/draggable-items.component.d.ts +1 -1
- package/esm2022/address/address.component.mjs +112 -0
- package/{esm2020 → esm2022}/address/address.module.mjs +23 -23
- package/{esm2020 → esm2022}/attachment/attachment.component.mjs +65 -61
- package/{esm2020 → esm2022}/attachment/attachment.module.mjs +21 -21
- package/esm2022/bread-crumbs/bread-crumbs.component.mjs +87 -0
- package/esm2022/bread-crumbs/bread-crumbs.model.mjs +10 -0
- package/esm2022/bread-crumbs/bread-crumbs.module.mjs +51 -0
- package/{esm2020 → esm2022}/button/button.component.mjs +76 -53
- package/esm2022/button/button.model.mjs +13 -0
- package/{esm2020 → esm2022}/button/button.module.mjs +19 -19
- package/esm2022/carousel/carousel-item.directive.mjs +34 -0
- package/esm2022/carousel/carousel.component.mjs +765 -0
- package/{esm2020 → esm2022}/carousel/carousel.module.mjs +5 -5
- package/esm2022/checkbox/checkbox.component.mjs +182 -0
- package/esm2022/checkbox/checkbox.module.mjs +64 -0
- package/esm2022/chips/chips.component.mjs +187 -0
- package/esm2022/chips/chips.module.mjs +82 -0
- package/{esm2020 → esm2022}/chips/chips.service.mjs +5 -5
- package/esm2022/color/color-picker.component.mjs +229 -0
- package/esm2022/color/color.component.mjs +93 -0
- package/esm2022/color/color.module.mjs +93 -0
- package/{esm2020 → esm2022}/core/clipboard/clipboard.directive.mjs +4 -4
- package/{esm2020 → esm2022}/core/clipboard/clipboard.service.mjs +4 -4
- package/esm2022/core/common/directives/auto-width.directive.mjs +79 -0
- package/esm2022/core/common/directives/base-destroyer.directive.mjs +23 -0
- package/esm2022/core/common/directives/button-blur.directive.mjs +25 -0
- package/esm2022/core/common/directives/button-loader.directive.mjs +117 -0
- package/esm2022/core/common/directives/data-qa.directive.mjs +26 -0
- package/esm2022/core/common/directives/div-loader.directive.mjs +67 -0
- package/esm2022/core/common/directives/menu-blur.directive.mjs +33 -0
- package/esm2022/core/common/directives/prevent-multi-click.directive.mjs +25 -0
- package/esm2022/core/common/directives/print.directive.mjs +176 -0
- package/esm2022/core/common/model/wapi.model.mjs +247 -0
- package/esm2022/core/common/pipes/common-pipes.mjs +180 -0
- package/esm2022/core/common/pipes/date-ago.pipe.mjs +47 -0
- package/esm2022/core/common/services/addon.service.mjs +234 -0
- package/esm2022/core/common/services/color.service.mjs +383 -0
- package/esm2022/core/common/services/cookie.service.mjs +156 -0
- package/esm2022/core/common/services/data-convertor.service.mjs +139 -0
- package/esm2022/core/common/services/file.service.mjs +252 -0
- package/{esm2020 → esm2022}/core/common/services/jwt-helper.service.mjs +4 -4
- package/esm2022/core/common/services/session.service.mjs +73 -0
- package/esm2022/core/common/services/translate.service.mjs +47 -0
- package/esm2022/core/common/services/utilities.service.mjs +302 -0
- package/esm2022/core/common/services/validator.service.mjs +273 -0
- package/esm2022/core/common/services/window-scrolling.service.mjs +38 -0
- package/esm2022/core/customization/customization.model.mjs +377 -0
- package/esm2022/core/customization/customization.service.mjs +802 -0
- package/{esm2020 → esm2022}/core/http/interceptors/error.interceptor.mjs +4 -4
- package/esm2022/core/http/interceptors/loader.interceptor.mjs +33 -0
- package/{esm2020 → esm2022}/core/http/interceptors/profiler.interceptor.mjs +4 -4
- package/esm2022/core/http/services/http.service.mjs +158 -0
- package/{esm2020 → esm2022}/core/http/services/loader.service.mjs +6 -6
- package/esm2022/core/layout/layout.service.mjs +171 -0
- package/esm2022/core/layout/rtl.directive.mjs +50 -0
- package/esm2022/core/portal/attach.directive.mjs +30 -0
- package/esm2022/core/portal/portal.service.mjs +37 -0
- package/esm2022/core/portal/target.directive.mjs +27 -0
- package/{esm2020 → esm2022}/core/scroll-to/scroll-to.service.mjs +4 -4
- package/esm2022/date/date.component.mjs +345 -0
- package/{esm2020 → esm2022}/date/date.model.mjs +7 -7
- package/esm2022/date/date.module.mjs +89 -0
- package/esm2022/dialog/default-dialog.component.mjs +39 -0
- package/esm2022/dialog/dialog.component.mjs +37 -0
- package/esm2022/dialog/dialog.model.mjs +41 -0
- package/esm2022/dialog/dialog.module.mjs +59 -0
- package/esm2022/dialog/dialog.service.mjs +106 -0
- package/esm2022/draggable-items/draggable-item/draggable-item.component.mjs +68 -0
- package/esm2022/draggable-items/draggable-items.component.mjs +95 -0
- package/esm2022/draggable-items/draggable-items.module.mjs +65 -0
- package/esm2022/field-title/field-title.component.mjs +46 -0
- package/esm2022/field-title/field-title.module.mjs +48 -0
- package/{esm2020 → esm2022}/files-uploader/files-uploader.component.mjs +36 -27
- package/esm2022/files-uploader/files-uploader.module.mjs +80 -0
- package/esm2022/form/field-generator.component.mjs +152 -0
- package/esm2022/form/form.component.mjs +1258 -0
- package/esm2022/form/form.module.mjs +180 -0
- package/esm2022/form/indicators.component.mjs +23 -0
- package/esm2022/form/internal-button.component.mjs +188 -0
- package/esm2022/form/internal-carusel.component.mjs +126 -0
- package/esm2022/form/internal-carusel.service.mjs +34 -0
- package/esm2022/form/internal-field-generator.component.mjs +146 -0
- package/esm2022/form/internal-form.component.mjs +1236 -0
- package/esm2022/form/internal-list.component.mjs +524 -0
- package/esm2022/form/internal-menu.component.mjs +62 -0
- package/esm2022/form/internal-page.component.mjs +380 -0
- package/esm2022/form/internal-page.service.mjs +125 -0
- package/esm2022/group-buttons/group-buttons.component.mjs +73 -0
- package/esm2022/group-buttons/group-buttons.module.mjs +60 -0
- package/esm2022/icon/icon-registry.service.mjs +24 -0
- package/esm2022/icon/icon.component.mjs +95 -0
- package/{esm2020 → esm2022}/icon/icon.module.mjs +5 -5
- package/esm2022/icon/icon.service.mjs +34 -0
- package/{esm2020 → esm2022}/image/image.component.mjs +45 -39
- package/esm2022/image/image.module.mjs +74 -0
- package/esm2022/image/image.service.mjs +53 -0
- package/esm2022/images-filmstrip/images-filmstrip.component.mjs +360 -0
- package/esm2022/images-filmstrip/images-filmstrip.module.mjs +84 -0
- package/esm2022/link/link.component.mjs +324 -0
- package/esm2022/link/link.module.mjs +81 -0
- package/{esm2020 → esm2022}/link/link.pipes.mjs +4 -4
- package/esm2022/list/list-actions.component.mjs +42 -0
- package/esm2022/list/list-carousel.component.mjs +110 -0
- package/esm2022/list/list-chooser.component.mjs +64 -0
- package/esm2022/list/list-pager.component.mjs +126 -0
- package/{esm2020 → esm2022}/list/list-sorting.component.mjs +15 -13
- package/esm2022/list/list-total.component.mjs +31 -0
- package/esm2022/list/list-views.component.mjs +86 -0
- package/esm2022/list/list.component.mjs +1394 -0
- package/{esm2020 → esm2022}/list/list.model.mjs +4 -1
- package/esm2022/list/list.module.mjs +145 -0
- package/esm2022/list/list.pipes.mjs +45 -0
- package/esm2022/list/virtual-scroller.mjs +1124 -0
- package/esm2022/menu/menu-item.component.mjs +111 -0
- package/esm2022/menu/menu.component.mjs +218 -0
- package/esm2022/menu/menu.model.mjs +23 -0
- package/esm2022/menu/menu.module.mjs +60 -0
- package/{esm2020 → esm2022}/ngx-lib.module.mjs +65 -65
- package/esm2022/page-layout/page-layout.component.mjs +41 -0
- package/{esm2020 → esm2022}/page-layout/page-layout.module.mjs +13 -13
- package/esm2022/profile-data-views-list/profile-data-view/profile-data-view.component.mjs +48 -0
- package/esm2022/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.mjs +82 -0
- package/esm2022/profile-data-views-list/profile-data-views-list.component.mjs +131 -0
- package/esm2022/profile-data-views-list/profile-data-views-list.module.mjs +89 -0
- package/esm2022/quantity-selector/quantity-selector-validation.directive.mjs +53 -0
- package/{esm2020 → esm2022}/quantity-selector/quantity-selector.component.mjs +83 -73
- package/esm2022/quantity-selector/quantity-selector.module.mjs +83 -0
- package/{esm2020 → esm2022}/quantity-selector/quantity-selector.pipes.mjs +4 -4
- package/esm2022/query-builder/common/model/type-map.mjs +28 -0
- package/esm2022/query-builder/common/services/output-query.service.mjs +118 -0
- package/esm2022/query-builder/common/services/query-structure.service.mjs +263 -0
- package/esm2022/query-builder/common/services/type-convertor.service.mjs +42 -0
- package/esm2022/query-builder/query-builder-item/query-builder-item.component.mjs +134 -0
- package/esm2022/query-builder/query-builder-section/query-builder-section.component.mjs +76 -0
- package/esm2022/query-builder/query-builder.component.mjs +116 -0
- package/esm2022/query-builder/query-builder.module.mjs +71 -0
- package/{esm2020 → esm2022}/query-builder/query-builder.service.mjs +4 -4
- package/esm2022/remote-loader/addon-block-loader.component.mjs +115 -0
- package/esm2022/remote-loader/addon-block-loader.service.mjs +66 -0
- package/esm2022/remote-loader/remote-loader-element.component.mjs +179 -0
- package/esm2022/remote-loader/remote-loader.component.mjs +120 -0
- package/{esm2020 → esm2022}/remote-loader/remote-loader.module.mjs +26 -26
- package/esm2022/remote-loader/remote-loader.service.mjs +107 -0
- package/{esm2020 → esm2022}/rich-html-textarea/rich-html-textarea.component.mjs +38 -30
- package/esm2022/rich-html-textarea/rich-html-textarea.module.mjs +96 -0
- package/esm2022/search/search.component.mjs +322 -0
- package/esm2022/search/search.module.mjs +71 -0
- package/esm2022/select/select.component.mjs +341 -0
- package/esm2022/select/select.module.mjs +71 -0
- package/esm2022/select-panel/select-panel.component.mjs +161 -0
- package/{esm2020 → esm2022}/select-panel/select-panel.module.mjs +31 -31
- package/esm2022/separator/separator.component.mjs +65 -0
- package/{esm2020 → esm2022}/separator/separator.module.mjs +5 -5
- package/esm2022/side-bar/side-bar.component.mjs +141 -0
- package/esm2022/side-bar/side-bar.module.mjs +56 -0
- package/esm2022/signature/signature-dialog.component.mjs +82 -0
- package/{esm2020 → esm2022}/signature/signature.component.mjs +41 -31
- package/esm2022/signature/signature.module.mjs +92 -0
- package/esm2022/size-detector/size-detector.component.mjs +97 -0
- package/esm2022/size-detector/size-detector.module.mjs +35 -0
- package/esm2022/skeleton-loader/skeleton-loader.component.mjs +46 -0
- package/{esm2020 → esm2022}/skeleton-loader/skeleton-loader.module.mjs +7 -7
- package/esm2022/slider/slider.component.mjs +105 -0
- package/{esm2020 → esm2022}/slider/slider.module.mjs +17 -17
- package/esm2022/smart-filters/boolean-filter/boolean-filter.component.mjs +74 -0
- package/esm2022/smart-filters/common/filter-actions.component.mjs +28 -0
- package/esm2022/smart-filters/common/model/base-filter-component.mjs +307 -0
- package/esm2022/smart-filters/common/model/field.mjs +125 -0
- package/esm2022/smart-filters/common/model/operator.mjs +287 -0
- package/esm2022/smart-filters/date-filter/date-filter.component.mjs +181 -0
- package/esm2022/smart-filters/multi-select-filter/multi-select-filter.component.mjs +202 -0
- package/esm2022/smart-filters/number-filter/number-filter.component.mjs +133 -0
- package/esm2022/smart-filters/smart-filters.component.mjs +143 -0
- package/esm2022/smart-filters/smart-filters.module.mjs +159 -0
- package/esm2022/smart-filters/text-filter/text-filter.component.mjs +110 -0
- package/esm2022/snack-bar/default-snack-bar.component.mjs +31 -0
- package/esm2022/snack-bar/snack-bar.component.mjs +28 -0
- package/esm2022/snack-bar/snack-bar.model.mjs +9 -0
- package/esm2022/snack-bar/snack-bar.module.mjs +63 -0
- package/esm2022/snack-bar/snack-bar.service.mjs +62 -0
- package/{esm2020 → esm2022}/textarea/textarea.component.mjs +35 -27
- package/esm2022/textarea/textarea.module.mjs +83 -0
- package/esm2022/textbox/textbox-validation.directive.mjs +96 -0
- package/esm2022/textbox/textbox.component.mjs +646 -0
- package/esm2022/textbox/textbox.module.mjs +73 -0
- package/esm2022/textbox-icon/textbox-icon.component.mjs +50 -0
- package/esm2022/textbox-icon/textbox-icon.module.mjs +65 -0
- package/esm2022/top-bar/top-bar.component.mjs +127 -0
- package/esm2022/top-bar/top-bar.module.mjs +63 -0
- package/fesm2022/pepperi-addons-ngx-lib-address.mjs +173 -0
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-address.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-attachment.mjs +84 -80
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-bread-crumbs.mjs +34 -28
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-bread-crumbs.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-button.mjs +227 -0
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-button.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-carousel.mjs +76 -55
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-carousel.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-checkbox.mjs +54 -48
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-chips.mjs +308 -0
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-color.mjs +92 -84
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-color.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-date.mjs +116 -104
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-date.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-dialog.mjs +50 -36
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-draggable-items.mjs +229 -0
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-field-title.mjs +101 -0
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-files-uploader.mjs +66 -56
- package/fesm2022/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-form.mjs +391 -310
- package/{fesm2015 → fesm2022}/pepperi-addons-ngx-lib-form.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-group-buttons.mjs +38 -35
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-icon.mjs +23 -18
- package/{fesm2015 → fesm2022}/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-image.mjs +77 -68
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-image.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-images-filmstrip.mjs +83 -60
- package/fesm2022/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-link.mjs +113 -103
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-link.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-list.mjs +339 -273
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-list.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-menu.mjs +89 -87
- package/{fesm2015 → fesm2022}/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
- package/{fesm2015 → fesm2022}/pepperi-addons-ngx-lib-page-layout.mjs +23 -17
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-profile-data-views-list.mjs +72 -63
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-quantity-selector.mjs +125 -110
- package/{fesm2015 → fesm2022}/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-query-builder.mjs +95 -68
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-remote-loader.mjs +84 -64
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-rich-html-textarea.mjs +76 -67
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-search.mjs +85 -79
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-search.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-select-panel.mjs +53 -49
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-select.mjs +74 -66
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-select.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-separator.mjs +18 -16
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-separator.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-side-bar.mjs +44 -38
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-signature.mjs +95 -81
- package/fesm2022/pepperi-addons-ngx-lib-signature.mjs.map +1 -0
- package/fesm2022/pepperi-addons-ngx-lib-size-detector.mjs +139 -0
- package/fesm2022/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -0
- package/fesm2022/pepperi-addons-ngx-lib-skeleton-loader.mjs +78 -0
- package/{fesm2015 → fesm2022}/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-lib-slider.mjs +154 -0
- package/fesm2022/pepperi-addons-ngx-lib-slider.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-smart-filters.mjs +189 -161
- package/{fesm2015 → fesm2022}/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-snack-bar.mjs +42 -34
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-textarea.mjs +67 -58
- package/{fesm2015 → fesm2022}/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-textbox-icon.mjs +28 -25
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-textbox.mjs +156 -144
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-top-bar.mjs +48 -32
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib.mjs +661 -449
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib.mjs.map +1 -1
- package/field-title/field-title.component.d.ts +1 -1
- package/files-uploader/files-uploader.component.d.ts +1 -1
- package/form/field-generator.component.d.ts +1 -1
- package/form/form.component.d.ts +1 -1
- package/form/form.module.d.ts +2 -2
- package/form/indicators.component.d.ts +1 -1
- package/form/internal-button.component.d.ts +1 -1
- package/form/internal-carusel.component.d.ts +1 -1
- package/form/internal-field-generator.component.d.ts +1 -1
- package/form/internal-form.component.d.ts +1 -1
- package/form/internal-list.component.d.ts +1 -1
- package/form/internal-menu.component.d.ts +1 -1
- package/form/internal-page.component.d.ts +1 -1
- package/group-buttons/group-buttons.component.d.ts +1 -1
- package/icon/icon.component.d.ts +1 -1
- package/image/image.component.d.ts +1 -1
- package/images-filmstrip/images-filmstrip.component.d.ts +1 -1
- package/link/link.component.d.ts +1 -1
- package/list/list-actions.component.d.ts +1 -1
- package/list/list-carousel.component.d.ts +1 -1
- package/list/list-chooser.component.d.ts +1 -1
- package/list/list-pager.component.d.ts +1 -1
- package/list/list-sorting.component.d.ts +1 -1
- package/list/list-total.component.d.ts +1 -1
- package/list/list-views.component.d.ts +1 -1
- package/list/list.component.d.ts +1 -1
- package/list/virtual-scroller.d.ts +1 -1
- package/menu/menu-item.component.d.ts +1 -1
- package/menu/menu.component.d.ts +1 -1
- package/package.json +145 -235
- package/page-layout/page-layout.component.d.ts +1 -1
- package/profile-data-views-list/profile-data-view/profile-data-view.component.d.ts +1 -1
- package/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.d.ts +1 -1
- package/profile-data-views-list/profile-data-views-list.component.d.ts +1 -1
- package/quantity-selector/quantity-selector-validation.directive.d.ts +1 -1
- package/quantity-selector/quantity-selector.component.d.ts +1 -1
- package/query-builder/query-builder-item/query-builder-item.component.d.ts +1 -1
- package/query-builder/query-builder-section/query-builder-section.component.d.ts +1 -1
- package/query-builder/query-builder.component.d.ts +1 -1
- package/query-builder/query-builder.module.d.ts +1 -1
- package/remote-loader/addon-block-loader.component.d.ts +1 -1
- package/remote-loader/remote-loader-element.component.d.ts +1 -1
- package/remote-loader/remote-loader.component.d.ts +1 -1
- package/rich-html-textarea/rich-html-textarea.component.d.ts +1 -1
- package/search/search.component.d.ts +1 -1
- package/select/select.component.d.ts +1 -1
- package/select-panel/select-panel.component.d.ts +1 -1
- package/separator/separator.component.d.ts +1 -1
- package/side-bar/side-bar.component.d.ts +1 -1
- package/signature/signature-dialog.component.d.ts +2 -2
- package/signature/signature.component.d.ts +1 -1
- package/signature/signature.module.d.ts +2 -2
- package/size-detector/size-detector.component.d.ts +1 -1
- package/size-detector/size-detector.module.d.ts +1 -1
- package/skeleton-loader/skeleton-loader.component.d.ts +1 -1
- package/slider/slider.component.d.ts +1 -1
- package/slider/slider.component.theme.scss +13 -6
- package/smart-filters/boolean-filter/boolean-filter.component.d.ts +1 -1
- package/smart-filters/common/filter-actions.component.d.ts +1 -1
- package/smart-filters/common/model/base-filter-component.d.ts +1 -1
- package/smart-filters/smart-filters.component.d.ts +1 -1
- package/smart-filters/smart-filters.module.d.ts +1 -1
- package/snack-bar/snack-bar.component.d.ts +1 -1
- package/textarea/textarea.component.d.ts +1 -1
- package/textbox/textbox-validation.directive.d.ts +1 -1
- package/textbox/textbox.component.d.ts +1 -1
- package/textbox-icon/textbox-icon.component.d.ts +1 -1
- package/top-bar/top-bar.component.d.ts +1 -1
- package/esm2020/address/address.component.mjs +0 -109
- package/esm2020/bread-crumbs/bread-crumbs.component.mjs +0 -85
- package/esm2020/bread-crumbs/bread-crumbs.model.mjs +0 -7
- package/esm2020/bread-crumbs/bread-crumbs.module.mjs +0 -50
- package/esm2020/button/button.model.mjs +0 -6
- package/esm2020/carousel/carousel-item.directive.mjs +0 -33
- package/esm2020/carousel/carousel.component.mjs +0 -745
- package/esm2020/checkbox/checkbox.component.mjs +0 -177
- package/esm2020/checkbox/checkbox.module.mjs +0 -63
- package/esm2020/chips/chips.component.mjs +0 -185
- package/esm2020/chips/chips.module.mjs +0 -81
- package/esm2020/color/color-picker.component.mjs +0 -224
- package/esm2020/color/color.component.mjs +0 -90
- package/esm2020/color/color.module.mjs +0 -93
- package/esm2020/core/common/directives/auto-width.directive.mjs +0 -77
- package/esm2020/core/common/directives/base-destroyer.directive.mjs +0 -22
- package/esm2020/core/common/directives/button-blur.directive.mjs +0 -24
- package/esm2020/core/common/directives/button-loader.directive.mjs +0 -112
- package/esm2020/core/common/directives/data-qa.directive.mjs +0 -23
- package/esm2020/core/common/directives/div-loader.directive.mjs +0 -61
- package/esm2020/core/common/directives/menu-blur.directive.mjs +0 -32
- package/esm2020/core/common/directives/prevent-multi-click.directive.mjs +0 -27
- package/esm2020/core/common/directives/print.directive.mjs +0 -170
- package/esm2020/core/common/model/wapi.model.mjs +0 -157
- package/esm2020/core/common/pipes/common-pipes.mjs +0 -177
- package/esm2020/core/common/pipes/date-ago.pipe.mjs +0 -46
- package/esm2020/core/common/services/addon.service.mjs +0 -227
- package/esm2020/core/common/services/color.service.mjs +0 -385
- package/esm2020/core/common/services/cookie.service.mjs +0 -153
- package/esm2020/core/common/services/data-convertor.service.mjs +0 -122
- package/esm2020/core/common/services/file.service.mjs +0 -250
- package/esm2020/core/common/services/session.service.mjs +0 -72
- package/esm2020/core/common/services/translate.service.mjs +0 -46
- package/esm2020/core/common/services/utilities.service.mjs +0 -301
- package/esm2020/core/common/services/validator.service.mjs +0 -272
- package/esm2020/core/common/services/window-scrolling.service.mjs +0 -36
- package/esm2020/core/customization/customization.model.mjs +0 -338
- package/esm2020/core/customization/customization.service.mjs +0 -799
- package/esm2020/core/http/interceptors/loader.interceptor.mjs +0 -32
- package/esm2020/core/http/services/http.service.mjs +0 -155
- package/esm2020/core/layout/layout.service.mjs +0 -168
- package/esm2020/core/layout/rtl.directive.mjs +0 -44
- package/esm2020/core/portal/attach.directive.mjs +0 -27
- package/esm2020/core/portal/portal.service.mjs +0 -36
- package/esm2020/core/portal/target.directive.mjs +0 -24
- package/esm2020/date/date.component.mjs +0 -334
- package/esm2020/date/date.module.mjs +0 -88
- package/esm2020/dialog/default-dialog.component.mjs +0 -37
- package/esm2020/dialog/dialog.component.mjs +0 -36
- package/esm2020/dialog/dialog.model.mjs +0 -33
- package/esm2020/dialog/dialog.module.mjs +0 -59
- package/esm2020/dialog/dialog.service.mjs +0 -103
- package/esm2020/draggable-items/draggable-item/draggable-item.component.mjs +0 -67
- package/esm2020/draggable-items/draggable-items.component.mjs +0 -94
- package/esm2020/draggable-items/draggable-items.module.mjs +0 -64
- package/esm2020/field-title/field-title.component.mjs +0 -48
- package/esm2020/field-title/field-title.module.mjs +0 -47
- package/esm2020/files-uploader/files-uploader.module.mjs +0 -79
- package/esm2020/form/field-generator.component.mjs +0 -152
- package/esm2020/form/form.component.mjs +0 -1240
- package/esm2020/form/form.module.mjs +0 -179
- package/esm2020/form/indicators.component.mjs +0 -23
- package/esm2020/form/internal-button.component.mjs +0 -184
- package/esm2020/form/internal-carusel.component.mjs +0 -121
- package/esm2020/form/internal-carusel.service.mjs +0 -32
- package/esm2020/form/internal-field-generator.component.mjs +0 -146
- package/esm2020/form/internal-form.component.mjs +0 -1218
- package/esm2020/form/internal-list.component.mjs +0 -513
- package/esm2020/form/internal-menu.component.mjs +0 -64
- package/esm2020/form/internal-page.component.mjs +0 -361
- package/esm2020/form/internal-page.service.mjs +0 -120
- package/esm2020/group-buttons/group-buttons.component.mjs +0 -71
- package/esm2020/group-buttons/group-buttons.module.mjs +0 -59
- package/esm2020/icon/icon-registry.service.mjs +0 -26
- package/esm2020/icon/icon.component.mjs +0 -91
- package/esm2020/icon/icon.service.mjs +0 -31
- package/esm2020/image/image.module.mjs +0 -74
- package/esm2020/image/image.service.mjs +0 -50
- package/esm2020/images-filmstrip/images-filmstrip.component.mjs +0 -338
- package/esm2020/images-filmstrip/images-filmstrip.module.mjs +0 -83
- package/esm2020/link/link.component.mjs +0 -315
- package/esm2020/link/link.module.mjs +0 -80
- package/esm2020/list/list-actions.component.mjs +0 -44
- package/esm2020/list/list-carousel.component.mjs +0 -107
- package/esm2020/list/list-chooser.component.mjs +0 -64
- package/esm2020/list/list-pager.component.mjs +0 -120
- package/esm2020/list/list-total.component.mjs +0 -33
- package/esm2020/list/list-views.component.mjs +0 -85
- package/esm2020/list/list.component.mjs +0 -1382
- package/esm2020/list/list.module.mjs +0 -144
- package/esm2020/list/list.pipes.mjs +0 -47
- package/esm2020/list/virtual-scroller.mjs +0 -1080
- package/esm2020/menu/menu-item.component.mjs +0 -115
- package/esm2020/menu/menu.component.mjs +0 -216
- package/esm2020/menu/menu.model.mjs +0 -20
- package/esm2020/menu/menu.module.mjs +0 -59
- package/esm2020/page-layout/page-layout.component.mjs +0 -35
- package/esm2020/profile-data-views-list/profile-data-view/profile-data-view.component.mjs +0 -45
- package/esm2020/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.mjs +0 -81
- package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +0 -127
- package/esm2020/profile-data-views-list/profile-data-views-list.module.mjs +0 -88
- package/esm2020/quantity-selector/quantity-selector-validation.directive.mjs +0 -49
- package/esm2020/quantity-selector/quantity-selector.module.mjs +0 -82
- package/esm2020/query-builder/common/model/type-map.mjs +0 -27
- package/esm2020/query-builder/common/services/output-query.service.mjs +0 -116
- package/esm2020/query-builder/common/services/query-structure.service.mjs +0 -258
- package/esm2020/query-builder/common/services/type-convertor.service.mjs +0 -42
- package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +0 -127
- package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +0 -71
- package/esm2020/query-builder/query-builder.component.mjs +0 -110
- package/esm2020/query-builder/query-builder.module.mjs +0 -70
- package/esm2020/remote-loader/addon-block-loader.component.mjs +0 -112
- package/esm2020/remote-loader/addon-block-loader.service.mjs +0 -65
- package/esm2020/remote-loader/remote-loader-element.component.mjs +0 -171
- package/esm2020/remote-loader/remote-loader.component.mjs +0 -115
- package/esm2020/remote-loader/remote-loader.service.mjs +0 -104
- package/esm2020/rich-html-textarea/rich-html-textarea.module.mjs +0 -95
- package/esm2020/search/search.component.mjs +0 -317
- package/esm2020/search/search.module.mjs +0 -70
- package/esm2020/select/select.component.mjs +0 -334
- package/esm2020/select/select.module.mjs +0 -70
- package/esm2020/select-panel/select-panel.component.mjs +0 -157
- package/esm2020/separator/separator.component.mjs +0 -63
- package/esm2020/side-bar/side-bar.component.mjs +0 -136
- package/esm2020/side-bar/side-bar.module.mjs +0 -55
- package/esm2020/signature/signature-dialog.component.mjs +0 -79
- package/esm2020/signature/signature.module.mjs +0 -91
- package/esm2020/size-detector/size-detector.component.mjs +0 -94
- package/esm2020/size-detector/size-detector.module.mjs +0 -35
- package/esm2020/skeleton-loader/skeleton-loader.component.mjs +0 -44
- package/esm2020/slider/slider.component.mjs +0 -101
- package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +0 -75
- package/esm2020/smart-filters/common/filter-actions.component.mjs +0 -29
- package/esm2020/smart-filters/common/model/base-filter-component.mjs +0 -290
- package/esm2020/smart-filters/common/model/field.mjs +0 -117
- package/esm2020/smart-filters/common/model/operator.mjs +0 -280
- package/esm2020/smart-filters/date-filter/date-filter.component.mjs +0 -182
- package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +0 -200
- package/esm2020/smart-filters/number-filter/number-filter.component.mjs +0 -136
- package/esm2020/smart-filters/smart-filters.component.mjs +0 -141
- package/esm2020/smart-filters/smart-filters.module.mjs +0 -158
- package/esm2020/smart-filters/text-filter/text-filter.component.mjs +0 -113
- package/esm2020/snack-bar/default-snack-bar.component.mjs +0 -29
- package/esm2020/snack-bar/snack-bar.component.mjs +0 -26
- package/esm2020/snack-bar/snack-bar.model.mjs +0 -7
- package/esm2020/snack-bar/snack-bar.module.mjs +0 -63
- package/esm2020/snack-bar/snack-bar.service.mjs +0 -60
- package/esm2020/textarea/textarea.module.mjs +0 -82
- package/esm2020/textbox/textbox-validation.directive.mjs +0 -93
- package/esm2020/textbox/textbox.component.mjs +0 -638
- package/esm2020/textbox/textbox.module.mjs +0 -72
- package/esm2020/textbox-icon/textbox-icon.component.mjs +0 -48
- package/esm2020/textbox-icon/textbox-icon.module.mjs +0 -64
- package/esm2020/top-bar/top-bar.component.mjs +0 -112
- package/esm2020/top-bar/top-bar.module.mjs +0 -62
- package/fesm2015/pepperi-addons-ngx-lib-address.mjs +0 -170
- package/fesm2015/pepperi-addons-ngx-lib-address.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +0 -306
- package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.mjs +0 -147
- package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-button.mjs +0 -197
- package/fesm2015/pepperi-addons-ngx-lib-button.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs +0 -804
- package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs +0 -246
- package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-chips.mjs +0 -306
- package/fesm2015/pepperi-addons-ngx-lib-chips.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-color.mjs +0 -404
- package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-date.mjs +0 -481
- package/fesm2015/pepperi-addons-ngx-lib-date.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs +0 -263
- package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +0 -227
- package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs +0 -102
- package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs +0 -331
- package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-form.mjs +0 -4232
- package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs +0 -136
- package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-icon.mjs +0 -741
- package/fesm2015/pepperi-addons-ngx-lib-image.mjs +0 -397
- package/fesm2015/pepperi-addons-ngx-lib-image.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +0 -426
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-link.mjs +0 -414
- package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-list.mjs +0 -3131
- package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +0 -403
- package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +0 -337
- package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +0 -741
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +0 -1226
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +0 -644
- package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +0 -363
- package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-search.mjs +0 -393
- package/fesm2015/pepperi-addons-ngx-lib-search.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs +0 -235
- package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-select.mjs +0 -410
- package/fesm2015/pepperi-addons-ngx-lib-select.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-separator.mjs +0 -89
- package/fesm2015/pepperi-addons-ngx-lib-separator.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs +0 -196
- package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +0 -464
- package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs +0 -136
- package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs +0 -78
- package/fesm2015/pepperi-addons-ngx-lib-slider.mjs +0 -151
- package/fesm2015/pepperi-addons-ngx-lib-slider.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +0 -1731
- package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs +0 -183
- package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs +0 -286
- package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs +0 -118
- package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +0 -806
- package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs +0 -180
- package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-lib.mjs +0 -4995
- package/fesm2015/pepperi-addons-ngx-lib.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-lib-address.mjs +0 -170
- package/fesm2020/pepperi-addons-ngx-lib-button.mjs +0 -197
- package/fesm2020/pepperi-addons-ngx-lib-chips.mjs +0 -305
- package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +0 -226
- package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs +0 -102
- package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-lib-icon.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-lib-menu.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs +0 -77
- package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs +0 -136
- package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs +0 -76
- package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-lib-slider.mjs +0 -150
- package/fesm2020/pepperi-addons-ngx-lib-slider.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs.map +0 -1
- /package/{esm2020 → esm2022}/address/pepperi-addons-ngx-lib-address.mjs +0 -0
- /package/{esm2020 → esm2022}/address/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/attachment/pepperi-addons-ngx-lib-attachment.mjs +0 -0
- /package/{esm2020 → esm2022}/attachment/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.mjs +0 -0
- /package/{esm2020 → esm2022}/bread-crumbs/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/button/pepperi-addons-ngx-lib-button.mjs +0 -0
- /package/{esm2020 → esm2022}/button/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/carousel/pepperi-addons-ngx-lib-carousel.mjs +0 -0
- /package/{esm2020 → esm2022}/carousel/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/checkbox/pepperi-addons-ngx-lib-checkbox.mjs +0 -0
- /package/{esm2020 → esm2022}/checkbox/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/chips/chips.model.mjs +0 -0
- /package/{esm2020 → esm2022}/chips/pepperi-addons-ngx-lib-chips.mjs +0 -0
- /package/{esm2020 → esm2022}/chips/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/color/color.model.mjs +0 -0
- /package/{esm2020 → esm2022}/color/pepperi-addons-ngx-lib-color.mjs +0 -0
- /package/{esm2020 → esm2022}/color/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/clipboard/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/clipboard/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/directives/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/directives/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/model/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/model/papi.model.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/model/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/model/utilities.model.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/pipes/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/pipes/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/services/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/customization/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/customization/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/http/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/http/interceptors/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/http/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/layout/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/layout/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/portal/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/portal/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/scroll-to/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/scroll-to/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/date/pepperi-addons-ngx-lib-date.mjs +0 -0
- /package/{esm2020 → esm2022}/date/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/dialog/pepperi-addons-ngx-lib-dialog.mjs +0 -0
- /package/{esm2020 → esm2022}/dialog/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/draggable-items/draggable-items.model.mjs +0 -0
- /package/{esm2020 → esm2022}/draggable-items/pepperi-addons-ngx-lib-draggable-items.mjs +0 -0
- /package/{esm2020 → esm2022}/draggable-items/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/field-title/pepperi-addons-ngx-lib-field-title.mjs +0 -0
- /package/{esm2020 → esm2022}/field-title/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/files-uploader/pepperi-addons-ngx-lib-files-uploader.mjs +0 -0
- /package/{esm2020 → esm2022}/files-uploader/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/form/form.model.mjs +0 -0
- /package/{esm2020 → esm2022}/form/pepperi-addons-ngx-lib-form.mjs +0 -0
- /package/{esm2020 → esm2022}/form/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/group-buttons/pepperi-addons-ngx-lib-group-buttons.mjs +0 -0
- /package/{esm2020 → esm2022}/group-buttons/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/icon/icon-generated-all.model.mjs +0 -0
- /package/{esm2020 → esm2022}/icon/icon-generated.model.mjs +0 -0
- /package/{esm2020 → esm2022}/icon/pepperi-addons-ngx-lib-icon.mjs +0 -0
- /package/{esm2020 → esm2022}/icon/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/image/pepperi-addons-ngx-lib-image.mjs +0 -0
- /package/{esm2020 → esm2022}/image/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.mjs +0 -0
- /package/{esm2020 → esm2022}/images-filmstrip/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/link/pepperi-addons-ngx-lib-link.mjs +0 -0
- /package/{esm2020 → esm2022}/link/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/list/pepperi-addons-ngx-lib-list.mjs +0 -0
- /package/{esm2020 → esm2022}/list/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/menu/pepperi-addons-ngx-lib-menu.mjs +0 -0
- /package/{esm2020 → esm2022}/menu/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/page-layout/pepperi-addons-ngx-lib-page-layout.mjs +0 -0
- /package/{esm2020 → esm2022}/page-layout/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/pepperi-addons-ngx-lib.mjs +0 -0
- /package/{esm2020 → esm2022}/profile-data-views-list/pepperi-addons-ngx-lib-profile-data-views-list.mjs +0 -0
- /package/{esm2020 → esm2022}/profile-data-views-list/profile-data-views-list.model.mjs +0 -0
- /package/{esm2020 → esm2022}/profile-data-views-list/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.mjs +0 -0
- /package/{esm2020 → esm2022}/quantity-selector/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/query-builder/common/model/field.mjs +0 -0
- /package/{esm2020 → esm2022}/query-builder/common/model/filter.mjs +0 -0
- /package/{esm2020 → esm2022}/query-builder/common/model/legacy.mjs +0 -0
- /package/{esm2020 → esm2022}/query-builder/common/model/operator-unit.mjs +0 -0
- /package/{esm2020 → esm2022}/query-builder/common/model/operator.mjs +0 -0
- /package/{esm2020 → esm2022}/query-builder/common/model/structure.mjs +0 -0
- /package/{esm2020 → esm2022}/query-builder/common/model/type.mjs +0 -0
- /package/{esm2020 → esm2022}/query-builder/pepperi-addons-ngx-lib-query-builder.mjs +0 -0
- /package/{esm2020 → esm2022}/query-builder/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/remote-loader/pepperi-addons-ngx-lib-remote-loader.mjs +0 -0
- /package/{esm2020 → esm2022}/remote-loader/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/remote-loader/remote-loader.model.mjs +0 -0
- /package/{esm2020 → esm2022}/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.mjs +0 -0
- /package/{esm2020 → esm2022}/rich-html-textarea/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/search/pepperi-addons-ngx-lib-search.mjs +0 -0
- /package/{esm2020 → esm2022}/search/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/search/search.model.mjs +0 -0
- /package/{esm2020 → esm2022}/select/pepperi-addons-ngx-lib-select.mjs +0 -0
- /package/{esm2020 → esm2022}/select/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/select-panel/pepperi-addons-ngx-lib-select-panel.mjs +0 -0
- /package/{esm2020 → esm2022}/select-panel/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/select-panel/select-panel.model.mjs +0 -0
- /package/{esm2020 → esm2022}/separator/pepperi-addons-ngx-lib-separator.mjs +0 -0
- /package/{esm2020 → esm2022}/separator/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/side-bar/pepperi-addons-ngx-lib-side-bar.mjs +0 -0
- /package/{esm2020 → esm2022}/side-bar/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/side-bar/side-bar.model.mjs +0 -0
- /package/{esm2020 → esm2022}/signature/pepperi-addons-ngx-lib-signature.mjs +0 -0
- /package/{esm2020 → esm2022}/signature/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/size-detector/pepperi-addons-ngx-lib-size-detector.mjs +0 -0
- /package/{esm2020 → esm2022}/size-detector/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/skeleton-loader/pepperi-addons-ngx-lib-skeleton-loader.mjs +0 -0
- /package/{esm2020 → esm2022}/skeleton-loader/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/slider/pepperi-addons-ngx-lib-slider.mjs +0 -0
- /package/{esm2020 → esm2022}/slider/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/smart-filters/common/model/creator.mjs +0 -0
- /package/{esm2020 → esm2022}/smart-filters/common/model/filter.mjs +0 -0
- /package/{esm2020 → esm2022}/smart-filters/common/model/type.mjs +0 -0
- /package/{esm2020 → esm2022}/smart-filters/pepperi-addons-ngx-lib-smart-filters.mjs +0 -0
- /package/{esm2020 → esm2022}/smart-filters/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/snack-bar/pepperi-addons-ngx-lib-snack-bar.mjs +0 -0
- /package/{esm2020 → esm2022}/snack-bar/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/textarea/pepperi-addons-ngx-lib-textarea.mjs +0 -0
- /package/{esm2020 → esm2022}/textarea/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/textbox/pepperi-addons-ngx-lib-textbox.mjs +0 -0
- /package/{esm2020 → esm2022}/textbox/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/textbox-icon/pepperi-addons-ngx-lib-textbox-icon.mjs +0 -0
- /package/{esm2020 → esm2022}/textbox-icon/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/top-bar/pepperi-addons-ngx-lib-top-bar.mjs +0 -0
- /package/{esm2020 → esm2022}/top-bar/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/top-bar/top-bar.model.mjs +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pepperi-addons-ngx-lib.mjs","sources":["../../../projects/ngx-lib/src/core/http/interceptors/error.interceptor.ts","../../../projects/ngx-lib/src/core/http/services/loader.service.ts","../../../projects/ngx-lib/src/core/http/interceptors/loader.interceptor.ts","../../../projects/ngx-lib/src/core/http/interceptors/profiler.interceptor.ts","../../../projects/ngx-lib/src/core/http/interceptors/index.ts","../../../projects/ngx-lib/src/core/clipboard/clipboard.directive.ts","../../../projects/ngx-lib/src/core/layout/layout.service.ts","../../../projects/ngx-lib/src/core/layout/rtl.directive.ts","../../../projects/ngx-lib/src/core/common/services/utilities.service.ts","../../../projects/ngx-lib/src/core/common/pipes/common-pipes.ts","../../../projects/ngx-lib/src/core/common/pipes/date-ago.pipe.ts","../../../projects/ngx-lib/src/core/common/directives/auto-width.directive.ts","../../../projects/ngx-lib/src/core/common/directives/button-blur.directive.ts","../../../projects/ngx-lib/src/core/common/directives/button-loader.directive.ts","../../../projects/ngx-lib/src/core/common/directives/menu-blur.directive.ts","../../../projects/ngx-lib/src/core/common/directives/data-qa.directive.ts","../../../projects/ngx-lib/src/core/common/directives/prevent-multi-click.directive.ts","../../../projects/ngx-lib/src/core/common/directives/print.directive.ts","../../../projects/ngx-lib/src/core/common/services/jwt-helper.service.ts","../../../projects/ngx-lib/src/core/common/services/session.service.ts","../../../projects/ngx-lib/src/core/common/services/file.service.ts","../../../projects/ngx-lib/src/core/customization/customization.service.ts","../../../projects/ngx-lib/src/core/common/directives/div-loader.directive.ts","../../../projects/ngx-lib/src/core/portal/portal.service.ts","../../../projects/ngx-lib/src/core/portal/attach.directive.ts","../../../projects/ngx-lib/src/core/portal/target.directive.ts","../../../projects/ngx-lib/src/core/clipboard/clipboard.service.ts","../../../projects/ngx-lib/src/core/clipboard/public-api.ts","../../../projects/ngx-lib/src/core/clipboard/index.ts","../../../projects/ngx-lib/src/core/common/directives/base-destroyer.directive.ts","../../../projects/ngx-lib/src/core/common/directives/public-api.ts","../../../projects/ngx-lib/src/core/common/directives/index.ts","../../../projects/ngx-lib/src/core/common/model/papi.model.ts","../../../projects/ngx-lib/src/core/common/model/utilities.model.ts","../../../projects/ngx-lib/src/core/common/model/wapi.model.ts","../../../projects/ngx-lib/src/core/common/model/public-api.ts","../../../projects/ngx-lib/src/core/common/model/index.ts","../../../projects/ngx-lib/src/core/common/pipes/public-api.ts","../../../projects/ngx-lib/src/core/common/pipes/index.ts","../../../projects/ngx-lib/src/core/common/services/cookie.service.ts","../../../projects/ngx-lib/src/core/http/services/http.service.ts","../../../projects/ngx-lib/src/core/common/services/translate.service.ts","../../../projects/ngx-lib/src/core/common/services/addon.service.ts","../../../projects/ngx-lib/src/core/common/services/color.service.ts","../../../projects/ngx-lib/src/core/common/services/data-convertor.service.ts","../../../projects/ngx-lib/src/core/common/services/validator.service.ts","../../../projects/ngx-lib/src/core/common/services/window-scrolling.service.ts","../../../projects/ngx-lib/src/core/common/services/public-api.ts","../../../projects/ngx-lib/src/core/common/services/index.ts","../../../projects/ngx-lib/src/core/common/public-api.ts","../../../projects/ngx-lib/src/core/common/index.ts","../../../projects/ngx-lib/src/core/customization/customization.model.ts","../../../projects/ngx-lib/src/core/customization/public-api.ts","../../../projects/ngx-lib/src/core/customization/index.ts","../../../projects/ngx-lib/src/core/http/public-api.ts","../../../projects/ngx-lib/src/core/http/index.ts","../../../projects/ngx-lib/src/core/layout/public-api.ts","../../../projects/ngx-lib/src/core/layout/index.ts","../../../projects/ngx-lib/src/core/portal/public-api.ts","../../../projects/ngx-lib/src/core/portal/index.ts","../../../projects/ngx-lib/src/core/scroll-to/scroll-to.service.ts","../../../projects/ngx-lib/src/core/scroll-to/public-api.ts","../../../projects/ngx-lib/src/core/scroll-to/index.ts","../../../projects/ngx-lib/src/core/public-api.ts","../../../projects/ngx-lib/src/core/index.ts","../../../projects/ngx-lib/src/ngx-lib.module.ts","../../../projects/ngx-lib/src/public-api.ts","../../../projects/ngx-lib/src/pepperi-addons-ngx-lib.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport {\n HttpEvent,\n HttpRequest,\n HttpHandler,\n HttpInterceptor,\n HttpErrorResponse,\n} from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, retry } from 'rxjs/operators';\n// import { ToastrService } from 'ngx-toastr';\n\n@Injectable()\nexport class PepErrorInterceptor implements HttpInterceptor {\n // constructor() {} // private toastr: ToastrService\n\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler\n ): Observable<HttpEvent<any>> {\n // console.warn('ErrorInterceptor');\n\n return next.handle(req).pipe(\n // retry(2), TODO: Check if we want to retry\n catchError((error: HttpErrorResponse) => {\n // 401 handled in auth.interceptor\n if (error.status !== 401) {\n // TODO: Show error in dialog.\n // this.toastr.error(error.message);\n }\n return throwError(error);\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter, distinctUntilChanged, debounceTime } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepLoaderService {\n counter = 0;\n private showLoaderSubject: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(undefined);\n\n get onChanged$(): Observable<boolean> {\n return this.showLoaderSubject\n .asObservable()\n .pipe(\n debounceTime(500),\n filter(v => v !== undefined),\n distinctUntilChanged());\n }\n\n constructor() {\n // Raise custom event for showing the loader.\n this.onChanged$.subscribe((show) => {\n this.showLoaderChanged(show);\n });\n }\n\n private showLoaderChanged(show: boolean): void {\n const eventData = {\n detail: {\n showLoader: show,\n },\n };\n\n const event = new CustomEvent('toggleLoader', eventData);\n window.dispatchEvent(event);\n }\n\n show(): void {\n this.counter++;\n this.showLoaderSubject.next(true);\n }\n\n hide(): void {\n this.counter--;\n\n if (this.counter < 0) {\n this.counter = 0;\n }\n\n if (this.counter === 0) {\n this.showLoaderSubject.next(false);\n }\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport {\n HttpEvent,\n HttpRequest,\n HttpHandler,\n HttpInterceptor,\n HttpResponse,\n} from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { finalize, delay, map, catchError } from 'rxjs/operators';\nimport { PepLoaderService } from '../services/loader.service';\n\n@Injectable()\nexport class PepLoaderInterceptor implements HttpInterceptor {\n constructor(private injector: Injector) { }\n\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler\n ): Observable<HttpEvent<any>> {\n // console.warn('LoaderInterceptor');\n const newVer = 2;\n const loaderService = this.injector.get(PepLoaderService);\n // console.log('show', req.url); \n loaderService.show();\n\n return next.handle(req).pipe(\n // delay(3000),\n catchError((err) => throwError(err)),\n finalize(() => loaderService.hide())\n );\n\n // return next.handle(req).pipe(map(event => {\n // if (event instanceof HttpResponse) {\n // loaderService.hide();\n // }\n\n // return event;\n // }));\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpEvent,\n HttpRequest,\n HttpHandler,\n HttpInterceptor,\n HttpResponse,\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { tap, finalize } from 'rxjs/operators';\n\n@Injectable()\nexport class PepProfilerInterceptor implements HttpInterceptor {\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler\n ): Observable<HttpEvent<any>> {\n // console.warn('ProfilerInterceptor');\n\n const started = Date.now();\n let ok: string;\n\n return next.handle(req).pipe(\n tap(\n // Succeeds when there is a response; ignore other events\n (event: HttpEvent<any>) => {\n if (event instanceof HttpResponse) {\n ok = 'succeeded';\n }\n },\n // Operation failed; error is an HttpErrorResponse\n (error) => (ok = 'failed')\n ),\n // Log when response observable either completes or errors\n finalize(() => {\n const elapsed = Date.now() - started;\n const msg = `${req.method} \"${req.urlWithParams}\" ${ok} in ${elapsed} ms.`;\n console.log(msg);\n })\n );\n }\n}\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\n\n// import { AuthInterceptor } from './auth.interceptor';\n// import { CacheInterceptor } from './cache.interceptor';\n// import { ConvertInterceptor } from './convert.interceptor';\nimport { PepErrorInterceptor } from './error.interceptor';\n// import { FakeInterceptor } from './fake.interceptor';\n// import { HeaderInterceptor } from './header.interceptor';\nimport { PepLoaderInterceptor } from './loader.interceptor';\nimport { PepProfilerInterceptor } from './profiler.interceptor';\n\nexport const httpInterceptorProviders = [\n // { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },\n // { provide: HTTP_INTERCEPTORS, useClass: CacheInterceptor, multi: true },\n // { provide: HTTP_INTERCEPTORS, useClass: ConvertInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: PepErrorInterceptor, multi: true },\n // { provide: HTTP_INTERCEPTORS, useClass: FakeInterceptor, multi: true },\n // { provide: HTTP_INTERCEPTORS, useClass: HeaderInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: PepLoaderInterceptor, multi: true },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: PepProfilerInterceptor,\n multi: true,\n },\n];\n","// Import the core angular services.\nimport { Directive } from '@angular/core';\nimport { EventEmitter } from '@angular/core';\n\n// Import the application components and services.\n// import { PepClipboardService } from './clipboard.service';\n\n// This directive acts as a simple glue layer between the given [clipboard] property\n// and the underlying ClipboardService. Upon the (click) event, the [clipboard] value\n// will be copied to the ClipboardService and a (clipboardCopy) event will be emitted.\n@Directive({\n selector: '[pepClipboard]',\n inputs: ['value: clipboard'],\n outputs: ['copyEvent: clipboardCopy', 'errorEvent: clipboardError'],\n host: {\n '(click)': 'copyToClipboard()',\n },\n})\nexport class PepClipboardDirective {\n // public copyEvent: EventEmitter<string>;\n // public errorEvent: EventEmitter<Error>;\n // public value: string;\n // private clipboardService: ClipboardService;\n // // I initialize the clipboard directive.\n // constructor(clipboardService: ClipboardService) {\n // this.clipboardService = clipboardService;\n // this.copyEvent = new EventEmitter();\n // this.errorEvent = new EventEmitter();\n // this.value = '';\n // }\n // // ---\n // // PUBLIC METODS.\n // // ---\n // // I copy the value-input to the Clipboard. Emits success or error event.\n // public copyToClipboard(): void {\n // this.clipboardService\n // .copy(this.value)\n // .then((value: string): void => {\n // this.copyEvent.emit(value);\n // })\n // .catch((error: Error): void => {\n // this.errorEvent.emit(error);\n // });\n // }\n}\n","import { Injectable, Optional } from '@angular/core';\nimport { Observable, BehaviorSubject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { TranslateService } from '@ngx-translate/core';\n\n// Const BIDI_RTL_LANGS Array\n// BIDI_RTL_LANGS ref: http://en.wikipedia.org/wiki/Right-to-left\n// Table of scripts in Unicode: https://en.wikipedia.org/wiki/Script_(Unicode)\nconst _BIDI_RTL_LANGS = [\n 'ae' /* Avestan */,\n 'ar' /* 'العربية', Arabic */,\n 'arc' /* Aramaic */,\n 'bcc' /* 'بلوچی مکرانی', Southern Balochi */,\n 'bqi' /* 'بختياري', Bakthiari */,\n 'ckb' /* 'Soranî / کوردی', Sorani */,\n 'dv' /* Dhivehi */,\n 'fa' /* 'فارسی', Persian */,\n 'glk' /* 'گیلکی', Gilaki */,\n 'he' /* 'עברית', Hebrew */,\n 'ku' /* 'Kurdî / كوردی', Kurdish */,\n 'mzn' /* 'مازِرونی', Mazanderani */,\n 'nqo' /* N'Ko */,\n 'pnb' /* 'پنجابی', Western Punjabi */,\n 'ps' /* 'پښتو', Pashto, */,\n 'sd' /* 'سنڌي', Sindhi */,\n 'ug' /* 'Uyghurche / ئۇيغۇرچە', Uyghur */,\n 'ur' /* 'اردو', Urdu */,\n 'yi' /* 'ייִדיש', Yiddish */,\n];\n\nexport type PepOrientationType = 'landscape' | 'portrait';\n\nexport enum PepScreenSizeType {\n XL,\n LG,\n MD,\n SM,\n XS,\n}\n// export type PepScreenSizeType = 'xl' | 'lg' | 'md' | 'sm' | 'xs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepLayoutService {\n private resizeSubject: BehaviorSubject<PepScreenSizeType>;\n private deviceHasMouseSubject: BehaviorSubject<boolean>;\n\n get onResize$(): Observable<PepScreenSizeType> {\n return this.resizeSubject.asObservable().pipe(distinctUntilChanged());\n }\n\n get onMouseOver$(): Observable<boolean> {\n return this.deviceHasMouseSubject\n .asObservable()\n .pipe(distinctUntilChanged());\n }\n\n constructor(@Optional() private translate: TranslateService = null) {\n this.resizeSubject = new BehaviorSubject(PepScreenSizeType.LG);\n\n this.deviceHasMouseSubject = new BehaviorSubject(false);\n document.addEventListener(\n 'mouseover',\n this.documentMouseoverListener,\n false\n );\n // document.addEventListener('touchstart', this._documentTouchstartListener, false);\n }\n\n private documentMouseoverListener = (event: MouseEvent) => {\n this.deviceHasMouseSubject.next(true);\n this.deviceHasMouseSubject.complete();\n document.removeEventListener(\n 'mouseover',\n this.documentMouseoverListener,\n false\n );\n };\n\n // private _documentTouchstartListener = (event: TouchEvent) => {\n // debugger;\n // this.isTouchDevice = true;\n // document.removeEventListener('touchstart', this._documentTouchstartListener, false);\n // }\n\n /**\n * Set the current screen size.\n * @param size The size to change to.\n */\n onResize(size: PepScreenSizeType): void {\n this.resizeSubject.next(size);\n }\n\n getDeviceHasMouse(): boolean {\n return this.deviceHasMouseSubject.getValue();\n }\n\n getOrintation(): PepOrientationType {\n if (window.innerHeight > window.innerWidth) {\n return 'portrait';\n } else {\n return 'landscape';\n }\n }\n\n getScreenWidth(): number {\n let retVal = 250.0;\n switch (this.resizeSubject.getValue()) {\n case PepScreenSizeType.XS: {\n retVal = this.getOrintation() === 'landscape' ? 130.0 : 65.0;\n break;\n }\n case PepScreenSizeType.SM:\n case PepScreenSizeType.MD: {\n retVal = this.getOrintation() === 'landscape' ? 220.0 : 140.0;\n break;\n }\n case PepScreenSizeType.LG:\n case PepScreenSizeType.XL: {\n retVal = this.getOrintation() === 'landscape' ? 400.0 : 250.0;\n break;\n }\n }\n return retVal;\n }\n\n getScreenHeight(): number {\n let retVal = 250.0;\n switch (this.resizeSubject.getValue()) {\n case PepScreenSizeType.XS: {\n retVal = this.getOrintation() === 'landscape' ? 65.0 : 130.0;\n break;\n }\n case PepScreenSizeType.SM:\n case PepScreenSizeType.MD: {\n retVal = this.getOrintation() === 'landscape' ? 140.0 : 220.0;\n break;\n }\n case PepScreenSizeType.LG:\n case PepScreenSizeType.XL: {\n retVal = this.getOrintation() === 'landscape' ? 250.0 : 400.0;\n break;\n }\n }\n return retVal;\n }\n\n getScreenHeightPx(): number {\n return (\n window.innerHeight ||\n document.documentElement.clientHeight ||\n document.body.clientHeight\n );\n }\n\n getScreenWidthPx(): number {\n return (\n window.innerWidth ||\n document.documentElement.clientWidth ||\n document.body.clientWidth\n );\n }\n\n getScrollbarWidth() {\n // Creating invisible container\n const outer = document.createElement('div');\n outer.style.visibility = 'hidden';\n outer.style.overflow = 'scroll'; // forcing scrollbar to appear\n // outer.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps\n document.body.appendChild(outer);\n\n // Creating inner element and placing it in the container\n const inner = document.createElement('div');\n outer.appendChild(inner);\n\n // Calculating difference between container's full width and the child width\n const scrollbarWidth = (outer.offsetWidth - inner.offsetWidth);\n\n // Removing temporary elements from the DOM\n outer.parentNode.removeChild(outer);\n\n return scrollbarWidth;\n }\n\n getCurrentLanguage(): string {\n return this.translate?.getBrowserCultureLang() || navigator.language;\n }\n\n isRtl(): boolean {\n const userLang = this.getCurrentLanguage();\n const isRtl = _BIDI_RTL_LANGS.indexOf(userLang) >= 0;\n\n return isRtl;\n }\n}\n","import { Directive, Renderer2, ElementRef, OnInit } from '@angular/core';\nimport { PepLayoutService } from './layout.service';\n\n@Directive({\n selector: '[pepRtlClass]',\n})\nexport class PepRtlClassDirective implements OnInit {\n constructor(\n private layoutService: PepLayoutService,\n private renderer: Renderer2,\n private element: ElementRef\n ) {}\n\n ngOnInit(): void {\n const isRtl = this.layoutService.isRtl();\n\n if (isRtl) {\n this.renderer.addClass(this.element.nativeElement, 'rtl');\n }\n }\n}\n\n@Directive({\n selector: '[pepRtlDirection]',\n})\nexport class PepRtlDirectionDirective implements OnInit {\n constructor(\n private layoutService: PepLayoutService,\n private renderer: Renderer2,\n private element: ElementRef\n ) {}\n\n ngOnInit(): void {\n const isRtl = this.layoutService.isRtl();\n\n this.renderer.setAttribute(\n this.element.nativeElement,\n 'dir',\n isRtl ? 'rtl' : 'ltr'\n );\n }\n}\n","import { coerceNumberProperty, _isNumberValue } from '@angular/cdk/coercion';\nimport { formatCurrency, formatNumber, formatPercent } from '@angular/common';\nimport { Injectable, Optional } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepUtilitiesService {\n private culture = 'en-US';\n\n constructor(@Optional() private translate: TranslateService = null) {\n this.culture = this.translate?.getBrowserCultureLang() || 'en-US';\n\n // try {\n // import(`@angular/common/locales/global/${this.culture}`);\n // } catch {}\n }\n\n private prepareNumberToFormat(value: string, fallbackValue = 0): number {\n // If the decimal separator is ',' change it to '.'\n if (value?.length > 0) {\n // If the decimal separator is ',' change it to '.' for let the formatting works.\n value = this.changeDecimalSeparatorWhenItsComma(value);\n // console.log('coerceNumberProperty after change decimal separator value is', value);\n }\n\n return coerceNumberProperty(value, fallbackValue);\n }\n\n // adapted from https://github.com/sindresorhus/parse-ms.\n // moved to internal function because parse-ms is now pure ESM.\n private parseMs(milliseconds: number) {\n if (typeof milliseconds !== 'number') {\n throw new TypeError('Expected a number')\n }\n\n return {\n days: Math.trunc(milliseconds / 86400000),\n hours: Math.trunc(milliseconds / 3600000) % 24,\n minutes: Math.trunc(milliseconds / 60000) % 60,\n seconds: Math.trunc(milliseconds / 1000) % 60,\n milliseconds: Math.trunc(milliseconds) % 1000\n }\n }\n\n // adapted from https://github.com/rafaelrinaldi/add-zero.\n // moved to internal function b/c addZero is unmaintained (7+ years).\n // stripped out negative sign logic since we're already doing it elsewhere.\n private addZero(value: number, digits = 2) {\n digits = digits || 2\n\n let str = value.toString()\n let size = 0\n\n size = digits - str.length + 1\n str = new Array(size).join('0').concat(str)\n\n return str\n }\n\n private isCurrencyShouldBeOnRight(currencySymbol: string) {\n let res = false;\n\n if (currencySymbol == \"€\" ||\n currencySymbol == \"₪\" ||\n currencySymbol == \"Ft\" ||\n currencySymbol == \"Kč\" ||\n currencySymbol == \"руб\" ||\n currencySymbol == \"zł\" ||\n currencySymbol == \"kr.\") {\n res = true;\n }\n\n return res;\n }\n\n private cutValueByFractionDigits(value: string, maxFractionDigits: number): string {\n let res = value;\n maxFractionDigits = maxFractionDigits || 2;\n const decimalSeparator = this.getDecimalSeparator();\n\n if (value.includes(decimalSeparator)) {\n const valueArr = value.split(decimalSeparator);\n\n // if (valueArr[1].length < maxFractionDigits) {\n valueArr[1] = valueArr[1].padEnd(maxFractionDigits, '0');\n // }\n\n res = `${valueArr[0]}${decimalSeparator}${valueArr[1].slice(0, maxFractionDigits)}`;\n }\n\n return res;\n }\n\n parseDate(dateStr: string, isDateTime = false): Date {\n let retVal: Date = null;\n if (dateStr !== '') {\n retVal = new Date(dateStr);\n\n // Convert to date with no offset.\n if (!isDateTime) {\n const index = dateStr.indexOf('T');\n\n if (index > 0) {\n dateStr = dateStr.substring(0, index);\n }\n\n const dateText = dateStr.split('-');\n if (dateText.length === 3) {\n const year = Number(dateText[0]);\n const month = Number(dateText[1]) - 1;\n const day = Number(dateText[2]);\n retVal = new Date(year, month, day, 0, retVal.getTimezoneOffset() * -1);\n }\n } else {\n retVal = new Date(\n retVal.getFullYear(), retVal.getMonth(), retVal.getDate(), retVal.getHours(),\n retVal.getMinutes() + retVal.getTimezoneOffset() * -1, retVal.getSeconds());\n }\n }\n if (retVal && isNaN(retVal.getTime())) {\n retVal = null;\n }\n return retVal;\n }\n\n stringifyDate(date: Date, isDateTime = false): string {\n if (date) {\n if (isDateTime) {\n return date.toISOString(); // include - offset\n } else {\n const dateText = [];\n dateText.push(\n date.getFullYear(),\n '-',\n date.getMonth() + 1,\n '-',\n date.getDate()\n );\n return dateText.join('');\n }\n } else {\n return '';\n }\n }\n\n isValueHtml(value: string): boolean {\n let res = false;\n const REGEXP = /<\\/?[a-z][\\s\\S]*>/i;\n res = REGEXP.test(value);\n\n return res;\n }\n\n isJsonString(str: string): boolean {\n try {\n JSON.parse(str);\n } catch (e) {\n return false;\n }\n return true;\n }\n\n getSvgElementFromString(document, svgContent: string): SVGElement {\n const div = document.createElement('DIV');\n // div.className = 'svg-icon';\n // Add class svg-icon\n if (svgContent?.length > 0) {\n div.innerHTML = svgContent.replace('<svg ', '<svg class=\"svg-icon\" ');\n }\n return (\n div.querySelector('svg') ||\n document.createElementNS('http://www.w3.org/2000/svg', 'path')\n );\n }\n\n // formatPercent(value: any, digitsInfo = '1.0-2') {\n formatPercent(value: any, minFractionDigits = 0, maxFractionDigits = 2) {\n minFractionDigits = coerceNumberProperty(minFractionDigits, null);\n maxFractionDigits = coerceNumberProperty(maxFractionDigits, null);\n\n value = this.cutValueByFractionDigits(value?.toString(), Math.max(minFractionDigits, maxFractionDigits));\n const number = this.prepareNumberToFormat(value);\n\n if (number === 0) {\n return '0%';\n } else {\n // return formatPercent(number / 100, this.culture, digitsInfo);\n return new Intl.NumberFormat(this.culture, {\n style: 'percent',\n minimumFractionDigits: minFractionDigits || 0,\n maximumFractionDigits: maxFractionDigits || Math.max(2, minFractionDigits),\n }).format(number / 100);\n }\n }\n\n // formatCurrency(value: any, currencySign = '', digitsInfo = '1.2-2') {\n formatCurrency(value: any, currencySign = '', minFractionDigits = 2, maxFractionDigits = 2, useGrouping = true) {\n minFractionDigits = coerceNumberProperty(minFractionDigits, null);\n maxFractionDigits = coerceNumberProperty(maxFractionDigits, null);\n\n let res = '';\n\n // If the decimal separator is the last digit\n // if (value.length > 0 && value.indexOf(this.getDecimalSeparator()) === value.length -1) {\n // res = value;\n // } else {\n value = this.cutValueByFractionDigits(value?.toString(), Math.max(minFractionDigits, maxFractionDigits));\n const number = this.prepareNumberToFormat(value);\n const styleOptions = {\n // style: 'currency',\n // currencySign: currencySign,\n useGrouping: useGrouping,\n minimumFractionDigits: minFractionDigits || Math.min(2, maxFractionDigits || 2),\n maximumFractionDigits: maxFractionDigits || Math.max(2, minFractionDigits),\n };\n \n if (number === 0) {\n // return formatCurrency(0, this.culture, currencySign, undefined, digitsInfo);\n res = new Intl.NumberFormat(this.culture, styleOptions).format(0);\n } else {\n // return formatCurrency(value, this.culture, currencySign, undefined, digitsInfo);\n res = new Intl.NumberFormat(this.culture, styleOptions).format(number);\n }\n \n if (currencySign.length > 0) {\n res = this.isCurrencyShouldBeOnRight(currencySign) ? `${res} ${currencySign}` : `${currencySign} ${res}`\n }\n // }\n\n return res;\n }\n\n // formatDecimal(value: any, digitsInfo = '1.2-2') {\n formatDecimal(value: any, minFractionDigits = 2, maxFractionDigits = 2, useGrouping = true) {\n minFractionDigits = coerceNumberProperty(minFractionDigits, null);\n // console.log('formatDecimal minFractionDigits value is', minFractionDigits);\n maxFractionDigits = coerceNumberProperty(maxFractionDigits, null);\n // console.log('formatDecimal minFractionDigits value is', maxFractionDigits);\n\n value = this.cutValueByFractionDigits(value?.toString(), Math.max(minFractionDigits, maxFractionDigits));\n const number = this.prepareNumberToFormat(value);\n \n // console.log('number value is', number);\n\n if (number === 0) {\n return '0';\n } else {\n // return formatNumber(value, this.culture, digitsInfo);\n const res = new Intl.NumberFormat(this.culture, {\n useGrouping: useGrouping,\n minimumFractionDigits: minFractionDigits || Math.min(2, maxFractionDigits || 2),\n maximumFractionDigits: maxFractionDigits || Math.max(2, minFractionDigits),\n }).format(number);\n \n // console.log('Intl.NumberFormat value is', res);\n\n return res;\n }\n }\n\n // formatNumber(value: any, digitsInfo = '1.0-0'): string {\n formatNumber(value: any, useGrouping = true): string {\n const number = this.prepareNumberToFormat(value);\n\n if (number === 0) {\n return '0';\n } else {\n // return formatNumber(value, this.culture, digitsInfo);\n return new Intl.NumberFormat(this.culture, {\n useGrouping: useGrouping,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n }).format(number)\n }\n }\n\n /**\n * Convert a number in milliseconds to a standard duration string.\n * @param {number} value - duration in milliseconds\n * @param {object} remoteLoaderOptions - formatDuration options object\n * @param {boolean} [remoteLoaderOptions.leading=false] - add leading zero\n * @returns string - formatted duration string\n */\n formatDuration(value, options: { leading?: boolean, duration?: 'milliseconds' | 'seconds' } = {}): string {\n const isNumber = _isNumberValue(value);\n\n if (!isNumber) {\n return value;\n } else {\n let number = this.prepareNumberToFormat(value);\n\n const leading = options?.leading || true;\n const duration = options?.duration || 'milliseconds';\n if (duration === 'seconds') {\n number = number * 1000;\n }\n\n const unsignedMs = number < 0 ? -number : number;\n const sign = number <= -1000 ? '-' : '';\n const t = this.parseMs(unsignedMs);\n const seconds = this.addZero(t.seconds);\n\n if (t.days) {\n return sign + t.days + ':' + this.addZero(t.hours) + ':' + this.addZero(t.minutes) + ':' + seconds\n }\n\n if (t.hours) {\n return sign + (leading ? this.addZero(t.hours) : t.hours) + ':' + this.addZero(t.minutes) + ':' + seconds\n }\n\n return sign + (leading ? this.addZero(t.minutes) : t.minutes) + ':' + seconds\n }\n }\n\n incrementNumber(value: any): string {\n let numberValue = coerceNumberProperty(value, 0);\n return (++numberValue).toString();\n }\n\n decrementNumber(value: any): string {\n let numberValue = coerceNumberProperty(value, 0);\n return (--numberValue).toString();\n }\n\n getDecimalSeparator(): string {\n const numberWithDecimalSeparator = 1.1;\n\n return numberWithDecimalSeparator\n .toLocaleString(this.culture)\n .substring(1, 2);\n }\n\n changeDecimalSeparatorWhenItsComma(value: string, reverse = false): string {\n // If the decimal separator is ','\n if (this.getDecimalSeparator() === ',') {\n // In case that the value isn't string.\n value = value?.toString() || '';\n\n // If reverse change the number from '.' to ',' else do the opposite.\n value = reverse ? value.replace('.', ',') : value.replace(',', '.');\n }\n\n return value;\n }\n\n isEqualNumber(numberAsString: string, numberAsString2: string): boolean {\n const number = this.prepareNumberToFormat(numberAsString);\n const number2 = this.prepareNumberToFormat(numberAsString2);\n\n return number === number2;\n }\n}\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Pipe, PipeTransform } from '@angular/core';\nimport {\n DomSanitizer,\n SafeHtml,\n SafeStyle,\n SafeScript,\n SafeUrl,\n SafeResourceUrl,\n} from '@angular/platform-browser';\nimport { PepUtilitiesService } from '../services/utilities.service';\n\n@Pipe({ name: 'pepCapitalize' })\nexport class PepCapitalizePipe implements PipeTransform {\n transform(value: any) {\n if (value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n }\n return value;\n }\n}\n\n@Pipe({ name: 'pepEncode' })\nexport class PepEncodePipe implements PipeTransform {\n transform(value: any) {\n if (value) {\n const v = btoa(value);\n return v;\n }\n return value;\n }\n}\n\ndeclare function escape(s: string): string;\n\n@Pipe({ name: 'pepEscape' })\nexport class PepEscapePipe implements PipeTransform {\n transform(value: any) {\n if (value) {\n const v = escape(value);\n return v;\n }\n return value;\n }\n}\n\n@Pipe({ name: 'pepReplaceLineBreaks' })\nexport class PepReplaceLineBreaksPipe implements PipeTransform {\n transform(value: string): string {\n const newValue = value.replace(/(<br\\ ?\\/?>)/g, ' ');\n return newValue;\n }\n}\n\n@Pipe({ name: 'pepDateFormatter' })\nexport class PepDateFormatterPipe implements PipeTransform {\n transform(value: Date, culture: any, isDateTime = false): string {\n let res = '';\n value = new Date(value);\n if (value) {\n res = value.toLocaleDateString(culture || 'en-US');\n if (isDateTime) {\n res +=\n ' ' +\n value.toLocaleTimeString(culture || 'en-US', {\n hour: '2-digit',\n minute: '2-digit',\n });\n }\n }\n return res;\n }\n}\n\n@Pipe({ name: 'pepDateStringFormatter' })\nexport class PepDateStringFormatterPipe implements PipeTransform {\n transform(value: string, culture: any, isDateTime = false): string {\n let res = '';\n const tmpDate = new Date(value);\n if (value) {\n res = tmpDate.toLocaleDateString(culture || 'en-US');\n if (isDateTime) {\n res += ' ' + tmpDate.toLocaleTimeString(culture || 'en-US');\n }\n }\n return res;\n }\n}\n\n@Pipe({ name: 'pepSafeHtml' })\nexport class PepSafeHtmlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(html) {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n}\n\n@Pipe({ name: 'pepSafe' })\nexport class PepSafePipe implements PipeTransform {\n constructor(protected sanitizer: DomSanitizer) {}\n\n public transform(\n value: any,\n type: string\n ): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n switch (type) {\n case 'html':\n return this.sanitizer.bypassSecurityTrustHtml(value);\n\n case 'style':\n return this.sanitizer.bypassSecurityTrustStyle(value);\n\n case 'script':\n return this.sanitizer.bypassSecurityTrustScript(value);\n\n case 'url':\n return this.sanitizer.bypassSecurityTrustUrl(value);\n\n case 'resourceUrl':\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n\n default:\n throw new Error(`Invalid safe type specified: ${type}`);\n }\n }\n}\n\n@Pipe({ name: 'pepSplitUppercase' })\nexport class PepSplitUppercasePipe implements PipeTransform {\n transform(value: string): string {\n const newValue = value.replace(/([a-z])([A-Z])/g, '$1 $2');\n return newValue;\n }\n}\n\n@Pipe({ name: 'pepToNumber' })\nexport class PepToNumberPipe implements PipeTransform {\n constructor(private utilitiesService: PepUtilitiesService) {}\n\n transform(value: string): number {\n const decimalSeparator = this.utilitiesService.getDecimalSeparator();\n // We need to remove the thousands separator so - If the decimal separator is '.' we need to remove the ',' from the value else we remove the '.'.\n value = decimalSeparator === '.' ? value.replace(/,/g, '') : value.replace(/./g, '');\n const numberValue = coerceNumberProperty(value);\n return numberValue;\n // return parseInt(value);\n }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Pipe({\r\n name: 'dateAgo'\r\n})\r\nexport class DateAgoPipe implements PipeTransform {\r\n constructor(private translateService: TranslateService) {}\r\n\r\n private getCounterTranslation(counter: number, key: string) {\r\n const intervalText = this.translateService.get(`DATE_AGO.${key.toUpperCase()}`) || key;\r\n const agoText = this.translateService.get(counter === 1 ? 'DATE_AGO.SINGULAR' : 'DATE_AGO.PLURAL') || counter === 1 ? ' ago' : 's ago';\r\n return `${intervalText}${agoText}`;\r\n }\r\n\r\n transform(value: any, args?: any): any {\r\n if (value) {\r\n const seconds = Math.floor((+new Date() - +new Date(value)) / 1000);\r\n if (seconds < 29) // less than 30 seconds ago will show as 'Just now'\r\n return this.translateService.get('DATE_AGO.JUST_NOW') || 'Just now';\r\n const intervals: { [key: string]: number } = {\r\n 'year': 31536000,\r\n 'month': 2592000,\r\n 'week': 604800,\r\n 'day': 86400,\r\n 'hour': 3600,\r\n 'minute': 60,\r\n 'second': 1\r\n };\r\n let counter;\r\n for (const i in intervals) {\r\n counter = Math.floor(seconds / intervals[i]);\r\n if (counter > 0) {\r\n this.getCounterTranslation(counter, i);\r\n }\r\n }\r\n }\r\n return value;\r\n }\r\n\r\n}","import {\n AfterViewInit,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n Renderer2,\n} from '@angular/core';\n\n@Directive({\n selector: '[pepAutoWidth]',\n})\nexport class PepInputAutoWidthDirective implements AfterViewInit, OnDestroy {\n @Input() includePadding = true;\n\n private input: any = null;\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n ngAfterViewInit(): void {\n if (this.el.nativeElement.tagName.toLowerCase() === 'input') {\n this.input = this.el;\n } else {\n const list = this.el.nativeElement.querySelectorAll('input');\n this.input = list.length > 0 ? list[0] : null;\n }\n\n if (this.input) {\n this.input.addEventListener(\n 'blur',\n this.setWidthUsingText.bind(this)\n );\n this.input.addEventListener(\n 'keyup',\n this.setWidthUsingText.bind(this)\n );\n }\n\n this.setWidthUsingText();\n }\n\n ngOnDestroy() {\n this.input.removeEventListener(\n 'blur',\n this.setWidthUsingText.bind(this)\n );\n this.input.removeEventListener(\n 'keyup',\n this.setWidthUsingText.bind(this)\n );\n }\n\n get paddingWidth(): number {\n return this.includePadding\n ? this._sumPropertyValues(['padding-left', 'padding-right'])\n : 0;\n }\n\n get style() {\n return getComputedStyle(this.input, '');\n }\n\n setWidth(width: number): void {\n this.renderer.setStyle(this.input, 'width', width + 'px');\n }\n\n setWidthUsingText(): void {\n if (this.input) {\n const text = this.input.value;\n this.setWidth(this.textWidth(text) + this.paddingWidth);\n }\n }\n\n private _sumPropertyValues(properties: string[]): number {\n return properties\n .map((property) =>\n parseInt(this.style.getPropertyValue(property), 10)\n )\n .reduce((a, b) => a + b, 0);\n }\n\n private textWidth(value: string): number {\n const ctx = this.renderer.createElement('canvas').getContext('2d');\n const {\n fontStyle,\n fontVariant,\n fontWeight,\n fontSize,\n fontFamily,\n } = this.style;\n\n // font string format: {normal, normal, 700, 20px, Roboto, \"Helvetica Neue\", sans-serif}\n ctx.font =\n fontStyle +\n ' ' +\n fontVariant +\n ' ' +\n fontWeight +\n ' ' +\n fontSize +\n ' ' +\n fontFamily;\n return ctx ? ctx.measureText(value).width : 0;\n }\n}\n","import { Directive, HostListener, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[pepButtonBlur]',\n})\nexport class PepButtonBlurDirective {\n constructor(private element: ElementRef) {}\n\n @HostListener('click')\n onClick(): void {\n setTimeout(() => {\n this.element.nativeElement.blur();\n }, 0);\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Input,\n OnInit,\n Optional,\n Renderer2,\n} from '@angular/core';\nimport { PepUtilitiesService } from '../services/utilities.service';\n\n@Directive({\n selector: '[pepButtonLoader]',\n})\nexport class PepButtonLoaderDirective implements OnInit {\n @Input() loaderTime = 0;\n @Input() loaderColor = null;\n @Input() loaderWidth = '1.5rem';\n @Input() loaderHeight = 'inherit';\n @Input() ignoreDisabledStyle = false;\n\n private _isLoading = false;\n private _finish = null;\n @Input()\n set finish(value: boolean) {\n this._finish = value;\n\n if (this._isLoading && value) {\n this.toggleLoading(false);\n }\n }\n\n private svgIcon: SVGElement;\n\n constructor(\n private renderer: Renderer2,\n private element: ElementRef,\n private utilitiesService: PepUtilitiesService,\n @Optional() @Inject(DOCUMENT) private document: any\n ) {}\n\n @HostListener('click', ['$event'])\n clickEvent(event): void {\n this.toggleLoading(true);\n\n // In case that the finish input is supplied - init it.\n if (this._finish !== null) {\n this._finish = false;\n } else {\n // Init loaderTime if is not supplied (3000 - default 3 seconds).\n if (this.loaderTime === 0) {\n this.loaderTime = 3000;\n }\n }\n\n if (this.loaderTime > 0) {\n setTimeout(() => {\n this.toggleLoading(false);\n }, this.loaderTime);\n }\n }\n\n ngOnInit(): void {\n this.setButtonStyle();\n const svgData =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 128 128\" preserveAspectRatio=\"xMidYMid\" class=\"lds-ripple\" style=\"background:0 0; \"><circle cx=\"64\" cy=\"64\" r=\"0\" fill=\"none\" stroke-width=\"10\"><animate attributeName=\"r\" calcMode=\"spline\" values=\"0;59\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0 0.3 0.8 0.8\" begin=\"-1.6s\" repeatCount=\"indefinite\"/><animate attributeName=\"opacity\" calcMode=\"spline\" values=\"1;0\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0.3 0 0.8 1\" begin=\"-1.6s\" repeatCount=\"indefinite\"/></circle><circle cx=\"64\" cy=\"64\" r=\"0\" fill=\"none\" stroke-width=\"10\"><animate attributeName=\"r\" calcMode=\"spline\" values=\"0;59\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0 0.3 0.8 0.8\" begin=\"-0.8s\" repeatCount=\"indefinite\"/><animate attributeName=\"opacity\" calcMode=\"spline\" values=\"1;0\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0.3 0 0.8 1\" begin=\"-0.8s\" repeatCount=\"indefinite\"/></circle><circle cx=\"64\" cy=\"64\" r=\"0\" fill=\"none\" stroke-width=\"10\"><animate attributeName=\"r\" calcMode=\"spline\" values=\"0;59\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0 0.3 0.8 0.8\" begin=\"0s\" repeatCount=\"indefinite\"/><animate attributeName=\"opacity\" calcMode=\"spline\" values=\"1;0\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0.3 0 0.8 1\" begin=\"0s\" repeatCount=\"indefinite\"/></circle></svg>';\n this.svgIcon = this.utilitiesService.getSvgElementFromString(\n this.document,\n svgData\n );\n this.setIconStyle();\n }\n\n private setButtonStyle(): void {\n this.renderer.setStyle(this.element.nativeElement, 'display', 'flex');\n this.renderer.setStyle(\n this.element.nativeElement,\n 'justify-content',\n 'center'\n );\n this.renderer.setStyle(\n this.element.nativeElement,\n 'align-items',\n 'center'\n );\n\n if (this.ignoreDisabledStyle) {\n this.renderer.addClass(\n this.element.nativeElement,\n 'ignore-disabled'\n );\n }\n }\n\n private setIconStyle(): void {\n if (this.loaderColor) {\n this.renderer.setStyle(this.svgIcon, 'stroke', this.loaderColor);\n }\n\n this.renderer.setStyle(this.svgIcon, 'width', this.loaderWidth);\n this.renderer.setStyle(this.svgIcon, 'height', this.loaderHeight);\n this.renderer.setStyle(this.svgIcon, 'margin-inline-start', '0.5rem');\n this.renderer.addClass(this.svgIcon, 'svg-icon');\n this.renderer.addClass(this.svgIcon, 'stroke');\n }\n\n private toggleLoading(show: boolean): void {\n if (show) {\n this._isLoading = true;\n this.renderer.appendChild(this.element.nativeElement, this.svgIcon);\n this.renderer.setAttribute(\n this.element.nativeElement,\n 'disabled',\n 'true'\n );\n this.renderer.addClass(this.element.nativeElement, 'lock-events');\n } else {\n if (this._isLoading) {\n this._isLoading = false;\n this.renderer.removeChild(\n this.element.nativeElement,\n this.svgIcon\n );\n this.renderer.removeAttribute(\n this.element.nativeElement,\n 'disabled'\n );\n this.renderer.removeClass(\n this.element.nativeElement,\n 'lock-events'\n );\n }\n }\n }\n}\n","import { Directive, HostListener, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[pepMenuBlur]',\n})\nexport class PepMenuBlurDirective {\n constructor(private element: ElementRef) {}\n\n @HostListener('menuClosed')\n menuClosedEvent(): void {\n setTimeout(() => {\n this.element.nativeElement.blur();\n }, 0);\n }\n\n @HostListener('menuOpened')\n menuOpenedEvent(): void {\n setTimeout(() => {\n this.element.nativeElement.blur();\n }, 0);\n }\n}\n","import {\n Directive,\n HostListener,\n ElementRef,\n Renderer2,\n OnInit,\n Input,\n} from '@angular/core';\n\n@Directive({\n selector: '[pepDataQa]',\n})\nexport class PepDataQaDirective implements OnInit {\n @Input('pepDataQa') dataQa: string;\n\n constructor(private renderer: Renderer2, private element: ElementRef) {}\n\n ngOnInit(): void {\n this.renderer.setAttribute(\n this.element.nativeElement,\n 'data-qa',\n this.dataQa\n );\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: '[pepPreventMultiClick]',\n})\nexport class PepPreventMultiClickDirective {\n @Input() disabledTime = 1000;\n\n @HostListener('click', ['$event'])\n clickEvent(event): void {\n event.srcElement.setAttribute('disabled', true);\n setTimeout(() => {\n event.srcElement.removeAttribute('disabled');\n }, this.disabledTime);\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\r\n@Directive({\r\n selector: \"[pepPrint]\"\r\n})\r\nexport class PepPrintDirective {\r\n\r\n public _printStyle = [];\r\n\r\n /**\r\n * @memberof PepPrintDirective\r\n */\r\n @Input() printSectionId: string;\r\n\r\n /**\r\n * @memberof PepPrintDirective\r\n */\r\n @Input() printTitle: string;\r\n\r\n /**\r\n * @memberof PepPrintDirective\r\n */\r\n @Input() useExistingCss = true;\r\n\r\n /**\r\n * A delay in milliseconds to force the print dialog to wait before opened. Default: 0\r\n * \r\n * @memberof PepPrintDirective\r\n */\r\n @Input() printDelay = 0;\r\n\r\n /**\r\n * @memberof PepPrintDirective\r\n */\r\n @Input()\r\n set printStyle(values: { [key: string]: { [key: string]: string } }) {\r\n for (const key in values) {\r\n if (values.hasOwnProperty(key)) {\r\n this._printStyle.push((key + JSON.stringify(values[key])).replace(/['\"]+/g, ''));\r\n }\r\n }\r\n this.returnStyleValues();\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @returns the string that create the stylesheet which will be injected\r\n * later within <style></style> tag.\r\n *\r\n * - join/replace to transform an array objects to css-styled string\r\n * @memberof PepPrintDirective\r\n */\r\n public returnStyleValues() {\r\n return `<style> ${this._printStyle.join(' ').replace(/,/g, ';')} </style>`;\r\n }\r\n\r\n /**\r\n * @returns html for the given tag\r\n *\r\n * @memberof PepPrintDirective\r\n */\r\n private _styleSheetFile = '';\r\n\r\n /**\r\n * @memberof PepPrintDirective\r\n * @param cssList\r\n */\r\n @Input()\r\n set styleSheetFile(cssList: string) {\r\n const linkTagFn = function (cssFileName) {\r\n return `<link rel=\"stylesheet\" type=\"text/css\" href=\"${cssFileName}\">`;\r\n }\r\n if (cssList.indexOf(',') !== -1) {\r\n const valueArr = cssList.split(',');\r\n for (const val of valueArr) {\r\n this._styleSheetFile = this._styleSheetFile + linkTagFn(val);\r\n }\r\n } else {\r\n this._styleSheetFile = linkTagFn(cssList);\r\n }\r\n }\r\n\r\n /**\r\n * @returns string which contains the link tags containing the css which will\r\n * be injected later within <head></head> tag.\r\n *\r\n */\r\n private returnStyleSheetLinkTags() {\r\n return this._styleSheetFile;\r\n }\r\n private getElementTag(tag: keyof HTMLElementTagNameMap): string {\r\n const html: string[] = [];\r\n const elements = document.getElementsByTagName(tag);\r\n for (let index = 0; index < elements.length; index++) {\r\n html.push(elements[index].outerHTML);\r\n }\r\n return html.join('\\r\\n');\r\n }\r\n\r\n /**\r\n * \r\n * @param data the html element collection to save defaults to\r\n * \r\n */\r\n private getFormData(data: any) {\r\n for (let i = 0; i < data.length; i++) {\r\n data[i].defaultValue = data[i].value;\r\n if (data[i].checked) {\r\n data[i].defaultChecked = true;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @returns html section to be printed along with some associated inputs\r\n * \r\n */\r\n private getHtmlContents() {\r\n const printContents = document.getElementById(this.printSectionId);\r\n const innards = printContents.getElementsByTagName('input');\r\n this.getFormData(innards);\r\n\r\n const txt = printContents.getElementsByTagName('textarea');\r\n this.getFormData(txt);\r\n\r\n return printContents.innerHTML;\r\n }\r\n\r\n /**\r\n * @memberof PepPrintDirective\r\n */\r\n @HostListener('click')\r\n public print(): void {\r\n let styles = '', links = '';\r\n const baseTag = this.getElementTag('base');\r\n\r\n if (this.useExistingCss) {\r\n styles = this.getElementTag('style');\r\n links = this.getElementTag('link');\r\n }\r\n\r\n const printContents = this.getHtmlContents();\r\n const popupWin = window.open(\"\", \"_blank\", \"top=0,left=0,height=auto,width=auto\");\r\n popupWin.document.open();\r\n popupWin.document.write(`\r\n <html>\r\n <head>\r\n <title>${this.printTitle ? this.printTitle : \"\"}</title>\r\n ${baseTag}\r\n ${this.returnStyleValues()}\r\n ${this.returnStyleSheetLinkTags()}\r\n ${styles}\r\n ${links}\r\n </head>\r\n <body>\r\n ${printContents}\r\n <script defer>\r\n function triggerPrint(event) {\r\n window.removeEventListener('load', triggerPrint, false);\r\n setTimeout(function() {\r\n closeWindow(window.print());\r\n }, ${this.printDelay});\r\n }\r\n function closeWindow(){\r\n window.close();\r\n }\r\n window.addEventListener('load', triggerPrint, false);\r\n </script>\r\n </body>\r\n </html>`\r\n );\r\n popupWin.document.close();\r\n }\r\n}","import { HttpRequest } from '@angular/common/http';\nimport { Injectable, Inject } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepJwtHelperService {\n public urlBase64Decode(str: string): string {\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\n switch (output.length % 4) {\n case 0: {\n break;\n }\n case 2: {\n output += '==';\n break;\n }\n case 3: {\n output += '=';\n break;\n }\n default: {\n throw new Error('Illegal base64url string!');\n }\n }\n return this.b64DecodeUnicode(output);\n }\n\n // credits for decoder goes to https://github.com/atk\n private b64decode(str: string): string {\n const chars =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n let output = '';\n\n str = String(str).replace(/=+$/, '');\n\n if (str.length % 4 === 1) {\n throw new Error(\n \"'atob' failed: The string to be decoded is not correctly encoded.\"\n );\n }\n\n for (\n // initialize result and counters\n let bc = 0, bs: any, buffer: any, idx = 0;\n // get next character\n (buffer = str.charAt(idx++));\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer &&\n ((bs = bc % 4 ? bs * 64 + buffer : buffer),\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4)\n ? (output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6))))\n : 0\n ) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n return output;\n }\n\n private b64DecodeUnicode(str: any): string {\n return decodeURIComponent(\n Array.prototype.map\n .call(this.b64decode(str), (c: any) => {\n return (\n '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)\n );\n })\n .join('')\n );\n }\n\n public decodeToken(token: string): any {\n if (!token || token === '') {\n return null;\n }\n\n const parts = token.split('.');\n\n if (parts.length !== 3) {\n throw new Error(\n \"The inspected token doesn't appear to be a JWT. Check to make sure it has three parts and see https://jwt.io for more.\"\n );\n }\n\n const decoded = this.urlBase64Decode(parts[1]);\n if (!decoded) {\n throw new Error('Cannot decode the token.');\n }\n\n return JSON.parse(decoded);\n }\n\n public getTokenExpirationDate(token: string): Date | null {\n const decoded = this.decodeToken(token);\n\n if (!decoded || !decoded.hasOwnProperty('exp')) {\n return null;\n }\n\n const date = new Date(0);\n date.setUTCSeconds(decoded.exp);\n\n return date;\n }\n\n public isTokenExpired(token: string, offsetSeconds?: number): boolean {\n if (!token || token === '') {\n return true;\n }\n const date = this.getTokenExpirationDate(token);\n offsetSeconds = offsetSeconds || 0;\n\n if (date === null) {\n return false;\n }\n\n return !(date.valueOf() > new Date().valueOf() + offsetSeconds * 1000);\n }\n\n public getAuthScheme(\n authScheme: (request: HttpRequest<any>) => any | string | undefined,\n request: HttpRequest<any>\n ): string {\n if (typeof authScheme === 'function') {\n return authScheme(request);\n }\n\n return authScheme;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { PepJwtHelperService } from './jwt-helper.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepSessionService {\n private readonly IDP_TOKEN_KEY = 'idp_token';\n private readonly PAPI_BASE_URL_KEY = 'pepperi.baseurl';\n // private readonly API_BASE_URL_KEY = 'pepperi.publicapibaseurl';\n // private readonly WAPI_TOKEN_KEY = 'auth_token';\n private readonly WAPI_BASE_URL_KEY = 'serverHostURL'; // pepperi.webapibaseurl\n // private readonly PEPPERI_CONSUMER_TOKEN: 'YY2pAwx6Exo2LWXrUllF9xzSfWF53wqc';\n\n constructor(private jwtHelper: PepJwtHelperService) {}\n\n private getParseToken(): any {\n // debugger;\n // const tokenTest = \"eyJhbGciOiJSUzI1NiIsImtpZCI6IjRiYTFjNzJmMTI3NThjYzEzMzg3ZWQ3YTBiZjNlODg3IiwidHlwIjoiSldUIn0.eyJuYmYiOjE1OTY3MjU5NjksImV4cCI6MTU5NjcyNjI2OSwiaXNzIjoiaHR0cHM6Ly9pZHAuc2FuZGJveC5wZXBwZXJpLmNvbSIsImF1ZCI6InBlcHBlcmkud2ViYXBwLmFwcC5zYW5kYm94LnBlcHBlcmkuY29tIiwiaWF0IjoxNTk2NzI1OTY5LCJhdF9oYXNoIjoiSGtmRXJ0Q2JzQ3NzOTVKUm05VmJTdyIsInNpZCI6IjJkNzFiM2JiNWUyNjRiNDk2Y2JmZDkzNmYyNTNhNWIzIiwic3ViIjoiZTJkZmQ0MDYtZDM4Yy00ZmYwLThhZGItMWRlMjI3ODIzYWEyIiwiYXV0aF90aW1lIjoxNTk2NzE4ODA5LCJpZHAiOiJsb2NhbCIsIm5hbWUiOiJkYW5pZWwgZGF2aWRvZmYiLCJlbWFpbCI6ImRhbmllbC5kQHBlcHBlcml0ZXN0LmNvbSIsInBlcHBlcmkuaWQiOjg2OTAzMDQsInBlcHBlcmkudXNlcnV1aWQiOiJlMmRmZDQwNi1kMzhjLTRmZjAtOGFkYi0xZGUyMjc4MjNhYTIiLCJwZXBwZXJpLmRpc3RyaWJ1dG9yaWQiOjMwMDEyMzUxLCJwZXBwZXJpLmRpc3RyaWJ1dG9ydXVpZCI6IjBiZDBlZDc5LThlOWUtNDRmYi05NmY0LThlNTNlZDljZTgyYiIsInBlcHBlcmkuZGF0YWNlbnRlciI6InNhbmRib3giLCJwZXBwZXJpLmtlZXBsb2dpbiI6ZmFsc2UsInBlcHBlcmkuaWRsZXRpbWV3ZWIiOjEyMCwidXBkYXRlZF9hdCI6MTU5NjcwMjgwMCwiZ2l2ZW5fbmFtZSI6ImRhbmllbCIsImZhbWlseV9uYW1lIjoiZGF2aWRvZmYiLCJwZXBwZXJpLmFwaW50YmFzZXVybCI6Imh0dHBzOi8vcmVzdGFwaS5zYW5kYm94LnBlcHBlcmkuY29tIiwicGVwcGVyaS53ZWJhcGliYXNldXJsIjoiaHR0cHM6Ly93ZWJhcGkuc2FuZGJveC5wZXBwZXJpLmNvbS9WMTZfNTAvV2ViQXBwXzYiLCJwZXBwZXJpLnB1YmxpY2FwaWJhc2V1cmwiOiJodHRwczovL2FwaS1zYW5kYm94LnBlcHBlcmkuY29tIiwicGVwcGVyaS5iYXNldXJsIjoiaHR0cHM6Ly9wYXBpLnNhbmRib3gucGVwcGVyaS5jb20vVjEuMCIsInBlcHBlcmkuZW1wbG95ZWV0eXBlIjoxLCJhbXIiOlsicHdkIl19.tNtZT3Cl4dMmTQftoaO2KP5BvHOlWGIP-5GpHrAhZoymBkxBSxpKprQGqr0ATtQlNHjX3gDV1W6k_avaSkyJgDiB2hcwr1tNRilasNuMzNV93gxLC9Oh_HdkIN4cZ0hahIcJvf_17PHpS8zD_MRwvGG_i45wRYJAtiGXChxCMzooethRsLOq5TEwuNbE3MxdjZOpImGYyytmsfdsdJRWQn1LQwQBt95ssuypcUzBsVB34P5XuFttjAe9dhTwHIfgsPG-VdfAWH_r-hVe834wKpKrplSWlC_MucgS0X4XP_tN4CtLnHO2wXKPsojqSTH2NQycfqh6YvT6rzRDBEdQIQ\";\n const token = this.getIdpToken();\n // token = token || tokenTest;\n\n const decodedToken = this.jwtHelper.decodeToken(token);\n // const expirationDate = this.jwtHelper.getTokenExpirationDate(token);\n // const isExpired = this.jwtHelper.isTokenExpired(token);\n\n return decodedToken;\n }\n\n setObject<T>(key: string, object: T): void {\n const stringifiedObject =\n typeof object === 'string' || object instanceof String\n ? object\n : JSON.stringify(object);\n\n sessionStorage.setItem(key, stringifiedObject.toString());\n }\n\n getObject<T = any>(key: string): T {\n let result = null;\n const item = sessionStorage.getItem(key);\n\n try {\n result = item ? (JSON.parse(item) as T) : item;\n } catch {\n result = item;\n }\n\n return result;\n }\n\n // setObject(key: string, value: string): void {\n // sessionStorage.setItem(key, value);\n // }\n\n // getObject(key: string): string | null {\n // return sessionStorage.getItem(key);\n // }\n\n removeObject(key: string): void {\n sessionStorage.removeItem(key);\n }\n\n // getWapiToken(): string {\n // return this.getObject(this.WAPI_TOKEN_KEY);\n // }\n\n getWapiBaseUrl(): string {\n return this.getObject(this.WAPI_BASE_URL_KEY);\n }\n\n getIdpToken(): string {\n return this.getObject(this.IDP_TOKEN_KEY);\n }\n\n getPapiBaseUrl(): string {\n const tokenObj = this.getParseToken();\n return tokenObj ? tokenObj[this.PAPI_BASE_URL_KEY] : null;\n }\n\n // getApiBaseUrl(): string {\n // const tokenObj = this.getParseToken();\n // return tokenObj ? tokenObj[this.API_BASE_URL_KEY] : null;\n // }\n}\n","import { Injectable } from '@angular/core';\n\nexport type PepFileType = 'script' | 'style';\n\nexport interface IPepExternalFileModel {\n path: string;\n type: PepFileType;\n}\n\ndeclare let document: any;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepFileService {\n private scripts: Map<string, { loaded: boolean; src: string }>;\n private styles: Map<string, { loaded: boolean; src: string }>;\n\n constructor() {\n this.scripts = new Map<string, { loaded: boolean; src: string }>();\n this.styles = new Map<string, { loaded: boolean; src: string }>();\n }\n\n loadFiles(files: IPepExternalFileModel[]): Promise<any[]> {\n const promises: any[] = [];\n files.forEach((file) => {\n if (file.type === 'style') {\n promises.push(this.loadStyle(file.path));\n } else if (file.type === 'script') {\n promises.push(this.loadScript(file.path));\n }\n });\n return Promise.all(promises);\n }\n\n removeFiles(files: IPepExternalFileModel[]): void {\n for (\n let index = 0;\n index < files.length &&\n files[index].path &&\n files[index].path.trim() !== '';\n index++\n ) {\n const name = this.getFileName(files[index].path, true);\n const element = document.getElementById(name);\n element.parentNode.removeChild(element);\n\n if (files[index].type === 'script' && this.scripts.has(name)) {\n this.scripts.delete(name);\n } else if (files[index].type === 'style' && this.styles.has(name)) {\n this.styles.delete(name);\n }\n }\n }\n\n loadScript(path: string): Promise<any> {\n return new Promise((resolve, reject) => {\n const name = this.getFileName(path, true);\n\n // If the script isn't exist add it.\n if (!this.scripts.has(name)) {\n this.scripts.set(name, { loaded: false, src: path });\n }\n\n const scriptItem = this.scripts.get(name);\n\n // Resolve if already loaded\n if (scriptItem.loaded) {\n resolve({\n script: name,\n loaded: true,\n status: 'Already Loaded',\n });\n } else {\n // Load script\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = scriptItem.src;\n script.setAttribute('id', name);\n script.async = false;\n\n if (script.readyState) {\n // IE\n script.onreadystatechange = () => {\n if (\n script.readyState === 'loaded' ||\n script.readyState === 'complete'\n ) {\n script.onreadystatechange = null;\n scriptItem.loaded = true;\n resolve({\n path,\n type: 'script',\n loaded: true,\n status: 'Loaded',\n });\n }\n };\n } else {\n // Others\n script.onload = () => {\n scriptItem.loaded = true;\n resolve({\n path,\n type: 'script',\n loaded: true,\n status: 'Loaded',\n });\n };\n }\n script.onerror = (error: any) =>\n resolve({\n path,\n type: 'script',\n loaded: false,\n status: 'Loaded',\n });\n document.getElementsByTagName('head')[0].appendChild(script);\n }\n });\n }\n\n loadStyle(path: string): Promise<any> {\n return new Promise((resolve, reject) => {\n const name = this.getFileName(path, true);\n\n // If the style isn't exist add it.\n if (!this.styles.has(name)) {\n this.styles.set(name, { loaded: false, src: path });\n }\n\n const styleItem = this.styles.get(name);\n\n // Resolve if already loaded\n if (styleItem.loaded) {\n resolve({\n path,\n type: 'style',\n loaded: true,\n status: 'Already Loaded',\n });\n } else {\n // Load style\n const style = document.createElement('link');\n style.type = 'text/css';\n style.rel = 'stylesheet';\n style.href = styleItem.src;\n style.media = 'all';\n style.setAttribute('id', name);\n\n styleItem.loaded = true;\n resolve({\n path,\n type: 'style',\n loaded: true,\n status: 'Loaded',\n });\n\n document.getElementsByTagName('head')[0].appendChild(style);\n }\n });\n }\n\n loadFontStyle(styleId: string, href: string): void {\n const head = document.getElementsByTagName('head')[0];\n\n const styleElement = document.getElementById(\n styleId\n ) as HTMLLinkElement;\n\n if (styleElement) {\n styleElement.href = href;\n } else {\n const style = document.createElement('link');\n style.id = styleId;\n style.rel = 'stylesheet';\n style.href = `${href}`;\n\n head.appendChild(style);\n }\n }\n\n getFileName(filePath: string, withExtenstion = false): string {\n const lastIndex = withExtenstion\n ? filePath.length - 1\n : filePath.lastIndexOf('.');\n\n return filePath.substr(filePath.lastIndexOf('/') + 1, lastIndex);\n }\n\n getFileExtension(filename: string): string {\n const extension = filename.substring(filename.lastIndexOf('.') + 1, filename.length);\n return extension;\n }\n\n /* Returns true if url is valid */\n isValidUrl(url: string): boolean {\n /* Try creating a valid URL */\n try {\n const tmp = new URL(url);\n return true;\n } catch (e) {\n return false;\n }\n }\n \n convertFromb64toArrayBuffer(base64String: string): ArrayBuffer {\n const base64 = base64String.slice(base64String.indexOf(',') + 1);\n const binary_string = window.atob(base64);\n const len = binary_string.length;\n const bytes = new Uint8Array(len);\n \n for (let i = 0; i < len; i++) {\n bytes[i] = binary_string.charCodeAt(i);\n }\n return bytes.buffer;\n }\n\n convertFromb64toBlob(base64String: any): Blob {\n // const byteCharacters = window.atob(b64Data);\n const byteArrays = this.convertFromb64toArrayBuffer(base64String);\n\n const fileStrArr = base64String.split(';');\n const contentType = fileStrArr[0].split(':')[1];\n\n const blob = new Blob([byteArrays], { type: contentType });\n return blob;\n }\n\n getBase64FileSize(base64String: string): number {\n let fileSize: number;\n\n try {\n base64String = base64String.slice(base64String.indexOf(',') + 1);\n fileSize = window.atob(base64String).length;\n } catch (e) {\n fileSize = -1;\n }\n\n return fileSize; // return size in bytes;\n }\n\n fileToBase64(file: File) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result);\n reader.onerror = (error) => reject(error);\n });\n }\n\n isValidFileExtension(\n fileExtension,\n acceptedExtensions\n ): boolean {\n const extensionOK =\n acceptedExtensions === '' ||\n acceptedExtensions.indexOf(fileExtension.toLowerCase()) !== -1;\n \n return extensionOK;\n }\n\n isValidFileSize(\n fileStr,\n sizeLimitMB = 5\n ): boolean {\n const file: any = fileStr;\n let fileSize = 0;\n // check if got file as Base64\n if (typeof fileStr === 'string' && fileStr.indexOf('data:') > -1) {\n fileSize = this.getBase64FileSize(fileStr);\n } else {\n fileSize = file.size;\n }\n // check the size\n const sizeOK: boolean = fileSize !== -1 && file != null && fileSize < sizeLimitMB * 1048576;\n return sizeOK;\n }\n\n getAssetsPath(assetsDomain = '', libName = 'ngx-lib'): string {\n const concatChar =\n assetsDomain === '' || assetsDomain.endsWith('/') ? '' : '/';\n return `${assetsDomain}${concatChar}assets/${libName}/`;\n }\n\n getAssetsTranslationsSuffix(libName = 'ngx-lib'): string {\n return `.${libName}.json`;\n }\n\n getAssetsTranslationsPath(assetsDomain = '', libName = 'ngx-lib'): string {\n return `${this.getAssetsPath(assetsDomain, libName)}i18n/`;\n }\n\n getAssetsImagesPath(assetsDomain = '', image = '', libName = 'ngx-lib'): string {\n return `${this.getAssetsPath(assetsDomain, libName)}images/${image}`;\n }\n\n getSvgAsImageSrc(svg: string): string {\n const blob = new Blob([svg], { type: 'image/svg+xml' });\n const url = URL.createObjectURL(blob);\n return url;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { PepSessionService } from '../common/services/session.service';\nimport { PepFileService } from '../common/services/file.service';\nimport { PepStyleType, PepFieldBase } from './customization.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepCustomizationService {\n static STAND_ALONE_FIELD_CLASS_NAME = 'pep-field';\n static STAND_ALONE_FIELD_NO_SPACING_CLASS_NAME = 'pep-field-no-spacing';\n\n static REM_STRING = 'rem';\n static PX_STRING = 'px';\n static USER_THEME = 'user_theme';\n static USER_COLOR = 'user_color';\n static USER_THEME_VARIABLES = 'user_theme_variables';\n\n // Header height\n static HEADER_HEIGHT_KEY = '--pep-header-height';\n\n // Side bar variables keys\n static SIDE_BAR_WIDTH_KEY = '--pep-side-bar-width';\n\n // Settings width\n static SETTINGS_WIDTH_KEY = '--pep-settings-bar-width';\n\n // Top bar variables keys\n static TOP_BAR_SPACING_TOP_KEY = '--pep-top-bar-spacing-top';\n static TOP_BAR_SPACING_BOTTOM_KEY = '--pep-top-bar-spacing-bottom';\n static TOP_BAR_FIELD_HEIGHT_KEY = '--pep-top-bar-field-height';\n\n // Footer variables keys\n static FOOTER_HEIGHT_KEY = '--pep-footer-bar-height';\n static FOOTER_BAR_SPACING_TOP_KEY = '--pep-footer-bar-spacing-top';\n static FOOTER_BAR_SPACING_BOTTOM_KEY = '--pep-footer-bar-spacing-bottom';\n\n // Main container height\n static MAIN_HEIGHT_KEY = '--pep-main-height';\n\n // Colors variables keys\n static COLOR_USER_PRIMARY_KEY = '--pep-color-user-primary';\n static COLOR_USER_SECONDARY_KEY = '--pep-color-user-secondary';\n static COLOR_SYSTEM_PRIMARY_INVERT_KEY =\n '--pep-color-system-primary-invert';\n static COLOR_SYSTEM_PRIMARY_KEY = '--pep-color-system-primary';\n static COLOR_TEXT_LINK_KEY = '--pep-color-text-link';\n static COLOR_SYSTEM_CAUTION_KEY = '--pep-color-system-caution';\n static COLOR_SYSTEM_SUCCESS_KEY = '--pep-color-system-success';\n static COLOR_STRONG_KEY = '--pep-color-strong';\n static COLOR_REGULAR_KEY = '--pep-color-regular';\n static COLOR_WEAK_KEY = '--pep-color-weak';\n \n // Top header variables keys\n static COLOR_TOP_LEGACY_KEY = '--pep-color-legacy';\n static COLOR_TOP_HEADER_KEY = '--pep-color-top-header';\n static STYLE_TOP_HEADER_KEY = '--pep-style-top-header';\n\n // Loader variables keys\n static COLOR_LOADER_KEY = '--pep-color-loader';\n\n // QS variables keys\n static COLOR_QS_KEY = '--pep-color-qs';\n static STYLE_QS_KEY = '--pep-style-qs';\n\n // Fonts variables keys\n static FONT_FAMILY_TITLE_KEY = '--pep-font-family-title';\n static FONT_FAMILY_TITLE_NORMAL_URL_KEY =\n '--pep-font-family-title-normal-url';\n static FONT_FAMILY_TITLE_BOLD_URL_KEY = '--pep-font-family-title-bold-url';\n static FONT_FAMILY_BODY_KEY = '--pep-font-family-body';\n static FONT_FAMILY_BODY_NORMAL_URL_KEY =\n '--pep-font-family-body-normal-url';\n static FONT_FAMILY_BODY_BOLD_URL_KEY = '--pep-font-family-body-bold-url';\n\n // Border radius variables keys\n static BORDER_RADIUS_KEY = '--pep-border-radius';\n static BORDER_RADIUS_SM_KEY =\n PepCustomizationService.BORDER_RADIUS_KEY + '-sm';\n static BORDER_RADIUS_MD_KEY =\n PepCustomizationService.BORDER_RADIUS_KEY + '-md';\n static BORDER_RADIUS_LG_KEY =\n PepCustomizationService.BORDER_RADIUS_KEY + '-lg';\n static BORDER_RADIUS_XL_KEY =\n PepCustomizationService.BORDER_RADIUS_KEY + '-xl';\n\n // Fonts variables keys\n static FONT_SIZE_2XS_KEY = '--pep-font-size-2xs';\n static FONT_SIZE_XS_KEY = '--pep-font-size-xs';\n static FONT_SIZE_SM_KEY = '--pep-font-size-sm';\n static FONT_SIZE_MD_KEY = '--pep-font-size-md';\n static FONT_SIZE_LG_KEY = '--pep-font-size-lg';\n static FONT_SIZE_XL_KEY = '--pep-font-size-xl';\n static FONT_SIZE_2XL_KEY = '--pep-font-size-2xl';\n\n // Line height variables keys\n static LINE_HEIGHT_2XS_KEY = '--pep-line-height-2xs';\n static LINE_HEIGHT_XS_KEY = '--pep-line-height-xs';\n static LINE_HEIGHT_SM_KEY = '--pep-line-height-sm';\n static LINE_HEIGHT_MD_KEY = '--pep-line-height-md';\n static LINE_HEIGHT_LG_KEY = '--pep-line-height-lg';\n static LINE_HEIGHT_XL_KEY = '--pep-line-height-xl';\n static LINE_HEIGHT_2XL_KEY = '--pep-line-height-2xl';\n\n // Shadows offset variables keys\n static SHADOW_NONE_OFFSET_KEY = '--pep-shadow-none-offset';\n static SHADOW_XS_OFFSET_KEY = '--pep-shadow-xs-offset';\n static SHADOW_SM_OFFSET_KEY = '--pep-shadow-sm-offset';\n static SHADOW_MD_OFFSET_KEY = '--pep-shadow-md-offset';\n static SHADOW_LG_OFFSET_KEY = '--pep-shadow-lg-offset';\n static SHADOW_XL_OFFSET_KEY = '--pep-shadow-xl-offset';\n\n // Spacing variables keys\n static SPACING_SIZE_2XS_KEY = '--pep-spacing-2xs';\n static SPACING_SIZE_XS_KEY = '--pep-spacing-xs';\n static SPACING_SIZE_SM_KEY = '--pep-spacing-sm';\n static SPACING_SIZE_MD_KEY = '--pep-spacing-md';\n static SPACING_SIZE_LG_KEY = '--pep-spacing-lg';\n static SPACING_SIZE_XL_KEY = '--pep-spacing-xl';\n static SPACING_SIZE_2XL_KEY = '--pep-spacing-2xl';\n static SPACING_SIZE_3XL_KEY = '--pep-spacing-3xl';\n static SPACING_SIZE_4XL_KEY = '--pep-spacing-4xl';\n static SPACING_SIZE_5XL_KEY = '--pep-spacing-5xl';\n static SPACING_SIZE_6XL_KEY = '--pep-spacing-6xl';\n static SPACING_SIZE_7XL_KEY = '--pep-spacing-7xl';\n static SPACING_SIZE_8XL_KEY = '--pep-spacing-8xl';\n static SPACING_SIZE_9XL_KEY = '--pep-spacing-9xl';\n\n // Form variables keys\n static FORM_FIELD_HEIGHT_KEY = '--pep-form-field-height';\n static FORM_FIELD_TITLE_HEIGHT_KEY = '--pep-form-field-title-height';\n static FORM_FIELD_SPACEING_KEY = '--pep-form-field-spacing';\n static FORM_SPACEING_KEY = '--pep-form-spacing';\n\n // Card variables keys\n static CARD_FIELD_HEIGHT_KEY = '--pep-card-field-height';\n static CARD_SPACEING_KEY = '--pep-card-spacing';\n static CARD_SHADOW_OFFSET_KEY = '--pep-shadow-card-offset';\n static CARD_BORDER_RADIUS_KEY = '--pep-card-border-radius';\n\n // Table variables keys\n static TABLE_FIELD_HEIGHT_KEY = '--pep-table-field-height';\n static TABLE_SPACEING_KEY = '--pep-table-spacing';\n static TABLE_BORDER_RADIUS_KEY = '--pep-table-border-radius';\n\n // // Branding keys\n // static BRANDING_LOGO_SRC = '--pep-branding-logo-src';\n // static FAV_ICON_SRC = '--pep-favicon-src';\n\n static DEFAULT_HEADER_HEIGHT = 64; // Default\n\n static DEFAULT_SPINNER_COLOR = '#78aa00';\n static DEFAULT_BRANDING_COLOR = '#fff';\n\n public hasCustomHomepage: boolean = null;\n public hasCustomHeader: boolean = null;\n public customHeaderHeight = PepCustomizationService.DEFAULT_HEADER_HEIGHT;\n public mainContHeight = 0;\n public footerHeight = new BehaviorSubject<number>(0);\n public settingsWidth = new BehaviorSubject<number>(0);\n\n constructor(\n private sessionService: PepSessionService,\n private fileService: PepFileService,\n public fb: FormBuilder\n ) {\n this.hideFooter();\n //\n }\n\n getDefaultFromGroup(field: PepFieldBase, withValidators = true): FormGroup {\n const validators = withValidators ? field.getValidators() : [];\n const group = {};\n group[field.key] = [\n { value: field.value, disabled: field.disabled },\n validators,\n ];\n return this.fb.group(group);\n }\n\n getFormControl(\n form: FormGroup,\n fieldKey: string,\n parentFieldKey: string = null\n ): any {\n let formControl = null;\n\n if (form && form.controls) {\n if (parentFieldKey === null) {\n formControl = form.controls[fieldKey];\n } else {\n formControl = form.controls[parentFieldKey]?.get(fieldKey);\n }\n }\n\n return formControl;\n }\n\n updateFormFieldValue(\n form: FormGroup,\n fieldKey: string,\n value = '',\n parentFieldKey: string = null\n ): void {\n const formControl = this.getFormControl(form, fieldKey, parentFieldKey);\n if (formControl) {\n formControl.setValue(value);\n }\n }\n\n updateFormField(\n form: FormGroup,\n field: PepFieldBase,\n value = '',\n parentField: PepFieldBase = null\n ): void {\n const formControl: FormControl = this.getFormControl(\n form,\n field.key,\n parentField?.key\n );\n if (formControl) {\n formControl.setValue(value);\n\n // If disabled has changed.\n if (formControl.disabled !== field.disabled) {\n field.disabled ? formControl.disable() : formControl.enable();\n \n const validators = field.getValidators();\n formControl.setValidators(validators);\n formControl.updateValueAndValidity();\n }\n }\n }\n\n calculateFormFieldHeight(\n withTitle = true,\n rowSpan = 1,\n standAlone = false\n ): number {\n const themeVars = this.getThemeVariables();\n const rowFieldHeight = this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.FORM_FIELD_HEIGHT_KEY\n );\n const rowFieldTitleHeight = this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.FORM_FIELD_TITLE_HEIGHT_KEY\n );\n const rowFieldSpacingBottom = this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.FORM_SPACEING_KEY\n );\n\n let fieldHeight = 0;\n if (rowSpan === 1) {\n fieldHeight =\n (withTitle ? rowFieldTitleHeight : 0) + rowFieldHeight;\n } else {\n const rowSpanCalc = withTitle ? rowSpan : rowSpan - 1;\n fieldHeight =\n rowSpan * rowFieldHeight +\n rowSpanCalc * rowFieldTitleHeight +\n (standAlone ? 0 : rowSpanCalc * rowFieldSpacingBottom);\n }\n\n return fieldHeight;\n }\n\n calculateCardRowsHeight(rowsCount = 1, withSpacing = true): number {\n const themeVars = this.getThemeVariables();\n const cardFieldHeight = this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.CARD_FIELD_HEIGHT_KEY\n );\n const cardFieldSpacing = this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.CARD_SPACEING_KEY\n );\n\n const fieldHeight =\n rowsCount * cardFieldHeight +\n (rowsCount - 1) * (withSpacing ? cardFieldSpacing : 0);\n return fieldHeight;\n }\n\n calculateTableRowsHeight(rowsCount = 1, withSpacing = true): number {\n const themeVars = this.getThemeVariables();\n const tableFieldHeight = this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.TABLE_FIELD_HEIGHT_KEY\n );\n const tableFieldSpacing = this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.TABLE_SPACEING_KEY\n );\n\n const fieldHeight =\n rowsCount *\n (tableFieldHeight + (withSpacing ? tableFieldSpacing * 2 : 0));\n return fieldHeight;\n }\n\n calculateFieldHeight(layoutType = 'form', rowSpan, standAlone): string {\n let fieldHeight = 'inherit'; // Default for card (with no title)\n if (layoutType === 'table') {\n fieldHeight = this.getThemeVariable(\n PepCustomizationService.TABLE_FIELD_HEIGHT_KEY\n );\n } else if (layoutType === 'card') {\n fieldHeight =\n this.calculateCardRowsHeight(rowSpan, !standAlone) +\n PepCustomizationService.REM_STRING;\n } else {\n // Form\n fieldHeight =\n this.calculateFormFieldHeight(false, rowSpan, standAlone) +\n PepCustomizationService.REM_STRING;\n }\n\n return fieldHeight;\n }\n\n getBrandingTheme(): string {\n const themeObj = this.sessionService.getObject(\n PepCustomizationService.USER_THEME\n );\n return (themeObj && themeObj.Theme) || 'default-theme'; // 'light-theme';\n }\n\n getDefaultThemeLayoutVariables(themeVars: any): void {\n // Declare default screen sizes.\n themeVars['--pep-screen-max-size-2xs'] =\n '460' + PepCustomizationService.PX_STRING;\n themeVars['--pep-screen-max-size-xs'] =\n '767' + PepCustomizationService.PX_STRING;\n themeVars['--pep-screen-max-size-sm'] =\n '991' + PepCustomizationService.PX_STRING;\n themeVars['--pep-screen-max-size-md'] =\n '1199' + PepCustomizationService.PX_STRING;\n themeVars['--pep-screen-max-size-lg'] =\n '1366' + PepCustomizationService.PX_STRING;\n themeVars['--pep-screen-max-size-xl'] =\n '1920' + PepCustomizationService.PX_STRING;\n\n // Declare default top bar.\n themeVars[PepCustomizationService.SIDE_BAR_WIDTH_KEY] =\n '16' + PepCustomizationService.REM_STRING;\n\n // Declare default top bar.\n themeVars[PepCustomizationService.TOP_BAR_SPACING_TOP_KEY] =\n '1.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.TOP_BAR_SPACING_BOTTOM_KEY] =\n '0.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.TOP_BAR_FIELD_HEIGHT_KEY] =\n '2.5' + PepCustomizationService.REM_STRING;\n\n // Declare default footer.\n themeVars[PepCustomizationService.FOOTER_BAR_SPACING_TOP_KEY] =\n '0.75' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FOOTER_BAR_SPACING_BOTTOM_KEY] =\n '1.25' + PepCustomizationService.REM_STRING;\n }\n\n getDefaultThemeBorderRadiusVariables(themeVars: any): void {\n themeVars[PepCustomizationService.BORDER_RADIUS_SM_KEY] =\n '0.125' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.BORDER_RADIUS_MD_KEY] =\n '0.25' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.BORDER_RADIUS_LG_KEY] =\n '0.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.BORDER_RADIUS_XL_KEY] =\n '1' + PepCustomizationService.REM_STRING;\n }\n\n getDefaultThemeSpacingVariables(themeVars: any): void {\n themeVars[PepCustomizationService.SPACING_SIZE_2XS_KEY] =\n '0.125' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_XS_KEY] =\n '0.25' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_SM_KEY] =\n '0.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_MD_KEY] =\n '0.75' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_LG_KEY] =\n '1' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_XL_KEY] =\n '1.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_2XL_KEY] =\n '2' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_3XL_KEY] =\n '2.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_4XL_KEY] =\n '3' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_5XL_KEY] =\n '3.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_6XL_KEY] =\n '5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_7XL_KEY] =\n '6' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_8XL_KEY] =\n '8' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_9XL_KEY] =\n '16' + PepCustomizationService.REM_STRING;\n }\n\n getDefaultThemeFontsVariables(themeVars: any): void {\n // Title font family\n themeVars[PepCustomizationService.FONT_FAMILY_TITLE_KEY] = 'Nexa';\n\n // Body font family\n themeVars[PepCustomizationService.FONT_FAMILY_BODY_KEY] = 'Inter';\n\n // Font sizes\n themeVars[PepCustomizationService.FONT_SIZE_2XS_KEY] =\n '0.625' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FONT_SIZE_XS_KEY] =\n '0.75' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FONT_SIZE_SM_KEY] =\n '0.875' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FONT_SIZE_MD_KEY] =\n '1' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FONT_SIZE_LG_KEY] =\n '1.125' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FONT_SIZE_XL_KEY] =\n '1.25' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FONT_SIZE_2XL_KEY] =\n '1.5' + PepCustomizationService.REM_STRING;\n\n // Line height\n themeVars[PepCustomizationService.LINE_HEIGHT_2XS_KEY] =\n '0.75' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.LINE_HEIGHT_XS_KEY] =\n '1' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.LINE_HEIGHT_SM_KEY] =\n '1.25' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.LINE_HEIGHT_MD_KEY] =\n '1.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.LINE_HEIGHT_LG_KEY] =\n '1.75' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.LINE_HEIGHT_XL_KEY] =\n '2' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.LINE_HEIGHT_2XL_KEY] =\n '2.25' + PepCustomizationService.REM_STRING;\n\n // Font weight\n themeVars['--pep-font-weight-normal'] = 400;\n themeVars['--pep-font-weight-bold'] = 600;\n themeVars['--pep-font-weight-bolder'] = 800;\n }\n\n getDefaultThemeButtonsVariables(themeVars: any): void {\n themeVars['--pep-button-2xs-horizontal-spacing'] =\n '0.25' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-2xs-min-width'] =\n '1' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-2xs-height'] =\n '1' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-2xs-font-size'] =\n 'var(' + PepCustomizationService.FONT_SIZE_2XS_KEY + ')';\n // themeVars['--pep-button-2xs-icon-horizontal-spacing'] = '0.125' + PepCustomizationService.REM_STRING;\n\n themeVars['--pep-button-xs-horizontal-spacing'] =\n '0.5' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-xs-min-width'] =\n '1.5' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-xs-height'] =\n '1.5' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-xs-font-size'] =\n 'var(' + PepCustomizationService.FONT_SIZE_XS_KEY + ')';\n // themeVars['--pep-button-xs-icon-horizontal-spacing'] = '0.25' + PepCustomizationService.REM_STRING;\n\n themeVars['--pep-button-sm-horizontal-spacing'] =\n '0.75' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-sm-min-width'] =\n '2' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-sm-height'] =\n '2' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-sm-font-size'] =\n 'var(' + PepCustomizationService.FONT_SIZE_SM_KEY + ')';\n // themeVars['--pep-button-sm-icon-horizontal-spacing'] = '0.5' + PepCustomizationService.REM_STRING;\n\n themeVars['--pep-button-md-horizontal-spacing'] =\n '1' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-md-min-width'] =\n '2.5' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-md-height'] =\n '2.5' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-md-font-size'] =\n 'var(' + PepCustomizationService.FONT_SIZE_MD_KEY + ')';\n // themeVars['--pep-button-md-icon-horizontal-spacing'] = '0.5' + PepCustomizationService.REM_STRING;\n\n themeVars['--pep-button-lg-horizontal-spacing'] =\n '1' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-lg-min-width'] =\n '3' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-lg-height'] =\n '3' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-lg-font-size'] =\n 'var(' + PepCustomizationService.FONT_SIZE_LG_KEY + ')';\n // themeVars['--pep-button-lg-icon-horizontal-spacing'] = '0.75' + PepCustomizationService.REM_STRING;\n\n themeVars['--pep-button-xl-horizontal-spacing'] =\n '1.5' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-xl-min-width'] =\n '4' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-xl-height'] =\n '4' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-xl-font-size'] =\n 'var(' + PepCustomizationService.FONT_SIZE_XL_KEY + ')';\n // themeVars['--pep-button-xl-icon-horizontal-spacing'] = '1' + PepCustomizationService.REM_STRING;\n }\n\n getSystemPrimaryInvertColorsVariables(themeVars: any): void {\n themeVars[\n PepCustomizationService.COLOR_SYSTEM_PRIMARY_INVERT_KEY + '-h'\n ] = '255';\n themeVars[\n PepCustomizationService.COLOR_SYSTEM_PRIMARY_INVERT_KEY + '-s'\n ] = '100%';\n themeVars[\n PepCustomizationService.COLOR_SYSTEM_PRIMARY_INVERT_KEY + '-l'\n ] = '100%';\n }\n\n getSystemPrimaryColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-h'] =\n '0';\n themeVars[PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-s'] =\n '0%';\n themeVars[PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-l'] =\n '10%';\n }\n\n getSystemSuccessColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_SYSTEM_SUCCESS_KEY + '-h'] =\n '100';\n themeVars[PepCustomizationService.COLOR_SYSTEM_SUCCESS_KEY + '-s'] =\n '100%';\n themeVars[PepCustomizationService.COLOR_SYSTEM_SUCCESS_KEY + '-l'] =\n '25%';\n }\n\n getSystemCautionColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_SYSTEM_CAUTION_KEY + '-h'] =\n '360';\n themeVars[PepCustomizationService.COLOR_SYSTEM_CAUTION_KEY + '-s'] =\n '100%';\n themeVars[PepCustomizationService.COLOR_SYSTEM_CAUTION_KEY + '-l'] =\n '40%';\n }\n\n getUserPrimaryColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_USER_PRIMARY_KEY + '-h'] = '78';\n themeVars[PepCustomizationService.COLOR_USER_PRIMARY_KEY + '-s'] =\n '87%';\n themeVars[PepCustomizationService.COLOR_USER_PRIMARY_KEY + '-l'] =\n '27%';\n }\n\n getUserSecondaryColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_USER_SECONDARY_KEY + '-h'] =\n '36';\n themeVars[PepCustomizationService.COLOR_USER_SECONDARY_KEY + '-s'] =\n '100%';\n themeVars[PepCustomizationService.COLOR_USER_SECONDARY_KEY + '-l'] =\n '50%';\n }\n\n getWeakColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_WEAK_KEY + '-h'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-h)';\n themeVars[PepCustomizationService.COLOR_WEAK_KEY + '-s'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-s)';\n themeVars[PepCustomizationService.COLOR_WEAK_KEY + '-l'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-l)';\n }\n\n getRegularColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_REGULAR_KEY + '-h'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-h)';\n themeVars[PepCustomizationService.COLOR_REGULAR_KEY + '-s'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-s)';\n themeVars[PepCustomizationService.COLOR_REGULAR_KEY + '-l'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-l)';\n }\n\n getStrongColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_STRONG_KEY + '-h'] =\n 'var(' + PepCustomizationService.COLOR_USER_PRIMARY_KEY + '-h)';\n themeVars[PepCustomizationService.COLOR_STRONG_KEY + '-s'] =\n 'var(' + PepCustomizationService.COLOR_USER_PRIMARY_KEY + '-s)';\n themeVars[PepCustomizationService.COLOR_STRONG_KEY + '-l'] =\n 'var(' + PepCustomizationService.COLOR_USER_PRIMARY_KEY + '-l)';\n }\n\n getTextColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_TEXT_LINK_KEY + '-h'] = '207';\n themeVars[PepCustomizationService.COLOR_TEXT_LINK_KEY + '-s'] = '76%';\n themeVars[PepCustomizationService.COLOR_TEXT_LINK_KEY + '-l'] = '37%';\n }\n\n getDefaultThemeColorsVariables(themeVars: any): void {\n // System primary invert colors.\n this.getSystemPrimaryInvertColorsVariables(themeVars);\n // System primary colors.\n this.getSystemPrimaryColorsVariables(themeVars);\n // System success colors.\n this.getSystemSuccessColorsVariables(themeVars);\n // System caution colors.\n this.getSystemCautionColorsVariables(themeVars);\n // User primary colors.\n this.getUserPrimaryColorsVariables(themeVars);\n // User secondary colors.\n this.getUserSecondaryColorsVariables(themeVars);\n\n // Weak colors.\n this.getWeakColorsVariables(themeVars);\n // Regular colors.\n this.getRegularColorsVariables(themeVars);\n // Strong colors.\n this.getStrongColorsVariables(themeVars);\n\n // Text colors.\n this.getTextColorsVariables(themeVars);\n }\n\n getDefaultThemeShadowsVariables(themeVars: any): void {\n const noneOffset = '0';\n themeVars[PepCustomizationService.SHADOW_NONE_OFFSET_KEY] = noneOffset;\n\n const xsOffset = '0 0.125rem 0.25rem 0';\n themeVars[PepCustomizationService.SHADOW_XS_OFFSET_KEY] = xsOffset;\n\n const smOffset = '0 0.25rem 0.5rem 0';\n themeVars[PepCustomizationService.SHADOW_SM_OFFSET_KEY] = smOffset;\n\n const mdOffset = '0 0.5rem 1rem 0';\n themeVars[PepCustomizationService.SHADOW_MD_OFFSET_KEY] = mdOffset;\n\n const lgOffset = '0 1rem 2rem 0';\n themeVars[PepCustomizationService.SHADOW_LG_OFFSET_KEY] = lgOffset;\n\n const xlOffset = '0 2rem 4rem 0';\n themeVars[PepCustomizationService.SHADOW_XL_OFFSET_KEY] = xlOffset;\n }\n\n getDefaultThemeFormCustomizationVariables(themeVars: any): void {\n const formFieldSpacing = 1;\n themeVars[PepCustomizationService.FORM_FIELD_HEIGHT_KEY] =\n '2.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FORM_FIELD_TITLE_HEIGHT_KEY] =\n '1.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FORM_SPACEING_KEY] =\n formFieldSpacing + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FORM_FIELD_SPACEING_KEY] =\n formFieldSpacing + PepCustomizationService.REM_STRING;\n }\n\n getDefaultThemeCardCustomizationVariables(themeVars: any): void {\n themeVars[PepCustomizationService.CARD_FIELD_HEIGHT_KEY] =\n '1.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.CARD_SPACEING_KEY] =\n 'var(' + PepCustomizationService.SPACING_SIZE_XS_KEY + ')';\n\n themeVars[PepCustomizationService.CARD_BORDER_RADIUS_KEY] =\n 'var(' + PepCustomizationService.BORDER_RADIUS_MD_KEY + ')';\n themeVars[PepCustomizationService.CARD_SHADOW_OFFSET_KEY] =\n 'var(' + PepCustomizationService.SHADOW_MD_OFFSET_KEY + ')';\n }\n\n getDefaultThemeTableCustomizationVariables(themeVars: any): void {\n themeVars[PepCustomizationService.TABLE_FIELD_HEIGHT_KEY] =\n '2' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.TABLE_SPACEING_KEY] =\n '0.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.TABLE_BORDER_RADIUS_KEY] =\n 'var(' + PepCustomizationService.BORDER_RADIUS_MD_KEY + ')';\n }\n\n getDefaultThemeQSCustomizationVariables(themeVars: any): void {\n const qsState: PepStyleType = 'regular';\n themeVars[PepCustomizationService.STYLE_QS_KEY] = qsState;\n\n themeVars[PepCustomizationService.COLOR_QS_KEY + '-h'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-h)';\n themeVars[PepCustomizationService.COLOR_QS_KEY + '-s'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-s)';\n themeVars[PepCustomizationService.COLOR_QS_KEY + '-l'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-l)';\n }\n\n getDefaultThemeLoaderCustomizationVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_LOADER_KEY + '-h'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_CAUTION_KEY + '-h)';\n themeVars[PepCustomizationService.COLOR_LOADER_KEY + '-s'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_CAUTION_KEY + '-s)';\n themeVars[PepCustomizationService.COLOR_LOADER_KEY + '-l'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_CAUTION_KEY + '-l)';\n }\n\n getDefaultThemeTopHeaderCustomizationVariables(themeVars: any): void {\n const topHeaderState: PepStyleType = 'strong';\n themeVars[\n PepCustomizationService.STYLE_TOP_HEADER_KEY\n ] = topHeaderState;\n\n themeVars[PepCustomizationService.COLOR_TOP_HEADER_KEY + '-h'] = '';\n themeVars[PepCustomizationService.COLOR_TOP_HEADER_KEY + '-s'] = '';\n themeVars[PepCustomizationService.COLOR_TOP_HEADER_KEY + '-l'] = '';\n }\n\n getDefaultThemeTopLegacyCustomizationVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_TOP_LEGACY_KEY + '-h'] = '';\n themeVars[PepCustomizationService.COLOR_TOP_LEGACY_KEY + '-s'] = '';\n themeVars[PepCustomizationService.COLOR_TOP_LEGACY_KEY + '-l'] = '';\n }\n\n // getDefaultThemeBrandingCustomizationVariables(themeVars: any): void {\n // themeVars[PepCustomizationService.BRANDING_LOGO_SRC] = '/assets/images/Pepperi-Logo-HiRes.png';\n // themeVars[PepCustomizationService.FAV_ICON_SRC] = '/assets/favicon.ico';\n // }\n\n getDefaultThemeVariables(): any {\n const themeVars = {};\n\n // Declare default layout.\n this.getDefaultThemeLayoutVariables(themeVars);\n\n // Declare default border radius.\n this.getDefaultThemeBorderRadiusVariables(themeVars);\n\n // Declare default spacing.\n this.getDefaultThemeSpacingVariables(themeVars);\n\n // Declare default fonts size & line height.\n this.getDefaultThemeFontsVariables(themeVars);\n\n // Declare default buttons.\n this.getDefaultThemeButtonsVariables(themeVars);\n\n // Declare default colors.\n this.getDefaultThemeColorsVariables(themeVars);\n\n // Declare default shadows.\n this.getDefaultThemeShadowsVariables(themeVars);\n\n // Declare default form customization.\n this.getDefaultThemeFormCustomizationVariables(themeVars);\n\n // Declare default card customization.\n this.getDefaultThemeCardCustomizationVariables(themeVars);\n\n // Declare default table customization.\n this.getDefaultThemeTableCustomizationVariables(themeVars);\n\n // Declare default qs customization.\n this.getDefaultThemeQSCustomizationVariables(themeVars);\n\n // Declare default top header customization.\n this.getDefaultThemeTopHeaderCustomizationVariables(themeVars);\n\n // Declare default top legacy customization.\n this.getDefaultThemeTopLegacyCustomizationVariables(themeVars);\n\n // // Declare default branding logo's customization\n // this.getDefaultThemeBrandingCustomizationVariables(themeVars);\n\n return themeVars;\n }\n\n getThemeVariables(): any {\n const ret = this.getDefaultThemeVariables();\n const themeVars = this.sessionService.getObject(\n PepCustomizationService.USER_THEME_VARIABLES\n );\n\n // Override defaults.\n if (themeVars) {\n for (const key in themeVars) {\n ret[key] = themeVars[key];\n }\n }\n\n return ret;\n }\n\n setThemeVariables(themeVariablesToSet = null): void {\n const themeVariables = this.getThemeVariables();\n\n // Override defaults.\n if (themeVariablesToSet) {\n for (const key in themeVariablesToSet) {\n themeVariables[key] = themeVariablesToSet[key];\n }\n }\n\n this.sessionService.setObject(\n PepCustomizationService.USER_THEME_VARIABLES,\n JSON.stringify(themeVariables)\n );\n\n for (const key in themeVariables) {\n if (this.isFontUrlKey(key)) {\n this.fileService.loadFontStyle(key, themeVariables[key]);\n } else {\n document.documentElement.style.setProperty(\n key,\n themeVariables[key]\n );\n }\n }\n }\n\n isFontUrlKey(key: string): boolean {\n let res = false;\n\n if (\n key === PepCustomizationService.FONT_FAMILY_TITLE_NORMAL_URL_KEY ||\n key === PepCustomizationService.FONT_FAMILY_TITLE_BOLD_URL_KEY ||\n key === PepCustomizationService.FONT_FAMILY_BODY_NORMAL_URL_KEY ||\n key === PepCustomizationService.FONT_FAMILY_BODY_BOLD_URL_KEY\n ) {\n res = true;\n }\n\n return res;\n }\n\n getThemeVariable(key: string): string {\n const themeVars = this.getThemeVariables();\n\n if (themeVars.hasOwnProperty(key)) {\n return themeVars[key];\n } else {\n return '';\n }\n }\n\n getNumberThemeVariable(themeVars, key: string): number {\n if (themeVars && themeVars.hasOwnProperty(key)) {\n // If it's reference to another key.\n if (themeVars[key].indexOf('var(') === 0) {\n key = themeVars[key].substr(4).split(')')[0];\n }\n\n const tmp = Number(\n themeVars[key].replace(PepCustomizationService.REM_STRING, '')\n );\n return tmp;\n } else {\n return 0;\n }\n }\n\n private setFooterHeight(height): void {\n if (this.footerHeight.getValue() !== height) {\n // it is publishing this value to all the subscribers that have already subscribed to this message\n setTimeout(() => {\n this.footerHeight.next(height);\n }, 0);\n }\n document.documentElement.style.setProperty(\n PepCustomizationService.FOOTER_HEIGHT_KEY,\n height + PepCustomizationService.REM_STRING\n );\n }\n\n hideFooter(): void {\n this.setFooterHeight(0);\n }\n\n showFooter(): void {\n const themeVars = this.getThemeVariables();\n\n const res =\n this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.FOOTER_BAR_SPACING_TOP_KEY\n ) +\n this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.FOOTER_BAR_SPACING_BOTTOM_KEY\n ) +\n this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.TOP_BAR_FIELD_HEIGHT_KEY\n );\n\n this.setFooterHeight(res);\n }\n\n private setSettingsWidth(width): void {\n if (this.settingsWidth.getValue() !== width) {\n // it is publishing this value to all the subscribers that have already subscribed to this message\n setTimeout(() => {\n this.settingsWidth.next(width);\n }, 0);\n }\n document.documentElement.style.setProperty(\n PepCustomizationService.SETTINGS_WIDTH_KEY,\n width + PepCustomizationService.REM_STRING\n );\n }\n\n hideSettings(): void {\n this.setSettingsWidth(0);\n }\n\n showSettings(): void {\n const themeVars = this.getThemeVariables();\n\n const res = this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.SIDE_BAR_WIDTH_KEY\n );\n\n this.setSettingsWidth(res);\n }\n\n getTopBarHeight(): number {\n const themeVars = this.getThemeVariables();\n\n const res =\n this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.TOP_BAR_SPACING_TOP_KEY\n ) +\n this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.TOP_BAR_SPACING_BOTTOM_KEY\n ) +\n this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.TOP_BAR_FIELD_HEIGHT_KEY\n );\n\n return res;\n }\n\n setOldUserTheme(res: any): void {\n // Added user theme.\n const themeObj = {\n Theme: res.Theme || 'default-theme',\n };\n\n this.sessionService.setObject(\n PepCustomizationService.USER_THEME,\n JSON.stringify(themeObj)\n );\n\n let spinnerColor;\n let brandingFontColor;\n\n if (this.isLightColor(res.BrandingMainColor)) {\n spinnerColor = PepCustomizationService.DEFAULT_SPINNER_COLOR;\n brandingFontColor = '#222';\n } else {\n spinnerColor = res.BrandingMainColor;\n brandingFontColor = PepCustomizationService.DEFAULT_BRANDING_COLOR;\n }\n\n const color = {\n BrandingSecondaryColor: res.BrandingSecondaryColor,\n BrandingMainColor: res.BrandingMainColor,\n BrandingFontColor: brandingFontColor,\n SpinnerColor: spinnerColor,\n };\n\n this.sessionService.setObject(\n PepCustomizationService.USER_COLOR,\n JSON.stringify(color)\n );\n\n this.hasCustomHeader =\n res.TopHeaderFiles &&\n res.TopHeaderFiles.length > 0 &&\n res.TopHeaderFiles[0] !== ''\n ? true\n : false;\n this.hasCustomHomepage =\n res.UserRole === 'Buyer' &&\n res.TopHeaderFiles &&\n res.TopHeaderFiles.length > 1 &&\n res.TopHeaderFiles[1] !== '';\n }\n\n isLegacyColor(): boolean {\n const h = document.documentElement.style.getPropertyValue(\n PepCustomizationService.COLOR_TOP_HEADER_KEY + '-h'\n );\n const s = document.documentElement.style.getPropertyValue(\n PepCustomizationService.COLOR_TOP_HEADER_KEY + '-s'\n );\n const l = document.documentElement.style.getPropertyValue(\n PepCustomizationService.COLOR_TOP_HEADER_KEY + '-l'\n );\n\n return !(h && s && l);\n }\n\n getLoadingSpinnerColor(): string {\n let spinnerColor = '';\n\n if (this.isLegacyColor()) {\n const color = this.sessionService.getObject(\n PepCustomizationService.USER_COLOR\n );\n\n if (color && color.SpinnerColor) {\n spinnerColor = color.SpinnerColor;\n } else {\n spinnerColor = PepCustomizationService.DEFAULT_SPINNER_COLOR;\n }\n }\n\n return spinnerColor;\n }\n\n getBrandingMainColor(): string {\n let brandingMainColor = '';\n\n if (this.isLegacyColor()) {\n const color = this.sessionService.getObject(\n PepCustomizationService.USER_COLOR\n );\n\n if (color && color.BrandingMainColor) {\n brandingMainColor = color.BrandingMainColor;\n } else {\n brandingMainColor =\n PepCustomizationService.DEFAULT_BRANDING_COLOR;\n }\n }\n\n return brandingMainColor;\n }\n\n isLightColor(hexColor): boolean {\n if (!hexColor) {\n return;\n }\n\n let isBright = false;\n let sum = 0;\n const c = hexColor.replace(/^#/, '');\n\n sum = parseInt(c[0] + c[1], 16);\n sum += parseInt(c[2] + c[3], 16);\n sum += parseInt(c[4] + c[5], 16);\n\n if (sum > 382.6) {\n // it's bright color\n isBright = true;\n }\n\n return isBright;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Input,\n OnInit,\n Optional,\n Renderer2,\n} from '@angular/core';\nimport { PepCustomizationService } from '../../customization/customization.service';\nimport { PepUtilitiesService } from '../services/utilities.service';\n\n@Directive({\n selector: '[pepDivLoader]',\n})\nexport class PepDivLoaderDirective implements OnInit {\n @Input() loaderColor = null;\n @Input() loaderWidth = '5rem';\n @Input() loaderHeight = 'inherit';\n \n private svgIcon: SVGElement;\n\n constructor(\n private renderer: Renderer2,\n private element: ElementRef,\n private utilitiesService: PepUtilitiesService,\n private customizationService: PepCustomizationService,\n @Optional() @Inject(DOCUMENT) private document: any\n ) {}\n\n ngOnInit(): void {\n if (!this.loaderColor) {\n this.loaderColor = this.customizationService?.getLoadingSpinnerColor();\n }\n\n this.setDivStyle();\n const svgData =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 128 128\" preserveAspectRatio=\"xMidYMid\" class=\"lds-ripple\" style=\"background:0 0; \"><circle cx=\"64\" cy=\"64\" r=\"0\" fill=\"none\" stroke-width=\"10\"><animate attributeName=\"r\" calcMode=\"spline\" values=\"0;59\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0 0.3 0.8 0.8\" begin=\"-1.6s\" repeatCount=\"indefinite\"/><animate attributeName=\"opacity\" calcMode=\"spline\" values=\"1;0\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0.3 0 0.8 1\" begin=\"-1.6s\" repeatCount=\"indefinite\"/></circle><circle cx=\"64\" cy=\"64\" r=\"0\" fill=\"none\" stroke-width=\"10\"><animate attributeName=\"r\" calcMode=\"spline\" values=\"0;59\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0 0.3 0.8 0.8\" begin=\"-0.8s\" repeatCount=\"indefinite\"/><animate attributeName=\"opacity\" calcMode=\"spline\" values=\"1;0\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0.3 0 0.8 1\" begin=\"-0.8s\" repeatCount=\"indefinite\"/></circle><circle cx=\"64\" cy=\"64\" r=\"0\" fill=\"none\" stroke-width=\"10\"><animate attributeName=\"r\" calcMode=\"spline\" values=\"0;59\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0 0.3 0.8 0.8\" begin=\"0s\" repeatCount=\"indefinite\"/><animate attributeName=\"opacity\" calcMode=\"spline\" values=\"1;0\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0.3 0 0.8 1\" begin=\"0s\" repeatCount=\"indefinite\"/></circle></svg>';\n this.svgIcon = this.utilitiesService.getSvgElementFromString(\n this.document,\n svgData\n );\n\n this.setIconStyle();\n this.renderer.appendChild(this.element.nativeElement, this.svgIcon);\n }\n\n private setDivStyle(): void {\n this.renderer.setStyle(this.element.nativeElement, 'display', 'flex');\n this.renderer.setStyle(\n this.element.nativeElement,\n 'justify-content',\n 'center'\n );\n this.renderer.setStyle(\n this.element.nativeElement,\n 'align-items',\n 'center'\n );\n }\n\n private setIconStyle(): void {\n if (this.loaderColor) {\n this.renderer.setStyle(this.svgIcon, 'stroke', this.loaderColor);\n }\n\n this.renderer.setStyle(this.svgIcon, 'width', this.loaderWidth);\n this.renderer.setStyle(this.svgIcon, 'height', this.loaderHeight);\n this.renderer.addClass(this.svgIcon, 'svg-icon');\n this.renderer.addClass(this.svgIcon, 'stroke');\n }\n}\n","import { Injectable, TemplateRef, ViewContainerRef } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepPortalService {\n private targets: Map<string, ViewContainerRef>;\n\n constructor() {\n this.targets = new Map<string, ViewContainerRef>();\n }\n\n addTarget(targetName: string, viewContainer: ViewContainerRef): void {\n this.targets.set(targetName, viewContainer);\n }\n\n attach(targetName: string, template: TemplateRef<any>): void {\n const target = this.getTarget(targetName);\n\n if (target) {\n target.createEmbeddedView(template);\n }\n }\n\n clear(targetName: string): void {\n const target = this.getTarget(targetName);\n\n if (target) {\n target.clear();\n }\n }\n\n private getTarget(targetName: string): ViewContainerRef {\n return this.targets.has(targetName)\n ? this.targets.get(targetName)\n : null;\n }\n}\n","import {\n Directive,\n OnInit,\n OnDestroy,\n Input,\n TemplateRef,\n} from '@angular/core';\nimport { PepPortalService } from './portal.service';\n\n@Directive({\n selector: '[pepAttach]',\n})\nexport class PepAttachDirective implements OnInit, OnDestroy {\n @Input('pepAttach') targetName: string;\n\n constructor(\n private portalService: PepPortalService,\n private templateRef: TemplateRef<any>\n ) {}\n\n ngOnInit(): void {\n this.portalService.attach(this.targetName, this.templateRef);\n }\n\n ngOnDestroy(): void {\n this.portalService.clear(this.targetName);\n }\n}\n","import { Directive, OnInit, Input, ViewContainerRef } from '@angular/core';\nimport { PepPortalService } from './portal.service';\n\n@Directive({\n selector: '[pepTarget]',\n})\nexport class PepTargetDirective implements OnInit {\n @Input('pepTarget') targetName: string;\n\n constructor(\n private portalService: PepPortalService,\n private viewContainer: ViewContainerRef\n ) {}\n\n ngOnInit(): void {\n this.portalService.addTarget(this.targetName, this.viewContainer);\n }\n}\n","// Import the core angular services.\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepClipboardService {\n // private dom: Document;\n // // I initialize the Clipboard service.\n // // --\n // // CAUTION: This service is tightly couped to the browser DOM (Document Object Model).\n // // But, by injecting the \"document\" reference rather than trying to reference it\n // // globally, we can at least pretend that we are trying to lower the tight coupling.\n // constructor(@Optional() @Inject(DOCUMENT) dom: Document) {\n // this.dom = dom;\n // }\n // // ---\n // // PUBLIC METHODS.\n // // ---\n // // I copy the given value to the user's system clipboard. Returns a promise that\n // // resolves to the given value on success or rejects with the raised Error.\n // public copy(value: string): Promise<any> {\n // const promise = new Promise(\n // (resolve, reject): void => {\n // let textarea = null;\n // try {\n // // In order to execute the \"Copy\" command, we actually have to have\n // // a \"selection\" in the currently rendered document. As such, we're\n // // going to inject a Textarea element and .select() it in order to\n // // force a selection.\n // // --\n // // NOTE: This Textarea is being rendered off-screen.\n // textarea = this.dom.createElement('textarea');\n // textarea.style.height = '0px';\n // textarea.style.left = '-100px';\n // textarea.style.opacity = '0';\n // textarea.style.position = 'fixed';\n // textarea.style.top = '-100px';\n // textarea.style.width = '0px';\n // this.dom.body.appendChild(textarea);\n // // Set and select the value (creating an active Selection range).\n // textarea.value = value;\n // textarea.select();\n // // Ask the browser to copy the current selection to the clipboard.\n // this.dom.execCommand('copy');\n // resolve(value);\n // } finally {\n // // Cleanup - remove the Textarea from the DOM if it was injected.\n // if (textarea && textarea.parentNode) {\n // textarea.parentNode.removeChild(textarea);\n // }\n // }\n // }\n // );\n // return (promise);\n // }\n}\n","/*\n * Public API Surface of ngx-lib/core/clipboard\n */\nexport * from './clipboard.service';\nexport * from './clipboard.directive';\n","/*\n * export from ngx-lib/core/clipboard\n */\nexport * from './public-api';\n","import { Directive, OnDestroy } from \"@angular/core\";\nimport { Subject, takeUntil } from \"rxjs\";\n\n@Directive({})\nexport abstract class BaseDestroyerDirective implements OnDestroy {\n private readonly _destroyed: Subject<void>;\n\n constructor(\n ) {\n this._destroyed = new Subject();\n }\n\n protected getDestroyer(): any {\n return takeUntil(this._destroyed);\n }\n\n ngOnDestroy(): void {\n this._destroyed.next();\n this._destroyed.complete();\n }\n}","/*\n * Public API Surface of ngx-lib/core/common/directives\n */\nexport * from './auto-width.directive';\nexport * from './button-blur.directive';\nexport * from './button-loader.directive';\nexport * from './data-qa.directive';\nexport * from './menu-blur.directive';\n// export * from './debounce-click.directive';\nexport * from './prevent-multi-click.directive';\nexport * from './print.directive';\nexport * from './div-loader.directive';\nexport * from './base-destroyer.directive';\n","/*\n * export from ngx-lib/core/common/directives\n */\nexport * from './public-api';\n","export class Test {}\n","export class PepGuid {\n private static pad4(num: number): string {\n let ret: string = num.toString(16);\n while (ret.length < 4) {\n ret = '0' + ret;\n }\n return ret;\n }\n\n private static random4(): string {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n\n public static newGuid(): string {\n // This is not build for -prod\n // return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n // const r = Math.random() * 16 | 0;\n // const v = c === 'x' ? r : (r & 0x3 | 0x8);\n // return v.toString(16);\n // });\n\n // If we have a cryptographically secure PRNG, use that\n if (\n typeof window !== 'undefined' &&\n typeof window.crypto !== 'undefined' &&\n typeof window.crypto.getRandomValues !== 'undefined'\n ) {\n const buf: Uint16Array = new Uint16Array(8);\n window.crypto.getRandomValues(buf);\n return (\n this.pad4(buf[0]) +\n this.pad4(buf[1]) +\n '-' +\n this.pad4(buf[2]) +\n '-' +\n this.pad4(buf[3]) +\n '-' +\n this.pad4(buf[4]) +\n '-' +\n this.pad4(buf[5]) +\n this.pad4(buf[6]) +\n this.pad4(buf[7])\n );\n } else {\n // Otherwise, just use Math.random\n return (\n this.random4() +\n this.random4() +\n '-' +\n this.random4() +\n '-' +\n this.random4() +\n '-' +\n this.random4() +\n '-' +\n this.random4() +\n this.random4() +\n this.random4()\n );\n }\n }\n}\n","export enum FIELD_TYPE {\n // specify text field\n 'Default' = 0,\n 'TextBox' = 1,\n 'LimitedLengthTextBox' = 2,\n // specify text area field\n 'TextArea' = 3,\n 'TextHeader' = 4,\n // specify date field\n 'Date' = 5,\n // specify date & time field\n 'DateAndTime' = 6,\n // specify integer field\n 'NumberInteger' = 7,\n // specify decimal field\n 'NumberReal' = 8,\n // specify currency field\n 'Currency' = 9,\n // specify boolean field\n 'Boolean' = 10,\n // specify multiple options field\n 'ComboBox' = 11,\n // specify multiple options field\n 'MultiTickBox' = 12,\n // specify separator (view only) field\n 'Separator' = 13,\n // specify address field\n 'Address' = 14,\n // specify percentage field\n 'Percentage' = 15,\n 'EmptyComboBox' = 16, // For Category, CPIPriceList, Special Price List (ComboBox Without Values)\n 'InternalLink' = 17, // for reps, Contacts, Locations & Catalogs\n // specify email field\n 'Email' = 18,\n 'LimitedDate' = 19,\n // specify image field\n 'Image' = 20,\n 'MultiTickBoxToComboBox' = 21,\n 'EmptyMultiTickBox' = 22,\n 'Totals' = 23,\n // specify attachment field\n 'Attachment' = 24,\n 'Signature' = 25,\n // specify link field\n 'Link' = 26,\n // specify image url field\n 'ImageURL' = 27,\n 'NumberIntegerQuantitySelector' = 28, // hack for quantity selector in case of integer\n 'NumberRealQuantitySelector' = 29, // hack for quantity selector in case of double\n 'NumberIntegerForMatrix' = 30, // hack for integer in matrix\n 'NumberRealForMatrix' = 31, // hack for double in matrix\n 'Images' = 32, // hack for Images (for filmstrip and variants)\n 'Indicators' = 33, // Indicators is like address (group field that conains boolean fields).\n 'CalculatedReal' = 34,\n 'CalculatedInt' = 35,\n 'CalculatedString' = 36,\n 'CalculatedDate' = 37,\n 'CalculatedBool' = 38,\n 'MapDataDropDown' = 39,\n 'MapDataReal' = 40,\n 'MapDataString' = 41,\n 'MapDataInt' = 42,\n 'Sum' = 43,\n 'Phone' = 44,\n 'UrlForApi' = 45,\n 'ManyToManyUrlForApi' = 46,\n 'ReferenceType' = 47,\n 'GuidReferenceType' = 48,\n 'Button' = 49,\n 'InternalPage' = 50, // The old value was 45 - in the cpi project the \"InternalPage\" value is 50 so i fixed it!!!\n 'Duration' = 51,\n 'ListOfObjects' = 52,\n 'Package' = 53, // Package Quantity Selector\n 'RelatedObjectsCards' = 54,\n 'BooleanText' = 55, // Boolean that return a string defined by the user in case of true/false\n 'RichTextHTML' = 56, // Html Text\n}\n\nexport enum X_ALIGNMENT_TYPE {\n None = 0,\n Left = 1,\n Right = 2,\n Center = 3,\n}\n\nexport enum Y_ALIGNMENT_TYPE {\n None = 0,\n Top = 1,\n Bottom = 2,\n Center = 3,\n}\n\nexport class FieldLayout {\n X: number;\n Width: number;\n XAlignment: X_ALIGNMENT_TYPE;\n Y: Y_ALIGNMENT_TYPE;\n Height: number;\n YAlignment: Y_ALIGNMENT_TYPE;\n LineNumber: number;\n\n // constructor(\n // x = 0,\n // width = 1,\n // xAlignment: X_ALIGNMENT_TYPE = 1, y: Y_ALIGNMENT_TYPE = 0, height = 1, yAlignment = 1, lineNumber = 1) {\n // this.X = x;\n // this.Width = width;\n // this.XAlignment = xAlignment;\n // this.Y = y;\n // this.Height = height;\n // this.YAlignment = yAlignment;\n // this.LineNumber = lineNumber;\n // }\n\n constructor(data: Partial<FieldLayout>) {\n Object.assign(this, data);\n }\n}\n\nexport class UIControlField {\n Title: string;\n MandatoryField = false;\n Mandatory = false;\n ReadOnlyField: boolean;\n ReadOnly: boolean;\n FieldConditions: any;\n CustomField: any;\n ApiName: string;\n FieldType: FIELD_TYPE;\n OptionalValues: Array<KeyValuePair<string>>;\n MinValue: number;\n MaxValue: number;\n MaxCharacters: number;\n MaxFieldCharacters: number;\n MaxLines: number;\n Layout: FieldLayout; // { X: number; Height: number; Y: number; Width: number; XAlignment: number; YAlignment: number };\n ColumnWidth: number;\n ColumnWidthType: number;\n FieldName: string;\n DefaultValue: string;\n Hidden: boolean;\n ObjectTypeReference: any;\n ParentField: string;\n WrntyFieldName: string;\n Editor: any;\n minFieldWidth = 45;\n calcColumnWidth = 10;\n calcTitleColumnWidthString = '100%';\n calcColumnWidthString = '100%';\n}\n\nexport class UIControl {\n ObjectID: any;\n Type: string;\n DisplayName: string;\n ControlFields: Array<UIControlField>;\n Columns: number;\n}\n\nexport class ObjectsDataRowCell {\n Accessory?: string;\n AdditionalValue?: string;\n ApiName: string;\n BackgroundColor?: string;\n Enabled?: boolean;\n FieldType: number;\n FormattedValue: any;\n GroupFields?: Array<ObjectsDataRowCell>;\n Highlighted?: boolean;\n NotificationInfo?: string;\n OptionalValues?: Array<KeyValuePair<string>>;\n ReferenceObjectInternalType?: string;\n ReferenceObjectSubType?: string;\n ReferenceObjectType?: string;\n TextColor?: string;\n UiPageKey?: string;\n UIPageInfo?: any;\n // Type?: string; // This is in the object??\n Value: any;\n Visible?: boolean; \n DigitsNumberAfterDecimalPoint?: number;\n}\n\nexport class ObjectsDataRow {\n AdditionalData?: any;\n BackgroundColor?: string;\n ExtraInfo?: Array<{ Key: string; Value: string }>;\n Fields: Array<ObjectsDataRowCell>;\n IsEditable = true;\n IsSelected = false;\n IsSelectableForActions = true;\n MainAction?: string;\n Profile?: any;\n Type: number;\n UID: any;\n Key: string;\n}\n\nexport class ObjectSingleData {\n Data: ObjectsDataRow;\n ErrorCode: string;\n ErrorMessage: string;\n IsEditable: boolean;\n Success: boolean;\n Type: string;\n UIControl: UIControl;\n\n constructor(uiControl: UIControl = null, data: ObjectsDataRow = null) {\n this.Success = true;\n this.ErrorMessage = '';\n this.Type = '';\n\n this.UIControl = uiControl;\n this.Data = data;\n }\n}\n\nexport class ObjectsData {\n DateFilter?: string;\n ErrorCode: string;\n ErrorMessage: string;\n Rows: Array<ObjectsDataRow>;\n SearchCode?: string;\n SecSmartSearchList?: [];\n SmartSearchList: Array<SmartSearchResponse>;\n Success: boolean;\n TotalRows: number;\n UIControl: UIControl;\n // AllRows: Array<ObjectsDataRow>;\n // TotalAmount: any;\n // CurrencySymbol: any;\n\n constructor() {\n this.ErrorMessage = '';\n this.Success = true;\n // this.TotalAmount = '0';\n // this.CurrencySymbol = '$';\n }\n}\n\nexport class SmartSearchValues {\n ApiName: string;\n ComparisonType: string;\n Value: string;\n ValueRange: { Start: string; End: string };\n Values: Array<string>;\n}\n\nexport class SmartSearchResponse {\n ApiName: string;\n FieldType: any;\n Title: string;\n Values: Array<KeyValuePair<string>>;\n SmartSearchData: SmartSearchValues;\n}\n\nexport class KeyValuePair<T> {\n Key: string;\n Value: T;\n}\n","/*\n * Public API Surface of ngx-lib/core/common/model\n */\nexport * from './papi.model';\nexport * from './utilities.model';\nexport * from './wapi.model';\n","/*\n * export from ngx-lib/core/common/model\n */\nexport * from './public-api';\n","/*\n * Public API Surface of ngx-lib/core/common/pipes\n */\nexport * from './common-pipes';\nexport * from './date-ago.pipe';\n","/*\n * export from ngx-lib/core/common/pipes\n */\nexport * from './public-api';\n","import {\n Injectable,\n Inject,\n PLATFORM_ID,\n InjectionToken,\n Optional,\n} from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepCookieService {\n private readonly documentIsAccessible: boolean;\n\n constructor(\n @Optional() @Inject(DOCUMENT) private document: any,\n @Inject(PLATFORM_ID) private platformId: InjectionToken<any>\n ) {\n this.documentIsAccessible = isPlatformBrowser(this.platformId);\n }\n\n /**\n * @param name Cookie name\n * @returns boolean - whether cookie with specified name exists\n */\n check(name: string): boolean {\n if (!this.documentIsAccessible) {\n return false;\n }\n\n name = encodeURIComponent(name);\n\n const regExp: RegExp = this.getCookieRegExp(name);\n const exists: boolean = regExp.test(this.document.cookie);\n\n return exists;\n }\n\n /**\n * @param name Cookie name\n * @returns property value\n */\n get(name: string): string {\n if (this.documentIsAccessible && this.check(name)) {\n name = encodeURIComponent(name);\n\n const regExp: RegExp = this.getCookieRegExp(name);\n const result: RegExpExecArray = regExp.exec(this.document.cookie);\n\n return this.safeDecodeURIComponent(result[1]);\n } else {\n return '';\n }\n }\n\n /**\n * @returns all the cookies in json\n */\n getAll(): { [key: string]: string } {\n if (!this.documentIsAccessible) {\n return {};\n }\n\n const cookies: { [key: string]: string } = {};\n const document: any = this.document;\n\n if (document.cookie && document.cookie !== '') {\n document.cookie.split(';').forEach((currentCookie) => {\n const [cookieName, cookieValue] = currentCookie.split('=');\n cookies[\n this.safeDecodeURIComponent(cookieName.replace(/^ /, ''))\n ] = this.safeDecodeURIComponent(cookieValue);\n });\n }\n\n return cookies;\n }\n\n /**\n * @param name Cookie name\n * @param value Cookie value\n * @param expires Number of days until the cookies expires or an actual `Date`\n * @param path Cookie path\n * @param domain Cookie domain\n * @param secure Secure flag\n * @param sameSite OWASP samesite token `Lax`, `None`, or `Strict`. Defaults to `Lax`\n */\n set(\n name: string,\n value: string,\n expires?: number | Date,\n path?: string,\n domain?: string,\n secure?: boolean,\n sameSite: 'Lax' | 'None' | 'Strict' = 'Lax'\n ): void {\n if (!this.documentIsAccessible) {\n return;\n }\n\n let cookieString: string =\n encodeURIComponent(name) + '=' + encodeURIComponent(value) + ';';\n\n if (expires) {\n if (typeof expires === 'number') {\n const dateExpires: Date = new Date(\n new Date().getTime() + expires * 1000 * 60 * 60 * 24\n );\n\n cookieString += 'expires=' + dateExpires.toUTCString() + ';';\n } else {\n cookieString += 'expires=' + expires.toUTCString() + ';';\n }\n }\n\n if (path) {\n cookieString += 'path=' + path + ';';\n }\n\n if (domain) {\n cookieString += 'domain=' + domain + ';';\n }\n\n if (secure === false && sameSite === 'None') {\n secure = true;\n }\n\n if (secure) {\n cookieString += 'secure;';\n }\n\n cookieString += 'sameSite=' + sameSite + ';';\n\n this.document.cookie = cookieString;\n }\n\n /**\n * @param name Cookie name\n * @param path Cookie path\n * @param domain Cookie domain\n */\n delete(\n name: string,\n path?: string,\n domain?: string,\n secure?: boolean,\n sameSite: 'Lax' | 'None' | 'Strict' = 'Lax'\n ): void {\n if (!this.documentIsAccessible) {\n return;\n }\n\n this.set(\n name,\n '',\n new Date('Thu, 01 Jan 1970 00:00:01 GMT'),\n path,\n domain,\n secure,\n sameSite\n );\n }\n\n /**\n * @param path Cookie path\n * @param domain Cookie domain\n */\n deleteAll(\n path?: string,\n domain?: string,\n secure?: boolean,\n sameSite: 'Lax' | 'None' | 'Strict' = 'Lax'\n ): void {\n if (!this.documentIsAccessible) {\n return;\n }\n\n const cookies: any = this.getAll();\n\n for (const cookieName in cookies) {\n if (cookies.hasOwnProperty(cookieName)) {\n this.delete(cookieName, path, domain, secure, sameSite);\n }\n }\n }\n\n /**\n * @param name Cookie name\n * @returns property RegExp\n */\n private getCookieRegExp(name: string): RegExp {\n const escapedName: string = name.replace(\n /([\\[\\]\\{\\}\\(\\)\\|\\=\\;\\+\\?\\,\\.\\*\\^\\$])/gi,\n '\\\\$1'\n );\n\n return new RegExp(\n '(?:^' + escapedName + '|;\\\\s*' + escapedName + ')=(.*?)(?:;|$)',\n 'g'\n );\n }\n\n private safeDecodeURIComponent(encodedURIComponent: string): string {\n try {\n return decodeURIComponent(encodedURIComponent);\n } catch {\n // probably it is not uri encoded. return as is\n return encodedURIComponent;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpClient,\n HttpErrorResponse,\n HttpParams,\n HttpHeaders,\n} from '@angular/common/http';\nimport { throwError, Observable } from 'rxjs';\nimport { retry, catchError, tap } from 'rxjs/operators';\nimport { PepSessionService } from '../../common/services/session.service';\nimport { PepCookieService } from '../../common/services/cookie.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepHttpService {\n private readonly AUTH_HEADER = 'Authorization';\n private readonly PEPPERI_TOKEN_HEADER = 'PepperiSessionToken';\n private readonly WAPI_TOKEN_KEY = 'auth_token';\n private readonly PEPPERI_TOKEN_COOKIE = 'PepperiUserSettings';\n\n constructor(\n private sessionService: PepSessionService,\n private cookieService: PepCookieService,\n private http: HttpClient\n ) {}\n\n private handleError(response: HttpErrorResponse): Observable<never> {\n let errorMessage = 'Unknown error!';\n if (response.error instanceof ErrorEvent) {\n // Client-side errors\n errorMessage = `Error: ${response.error.message}`;\n } else {\n // Server-side errors\n errorMessage = this.getServerErrorMessage(response);\n }\n\n return throwError(errorMessage);\n }\n\n private getServerErrorMessage(response: HttpErrorResponse): string {\n if (response?.error?.fault?.faultstring) {\n return `${response.error.fault.faultstring}`;\n } else {\n switch (response.status) {\n case 404: {\n return `Not Found: ${response.message}`;\n }\n case 403: {\n return `Access Denied: ${response.message}`;\n }\n case 500: {\n return `Internal Server Error: ${response.message}`;\n }\n default: {\n return `Unknown Server Error\\nError Code: ${response.status}\\nMessage: ${response.message}`;\n }\n }\n }\n }\n\n // Add authorization token if the token exist.\n private addAuthorizationToken(httpOptions: any = {}): any {\n if (!httpOptions.headers.has(this.AUTH_HEADER)) {\n const idpToken = this.sessionService.getIdpToken();\n\n if (idpToken) {\n httpOptions.headers = httpOptions.headers.set(\n this.AUTH_HEADER,\n `Bearer ${idpToken}`\n );\n }\n }\n\n return httpOptions;\n }\n\n // Add web api token if calling to wapi domain.\n private addWebApiToken(url: string, httpOptions: any = {}): any {\n if (!httpOptions.headers.has(this.PEPPERI_TOKEN_HEADER)) {\n const wapiBaseUrl = this.sessionService.getWapiBaseUrl();\n\n if (wapiBaseUrl && url.match(new RegExp(wapiBaseUrl, 'g'))) {\n // TODO:\n // const webApiToken = this.sessionService.getWapiToken();\n try {\n const userSettingCookie = this.cookieService.get(\n this.PEPPERI_TOKEN_COOKIE\n );\n const webApiToken = JSON.parse(userSettingCookie).values\n .items[this.WAPI_TOKEN_KEY];\n if (webApiToken) {\n httpOptions.headers = httpOptions.headers.set(\n this.PEPPERI_TOKEN_HEADER,\n webApiToken\n );\n }\n } catch {\n // Do nothing.\n }\n }\n }\n\n return httpOptions;\n }\n\n private setDefaultHeaderOptions(url: string, httpOptions: any = {}): any {\n if (!httpOptions.headers) {\n httpOptions.headers = new HttpHeaders();\n }\n\n // Add content type\n if (!httpOptions.headers.has('Content-Type')) {\n httpOptions.headers = httpOptions.headers.set(\n 'Content-Type',\n 'application/json'\n );\n }\n\n httpOptions = this.addAuthorizationToken(httpOptions);\n httpOptions = this.addWebApiToken(url, httpOptions);\n\n return httpOptions;\n }\n\n // getTextFile(filename: string): void {\n // // The Observable returned by get() is of type Observable<string>\n // // because a text response was specified.\n // // There's no need to pass a <string> type parameter to get().\n // // return this.http.get(filename, {responseType: 'text'})\n // // .pipe(\n // // tap( // Log the result or error\n // // data => this.log(filename, data),\n // // error => this.logError(filename, error)\n // // )\n // // );\n // }\n\n getHttpCall(url: string, httpOptions: any = {}): Observable<any> {\n httpOptions = this.setDefaultHeaderOptions(url, httpOptions);\n\n return this.http\n .get(url, httpOptions)\n .pipe(catchError(this.handleError.bind(this)));\n // .subscribe(\n // (res) => console.log(''),\n // (error) => console.log(''),\n // () => {}\n // );\n }\n\n postHttpCall(\n url: string,\n body: any | null,\n httpOptions: any = {}\n ): Observable<any> {\n httpOptions = this.setDefaultHeaderOptions(url, httpOptions);\n\n return this.http\n .post(url, body, httpOptions)\n .pipe(catchError(this.handleError.bind(this)));\n // .subscribe(\n // (res) => console.log(''),\n // (error) => console.log(''),\n // () => {}\n // );\n }\n\n getWapiApiCall(url: string, httpOptions: any = {}): Observable<any> {\n const wapiBaseUrl = this.sessionService.getWapiBaseUrl();\n return this.getHttpCall(`${wapiBaseUrl}${url}`, httpOptions);\n }\n\n postWapiApiCall(\n url: string,\n body: any | null,\n httpOptions: any = {}\n ): Observable<any> {\n const wapiBaseUrl = this.sessionService.getWapiBaseUrl();\n return this.postHttpCall(`${wapiBaseUrl}${url}`, body, httpOptions);\n }\n\n getPapiApiCall(url: string, httpOptions: any = {}): Observable<any> {\n const papiBaseUrl = this.sessionService.getPapiBaseUrl();\n return this.getHttpCall(`${papiBaseUrl}${url}`, httpOptions);\n }\n\n postPapiApiCall(\n url: string,\n body: any | null,\n httpOptions: any = {}\n ): Observable<any> {\n const papiBaseUrl = this.sessionService.getPapiBaseUrl();\n return this.postHttpCall(`${papiBaseUrl}${url}`, body, httpOptions);\n }\n\n // getApiCall(url: string, httpOptions: any = {}): Observable<any> {\n // const apiBaseUrl = this.sessionService.getApiBaseUrl();\n // return this.getHttpCall(`${apiBaseUrl}${url}`, httpOptions);\n // }\n\n // postApiCall(\n // url: string,\n // body: any | null,\n // httpOptions: any = {}\n // ): Observable<any> {\n // const apiBaseUrl = this.sessionService.getApiBaseUrl();\n // return this.postHttpCall(`${apiBaseUrl}${url}`, body, httpOptions);\n // }\n}\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ITranslationResource, MultiTranslateHttpLoader } from 'ngx-translate-multi-http-loader';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n/*\r\n This service is the webapp api for addon usege.\r\n*/\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PepTranslateService {\r\n constructor(\r\n private http: HttpClient\r\n // private sessionService: PepSessionService,\r\n // private httpService: PepHttpService,\r\n // private loaderService: PepLoaderService\r\n ) {\r\n //\r\n }\r\n\r\n createMultiTranslateLoader(resources: ITranslationResource[]) {\r\n return new MultiTranslateHttpLoader(this.http, resources);\r\n }\r\n\r\n setDefaultTranslateLang(translate: TranslateService, urlLangParam = 'userLang') {\r\n let userLang = 'en';\r\n translate.setDefaultLang(userLang);\r\n userLang = translate.getBrowserLang().split('-')[0]; // use navigator lang if available\r\n\r\n if (urlLangParam.length > 0) {\r\n const index = location.href.indexOf(urlLangParam);\r\n\r\n if (index > -1) {\r\n // urlLangParam=XX\r\n const startIndex = index + urlLangParam.length + '='.length;\r\n userLang = location.href.substring(startIndex, startIndex + 2);\r\n }\r\n }\r\n\r\n // the lang to use, if the lang isn't available, it will use the current loader to get them\r\n translate.use(userLang).subscribe((res: any) => {\r\n // In here you can put the code you want. At this point the lang will be loaded\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable, Injector, Optional, Type } from '@angular/core';\nimport { createCustomElement } from '@angular/elements';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { PepSessionService } from './session.service';\nimport { PepFileService } from './file.service';\nimport { PepHttpService } from '../../http/services/http.service';\nimport { PepLoaderService } from '../../http/services/loader.service';\nimport { Observable } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ITranslationResource } from 'ngx-translate-multi-http-loader';\nimport { PepTranslateService } from './translate.service';\nimport { connectRouter } from '@angular-architects/module-federation-tools';\n\n/*\n This service is the webapp api for addon usege.\n*/\n@Injectable({\n providedIn: 'root',\n})\nexport class PepAddonService {\n private readonly PAGES_ADDON_UUID = '50062e0c-9967-4ed4-9102-f2bc50602d41';\n // private readonly ADDON_ASSETS_PATH_KEY = 'AddonAssetsPath';\n private readonly ADDONS_DICTIONARY_ASSETS_PATH_KEY = 'AddonsDictionaryAssetsPath';\n private readonly ADDON_API_RELATIVE_PATH = '/addons/api';\n private readonly ADDON_API_ASYNC_RELATIVE_PATH = `${this.ADDON_API_RELATIVE_PATH}/async`;\n\n private static _customElementsMap: Map<string, any> = new Map();\n\n public get devServer() {\n return this.route ? this.route.snapshot.queryParamMap.get('devServer') === 'true' : false;\n }\n\n constructor(\n private sessionService: PepSessionService,\n private httpService: PepHttpService,\n private loaderService: PepLoaderService,\n public translateService: PepTranslateService,\n public fileService: PepFileService,\n @Optional() private router: Router,\n @Optional() private route: ActivatedRoute,\n ) {\n //\n }\n\n private getAddonBaseRelativePath(isAsync = false): string {\n return isAsync\n ? this.ADDON_API_ASYNC_RELATIVE_PATH\n : this.ADDON_API_RELATIVE_PATH;\n }\n\n getAddonStaticFolder(addonUUID: string): string {\n // if (addonUUID.length > 0) {\n const addonsDictionary = this.sessionService.getObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY);\n return addonsDictionary && addonsDictionary[addonUUID] ? addonsDictionary[addonUUID] : '';\n // } else {\n // return this.sessionService.getObject(this.ADDON_ASSETS_PATH_KEY) || '';\n // }\n }\n\n setAddonStaticFolder(path: string, addonUUID: string): void {\n // if (addonUUID.length > 0) {\n const addonsDictionary = this.sessionService.getObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY) ?? {};\n addonsDictionary[addonUUID] = path;\n this.sessionService.setObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY, addonsDictionary);\n // } else {\n // return this.sessionService.setObject(this.ADDON_ASSETS_PATH_KEY, path);\n // }\n }\n\n getServerBaseUrl(addonUUID: string, fileName = '', isAsync = false, localhostPort = 4500): string {\n const fileToAdd = fileName.length > 0 ? `/${fileName}` : '';\n \n // For devServer run server on localhost.\n if(this.devServer) {\n return `http://localhost:${localhostPort}${fileToAdd}`;\n } else {\n const baseUrl = this.sessionService.getPapiBaseUrl();\n return `${baseUrl}${this.getAddonBaseRelativePath(isAsync)}/${addonUUID}${fileToAdd}`;\n }\n }\n\n getAddonApiCall(\n addonUUID: string,\n fileName: string,\n functionName: string,\n httpOptions = {},\n isAsync = false\n ): Observable<any> {\n // return this.httpService.getPapiApiCall(\n // `${this.getAddonBaseRelativePath(\n // isAsync\n // )}/${addonUUID}/${fileName}/${functionName}`,\n // httpOptions\n // );\n\n const papiBaseUrl = this.getServerBaseUrl(addonUUID, fileName, isAsync);\n return this.httpService.getHttpCall(`${papiBaseUrl}/${functionName}`, httpOptions);\n }\n\n postAddonApiCall(\n addonUUID: string,\n fileName: string,\n functionName: string,\n body = {},\n httpOptions = {},\n isAsync = false\n ): Observable<any> {\n // return this.httpService.postPapiApiCall(\n // `${this.getAddonBaseRelativePath(\n // isAsync\n // )}/${addonUUID}/${fileName}/${functionName}`,\n // body,\n // httpOptions\n // );\n\n const papiBaseUrl = this.getServerBaseUrl(addonUUID, fileName, isAsync);\n return this.httpService.postHttpCall(`${papiBaseUrl}/${functionName}`, body, httpOptions);\n }\n\n async getAddonCPICall(\n addonUUID: string,\n url: string\n ) {\n const res = await this.emitEvent(\"AddonAPI\", {\n AddonUUID: addonUUID,\n RelativeURL: url,\n })\n\n if (res.Success) {\n return JSON.parse(res.Value)\n }\n else {\n throw new Error(res.Value)\n }\n }\n\n async postAddonCPICall(\n addonUUID: string,\n url: string,\n body: any\n ) {\n const res = await this.emitEvent(\"AddonAPI\", {\n AddonUUID: addonUUID,\n RelativeURL: url,\n Method: 'POST',\n Body: body\n })\n\n if (res.Success) {\n return JSON.parse(res.Value)\n }\n else {\n throw new Error(res.Value)\n }\n } \n\n emitEvent(eventKey: string, eventData: any): Promise<any> {\n return new Promise(resolve => {\n window.dispatchEvent(new CustomEvent('emit-event', {\n detail: {\n eventKey,\n eventData: eventData,\n completion: resolve\n }\n }))\n })\n }\n\n // TODO: need to chek this if the loader is working.\n fetch(input: RequestInfo, init?: RequestInit): Promise<Response> {\n this.loaderService.show();\n\n return window.fetch(input, init).finally(() => {\n this.loaderService.hide();\n });\n }\n\n getNgxLibTranslationResource(addonUUID: string, libName = 'ngx-lib'): ITranslationResource {\n const addonStaticFolder = this.getAddonStaticFolder(addonUUID);\n const translationsPath: string = this.fileService.getAssetsTranslationsPath(addonStaticFolder, libName);\n const translationsSuffix: string = this.fileService.getAssetsTranslationsSuffix(libName);\n\n return {\n prefix: translationsPath,\n suffix: translationsSuffix,\n };\n }\n\n getAddonTranslationResource(addonUUID: string): ITranslationResource {\n const addonStaticFolder = this.getAddonStaticFolder(addonUUID);\n const defaultSubFolder = 'assets/i18n/';\n\n return {\n prefix: addonStaticFolder.length > 0 ? `${addonStaticFolder}${defaultSubFolder}` : `/${defaultSubFolder}`,\n suffix: '.json',\n };\n }\n\n setDefaultTranslateLang(translate: TranslateService, urlLangParam = 'userLang') {\n this.translateService.setDefaultTranslateLang(translate, urlLangParam);\n }\n\n getPagesAddonUUID() {\n return this.PAGES_ADDON_UUID;\n }\n\n setShellRouterData(data: { addPadding?: boolean, showSidebar?: boolean, showHeader?: boolean }) {\n const eventData = {\n detail: data,\n };\n\n const customEvent = new CustomEvent('set-router-data', eventData);\n window.dispatchEvent(customEvent);\n }\n\n defineCustomElement(elementName: string, component: Type<any>, injector: Injector) {\n if (!customElements.get(elementName)) { \n customElements.define(elementName, createCustomElement(component, {injector: injector}));\n \n // Set the elementName in the _customElementsMap (Fix internal routing bug).\n PepAddonService._customElementsMap.set(elementName, {injector: injector});\n }\n }\n\n // Fix internal routing bug.\n connectInternalRouter(elementName: string) {\n const customElementObject = PepAddonService._customElementsMap.get(elementName);\n let router = customElementObject?.injector.get(Router);\n\n // This cause a refresh (everithing is loading twice) when reloading the page...\n // But if we remove this the first navigation is clear all history cause the router is not connected.\n if (!router) {\n router = this.router;\n }\n\n if (router) {\n const useHash = location.href.includes('#');\n this.connectRouter(router, useHash);\n }\n }\n \n private connectRouter(router, useHash = false) {\n let url;\n if (!useHash) {\n url = `${location.pathname.substr(1)}${location.search}`;\n router.navigateByUrl(url);\n window.addEventListener('popstate', () => {\n router.navigateByUrl(url);\n });\n }\n else {\n url = `${location.hash.substr(1)}${location.search}`;\n router.navigateByUrl(url);\n window.addEventListener('hashchange', () => {\n router.navigateByUrl(url);\n });\n }\n }\n\n public static createMultiTranslateLoader(\n addonUUID: string,\n addonService: PepAddonService,\n libsName = ['ngx-lib'],\n ) {\n const ngxLibTranslationResources = [];\n\n if (libsName?.length > 0) {\n for (let index = 0; index < libsName.length; index++) {\n const libName = libsName[index];\n ngxLibTranslationResources.push(addonService.getNgxLibTranslationResource(addonUUID, libName));\n }\n }\n\n const addonTranslationResource = addonService.getAddonTranslationResource(addonUUID);\n\n return addonService.translateService.createMultiTranslateLoader([\n ...ngxLibTranslationResources,\n addonTranslationResource\n ]);\n }\n}\n","import { Injectable } from '@angular/core';\n\nexport interface IPepRgbColor {\n r?: any;\n g?: any;\n b?: any;\n}\n\nexport interface IPepHslColor {\n h?: any;\n s?: any;\n l?: any;\n}\n\nexport interface IPepClosestColor {\n color: string;\n lightness: number;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepColorService {\n readonly FLOAT_REGEX = /^\\d+(\\.\\d+)?$/;\n readonly THREE_DIGIT_HEX_COLOR_REGEX = /^[0-9a-fA-F]{3}$/;\n readonly THREE_DIGIT_HEX_COLOR_WITH_HASH_REGEX = /^#[0-9a-fA-F]{3}$/;\n readonly SIX_DIGIT_HEX_COLOR_REGEX = /^[0-9a-fA-F]{6}$/;\n readonly SIX_DIGIT_HEX_COLOR_WITH_HASH_REGEX = /^#[0-9a-fA-F]{6}$/;\n\n private contrast(str1: string, str2: string): number {\n const L1 = this.relativeLuminance(this.hex2rgb(str1));\n const L2 = this.relativeLuminance(this.hex2rgb(str2));\n\n if (L1 < L2) {\n return (L2 + 0.05) / (L1 + 0.05);\n }\n\n return (L1 + 0.05) / (L2 + 0.05);\n }\n\n private findClosestAccessibleDarkerColor(\n adjustableColor: string,\n otherColor: string,\n contrastRatio: number\n ): IPepClosestColor {\n const { h, s, l } = this.hex2hsl(adjustableColor);\n\n if (this.contrast(adjustableColor, otherColor) >= contrastRatio) {\n return {\n color: adjustableColor,\n lightness: l,\n };\n }\n\n let minColor = this.hsl2hex({ h, s, l: 0 });\n\n if (this.contrast(minColor, otherColor) < contrastRatio) {\n return null;\n }\n\n let min = 0;\n let max = l;\n let maxColor = this.hsl2hex({ h, s, l });\n let lastMinColor;\n let lastMaxColor;\n let lTemp;\n\n while (minColor !== lastMinColor || maxColor !== lastMaxColor) {\n lastMinColor = minColor;\n lastMaxColor = maxColor;\n\n lTemp = (min + max) / 2;\n adjustableColor = this.hsl2hex({ h, s, l: lTemp });\n\n if (this.contrast(adjustableColor, otherColor) < contrastRatio) {\n max = lTemp;\n maxColor = this.hsl2hex({ h, s, l: lTemp });\n } else {\n min = lTemp;\n minColor = this.hsl2hex({ h, s, l: lTemp });\n }\n }\n\n return {\n color: minColor,\n lightness: min,\n };\n }\n\n private findClosestAccessibleLighterColor(\n adjustableColor: string,\n otherColor: string,\n contrastRatio: number\n ): IPepClosestColor {\n const { h, s, l } = this.hex2hsl(adjustableColor);\n\n if (this.contrast(adjustableColor, otherColor) >= contrastRatio) {\n return {\n color: adjustableColor,\n lightness: l,\n };\n }\n\n let maxColor = this.hsl2hex({ h, s, l: 100 });\n\n if (this.contrast(maxColor, otherColor) < contrastRatio) {\n return null;\n }\n\n let min = l;\n let max = 100;\n let minColor = this.hsl2hex({ h, s, l });\n let lastMinColor;\n let lastMaxColor;\n let lTemp;\n\n while (minColor !== lastMinColor || maxColor !== lastMaxColor) {\n lastMinColor = minColor;\n lastMaxColor = maxColor;\n\n lTemp = (min + max) / 2;\n adjustableColor = this.hsl2hex({ h, s, l: lTemp });\n\n if (this.contrast(adjustableColor, otherColor) < contrastRatio) {\n min = lTemp;\n minColor = this.hsl2hex({ h, s, l: lTemp });\n } else {\n max = lTemp;\n maxColor = this.hsl2hex({ h, s, l: lTemp });\n }\n }\n\n return {\n color: maxColor,\n lightness: max,\n };\n }\n\n /**\n * Convert hex string to 6 digits hex string.\n * @param str The string to convert.\n */\n hex2sixDigitHex(str: string): string {\n if (!str) {\n return null;\n }\n\n str = str.trim();\n\n if (this.SIX_DIGIT_HEX_COLOR_WITH_HASH_REGEX.test(str)) {\n return str;\n }\n\n if (this.SIX_DIGIT_HEX_COLOR_REGEX.test(str)) {\n return '#' + str;\n }\n\n if (this.THREE_DIGIT_HEX_COLOR_WITH_HASH_REGEX.test(str)) {\n return '#' + str[1] + str[1] + str[2] + str[2] + str[3] + str[3];\n }\n\n if (this.THREE_DIGIT_HEX_COLOR_REGEX.test(str)) {\n return '#' + str[0] + str[0] + str[1] + str[1] + str[2] + str[2];\n }\n\n return null;\n }\n\n /**\n * Convert rgb color to 6 digits hex string.\n * @param color The rgb color to convert.\n */\n rgb2sixDigitHex(color: IPepRgbColor): string {\n if (!color) {\n return null;\n }\n\n color.r = color.r.toString(16);\n color.g = color.g.toString(16);\n color.b = color.b.toString(16);\n\n if (color.r.length === 1) {\n color.r = '0' + color.r;\n }\n\n if (color.g.length === 1) {\n color.g = '0' + color.g;\n }\n\n if (color.b.length === 1) {\n color.b = '0' + color.b;\n }\n\n return '#' + color.r + color.g + color.b;\n }\n\n /**\n * Convert hex string to rgb color.\n * @param str The hex string to convert.\n */\n hex2rgb(str: string): IPepRgbColor {\n if (!str) {\n return null;\n }\n\n const sixDigitHex = this.hex2sixDigitHex(str);\n\n if (sixDigitHex === null) {\n return null;\n }\n\n return {\n r: parseInt(sixDigitHex.slice(1, 3), 16),\n g: parseInt(sixDigitHex.slice(3, 5), 16),\n b: parseInt(sixDigitHex.slice(5, 7), 16),\n };\n }\n\n rgbString2hsl(str: string): IPepHslColor {\n if (!str) {\n return null;\n }\n\n const sep = str.indexOf(',') > -1 ? ',' : ' ';\n const rgbArr = str.substr(4).split(')')[0].split(sep);\n\n const r = rgbArr[0];\n const g = rgbArr[1].substr(0, rgbArr[1].length).trim();\n const b = rgbArr[2].substr(0, rgbArr[2].length).trim();\n\n return this.rgb2hsl({ r, g, b });\n }\n\n rgb2hsl({ r, g, b }: IPepRgbColor): IPepHslColor {\n r /= 255;\n g /= 255;\n b /= 255;\n\n // Find greatest and smallest channel values\n const cmin = Math.min(r, g, b);\n const cmax = Math.max(r, g, b);\n const delta = cmax - cmin;\n\n let h = 0;\n let s = 0;\n let l = 0;\n\n if (delta === 0) {\n h = 0;\n } else if (cmax === r) {\n h = ((g - b) / delta) % 6;\n } else if (cmax === g) {\n h = (b - r) / delta + 2;\n } else {\n h = (r - g) / delta + 4;\n }\n\n h = Math.round(h * 60);\n\n if (h < 0) {\n h += 360;\n }\n\n l = (cmax + cmin) / 2;\n s = delta === 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));\n s = +(s * 100).toFixed(1);\n l = +(l * 100).toFixed(1);\n\n return { h, s, l };\n }\n\n hslString2hsl(str: string): IPepHslColor {\n if (!str) {\n return null;\n }\n\n const sep = str.indexOf(',') > -1 ? ',' : ' ';\n const hslArr = str.substr(4).split(')')[0].split(sep);\n\n let h: any = hslArr[0];\n let s = hslArr[1].substr(0, hslArr[1].length).trim();\n let l = hslArr[2].substr(0, hslArr[2].length).trim();\n\n // Strip label and convert to degrees (if necessary)\n if (h.indexOf('deg') > -1) {\n h = h.substr(0, h.length - 3);\n } else if (h.indexOf('rad') > -1) {\n h = Math.round(h.substr(0, h.length - 3) * (180 / Math.PI));\n } else if (h.indexOf('turn') > -1) {\n h = Math.round(h.substr(0, h.length - 4) * 360);\n }\n\n // Keep hue fraction of 360 if ending up over\n if (h >= 360) {\n h %= 360;\n }\n\n // Remove the %\n if (s.indexOf('%') > -1) {\n s = s.replace(/%/g, '');\n }\n\n // Remove the %\n if (l.indexOf('%') > -1) {\n l = l.replace(/%/g, '');\n }\n\n return { h, s, l };\n }\n\n hsl2rgb({ h, s, l }: IPepHslColor): IPepRgbColor {\n let r;\n let g;\n let b;\n\n if (!isFinite(h)) {\n h = 0;\n }\n\n if (!isFinite(s)) {\n s = 0;\n }\n\n if (!isFinite(l)) {\n l = 0;\n }\n\n h /= 60;\n\n if (h < 0) {\n h = 6 - (-h % 6);\n }\n\n h %= 6;\n\n s = Math.max(0, Math.min(1, s / 100));\n l = Math.max(0, Math.min(1, l / 100));\n\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const x = c * (1 - Math.abs((h % 2) - 1));\n\n if (h < 1) {\n r = c;\n g = x;\n b = 0;\n } else if (h < 2) {\n r = x;\n g = c;\n b = 0;\n } else if (h < 3) {\n r = 0;\n g = c;\n b = x;\n } else if (h < 4) {\n r = 0;\n g = x;\n b = c;\n } else if (h < 5) {\n r = x;\n g = 0;\n b = c;\n } else {\n r = c;\n g = 0;\n b = x;\n }\n\n const m = l - c / 2;\n r = Math.round((r + m) * 255);\n g = Math.round((g + m) * 255);\n b = Math.round((b + m) * 255);\n\n return { r, g, b };\n }\n\n hex2hsl(str: string): IPepHslColor {\n if (!str) {\n return null;\n }\n\n const sixDigitHex = this.hex2sixDigitHex(str);\n\n if (sixDigitHex === null) {\n return null;\n }\n\n const rgb = this.hex2rgb(sixDigitHex);\n\n if (rgb === null) {\n return null;\n }\n\n return this.rgb2hsl(rgb);\n }\n\n hsl2hex(hsl: IPepHslColor): string {\n if (!hsl) {\n return null;\n }\n\n const rgb = this.hsl2rgb(hsl);\n\n return this.rgb2sixDigitHex(rgb);\n }\n\n relativeLuminance({ r, g, b }: IPepRgbColor): number {\n [r, g, b] = [r, g, b].map((c) => {\n c = c / 255;\n\n if (c <= 0.03928) {\n return c / 12.92;\n }\n\n return Math.pow((c + 0.055) / 1.055, 2.4);\n });\n\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n }\n\n findClosestAccessibleColor(\n adjustableColor: string,\n otherColor: string,\n contrastRatio: number\n ): string {\n const closestDarkerColor: IPepClosestColor = this.findClosestAccessibleDarkerColor(\n adjustableColor,\n otherColor,\n contrastRatio\n );\n const closestLighterColor: IPepClosestColor = this.findClosestAccessibleLighterColor(\n adjustableColor,\n otherColor,\n contrastRatio\n );\n\n if (closestDarkerColor === null) {\n if (closestLighterColor === null) {\n return null;\n }\n\n return closestLighterColor.color;\n }\n\n if (closestLighterColor === null) {\n return closestDarkerColor.color;\n }\n\n const { l } = this.hex2hsl(adjustableColor);\n\n if (\n closestLighterColor.lightness - l <\n l - closestDarkerColor.lightness\n ) {\n return closestLighterColor.color;\n }\n\n return closestDarkerColor.color;\n }\n\n convertHslToStringHsl(hsl: IPepHslColor): string {\n return (\n 'hsl(' +\n (hsl.h < 0 ? hsl.h + 360 : hsl.h) +\n ', ' +\n hsl.s +\n '%, ' +\n hsl.l +\n '%)'\n );\n }\n\n lightOrDark(color: any): 'light' | 'dark' {\n let r = undefined;\n let g = undefined;\n let b = undefined;\n\n // Check the format of the color, HEX or RGB?\n if (color.match(/^rgb/)) {\n // If HEX --> store the red, green, blue values in separate variables\n color = color.match(/^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/);\n \n r = color[1];\n g = color[2];\n b = color[3];\n } \n else {\n // If RGB --> Convert it to HEX: http://gist.github.com/983661\n color = +(\"0x\" + color.slice(1).replace( \n color.length < 5 && /./g, '$&$&'\n ));\n \n r = color >> 16;\n g = color >> 8 & 255;\n b = color & 255;\n }\n \n // HSP (Highly Sensitive Poo) equation from http://alienryderflex.com/hsp.html\n const hsp = Math.sqrt(\n 0.299 * (r * r) +\n 0.587 * (g * g) +\n 0.114 * (b * b)\n );\n \n // Using the HSP value, determine whether the color is light or dark\n return (hsp > 127.5) ? 'light' : 'dark';\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n FieldLayout,\n ObjectsDataRow,\n UIControl,\n UIControlField,\n ObjectsDataRowCell,\n FIELD_TYPE,\n X_ALIGNMENT_TYPE,\n} from '../model/wapi.model';\nimport { PepGuid } from '../model/utilities.model';\n\nexport class PepFieldData {\n ApiName: string;\n Enabled?: boolean;\n Value: string;\n FormattedValue?: string;\n FieldType: FIELD_TYPE;\n ReadOnly?: boolean;\n ColumnWidth: number;\n ColumnWidthType?: number;\n XAlignment: X_ALIGNMENT_TYPE;\n Title: string;\n AdditionalValue?: string;\n OptionalValues?: any;\n\n constructor(\n options: {\n ApiName?: string;\n Enabled?: boolean;\n Value?: string;\n FormattedValue?: string;\n FieldType?: FIELD_TYPE;\n ReadOnly?: boolean;\n ColumnWidth?: number;\n ColumnWidthType?: number;\n XAlignment?: X_ALIGNMENT_TYPE;\n Title?: string;\n } = {}\n ) {\n this.ApiName = options.ApiName;\n this.Enabled = !!options.Enabled;\n this.Value = options.Value;\n this.FormattedValue = options.FormattedValue || '';\n this.FieldType = options.FieldType;\n this.ReadOnly = !!options.ReadOnly;\n this.ColumnWidth = options.ColumnWidth;\n this.ColumnWidthType = options.ColumnWidthType;\n this.XAlignment = options.XAlignment || X_ALIGNMENT_TYPE.Left;\n this.Title = options.Title || '';\n }\n}\nexport class PepRowData {\n UUID?: string;\n IsEditable?: boolean;\n IsSelected?: boolean;\n IsSelectableForActions?: boolean;\n Fields: PepFieldData[];\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepDataConvertorService {\n getUiControl(formData: PepRowData): UIControl {\n const uiControl = new UIControl();\n\n if (formData?.Fields?.length > 0) {\n const uiRow = formData.Fields;\n uiControl.ControlFields = [];\n uiRow.forEach((field) =>\n uiControl.ControlFields.push(this.setUIControlField(field))\n );\n }\n\n return uiControl;\n }\n\n convertFormData(formData: PepRowData): ObjectsDataRow {\n const rowData = new ObjectsDataRow();\n rowData.Fields = [];\n rowData.Type = 0;\n rowData.UID = PepGuid.newGuid();\n formData.Fields.forEach((field) =>\n rowData.Fields.push(this.setDataField(field))\n );\n\n return rowData;\n }\n\n convertListData(\n tableData: PepRowData[],\n rowUUID = ''\n ): Array<ObjectsDataRow> {\n const rows = new Array<ObjectsDataRow>();\n\n if (tableData.length > 0) {\n tableData.forEach((row) => {\n const rowData = new ObjectsDataRow();\n rowData.Fields = [];\n rowData.Type = 0;\n rowData.UID = rowUUID\n ? rowUUID\n : row.UUID\n ? row.UUID\n : PepGuid.newGuid();\n if (row.IsEditable === false) {\n rowData.IsEditable = false;\n }\n if (row.IsSelectableForActions === false) {\n rowData.IsSelectableForActions = false;\n }\n if (row.IsSelected) {\n rowData.IsSelected = true;\n }\n row.Fields.forEach((field) =>\n rowData.Fields.push(this.setDataField(field))\n );\n rows.push(rowData);\n });\n }\n\n return rows;\n }\n\n setUIControlField(field: PepFieldData): UIControlField {\n const controlField = new UIControlField();\n controlField.ApiName = field.ApiName;\n controlField.FieldType = field.FieldType;\n\n controlField.Layout = new FieldLayout({\n X: 1,\n Width: 1,\n XAlignment: field.XAlignment,\n Y: 1,\n Height: 1,\n YAlignment: 1,\n });\n\n controlField.Title = field.Title;\n controlField.ReadOnly = field.ReadOnly === true ? true : false;\n controlField.ColumnWidth = field.ColumnWidth;\n controlField.ColumnWidthType = field.ColumnWidthType || 1;\n return controlField;\n }\n\n setDataField(field: PepFieldData): ObjectsDataRowCell {\n const dataField = new ObjectsDataRowCell();\n dataField.AdditionalValue = field.AdditionalValue;\n dataField.ApiName = field.ApiName;\n dataField.Enabled = field.Enabled === false ? false : true;\n dataField.FieldType = field.FieldType;\n dataField.FormattedValue =\n field.FormattedValue || field.Value;\n dataField.GroupFields = null;\n dataField.NotificationInfo = '';\n dataField.OptionalValues = field.OptionalValues;\n dataField.ReferenceObjectSubType = '';\n dataField.TextColor = '';\n dataField.Value = field.Value;\n dataField.Visible = true;\n return dataField;\n }\n\n setFieldLayout(\n x: number,\n width: number,\n xAlignment: number,\n y: number,\n height: number,\n yAlignment: number,\n lineNumber: number\n ): FieldLayout {\n const layout = new FieldLayout({\n X: x,\n Width: width,\n XAlignment: xAlignment,\n Y: y,\n Height: height,\n YAlignment: yAlignment,\n LineNumber: lineNumber,\n });\n\n return layout;\n }\n}\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Injectable, Optional } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n AbstractControl,\n ValidatorFn,\n FormControl,\n Validators,\n} from '@angular/forms';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepValidatorService {\n // Regular expressions\n readonly integerUnsigned = '^[0-9]*$';\n readonly integerSigned = '^-?[0-9]+$';\n decimalUnsigned = '^[0-9]+(.[0-9]+)?$';\n decimalSigned = '^-?[0-9]+(.[0-9]+)?$';\n readonly phone = '^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-s./0-9]*$';\n\n decimalSeparator = '.';\n\n constructor(@Optional() private translate: TranslateService = null) {\n const currentLang = this.translate?.currentLang || navigator.language;\n\n // Check for number with thousands separator and if === ',' then the decimal separator is '.' else ','\n const tmp = new Intl.NumberFormat(currentLang, {\n maximumSignificantDigits: 2,\n }).format(1000);\n this.decimalSeparator = tmp.indexOf(',') === 1 ? '.' : ',';\n\n this.decimalUnsigned = `^[0-9]+(${this.decimalSeparator}[0-9]+)?$`;\n this.decimalSigned = `^-?[0-9]+(${this.decimalSeparator}[0-9]+)?$`;\n }\n\n /*\n ValidatorFn functions\n */\n isEqual(target: FormControl | AbstractControl): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } | null => {\n if (control.value) {\n return target.value !== control.value\n ? { equal: { value: true } }\n : null;\n } else {\n return null;\n }\n };\n }\n\n isGreaterThan(target: FormControl | AbstractControl): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } | null => {\n if (control.value && typeof target.value === 'number') {\n return target.value > control.value\n ? { greater: { value: true } }\n : null;\n } else if (control.value && typeof target.value === 'string') {\n const controlValueNumer = coerceNumberProperty(control.value);\n const targetValueNumer = coerceNumberProperty(target.value);\n\n return targetValueNumer > controlValueNumer\n ? { greater: { value: true } }\n : null;\n } else {\n return null;\n }\n };\n }\n\n isLessThan(target: FormControl | AbstractControl): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } | null => {\n if (control.value && typeof target.value === 'number') {\n return target.value < control.value\n ? { less: { value: true } }\n : null;\n } else if (control.value && typeof target.value === 'string') {\n const controlValueNumer = coerceNumberProperty(control.value);\n const targetValueNumer = coerceNumberProperty(target.value);\n\n return targetValueNumer < controlValueNumer\n ? { less: { value: true } }\n : null;\n } else {\n return null;\n }\n };\n }\n\n checkEmails(separator?: string): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } | null => {\n if (control.value) {\n const emails = control.value.split(separator ? separator : ',');\n const ctrl = new FormControl('', [\n Validators.required,\n Validators.email,\n ]);\n const result = emails.every((val: string) => {\n ctrl.setValue(val);\n return ctrl.valid;\n });\n\n return !result ? { emails: { value: true } } : null;\n } else {\n return null;\n }\n };\n }\n\n zipCodeValidator(): ValidatorFn {\n return Validators.pattern(/^(\\d{5}(-\\d{4})?|[A-Z]\\d[A-Z] *\\d[A-Z]\\d)$/);\n }\n\n allowableCharactersValidator(): ValidatorFn {\n return Validators.pattern(\n /^[a-zA-Z0-9`~!@#$%^&*()_+}{|\":?><,./;'\\\\\\]\\[=\\- ]+$/\n );\n }\n\n allowableCharactersWithoutNumberValidator(): ValidatorFn {\n return Validators.pattern(\n /^[a-zA-Z`~!@#$%^&*()_+}{|\":?><,./;'\\\\\\]\\[=\\- ]+$/\n );\n }\n\n allowableCharactersWithoutSpecialValidator(): ValidatorFn {\n return Validators.pattern(/^[a-zA-Z0-9 ]+$/);\n }\n\n dateValidator(): ValidatorFn {\n return Validators.pattern(\n /^(?:(0[1-9]|1[012])[\\/.](0[1-9]|[12][0-9]|3[01])[\\/.](19|20)[0-9]{2})$/\n );\n }\n\n numberValidator(): ValidatorFn {\n return Validators.pattern(/^[0-9]*$/);\n }\n\n /*\n RegExp functions\n */\n validateNumber(value: string, allowDecimal: boolean): string {\n // choose the appropiate regular expression\n let regex: string;\n\n if (allowDecimal) {\n regex = this.decimalSigned;\n } else {\n regex = this.integerSigned;\n }\n\n // when a numbers begins with a decimal separator,\n // fix it adding a zero in the beginning\n const firstCharacter = value.charAt(0);\n if (firstCharacter == this.decimalSeparator) value = 0 + value;\n\n // when a numbers ends with a decimal separator,\n // fix it adding a zero in the end\n const lastCharacter = value.charAt(value.length - 1);\n if (lastCharacter == this.decimalSeparator) value = value + 0;\n\n // test number with regular expression, when\n // number is invalid, replace it with a zero\n // console.log(`regex is ${regex} and value is ${value}`);\n const valid: boolean = new RegExp(regex).test(value);\n\n return valid ? value : null;\n }\n\n validatePhone(value: string): boolean {\n // test phone with regular expression\n const valid: boolean = new RegExp(this.phone).test(value);\n return valid;\n }\n\n private getName(e): string {\n if (e.key) {\n return e.key;\n } else {\n // for old browsers\n if (e.keyCode && String.fromCharCode) {\n switch (e.keyCode) {\n case 8:\n return 'Backspace';\n case 9:\n return 'Tab';\n case 27:\n return 'Escape';\n case 37:\n return 'ArrowLeft';\n case 39:\n return 'ArrowRight';\n case 188:\n return ',';\n case 190:\n return '.';\n case 109:\n return '-'; // minus in numbpad\n case 173:\n return '-'; // minus in alphabet keyboard in firefox\n case 189:\n return '-'; // minus in alphabet keyboard in chrome\n default:\n return String.fromCharCode(e.keyCode);\n }\n }\n }\n }\n\n private allowKeyboardNonNumericCharacters(\n allowedKeys: Array<string>,\n key: string,\n controlOrCommand: boolean\n ): boolean {\n const defaultAllowedKeys = [\n 'Backspace',\n 'ArrowLeft',\n 'ArrowRight',\n 'Escape',\n 'Tab',\n 'Home',\n 'End',\n 'Delete',\n ];\n\n // allow some non-numeric characters\n if (\n defaultAllowedKeys.indexOf(key) != -1 ||\n allowedKeys.indexOf(key) != -1 ||\n // Allow: Ctrl+A and Command+A\n (key == 'a' && controlOrCommand) ||\n // Allow: Ctrl+C and Command+C\n (key == 'c' && controlOrCommand) ||\n // Allow: Ctrl+V and Command+V\n (key == 'v' && controlOrCommand) ||\n // Allow: Ctrl+X and Command+X\n (key == 'x' && controlOrCommand) ||\n key.startsWith('F')\n ) {\n // let it happen, don't do anything\n return true;\n } else {\n return false;\n }\n }\n\n isPhone(e: KeyboardEvent): boolean {\n const key: string = this.getName(e);\n const controlOrCommand = e.ctrlKey === true || e.metaKey === true;\n\n // allowed keys apart from numeric characters\n const allowedKeys = ['.', '-', '+', '(', ')', '*', '#'];\n\n // allow some non-numeric characters\n if (\n this.allowKeyboardNonNumericCharacters(\n allowedKeys,\n key,\n controlOrCommand\n )\n ) {\n return true;\n }\n\n // allow phone characters only\n const isPhone = new RegExp(this.phone).test(key);\n return isPhone;\n }\n\n isNumber(e: KeyboardEvent, allowDecimal: boolean): boolean {\n const cursorPosition: number = e.target['selectionStart'];\n const originalValue: string = e.target['value'];\n const key: string = this.getName(e);\n const controlOrCommand = e.ctrlKey === true || e.metaKey === true;\n const signExists = originalValue.includes('-');\n const separatorExists = originalValue.includes(this.decimalSeparator);\n\n // allowed keys apart from numeric characters\n const allowedKeys = [];\n\n // when decimals are allowed, add\n // decimal separator to allowed codes when\n // its position is not close to the the sign (-. and .-)\n const separatorIsCloseToSign = signExists && cursorPosition <= 1;\n if (allowDecimal && !separatorIsCloseToSign && !separatorExists) {\n if (this.decimalSeparator == '.') allowedKeys.push('.');\n else allowedKeys.push(',');\n }\n\n // when minus sign is allowed, add its\n // key to allowed key only when the\n // cursor is in the first position, and\n // first character is different from\n // decimal separator\n const firstCharacterIsSeparator =\n originalValue.charAt(0) != this.decimalSeparator;\n if (!signExists && firstCharacterIsSeparator && cursorPosition == 0) {\n allowedKeys.push('-');\n }\n\n // allow some non-numeric characters\n if (\n this.allowKeyboardNonNumericCharacters(\n allowedKeys,\n key,\n controlOrCommand\n )\n ) {\n return true;\n }\n\n // allow number characters only\n const isNumber = new RegExp(this.integerUnsigned).test(key);\n return isNumber;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepWindowScrollingService {\n // Inject a STYLE element for overrides the scroll behavior, this way we can add | remove it in order to the behavior.\n private styleTag: HTMLStyleElement;\n\n constructor() {\n this.styleTag = this.buildStyleElement();\n }\n\n // Disable the scrolling feature on the main viewport.\n public disable(): void {\n document.body.appendChild(this.styleTag);\n }\n\n // Re-enable the scrolling feature on the main viewport.\n public enable(): void {\n document.body.removeChild(this.styleTag);\n }\n\n // Return a Style element that will prevent scrolling on the body.\n private buildStyleElement(): HTMLStyleElement {\n const style = document.createElement('style');\n\n style.type = 'text/css';\n style.setAttribute(\n 'data-debug',\n 'Injected by WindowScrolling service.'\n );\n style.textContent = `\n body {\n overflow: hidden !important ;\n }\n `;\n\n return style;\n }\n}\n","/*\n * Public API Surface of ngx-lib/core/common/services\n */\nexport * from './addon.service';\nexport * from './color.service';\nexport * from './cookie.service';\nexport * from './data-convertor.service';\nexport * from './file.service';\nexport * from './jwt-helper.service';\nexport * from './session.service';\nexport * from './translate.service';\nexport * from './utilities.service';\nexport * from './validator.service';\nexport * from './window-scrolling.service';\n","/*\n * export from ngx-lib/core/common/services\n */\nexport * from './public-api';\n","/*\n * Public API Surface of ngx-lib/core/common\n */\nexport * from './directives/index';\nexport * from './model/index';\nexport * from './pipes/index';\nexport * from './services/index';\n","/*\n * export from ngx-lib/core/common\n */\nexport * from './public-api';\n","import { ValidatorFn, Validators } from '@angular/forms';\n\n/** Allowed layout options */\nexport type PepLayoutType = 'form' | 'card' | 'table';\n\n/** Allowed style options */\nexport type PepStyleType = 'weak' | 'weak-invert' | 'weak-special' | 'regular' | 'strong';\n\n/** Allowed style state options */\nexport type PepStyleStateType = 'system' | 'caution' | 'success';\n\n/** Allowed size options */\nexport type PepSizeType = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/** Allowed horizontal alignment options */\nexport type PepHorizontalAlignment = 'left' | 'center' | 'right';\n/** Default horizontal alignment. */\nexport const DEFAULT_HORIZONTAL_ALIGNMENT: PepHorizontalAlignment = 'left';\n\n/** Allowed vertical alignment options */\nexport type PepVerticalAlignment = 'top' | 'middle' | 'bottom';\n/** Default horizontal alignment. */\nexport const DEFAULT_VERTICAL_ALIGNMENT: PepVerticalAlignment = 'top';\nexport interface IPepOption {\n key: string;\n value: string;\n}\n\n// export type PepFieldBaseType = '' | PepInternalButtonFieldType | PepTextboxFieldType |\n// PepQuantitySelectorFieldType | PepDateFieldType | PepCheckboxFieldType | PepSelectFieldType;\ninterface IPepFieldBaseOptions {\n value?: any;\n formattedValue?: any;\n additionalValue?: string;\n key?: string;\n label?: string;\n accessory?: string;\n mandatory?: boolean;\n readonly?: boolean;\n disabled?: boolean;\n order?: number;\n controlType?: string;\n // type?: PepFieldBaseType;\n placeholder?: string;\n hidden?: boolean;\n row?: number;\n rowSpan?: number;\n col?: number;\n colSpan?: number;\n xAlignment?: PepHorizontalAlignment;\n yAlignment?: PepVerticalAlignment;\n maxFieldCharacters?: number;\n minValue?: number;\n maxValue?: number;\n textColor?: string;\n visible?: boolean; \n emptyOption?: boolean; \n // lastFocusField?: any;\n digitsNumberAfterDecimalPoint?: number;\n}\nexport class PepFieldBase {\n value: any;\n formattedValue: any;\n additionalValue: string;\n key: string;\n label: string;\n accessory: string;\n mandatory: boolean;\n readonly: boolean;\n disabled: boolean;\n order: number;\n // type: string;\n controlType: string;\n placeholder: string;\n hidden: boolean;\n row: number;\n rowSpan: number;\n col: number;\n colSpan: number;\n xAlignment: PepHorizontalAlignment;\n yAlignment: PepVerticalAlignment;\n groupFields: PepFieldBase[];\n maxFieldCharacters: number;\n minValue: number;\n maxValue: number;\n textColor: string;\n visible: boolean; \n // lastFocusField: any;\n\n constructor(options: IPepFieldBaseOptions = {}) {\n this.key = options.key || '';\n this.label = options.label || '';\n this.accessory = options.accessory || '';\n this.mandatory = !!options.mandatory;\n\n this.order = options.order ?? 1;\n this.controlType = options.controlType || '';\n // this.type = options.type || '';\n this.placeholder = options.placeholder || '';\n this.hidden = !!options.hidden;\n\n this.row = options.row ?? 1;\n this.rowSpan = options.rowSpan ?? 1;\n this.col = options.col ?? 1;\n this.colSpan = options.colSpan ?? 1;\n\n this.xAlignment = options.xAlignment ?? DEFAULT_HORIZONTAL_ALIGNMENT;\n this.yAlignment = options.yAlignment ?? DEFAULT_VERTICAL_ALIGNMENT;\n\n this.maxFieldCharacters = options.maxFieldCharacters ?? 0;\n this.minValue = options.minValue ?? undefined;\n this.maxValue = options.maxValue ?? undefined;\n\n this.update(options);\n }\n\n protected getBaseValidators(isCheckbox = false): ValidatorFn[] {\n const validators = [];\n\n if (this.mandatory && !this.readonly && !this.disabled) {\n if (isCheckbox) {\n validators.push(Validators.requiredTrue);\n } else {\n validators.push(Validators.required);\n }\n } else {\n validators.push(Validators.nullValidator);\n }\n\n if (this.maxFieldCharacters > 0) {\n validators.push(Validators.maxLength(this.maxFieldCharacters));\n } \n\n //DI-26722\n // if (this.minValue) {\n // validators.push(Validators.min(this.minValue));\n // }\n\n // if (this.maxValue) {\n // validators.push(Validators.max(this.maxValue));\n // }\n\n return validators;\n }\n\n public getValidators(): ValidatorFn[] {\n const validators = this.getBaseValidators();\n return validators;\n }\n\n public update(options: IPepFieldBaseOptions): void {\n this.value = options.value;\n this.formattedValue = options.formattedValue;\n this.additionalValue = options.additionalValue;\n\n this.readonly = !!options.readonly;\n this.disabled = !!options.disabled;\n this.visible = !!options.visible;\n this.textColor = options.textColor || '';\n // this.lastFocusField = options.lastFocusField || null;\n }\n}\n\nexport class PepPlaceholderField extends PepFieldBase {\n controlType = 'placeholder';\n\n constructor(options: IPepFieldBaseOptions = {}) {\n super(options);\n }\n}\n\nexport class PepSeparatorField extends PepFieldBase {\n controlType = 'separator';\n \n constructor(options: IPepFieldBaseOptions = {}) {\n super(options); \n }\n}\n\nexport class PepAttachmentField extends PepFieldBase {\n controlType = 'attachment';\n\n constructor(options: IPepFieldBaseOptions = {}) {\n super(options);\n }\n}\n\nexport class PepIndicatorsField extends PepFieldBase {\n controlType = 'indicators';\n\n constructor(options: IPepFieldBaseOptions = {}) {\n super(options);\n }\n}\n\nexport type PepTextboxFieldType =\n | 'text'\n | 'link'\n | 'email'\n | 'phone'\n | 'duration'\n | 'int'\n | 'percentage'\n | 'currency'\n | 'real';\ninterface IPepTextboxFieldOptions extends IPepFieldBaseOptions {\n type?: PepTextboxFieldType;\n regex?: string | RegExp;\n // regexError?: string;\n}\nexport class PepTextboxField extends PepFieldBase {\n controlType = 'textbox';\n type: PepTextboxFieldType = 'text';\n regex?: string | RegExp;\n // regexError?: string;\n digitsNumberAfterDecimalPoint = NaN;\n\n constructor(options: IPepTextboxFieldOptions = {}) {\n super(options);\n\n this.type = options.type || 'text';\n this.regex = options.regex ?? null;\n // this.regexError = options.regexError ?? null;\n\n this.update(options);\n }\n\n public update(options: IPepTextboxFieldOptions): void {\n super.update(options);\n\n this.digitsNumberAfterDecimalPoint = options.digitsNumberAfterDecimalPoint ?? NaN;\n\n if (this.type === 'link') {\n // DI-11292 - add changes for link field for the \"Read Only display value\" prop\n this.formattedValue =\n this.disabled && this.formattedValue && this.value\n ? this.formattedValue\n : this.value;\n }\n }\n\n public getValidators(): ValidatorFn[] {\n const validators = super.getBaseValidators();\n\n if (this.type === 'email') {\n validators.push(\n Validators.pattern(\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n )\n );\n // validators.push(Validators.email);\n } else if (this.type === 'phone') {\n validators.push(Validators.pattern(/^[\\d\\.\\-\\+\\(\\)\\*\\#]+$/));\n } else if (this.type === 'int' || this.type === 'real') {\n validators.push(Validators.pattern(/^[\\.,\\-\\+\\d]+$/));\n\n if (this.minValue && !isNaN(this.minValue)) {\n validators.push(Validators.min(this.minValue));\n }\n\n if (this.maxValue && !isNaN(this.maxValue)) {\n validators.push(Validators.max(this.maxValue));\n }\n }\n else if(this.type === 'currency' || this.type === 'percentage'){\n if (this.minValue && !isNaN(this.minValue)) {\n validators.push(Validators.min(this.minValue));\n }\n\n if (this.maxValue && !isNaN(this.maxValue)) {\n validators.push(Validators.max(this.maxValue));\n }\n }\n\n if (this.type === 'text' && this.regex) {\n validators.push(Validators.pattern(this.regex));\n }\n\n return validators;\n }\n}\n\nexport class PepLinkField extends PepFieldBase {\n controlType = 'link';\n type: PepTextboxFieldType = 'link';\n\n constructor(options: IPepFieldBaseOptions = {}) {\n super(options);\n\n this.update(options);\n }\n\n public update(options: IPepTextboxFieldOptions): void {\n super.update(options);\n \n // DI-23167 - Comment this.\n // // DI-11292 - add changes for link field for the \"Read Only display value\" prop\n // this.formattedValue =\n // this.disabled && this.formattedValue && this.value\n // ? this.formattedValue\n // : this.value;\n\n }\n}\n\nexport class PepTextareaField extends PepFieldBase {\n controlType = 'textarea';\n\n constructor(options: IPepFieldBaseOptions = {}) {\n super(options);\n // this.type = 'textarea';\n }\n}\n\ninterface IPepSignatureFieldOptions extends IPepFieldBaseOptions {\n renderTitle?: boolean;\n renderEnlargeButton?: boolean;\n}\nexport class PepRichHtmlTextareaField extends PepFieldBase {\n controlType = 'richhtmltextarea'; \n renderTitle: boolean;\n renderEnlargeButton: boolean;\n\n constructor(options: IPepSignatureFieldOptions = {}) {\n super(options);\n\n this.renderTitle = options.renderTitle !== undefined ? options.renderTitle : true;\n this.renderEnlargeButton = options.renderEnlargeButton !== undefined ? options.renderEnlargeButton : true;\n }\n}\n\ninterface IPepSignatureFieldOptions extends IPepFieldBaseOptions {\n options?: IPepOption[];\n}\nexport class PepSignatureField extends PepFieldBase {\n controlType = 'signature';\n options: IPepOption[] = [];\n\n constructor(options: IPepSignatureFieldOptions = {}) {\n super(options);\n this.options = options.options || [];\n }\n}\n\ninterface IPepImageFieldOptions extends IPepFieldBaseOptions {\n hasCampaignField?: any;\n indicatorsField?: any;\n menuField?: any;\n options?: IPepOption[];\n sizeLimitMB?: number;\n}\nexport class PepImageField extends PepFieldBase {\n controlType = 'image';\n hasCampaignField = null;\n indicatorsField = null;\n menuField = null;\n options: IPepOption[] = [];\n sizeLimitMB = 5;\n\n constructor(options: IPepImageFieldOptions = {}) {\n super(options);\n this.hasCampaignField = options.hasCampaignField || null;\n this.indicatorsField = options.indicatorsField || null;\n this.menuField = options.menuField || null;\n this.options = options.options || [];\n this.sizeLimitMB = options.sizeLimitMB || 5;\n }\n}\n\ninterface IPepImagesFieldOptions extends IPepFieldBaseOptions {\n options?: IPepOption[];\n}\nexport class PepImagesField extends PepFieldBase {\n controlType = 'images';\n options: IPepOption[] = [];\n\n constructor(options: IPepImagesFieldOptions = {}) {\n super(options);\n this.options = options.options || [];\n }\n}\n\nexport type PepQuantitySelectorFieldType =\n | 'button'\n | 'packageButton'\n | 'qs'\n | 'qsForMatrix';\ninterface IPepQuantitySelectorFieldOptions extends IPepFieldBaseOptions {\n allowDecimal?: boolean;\n notificationInfo?: any;\n type?: PepQuantitySelectorFieldType;\n}\nexport class PepQuantitySelectorField extends PepFieldBase {\n controlType = 'qs';\n allowDecimal: boolean;\n notificationInfo: any = {};\n updatedDataCount: number;\n type: PepQuantitySelectorFieldType;\n digitsNumberAfterDecimalPoint = NaN;\n\n constructor(options: IPepQuantitySelectorFieldOptions = {}) {\n super(options);\n\n this.updatedDataCount = 0;\n this.type = options.type || 'qs';\n\n this.update(options);\n }\n\n public update(options: IPepQuantitySelectorFieldOptions): void {\n super.update(options);\n \n this.digitsNumberAfterDecimalPoint = options.digitsNumberAfterDecimalPoint ?? NaN;\n\n this.allowDecimal = options.allowDecimal || false;\n this.notificationInfo = options.notificationInfo;\n this.updatedDataCount += 1;\n }\n}\n\nexport type PepDateFieldType = 'datetime' | 'date';\ninterface IPepDateFieldOptions extends IPepFieldBaseOptions {\n type?: PepDateFieldType;\n}\nexport class PepDateField extends PepFieldBase {\n controlType = 'date';\n type: PepDateFieldType;\n // minDateValue?: Date;\n // maxDateValue?: Date;\n\n constructor(options: IPepDateFieldOptions = {}) {\n super(options);\n\n this.type = options.type || 'date';\n }\n\n public getValidators(): ValidatorFn[] {\n const validators = super.getBaseValidators();\n \n if (this.minValue && !isNaN(this.minValue)) {\n validators.push(Validators.min(this.minValue));\n }\n \n if (this.maxValue && !isNaN(this.maxValue)) {\n validators.push(Validators.max(this.maxValue));\n }\n\n // if (this.minDateValue) {\n // validators.push(Validators.min(this.minDateValue));\n // }\n \n // if (this.maxDateValue) {\n // validators.push(Validators.max(this.maxDateValue));\n // }\n \n return validators;\n }\n}\n\nexport type PepCheckboxFieldType = 'checkbox' | 'booleanText';\ninterface IPepCheckboxFieldOptions extends IPepFieldBaseOptions {\n type?: PepCheckboxFieldType;\n}\nexport class PepCheckboxField extends PepFieldBase {\n controlType = 'checkbox';\n type: PepCheckboxFieldType;\n\n constructor(options: IPepCheckboxFieldOptions = {}) {\n super(options);\n\n this.type = options.type || 'checkbox';\n }\n\n public getValidators(): ValidatorFn[] {\n const validators = super.getBaseValidators(true);\n return validators;\n }\n}\n\nexport type PepSelectFieldType = 'select' | 'multi';\ninterface IPepSelectFieldOptions extends IPepFieldBaseOptions {\n options?: IPepOption[];\n type?: PepSelectFieldType;\n autoSortOptions?: boolean;\n}\nexport class PepSelectField extends PepFieldBase {\n controlType = 'select';\n options: IPepOption[] = []; \n type: PepSelectFieldType; \n emptyOption: boolean;\n autoSortOptions = true;\n\n constructor(options: IPepSelectFieldOptions = {}) {\n super(options);\n this.type = options.type || 'select';\n this.emptyOption = options.emptyOption;\n this.autoSortOptions = options.autoSortOptions ?? true;\n\n this.update(options);\n }\n\n public update(options: IPepSelectFieldOptions): void {\n super.update(options);\n\n this.options = options.options || [];\n }\n}\n\ninterface IPepAddressFieldOptions extends IPepFieldBaseOptions {\n groupFields?: PepFieldBase[];\n}\nexport class PepAddressField extends PepFieldBase {\n controlType = 'address';\n groupFields: PepFieldBase[] = null;\n\n constructor(options: IPepAddressFieldOptions = {}) {\n super(options);\n this.groupFields = options.groupFields || null;\n }\n}\n\nexport type PepInternalButtonFieldType =\n | 'button'\n | 'reference'\n | 'listofobjects';\ninterface IPepInternalButtonFieldOptions extends IPepFieldBaseOptions {\n referenceObjectType?: any;\n referenceObjectSubType?: string;\n referenceObjectInternalType?: string;\n type?: PepInternalButtonFieldType;\n}\nexport class PepInternalButtonField extends PepFieldBase {\n controlType = 'button';\n referenceObjectType;\n referenceObjectSubType = '';\n referenceObjectInternalType = '';\n type: PepInternalButtonFieldType;\n\n constructor(options: IPepInternalButtonFieldOptions = {}) {\n super(options);\n\n this.referenceObjectType = options.referenceObjectType || null;\n this.referenceObjectSubType = options.referenceObjectSubType || null;\n this.referenceObjectInternalType =\n options.referenceObjectInternalType || null;\n\n this.type = options.type || 'button';\n }\n}\n\ninterface IPepInternalPageFieldOptions extends IPepFieldBaseOptions {\n objectId?: string;\n parentId?: string;\n searchCode?: string;\n}\nexport class PepInternalPageField extends PepFieldBase {\n controlType = 'internalPage';\n objectId = '';\n parentId = '';\n searchCode = '';\n\n constructor(options: IPepInternalPageFieldOptions = {}) {\n super(options);\n this.objectId = options.objectId || '';\n this.parentId = options.parentId || '';\n this.searchCode = options.searchCode || '';\n }\n}\n\n\ninterface IPepInternalCaruselFieldOptions extends IPepFieldBaseOptions {\n searchCode?: string;\n pageInfo?: any;\n}\nexport class PepInternalCaruselField extends PepFieldBase {\n controlType = 'internalCarusel';\n searchCode = '';\n pageInfo;\n\n constructor(options: IPepInternalCaruselFieldOptions = {}) {\n super(options);\n this.searchCode = options.searchCode || '';\n\n this.update(options);\n }\n\n public update(options: IPepInternalCaruselFieldOptions): void {\n super.update(options);\n\n this.pageInfo = options.pageInfo;\n }\n}\n\n\ninterface IPepInternalMenuFieldOptions extends IPepFieldBaseOptions {\n options?: IPepOption[];\n}\nexport class PepInternalMenuField extends PepFieldBase {\n controlType = 'menu';\n options: IPepOption[] = [];\n // hasSubMenu: boolean = false;\n\n constructor(options: IPepInternalMenuFieldOptions = {}) {\n super(options);\n this.options = options.options || [];\n // this.hasSubMenu = options['hasSubMenu'];\n }\n}\n\nexport interface IPepFieldValueChangeEvent {\n key: string;\n value: string;\n controlType?: string;\n}\n\nexport interface IPepFieldClickEvent {\n key: string;\n value?: string;\n controlType?: string;\n eventWhich?: any;\n otherData?: any;\n}\n","/*\n * Public API Surface of ngx-lib/core/customizatin\n */\nexport * from './customization.model';\nexport * from './customization.service';\n","/*\n * export from ngx-lib/core/customization\n */\nexport * from './public-api';\n","/*\n * Public API Surface of ngx-lib/core/http\n */\nexport * from './services/http.service';\nexport * from './services/loader.service';\n","/*\n * export from ngx-lib/core/http\n */\nexport * from './public-api';\n","/*\n * Public API Surface of ngx-lib/core/layout\n */\nexport * from './layout.service';\nexport * from './rtl.directive';\n","/*\n * export from ngx-lib/core/layout\n */\nexport * from './public-api';\n","/*\n * Public API Surface of ngx-lib/core/portal\n */\nexport * from './attach.directive';\nexport * from './target.directive';\nexport * from './portal.service';\n","/*\n * export from ngx-lib/core/portal\n */\nexport * from './public-api';\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepScrollToService {\n public scrollElementTo(\n element: Element | Window,\n duration = 500,\n top = 0\n ): Observable<any> {\n const subject: Subject<any> = new Subject<any>();\n if (element instanceof Element || element instanceof Window) {\n this._scrollElementTo(element, duration, top, subject);\n } else {\n subject.error(\"I don't find element\");\n }\n\n return subject;\n }\n\n private _scrollElementTo(\n el: Element | Window,\n duration: number,\n top: number,\n subject: Subject<any>\n ): Observable<any> {\n if (el) {\n let startingY: number;\n if (el instanceof Window) {\n startingY = window.pageYOffset;\n } else {\n const viewportOffset = (el as Element).getBoundingClientRect();\n startingY = viewportOffset.top;\n }\n this.doScrolling(el, startingY, top, duration, subject);\n } else {\n subject.error(\"I don't find element\");\n }\n\n return subject;\n }\n\n public scrollWindowToElement(\n element: string | HTMLElement,\n duration = 500,\n offset = 0\n ): Observable<any> {\n const subject: Subject<any> = new Subject<any>();\n if (typeof element === 'string') {\n const el = document.querySelector(element as string);\n this._scrollWindowToElement(\n el as HTMLElement,\n duration,\n offset,\n subject\n );\n } else if (element instanceof HTMLElement) {\n this._scrollWindowToElement(element, duration, offset, subject);\n } else {\n subject.error(\"I don't find element\");\n }\n\n return subject;\n }\n\n private _scrollWindowToElement(\n el: HTMLElement,\n duration: number,\n offset: number,\n subject: Subject<any>\n ): Observable<any> {\n if (el) {\n const viewportOffset = el.getBoundingClientRect();\n const startingY = window.pageYOffset;\n const offsetTop = viewportOffset.top + startingY;\n this.doScrolling(\n window,\n startingY,\n offsetTop + offset,\n duration,\n subject\n );\n } else {\n subject.error(\"I don't find element\");\n }\n\n return subject;\n }\n\n private doScrolling(\n scrollingElement: Element | Window,\n startingY: number,\n elementY: number,\n duration: number,\n subject: Subject<any>\n ): void {\n const diff = elementY - startingY;\n let start;\n\n requestAnimationFrame(function step(timestamp) {\n start = !start ? timestamp : start;\n\n const time = timestamp - start;\n const percent = Math.min(time / duration, 1);\n\n scrollingElement.scrollTo(0, startingY + diff * percent);\n\n if (time < duration) {\n requestAnimationFrame(step);\n subject.next({});\n } else {\n subject.complete();\n }\n });\n }\n}\n","/*\n * Public API Surface of ngx-lib/core/scroll-to\n */\n// export * from './scroll-to.directive';\nexport * from './scroll-to.service';\n","/*\n * export from ngx-lib/core/scroll-to\n */\nexport * from './public-api';\n","/*\n * Public API Surface of ngx-lib/core\n */\nexport * from './clipboard/index';\nexport * from './common/index';\nexport * from './customization/index';\nexport * from './http/index';\nexport * from './layout/index';\nexport * from './portal/index';\nexport * from './scroll-to/index';\n","/*\n * export from ngx-lib/core\n */\nexport * from './public-api';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule, HttpClient } from '@angular/common/http';\nimport { FormBuilder, ReactiveFormsModule } from '@angular/forms';\n\nimport { httpInterceptorProviders } from './core/http/interceptors/index';\n\nimport { PepClipboardDirective } from './core/clipboard/clipboard.directive';\nconst clipboardList = [PepClipboardDirective];\n\nimport {\n PepRtlClassDirective,\n PepRtlDirectionDirective,\n} from './core/layout/rtl.directive';\nconst layoutList = [PepRtlClassDirective, PepRtlDirectionDirective];\n\nimport {\n PepCapitalizePipe,\n PepEncodePipe,\n PepEscapePipe,\n PepReplaceLineBreaksPipe,\n PepDateFormatterPipe,\n PepDateStringFormatterPipe,\n PepSafeHtmlPipe,\n PepSafePipe,\n PepSplitUppercasePipe,\n PepToNumberPipe,\n} from './core/common/pipes/common-pipes';\n\nimport { DateAgoPipe } from './core/common/pipes/date-ago.pipe';\n\nconst pipeList = [\n PepCapitalizePipe,\n PepEncodePipe,\n PepEscapePipe,\n PepReplaceLineBreaksPipe,\n PepDateFormatterPipe,\n PepDateStringFormatterPipe,\n PepSafeHtmlPipe,\n PepSafePipe,\n PepSplitUppercasePipe,\n PepToNumberPipe,\n DateAgoPipe\n];\n\nimport { PepInputAutoWidthDirective } from './core/common/directives/auto-width.directive';\nimport { PepButtonBlurDirective } from './core/common/directives/button-blur.directive';\nimport { PepButtonLoaderDirective } from './core/common/directives/button-loader.directive';\nimport { PepMenuBlurDirective } from './core/common/directives/menu-blur.directive';\nimport { PepDataQaDirective } from './core/common/directives/data-qa.directive';\n// import { PreventDoubleClickDirective } from './core/common/directives/debounce-click.directive';\nimport { PepPreventMultiClickDirective } from './core/common/directives/prevent-multi-click.directive';\nimport { PepPrintDirective } from './core/common/directives/print.directive';\nimport { PepDivLoaderDirective } from './core/common/directives/div-loader.directive';\n\nconst utilitiesList = [\n PepInputAutoWidthDirective,\n PepButtonBlurDirective,\n PepButtonLoaderDirective,\n PepMenuBlurDirective,\n PepDataQaDirective,\n // PreventDoubleClickDirective,\n PepPreventMultiClickDirective,\n PepPrintDirective,\n PepDivLoaderDirective,\n];\n\nimport { PepAttachDirective } from './core/portal/attach.directive';\nimport { PepTargetDirective } from './core/portal/target.directive';\n\nconst portalList = [PepAttachDirective, PepTargetDirective];\n\nimport { TranslateModule, TranslateService, TranslateStore } from '@ngx-translate/core';\nimport { \n PepAddonService,\n PepColorService,\n PepCookieService,\n PepDataConvertorService,\n PepFileService,\n PepJwtHelperService,\n PepSessionService,\n PepTranslateService,\n PepUtilitiesService,\n PepValidatorService,\n PepWindowScrollingService,\n PepCustomizationService,\n PepHttpService,\n PepLoaderService,\n PepLayoutService,\n PepPortalService,\n PepScrollToService,\n} from './core/index';\n\n@NgModule({\n declarations: [\n pipeList,\n utilitiesList,\n clipboardList,\n layoutList,\n portalList,\n ],\n imports: [\n CommonModule,\n HttpClientModule,\n ReactiveFormsModule,\n ],\n exports: [\n pipeList,\n utilitiesList,\n clipboardList,\n layoutList,\n portalList,\n TranslateModule,\n ],\n providers: [\n httpInterceptorProviders,\n PepAddonService,\n PepColorService,\n PepCookieService,\n PepDataConvertorService,\n PepFileService,\n PepJwtHelperService,\n PepSessionService,\n PepTranslateService,\n PepUtilitiesService,\n PepValidatorService,\n PepWindowScrollingService,\n PepCustomizationService,\n PepHttpService,\n PepLoaderService,\n PepLayoutService,\n PepPortalService,\n PepScrollToService,\n FormBuilder\n ]\n})\nexport class PepNgxLibModule {\n // static forRoot(): ModuleWithProviders<PepNgxLibModule> {\n // return {\n // ngModule: PepNgxLibModule,\n // providers: [PepCustomizationService]\n // };\n // }\n // static forRoot() {\n // return {\n // ngModule: PepNgxLibModule,\n // providers: [ PepCustomizationService ]\n // }\n // }\n}\n","/*\n * Public API Surface of ngx-lib\n */\nexport * from './ngx-lib.module';\nexport * from './core/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PepLayoutService","i1","i2.PepUtilitiesService","i1.PepJwtHelperService","i1.PepSessionService","i2.PepFileService","i1.PepPortalService","i2.PepCookieService","i3","i2.PepHttpService","i3.PepLoaderService","i4.PepTranslateService","i5.PepFileService"],"mappings":"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"}
|