@pepperi-addons/ngx-lib 0.5.0-ng15.3 → 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/{esm2020 → esm2022}/size-detector/size-detector.module.mjs +13 -13
- 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 +93 -66
- 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/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
- 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 +186 -158
- package/{fesm2020 → 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/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/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/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/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-smart-filters.mjs.map +0 -1
- 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-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-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
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, } from '@angular/core';
|
|
2
|
+
import { DEFAULT_HORIZONTAL_ALIGNMENT, } from '@pepperi-addons/ngx-lib';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "@angular/material/button";
|
|
6
|
+
import * as i3 from "@angular/material/icon";
|
|
7
|
+
import * as i4 from "@angular/material/menu";
|
|
8
|
+
import * as i5 from "@pepperi-addons/ngx-lib/icon";
|
|
9
|
+
import * as i6 from "@ngx-translate/core";
|
|
10
|
+
export class PepInternalMenuComponent {
|
|
11
|
+
key = '';
|
|
12
|
+
label = '';
|
|
13
|
+
disabled = false;
|
|
14
|
+
xAlignment = DEFAULT_HORIZONTAL_ALIGNMENT;
|
|
15
|
+
// @Input() hasSubMenu = false;
|
|
16
|
+
options = [];
|
|
17
|
+
// @Input() invertClass = true;
|
|
18
|
+
controlType = 'menu';
|
|
19
|
+
layoutType = 'form';
|
|
20
|
+
elementClick = new EventEmitter();
|
|
21
|
+
// @Output() menuItemClick: EventEmitter<IPepFieldClickEvent> = new EventEmitter<IPepFieldClickEvent>();
|
|
22
|
+
ngOnDestroy() {
|
|
23
|
+
// if (this.elementClick) {
|
|
24
|
+
// this.elementClick.unsubscribe();
|
|
25
|
+
// }
|
|
26
|
+
// if (this.menuItemClick) {
|
|
27
|
+
// this.menuItemClick.unsubscribe();
|
|
28
|
+
// }
|
|
29
|
+
}
|
|
30
|
+
menuClicked(event) {
|
|
31
|
+
this.elementClick.emit({
|
|
32
|
+
key: this.key,
|
|
33
|
+
controlType: this.controlType,
|
|
34
|
+
eventWhich: event.which,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
menuItemClicked(itemKey) {
|
|
38
|
+
// Not in use comment in version 16.55 for webapp.
|
|
39
|
+
// this.menuItemClick.emit({ key: itemKey });
|
|
40
|
+
}
|
|
41
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepInternalMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
42
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PepInternalMenuComponent, selector: "pep-internal-menu", inputs: { key: "key", label: "label", disabled: "disabled", xAlignment: "xAlignment", options: "options", layoutType: "layoutType" }, outputs: { elementClick: "elementClick" }, ngImport: i0, template: "<ng-container *ngIf=\"options?.length > 0; then subMenuBlock; else noSubMenuBlock\"></ng-container>\n<ng-template #noSubMenuBlock>\n <button (click)=\"menuClicked($event)\" title=\"{{ label }}\" mat-button\n class=\"pep-button icon-button weak special {{ layoutType === 'table' ? 'sm' : 'md' }}\" [ngClass]=\"{\n 'lock-events': disabled,\n 'left-alignment': xAlignment == 'left',\n 'right-alignment': xAlignment == 'right',\n 'center-alignment': xAlignment == 'center'\n }\">\n <mat-icon>\n <pep-icon name=\"system_menu\">\n </pep-icon>\n </mat-icon>\n </button>\n</ng-template>\n\n<ng-template #subMenuBlock>\n <button mat-button [matMenuTriggerFor]=\"menu\" menu-blur\n class=\"pep-button icon-button weak special {{ layoutType === 'table' ? 'sm' : 'md' }}\" [ngClass]=\"{\n 'left-alignment': xAlignment == 'left',\n 'right-alignment': xAlignment == 'right',\n 'center-alignment': xAlignment == 'center'\n }\" title=\"{{ label }}\">\n <mat-icon>\n <pep-icon name=\"system_menu\">\n </pep-icon>\n </mat-icon>\n </button>\n\n <mat-menu #menu=\"matMenu\" xPosition=\"{{xAlignment == 'right' ? 'after' : 'before'}}\"\n [ngClass]=\"{ rtlMenu: xAlignment == 'right' }\">\n <button *ngFor=\"let option of options\" mat-menu-item (click)=\"menuItemClicked(option.key)\">\n <span>{{ option.value | translate }}</span>\n </button>\n </mat-menu>\n\n</ng-template>", styles: [":host{height:inherit;display:grid}:host>*{align-self:center}.pepperi-button,.pep-button{cursor:pointer}.pepperi-button.left-alignment,.pep-button.left-alignment{justify-self:flex-start}.pepperi-button.center-alignment,.pep-button.center-alignment{justify-self:center}.pepperi-button.right-alignment,.pep-button.right-alignment{justify-self:flex-end}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i5.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
43
|
+
}
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepInternalMenuComponent, decorators: [{
|
|
45
|
+
type: Component,
|
|
46
|
+
args: [{ selector: 'pep-internal-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"options?.length > 0; then subMenuBlock; else noSubMenuBlock\"></ng-container>\n<ng-template #noSubMenuBlock>\n <button (click)=\"menuClicked($event)\" title=\"{{ label }}\" mat-button\n class=\"pep-button icon-button weak special {{ layoutType === 'table' ? 'sm' : 'md' }}\" [ngClass]=\"{\n 'lock-events': disabled,\n 'left-alignment': xAlignment == 'left',\n 'right-alignment': xAlignment == 'right',\n 'center-alignment': xAlignment == 'center'\n }\">\n <mat-icon>\n <pep-icon name=\"system_menu\">\n </pep-icon>\n </mat-icon>\n </button>\n</ng-template>\n\n<ng-template #subMenuBlock>\n <button mat-button [matMenuTriggerFor]=\"menu\" menu-blur\n class=\"pep-button icon-button weak special {{ layoutType === 'table' ? 'sm' : 'md' }}\" [ngClass]=\"{\n 'left-alignment': xAlignment == 'left',\n 'right-alignment': xAlignment == 'right',\n 'center-alignment': xAlignment == 'center'\n }\" title=\"{{ label }}\">\n <mat-icon>\n <pep-icon name=\"system_menu\">\n </pep-icon>\n </mat-icon>\n </button>\n\n <mat-menu #menu=\"matMenu\" xPosition=\"{{xAlignment == 'right' ? 'after' : 'before'}}\"\n [ngClass]=\"{ rtlMenu: xAlignment == 'right' }\">\n <button *ngFor=\"let option of options\" mat-menu-item (click)=\"menuItemClicked(option.key)\">\n <span>{{ option.value | translate }}</span>\n </button>\n </mat-menu>\n\n</ng-template>", styles: [":host{height:inherit;display:grid}:host>*{align-self:center}.pepperi-button,.pep-button{cursor:pointer}.pepperi-button.left-alignment,.pep-button.left-alignment{justify-self:flex-start}.pepperi-button.center-alignment,.pep-button.center-alignment{justify-self:center}.pepperi-button.right-alignment,.pep-button.right-alignment{justify-self:flex-end}\n"] }]
|
|
47
|
+
}], propDecorators: { key: [{
|
|
48
|
+
type: Input
|
|
49
|
+
}], label: [{
|
|
50
|
+
type: Input
|
|
51
|
+
}], disabled: [{
|
|
52
|
+
type: Input
|
|
53
|
+
}], xAlignment: [{
|
|
54
|
+
type: Input
|
|
55
|
+
}], options: [{
|
|
56
|
+
type: Input
|
|
57
|
+
}], layoutType: [{
|
|
58
|
+
type: Input
|
|
59
|
+
}], elementClick: [{
|
|
60
|
+
type: Output
|
|
61
|
+
}] } });
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2Zvcm0vaW50ZXJuYWwtbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2Zvcm0vaW50ZXJuYWwtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUVaLHVCQUF1QixHQUUxQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBSUgsNEJBQTRCLEdBRS9CLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7O0FBUWpDLE1BQU0sT0FBTyx3QkFBd0I7SUFDeEIsR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUNULEtBQUssR0FBRyxFQUFFLENBQUM7SUFDWCxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLFVBQVUsR0FBMkIsNEJBQTRCLENBQUM7SUFDM0UsK0JBQStCO0lBQ3RCLE9BQU8sR0FBaUIsRUFBRSxDQUFDO0lBQ3BDLCtCQUErQjtJQUUvQixXQUFXLEdBQUcsTUFBTSxDQUFDO0lBRVosVUFBVSxHQUFrQixNQUFNLENBQUM7SUFFNUMsWUFBWSxHQUFzQyxJQUFJLFlBQVksRUFBdUIsQ0FBQztJQUMxRix3R0FBd0c7SUFFeEcsV0FBVztRQUNQLDJCQUEyQjtRQUMzQix1Q0FBdUM7UUFDdkMsSUFBSTtRQUNKLDRCQUE0QjtRQUM1Qix3Q0FBd0M7UUFDeEMsSUFBSTtJQUNSLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztZQUNuQixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDYixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsVUFBVSxFQUFFLEtBQUssQ0FBQyxLQUFLO1NBQzFCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxlQUFlLENBQUMsT0FBWTtRQUN4QixrREFBa0Q7UUFDbEQsNkNBQTZDO0lBQ2pELENBQUM7d0dBcENRLHdCQUF3Qjs0RkFBeEIsd0JBQXdCLDBPQ3ZCckMsK2lEQW9DYzs7NEZEYkQsd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNJLG1CQUFtQixtQkFHWix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0csVUFBVTtzQkFBbEIsS0FBSztnQkFFTixZQUFZO3NCQURYLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIFBlcExheW91dFR5cGUsXG4gICAgSVBlcE9wdGlvbixcbiAgICBQZXBIb3Jpem9udGFsQWxpZ25tZW50LFxuICAgIERFRkFVTFRfSE9SSVpPTlRBTF9BTElHTk1FTlQsXG4gICAgSVBlcEZpZWxkQ2xpY2tFdmVudCxcbn0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1pbnRlcm5hbC1tZW51JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW50ZXJuYWwtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW50ZXJuYWwtbWVudS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBJbnRlcm5hbE1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIGtleSA9ICcnO1xuICAgIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gICAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSB4QWxpZ25tZW50OiBQZXBIb3Jpem9udGFsQWxpZ25tZW50ID0gREVGQVVMVF9IT1JJWk9OVEFMX0FMSUdOTUVOVDtcbiAgICAvLyBASW5wdXQoKSBoYXNTdWJNZW51ID0gZmFsc2U7XG4gICAgQElucHV0KCkgb3B0aW9uczogSVBlcE9wdGlvbltdID0gW107XG4gICAgLy8gQElucHV0KCkgaW52ZXJ0Q2xhc3MgPSB0cnVlO1xuXG4gICAgY29udHJvbFR5cGUgPSAnbWVudSc7XG5cbiAgICBASW5wdXQoKSBsYXlvdXRUeXBlOiBQZXBMYXlvdXRUeXBlID0gJ2Zvcm0nO1xuICAgIEBPdXRwdXQoKVxuICAgIGVsZW1lbnRDbGljazogRXZlbnRFbWl0dGVyPElQZXBGaWVsZENsaWNrRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJUGVwRmllbGRDbGlja0V2ZW50PigpO1xuICAgIC8vIEBPdXRwdXQoKSBtZW51SXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8SVBlcEZpZWxkQ2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPElQZXBGaWVsZENsaWNrRXZlbnQ+KCk7XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgLy8gaWYgKHRoaXMuZWxlbWVudENsaWNrKSB7XG4gICAgICAgIC8vICAgICB0aGlzLmVsZW1lbnRDbGljay51bnN1YnNjcmliZSgpO1xuICAgICAgICAvLyB9XG4gICAgICAgIC8vIGlmICh0aGlzLm1lbnVJdGVtQ2xpY2spIHtcbiAgICAgICAgLy8gICAgIHRoaXMubWVudUl0ZW1DbGljay51bnN1YnNjcmliZSgpO1xuICAgICAgICAvLyB9XG4gICAgfVxuXG4gICAgbWVudUNsaWNrZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnRDbGljay5lbWl0KHtcbiAgICAgICAgICAgIGtleTogdGhpcy5rZXksXG4gICAgICAgICAgICBjb250cm9sVHlwZTogdGhpcy5jb250cm9sVHlwZSxcbiAgICAgICAgICAgIGV2ZW50V2hpY2g6IGV2ZW50LndoaWNoLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBtZW51SXRlbUNsaWNrZWQoaXRlbUtleTogYW55KTogdm9pZCB7XG4gICAgICAgIC8vIE5vdCBpbiB1c2UgY29tbWVudCBpbiB2ZXJzaW9uIDE2LjU1IGZvciB3ZWJhcHAuXG4gICAgICAgIC8vIHRoaXMubWVudUl0ZW1DbGljay5lbWl0KHsga2V5OiBpdGVtS2V5IH0pO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb25zPy5sZW5ndGggPiAwOyB0aGVuIHN1Yk1lbnVCbG9jazsgZWxzZSBub1N1Yk1lbnVCbG9ja1wiPjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNub1N1Yk1lbnVCbG9jaz5cbiAgICA8YnV0dG9uIChjbGljayk9XCJtZW51Q2xpY2tlZCgkZXZlbnQpXCIgdGl0bGU9XCJ7eyBsYWJlbCB9fVwiIG1hdC1idXR0b25cbiAgICAgICAgY2xhc3M9XCJwZXAtYnV0dG9uIGljb24tYnV0dG9uIHdlYWsgc3BlY2lhbCB7eyBsYXlvdXRUeXBlID09PSAndGFibGUnID8gJ3NtJyA6ICdtZCcgfX1cIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnbG9jay1ldmVudHMnOiBkaXNhYmxlZCxcbiAgICAgICAgICAgICdsZWZ0LWFsaWdubWVudCc6IHhBbGlnbm1lbnQgPT0gJ2xlZnQnLFxuICAgICAgICAgICAgJ3JpZ2h0LWFsaWdubWVudCc6IHhBbGlnbm1lbnQgPT0gJ3JpZ2h0JyxcbiAgICAgICAgICAgICdjZW50ZXItYWxpZ25tZW50JzogeEFsaWdubWVudCA9PSAnY2VudGVyJ1xuICAgICAgICB9XCI+XG4gICAgICAgIDxtYXQtaWNvbj5cbiAgICAgICAgICAgIDxwZXAtaWNvbiBuYW1lPVwic3lzdGVtX21lbnVcIj5cbiAgICAgICAgICAgIDwvcGVwLWljb24+XG4gICAgICAgIDwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3N1Yk1lbnVCbG9jaz5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBtZW51LWJsdXJcbiAgICAgICAgY2xhc3M9XCJwZXAtYnV0dG9uIGljb24tYnV0dG9uIHdlYWsgc3BlY2lhbCB7eyBsYXlvdXRUeXBlID09PSAndGFibGUnID8gJ3NtJyA6ICdtZCcgfX1cIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnbGVmdC1hbGlnbm1lbnQnOiB4QWxpZ25tZW50ID09ICdsZWZ0JyxcbiAgICAgICAgICAgICdyaWdodC1hbGlnbm1lbnQnOiB4QWxpZ25tZW50ID09ICdyaWdodCcsXG4gICAgICAgICAgICAnY2VudGVyLWFsaWdubWVudCc6IHhBbGlnbm1lbnQgPT0gJ2NlbnRlcidcbiAgICAgICAgfVwiIHRpdGxlPVwie3sgbGFiZWwgfX1cIj5cbiAgICAgICAgPG1hdC1pY29uPlxuICAgICAgICAgICAgPHBlcC1pY29uIG5hbWU9XCJzeXN0ZW1fbWVudVwiPlxuICAgICAgICAgICAgPC9wZXAtaWNvbj5cbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJ7e3hBbGlnbm1lbnQgPT0gJ3JpZ2h0JyA/ICdhZnRlcicgOiAnYmVmb3JlJ319XCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyBydGxNZW51OiB4QWxpZ25tZW50ID09ICdyaWdodCcgfVwiPlxuICAgICAgICA8YnV0dG9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIm1lbnVJdGVtQ2xpY2tlZChvcHRpb24ua2V5KVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgb3B0aW9uLnZhbHVlIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L21hdC1tZW51PlxuXG48L25nLXRlbXBsYXRlPiJdfQ==
|
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ViewChild, ViewContainerRef, TemplateRef, ChangeDetectionStrategy, } from '@angular/core';
|
|
2
|
+
import { PepInternalPageService } from './internal-page.service';
|
|
3
|
+
import { FIELD_TYPE, } from '@pepperi-addons/ngx-lib';
|
|
4
|
+
import { PepInternalListComponent, } from './internal-list.component';
|
|
5
|
+
import { fromEvent } from 'rxjs';
|
|
6
|
+
import { debounceTime } from 'rxjs/operators';
|
|
7
|
+
import { PepQuantitySelectorComponent } from '@pepperi-addons/ngx-lib/quantity-selector';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@pepperi-addons/ngx-lib/dialog";
|
|
10
|
+
import * as i2 from "./internal-page.service";
|
|
11
|
+
import * as i3 from "@pepperi-addons/ngx-lib";
|
|
12
|
+
import * as i4 from "@angular/common";
|
|
13
|
+
import * as i5 from "@angular/material/button";
|
|
14
|
+
import * as i6 from "@angular/material/icon";
|
|
15
|
+
import * as i7 from "@angular/material/menu";
|
|
16
|
+
import * as i8 from "@pepperi-addons/ngx-lib/icon";
|
|
17
|
+
import * as i9 from "./internal-list.component";
|
|
18
|
+
import * as i10 from "@ngx-translate/core";
|
|
19
|
+
export class PepInternalPageComponent {
|
|
20
|
+
dialogService;
|
|
21
|
+
internalPageService;
|
|
22
|
+
customizationService;
|
|
23
|
+
changeDetectorRef;
|
|
24
|
+
static CURRENT_ADDITIONAL_API_NAME = 'item_details_currentAdditionalApiName';
|
|
25
|
+
controlType = 'internalPage';
|
|
26
|
+
field;
|
|
27
|
+
layoutType = 'form';
|
|
28
|
+
internalFormFieldChange = new EventEmitter();
|
|
29
|
+
internalFormFieldClick = new EventEmitter();
|
|
30
|
+
my1mm;
|
|
31
|
+
mainViewCont;
|
|
32
|
+
orgCont;
|
|
33
|
+
dialogCont;
|
|
34
|
+
matrixTemplate;
|
|
35
|
+
matrixDialogTemplate;
|
|
36
|
+
customList;
|
|
37
|
+
resize;
|
|
38
|
+
checkForChanges = null;
|
|
39
|
+
childData = null;
|
|
40
|
+
emptyForm;
|
|
41
|
+
uiControl;
|
|
42
|
+
rows;
|
|
43
|
+
lineViewRows;
|
|
44
|
+
totalsRow = [];
|
|
45
|
+
additionalApiNames = null;
|
|
46
|
+
currentAdditionalApiName = null;
|
|
47
|
+
focusedQS = false;
|
|
48
|
+
fieldIdWithFocus = '';
|
|
49
|
+
columnWidth = 100;
|
|
50
|
+
coverChildTable = false;
|
|
51
|
+
childViewTypes;
|
|
52
|
+
currentViewType = null;
|
|
53
|
+
currentViewTypeTitle;
|
|
54
|
+
sumOfMinColWidth = 0;
|
|
55
|
+
totalRowsWidth = 0;
|
|
56
|
+
viewWidth = '100%';
|
|
57
|
+
viewHeight = 'auto';
|
|
58
|
+
displayQSbtns = true;
|
|
59
|
+
selectedApiName = '';
|
|
60
|
+
showSort = false;
|
|
61
|
+
defaultRowSpan = -1;
|
|
62
|
+
constructor(dialogService, internalPageService, customizationService, changeDetectorRef) {
|
|
63
|
+
this.dialogService = dialogService;
|
|
64
|
+
this.internalPageService = internalPageService;
|
|
65
|
+
this.customizationService = customizationService;
|
|
66
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
67
|
+
}
|
|
68
|
+
fillData(isInDialog = false) {
|
|
69
|
+
const view = this.matrixTemplate.createEmbeddedView(null);
|
|
70
|
+
this.customList?.clear();
|
|
71
|
+
this.orgCont?.clear();
|
|
72
|
+
if (isInDialog) {
|
|
73
|
+
this.dialogCont?.clear();
|
|
74
|
+
this.dialogCont?.insert(view);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
this.orgCont?.insert(view);
|
|
78
|
+
}
|
|
79
|
+
setTimeout(() => {
|
|
80
|
+
const viewType = this.isTableView()
|
|
81
|
+
? 'table'
|
|
82
|
+
: 'lines';
|
|
83
|
+
this.customList.initListData(this.uiControl, this.childData.TotalRows, this.childData.Rows, viewType);
|
|
84
|
+
this.setTotalsRow();
|
|
85
|
+
// if (!this.childModal.isShown) {
|
|
86
|
+
const childrenCount = this.childData.Rows
|
|
87
|
+
? this.childData.Rows.length
|
|
88
|
+
: 0;
|
|
89
|
+
const isEven = childrenCount % 2 === 0;
|
|
90
|
+
// 3 for matrix & flat matrix because the header + total is 2 more rows.
|
|
91
|
+
const rowsToAdd = this.isMatrixView() || this.isFlatMatrixView()
|
|
92
|
+
? isEven
|
|
93
|
+
? 3
|
|
94
|
+
: 4
|
|
95
|
+
: 1;
|
|
96
|
+
const formRowHeight = this.customizationService.calculateFormFieldHeight() * 16; // convert rem to pixel
|
|
97
|
+
// Set the default only if not set yet.
|
|
98
|
+
if (this.defaultRowSpan === -1) {
|
|
99
|
+
this.defaultRowSpan = this.field.rowSpan;
|
|
100
|
+
}
|
|
101
|
+
this.sumOfMinColWidth = 0;
|
|
102
|
+
this.totalRowsWidth = 0;
|
|
103
|
+
this.childData.UIControl.ControlFields.forEach((uiControlField) => {
|
|
104
|
+
this.totalRowsWidth += uiControlField.ColumnWidth;
|
|
105
|
+
uiControlField.minFieldWidth = this.mmToPx(12); // NEED TO GET THIS PARAM FROM CUSTOMIZATION;
|
|
106
|
+
this.sumOfMinColWidth += 12;
|
|
107
|
+
});
|
|
108
|
+
this.setViewCover(this.childData.Rows);
|
|
109
|
+
if (this.coverChildTable) {
|
|
110
|
+
this.field.rowSpan = this.defaultRowSpan;
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
// For line view Add the height of the line (form height).
|
|
114
|
+
if (this.currentViewType.Key === 'OrderCenterFlatMatrixLine') {
|
|
115
|
+
const maxRow = Math.max(...this.uiControl.ControlFields.map((f) => {
|
|
116
|
+
return f.Layout.Y + f.Layout.Height;
|
|
117
|
+
}));
|
|
118
|
+
// * 16 convert rem to pixel
|
|
119
|
+
const cardRowsHeight = this.customizationService.calculateCardRowsHeight(maxRow) * 16;
|
|
120
|
+
// maxRow * 24 + 60 - 24 for each row in card + 60 for the padding of each card.
|
|
121
|
+
// const rowSpanToAdd = childrenCount * ((cardRowsHeight + 24) / formRowHeight) + rowsToAdd;
|
|
122
|
+
const rowSpanToAdd = (childrenCount * (cardRowsHeight + 24)) /
|
|
123
|
+
formRowHeight +
|
|
124
|
+
rowsToAdd;
|
|
125
|
+
this.field.rowSpan = rowSpanToAdd;
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
// const tableRowsHeight = this.customizationService.calculateTableRowsHeight(childrenCount) * 16;
|
|
129
|
+
// this.field.rowSpan = Math.ceil((tableRowsHeight + (rowsToAdd * 40)) / formRowHeight);
|
|
130
|
+
// * 16 convert rem to pixel
|
|
131
|
+
const rowsToAddHeight = this.customizationService.calculateTableRowsHeight(rowsToAdd, false) * 16;
|
|
132
|
+
const tableRowsHeight = this.customizationService.calculateTableRowsHeight(childrenCount) * 16;
|
|
133
|
+
this.field.rowSpan =
|
|
134
|
+
(rowsToAddHeight + tableRowsHeight) / formRowHeight;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}, 0);
|
|
138
|
+
this.changeDetectorRef.markForCheck();
|
|
139
|
+
}
|
|
140
|
+
fillChildData(res) {
|
|
141
|
+
this.childData = res;
|
|
142
|
+
this.uiControl = res.UIControl;
|
|
143
|
+
this.additionalApiNames = res.AdditionalApiNames;
|
|
144
|
+
this.fillData();
|
|
145
|
+
}
|
|
146
|
+
mmToPx(mm) {
|
|
147
|
+
const height = this.my1mm.nativeElement.clientHeight;
|
|
148
|
+
return Math.floor(mm * height); // returns sizes in PX
|
|
149
|
+
}
|
|
150
|
+
isMatrixView() {
|
|
151
|
+
return (this.currentViewType &&
|
|
152
|
+
this.currentViewType.Key === 'OrderCenterMatrix');
|
|
153
|
+
}
|
|
154
|
+
isFlatMatrixView() {
|
|
155
|
+
return (this.currentViewType &&
|
|
156
|
+
this.currentViewType.Key === 'OrderCenterFlatMatrixGrid');
|
|
157
|
+
}
|
|
158
|
+
isTableView() {
|
|
159
|
+
return this.isMatrixView() || this.isFlatMatrixView();
|
|
160
|
+
}
|
|
161
|
+
changeChildrenViewType(viewTypeKey) {
|
|
162
|
+
this.rows = [];
|
|
163
|
+
this.uiControl = null;
|
|
164
|
+
for (const vt of this.childViewTypes) {
|
|
165
|
+
if (vt.Key === viewTypeKey) {
|
|
166
|
+
this.currentViewType = vt;
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
this.currentViewTypeTitle = this.currentViewType.Value;
|
|
171
|
+
this.internalPageService.changeChildrenViewType(this.currentViewType.Key, (res) => {
|
|
172
|
+
if (res.Rows) {
|
|
173
|
+
this.fillChildData(res);
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
setViewCover(rows) {
|
|
178
|
+
if (!rows) {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
const matrixCont = this.mainViewCont.nativeElement;
|
|
182
|
+
const viewWidth = matrixCont.clientWidth;
|
|
183
|
+
this.viewWidth = viewWidth ? viewWidth.toString() : '100%';
|
|
184
|
+
// if the matrix located on the bottom / there is nothing under the matrix we dont need to check the height
|
|
185
|
+
if (parseInt(viewWidth, 10) < this.mmToPx(this.sumOfMinColWidth)) {
|
|
186
|
+
this.coverChildTable = true;
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
this.coverChildTable = false;
|
|
190
|
+
}
|
|
191
|
+
this.changeDetectorRef.markForCheck();
|
|
192
|
+
}
|
|
193
|
+
showMatrixDialog() {
|
|
194
|
+
const config = this.dialogService.getDialogConfig({
|
|
195
|
+
disableClose: false,
|
|
196
|
+
}, 'large');
|
|
197
|
+
const dialogRef = this.dialogService.openDialog(this.matrixDialogTemplate, {}, config);
|
|
198
|
+
dialogRef.afterOpened().subscribe(() => {
|
|
199
|
+
this.fillData(true);
|
|
200
|
+
});
|
|
201
|
+
dialogRef.afterClosed().subscribe((value) => {
|
|
202
|
+
this.fillData(false);
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
ngOnInit() {
|
|
206
|
+
// let field = this.field as PepInternalPageField;
|
|
207
|
+
this.internalPageService.initDetails(this.field.objectId, this.field.parentId, this.field.searchCode, (resViewTypes) => {
|
|
208
|
+
// my code DI-7134
|
|
209
|
+
resViewTypes.Rows = resViewTypes.Rows.filter((item) => item.Key !== 'OrderCenterView1');
|
|
210
|
+
if (resViewTypes.Rows && resViewTypes.Rows.length > 0) {
|
|
211
|
+
if (!resViewTypes.Default) {
|
|
212
|
+
resViewTypes.Default = resViewTypes.Rows[0].Key;
|
|
213
|
+
}
|
|
214
|
+
this.childViewTypes = resViewTypes.Rows;
|
|
215
|
+
this.currentViewType = resViewTypes.Rows[0];
|
|
216
|
+
// for (var i = 0; i < resViewTypes.Rows.length; i++) {
|
|
217
|
+
for (const viewTypeRow of resViewTypes.Rows) {
|
|
218
|
+
if (viewTypeRow.Value === resViewTypes.Default) {
|
|
219
|
+
this.currentViewType = viewTypeRow;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
this.loadLastAdditionalApiName();
|
|
223
|
+
this.changeChildrenViewType(this.currentViewType.Key);
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
this.resize = fromEvent(window, 'resize')
|
|
227
|
+
.pipe(debounceTime(10))
|
|
228
|
+
.subscribe((event) => {
|
|
229
|
+
this.setViewCover(this.rows);
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
loadLastAdditionalApiName() {
|
|
233
|
+
const daa = sessionStorage.getItem(PepInternalPageComponent.CURRENT_ADDITIONAL_API_NAME);
|
|
234
|
+
if (daa && daa.length > 0) {
|
|
235
|
+
const additionalApiName = JSON.parse(daa);
|
|
236
|
+
this.currentAdditionalApiName = additionalApiName;
|
|
237
|
+
this.internalPageService.additionalApiName = additionalApiName?.Key;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
ngOnDestroy() {
|
|
241
|
+
if (this.resize) {
|
|
242
|
+
this.resize.unsubscribe();
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
changeAdditionalApiName(additionalApiName) {
|
|
246
|
+
this.internalPageService.changeAdditionalApiName(additionalApiName ? additionalApiName.Key : '', (res) => {
|
|
247
|
+
// for (let index = 0; index < res.Rows.length; index++) {
|
|
248
|
+
for (const row of res.Rows) {
|
|
249
|
+
this.updateChanges(row);
|
|
250
|
+
}
|
|
251
|
+
this.changeDetectorRef.markForCheck();
|
|
252
|
+
});
|
|
253
|
+
sessionStorage.setItem(PepInternalPageComponent.CURRENT_ADDITIONAL_API_NAME, JSON.stringify(additionalApiName));
|
|
254
|
+
setTimeout(() => {
|
|
255
|
+
this.currentAdditionalApiName = additionalApiName;
|
|
256
|
+
}, 0);
|
|
257
|
+
}
|
|
258
|
+
setTotalsRow() {
|
|
259
|
+
this.totalsRow = [];
|
|
260
|
+
if (this.isMatrixView() || this.isFlatMatrixView()) {
|
|
261
|
+
let totalCol = 0;
|
|
262
|
+
const items = this.customList.items;
|
|
263
|
+
if (items) {
|
|
264
|
+
for (let col = 0; col < items[0].Fields.length; col++) {
|
|
265
|
+
const field = items[0].Fields[col];
|
|
266
|
+
if (field.FieldType === FIELD_TYPE.NumberIntegerForMatrix ||
|
|
267
|
+
field.FieldType ===
|
|
268
|
+
FIELD_TYPE.NumberIntegerQuantitySelector ||
|
|
269
|
+
field.FieldType === FIELD_TYPE.NumberRealForMatrix ||
|
|
270
|
+
field.FieldType ===
|
|
271
|
+
FIELD_TYPE.NumberRealQuantitySelector ||
|
|
272
|
+
field.FieldType === FIELD_TYPE.CalculatedInt ||
|
|
273
|
+
field.FieldType === FIELD_TYPE.NumberInteger ||
|
|
274
|
+
field.FieldType === FIELD_TYPE.CalculatedReal ||
|
|
275
|
+
field.FieldType === FIELD_TYPE.NumberReal) {
|
|
276
|
+
totalCol = 0;
|
|
277
|
+
for (const listItem of items) {
|
|
278
|
+
if (listItem.Fields[col] &&
|
|
279
|
+
listItem.Fields[col].Value) {
|
|
280
|
+
const num = parseFloat(listItem.Fields[col].Value);
|
|
281
|
+
totalCol += isNaN(num) ? 0 : num;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
this.totalsRow.push(totalCol);
|
|
285
|
+
}
|
|
286
|
+
else {
|
|
287
|
+
this.totalsRow.push('');
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
updateChanges(elementToUpdate) {
|
|
294
|
+
this.customList.updateItem(elementToUpdate);
|
|
295
|
+
// Update memory data
|
|
296
|
+
for (let index = 0; index < this.childData.Rows.length; index++) {
|
|
297
|
+
if (this.childData.Rows[index].UID === elementToUpdate.UID) {
|
|
298
|
+
this.childData.Rows[index] = elementToUpdate;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
setValueCallback(id, res) {
|
|
303
|
+
if (res.Rows.length === 1) {
|
|
304
|
+
const field = res.Rows[0].Fields.find((f) => f.ApiName === 'ObjectMenu');
|
|
305
|
+
if (field) {
|
|
306
|
+
// HACK : Until "Enabled" returns from the server, we set PepMenu to be
|
|
307
|
+
// Disabled in cart on regular items and not campign items.
|
|
308
|
+
field.Enabled = true;
|
|
309
|
+
}
|
|
310
|
+
this.updateChanges(res.Rows[0]);
|
|
311
|
+
}
|
|
312
|
+
this.setTotalsRow();
|
|
313
|
+
this.checkForChanges = new Date();
|
|
314
|
+
// DI-15985
|
|
315
|
+
this.internalFormFieldChange.emit(res);
|
|
316
|
+
this.changeDetectorRef.markForCheck();
|
|
317
|
+
}
|
|
318
|
+
onCustomizeObjectChanged(customizeObjectChangedData) {
|
|
319
|
+
this.internalPageService.childValueChanged(customizeObjectChangedData.id, customizeObjectChangedData.key, customizeObjectChangedData.value, (res) => {
|
|
320
|
+
this.setValueCallback(customizeObjectChangedData.id, res);
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
onCustomizeFieldClick(fieldClickEvent) {
|
|
324
|
+
let handledEvent = false;
|
|
325
|
+
// For the new custom form, the plus and minus events transform in the IPepFormFieldValueChangeEvent
|
|
326
|
+
if (fieldClickEvent.controlType === 'qs') {
|
|
327
|
+
if (fieldClickEvent.value === PepQuantitySelectorComponent.PLUS) {
|
|
328
|
+
handledEvent = true;
|
|
329
|
+
this.internalPageService.childPlusClick(fieldClickEvent.id, fieldClickEvent.key, (res) => {
|
|
330
|
+
this.setValueCallback(fieldClickEvent.id, res);
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
else if (fieldClickEvent.value === PepQuantitySelectorComponent.MINUS) {
|
|
334
|
+
handledEvent = true;
|
|
335
|
+
this.internalPageService.childMinusClick(fieldClickEvent.id, fieldClickEvent.key, (res) => {
|
|
336
|
+
this.setValueCallback(fieldClickEvent.id, res);
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
if (!handledEvent) {
|
|
341
|
+
this.internalFormFieldClick.emit(fieldClickEvent);
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepInternalPageComponent, deps: [{ token: i1.PepDialogService }, { token: i2.PepInternalPageService }, { token: i3.PepCustomizationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
345
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PepInternalPageComponent, selector: "pep-internal-page", inputs: { field: "field", layoutType: "layoutType" }, outputs: { internalFormFieldChange: "internalFormFieldChange", internalFormFieldClick: "internalFormFieldClick" }, providers: [PepInternalPageService], viewQueries: [{ propertyName: "my1mm", first: true, predicate: ["my1mm"], descendants: true }, { propertyName: "mainViewCont", first: true, predicate: ["mainViewCont"], descendants: true }, { propertyName: "orgCont", first: true, predicate: ["orgCont"], descendants: true, read: ViewContainerRef }, { propertyName: "dialogCont", first: true, predicate: ["dialogCont"], descendants: true, read: ViewContainerRef }, { propertyName: "matrixTemplate", first: true, predicate: ["matrixTemplate"], descendants: true }, { propertyName: "matrixDialogTemplate", first: true, predicate: ["matrixDialogTemplate"], descendants: true, read: TemplateRef }, { propertyName: "customList", first: true, predicate: PepInternalListComponent, descendants: true }], ngImport: i0, template: "<ng-template #matrixHeaderTemplate>\n <div class=\"matrix-title-container pep-border-bottom align-{{\n field.xAlignment\n }}\" title=\"{{ field.label }}\">\n <span class=\"block-with-text body-md\">{{ field.label }}</span>\n\n <div class=\"buttons-container pep-spacing-element-negative pull-right flip\">\n <ng-container *ngIf=\"\n currentViewType?.Key == 'OrderCenterMatrix' &&\n additionalApiNames &&\n additionalApiNames.length > 0\n \">\n <button class=\"pep-spacing-element pep-button icon-button sm weak\" mat-button [matMenuTriggerFor]=\"menu\"\n menu-blur>\n <span class=\"pull-left flip\" *ngIf=\"currentAdditionalApiName\"> {{\n currentAdditionalApiName?.Value }} </span>\n\n <mat-icon [ngClass]=\"{'pull-left flip': currentAdditionalApiName}\">\n <pep-icon name=\"system_info\"></pep-icon>\n </mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item [ngClass]=\"{\n selected: currentAdditionalApiName === null\n }\" (click)=\"changeAdditionalApiName(null)\">\n <span>{{ \"LIST.NONE\" | translate }}</span>\n </button>\n <button mat-menu-item [ngClass]=\"{\n selected:\n currentAdditionalApiName?.Key ==\n additionalApiName?.Key\n }\" *ngFor=\"let additionalApiName of additionalApiNames\"\n (click)=\"changeAdditionalApiName(additionalApiName)\">\n <span>{{ additionalApiName.Value }}</span>\n </button>\n </mat-menu>\n </ng-container>\n <ng-container *ngIf=\"childViewTypes && childViewTypes.length > 1\">\n <button class=\"pep-spacing-element pep-button icon-button sm weak\" mat-button\n [matMenuTriggerFor]=\"viewsMenu\" menu-blur>\n <mat-icon>\n <pep-icon name=\"view_card_md\"></pep-icon>\n </mat-icon>\n </button>\n\n <mat-menu #viewsMenu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item [ngClass]=\"{\n selected: currentViewType?.Key == viewType?.Key\n }\" *ngFor=\"let viewType of childViewTypes\" (click)=\"changeChildrenViewType(viewType?.Key)\">\n <mat-icon [ngSwitch]=\"viewType?.Key\">\n <pep-icon *ngSwitchCase=\"'OrderCenterMatrix'\" name=\"view_matrix\"></pep-icon>\n <pep-icon *ngSwitchCase=\"'OrderCenterFlatMatrixGrid'\" name=\"view_table\"></pep-icon>\n <pep-icon *ngSwitchCase=\"'OrderCenterFlatMatrixLine'\" name=\"view_line\"></pep-icon>\n </mat-icon>\n <span>{{ viewType?.Value }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n </div>\n\n</ng-template>\n\n<ng-template #matrixTemplate>\n <div #matrixContainer class=\"matrix-container\">\n <pep-internal-list (valueChange)=\"onCustomizeObjectChanged($event)\" [parentScroll]=\"matrixContainer\"\n (fieldClick)=\"onCustomizeFieldClick($event)\" [totalsRow]=\"totalsRow\"></pep-internal-list>\n </div>\n</ng-template>\n\n<div #mainViewCont id=\"mainViewCont\" [ngStyle]=\"{ 'max-width': viewWidth, 'max-height': viewHeight }\">\n <div #my1mm id=\"my1_mm\" style=\"height:1mm;width:1mm;visibility: hidden;\"></div>\n <ng-container *ngIf=\"coverChildTable && uiControl != null\">\n <div class=\"table-cover\"></div>\n <button (click)=\"showMatrixDialog()\" class=\"pep-button strong sm table-cover-button\"\n [ngClass]=\"{ 'lineview-btn': currentViewType?.Key == 'OrderCenterFlatMatrixLine'}\">\n {{ \"INTERNAL_PAGE.CLICK_TO_ORDER\" | translate }}\n </button>\n </ng-container>\n\n <ng-container *ngTemplateOutlet=\"matrixHeaderTemplate\"></ng-container>\n <ng-container #orgCont></ng-container>\n</div>\n\n<ng-template #matrixDialogTemplate>\n\n <div mat-dialog-title>\n <ng-container *ngTemplateOutlet=\"matrixHeaderTemplate\"></ng-container>\n </div>\n\n <div mat-dialog-content>\n <ng-container #dialogCont></ng-container>\n </div>\n</ng-template>\n\n<!-- <div id=\"childGridModal\" bsModal (onShown)=\"onShown()\" (onHidden)=\"onHidden()\" #childModal=\"bs-modal\" class=\"modal\"\n tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"gridModalLabel\" aria-hidden=\"true\">\n <div class=\"modal-dialog\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-body matrix-dialog-body\">\n <ng-container #modalCont></ng-container>\n </div>\n </div>\n </div>\n</div> -->", styles: [":host{display:grid;width:inherit;height:inherit}.matrix-title-container{padding:0;height:var(--pep-form-field-height, 2.5rem);display:flex;align-items:flex-end}.matrix-title-container .block-with-text{width:100%;max-height:inherit;font-weight:var(--pep-font-weight-bold, 600);display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.matrix-title-container .buttons-container{display:flex;align-self:center}.matrix-title-container .buttons-container .pepperi-button,.matrix-title-container .buttons-container .pep-button{width:max-content}#mainViewCont{width:100%;height:inherit;overflow:hidden;padding:0 var(--pep-spacing-xs, .25rem)}#mainViewCont .table-cover{background-color:#fff;z-index:98;position:absolute;top:0;width:100%;height:inherit;opacity:.5}#mainViewCont .table-cover-button{position:absolute;left:50%;transform:translate(-50%,-50%);top:calc(50% + var(--pep-form-field-height, 2.5rem));z-index:99}#mainViewCont .table-cover-button.lineview-btn{top:calc(2 * var(--pep-form-field-height, 2.5rem));transform:translate(-50%)}#mainViewCont .underCover{max-height:inherit;overflow:hidden}#mainViewCont ::ng-deep .table-header{top:unset!important}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i7.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i8.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "component", type: i9.PepInternalListComponent, selector: "pep-internal-list", inputs: ["noDataFoundMsg", "hideAllSelectionInMulti", "top", "objectId", "parentId", "searchCode", "supportResizing", "parentScroll", "disabled", "disableEvents", "disableSelectionItems", "totalsRow"], outputs: ["fieldClick", "valueChange"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
346
|
+
}
|
|
347
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepInternalPageComponent, decorators: [{
|
|
348
|
+
type: Component,
|
|
349
|
+
args: [{ selector: 'pep-internal-page', providers: [PepInternalPageService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #matrixHeaderTemplate>\n <div class=\"matrix-title-container pep-border-bottom align-{{\n field.xAlignment\n }}\" title=\"{{ field.label }}\">\n <span class=\"block-with-text body-md\">{{ field.label }}</span>\n\n <div class=\"buttons-container pep-spacing-element-negative pull-right flip\">\n <ng-container *ngIf=\"\n currentViewType?.Key == 'OrderCenterMatrix' &&\n additionalApiNames &&\n additionalApiNames.length > 0\n \">\n <button class=\"pep-spacing-element pep-button icon-button sm weak\" mat-button [matMenuTriggerFor]=\"menu\"\n menu-blur>\n <span class=\"pull-left flip\" *ngIf=\"currentAdditionalApiName\"> {{\n currentAdditionalApiName?.Value }} </span>\n\n <mat-icon [ngClass]=\"{'pull-left flip': currentAdditionalApiName}\">\n <pep-icon name=\"system_info\"></pep-icon>\n </mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item [ngClass]=\"{\n selected: currentAdditionalApiName === null\n }\" (click)=\"changeAdditionalApiName(null)\">\n <span>{{ \"LIST.NONE\" | translate }}</span>\n </button>\n <button mat-menu-item [ngClass]=\"{\n selected:\n currentAdditionalApiName?.Key ==\n additionalApiName?.Key\n }\" *ngFor=\"let additionalApiName of additionalApiNames\"\n (click)=\"changeAdditionalApiName(additionalApiName)\">\n <span>{{ additionalApiName.Value }}</span>\n </button>\n </mat-menu>\n </ng-container>\n <ng-container *ngIf=\"childViewTypes && childViewTypes.length > 1\">\n <button class=\"pep-spacing-element pep-button icon-button sm weak\" mat-button\n [matMenuTriggerFor]=\"viewsMenu\" menu-blur>\n <mat-icon>\n <pep-icon name=\"view_card_md\"></pep-icon>\n </mat-icon>\n </button>\n\n <mat-menu #viewsMenu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item [ngClass]=\"{\n selected: currentViewType?.Key == viewType?.Key\n }\" *ngFor=\"let viewType of childViewTypes\" (click)=\"changeChildrenViewType(viewType?.Key)\">\n <mat-icon [ngSwitch]=\"viewType?.Key\">\n <pep-icon *ngSwitchCase=\"'OrderCenterMatrix'\" name=\"view_matrix\"></pep-icon>\n <pep-icon *ngSwitchCase=\"'OrderCenterFlatMatrixGrid'\" name=\"view_table\"></pep-icon>\n <pep-icon *ngSwitchCase=\"'OrderCenterFlatMatrixLine'\" name=\"view_line\"></pep-icon>\n </mat-icon>\n <span>{{ viewType?.Value }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n </div>\n\n</ng-template>\n\n<ng-template #matrixTemplate>\n <div #matrixContainer class=\"matrix-container\">\n <pep-internal-list (valueChange)=\"onCustomizeObjectChanged($event)\" [parentScroll]=\"matrixContainer\"\n (fieldClick)=\"onCustomizeFieldClick($event)\" [totalsRow]=\"totalsRow\"></pep-internal-list>\n </div>\n</ng-template>\n\n<div #mainViewCont id=\"mainViewCont\" [ngStyle]=\"{ 'max-width': viewWidth, 'max-height': viewHeight }\">\n <div #my1mm id=\"my1_mm\" style=\"height:1mm;width:1mm;visibility: hidden;\"></div>\n <ng-container *ngIf=\"coverChildTable && uiControl != null\">\n <div class=\"table-cover\"></div>\n <button (click)=\"showMatrixDialog()\" class=\"pep-button strong sm table-cover-button\"\n [ngClass]=\"{ 'lineview-btn': currentViewType?.Key == 'OrderCenterFlatMatrixLine'}\">\n {{ \"INTERNAL_PAGE.CLICK_TO_ORDER\" | translate }}\n </button>\n </ng-container>\n\n <ng-container *ngTemplateOutlet=\"matrixHeaderTemplate\"></ng-container>\n <ng-container #orgCont></ng-container>\n</div>\n\n<ng-template #matrixDialogTemplate>\n\n <div mat-dialog-title>\n <ng-container *ngTemplateOutlet=\"matrixHeaderTemplate\"></ng-container>\n </div>\n\n <div mat-dialog-content>\n <ng-container #dialogCont></ng-container>\n </div>\n</ng-template>\n\n<!-- <div id=\"childGridModal\" bsModal (onShown)=\"onShown()\" (onHidden)=\"onHidden()\" #childModal=\"bs-modal\" class=\"modal\"\n tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"gridModalLabel\" aria-hidden=\"true\">\n <div class=\"modal-dialog\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-body matrix-dialog-body\">\n <ng-container #modalCont></ng-container>\n </div>\n </div>\n </div>\n</div> -->", styles: [":host{display:grid;width:inherit;height:inherit}.matrix-title-container{padding:0;height:var(--pep-form-field-height, 2.5rem);display:flex;align-items:flex-end}.matrix-title-container .block-with-text{width:100%;max-height:inherit;font-weight:var(--pep-font-weight-bold, 600);display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.matrix-title-container .buttons-container{display:flex;align-self:center}.matrix-title-container .buttons-container .pepperi-button,.matrix-title-container .buttons-container .pep-button{width:max-content}#mainViewCont{width:100%;height:inherit;overflow:hidden;padding:0 var(--pep-spacing-xs, .25rem)}#mainViewCont .table-cover{background-color:#fff;z-index:98;position:absolute;top:0;width:100%;height:inherit;opacity:.5}#mainViewCont .table-cover-button{position:absolute;left:50%;transform:translate(-50%,-50%);top:calc(50% + var(--pep-form-field-height, 2.5rem));z-index:99}#mainViewCont .table-cover-button.lineview-btn{top:calc(2 * var(--pep-form-field-height, 2.5rem));transform:translate(-50%)}#mainViewCont .underCover{max-height:inherit;overflow:hidden}#mainViewCont ::ng-deep .table-header{top:unset!important}\n"] }]
|
|
350
|
+
}], ctorParameters: function () { return [{ type: i1.PepDialogService }, { type: i2.PepInternalPageService }, { type: i3.PepCustomizationService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { field: [{
|
|
351
|
+
type: Input
|
|
352
|
+
}], layoutType: [{
|
|
353
|
+
type: Input
|
|
354
|
+
}], internalFormFieldChange: [{
|
|
355
|
+
type: Output
|
|
356
|
+
}], internalFormFieldClick: [{
|
|
357
|
+
type: Output
|
|
358
|
+
}], my1mm: [{
|
|
359
|
+
type: ViewChild,
|
|
360
|
+
args: ['my1mm']
|
|
361
|
+
}], mainViewCont: [{
|
|
362
|
+
type: ViewChild,
|
|
363
|
+
args: ['mainViewCont']
|
|
364
|
+
}], orgCont: [{
|
|
365
|
+
type: ViewChild,
|
|
366
|
+
args: ['orgCont', { read: ViewContainerRef }]
|
|
367
|
+
}], dialogCont: [{
|
|
368
|
+
type: ViewChild,
|
|
369
|
+
args: ['dialogCont', { read: ViewContainerRef }]
|
|
370
|
+
}], matrixTemplate: [{
|
|
371
|
+
type: ViewChild,
|
|
372
|
+
args: ['matrixTemplate']
|
|
373
|
+
}], matrixDialogTemplate: [{
|
|
374
|
+
type: ViewChild,
|
|
375
|
+
args: ['matrixDialogTemplate', { read: TemplateRef }]
|
|
376
|
+
}], customList: [{
|
|
377
|
+
type: ViewChild,
|
|
378
|
+
args: [PepInternalListComponent]
|
|
379
|
+
}] } });
|
|
380
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtcGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2Zvcm0vaW50ZXJuYWwtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2Zvcm0vaW50ZXJuYWwtcGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUdULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFNBQVMsRUFFVCxnQkFBZ0IsRUFDaEIsV0FBVyxFQUNYLHVCQUF1QixHQUUxQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVqRSxPQUFPLEVBT0gsVUFBVSxHQUNiLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUNILHdCQUF3QixHQUUzQixNQUFNLDJCQUEyQixDQUFDO0FBTW5DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7Ozs7Ozs7Ozs7QUFTekYsTUFBTSxPQUFPLHdCQUF3QjtJQXdEckI7SUFDQTtJQUNEO0lBQ0M7SUExRFosTUFBTSxDQUFDLDJCQUEyQixHQUM5Qix1Q0FBdUMsQ0FBQztJQUU1QyxXQUFXLEdBQUcsY0FBYyxDQUFDO0lBRXBCLEtBQUssQ0FBTTtJQUNYLFVBQVUsR0FBa0IsTUFBTSxDQUFDO0lBRzVDLHVCQUF1QixHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBRXJFLHNCQUFzQixHQUEwQyxJQUFJLFlBQVksRUFBMkIsQ0FBQztJQUV4RixLQUFLLENBQWE7SUFDWCxZQUFZLENBQWE7SUFFRixPQUFPLENBQW1CO0lB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Q0FBQyx5UkFvQkwsZ0JBQWdCLG1HQUNiLGdCQUFnQiwwTkFHTixXQUFXLDBEQUczQyx3QkFBd0IsZ0RDdEV2Qyw0bktBd0dVOzs0RkQxREcsd0JBQXdCO2tCQVBwQyxTQUFTOytCQUNJLG1CQUFtQixhQUdsQixDQUFDLHNCQUFzQixDQUFDLG1CQUNsQix1QkFBdUIsQ0FBQyxNQUFNO2tOQVF0QyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFHTix1QkFBdUI7c0JBRHRCLE1BQU07Z0JBR1Asc0JBQXNCO3NCQURyQixNQUFNO2dCQUdhLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFDUyxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBRXlCLE9BQU87c0JBQXhELFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQUVoRCxVQUFVO3NCQURULFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQUV0QixjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQjtnQkFFM0Isb0JBQW9CO3NCQURuQixTQUFTO3VCQUFDLHNCQUFzQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFJeEQsVUFBVTtzQkFEVCxTQUFTO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIE9uSW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBWaWV3Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFBlcEludGVybmFsUGFnZVNlcnZpY2UgfSBmcm9tICcuL2ludGVybmFsLXBhZ2Uuc2VydmljZSc7XG5cbmltcG9ydCB7XG4gICAgUGVwTGF5b3V0VHlwZSxcbiAgICBVSUNvbnRyb2wsXG4gICAgS2V5VmFsdWVQYWlyLFxuICAgIFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLFxuICAgIFVJQ29udHJvbEZpZWxkLFxuICAgIE9iamVjdHNEYXRhLFxuICAgIEZJRUxEX1RZUEUsXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7XG4gICAgUGVwSW50ZXJuYWxMaXN0Q29tcG9uZW50LFxuICAgIFBlcExpc3RWaWV3VHlwZSxcbn0gZnJvbSAnLi9pbnRlcm5hbC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIElQZXBGb3JtRmllbGRDbGlja0V2ZW50LFxuICAgIElQZXBGb3JtRmllbGRWYWx1ZUNoYW5nZUV2ZW50LFxufSBmcm9tICcuL2Zvcm0ubW9kZWwnO1xuaW1wb3J0IHsgUGVwRGlhbG9nU2VydmljZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2RpYWxvZyc7XG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFBlcFF1YW50aXR5U2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9xdWFudGl0eS1zZWxlY3Rvcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGVwLWludGVybmFsLXBhZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnRlcm5hbC1wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnRlcm5hbC1wYWdlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbUGVwSW50ZXJuYWxQYWdlU2VydmljZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFBlcEludGVybmFsUGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBzdGF0aWMgQ1VSUkVOVF9BRERJVElPTkFMX0FQSV9OQU1FID1cbiAgICAgICAgJ2l0ZW1fZGV0YWlsc19jdXJyZW50QWRkaXRpb25hbEFwaU5hbWUnO1xuXG4gICAgY29udHJvbFR5cGUgPSAnaW50ZXJuYWxQYWdlJztcblxuICAgIEBJbnB1dCgpIGZpZWxkOiBhbnk7XG4gICAgQElucHV0KCkgbGF5b3V0VHlwZTogUGVwTGF5b3V0VHlwZSA9ICdmb3JtJztcblxuICAgIEBPdXRwdXQoKVxuICAgIGludGVybmFsRm9ybUZpZWxkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKVxuICAgIGludGVybmFsRm9ybUZpZWxkQ2xpY2s6IEV2ZW50RW1pdHRlcjxJUGVwRm9ybUZpZWxkQ2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPElQZXBGb3JtRmllbGRDbGlja0V2ZW50PigpO1xuXG4gICAgQFZpZXdDaGlsZCgnbXkxbW0nKSBteTFtbTogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdtYWluVmlld0NvbnQnKSBtYWluVmlld0NvbnQ6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKCdvcmdDb250JywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIG9yZ0NvbnQ6IFZpZXdDb250YWluZXJSZWY7XG4gICAgQFZpZXdDaGlsZCgnZGlhbG9nQ29udCcsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KVxuICAgIGRpYWxvZ0NvbnQ6IFZpZXdDb250YWluZXJSZWY7XG4gICAgQFZpZXdDaGlsZCgnbWF0cml4VGVtcGxhdGUnKSBtYXRyaXhUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBAVmlld0NoaWxkKCdtYXRyaXhEaWFsb2dUZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgICBtYXRyaXhEaWFsb2dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoUGVwSW50ZXJuYWxMaXN0Q29tcG9uZW50KVxuICAgIGN1c3RvbUxpc3Q6IFBlcEludGVybmFsTGlzdENvbXBvbmVudDtcblxuICAgIHJlc2l6ZTogYW55O1xuICAgIGNoZWNrRm9yQ2hhbmdlczogYW55ID0gbnVsbDtcblxuICAgIGNoaWxkRGF0YTogYW55ID0gbnVsbDtcblxuICAgIGVtcHR5Rm9ybTogRm9ybUdyb3VwO1xuICAgIHVpQ29udHJvbDogVUlDb250cm9sO1xuICAgIHJvd3M6IGFueTtcbiAgICBsaW5lVmlld1Jvd3M6IGFueTtcbiAgICB0b3RhbHNSb3c6IGFueSA9IFtdO1xuICAgIGFkZGl0aW9uYWxBcGlOYW1lczogYW55ID0gbnVsbDtcbiAgICBjdXJyZW50QWRkaXRpb25hbEFwaU5hbWU6IGFueSA9IG51bGw7XG4gICAgZm9jdXNlZFFTID0gZmFsc2U7XG4gICAgZmllbGRJZFdpdGhGb2N1cyA9ICcnO1xuICAgIGNvbHVtbldpZHRoID0gMTAwO1xuICAgIGNvdmVyQ2hpbGRUYWJsZSA9IGZhbHNlO1xuICAgIGNoaWxkVmlld1R5cGVzOiBBcnJheTxLZXlWYWx1ZVBhaXI8c3RyaW5nPj47XG4gICAgY3VycmVudFZpZXdUeXBlOiBLZXlWYWx1ZVBhaXI8c3RyaW5nPiA9IG51bGw7XG4gICAgY3VycmVudFZpZXdUeXBlVGl0bGU6IHN0cmluZztcbiAgICBzdW1PZk1pbkNvbFdpZHRoID0gMDtcbiAgICB0b3RhbFJvd3NXaWR0aCA9IDA7XG4gICAgdmlld1dpZHRoID0gJzEwMCUnO1xuICAgIHZpZXdIZWlnaHQgPSAnYXV0byc7XG4gICAgZGlzcGxheVFTYnRucyA9IHRydWU7XG4gICAgc2VsZWN0ZWRBcGlOYW1lID0gJyc7XG4gICAgc2hvd1NvcnQgPSBmYWxzZTtcbiAgICBkZWZhdWx0Um93U3BhbiA9IC0xO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogUGVwRGlhbG9nU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBpbnRlcm5hbFBhZ2VTZXJ2aWNlOiBQZXBJbnRlcm5hbFBhZ2VTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgY3VzdG9taXphdGlvblNlcnZpY2U6IFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkgeyB9XG5cbiAgICBwcml2YXRlIGZpbGxEYXRhKGlzSW5EaWFsb2cgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBjb25zdCB2aWV3ID0gdGhpcy5tYXRyaXhUZW1wbGF0ZS5jcmVhdGVFbWJlZGRlZFZpZXcobnVsbCk7XG5cbiAgICAgICAgdGhpcy5jdXN0b21MaXN0Py5jbGVhcigpO1xuICAgICAgICB0aGlzLm9yZ0NvbnQ/LmNsZWFyKCk7XG5cbiAgICAgICAgaWYgKGlzSW5EaWFsb2cpIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nQ29udD8uY2xlYXIoKTtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nQ29udD8uaW5zZXJ0KHZpZXcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vcmdDb250Py5pbnNlcnQodmlldyk7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZpZXdUeXBlOiBQZXBMaXN0Vmlld1R5cGUgPSB0aGlzLmlzVGFibGVWaWV3KClcbiAgICAgICAgICAgICAgICA/ICd0YWJsZSdcbiAgICAgICAgICAgICAgICA6ICdsaW5lcyc7XG4gICAgICAgICAgICB0aGlzLmN1c3RvbUxpc3QuaW5pdExpc3REYXRhKFxuICAgICAgICAgICAgICAgIHRoaXMudWlDb250cm9sLFxuICAgICAgICAgICAgICAgIHRoaXMuY2hpbGREYXRhLlRvdGFsUm93cyxcbiAgICAgICAgICAgICAgICB0aGlzLmNoaWxkRGF0YS5Sb3dzLFxuICAgICAgICAgICAgICAgIHZpZXdUeXBlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5zZXRUb3RhbHNSb3coKTtcblxuICAgICAgICAgICAgLy8gaWYgKCF0aGlzLmNoaWxkTW9kYWwuaXNTaG93bikge1xuICAgICAgICAgICAgY29uc3QgY2hpbGRyZW5Db3VudCA9IHRoaXMuY2hpbGREYXRhLlJvd3NcbiAgICAgICAgICAgICAgICA/IHRoaXMuY2hpbGREYXRhLlJvd3MubGVuZ3RoXG4gICAgICAgICAgICAgICAgOiAwO1xuICAgICAgICAgICAgY29uc3QgaXNFdmVuID0gY2hpbGRyZW5Db3VudCAlIDIgPT09IDA7XG4gICAgICAgICAgICAvLyAzIGZvciBtYXRyaXggJiBmbGF0IG1hdHJpeCBiZWNhdXNlIHRoZSBoZWFkZXIgKyB0b3RhbCBpcyAyIG1vcmUgcm93cy5cbiAgICAgICAgICAgIGNvbnN0IHJvd3NUb0FkZCA9XG4gICAgICAgICAgICAgICAgdGhpcy5pc01hdHJpeFZpZXcoKSB8fCB0aGlzLmlzRmxhdE1hdHJpeFZpZXcoKVxuICAgICAgICAgICAgICAgICAgICA/IGlzRXZlblxuICAgICAgICAgICAgICAgICAgICAgICAgPyAzXG4gICAgICAgICAgICAgICAgICAgICAgICA6IDRcbiAgICAgICAgICAgICAgICAgICAgOiAxO1xuXG4gICAgICAgICAgICBjb25zdCBmb3JtUm93SGVpZ2h0ID1cbiAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbWl6YXRpb25TZXJ2aWNlLmNhbGN1bGF0ZUZvcm1GaWVsZEhlaWdodCgpICogMTY7IC8vIGNvbnZlcnQgcmVtIHRvIHBpeGVsXG5cbiAgICAgICAgICAgIC8vIFNldCB0aGUgZGVmYXVsdCBvbmx5IGlmIG5vdCBzZXQgeWV0LlxuICAgICAgICAgICAgaWYgKHRoaXMuZGVmYXVsdFJvd1NwYW4gPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0Um93U3BhbiA9IHRoaXMuZmllbGQucm93U3BhbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zdW1PZk1pbkNvbFdpZHRoID0gMDtcbiAgICAgICAgICAgIHRoaXMudG90YWxSb3dzV2lkdGggPSAwO1xuXG4gICAgICAgICAgICB0aGlzLmNoaWxkRGF0YS5VSUNvbnRyb2wuQ29udHJvbEZpZWxkcy5mb3JFYWNoKFxuICAgICAgICAgICAgICAgICh1aUNvbnRyb2xGaWVsZDogVUlDb250cm9sRmllbGQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b3RhbFJvd3NXaWR0aCArPSB1aUNvbnRyb2xGaWVsZC5Db2x1bW5XaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sRmllbGQubWluRmllbGRXaWR0aCA9IHRoaXMubW1Ub1B4KDEyKTsgLy8gTkVFRCBUTyBHRVQgVEhJUyBQQVJBTSBGUk9NIENVU1RPTUlaQVRJT047XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3VtT2ZNaW5Db2xXaWR0aCArPSAxMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB0aGlzLnNldFZpZXdDb3Zlcih0aGlzLmNoaWxkRGF0YS5Sb3dzKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuY292ZXJDaGlsZFRhYmxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZC5yb3dTcGFuID0gdGhpcy5kZWZhdWx0Um93U3BhbjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gRm9yIGxpbmUgdmlldyBBZGQgdGhlIGhlaWdodCBvZiB0aGUgbGluZSAoZm9ybSBoZWlnaHQpLlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRWaWV3VHlwZS5LZXkgPT09ICdPcmRlckNlbnRlckZsYXRNYXRyaXhMaW5lJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXhSb3cgPSBNYXRoLm1heChcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMudWlDb250cm9sLkNvbnRyb2xGaWVsZHMubWFwKChmKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGYuTGF5b3V0LlkgKyBmLkxheW91dC5IZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vICogMTYgY29udmVydCByZW0gdG8gcGl4ZWxcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FyZFJvd3NIZWlnaHQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXN0b21pemF0aW9uU2VydmljZS5jYWxjdWxhdGVDYXJkUm93c0hlaWdodChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhSb3dcbiAgICAgICAgICAgICAgICAgICAgICAgICkgKiAxNjtcblxuICAgICAgICAgICAgICAgICAgICAvLyBtYXhSb3cgKiAyNCArIDYwIC0gMjQgZm9yIGVhY2ggcm93IGluIGNhcmQgKyA2MCBmb3IgdGhlIHBhZGRpbmcgb2YgZWFjaCBjYXJkLlxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zdCByb3dTcGFuVG9BZGQgPSBjaGlsZHJlbkNvdW50ICogKChjYXJkUm93c0hlaWdodCArIDI0KSAvIGZvcm1Sb3dIZWlnaHQpICsgcm93c1RvQWRkO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByb3dTcGFuVG9BZGQgPSBcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGlsZHJlbkNvdW50ICogKGNhcmRSb3dzSGVpZ2h0ICsgMjQpKSAvXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtUm93SGVpZ2h0ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3NUb0FkZDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZC5yb3dTcGFuID0gcm93U3BhblRvQWRkO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnN0IHRhYmxlUm93c0hlaWdodCA9IHRoaXMuY3VzdG9taXphdGlvblNlcnZpY2UuY2FsY3VsYXRlVGFibGVSb3dzSGVpZ2h0KGNoaWxkcmVuQ291bnQpICogMTY7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuZmllbGQucm93U3BhbiA9IE1hdGguY2VpbCgodGFibGVSb3dzSGVpZ2h0ICsgKHJvd3NUb0FkZCAqIDQwKSkgLyBmb3JtUm93SGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gKiAxNiBjb252ZXJ0IHJlbSB0byBwaXhlbFxuICAgICAgICAgICAgICAgICAgICBjb25zdCByb3dzVG9BZGRIZWlnaHQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXN0b21pemF0aW9uU2VydmljZS5jYWxjdWxhdGVUYWJsZVJvd3NIZWlnaHQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93c1RvQWRkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICApICogMTY7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhYmxlUm93c0hlaWdodCA9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbWl6YXRpb25TZXJ2aWNlLmNhbGN1bGF0ZVRhYmxlUm93c0hlaWdodChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbkNvdW50XG4gICAgICAgICAgICAgICAgICAgICAgICApICogMTY7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQucm93U3BhbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAocm93c1RvQWRkSGVpZ2h0ICsgdGFibGVSb3dzSGVpZ2h0KSAvIGZvcm1Sb3dIZWlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCAwKTtcblxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmlsbENoaWxkRGF0YShyZXM6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoaWxkRGF0YSA9IHJlcztcbiAgICAgICAgdGhpcy51aUNvbnRyb2wgPSByZXMuVUlDb250cm9sO1xuICAgICAgICB0aGlzLmFkZGl0aW9uYWxBcGlOYW1lcyA9IHJlcy5BZGRpdGlvbmFsQXBpTmFtZXM7XG5cbiAgICAgICAgdGhpcy5maWxsRGF0YSgpO1xuICAgIH1cblxuICAgIG1tVG9QeChtbSk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGhlaWdodCA9IHRoaXMubXkxbW0ubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKG1tICogaGVpZ2h0KTsgLy8gcmV0dXJucyBzaXplcyBpbiBQWFxuICAgIH1cblxuICAgIHByaXZhdGUgaXNNYXRyaXhWaWV3KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5jdXJyZW50Vmlld1R5cGUgJiZcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFZpZXdUeXBlLktleSA9PT0gJ09yZGVyQ2VudGVyTWF0cml4J1xuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNGbGF0TWF0cml4VmlldygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFZpZXdUeXBlICYmXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRWaWV3VHlwZS5LZXkgPT09ICdPcmRlckNlbnRlckZsYXRNYXRyaXhHcmlkJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIGlzVGFibGVWaWV3KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc01hdHJpeFZpZXcoKSB8fCB0aGlzLmlzRmxhdE1hdHJpeFZpZXcoKTtcbiAgICB9XG5cbiAgICBjaGFuZ2VDaGlsZHJlblZpZXdUeXBlKHZpZXdUeXBlS2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yb3dzID0gW107XG4gICAgICAgIHRoaXMudWlDb250cm9sID0gbnVsbDtcblxuICAgICAgICBmb3IgKGNvbnN0IHZ0IG9mIHRoaXMuY2hpbGRWaWV3VHlwZXMpIHtcbiAgICAgICAgICAgIGlmICh2dC5LZXkgPT09IHZpZXdUeXBlS2V5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Vmlld1R5cGUgPSB2dDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY3VycmVudFZpZXdUeXBlVGl0bGUgPSB0aGlzLmN1cnJlbnRWaWV3VHlwZS5WYWx1ZTtcblxuICAgICAgICB0aGlzLmludGVybmFsUGFnZVNlcnZpY2UuY2hhbmdlQ2hpbGRyZW5WaWV3VHlwZShcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFZpZXdUeXBlLktleSxcbiAgICAgICAgICAgIChyZXM6IE9iamVjdHNEYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlcy5Sb3dzKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsbENoaWxkRGF0YShyZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzZXRWaWV3Q292ZXIocm93cyk6IHZvaWQge1xuICAgICAgICBpZiAoIXJvd3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1hdHJpeENvbnQgPSB0aGlzLm1haW5WaWV3Q29udC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCB2aWV3V2lkdGggPSBtYXRyaXhDb250LmNsaWVudFdpZHRoO1xuXG4gICAgICAgIHRoaXMudmlld1dpZHRoID0gdmlld1dpZHRoID8gdmlld1dpZHRoLnRvU3RyaW5nKCkgOiAnMTAwJSc7XG5cbiAgICAgICAgLy8gaWYgdGhlIG1hdHJpeCBsb2NhdGVkIG9uIHRoZSBib3R0b20gLyB0aGVyZSBpcyBub3RoaW5nIHVuZGVyIHRoZSBtYXRyaXggd2UgZG9udCBuZWVkIHRvIGNoZWNrIHRoZSBoZWlnaHRcbiAgICAgICAgaWYgKHBhcnNlSW50KHZpZXdXaWR0aCwgMTApIDwgdGhpcy5tbVRvUHgodGhpcy5zdW1PZk1pbkNvbFdpZHRoKSkge1xuICAgICAgICAgICAgdGhpcy5jb3ZlckNoaWxkVGFibGUgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb3ZlckNoaWxkVGFibGUgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgc2hvd01hdHJpeERpYWxvZygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5kaWFsb2dTZXJ2aWNlLmdldERpYWxvZ0NvbmZpZyhcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkaXNhYmxlQ2xvc2U6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICdsYXJnZSdcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbkRpYWxvZyhcbiAgICAgICAgICAgIHRoaXMubWF0cml4RGlhbG9nVGVtcGxhdGUsXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIGNvbmZpZ1xuICAgICAgICApO1xuXG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlck9wZW5lZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZpbGxEYXRhKHRydWUpO1xuICAgICAgICB9KTtcblxuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZpbGxEYXRhKGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIGxldCBmaWVsZCA9IHRoaXMuZmllbGQgYXMgUGVwSW50ZXJuYWxQYWdlRmllbGQ7XG5cbiAgICAgICAgdGhpcy5pbnRlcm5hbFBhZ2VTZXJ2aWNlLmluaXREZXRhaWxzKFxuICAgICAgICAgICAgdGhpcy5maWVsZC5vYmplY3RJZCxcbiAgICAgICAgICAgIHRoaXMuZmllbGQucGFyZW50SWQsXG4gICAgICAgICAgICB0aGlzLmZpZWxkLnNlYXJjaENvZGUsXG4gICAgICAgICAgICAocmVzVmlld1R5cGVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBteSBjb2RlIERJLTcxMzRcbiAgICAgICAgICAgICAgICByZXNWaWV3VHlwZXMuUm93cyA9IHJlc1ZpZXdUeXBlcy5Sb3dzLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgKGl0ZW0pID0+IGl0ZW0uS2V5ICE9PSAnT3JkZXJDZW50ZXJWaWV3MSdcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgaWYgKHJlc1ZpZXdUeXBlcy5Sb3dzICYmIHJlc1ZpZXdUeXBlcy5Sb3dzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNWaWV3VHlwZXMuRGVmYXVsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzVmlld1R5cGVzLkRlZmF1bHQgPSByZXNWaWV3VHlwZXMuUm93c1swXS5LZXk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGlsZFZpZXdUeXBlcyA9IHJlc1ZpZXdUeXBlcy5Sb3dzO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRWaWV3VHlwZSA9IHJlc1ZpZXdUeXBlcy5Sb3dzWzBdO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzVmlld1R5cGVzLlJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCB2aWV3VHlwZVJvdyBvZiByZXNWaWV3VHlwZXMuUm93cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZpZXdUeXBlUm93LlZhbHVlID09PSByZXNWaWV3VHlwZXMuRGVmYXVsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFZpZXdUeXBlID0gdmlld1R5cGVSb3c7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRMYXN0QWRkaXRpb25hbEFwaU5hbWUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VDaGlsZHJlblZpZXdUeXBlKHRoaXMuY3VycmVudFZpZXdUeXBlLktleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMucmVzaXplID0gZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTApKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFZpZXdDb3Zlcih0aGlzLnJvd3MpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbG9hZExhc3RBZGRpdGlvbmFsQXBpTmFtZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGFhID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcbiAgICAgICAgICAgIFBlcEludGVybmFsUGFnZUNvbXBvbmVudC5DVVJSRU5UX0FERElUSU9OQUxfQVBJX05BTUVcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGRhYSAmJiBkYWEubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgYWRkaXRpb25hbEFwaU5hbWUgPSBKU09OLnBhcnNlKGRhYSk7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRBZGRpdGlvbmFsQXBpTmFtZSA9IGFkZGl0aW9uYWxBcGlOYW1lO1xuICAgICAgICAgICAgdGhpcy5pbnRlcm5hbFBhZ2VTZXJ2aWNlLmFkZGl0aW9uYWxBcGlOYW1lID0gYWRkaXRpb25hbEFwaU5hbWU/LktleTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yZXNpemUpIHtcbiAgICAgICAgICAgIHRoaXMucmVzaXplLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjaGFuZ2VBZGRpdGlvbmFsQXBpTmFtZShhZGRpdGlvbmFsQXBpTmFtZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmludGVybmFsUGFnZVNlcnZpY2UuY2hhbmdlQWRkaXRpb25hbEFwaU5hbWUoXG4gICAgICAgICAgICBhZGRpdGlvbmFsQXBpTmFtZSA/IGFkZGl0aW9uYWxBcGlOYW1lLktleSA6ICcnLFxuICAgICAgICAgICAgKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHJlcy5Sb3dzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgcm93IG9mIHJlcy5Sb3dzKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ2hhbmdlcyhyb3cpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcbiAgICAgICAgICAgIFBlcEludGVybmFsUGFnZUNvbXBvbmVudC5DVVJSRU5UX0FERElUSU9OQUxfQVBJX05BTUUsXG4gICAgICAgICAgICBKU09OLnN0cmluZ2lmeShhZGRpdGlvbmFsQXBpTmFtZSlcbiAgICAgICAgKTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEFkZGl0aW9uYWxBcGlOYW1lID0gYWRkaXRpb25hbEFwaU5hbWU7XG4gICAgICAgIH0sIDApO1xuICAgIH1cblxuICAgIHNldFRvdGFsc1JvdygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50b3RhbHNSb3cgPSBbXTtcblxuICAgICAgICBpZiAodGhpcy5pc01hdHJpeFZpZXcoKSB8fCB0aGlzLmlzRmxhdE1hdHJpeFZpZXcoKSkge1xuICAgICAgICAgICAgbGV0IHRvdGFsQ29sID0gMDtcblxuICAgICAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLmN1c3RvbUxpc3QuaXRlbXM7XG4gICAgICAgICAgICBpZiAoaXRlbXMpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBjb2wgPSAwOyBjb2wgPCBpdGVtc1swXS5GaWVsZHMubGVuZ3RoOyBjb2wrKykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWVsZCA9IGl0ZW1zWzBdLkZpZWxkc1tjb2xdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5GaWVsZFR5cGUgPT09IEZJRUxEX1RZUEUuTnVtYmVySW50ZWdlckZvck1hdHJpeCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQuRmllbGRUeXBlID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgRklFTERfVFlQRS5OdW1iZXJJbnRlZ2VyUXVhbnRpdHlTZWxlY3RvciB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQuRmllbGRUeXBlID09PSBGSUVMRF9UWVBFLk51bWJlclJlYWxGb3JNYXRyaXggfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLkZpZWxkVHlwZSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgIEZJRUxEX1RZUEUuTnVtYmVyUmVhbFF1YW50aXR5U2VsZWN0b3IgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLkZpZWxkVHlwZSA9PT0gRklFTERfVFlQRS5DYWxjdWxhdGVkSW50IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5GaWVsZFR5cGUgPT09IEZJRUxEX1RZUEUuTnVtYmVySW50ZWdlciB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQuRmllbGRUeXBlID09PSBGSUVMRF9UWVBFLkNhbGN1bGF0ZWRSZWFsIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5GaWVsZFR5cGUgPT09IEZJRUxEX1RZUEUuTnVtYmVyUmVhbFxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsQ29sID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbGlzdEl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RJdGVtLkZpZWxkc1tjb2xdICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RJdGVtLkZpZWxkc1tjb2xdLlZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG51bSA9IHBhcnNlRmxvYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0SXRlbS5GaWVsZHNbY29sXS5WYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbENvbCArPSBpc05hTihudW0pID8gMCA6IG51bTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvdGFsc1Jvdy5wdXNoKHRvdGFsQ29sKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG90YWxzUm93LnB1c2goJycpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlQ2hhbmdlcyhlbGVtZW50VG9VcGRhdGU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1c3RvbUxpc3QudXBkYXRlSXRlbShlbGVtZW50VG9VcGRhdGUpO1xuXG4gICAgICAgIC8vIFVwZGF0ZSBtZW1vcnkgZGF0YVxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5jaGlsZERhdGEuUm93cy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNoaWxkRGF0YS5Sb3dzW2luZGV4XS5VSUQgPT09IGVsZW1lbnRUb1VwZGF0ZS5VSUQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoaWxkRGF0YS5Sb3dzW2luZGV4XSA9IGVsZW1lbnRUb1VwZGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldFZhbHVlQ2FsbGJhY2soaWQ6IGFueSwgcmVzOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHJlcy5Sb3dzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgY29uc3QgZmllbGQgPSByZXMuUm93c1swXS5GaWVsZHMuZmluZCgoZikgPT4gZi5BcGlOYW1lID09PSAnT2JqZWN0TWVudScpO1xuICAgICAgICAgICAgaWYgKGZpZWxkKSB7XG4gICAgICAgICAgICAgICAgLy8gSEFDSyA6IFVudGlsIFwiRW5hYmxlZFwiIHJldHVybnMgZnJvbSB0aGUgc2VydmVyLCB3ZSBzZXQgUGVwTWVudSB0byBiZVxuICAgICAgICAgICAgICAgIC8vICAgICAgICBEaXNhYmxlZCBpbiBjYXJ0IG9uIHJlZ3VsYXIgaXRlbXMgYW5kIG5vdCBjYW1waWduIGl0ZW1zLlxuICAgICAgICAgICAgICAgIGZpZWxkLkVuYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNoYW5nZXMocmVzLlJvd3NbMF0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRUb3RhbHNSb3coKTtcbiAgICAgICAgdGhpcy5jaGVja0ZvckNoYW5nZXMgPSBuZXcgRGF0ZSgpO1xuXG4gICAgICAgIC8vIERJLTE1OTg1XG4gICAgICAgIHRoaXMuaW50ZXJuYWxGb3JtRmllbGRDaGFuZ2UuZW1pdChyZXMpO1xuXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgb25DdXN0b21pemVPYmplY3RDaGFuZ2VkKFxuICAgICAgICBjdXN0b21pemVPYmplY3RDaGFuZ2VkRGF0YTogSVBlcEZvcm1GaWVsZFZhbHVlQ2hhbmdlRXZlbnRcbiAgICApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbFBhZ2VTZXJ2aWNlLmNoaWxkVmFsdWVDaGFuZ2VkKFxuICAgICAgICAgICAgY3VzdG9taXplT2JqZWN0Q2hhbmdlZERhdGEuaWQsXG4gICAgICAgICAgICBjdXN0b21pemVPYmplY3RDaGFuZ2VkRGF0YS5rZXksXG4gICAgICAgICAgICBjdXN0b21pemVPYmplY3RDaGFuZ2VkRGF0YS52YWx1ZSxcbiAgICAgICAgICAgIChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVDYWxsYmFjayhjdXN0b21pemVPYmplY3RDaGFuZ2VkRGF0YS5pZCwgcmVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvbkN1c3RvbWl6ZUZpZWxkQ2xpY2soZmllbGRDbGlja0V2ZW50OiBJUGVwRm9ybUZpZWxkQ2xpY2tFdmVudCk6IHZvaWQge1xuICAgICAgICBsZXQgaGFuZGxlZEV2ZW50ID0gZmFsc2U7XG5cbiAgICAgICAgLy8gRm9yIHRoZSBuZXcgY3VzdG9tIGZvcm0sIHRoZSBwbHVzIGFuZCBtaW51cyBldmVudHMgdHJhbnNmb3JtIGluIHRoZSBJUGVwRm9ybUZpZWxkVmFsdWVDaGFuZ2VFdmVudFxuICAgICAgICBpZiAoZmllbGRDbGlja0V2ZW50LmNvbnRyb2xUeXBlID09PSAncXMnKSB7XG4gICAgICAgICAgICBpZiAoZmllbGRDbGlja0V2ZW50LnZhbHVlID09PSBQZXBRdWFudGl0eVNlbGVjdG9yQ29tcG9uZW50LlBMVVMpIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVkRXZlbnQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxQYWdlU2VydmljZS5jaGlsZFBsdXNDbGljayhcbiAgICAgICAgICAgICAgICAgICAgZmllbGRDbGlja0V2ZW50LmlkLFxuICAgICAgICAgICAgICAgICAgICBmaWVsZENsaWNrRXZlbnQua2V5LFxuICAgICAgICAgICAgICAgICAgICAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVDYWxsYmFjayhmaWVsZENsaWNrRXZlbnQuaWQsIHJlcyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICBmaWVsZENsaWNrRXZlbnQudmFsdWUgPT09IFBlcFF1YW50aXR5U2VsZWN0b3JDb21wb25lbnQuTUlOVVNcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGhhbmRsZWRFdmVudCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbFBhZ2VTZXJ2aWNlLmNoaWxkTWludXNDbGljayhcbiAgICAgICAgICAgICAgICAgICAgZmllbGRDbGlja0V2ZW50LmlkLFxuICAgICAgICAgICAgICAgICAgICBmaWVsZENsaWNrRXZlbnQua2V5LFxuICAgICAgICAgICAgICAgICAgICAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVDYWxsYmFjayhmaWVsZENsaWNrRXZlbnQuaWQsIHJlcyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFoYW5kbGVkRXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxGb3JtRmllbGRDbGljay5lbWl0KGZpZWxkQ2xpY2tFdmVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI21hdHJpeEhlYWRlclRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJtYXRyaXgtdGl0bGUtY29udGFpbmVyIHBlcC1ib3JkZXItYm90dG9tIGFsaWduLXt7XG4gICAgICAgICAgICBmaWVsZC54QWxpZ25tZW50XG4gICAgICAgIH19XCIgdGl0bGU9XCJ7eyBmaWVsZC5sYWJlbCB9fVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImJsb2NrLXdpdGgtdGV4dCBib2R5LW1kXCI+e3sgZmllbGQubGFiZWwgfX08L3NwYW4+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbnMtY29udGFpbmVyIHBlcC1zcGFjaW5nLWVsZW1lbnQtbmVnYXRpdmUgcHVsbC1yaWdodCBmbGlwXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRWaWV3VHlwZT8uS2V5ID09ICdPcmRlckNlbnRlck1hdHJpeCcgJiZcbiAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbEFwaU5hbWVzICYmXG4gICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxBcGlOYW1lcy5sZW5ndGggPiAwXG4gICAgICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInBlcC1zcGFjaW5nLWVsZW1lbnQgcGVwLWJ1dHRvbiBpY29uLWJ1dHRvbiBzbSB3ZWFrXCIgbWF0LWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiXG4gICAgICAgICAgICAgICAgICAgIG1lbnUtYmx1cj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwdWxsLWxlZnQgZmxpcFwiICpuZ0lmPVwiY3VycmVudEFkZGl0aW9uYWxBcGlOYW1lXCI+Jm5ic3A7e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRBZGRpdGlvbmFsQXBpTmFtZT8uVmFsdWUgfX0mbmJzcDs8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIFtuZ0NsYXNzXT1cInsncHVsbC1sZWZ0IGZsaXAnOiBjdXJyZW50QWRkaXRpb25hbEFwaU5hbWV9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGVwLWljb24gbmFtZT1cInN5c3RlbV9pbmZvXCI+PC9wZXAtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgeFBvc2l0aW9uPVwiYmVmb3JlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IGN1cnJlbnRBZGRpdGlvbmFsQXBpTmFtZSA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgfVwiIChjbGljayk9XCJjaGFuZ2VBZGRpdGlvbmFsQXBpTmFtZShudWxsKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgXCJMSVNULk5PTkVcIiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRBZGRpdGlvbmFsQXBpTmFtZT8uS2V5ID09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxBcGlOYW1lPy5LZXlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cIiAqbmdGb3I9XCJsZXQgYWRkaXRpb25hbEFwaU5hbWUgb2YgYWRkaXRpb25hbEFwaU5hbWVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VBZGRpdGlvbmFsQXBpTmFtZShhZGRpdGlvbmFsQXBpTmFtZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGFkZGl0aW9uYWxBcGlOYW1lLlZhbHVlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2hpbGRWaWV3VHlwZXMgJiYgY2hpbGRWaWV3VHlwZXMubGVuZ3RoID4gMVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJwZXAtc3BhY2luZy1lbGVtZW50IHBlcC1idXR0b24gaWNvbi1idXR0b24gc20gd2Vha1wiIG1hdC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cInZpZXdzTWVudVwiIG1lbnUtYmx1cj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBlcC1pY29uIG5hbWU9XCJ2aWV3X2NhcmRfbWRcIj48L3BlcC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1tZW51ICN2aWV3c01lbnU9XCJtYXRNZW51XCIgeFBvc2l0aW9uPVwiYmVmb3JlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IGN1cnJlbnRWaWV3VHlwZT8uS2V5ID09IHZpZXdUeXBlPy5LZXlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cIiAqbmdGb3I9XCJsZXQgdmlld1R5cGUgb2YgY2hpbGRWaWV3VHlwZXNcIiAoY2xpY2spPVwiY2hhbmdlQ2hpbGRyZW5WaWV3VHlwZSh2aWV3VHlwZT8uS2V5KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIFtuZ1N3aXRjaF09XCJ2aWV3VHlwZT8uS2V5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBlcC1pY29uICpuZ1N3aXRjaENhc2U9XCInT3JkZXJDZW50ZXJNYXRyaXgnXCIgbmFtZT1cInZpZXdfbWF0cml4XCI+PC9wZXAtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGVwLWljb24gKm5nU3dpdGNoQ2FzZT1cIidPcmRlckNlbnRlckZsYXRNYXRyaXhHcmlkJ1wiIG5hbWU9XCJ2aWV3X3RhYmxlXCI+PC9wZXAtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGVwLWljb24gKm5nU3dpdGNoQ2FzZT1cIidPcmRlckNlbnRlckZsYXRNYXRyaXhMaW5lJ1wiIG5hbWU9XCJ2aWV3X2xpbmVcIj48L3BlcC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHZpZXdUeXBlPy5WYWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtYXRyaXhUZW1wbGF0ZT5cbiAgICA8ZGl2ICNtYXRyaXhDb250YWluZXIgY2xhc3M9XCJtYXRyaXgtY29udGFpbmVyXCI+XG4gICAgICAgIDxwZXAtaW50ZXJuYWwtbGlzdCAodmFsdWVDaGFuZ2UpPVwib25DdXN0b21pemVPYmplY3RDaGFuZ2VkKCRldmVudClcIiBbcGFyZW50U2Nyb2xsXT1cIm1hdHJpeENvbnRhaW5lclwiXG4gICAgICAgICAgICAoZmllbGRDbGljayk9XCJvbkN1c3RvbWl6ZUZpZWxkQ2xpY2soJGV2ZW50KVwiIFt0b3RhbHNSb3ddPVwidG90YWxzUm93XCI+PC9wZXAtaW50ZXJuYWwtbGlzdD5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxkaXYgI21haW5WaWV3Q29udCBpZD1cIm1haW5WaWV3Q29udFwiIFtuZ1N0eWxlXT1cInsgJ21heC13aWR0aCc6IHZpZXdXaWR0aCwgJ21heC1oZWlnaHQnOiB2aWV3SGVpZ2h0IH1cIj5cbiAgICA8ZGl2ICNteTFtbSBpZD1cIm15MV9tbVwiIHN0eWxlPVwiaGVpZ2h0OjFtbTt3aWR0aDoxbW07dmlzaWJpbGl0eTogaGlkZGVuO1wiPjwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb3ZlckNoaWxkVGFibGUgJiYgdWlDb250cm9sICE9IG51bGxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvdmVyXCI+PC9kaXY+XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cInNob3dNYXRyaXhEaWFsb2coKVwiIGNsYXNzPVwicGVwLWJ1dHRvbiBzdHJvbmcgc20gdGFibGUtY292ZXItYnV0dG9uXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2xpbmV2aWV3LWJ0bic6IGN1cnJlbnRWaWV3VHlwZT8uS2V5ID09ICdPcmRlckNlbnRlckZsYXRNYXRyaXhMaW5lJ31cIj5cbiAgICAgICAgICAgIHt7IFwiSU5URVJOQUxfUEFHRS5DTElDS19UT19PUkRFUlwiIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1hdHJpeEhlYWRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAjb3JnQ29udD48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI21hdHJpeERpYWxvZ1RlbXBsYXRlPlxuXG4gICAgPGRpdiBtYXQtZGlhbG9nLXRpdGxlPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibWF0cml4SGVhZGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgbWF0LWRpYWxvZy1jb250ZW50PlxuICAgICAgICA8bmctY29udGFpbmVyICNkaWFsb2dDb250PjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSA8ZGl2IGlkPVwiY2hpbGRHcmlkTW9kYWxcIiBic01vZGFsIChvblNob3duKT1cIm9uU2hvd24oKVwiIChvbkhpZGRlbik9XCJvbkhpZGRlbigpXCIgI2NoaWxkTW9kYWw9XCJicy1tb2RhbFwiIGNsYXNzPVwibW9kYWxcIlxuICAgIHRhYmluZGV4PVwiLTFcIiByb2xlPVwiZGlhbG9nXCIgYXJpYS1sYWJlbGxlZGJ5PVwiZ3JpZE1vZGFsTGFiZWxcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZGlhbG9nXCIgcm9sZT1cImRvY3VtZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBtYXRyaXgtZGlhbG9nLWJvZHlcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICNtb2RhbENvbnQ+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj4gLS0+Il19
|