@pepperi-addons/ngx-lib 0.3.15-beta.19 → 0.3.15-beta.21
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 +27 -27
- package/address/address.module.d.ts +2 -2
- package/address/pepperi-addons-ngx-lib-address.d.ts +4 -4
- package/address/public-api.d.ts +2 -2
- package/attachment/attachment.component.d.ts +82 -82
- package/attachment/attachment.module.d.ts +2 -2
- package/attachment/pepperi-addons-ngx-lib-attachment.d.ts +4 -4
- package/attachment/public-api.d.ts +2 -2
- package/bread-crumbs/bread-crumbs.component.d.ts +23 -23
- package/bread-crumbs/bread-crumbs.model.d.ts +11 -11
- package/bread-crumbs/bread-crumbs.module.d.ts +5 -5
- package/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.d.ts +4 -4
- package/bread-crumbs/public-api.d.ts +3 -3
- package/bundles/pepperi-addons-ngx-lib-address.umd.js +124 -124
- package/bundles/pepperi-addons-ngx-lib-attachment.umd.js +247 -247
- package/bundles/pepperi-addons-ngx-lib-bread-crumbs.umd.js +121 -121
- package/bundles/pepperi-addons-ngx-lib-button.umd.js +158 -158
- package/bundles/pepperi-addons-ngx-lib-carousel.umd.js +788 -788
- package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js +192 -192
- package/bundles/pepperi-addons-ngx-lib-color.umd.js +299 -299
- package/bundles/pepperi-addons-ngx-lib-date.umd.js +667 -667
- package/bundles/pepperi-addons-ngx-lib-dialog.umd.js +184 -184
- package/bundles/pepperi-addons-ngx-lib-draggable-items.umd.js +151 -151
- package/bundles/pepperi-addons-ngx-lib-field-title.umd.js +57 -57
- package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js +260 -260
- package/bundles/pepperi-addons-ngx-lib-form.umd.js +3249 -3249
- package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js +87 -87
- package/bundles/pepperi-addons-ngx-lib-icon.umd.js +681 -681
- package/bundles/pepperi-addons-ngx-lib-image.umd.js +322 -322
- package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js +422 -422
- package/bundles/pepperi-addons-ngx-lib-link.umd.js +388 -388
- package/bundles/pepperi-addons-ngx-lib-list.umd.js +3191 -3191
- package/bundles/pepperi-addons-ngx-lib-menu.umd.js +646 -646
- package/bundles/pepperi-addons-ngx-lib-page-layout.umd.js +60 -60
- package/bundles/pepperi-addons-ngx-lib-profile-data-views-list.umd.js +543 -543
- package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js +925 -925
- package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js +1181 -1170
- package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-remote-loader.umd.js +652 -652
- package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js +275 -275
- package/bundles/pepperi-addons-ngx-lib-search.umd.js +326 -326
- package/bundles/pepperi-addons-ngx-lib-select.umd.js +575 -575
- package/bundles/pepperi-addons-ngx-lib-separator.umd.js +79 -79
- package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js +163 -163
- package/bundles/pepperi-addons-ngx-lib-signature.umd.js +286 -286
- package/bundles/pepperi-addons-ngx-lib-size-detector.umd.js +113 -113
- package/bundles/pepperi-addons-ngx-lib-slider.umd.js +124 -124
- package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js +1974 -1938
- package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-snack-bar.umd.js +148 -148
- package/bundles/pepperi-addons-ngx-lib-textarea.umd.js +211 -211
- package/bundles/pepperi-addons-ngx-lib-textbox-icon.umd.js +80 -80
- package/bundles/pepperi-addons-ngx-lib-textbox.umd.js +533 -533
- package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js +129 -129
- package/bundles/pepperi-addons-ngx-lib.umd.js +4819 -4773
- package/bundles/pepperi-addons-ngx-lib.umd.js.map +1 -1
- package/button/button.component.d.ts +99 -99
- package/button/button.model.d.ts +14 -14
- package/button/button.module.d.ts +2 -2
- package/button/pepperi-addons-ngx-lib-button.d.ts +4 -4
- package/button/public-api.d.ts +3 -3
- package/carousel/carousel-item.directive.d.ts +9 -9
- package/carousel/carousel.component.d.ts +145 -145
- package/carousel/carousel.module.d.ts +2 -2
- package/carousel/pepperi-addons-ngx-lib-carousel.d.ts +4 -4
- package/carousel/public-api.d.ts +3 -3
- package/checkbox/checkbox.component.d.ts +47 -47
- package/checkbox/checkbox.module.d.ts +5 -5
- package/checkbox/pepperi-addons-ngx-lib-checkbox.d.ts +4 -4
- package/checkbox/public-api.d.ts +2 -2
- package/color/color-picker.component.d.ts +53 -53
- package/color/color.component.d.ts +26 -26
- package/color/color.model.d.ts +1 -1
- package/color/color.module.d.ts +5 -5
- package/color/pepperi-addons-ngx-lib-color.d.ts +5 -5
- package/color/public-api.d.ts +3 -3
- package/core/clipboard/clipboard.directive.d.ts +2 -2
- package/core/clipboard/clipboard.service.d.ts +2 -2
- package/core/clipboard/index.d.ts +1 -1
- package/core/clipboard/public-api.d.ts +2 -2
- package/core/common/directives/auto-width.directive.d.ts +16 -16
- package/core/common/directives/button-blur.directive.d.ts +6 -6
- package/core/common/directives/button-loader.directive.d.ts +23 -23
- package/core/common/directives/data-qa.directive.d.ts +8 -8
- package/core/common/directives/index.d.ts +1 -1
- package/core/common/directives/menu-blur.directive.d.ts +7 -7
- package/core/common/directives/prevent-multi-click.directive.d.ts +4 -4
- package/core/common/directives/print.directive.d.ts +72 -72
- package/core/common/directives/public-api.d.ts +7 -7
- package/core/common/index.d.ts +1 -1
- package/core/common/model/index.d.ts +1 -1
- package/core/common/model/papi.model.d.ts +2 -2
- package/core/common/model/public-api.d.ts +3 -3
- package/core/common/model/utilities.model.d.ts +5 -5
- package/core/common/model/wapi.model.d.ts +200 -200
- package/core/common/pipes/common-pipes.d.ts +36 -36
- package/core/common/pipes/date-ago.pipe.d.ts +8 -0
- package/core/common/pipes/index.d.ts +1 -1
- package/core/common/pipes/public-api.d.ts +2 -1
- package/core/common/public-api.d.ts +4 -4
- package/core/common/services/addon.service.d.ts +38 -38
- package/core/common/services/color.service.d.ts +48 -48
- package/core/common/services/cookie.service.d.ts +50 -50
- package/core/common/services/data-convertor.service.d.ts +41 -41
- package/core/common/services/file.service.d.ts +24 -24
- package/core/common/services/index.d.ts +1 -1
- package/core/common/services/jwt-helper.service.d.ts +10 -10
- package/core/common/services/public-api.d.ts +11 -11
- package/core/common/services/session.service.d.ts +15 -15
- package/core/common/services/translate.service.d.ts +9 -9
- package/core/common/services/utilities.service.d.ts +17 -17
- package/core/common/services/validator.service.d.ts +28 -28
- package/core/common/services/window-scrolling.service.d.ts +7 -7
- package/core/customization/customization.model.d.ts +264 -264
- package/core/customization/customization.service.d.ts +156 -156
- package/core/customization/index.d.ts +1 -1
- package/core/customization/public-api.d.ts +2 -2
- package/core/http/index.d.ts +1 -1
- package/core/http/interceptors/error.interceptor.d.ts +5 -5
- package/core/http/interceptors/index.d.ts +11 -11
- package/core/http/interceptors/loader.interceptor.d.ts +8 -8
- package/core/http/interceptors/profiler.interceptor.d.ts +5 -5
- package/core/http/public-api.d.ts +2 -2
- package/core/http/services/http.service.d.ts +25 -25
- package/core/http/services/loader.service.d.ts +10 -10
- package/core/index.d.ts +1 -1
- package/core/layout/index.d.ts +1 -1
- package/core/layout/layout.service.d.ts +33 -33
- package/core/layout/public-api.d.ts +2 -2
- package/core/layout/rtl.directive.d.ts +16 -16
- package/core/portal/attach.directive.d.ts +10 -10
- package/core/portal/index.d.ts +1 -1
- package/core/portal/portal.service.d.ts +9 -9
- package/core/portal/public-api.d.ts +3 -3
- package/core/portal/target.directive.d.ts +9 -9
- package/core/public-api.d.ts +7 -7
- package/core/scroll-to/index.d.ts +1 -1
- package/core/scroll-to/public-api.d.ts +1 -1
- package/core/scroll-to/scroll-to.service.d.ts +8 -8
- package/date/date.component.d.ts +66 -66
- package/date/date.model.d.ts +26 -26
- package/date/date.module.d.ts +5 -5
- package/date/pepperi-addons-ngx-lib-date.d.ts +5 -5
- package/date/public-api.d.ts +2 -2
- package/dialog/default-dialog.component.d.ts +9 -9
- package/dialog/dialog.component.d.ts +10 -10
- package/dialog/dialog.model.d.ts +27 -27
- package/dialog/dialog.module.d.ts +5 -5
- package/dialog/dialog.service.d.ts +24 -24
- package/dialog/pepperi-addons-ngx-lib-dialog.d.ts +5 -5
- package/dialog/public-api.d.ts +4 -4
- package/draggable-items/draggable-item/draggable-item.component.d.ts +8 -8
- package/draggable-items/draggable-items.component.d.ts +33 -33
- package/draggable-items/draggable-items.model.d.ts +7 -7
- package/draggable-items/draggable-items.module.d.ts +5 -5
- package/draggable-items/pepperi-addons-ngx-lib-draggable-items.d.ts +4 -4
- package/draggable-items/public-api.d.ts +4 -4
- package/esm2015/address/address.component.js +96 -96
- package/esm2015/address/address.module.js +30 -30
- package/esm2015/address/pepperi-addons-ngx-lib-address.js +4 -4
- package/esm2015/address/public-api.js +5 -5
- package/esm2015/attachment/attachment.component.js +208 -208
- package/esm2015/attachment/attachment.module.js +28 -28
- package/esm2015/attachment/pepperi-addons-ngx-lib-attachment.js +4 -4
- package/esm2015/attachment/public-api.js +5 -5
- package/esm2015/bread-crumbs/bread-crumbs.component.js +78 -78
- package/esm2015/bread-crumbs/bread-crumbs.model.js +6 -6
- package/esm2015/bread-crumbs/bread-crumbs.module.js +34 -34
- package/esm2015/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.js +4 -4
- package/esm2015/bread-crumbs/public-api.js +6 -6
- package/esm2015/button/button.component.js +127 -127
- package/esm2015/button/button.model.js +5 -5
- package/esm2015/button/button.module.js +26 -26
- package/esm2015/button/pepperi-addons-ngx-lib-button.js +4 -4
- package/esm2015/button/public-api.js +6 -6
- package/esm2015/carousel/carousel-item.directive.js +26 -26
- package/esm2015/carousel/carousel.component.js +699 -699
- package/esm2015/carousel/carousel.module.js +11 -11
- package/esm2015/carousel/pepperi-addons-ngx-lib-carousel.js +4 -4
- package/esm2015/carousel/public-api.js +7 -7
- package/esm2015/checkbox/checkbox.component.js +151 -151
- package/esm2015/checkbox/checkbox.module.js +39 -39
- package/esm2015/checkbox/pepperi-addons-ngx-lib-checkbox.js +4 -4
- package/esm2015/checkbox/public-api.js +5 -5
- package/esm2015/color/color-picker.component.js +197 -197
- package/esm2015/color/color.component.js +74 -74
- package/esm2015/color/color.model.js +1 -1
- package/esm2015/color/color.module.js +57 -57
- package/esm2015/color/pepperi-addons-ngx-lib-color.js +5 -5
- package/esm2015/color/public-api.js +6 -6
- package/esm2015/core/clipboard/clipboard.directive.js +19 -19
- package/esm2015/core/clipboard/clipboard.service.js +11 -11
- package/esm2015/core/clipboard/index.js +4 -4
- package/esm2015/core/clipboard/public-api.js +5 -5
- package/esm2015/core/common/directives/auto-width.directive.js +77 -77
- package/esm2015/core/common/directives/button-blur.directive.js +22 -22
- package/esm2015/core/common/directives/button-loader.directive.js +102 -102
- package/esm2015/core/common/directives/data-qa.directive.js +22 -22
- package/esm2015/core/common/directives/index.js +4 -4
- package/esm2015/core/common/directives/menu-blur.directive.js +28 -28
- package/esm2015/core/common/directives/prevent-multi-click.directive.js +21 -21
- package/esm2015/core/common/directives/print.directive.js +134 -134
- package/esm2015/core/common/directives/public-api.js +11 -11
- package/esm2015/core/common/index.js +4 -4
- package/esm2015/core/common/model/index.js +4 -4
- package/esm2015/core/common/model/papi.model.js +2 -2
- package/esm2015/core/common/model/public-api.js +6 -6
- package/esm2015/core/common/model/utilities.model.js +56 -56
- package/esm2015/core/common/model/wapi.model.js +155 -155
- package/esm2015/core/common/pipes/common-pipes.js +141 -141
- package/esm2015/core/common/pipes/date-ago.pipe.js +45 -0
- package/esm2015/core/common/pipes/index.js +4 -4
- package/esm2015/core/common/pipes/public-api.js +6 -5
- package/esm2015/core/common/public-api.js +7 -7
- package/esm2015/core/common/services/addon.service.js +160 -160
- package/esm2015/core/common/services/color.service.js +356 -356
- package/esm2015/core/common/services/cookie.service.js +147 -147
- package/esm2015/core/common/services/data-convertor.service.js +117 -117
- package/esm2015/core/common/services/file.service.js +211 -211
- package/esm2015/core/common/services/index.js +4 -4
- package/esm2015/core/common/services/jwt-helper.service.js +103 -103
- package/esm2015/core/common/services/public-api.js +14 -14
- package/esm2015/core/common/services/session.service.js +72 -72
- package/esm2015/core/common/services/translate.service.js +47 -47
- package/esm2015/core/common/services/utilities.service.js +125 -125
- package/esm2015/core/common/services/validator.service.js +272 -272
- package/esm2015/core/common/services/window-scrolling.service.js +30 -30
- package/esm2015/core/customization/customization.model.js +289 -289
- package/esm2015/core/customization/customization.service.js +777 -777
- package/esm2015/core/customization/index.js +4 -4
- package/esm2015/core/customization/public-api.js +5 -5
- package/esm2015/core/http/index.js +4 -4
- package/esm2015/core/http/interceptors/error.interceptor.js +23 -23
- package/esm2015/core/http/interceptors/index.js +23 -23
- package/esm2015/core/http/interceptors/loader.interceptor.js +32 -32
- package/esm2015/core/http/interceptors/profiler.interceptor.js +28 -28
- package/esm2015/core/http/public-api.js +5 -5
- package/esm2015/core/http/services/http.service.js +160 -160
- package/esm2015/core/http/services/loader.service.js +48 -48
- package/esm2015/core/index.js +4 -4
- package/esm2015/core/layout/index.js +4 -4
- package/esm2015/core/layout/layout.service.js +168 -168
- package/esm2015/core/layout/public-api.js +5 -5
- package/esm2015/core/layout/rtl.directive.js +46 -46
- package/esm2015/core/portal/attach.directive.js +26 -26
- package/esm2015/core/portal/index.js +4 -4
- package/esm2015/core/portal/portal.service.js +34 -34
- package/esm2015/core/portal/public-api.js +6 -6
- package/esm2015/core/portal/target.directive.js +23 -23
- package/esm2015/core/public-api.js +10 -10
- package/esm2015/core/scroll-to/index.js +4 -4
- package/esm2015/core/scroll-to/public-api.js +5 -5
- package/esm2015/core/scroll-to/scroll-to.service.js +81 -81
- package/esm2015/date/date.component.js +251 -251
- package/esm2015/date/date.model.js +44 -44
- package/esm2015/date/date.module.js +50 -50
- package/esm2015/date/pepperi-addons-ngx-lib-date.js +5 -5
- package/esm2015/date/public-api.js +5 -5
- package/esm2015/dialog/default-dialog.component.js +31 -31
- package/esm2015/dialog/dialog.component.js +28 -28
- package/esm2015/dialog/dialog.model.js +21 -21
- package/esm2015/dialog/dialog.module.js +39 -39
- package/esm2015/dialog/dialog.service.js +76 -76
- package/esm2015/dialog/pepperi-addons-ngx-lib-dialog.js +5 -5
- package/esm2015/dialog/public-api.js +7 -7
- package/esm2015/draggable-items/draggable-item/draggable-item.component.js +24 -24
- package/esm2015/draggable-items/draggable-items.component.js +91 -91
- package/esm2015/draggable-items/draggable-items.model.js +1 -1
- package/esm2015/draggable-items/draggable-items.module.js +42 -42
- package/esm2015/draggable-items/pepperi-addons-ngx-lib-draggable-items.js +4 -4
- package/esm2015/draggable-items/public-api.js +7 -7
- package/esm2015/field-title/field-title.component.js +31 -31
- package/esm2015/field-title/field-title.module.js +31 -31
- package/esm2015/field-title/pepperi-addons-ngx-lib-field-title.js +4 -4
- package/esm2015/field-title/public-api.js +5 -5
- package/esm2015/files-uploader/files-uploader.component.js +220 -220
- package/esm2015/files-uploader/files-uploader.module.js +49 -49
- package/esm2015/files-uploader/pepperi-addons-ngx-lib-files-uploader.js +4 -4
- package/esm2015/files-uploader/public-api.js +5 -5
- package/esm2015/form/field-generator.component.js +121 -121
- package/esm2015/form/form.component.js +1196 -1196
- package/esm2015/form/form.model.js +1 -1
- package/esm2015/form/form.module.js +107 -107
- package/esm2015/form/indicators.component.js +20 -20
- package/esm2015/form/internal-button.component.js +165 -165
- package/esm2015/form/internal-carusel.component.js +115 -115
- package/esm2015/form/internal-carusel.service.js +31 -31
- package/esm2015/form/internal-list.component.js +494 -494
- package/esm2015/form/internal-menu.component.js +54 -54
- package/esm2015/form/internal-page.component.js +350 -350
- package/esm2015/form/internal-page.service.js +120 -120
- package/esm2015/form/pepperi-addons-ngx-lib-form.js +13 -13
- package/esm2015/form/public-api.js +6 -6
- package/esm2015/group-buttons/group-buttons.component.js +57 -57
- package/esm2015/group-buttons/group-buttons.module.js +37 -37
- package/esm2015/group-buttons/pepperi-addons-ngx-lib-group-buttons.js +4 -4
- package/esm2015/group-buttons/public-api.js +5 -5
- package/esm2015/icon/icon-generated-all.model.js +100 -100
- package/esm2015/icon/icon-generated.model.js +389 -389
- package/esm2015/icon/icon-registry.service.js +22 -22
- package/esm2015/icon/icon.component.js +124 -124
- package/esm2015/icon/icon.module.js +14 -14
- package/esm2015/icon/icon.service.js +31 -31
- package/esm2015/icon/pepperi-addons-ngx-lib-icon.js +4 -4
- package/esm2015/icon/public-api.js +10 -10
- package/esm2015/image/image.component.js +228 -228
- package/esm2015/image/image.module.js +48 -48
- package/esm2015/image/image.service.js +54 -54
- package/esm2015/image/pepperi-addons-ngx-lib-image.js +4 -4
- package/esm2015/image/public-api.js +6 -6
- package/esm2015/images-filmstrip/images-filmstrip.component.js +372 -372
- package/esm2015/images-filmstrip/images-filmstrip.module.js +70 -70
- package/esm2015/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.js +4 -4
- package/esm2015/images-filmstrip/public-api.js +5 -5
- package/esm2015/link/link.component.js +315 -315
- package/esm2015/link/link.module.js +50 -50
- package/esm2015/link/link.pipes.js +13 -13
- package/esm2015/link/pepperi-addons-ngx-lib-link.js +5 -5
- package/esm2015/link/public-api.js +5 -5
- package/esm2015/list/list-actions.component.js +35 -35
- package/esm2015/list/list-carousel.component.js +94 -94
- package/esm2015/list/list-chooser.component.js +57 -57
- package/esm2015/list/list-pager.component.js +112 -112
- package/esm2015/list/list-sorting.component.js +54 -54
- package/esm2015/list/list-total.component.js +23 -23
- package/esm2015/list/list-views.component.js +71 -71
- package/esm2015/list/list.component.js +1127 -1127
- package/esm2015/list/list.model.js +3 -3
- package/esm2015/list/list.module.js +87 -87
- package/esm2015/list/list.pipes.js +39 -39
- package/esm2015/list/pepperi-addons-ngx-lib-list.js +6 -6
- package/esm2015/list/public-api.js +14 -14
- package/esm2015/list/virtual-scroller.js +1018 -1018
- package/esm2015/menu/menu-item.component.js +102 -102
- package/esm2015/menu/menu.component.js +173 -173
- package/esm2015/menu/menu.model.js +18 -18
- package/esm2015/menu/menu.module.js +39 -39
- package/esm2015/menu/pepperi-addons-ngx-lib-menu.js +5 -5
- package/esm2015/menu/public-api.js +6 -6
- package/esm2015/ngx-lib.module.js +79 -77
- package/esm2015/page-layout/page-layout.component.js +41 -41
- package/esm2015/page-layout/page-layout.module.js +20 -20
- package/esm2015/page-layout/pepperi-addons-ngx-lib-page-layout.js +4 -4
- package/esm2015/page-layout/public-api.js +5 -5
- package/esm2015/pepperi-addons-ngx-lib.js +8 -8
- package/esm2015/profile-data-views-list/pepperi-addons-ngx-lib-profile-data-views-list.js +4 -4
- package/esm2015/profile-data-views-list/profile-data-view/profile-data-view.component.js +38 -38
- package/esm2015/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.js +59 -59
- package/esm2015/profile-data-views-list/profile-data-views-list.component.js +86 -86
- package/esm2015/profile-data-views-list/profile-data-views-list.model.js +1 -1
- package/esm2015/profile-data-views-list/profile-data-views-list.module.js +56 -56
- package/esm2015/profile-data-views-list/public-api.js +8 -8
- package/esm2015/public-api.js +5 -5
- package/esm2015/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.js +6 -6
- package/esm2015/quantity-selector/public-api.js +5 -5
- package/esm2015/quantity-selector/quantity-selector-validation.directive.js +43 -43
- package/esm2015/quantity-selector/quantity-selector.component.js +467 -467
- package/esm2015/quantity-selector/quantity-selector.module.js +52 -52
- package/esm2015/quantity-selector/quantity-selector.pipes.js +18 -18
- package/esm2015/query-builder/common/model/field.js +1 -1
- package/esm2015/query-builder/common/model/filter.js +1 -1
- package/esm2015/query-builder/common/model/legacy.js +2 -2
- package/esm2015/query-builder/common/model/operator-unit.js +41 -41
- package/esm2015/query-builder/common/model/operator.js +266 -255
- package/esm2015/query-builder/common/model/structure.js +1 -1
- package/esm2015/query-builder/common/model/type-map.js +27 -27
- package/esm2015/query-builder/common/model/type.js +5 -5
- package/esm2015/query-builder/common/services/output-query.service.js +112 -112
- package/esm2015/query-builder/common/services/query-structure.service.js +229 -229
- package/esm2015/query-builder/common/services/type-convertor.service.js +39 -39
- package/esm2015/query-builder/pepperi-addons-ngx-lib-query-builder.js +9 -9
- package/esm2015/query-builder/public-api.js +8 -8
- package/esm2015/query-builder/query-builder-item/query-builder-item.component.js +118 -118
- package/esm2015/query-builder/query-builder-section/query-builder-section.component.js +63 -63
- package/esm2015/query-builder/query-builder.component.js +107 -107
- package/esm2015/query-builder/query-builder.module.js +34 -34
- package/esm2015/query-builder/query-builder.service.js +102 -102
- package/esm2015/remote-loader/addon-block-loader.component.js +68 -68
- package/esm2015/remote-loader/pepperi-addons-ngx-lib-remote-loader.js +4 -4
- package/esm2015/remote-loader/public-api.js +8 -8
- package/esm2015/remote-loader/remote-loader.component.js +114 -114
- package/esm2015/remote-loader/remote-loader.model.js +1 -1
- package/esm2015/remote-loader/remote-loader.module.js +35 -35
- package/esm2015/remote-loader/remote-loader.service.js +111 -111
- package/esm2015/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.js +4 -4
- package/esm2015/rich-html-textarea/public-api.js +5 -5
- package/esm2015/rich-html-textarea/rich-html-textarea.component.js +219 -219
- package/esm2015/rich-html-textarea/rich-html-textarea.module.js +56 -56
- package/esm2015/search/pepperi-addons-ngx-lib-search.js +4 -4
- package/esm2015/search/public-api.js +6 -6
- package/esm2015/search/search.component.js +273 -273
- package/esm2015/search/search.model.js +1 -1
- package/esm2015/search/search.module.js +44 -44
- package/esm2015/select/pepperi-addons-ngx-lib-select.js +4 -4
- package/esm2015/select/public-api.js +5 -5
- package/esm2015/select/select.component.js +211 -211
- package/esm2015/select/select.module.js +42 -42
- package/esm2015/separator/pepperi-addons-ngx-lib-separator.js +4 -4
- package/esm2015/separator/public-api.js +5 -5
- package/esm2015/separator/separator.component.js +62 -62
- package/esm2015/separator/separator.module.js +12 -12
- package/esm2015/side-bar/pepperi-addons-ngx-lib-side-bar.js +4 -4
- package/esm2015/side-bar/public-api.js +6 -6
- package/esm2015/side-bar/side-bar.component.js +130 -130
- package/esm2015/side-bar/side-bar.model.js +1 -1
- package/esm2015/side-bar/side-bar.module.js +33 -33
- package/esm2015/signature/pepperi-addons-ngx-lib-signature.js +4 -4
- package/esm2015/signature/public-api.js +5 -5
- package/esm2015/signature/signature.component.js +233 -233
- package/esm2015/signature/signature.module.js +54 -54
- package/esm2015/size-detector/pepperi-addons-ngx-lib-size-detector.js +4 -4
- package/esm2015/size-detector/public-api.js +5 -5
- package/esm2015/size-detector/size-detector.component.js +88 -88
- package/esm2015/size-detector/size-detector.module.js +21 -21
- package/esm2015/slider/pepperi-addons-ngx-lib-slider.js +4 -4
- package/esm2015/slider/public-api.js +5 -5
- package/esm2015/slider/slider.component.js +95 -95
- package/esm2015/slider/slider.module.js +24 -24
- package/esm2015/smart-filters/boolean-filter/boolean-filter.component.js +70 -70
- package/esm2015/smart-filters/common/filter-actions.component.js +25 -25
- package/esm2015/smart-filters/common/model/base-filter-component.js +291 -291
- package/esm2015/smart-filters/common/model/creator.js +75 -75
- package/esm2015/smart-filters/common/model/field.js +116 -116
- package/esm2015/smart-filters/common/model/filter.js +1 -1
- package/esm2015/smart-filters/common/model/operator.js +271 -282
- package/esm2015/smart-filters/common/model/type.js +2 -2
- package/esm2015/smart-filters/date-filter/date-filter.component.js +164 -156
- package/esm2015/smart-filters/multi-select-filter/multi-select-filter.component.js +191 -153
- package/esm2015/smart-filters/number-filter/number-filter.component.js +109 -109
- package/esm2015/smart-filters/pepperi-addons-ngx-lib-smart-filters.js +4 -4
- package/esm2015/smart-filters/public-api.js +18 -18
- package/esm2015/smart-filters/smart-filters.component.js +130 -130
- package/esm2015/smart-filters/smart-filters.module.js +90 -90
- package/esm2015/smart-filters/text-filter/text-filter.component.js +86 -86
- package/esm2015/snack-bar/default-snack-bar.component.js +27 -27
- package/esm2015/snack-bar/pepperi-addons-ngx-lib-snack-bar.js +5 -5
- package/esm2015/snack-bar/public-api.js +7 -7
- package/esm2015/snack-bar/snack-bar.component.js +25 -25
- package/esm2015/snack-bar/snack-bar.model.js +6 -6
- package/esm2015/snack-bar/snack-bar.module.js +41 -41
- package/esm2015/snack-bar/snack-bar.service.js +62 -62
- package/esm2015/textarea/pepperi-addons-ngx-lib-textarea.js +4 -4
- package/esm2015/textarea/public-api.js +5 -5
- package/esm2015/textarea/textarea.component.js +160 -160
- package/esm2015/textarea/textarea.module.js +50 -50
- package/esm2015/textbox/pepperi-addons-ngx-lib-textbox.js +5 -5
- package/esm2015/textbox/public-api.js +5 -5
- package/esm2015/textbox/textbox-validation.directive.js +85 -85
- package/esm2015/textbox/textbox.component.js +391 -391
- package/esm2015/textbox/textbox.module.js +44 -44
- package/esm2015/textbox-icon/pepperi-addons-ngx-lib-textbox-icon.js +4 -4
- package/esm2015/textbox-icon/public-api.js +5 -5
- package/esm2015/textbox-icon/textbox-icon.component.js +40 -40
- package/esm2015/textbox-icon/textbox-icon.module.js +46 -46
- package/esm2015/top-bar/pepperi-addons-ngx-lib-top-bar.js +4 -4
- package/esm2015/top-bar/public-api.js +6 -6
- package/esm2015/top-bar/top-bar.component.js +98 -98
- package/esm2015/top-bar/top-bar.model.js +1 -1
- package/esm2015/top-bar/top-bar.module.js +40 -40
- package/fesm2015/pepperi-addons-ngx-lib-address.js +116 -116
- package/fesm2015/pepperi-addons-ngx-lib-attachment.js +227 -227
- package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js +109 -109
- package/fesm2015/pepperi-addons-ngx-lib-button.js +149 -149
- package/fesm2015/pepperi-addons-ngx-lib-carousel.js +731 -731
- package/fesm2015/pepperi-addons-ngx-lib-checkbox.js +178 -178
- package/fesm2015/pepperi-addons-ngx-lib-color.js +295 -295
- package/fesm2015/pepperi-addons-ngx-lib-date.js +320 -320
- package/fesm2015/pepperi-addons-ngx-lib-dialog.js +170 -170
- package/fesm2015/pepperi-addons-ngx-lib-draggable-items.js +143 -143
- package/fesm2015/pepperi-addons-ngx-lib-field-title.js +55 -55
- package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js +252 -252
- package/fesm2015/pepperi-addons-ngx-lib-form.js +2693 -2693
- package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js +84 -84
- package/fesm2015/pepperi-addons-ngx-lib-icon.js +662 -662
- package/fesm2015/pepperi-addons-ngx-lib-image.js +306 -306
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js +409 -409
- package/fesm2015/pepperi-addons-ngx-lib-link.js +358 -358
- package/fesm2015/pepperi-addons-ngx-lib-list.js +2661 -2661
- package/fesm2015/pepperi-addons-ngx-lib-menu.js +314 -314
- package/fesm2015/pepperi-addons-ngx-lib-page-layout.js +55 -55
- package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.js +219 -219
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js +556 -556
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.js +1087 -1076
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-remote-loader.js +303 -303
- package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js +256 -256
- package/fesm2015/pepperi-addons-ngx-lib-search.js +301 -301
- package/fesm2015/pepperi-addons-ngx-lib-select.js +241 -241
- package/fesm2015/pepperi-addons-ngx-lib-separator.js +71 -71
- package/fesm2015/pepperi-addons-ngx-lib-side-bar.js +154 -154
- package/fesm2015/pepperi-addons-ngx-lib-signature.js +270 -270
- package/fesm2015/pepperi-addons-ngx-lib-size-detector.js +103 -103
- package/fesm2015/pepperi-addons-ngx-lib-slider.js +112 -112
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js +1539 -1504
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-snack-bar.js +137 -137
- package/fesm2015/pepperi-addons-ngx-lib-textarea.js +194 -194
- package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.js +78 -78
- package/fesm2015/pepperi-addons-ngx-lib-textbox.js +501 -501
- package/fesm2015/pepperi-addons-ngx-lib-top-bar.js +125 -125
- package/fesm2015/pepperi-addons-ngx-lib.js +4178 -4134
- package/fesm2015/pepperi-addons-ngx-lib.js.map +1 -1
- package/field-title/field-title.component.d.ts +11 -11
- package/field-title/field-title.module.d.ts +5 -5
- package/field-title/pepperi-addons-ngx-lib-field-title.d.ts +4 -4
- package/field-title/public-api.d.ts +2 -2
- package/files-uploader/files-uploader.component.d.ts +53 -53
- package/files-uploader/files-uploader.module.d.ts +5 -5
- package/files-uploader/pepperi-addons-ngx-lib-files-uploader.d.ts +4 -4
- package/files-uploader/public-api.d.ts +2 -2
- package/form/field-generator.component.d.ts +36 -36
- package/form/form.component.d.ts +90 -90
- package/form/form.model.d.ts +20 -20
- package/form/form.module.d.ts +5 -5
- package/form/indicators.component.d.ts +7 -7
- package/form/internal-button.component.d.ts +39 -39
- package/form/internal-carusel.component.d.ts +38 -38
- package/form/internal-carusel.service.d.ts +7 -7
- package/form/internal-list.component.d.ts +92 -92
- package/form/internal-menu.component.d.ts +16 -16
- package/form/internal-page.component.d.ts +72 -72
- package/form/internal-page.service.d.ts +19 -19
- package/form/pepperi-addons-ngx-lib-form.d.ts +13 -13
- package/form/public-api.d.ts +3 -3
- package/group-buttons/group-buttons.component.d.ts +20 -20
- package/group-buttons/group-buttons.module.d.ts +5 -5
- package/group-buttons/pepperi-addons-ngx-lib-group-buttons.d.ts +4 -4
- package/group-buttons/public-api.d.ts +2 -2
- package/icon/icon-generated-all.model.d.ts +99 -99
- package/icon/icon-generated.model.d.ts +394 -394
- package/icon/icon-registry.service.d.ts +6 -6
- package/icon/icon.component.d.ts +46 -46
- package/icon/icon.module.d.ts +2 -2
- package/icon/icon.service.d.ts +10 -10
- package/icon/pepperi-addons-ngx-lib-icon.d.ts +4 -4
- package/icon/public-api.d.ts +6 -6
- package/image/image.component.d.ts +63 -63
- package/image/image.module.d.ts +5 -5
- package/image/image.service.d.ts +11 -11
- package/image/pepperi-addons-ngx-lib-image.d.ts +4 -4
- package/image/public-api.d.ts +3 -3
- package/images-filmstrip/images-filmstrip.component.d.ts +84 -84
- package/images-filmstrip/images-filmstrip.module.d.ts +5 -5
- package/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.d.ts +4 -4
- package/images-filmstrip/public-api.d.ts +2 -2
- package/link/link.component.d.ts +131 -131
- package/link/link.module.d.ts +5 -5
- package/link/link.pipes.d.ts +4 -4
- package/link/pepperi-addons-ngx-lib-link.d.ts +5 -5
- package/link/public-api.d.ts +2 -2
- package/list/list-actions.component.d.ts +14 -14
- package/list/list-carousel.component.d.ts +36 -36
- package/list/list-chooser.component.d.ts +25 -25
- package/list/list-pager.component.d.ts +35 -35
- package/list/list-sorting.component.d.ts +26 -26
- package/list/list-total.component.d.ts +7 -7
- package/list/list-views.component.d.ts +31 -31
- package/list/list.component.d.ts +161 -161
- package/list/list.model.d.ts +31 -31
- package/list/list.module.d.ts +5 -5
- package/list/list.pipes.d.ts +11 -11
- package/list/pepperi-addons-ngx-lib-list.d.ts +6 -6
- package/list/public-api.d.ts +10 -10
- package/list/virtual-scroller.d.ts +176 -176
- package/menu/menu-item.component.d.ts +25 -25
- package/menu/menu.component.d.ts +43 -43
- package/menu/menu.model.d.ts +25 -25
- package/menu/menu.module.d.ts +5 -5
- package/menu/pepperi-addons-ngx-lib-menu.d.ts +5 -5
- package/menu/public-api.d.ts +3 -3
- package/ngx-lib.module.d.ts +2 -2
- package/package.json +1 -1
- package/page-layout/page-layout.component.d.ts +16 -16
- package/page-layout/page-layout.module.d.ts +2 -2
- package/page-layout/pepperi-addons-ngx-lib-page-layout.d.ts +4 -4
- package/page-layout/public-api.d.ts +2 -2
- package/pepperi-addons-ngx-lib.d.ts +8 -8
- package/pepperi-addons-ngx-lib.metadata.json +1 -1
- package/profile-data-views-list/pepperi-addons-ngx-lib-profile-data-views-list.d.ts +4 -4
- package/profile-data-views-list/profile-data-view/profile-data-view.component.d.ts +15 -15
- package/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.d.ts +21 -21
- package/profile-data-views-list/profile-data-views-list.component.d.ts +32 -32
- package/profile-data-views-list/profile-data-views-list.model.d.ts +18 -18
- package/profile-data-views-list/profile-data-views-list.module.d.ts +5 -5
- package/profile-data-views-list/public-api.d.ts +5 -5
- package/public-api.d.ts +2 -2
- package/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.d.ts +6 -6
- package/quantity-selector/public-api.d.ts +2 -2
- package/quantity-selector/quantity-selector-validation.directive.d.ts +13 -13
- package/quantity-selector/quantity-selector.component.d.ts +98 -98
- package/quantity-selector/quantity-selector.module.d.ts +5 -5
- package/quantity-selector/quantity-selector.pipes.d.ts +4 -4
- package/query-builder/common/model/field.d.ts +8 -8
- package/query-builder/common/model/filter.d.ts +6 -6
- package/query-builder/common/model/legacy.d.ts +29 -29
- package/query-builder/common/model/operator-unit.d.ts +13 -13
- package/query-builder/common/model/operator.d.ts +21 -21
- package/query-builder/common/model/structure.d.ts +4 -4
- package/query-builder/common/model/type-map.d.ts +12 -12
- package/query-builder/common/model/type.d.ts +4 -4
- package/query-builder/common/services/output-query.service.d.ts +44 -44
- package/query-builder/common/services/query-structure.service.d.ts +78 -78
- package/query-builder/common/services/type-convertor.service.d.ts +10 -10
- package/query-builder/pepperi-addons-ngx-lib-query-builder.d.ts +9 -9
- package/query-builder/pepperi-addons-ngx-lib-query-builder.metadata.json +1 -1
- package/query-builder/public-api.d.ts +5 -5
- package/query-builder/query-builder-item/query-builder-item.component.d.ts +38 -38
- package/query-builder/query-builder-section/query-builder-section.component.d.ts +27 -27
- package/query-builder/query-builder.component.d.ts +36 -36
- package/query-builder/query-builder.module.d.ts +2 -2
- package/query-builder/query-builder.service.d.ts +27 -27
- package/remote-loader/addon-block-loader.component.d.ts +25 -25
- package/remote-loader/pepperi-addons-ngx-lib-remote-loader.d.ts +4 -4
- package/remote-loader/public-api.d.ts +5 -5
- package/remote-loader/remote-loader.component.d.ts +24 -24
- package/remote-loader/remote-loader.model.d.ts +34 -34
- package/remote-loader/remote-loader.module.d.ts +2 -2
- package/remote-loader/remote-loader.service.d.ts +23 -23
- package/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.d.ts +4 -4
- package/rich-html-textarea/public-api.d.ts +2 -2
- package/rich-html-textarea/rich-html-textarea.component.d.ts +75 -75
- package/rich-html-textarea/rich-html-textarea.module.d.ts +5 -5
- package/search/pepperi-addons-ngx-lib-search.d.ts +4 -4
- package/search/public-api.d.ts +3 -3
- package/search/search.component.d.ts +61 -61
- package/search/search.model.d.ts +14 -14
- package/search/search.module.d.ts +5 -5
- package/select/pepperi-addons-ngx-lib-select.d.ts +4 -4
- package/select/public-api.d.ts +2 -2
- package/select/select.component.d.ts +50 -50
- package/select/select.module.d.ts +5 -5
- package/separator/pepperi-addons-ngx-lib-separator.d.ts +4 -4
- package/separator/public-api.d.ts +2 -2
- package/separator/separator.component.d.ts +19 -19
- package/separator/separator.module.d.ts +2 -2
- package/side-bar/pepperi-addons-ngx-lib-side-bar.d.ts +4 -4
- package/side-bar/public-api.d.ts +3 -3
- package/side-bar/side-bar.component.d.ts +38 -38
- package/side-bar/side-bar.model.d.ts +4 -4
- package/side-bar/side-bar.module.d.ts +5 -5
- package/signature/pepperi-addons-ngx-lib-signature.d.ts +4 -4
- package/signature/public-api.d.ts +2 -2
- package/signature/signature.component.d.ts +65 -65
- package/signature/signature.module.d.ts +5 -5
- package/size-detector/pepperi-addons-ngx-lib-size-detector.d.ts +4 -4
- package/size-detector/public-api.d.ts +2 -2
- package/size-detector/size-detector.component.d.ts +26 -26
- package/size-detector/size-detector.module.d.ts +2 -2
- package/slider/pepperi-addons-ngx-lib-slider.d.ts +4 -4
- package/slider/public-api.d.ts +2 -2
- package/slider/slider.component.d.ts +36 -36
- package/slider/slider.module.d.ts +2 -2
- package/smart-filters/boolean-filter/boolean-filter.component.d.ts +25 -26
- package/smart-filters/common/filter-actions.component.d.ts +9 -9
- package/smart-filters/common/model/base-filter-component.d.ts +70 -70
- package/smart-filters/common/model/creator.d.ts +6 -6
- package/smart-filters/common/model/field.d.ts +69 -69
- package/smart-filters/common/model/filter.d.ts +11 -11
- package/smart-filters/common/model/operator.d.ts +51 -50
- package/smart-filters/common/model/type.d.ts +4 -4
- package/smart-filters/date-filter/date-filter.component.d.ts +56 -54
- package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +53 -39
- package/smart-filters/number-filter/number-filter.component.d.ts +48 -47
- package/smart-filters/pepperi-addons-ngx-lib-smart-filters.d.ts +4 -4
- package/smart-filters/pepperi-addons-ngx-lib-smart-filters.metadata.json +1 -1
- package/smart-filters/public-api.d.ts +14 -14
- package/smart-filters/smart-filters.component.d.ts +32 -32
- package/smart-filters/smart-filters.module.d.ts +5 -5
- package/smart-filters/text-filter/text-filter.component.d.ts +25 -26
- package/snack-bar/default-snack-bar.component.d.ts +10 -10
- package/snack-bar/pepperi-addons-ngx-lib-snack-bar.d.ts +5 -5
- package/snack-bar/public-api.d.ts +4 -4
- package/snack-bar/snack-bar.component.d.ts +9 -9
- package/snack-bar/snack-bar.model.d.ts +8 -8
- package/snack-bar/snack-bar.module.d.ts +5 -5
- package/snack-bar/snack-bar.service.d.ts +21 -21
- package/src/assets/i18n/en.ngx-lib.json +16 -1
- package/textarea/pepperi-addons-ngx-lib-textarea.d.ts +4 -4
- package/textarea/public-api.d.ts +2 -2
- package/textarea/textarea.component.d.ts +51 -51
- package/textarea/textarea.module.d.ts +5 -5
- package/textbox/pepperi-addons-ngx-lib-textbox.d.ts +5 -5
- package/textbox/public-api.d.ts +2 -2
- package/textbox/textbox-validation.directive.d.ts +18 -18
- package/textbox/textbox.component.d.ts +134 -134
- package/textbox/textbox.module.d.ts +5 -5
- package/textbox-icon/pepperi-addons-ngx-lib-textbox-icon.d.ts +4 -4
- package/textbox-icon/public-api.d.ts +2 -2
- package/textbox-icon/textbox-icon.component.d.ts +10 -10
- package/textbox-icon/textbox-icon.module.d.ts +5 -5
- package/top-bar/pepperi-addons-ngx-lib-top-bar.d.ts +4 -4
- package/top-bar/public-api.d.ts +3 -3
- package/top-bar/top-bar.component.d.ts +36 -36
- package/top-bar/top-bar.model.d.ts +4 -4
- package/top-bar/top-bar.module.d.ts +5 -5
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
3
|
+
export class DateAgoPipe {
|
|
4
|
+
constructor(translateService) {
|
|
5
|
+
this.translateService = translateService;
|
|
6
|
+
}
|
|
7
|
+
getCounterTranslation(counter, key) {
|
|
8
|
+
const intervalText = this.translateService.get(`DATE_AGO.${key.toUpperCase()}`) || key;
|
|
9
|
+
const agoText = this.translateService.get(counter === 1 ? 'DATE_AGO.SINGULAR' : 'DATE_AGO.PLURAL') || counter === 1 ? ' ago' : 's ago';
|
|
10
|
+
return `${intervalText}${agoText}`;
|
|
11
|
+
}
|
|
12
|
+
transform(value, args) {
|
|
13
|
+
if (value) {
|
|
14
|
+
const seconds = Math.floor((+new Date() - +new Date(value)) / 1000);
|
|
15
|
+
if (seconds < 29) // less than 30 seconds ago will show as 'Just now'
|
|
16
|
+
return this.translateService.get('DATE_AGO.JUST_NOW') || 'Just now';
|
|
17
|
+
const intervals = {
|
|
18
|
+
'year': 31536000,
|
|
19
|
+
'month': 2592000,
|
|
20
|
+
'week': 604800,
|
|
21
|
+
'day': 86400,
|
|
22
|
+
'hour': 3600,
|
|
23
|
+
'minute': 60,
|
|
24
|
+
'second': 1
|
|
25
|
+
};
|
|
26
|
+
let counter;
|
|
27
|
+
for (const i in intervals) {
|
|
28
|
+
counter = Math.floor(seconds / intervals[i]);
|
|
29
|
+
if (counter > 0) {
|
|
30
|
+
this.getCounterTranslation(counter, i);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return value;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
DateAgoPipe.decorators = [
|
|
38
|
+
{ type: Pipe, args: [{
|
|
39
|
+
name: 'dateAgo'
|
|
40
|
+
},] }
|
|
41
|
+
];
|
|
42
|
+
DateAgoPipe.ctorParameters = () => [
|
|
43
|
+
{ type: TranslateService }
|
|
44
|
+
];
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1hZ28ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL3BpcGVzL2RhdGUtYWdvLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFLdkQsTUFBTSxPQUFPLFdBQVc7SUFDcEIsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFBRyxDQUFDO0lBRWxELHFCQUFxQixDQUFDLE9BQWUsRUFBRSxHQUFXO1FBQ3RELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsWUFBWSxHQUFHLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQztRQUN2RixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3ZJLE9BQU8sR0FBRyxZQUFZLEdBQUcsT0FBTyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFVLEVBQUUsSUFBVTtRQUM1QixJQUFJLEtBQUssRUFBRTtZQUNQLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ3BFLElBQUksT0FBTyxHQUFHLEVBQUUsRUFBRSxtREFBbUQ7Z0JBQ2pFLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLFVBQVUsQ0FBQztZQUN4RSxNQUFNLFNBQVMsR0FBOEI7Z0JBQ3pDLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixPQUFPLEVBQUUsT0FBTztnQkFDaEIsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osTUFBTSxFQUFFLElBQUk7Z0JBQ1osUUFBUSxFQUFFLEVBQUU7Z0JBQ1osUUFBUSxFQUFFLENBQUM7YUFDZCxDQUFDO1lBQ0YsSUFBSSxPQUFPLENBQUM7WUFDWixLQUFLLE1BQU0sQ0FBQyxJQUFJLFNBQVMsRUFBRTtnQkFDdkIsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM3QyxJQUFJLE9BQU8sR0FBRyxDQUFDLEVBQUU7b0JBQ2IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDMUM7YUFDSjtTQUNKO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQzs7O1lBbkNKLElBQUksU0FBQztnQkFDRixJQUFJLEVBQUUsU0FBUzthQUNsQjs7O1lBSlEsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5cclxuQFBpcGUoe1xyXG4gICAgbmFtZTogJ2RhdGVBZ28nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRlQWdvUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxyXG5cclxuICAgIHByaXZhdGUgZ2V0Q291bnRlclRyYW5zbGF0aW9uKGNvdW50ZXI6IG51bWJlciwga2V5OiBzdHJpbmcpIHtcclxuICAgICAgICBjb25zdCBpbnRlcnZhbFRleHQgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KGBEQVRFX0FHTy4ke2tleS50b1VwcGVyQ2FzZSgpfWApIHx8IGtleTtcclxuICAgICAgICBjb25zdCBhZ29UZXh0ID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldChjb3VudGVyID09PSAxID8gJ0RBVEVfQUdPLlNJTkdVTEFSJyA6ICdEQVRFX0FHTy5QTFVSQUwnKSB8fCBjb3VudGVyID09PSAxID8gJyBhZ28nIDogJ3MgYWdvJztcclxuICAgICAgICByZXR1cm4gYCR7aW50ZXJ2YWxUZXh0fSR7YWdvVGV4dH1gO1xyXG4gICAgfVxyXG5cclxuICAgIHRyYW5zZm9ybSh2YWx1ZTogYW55LCBhcmdzPzogYW55KTogYW55IHtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgY29uc3Qgc2Vjb25kcyA9IE1hdGguZmxvb3IoKCtuZXcgRGF0ZSgpIC0gK25ldyBEYXRlKHZhbHVlKSkgLyAxMDAwKTtcclxuICAgICAgICAgICAgaWYgKHNlY29uZHMgPCAyOSkgLy8gbGVzcyB0aGFuIDMwIHNlY29uZHMgYWdvIHdpbGwgc2hvdyBhcyAnSnVzdCBub3cnXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCgnREFURV9BR08uSlVTVF9OT1cnKSB8fCAnSnVzdCBub3cnO1xyXG4gICAgICAgICAgICBjb25zdCBpbnRlcnZhbHM6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7XHJcbiAgICAgICAgICAgICAgICAneWVhcic6IDMxNTM2MDAwLFxyXG4gICAgICAgICAgICAgICAgJ21vbnRoJzogMjU5MjAwMCxcclxuICAgICAgICAgICAgICAgICd3ZWVrJzogNjA0ODAwLFxyXG4gICAgICAgICAgICAgICAgJ2RheSc6IDg2NDAwLFxyXG4gICAgICAgICAgICAgICAgJ2hvdXInOiAzNjAwLFxyXG4gICAgICAgICAgICAgICAgJ21pbnV0ZSc6IDYwLFxyXG4gICAgICAgICAgICAgICAgJ3NlY29uZCc6IDFcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgbGV0IGNvdW50ZXI7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgaSBpbiBpbnRlcnZhbHMpIHtcclxuICAgICAgICAgICAgICAgIGNvdW50ZXIgPSBNYXRoLmZsb29yKHNlY29uZHMgLyBpbnRlcnZhbHNbaV0pO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvdW50ZXIgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRDb3VudGVyVHJhbnNsYXRpb24oY291bnRlciwgaSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG5cclxufSJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* export from ngx-lib/core/common/pipes
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
1
|
+
/*
|
|
2
|
+
* export from ngx-lib/core/common/pipes
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
5
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NyYy9jb3JlL2NvbW1vbi9waXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIGV4cG9ydCBmcm9tIG5neC1saWIvY29yZS9jb21tb24vcGlwZXNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of ngx-lib/core/common/pipes
|
|
3
|
-
*/
|
|
4
|
-
export * from './common-pipes';
|
|
5
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of ngx-lib/core/common/pipes
|
|
3
|
+
*/
|
|
4
|
+
export * from './common-pipes';
|
|
5
|
+
export * from './date-ago.pipe';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL3BpcGVzL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5neC1saWIvY29yZS9jb21tb24vcGlwZXNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9jb21tb24tcGlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRlLWFnby5waXBlJztcbiJdfQ==
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of ngx-lib/core/common
|
|
3
|
-
*/
|
|
4
|
-
export * from './directives/index';
|
|
5
|
-
export * from './model/index';
|
|
6
|
-
export * from './pipes/index';
|
|
7
|
-
export * from './services/index';
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of ngx-lib/core/common
|
|
3
|
+
*/
|
|
4
|
+
export * from './directives/index';
|
|
5
|
+
export * from './model/index';
|
|
6
|
+
export * from './pipes/index';
|
|
7
|
+
export * from './services/index';
|
|
8
8
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5neC1saWIvY29yZS9jb21tb25cbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2luZGV4JztcbiJdfQ==
|
|
@@ -1,161 +1,161 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { ActivatedRoute } from '@angular/router';
|
|
3
|
-
import { PepSessionService } from './session.service';
|
|
4
|
-
import { PepFileService } from './file.service';
|
|
5
|
-
import { PepHttpService } from '../../http/services/http.service';
|
|
6
|
-
import { PepLoaderService } from '../../http/services/loader.service';
|
|
7
|
-
import { PepTranslateService } from './translate.service';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "./session.service";
|
|
10
|
-
import * as i2 from "../../http/services/http.service";
|
|
11
|
-
import * as i3 from "../../http/services/loader.service";
|
|
12
|
-
import * as i4 from "./translate.service";
|
|
13
|
-
import * as i5 from "./file.service";
|
|
14
|
-
import * as i6 from "@angular/router";
|
|
15
|
-
/*
|
|
16
|
-
This service is the webapp api for addon usege.
|
|
17
|
-
*/
|
|
18
|
-
export class PepAddonService {
|
|
19
|
-
constructor(sessionService, httpService, loaderService, translateService, fileService, route) {
|
|
20
|
-
this.sessionService = sessionService;
|
|
21
|
-
this.httpService = httpService;
|
|
22
|
-
this.loaderService = loaderService;
|
|
23
|
-
this.translateService = translateService;
|
|
24
|
-
this.fileService = fileService;
|
|
25
|
-
this.route = route;
|
|
26
|
-
this.PAGES_ADDON_UUID = '50062e0c-9967-4ed4-9102-f2bc50602d41';
|
|
27
|
-
this.ADDON_ASSETS_PATH_KEY = 'AddonAssetsPath';
|
|
28
|
-
this.ADDONS_DICTIONARY_ASSETS_PATH_KEY = 'AddonsDictionaryAssetsPath';
|
|
29
|
-
this.ADDON_API_RELATIVE_PATH = '/addons/api';
|
|
30
|
-
this.ADDON_API_ASYNC_RELATIVE_PATH = `${this.ADDON_API_RELATIVE_PATH}/async`;
|
|
31
|
-
//
|
|
32
|
-
}
|
|
33
|
-
get devServer() {
|
|
34
|
-
return this.route.snapshot.queryParamMap.get('devServer') === 'true';
|
|
35
|
-
}
|
|
36
|
-
getAddonBaseRelativePath(isAsync = false) {
|
|
37
|
-
return isAsync
|
|
38
|
-
? this.ADDON_API_ASYNC_RELATIVE_PATH
|
|
39
|
-
: this.ADDON_API_RELATIVE_PATH;
|
|
40
|
-
}
|
|
41
|
-
getAddonStaticFolder(subAddonUUID = '') {
|
|
42
|
-
if (subAddonUUID.length > 0) {
|
|
43
|
-
const addonsDictionary = this.sessionService.getObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY);
|
|
44
|
-
return addonsDictionary && addonsDictionary[subAddonUUID] ? addonsDictionary[subAddonUUID] : '';
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
return this.sessionService.getObject(this.ADDON_ASSETS_PATH_KEY) || '';
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
setAddonStaticFolder(path, subAddonUUID = '') {
|
|
51
|
-
var _a;
|
|
52
|
-
if (subAddonUUID.length > 0) {
|
|
53
|
-
const addonsDictionary = (_a = this.sessionService.getObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY)) !== null && _a !== void 0 ? _a : {};
|
|
54
|
-
addonsDictionary[subAddonUUID] = path;
|
|
55
|
-
this.sessionService.setObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY, addonsDictionary);
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
return this.sessionService.setObject(this.ADDON_ASSETS_PATH_KEY, path);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
getServerBaseUrl(addonUUID, fileName = '', isAsync = false, localhostPort = 4500) {
|
|
62
|
-
const fileToAdd = fileName.length > 0 ? `/${fileName}` : '';
|
|
63
|
-
// For devServer run server on localhost.
|
|
64
|
-
if (this.devServer) {
|
|
65
|
-
return `http://localhost:${localhostPort}${fileToAdd}`;
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
const baseUrl = this.sessionService.getPapiBaseUrl();
|
|
69
|
-
return `${baseUrl}${this.getAddonBaseRelativePath(isAsync)}/${addonUUID}${fileToAdd}`;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
getAddonApiCall(addonUUID, fileName, functionName, httpOptions = {}, isAsync = false) {
|
|
73
|
-
// return this.httpService.getPapiApiCall(
|
|
74
|
-
// `${this.getAddonBaseRelativePath(
|
|
75
|
-
// isAsync
|
|
76
|
-
// )}/${addonUUID}/${fileName}/${functionName}`,
|
|
77
|
-
// httpOptions
|
|
78
|
-
// );
|
|
79
|
-
const papiBaseUrl = this.getServerBaseUrl(addonUUID, fileName, isAsync);
|
|
80
|
-
return this.httpService.getHttpCall(`${papiBaseUrl}/${functionName}`, httpOptions);
|
|
81
|
-
}
|
|
82
|
-
postAddonApiCall(addonUUID, fileName, functionName, body = {}, httpOptions = {}, isAsync = false) {
|
|
83
|
-
// return this.httpService.postPapiApiCall(
|
|
84
|
-
// `${this.getAddonBaseRelativePath(
|
|
85
|
-
// isAsync
|
|
86
|
-
// )}/${addonUUID}/${fileName}/${functionName}`,
|
|
87
|
-
// body,
|
|
88
|
-
// httpOptions
|
|
89
|
-
// );
|
|
90
|
-
const papiBaseUrl = this.getServerBaseUrl(addonUUID, fileName, isAsync);
|
|
91
|
-
return this.httpService.postHttpCall(`${papiBaseUrl}/${functionName}`, body, httpOptions);
|
|
92
|
-
}
|
|
93
|
-
// TODO: need to chek this if the loader is working.
|
|
94
|
-
fetch(input, init) {
|
|
95
|
-
this.loaderService.show();
|
|
96
|
-
return window.fetch(input, init).finally(() => {
|
|
97
|
-
this.loaderService.hide();
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
getNgxLibTranslationResource(subAddonUUID = '', libName = 'ngx-lib') {
|
|
101
|
-
const addonStaticFolder = this.getAddonStaticFolder(subAddonUUID);
|
|
102
|
-
const translationsPath = this.fileService.getAssetsTranslationsPath(addonStaticFolder, libName);
|
|
103
|
-
const translationsSuffix = this.fileService.getAssetsTranslationsSuffix(libName);
|
|
104
|
-
return {
|
|
105
|
-
prefix: translationsPath,
|
|
106
|
-
suffix: translationsSuffix,
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
getAddonTranslationResource(subAddonUUID = '') {
|
|
110
|
-
const addonStaticFolder = this.getAddonStaticFolder(subAddonUUID);
|
|
111
|
-
const defaultSubFolder = 'assets/i18n/';
|
|
112
|
-
return {
|
|
113
|
-
prefix: addonStaticFolder.length > 0 ? `${addonStaticFolder}${defaultSubFolder}` : `/${defaultSubFolder}`,
|
|
114
|
-
suffix: '.json',
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
setDefaultTranslateLang(translate, urlLangParam = 'userLang') {
|
|
118
|
-
this.translateService.setDefaultTranslateLang(translate, urlLangParam);
|
|
119
|
-
}
|
|
120
|
-
getPagesAddonUUID() {
|
|
121
|
-
return this.PAGES_ADDON_UUID;
|
|
122
|
-
}
|
|
123
|
-
// Deprecated need to delete in next major.
|
|
124
|
-
static createDefaultMultiTranslateLoader(http, fileService, addonService, subAddonUUID = '') {
|
|
125
|
-
const ngxLibTranslationResource = addonService.getNgxLibTranslationResource(subAddonUUID);
|
|
126
|
-
const addonTranslationResource = addonService.getAddonTranslationResource(subAddonUUID);
|
|
127
|
-
return addonService.translateService.createMultiTranslateLoader([
|
|
128
|
-
ngxLibTranslationResource,
|
|
129
|
-
addonTranslationResource
|
|
130
|
-
]);
|
|
131
|
-
}
|
|
132
|
-
static createMultiTranslateLoader(addonService, libsName = ['ngx-lib'], subAddonUUID = '') {
|
|
133
|
-
const ngxLibTranslationResources = [];
|
|
134
|
-
if ((libsName === null || libsName === void 0 ? void 0 : libsName.length) > 0) {
|
|
135
|
-
for (let index = 0; index < libsName.length; index++) {
|
|
136
|
-
const libName = libsName[index];
|
|
137
|
-
ngxLibTranslationResources.push(addonService.getNgxLibTranslationResource(subAddonUUID, libName));
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
const addonTranslationResource = addonService.getAddonTranslationResource(subAddonUUID);
|
|
141
|
-
return addonService.translateService.createMultiTranslateLoader([
|
|
142
|
-
...ngxLibTranslationResources,
|
|
143
|
-
addonTranslationResource
|
|
144
|
-
]);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
PepAddonService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PepAddonService_Factory() { return new PepAddonService(i0.ɵɵinject(i1.PepSessionService), i0.ɵɵinject(i2.PepHttpService), i0.ɵɵinject(i3.PepLoaderService), i0.ɵɵinject(i4.PepTranslateService), i0.ɵɵinject(i5.PepFileService), i0.ɵɵinject(i6.ActivatedRoute)); }, token: PepAddonService, providedIn: "root" });
|
|
148
|
-
PepAddonService.decorators = [
|
|
149
|
-
{ type: Injectable, args: [{
|
|
150
|
-
providedIn: 'root',
|
|
151
|
-
},] }
|
|
152
|
-
];
|
|
153
|
-
PepAddonService.ctorParameters = () => [
|
|
154
|
-
{ type: PepSessionService },
|
|
155
|
-
{ type: PepHttpService },
|
|
156
|
-
{ type: PepLoaderService },
|
|
157
|
-
{ type: PepTranslateService },
|
|
158
|
-
{ type: PepFileService },
|
|
159
|
-
{ type: ActivatedRoute }
|
|
160
|
-
];
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { ActivatedRoute } from '@angular/router';
|
|
3
|
+
import { PepSessionService } from './session.service';
|
|
4
|
+
import { PepFileService } from './file.service';
|
|
5
|
+
import { PepHttpService } from '../../http/services/http.service';
|
|
6
|
+
import { PepLoaderService } from '../../http/services/loader.service';
|
|
7
|
+
import { PepTranslateService } from './translate.service';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "./session.service";
|
|
10
|
+
import * as i2 from "../../http/services/http.service";
|
|
11
|
+
import * as i3 from "../../http/services/loader.service";
|
|
12
|
+
import * as i4 from "./translate.service";
|
|
13
|
+
import * as i5 from "./file.service";
|
|
14
|
+
import * as i6 from "@angular/router";
|
|
15
|
+
/*
|
|
16
|
+
This service is the webapp api for addon usege.
|
|
17
|
+
*/
|
|
18
|
+
export class PepAddonService {
|
|
19
|
+
constructor(sessionService, httpService, loaderService, translateService, fileService, route) {
|
|
20
|
+
this.sessionService = sessionService;
|
|
21
|
+
this.httpService = httpService;
|
|
22
|
+
this.loaderService = loaderService;
|
|
23
|
+
this.translateService = translateService;
|
|
24
|
+
this.fileService = fileService;
|
|
25
|
+
this.route = route;
|
|
26
|
+
this.PAGES_ADDON_UUID = '50062e0c-9967-4ed4-9102-f2bc50602d41';
|
|
27
|
+
this.ADDON_ASSETS_PATH_KEY = 'AddonAssetsPath';
|
|
28
|
+
this.ADDONS_DICTIONARY_ASSETS_PATH_KEY = 'AddonsDictionaryAssetsPath';
|
|
29
|
+
this.ADDON_API_RELATIVE_PATH = '/addons/api';
|
|
30
|
+
this.ADDON_API_ASYNC_RELATIVE_PATH = `${this.ADDON_API_RELATIVE_PATH}/async`;
|
|
31
|
+
//
|
|
32
|
+
}
|
|
33
|
+
get devServer() {
|
|
34
|
+
return this.route.snapshot.queryParamMap.get('devServer') === 'true';
|
|
35
|
+
}
|
|
36
|
+
getAddonBaseRelativePath(isAsync = false) {
|
|
37
|
+
return isAsync
|
|
38
|
+
? this.ADDON_API_ASYNC_RELATIVE_PATH
|
|
39
|
+
: this.ADDON_API_RELATIVE_PATH;
|
|
40
|
+
}
|
|
41
|
+
getAddonStaticFolder(subAddonUUID = '') {
|
|
42
|
+
if (subAddonUUID.length > 0) {
|
|
43
|
+
const addonsDictionary = this.sessionService.getObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY);
|
|
44
|
+
return addonsDictionary && addonsDictionary[subAddonUUID] ? addonsDictionary[subAddonUUID] : '';
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
return this.sessionService.getObject(this.ADDON_ASSETS_PATH_KEY) || '';
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
setAddonStaticFolder(path, subAddonUUID = '') {
|
|
51
|
+
var _a;
|
|
52
|
+
if (subAddonUUID.length > 0) {
|
|
53
|
+
const addonsDictionary = (_a = this.sessionService.getObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY)) !== null && _a !== void 0 ? _a : {};
|
|
54
|
+
addonsDictionary[subAddonUUID] = path;
|
|
55
|
+
this.sessionService.setObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY, addonsDictionary);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
return this.sessionService.setObject(this.ADDON_ASSETS_PATH_KEY, path);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
getServerBaseUrl(addonUUID, fileName = '', isAsync = false, localhostPort = 4500) {
|
|
62
|
+
const fileToAdd = fileName.length > 0 ? `/${fileName}` : '';
|
|
63
|
+
// For devServer run server on localhost.
|
|
64
|
+
if (this.devServer) {
|
|
65
|
+
return `http://localhost:${localhostPort}${fileToAdd}`;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
const baseUrl = this.sessionService.getPapiBaseUrl();
|
|
69
|
+
return `${baseUrl}${this.getAddonBaseRelativePath(isAsync)}/${addonUUID}${fileToAdd}`;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
getAddonApiCall(addonUUID, fileName, functionName, httpOptions = {}, isAsync = false) {
|
|
73
|
+
// return this.httpService.getPapiApiCall(
|
|
74
|
+
// `${this.getAddonBaseRelativePath(
|
|
75
|
+
// isAsync
|
|
76
|
+
// )}/${addonUUID}/${fileName}/${functionName}`,
|
|
77
|
+
// httpOptions
|
|
78
|
+
// );
|
|
79
|
+
const papiBaseUrl = this.getServerBaseUrl(addonUUID, fileName, isAsync);
|
|
80
|
+
return this.httpService.getHttpCall(`${papiBaseUrl}/${functionName}`, httpOptions);
|
|
81
|
+
}
|
|
82
|
+
postAddonApiCall(addonUUID, fileName, functionName, body = {}, httpOptions = {}, isAsync = false) {
|
|
83
|
+
// return this.httpService.postPapiApiCall(
|
|
84
|
+
// `${this.getAddonBaseRelativePath(
|
|
85
|
+
// isAsync
|
|
86
|
+
// )}/${addonUUID}/${fileName}/${functionName}`,
|
|
87
|
+
// body,
|
|
88
|
+
// httpOptions
|
|
89
|
+
// );
|
|
90
|
+
const papiBaseUrl = this.getServerBaseUrl(addonUUID, fileName, isAsync);
|
|
91
|
+
return this.httpService.postHttpCall(`${papiBaseUrl}/${functionName}`, body, httpOptions);
|
|
92
|
+
}
|
|
93
|
+
// TODO: need to chek this if the loader is working.
|
|
94
|
+
fetch(input, init) {
|
|
95
|
+
this.loaderService.show();
|
|
96
|
+
return window.fetch(input, init).finally(() => {
|
|
97
|
+
this.loaderService.hide();
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
getNgxLibTranslationResource(subAddonUUID = '', libName = 'ngx-lib') {
|
|
101
|
+
const addonStaticFolder = this.getAddonStaticFolder(subAddonUUID);
|
|
102
|
+
const translationsPath = this.fileService.getAssetsTranslationsPath(addonStaticFolder, libName);
|
|
103
|
+
const translationsSuffix = this.fileService.getAssetsTranslationsSuffix(libName);
|
|
104
|
+
return {
|
|
105
|
+
prefix: translationsPath,
|
|
106
|
+
suffix: translationsSuffix,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
getAddonTranslationResource(subAddonUUID = '') {
|
|
110
|
+
const addonStaticFolder = this.getAddonStaticFolder(subAddonUUID);
|
|
111
|
+
const defaultSubFolder = 'assets/i18n/';
|
|
112
|
+
return {
|
|
113
|
+
prefix: addonStaticFolder.length > 0 ? `${addonStaticFolder}${defaultSubFolder}` : `/${defaultSubFolder}`,
|
|
114
|
+
suffix: '.json',
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
setDefaultTranslateLang(translate, urlLangParam = 'userLang') {
|
|
118
|
+
this.translateService.setDefaultTranslateLang(translate, urlLangParam);
|
|
119
|
+
}
|
|
120
|
+
getPagesAddonUUID() {
|
|
121
|
+
return this.PAGES_ADDON_UUID;
|
|
122
|
+
}
|
|
123
|
+
// Deprecated need to delete in next major.
|
|
124
|
+
static createDefaultMultiTranslateLoader(http, fileService, addonService, subAddonUUID = '') {
|
|
125
|
+
const ngxLibTranslationResource = addonService.getNgxLibTranslationResource(subAddonUUID);
|
|
126
|
+
const addonTranslationResource = addonService.getAddonTranslationResource(subAddonUUID);
|
|
127
|
+
return addonService.translateService.createMultiTranslateLoader([
|
|
128
|
+
ngxLibTranslationResource,
|
|
129
|
+
addonTranslationResource
|
|
130
|
+
]);
|
|
131
|
+
}
|
|
132
|
+
static createMultiTranslateLoader(addonService, libsName = ['ngx-lib'], subAddonUUID = '') {
|
|
133
|
+
const ngxLibTranslationResources = [];
|
|
134
|
+
if ((libsName === null || libsName === void 0 ? void 0 : libsName.length) > 0) {
|
|
135
|
+
for (let index = 0; index < libsName.length; index++) {
|
|
136
|
+
const libName = libsName[index];
|
|
137
|
+
ngxLibTranslationResources.push(addonService.getNgxLibTranslationResource(subAddonUUID, libName));
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
const addonTranslationResource = addonService.getAddonTranslationResource(subAddonUUID);
|
|
141
|
+
return addonService.translateService.createMultiTranslateLoader([
|
|
142
|
+
...ngxLibTranslationResources,
|
|
143
|
+
addonTranslationResource
|
|
144
|
+
]);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
PepAddonService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PepAddonService_Factory() { return new PepAddonService(i0.ɵɵinject(i1.PepSessionService), i0.ɵɵinject(i2.PepHttpService), i0.ɵɵinject(i3.PepLoaderService), i0.ɵɵinject(i4.PepTranslateService), i0.ɵɵinject(i5.PepFileService), i0.ɵɵinject(i6.ActivatedRoute)); }, token: PepAddonService, providedIn: "root" });
|
|
148
|
+
PepAddonService.decorators = [
|
|
149
|
+
{ type: Injectable, args: [{
|
|
150
|
+
providedIn: 'root',
|
|
151
|
+
},] }
|
|
152
|
+
];
|
|
153
|
+
PepAddonService.ctorParameters = () => [
|
|
154
|
+
{ type: PepSessionService },
|
|
155
|
+
{ type: PepHttpService },
|
|
156
|
+
{ type: PepLoaderService },
|
|
157
|
+
{ type: PepTranslateService },
|
|
158
|
+
{ type: PepFileService },
|
|
159
|
+
{ type: ActivatedRoute }
|
|
160
|
+
];
|
|
161
161
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL3NlcnZpY2VzL2FkZG9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUt0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7QUFFMUQ7O0VBRUU7QUFJRixNQUFNLE9BQU8sZUFBZTtJQVd4QixZQUNZLGNBQWlDLEVBQ2pDLFdBQTJCLEVBQzNCLGFBQStCLEVBQ2hDLGdCQUFxQyxFQUNyQyxXQUEyQixFQUMxQixLQUFxQjtRQUxyQixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFCO1FBQ3JDLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMxQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQWhCaEIscUJBQWdCLEdBQUcsc0NBQXNDLENBQUM7UUFDMUQsMEJBQXFCLEdBQUcsaUJBQWlCLENBQUM7UUFDMUMsc0NBQWlDLEdBQUcsNEJBQTRCLENBQUM7UUFDakUsNEJBQXVCLEdBQUcsYUFBYSxDQUFDO1FBQ3hDLGtDQUE2QixHQUFHLEdB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RUFDN0IsUUFBUSxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQ3RCLFlBQVksR0FBRyxFQUFFO1FBRWpCLE1BQU0sMEJBQTBCLEdBQUcsRUFBRSxDQUFDO1FBRXRDLElBQUksQ0FBQSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsTUFBTSxJQUFHLENBQUMsRUFBRTtZQUN0QixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDbEQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNoQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLDRCQUE0QixDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ3JHO1NBQ0o7UUFFRCxNQUFNLHdCQUF3QixHQUFHLFlBQVksQ0FBQywyQkFBMkIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUV4RixPQUFPLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQywwQkFBMEIsQ0FBQztZQUM1RCxHQUFHLDBCQUEwQjtZQUM3Qix3QkFBd0I7U0FDM0IsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7OztZQTlLSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQWZRLGlCQUFpQjtZQUVqQixjQUFjO1lBQ2QsZ0JBQWdCO1lBS2hCLG1CQUFtQjtZQVBuQixjQUFjO1lBRmQsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFBlcFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXNzaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVwRmlsZVNlcnZpY2UgfSBmcm9tICcuL2ZpbGUuc2VydmljZSc7XG5pbXBvcnQgeyBQZXBIdHRwU2VydmljZSB9IGZyb20gJy4uLy4uL2h0dHAvc2VydmljZXMvaHR0cC5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcExvYWRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9odHRwL3NlcnZpY2VzL2xvYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJVHJhbnNsYXRpb25SZXNvdXJjZSB9IGZyb20gJ25neC10cmFuc2xhdGUtbXVsdGktaHR0cC1sb2FkZXInO1xuaW1wb3J0IHsgUGVwVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4vdHJhbnNsYXRlLnNlcnZpY2UnO1xuXG4vKlxuICAgIFRoaXMgc2VydmljZSBpcyB0aGUgd2ViYXBwIGFwaSBmb3IgYWRkb24gdXNlZ2UuXG4qL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUGVwQWRkb25TZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IFBBR0VTX0FERE9OX1VVSUQgPSAnNTAwNjJlMGMtOTk2Ny00ZWQ0LTkxMDItZjJiYzUwNjAyZDQxJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IEFERE9OX0FTU0VUU19QQVRIX0tFWSA9ICdBZGRvbkFzc2V0c1BhdGgnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgQURET05TX0RJQ1RJT05BUllfQVNTRVRTX1BBVEhfS0VZID0gJ0FkZG9uc0RpY3Rpb25hcnlBc3NldHNQYXRoJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IEFERE9OX0FQSV9SRUxBVElWRV9QQVRIID0gJy9hZGRvbnMvYXBpJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IEFERE9OX0FQSV9BU1lOQ19SRUxBVElWRV9QQVRIID0gYCR7dGhpcy5BRERPTl9BUElfUkVMQVRJVkVfUEFUSH0vYXN5bmNgO1xuXG4gICAgcHJpdmF0ZSBnZXQgZGV2U2VydmVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgnZGV2U2VydmVyJykgPT09ICd0cnVlJztcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBzZXNzaW9uU2VydmljZTogUGVwU2Vzc2lvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgaHR0cFNlcnZpY2U6IFBlcEh0dHBTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGxvYWRlclNlcnZpY2U6IFBlcExvYWRlclNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyB0cmFuc2xhdGVTZXJ2aWNlOiBQZXBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZmlsZVNlcnZpY2U6IFBlcEZpbGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICApIHtcbiAgICAgICAgLy9cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEFkZG9uQmFzZVJlbGF0aXZlUGF0aChpc0FzeW5jID0gZmFsc2UpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaXNBc3luY1xuICAgICAgICAgICAgPyB0aGlzLkFERE9OX0FQSV9BU1lOQ19SRUxBVElWRV9QQVRIXG4gICAgICAgICAgICA6IHRoaXMuQURET05fQVBJX1JFTEFUSVZFX1BBVEg7XG4gICAgfVxuXG4gICAgZ2V0QWRkb25TdGF0aWNGb2xkZXIoc3ViQWRkb25VVUlEID0gJycpOiBzdHJpbmcge1xuICAgICAgICBpZiAoc3ViQWRkb25VVUlELmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGFkZG9uc0RpY3Rpb25hcnkgPSB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldE9iamVjdCh0aGlzLkFERE9OU19ESUNUSU9OQVJZX0FTU0VUU19QQVRIX0tFWSk7XG4gICAgICAgICAgICByZXR1cm4gYWRkb25zRGljdGlvbmFyeSAmJiBhZGRvbnNEaWN0aW9uYXJ5W3N1YkFkZG9uVVVJRF0gPyBhZGRvbnNEaWN0aW9uYXJ5W3N1YkFkZG9uVVVJRF0gOiAnJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldE9iamVjdCh0aGlzLkFERE9OX0FTU0VUU19QQVRIX0tFWSkgfHwgJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRBZGRvblN0YXRpY0ZvbGRlcihwYXRoOiBzdHJpbmcsIHN1YkFkZG9uVVVJRCA9ICcnKTogdm9pZCB7XG4gICAgICAgIGlmIChzdWJBZGRvblVVSUQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgYWRkb25zRGljdGlvbmFyeSA9IHRoaXMuc2Vzc2lvblNlcnZpY2UuZ2V0T2JqZWN0KHRoaXMuQURET05TX0RJQ1RJT05BUllfQVNTRVRTX1BBVEhfS0VZKSA/PyB7fTtcbiAgICAgICAgICAgIGFkZG9uc0RpY3Rpb25hcnlbc3ViQWRkb25VVUlEXSA9IHBhdGg7XG4gICAgICAgICAgICB0aGlzLnNlc3Npb25TZXJ2aWNlLnNldE9iamVjdCh0aGlzLkFERE9OU19ESUNUSU9OQVJZX0FTU0VUU19QQVRIX0tFWSwgYWRkb25zRGljdGlvbmFyeSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uU2VydmljZS5zZXRPYmplY3QodGhpcy5BRERPTl9BU1NFVFNfUEFUSF9LRVksIHBhdGgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0U2VydmVyQmFzZVVybChhZGRvblVVSUQ6IHN0cmluZywgZmlsZU5hbWUgPSAnJywgaXNBc3luYyA9IGZhbHNlLCBsb2NhbGhvc3RQb3J0ID0gNDUwMCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGZpbGVUb0FkZCA9IGZpbGVOYW1lLmxlbmd0aCA+IDAgPyBgLyR7ZmlsZU5hbWV9YCA6ICcnO1xuICAgICAgICBcbiAgICAgICAgLy8gRm9yIGRldlNlcnZlciBydW4gc2VydmVyIG9uIGxvY2FsaG9zdC5cbiAgICAgICAgaWYodGhpcy5kZXZTZXJ2ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBgaHR0cDovL2xvY2FsaG9zdDoke2xvY2FsaG9zdFBvcnR9JHtmaWxlVG9BZGR9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldFBhcGlCYXNlVXJsKCk7XG4gICAgICAgICAgICByZXR1cm4gYCR7YmFzZVVybH0ke3RoaXMuZ2V0QWRkb25CYXNlUmVsYXRpdmVQYXRoKGlzQXN5bmMpfS8ke2FkZG9uVVVJRH0ke2ZpbGVUb0FkZH1gO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0QWRkb25BcGlDYWxsKFxuICAgICAgICBhZGRvblVVSUQ6IHN0cmluZyxcbiAgICAgICAgZmlsZU5hbWU6IHN0cmluZyxcbiAgICAgICAgZnVuY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgICAgIGh0dHBPcHRpb25zID0ge30sXG4gICAgICAgIGlzQXN5bmMgPSBmYWxzZVxuICAgICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIC8vIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldFBhcGlBcGlDYWxsKFxuICAgICAgICAvLyAgICAgYCR7dGhpcy5nZXRBZGRvbkJhc2VSZWxhdGl2ZVBhdGgoXG4gICAgICAgIC8vICAgICAgICAgaXNBc3luY1xuICAgICAgICAvLyAgICAgKX0vJHthZGRvblVVSUR9LyR7ZmlsZU5hbWV9LyR7ZnVuY3Rpb25OYW1lfWAsXG4gICAgICAgIC8vICAgICBodHRwT3B0aW9uc1xuICAgICAgICAvLyApO1xuXG4gICAgICAgIGNvbnN0IHBhcGlCYXNlVXJsID0gdGhpcy5nZXRTZXJ2ZXJCYXNlVXJsKGFkZG9uVVVJRCwgZmlsZU5hbWUsIGlzQXN5bmMpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXRIdHRwQ2FsbChgJHtwYXBpQmFzZVVybH0vJHtmdW5jdGlvbk5hbWV9YCwgaHR0cE9wdGlvbnMpO1xuICAgIH1cblxuICAgIHBvc3RBZGRvbkFwaUNhbGwoXG4gICAgICAgIGFkZG9uVVVJRDogc3RyaW5nLFxuICAgICAgICBmaWxlTmFtZTogc3RyaW5nLFxuICAgICAgICBmdW5jdGlvbk5hbWU6IHN0cmluZyxcbiAgICAgICAgYm9keSA9IHt9LFxuICAgICAgICBodHRwT3B0aW9ucyA9IHt9LFxuICAgICAgICBpc0FzeW5jID0gZmFsc2VcbiAgICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICAvLyByZXR1cm4gdGhpcy5odHRwU2VydmljZS5wb3N0UGFwaUFwaUNhbGwoXG4gICAgICAgIC8vICAgICBgJHt0aGlzLmdldEFkZG9uQmFzZVJlbGF0aXZlUGF0aChcbiAgICAgICAgLy8gICAgICAgICBpc0FzeW5jXG4gICAgICAgIC8vICAgICApfS8ke2FkZG9uVVVJRH0vJHtmaWxlTmFtZX0vJHtmdW5jdGlvbk5hbWV9YCxcbiAgICAgICAgLy8gICAgIGJvZHksXG4gICAgICAgIC8vICAgICBodHRwT3B0aW9uc1xuICAgICAgICAvLyApO1xuXG4gICAgICAgIGNvbnN0IHBhcGlCYXNlVXJsID0gdGhpcy5nZXRTZXJ2ZXJCYXNlVXJsKGFkZG9uVVVJRCwgZmlsZU5hbWUsIGlzQXN5bmMpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5wb3N0SHR0cENhbGwoYCR7cGFwaUJhc2VVcmx9LyR7ZnVuY3Rpb25OYW1lfWAsIGJvZHksIGh0dHBPcHRpb25zKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBuZWVkIHRvIGNoZWsgdGhpcyBpZiB0aGUgbG9hZGVyIGlzIHdvcmtpbmcuXG4gICAgZmV0Y2goaW5wdXQ6IFJlcXVlc3RJbmZvLCBpbml0PzogUmVxdWVzdEluaXQpOiBQcm9taXNlPFJlc3BvbnNlPiB7XG4gICAgICAgIHRoaXMubG9hZGVyU2VydmljZS5zaG93KCk7XG5cbiAgICAgICAgcmV0dXJuIHdpbmRvdy5mZXRjaChpbnB1dCwgaW5pdCkuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRlclNlcnZpY2UuaGlkZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXROZ3hMaWJUcmFuc2xhdGlvblJlc291cmNlKHN1YkFkZG9uVVVJRCA9ICcnLCBsaWJOYW1lID0gJ25neC1saWInKTogSVRyYW5zbGF0aW9uUmVzb3VyY2Uge1xuICAgICAgICBjb25zdCBhZGRvblN0YXRpY0ZvbGRlciA9IHRoaXMuZ2V0QWRkb25TdGF0aWNGb2xkZXIoc3ViQWRkb25VVUlEKTtcbiAgICAgICAgY29uc3QgdHJhbnNsYXRpb25zUGF0aDogc3RyaW5nID0gdGhpcy5maWxlU2VydmljZS5nZXRBc3NldHNUcmFuc2xhdGlvbnNQYXRoKGFkZG9uU3RhdGljRm9sZGVyLCBsaWJOYW1lKTtcbiAgICAgICAgY29uc3QgdHJhbnNsYXRpb25zU3VmZml4OiBzdHJpbmcgPSB0aGlzLmZpbGVTZXJ2aWNlLmdldEFzc2V0c1RyYW5zbGF0aW9uc1N1ZmZpeChsaWJOYW1lKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcHJlZml4OiB0cmFuc2xhdGlvbnNQYXRoLFxuICAgICAgICAgICAgc3VmZml4OiB0cmFuc2xhdGlvbnNTdWZmaXgsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZ2V0QWRkb25UcmFuc2xhdGlvblJlc291cmNlKHN1YkFkZG9uVVVJRCA9ICcnKTogSVRyYW5zbGF0aW9uUmVzb3VyY2Uge1xuICAgICAgICBjb25zdCBhZGRvblN0YXRpY0ZvbGRlciA9IHRoaXMuZ2V0QWRkb25TdGF0aWNGb2xkZXIoc3ViQWRkb25VVUlEKTtcbiAgICAgICAgY29uc3QgZGVmYXVsdFN1YkZvbGRlciA9ICdhc3NldHMvaTE4bi8nO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwcmVmaXg6IGFkZG9uU3RhdGljRm9sZGVyLmxlbmd0aCA+IDAgPyBgJHthZGRvblN0YXRpY0ZvbGRlcn0ke2RlZmF1bHRTdWJGb2xkZXJ9YCA6IGAvJHtkZWZhdWx0U3ViRm9sZGVyfWAsXG4gICAgICAgICAgICBzdWZmaXg6ICcuanNvbicsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgc2V0RGVmYXVsdFRyYW5zbGF0ZUxhbmcodHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCB1cmxMYW5nUGFyYW0gPSAndXNlckxhbmcnKSB7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zZXREZWZhdWx0VHJhbnNsYXRlTGFuZyh0cmFuc2xhdGUsIHVybExhbmdQYXJhbSk7XG4gICAgfVxuXG4gICAgZ2V0UGFnZXNBZGRvblVVSUQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLlBBR0VTX0FERE9OX1VVSUQ7XG4gICAgfVxuXG4gICAgLy8gRGVwcmVjYXRlZCBuZWVkIHRvIGRlbGV0ZSBpbiBuZXh0IG1ham9yLlxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlRGVmYXVsdE11bHRpVHJhbnNsYXRlTG9hZGVyKFxuICAgICAgICBodHRwOiBIdHRwQ2xpZW50LFxuICAgICAgICBmaWxlU2VydmljZTogUGVwRmlsZVNlcnZpY2UsXG4gICAgICAgIGFkZG9uU2VydmljZTogUGVwQWRkb25TZXJ2aWNlLFxuICAgICAgICBzdWJBZGRvblVVSUQgPSAnJ1xuICAgICkge1xuICAgICAgICBjb25zdCBuZ3hMaWJUcmFuc2xhdGlvblJlc291cmNlID0gYWRkb25TZXJ2aWNlLmdldE5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2Uoc3ViQWRkb25VVUlEKTtcbiAgICAgICAgY29uc3QgYWRkb25UcmFuc2xhdGlvblJlc291cmNlID0gYWRkb25TZXJ2aWNlLmdldEFkZG9uVHJhbnNsYXRpb25SZXNvdXJjZShzdWJBZGRvblVVSUQpO1xuXG4gICAgICAgIHJldHVybiBhZGRvblNlcnZpY2UudHJhbnNsYXRlU2VydmljZS5jcmVhdGVNdWx0aVRyYW5zbGF0ZUxvYWRlcihbXG4gICAgICAgICAgICBuZ3hMaWJUcmFuc2xhdGlvblJlc291cmNlLFxuICAgICAgICAgICAgYWRkb25UcmFuc2xhdGlvblJlc291cmNlXG4gICAgICAgIF0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlTXVsdGlUcmFuc2xhdGVMb2FkZXIoXG4gICAgICAgIGFkZG9uU2VydmljZTogUGVwQWRkb25TZXJ2aWNlLFxuICAgICAgICBsaWJzTmFtZSA9IFsnbmd4LWxpYiddLFxuICAgICAgICBzdWJBZGRvblVVSUQgPSAnJ1xuICAgICkge1xuICAgICAgICBjb25zdCBuZ3hMaWJUcmFuc2xhdGlvblJlc291cmNlcyA9IFtdO1xuXG4gICAgICAgIGlmIChsaWJzTmFtZT8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGxpYnNOYW1lLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpYk5hbWUgPSBsaWJzTmFtZVtpbmRleF07XG4gICAgICAgICAgICAgICAgbmd4TGliVHJhbnNsYXRpb25SZXNvdXJjZXMucHVzaChhZGRvblNlcnZpY2UuZ2V0Tmd4TGliVHJhbnNsYXRpb25SZXNvdXJjZShzdWJBZGRvblVVSUQsIGxpYk5hbWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFkZG9uVHJhbnNsYXRpb25SZXNvdXJjZSA9IGFkZG9uU2VydmljZS5nZXRBZGRvblRyYW5zbGF0aW9uUmVzb3VyY2Uoc3ViQWRkb25VVUlEKTtcblxuICAgICAgICByZXR1cm4gYWRkb25TZXJ2aWNlLnRyYW5zbGF0ZVNlcnZpY2UuY3JlYXRlTXVsdGlUcmFuc2xhdGVMb2FkZXIoW1xuICAgICAgICAgICAgLi4ubmd4TGliVHJhbnNsYXRpb25SZXNvdXJjZXMsXG4gICAgICAgICAgICBhZGRvblRyYW5zbGF0aW9uUmVzb3VyY2VcbiAgICAgICAgXSk7XG4gICAgfVxufVxuIl19
|