@pepperi-addons/ngx-lib 0.2.59-query-builder.7 → 0.2.61
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/README.md +39 -39
- package/address/address.component.theme.scss +8 -8
- package/address/pepperi-addons-ngx-lib-address.metadata.json +1 -1
- package/attachment/attachment.component.d.ts +0 -1
- package/attachment/attachment.component.theme.scss +3 -3
- package/attachment/pepperi-addons-ngx-lib-attachment.metadata.json +1 -1
- package/bread-crumbs/bread-crumbs.component.theme.scss +8 -8
- package/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.metadata.json +1 -1
- package/bundles/pepperi-addons-ngx-lib-address.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-address.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-attachment.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-attachment.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-bread-crumbs.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-bread-crumbs.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-button.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-button.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-carousel.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js +1 -4
- package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-color.umd.js +2 -7
- package/bundles/pepperi-addons-ngx-lib-color.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-date.umd.js +3 -5
- package/bundles/pepperi-addons-ngx-lib-date.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-dialog.umd.js +2 -2
- package/bundles/pepperi-addons-ngx-lib-dialog.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-field-title.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-field-title.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-form.umd.js +23 -26
- package/bundles/pepperi-addons-ngx-lib-form.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-icon.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-image.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-image.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-list.umd.js +8 -8
- package/bundles/pepperi-addons-ngx-lib-list.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-menu.umd.js +2 -2
- package/bundles/pepperi-addons-ngx-lib-menu.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-page-layout.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-page-layout.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-search.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-search.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-select.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-select.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-separator.umd.js +1 -9
- package/bundles/pepperi-addons-ngx-lib-separator.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-signature.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-signature.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-size-detector.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-size-detector.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-slider.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-slider.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js +40 -307
- package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-textarea.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-textarea.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-textbox-icon.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-textbox-icon.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-textbox.umd.js +3 -5
- package/bundles/pepperi-addons-ngx-lib-textbox.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib.umd.js +36 -38
- package/bundles/pepperi-addons-ngx-lib.umd.js.map +1 -1
- package/button/button.component.theme.scss +2 -2
- package/button/pepperi-addons-ngx-lib-button.metadata.json +1 -1
- package/checkbox/checkbox.component.theme.scss +2 -2
- package/checkbox/pepperi-addons-ngx-lib-checkbox.metadata.json +1 -1
- package/color/color-picker.component.theme.scss +175 -175
- package/color/color.component.d.ts +0 -1
- package/color/color.component.theme.scss +7 -7
- package/color/pepperi-addons-ngx-lib-color.metadata.json +1 -1
- package/core/common/services/addon.service.d.ts +2 -1
- package/core/common/services/file.service.d.ts +4 -4
- package/core/customization/customization.service.d.ts +0 -1
- package/date/date.component.theme.scss +169 -169
- package/date/pepperi-addons-ngx-lib-date.metadata.json +1 -1
- package/dialog/dialog.component.theme.scss +5 -5
- package/dialog/pepperi-addons-ngx-lib-dialog.metadata.json +1 -1
- package/esm2015/address/address.component.js +2 -2
- package/esm2015/address/address.module.js +1 -1
- package/esm2015/address/public-api.js +1 -1
- package/esm2015/attachment/attachment.component.js +2 -7
- package/esm2015/attachment/attachment.module.js +1 -1
- package/esm2015/attachment/public-api.js +1 -1
- package/esm2015/bread-crumbs/bread-crumbs.component.js +2 -2
- package/esm2015/bread-crumbs/bread-crumbs.model.js +1 -1
- package/esm2015/bread-crumbs/bread-crumbs.module.js +1 -1
- package/esm2015/bread-crumbs/public-api.js +1 -1
- package/esm2015/button/button.component.js +2 -2
- package/esm2015/button/button.model.js +1 -1
- package/esm2015/button/button.module.js +1 -1
- package/esm2015/button/public-api.js +1 -1
- package/esm2015/carousel/carousel-item.directive.js +1 -1
- package/esm2015/carousel/carousel.component.js +15 -15
- package/esm2015/carousel/carousel.module.js +1 -1
- package/esm2015/carousel/public-api.js +1 -1
- package/esm2015/checkbox/checkbox.component.js +2 -5
- package/esm2015/checkbox/checkbox.module.js +1 -1
- package/esm2015/checkbox/public-api.js +1 -1
- package/esm2015/color/color-picker.component.js +28 -28
- package/esm2015/color/color.component.js +2 -7
- package/esm2015/color/color.model.js +1 -1
- package/esm2015/color/color.module.js +1 -1
- package/esm2015/color/public-api.js +1 -1
- package/esm2015/core/clipboard/clipboard.directive.js +1 -1
- package/esm2015/core/clipboard/clipboard.service.js +1 -1
- package/esm2015/core/clipboard/index.js +1 -1
- package/esm2015/core/clipboard/public-api.js +1 -1
- package/esm2015/core/common/directives/auto-width.directive.js +1 -1
- package/esm2015/core/common/directives/button-blur.directive.js +1 -1
- package/esm2015/core/common/directives/button-loader.directive.js +1 -1
- package/esm2015/core/common/directives/data-qa.directive.js +1 -1
- package/esm2015/core/common/directives/index.js +1 -1
- package/esm2015/core/common/directives/menu-blur.directive.js +1 -1
- package/esm2015/core/common/directives/prevent-multi-click.directive.js +1 -1
- package/esm2015/core/common/directives/public-api.js +1 -1
- package/esm2015/core/common/index.js +1 -1
- package/esm2015/core/common/model/index.js +1 -1
- package/esm2015/core/common/model/papi.model.js +1 -1
- package/esm2015/core/common/model/public-api.js +1 -1
- package/esm2015/core/common/model/utilities.model.js +1 -1
- package/esm2015/core/common/model/wapi.model.js +1 -1
- package/esm2015/core/common/pipes/common-pipes.js +1 -1
- package/esm2015/core/common/pipes/index.js +1 -1
- package/esm2015/core/common/pipes/public-api.js +1 -1
- package/esm2015/core/common/public-api.js +1 -1
- package/esm2015/core/common/services/addon.service.js +19 -4
- package/esm2015/core/common/services/color.service.js +1 -1
- package/esm2015/core/common/services/cookie.service.js +1 -1
- package/esm2015/core/common/services/data-convertor.service.js +1 -1
- package/esm2015/core/common/services/file.service.js +9 -9
- package/esm2015/core/common/services/index.js +1 -1
- package/esm2015/core/common/services/jwt-helper.service.js +1 -1
- package/esm2015/core/common/services/public-api.js +1 -1
- package/esm2015/core/common/services/session.service.js +1 -1
- package/esm2015/core/common/services/utilities.service.js +4 -25
- package/esm2015/core/common/services/validator.service.js +1 -1
- package/esm2015/core/common/services/window-scrolling.service.js +5 -5
- package/esm2015/core/customization/customization.model.js +1 -1
- package/esm2015/core/customization/customization.service.js +2 -4
- package/esm2015/core/customization/index.js +1 -1
- package/esm2015/core/customization/public-api.js +1 -1
- package/esm2015/core/http/index.js +1 -1
- package/esm2015/core/http/interceptors/error.interceptor.js +1 -1
- package/esm2015/core/http/interceptors/index.js +1 -1
- package/esm2015/core/http/interceptors/loader.interceptor.js +1 -1
- package/esm2015/core/http/interceptors/profiler.interceptor.js +1 -1
- package/esm2015/core/http/public-api.js +1 -1
- package/esm2015/core/http/services/http.service.js +1 -1
- package/esm2015/core/http/services/loader.service.js +1 -1
- package/esm2015/core/index.js +1 -1
- package/esm2015/core/layout/index.js +1 -1
- package/esm2015/core/layout/layout.service.js +1 -1
- package/esm2015/core/layout/public-api.js +1 -1
- package/esm2015/core/layout/rtl.directive.js +1 -1
- package/esm2015/core/portal/attach.directive.js +1 -1
- package/esm2015/core/portal/index.js +1 -1
- package/esm2015/core/portal/portal.service.js +1 -1
- package/esm2015/core/portal/public-api.js +1 -1
- package/esm2015/core/portal/target.directive.js +1 -1
- package/esm2015/core/public-api.js +1 -1
- package/esm2015/core/scroll-to/index.js +1 -1
- package/esm2015/core/scroll-to/public-api.js +1 -1
- package/esm2015/core/scroll-to/scroll-to.service.js +1 -1
- package/esm2015/date/date.component.js +4 -6
- package/esm2015/date/date.module.js +1 -1
- package/esm2015/date/public-api.js +1 -1
- package/esm2015/dialog/default-dialog.component.js +2 -2
- package/esm2015/dialog/dialog.component.js +2 -2
- package/esm2015/dialog/dialog.model.js +1 -1
- package/esm2015/dialog/dialog.module.js +1 -1
- package/esm2015/dialog/dialog.service.js +1 -1
- package/esm2015/dialog/public-api.js +1 -1
- package/esm2015/field-title/field-title.component.js +2 -2
- package/esm2015/field-title/field-title.module.js +1 -1
- package/esm2015/field-title/public-api.js +1 -1
- package/esm2015/files-uploader/files-uploader.component.js +2 -2
- package/esm2015/files-uploader/files-uploader.module.js +1 -1
- package/esm2015/files-uploader/public-api.js +1 -1
- package/esm2015/form/field-generator.component.js +2 -2
- package/esm2015/form/form.component.js +2 -2
- package/esm2015/form/form.module.js +1 -1
- package/esm2015/form/indicators.component.js +2 -2
- package/esm2015/form/internal-button.component.js +18 -21
- package/esm2015/form/internal-carusel.component.js +2 -2
- package/esm2015/form/internal-carusel.service.js +1 -1
- package/esm2015/form/internal-list.component.js +2 -2
- package/esm2015/form/internal-menu.component.js +2 -2
- package/esm2015/form/internal-page.component.js +2 -2
- package/esm2015/form/internal-page.service.js +1 -1
- package/esm2015/form/public-api.js +1 -1
- package/esm2015/group-buttons/group-buttons.component.js +2 -2
- package/esm2015/group-buttons/group-buttons.module.js +1 -1
- package/esm2015/group-buttons/public-api.js +1 -1
- package/esm2015/icon/icon-generated-all.model.js +1 -1
- package/esm2015/icon/icon-generated.model.js +1 -1
- package/esm2015/icon/icon-registry.service.js +2 -2
- package/esm2015/icon/icon.component.js +1 -1
- package/esm2015/icon/icon.module.js +1 -1
- package/esm2015/icon/public-api.js +1 -1
- package/esm2015/image/image.component.js +2 -7
- package/esm2015/image/image.module.js +1 -1
- package/esm2015/image/public-api.js +1 -1
- package/esm2015/images-filmstrip/images-filmstrip.component.js +2 -7
- package/esm2015/images-filmstrip/images-filmstrip.module.js +1 -1
- package/esm2015/images-filmstrip/public-api.js +1 -1
- package/esm2015/list/list-actions.component.js +2 -2
- package/esm2015/list/list-carousel.component.js +2 -2
- package/esm2015/list/list-chooser.component.js +2 -2
- package/esm2015/list/list-pager.component.js +2 -2
- package/esm2015/list/list-sorting.component.js +2 -2
- package/esm2015/list/list-total.component.js +2 -2
- package/esm2015/list/list-views.component.js +2 -2
- package/esm2015/list/list.component.js +2 -2
- package/esm2015/list/list.model.js +1 -1
- package/esm2015/list/list.module.js +1 -1
- package/esm2015/list/public-api.js +1 -1
- package/esm2015/menu/menu-item.component.js +2 -2
- package/esm2015/menu/menu.component.js +2 -2
- package/esm2015/menu/menu.model.js +1 -1
- package/esm2015/menu/menu.module.js +1 -1
- package/esm2015/menu/public-api.js +1 -1
- package/esm2015/ngx-lib.module.js +1 -1
- package/esm2015/page-layout/page-layout.component.js +2 -2
- package/esm2015/page-layout/page-layout.module.js +1 -1
- package/esm2015/page-layout/public-api.js +1 -1
- package/esm2015/public-api.js +1 -1
- package/esm2015/quantity-selector/public-api.js +1 -1
- package/esm2015/quantity-selector/quantity-selector-validation.directive.js +1 -1
- package/esm2015/quantity-selector/quantity-selector.component.js +2 -7
- package/esm2015/quantity-selector/quantity-selector.module.js +1 -1
- package/esm2015/quantity-selector/quantity-selector.pipes.js +1 -1
- package/esm2015/rich-html-textarea/public-api.js +1 -1
- package/esm2015/rich-html-textarea/rich-html-textarea.component.js +2 -7
- package/esm2015/rich-html-textarea/rich-html-textarea.module.js +1 -1
- package/esm2015/search/public-api.js +1 -1
- package/esm2015/search/search.component.js +2 -2
- package/esm2015/search/search.model.js +1 -1
- package/esm2015/search/search.module.js +1 -1
- package/esm2015/select/public-api.js +1 -1
- package/esm2015/select/select.component.js +2 -7
- package/esm2015/select/select.module.js +1 -1
- package/esm2015/separator/public-api.js +1 -1
- package/esm2015/separator/separator.component.js +2 -10
- package/esm2015/separator/separator.module.js +1 -1
- package/esm2015/side-bar/public-api.js +1 -1
- package/esm2015/side-bar/side-bar.component.js +2 -2
- package/esm2015/side-bar/side-bar.model.js +1 -1
- package/esm2015/side-bar/side-bar.module.js +1 -1
- package/esm2015/signature/public-api.js +1 -1
- package/esm2015/signature/signature.component.js +2 -7
- package/esm2015/signature/signature.module.js +1 -1
- package/esm2015/size-detector/public-api.js +1 -1
- package/esm2015/size-detector/size-detector.component.js +2 -2
- package/esm2015/size-detector/size-detector.module.js +1 -1
- package/esm2015/slider/public-api.js +1 -1
- package/esm2015/slider/slider.component.js +2 -2
- package/esm2015/slider/slider.module.js +1 -1
- package/esm2015/smart-filters/boolean-filter/boolean-filter.component.js +3 -23
- package/esm2015/smart-filters/common/filter-actions.component.js +2 -2
- package/esm2015/smart-filters/common/model/base-filter-component.js +8 -35
- package/esm2015/smart-filters/common/model/creator.js +2 -8
- package/esm2015/smart-filters/common/model/field.js +1 -12
- package/esm2015/smart-filters/common/model/filter.js +1 -1
- package/esm2015/smart-filters/common/model/operator.js +8 -8
- package/esm2015/smart-filters/common/model/type.js +1 -1
- package/esm2015/smart-filters/date-filter/date-filter.component.js +2 -45
- package/esm2015/smart-filters/multi-select-filter/multi-select-filter.component.js +14 -53
- package/esm2015/smart-filters/number-filter/number-filter.component.js +2 -27
- package/esm2015/smart-filters/public-api.js +1 -2
- package/esm2015/smart-filters/smart-filters.component.js +2 -2
- package/esm2015/smart-filters/smart-filters.module.js +3 -16
- package/esm2015/textarea/public-api.js +1 -1
- package/esm2015/textarea/textarea.component.js +2 -7
- package/esm2015/textarea/textarea.module.js +1 -1
- package/esm2015/textbox/public-api.js +1 -1
- package/esm2015/textbox/textbox-validation.directive.js +1 -1
- package/esm2015/textbox/textbox.component.js +4 -6
- package/esm2015/textbox/textbox.module.js +1 -1
- package/esm2015/textbox-icon/public-api.js +1 -1
- package/esm2015/textbox-icon/textbox-icon.component.js +2 -2
- package/esm2015/textbox-icon/textbox-icon.module.js +1 -1
- package/esm2015/top-bar/public-api.js +1 -1
- package/esm2015/top-bar/top-bar.component.js +2 -2
- package/esm2015/top-bar/top-bar.model.js +1 -1
- package/esm2015/top-bar/top-bar.module.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-address.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-address.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-attachment.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-attachment.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-button.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-button.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-carousel.js +14 -14
- package/fesm2015/pepperi-addons-ngx-lib-carousel.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-checkbox.js +1 -4
- package/fesm2015/pepperi-addons-ngx-lib-checkbox.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-color.js +28 -33
- package/fesm2015/pepperi-addons-ngx-lib-color.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-date.js +3 -5
- package/fesm2015/pepperi-addons-ngx-lib-date.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-dialog.js +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-dialog.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-field-title.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-field-title.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-form.js +23 -26
- package/fesm2015/pepperi-addons-ngx-lib-form.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-icon.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-icon.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-image.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-image.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-list.js +8 -8
- package/fesm2015/pepperi-addons-ngx-lib-list.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-menu.js +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-menu.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-page-layout.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-page-layout.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-search.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-search.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-select.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-select.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-separator.js +1 -9
- package/fesm2015/pepperi-addons-ngx-lib-separator.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-side-bar.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-side-bar.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-signature.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-signature.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-size-detector.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-size-detector.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-slider.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-slider.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js +37 -294
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textarea.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-textarea.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textbox.js +3 -5
- package/fesm2015/pepperi-addons-ngx-lib-textbox.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-top-bar.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-top-bar.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib.js +34 -42
- package/fesm2015/pepperi-addons-ngx-lib.js.map +1 -1
- package/field-title/field-title.component.theme.scss +2 -2
- package/field-title/pepperi-addons-ngx-lib-field-title.metadata.json +1 -1
- package/files-uploader/files-uploader.component.theme.scss +2 -2
- package/files-uploader/pepperi-addons-ngx-lib-files-uploader.metadata.json +1 -1
- package/form/form.component.theme.scss +2 -2
- package/form/indicators.component.theme.scss +7 -7
- package/form/internal-button.component.d.ts +1 -0
- package/form/internal-button.component.theme.scss +2 -2
- package/form/internal-menu.component.theme.scss +3 -3
- package/form/pepperi-addons-ngx-lib-form.metadata.json +1 -1
- package/group-buttons/group-buttons.component.theme.scss +15 -15
- package/group-buttons/pepperi-addons-ngx-lib-group-buttons.metadata.json +1 -1
- package/image/image.component.d.ts +0 -1
- package/image/image.component.theme.scss +35 -35
- package/image/pepperi-addons-ngx-lib-image.metadata.json +1 -1
- package/images-filmstrip/images-filmstrip.component.d.ts +0 -1
- package/images-filmstrip/images-filmstrip.component.theme.scss +32 -32
- package/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.metadata.json +1 -1
- package/list/list-actions.component.theme.scss +3 -3
- package/list/list-carousel.component.theme.scss +9 -9
- package/list/list-chooser.component.theme.scss +3 -3
- package/list/list-pager.component.theme.scss +3 -3
- package/list/list-sorting.component.theme.scss +3 -3
- package/list/list-total.component.theme.scss +10 -10
- package/list/list-views.component.theme.scss +3 -3
- package/list/list.component.theme.scss +5 -5
- package/list/list_old.component.theme.scss +5 -5
- package/list/pepperi-addons-ngx-lib-list.metadata.json +1 -1
- package/menu/menu.component.theme.scss +2 -2
- package/menu/pepperi-addons-ngx-lib-menu.metadata.json +1 -1
- package/package.json +1 -1
- package/page-layout/page-layout.component.theme.scss +7 -7
- package/page-layout/pepperi-addons-ngx-lib-page-layout.metadata.json +1 -1
- package/pepperi-addons-ngx-lib.metadata.json +1 -1
- package/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.metadata.json +1 -1
- package/quantity-selector/quantity-selector.component.d.ts +0 -1
- package/quantity-selector/quantity-selector.component.theme.scss +77 -77
- package/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.metadata.json +1 -1
- package/rich-html-textarea/rich-html-textarea.component.d.ts +0 -1
- package/rich-html-textarea/rich-html-textarea.component.theme.scss +236 -236
- package/search/pepperi-addons-ngx-lib-search.metadata.json +1 -1
- package/search/search.component.theme.scss +3 -3
- package/select/pepperi-addons-ngx-lib-select.metadata.json +1 -1
- package/select/select.component.d.ts +0 -1
- package/select/select.component.theme.scss +2 -2
- package/separator/pepperi-addons-ngx-lib-separator.metadata.json +1 -1
- package/separator/separator.component.theme.scss +2 -2
- package/side-bar/pepperi-addons-ngx-lib-side-bar.metadata.json +1 -1
- package/side-bar/side-bar.component.theme.scss +25 -25
- package/signature/pepperi-addons-ngx-lib-signature.metadata.json +1 -1
- package/signature/signature.component.d.ts +0 -1
- package/signature/signature.component.theme.scss +28 -28
- package/size-detector/pepperi-addons-ngx-lib-size-detector.metadata.json +1 -1
- package/slider/pepperi-addons-ngx-lib-slider.metadata.json +1 -1
- package/slider/slider.component.theme.scss +65 -65
- package/smart-filters/boolean-filter/boolean-filter.component.d.ts +1 -6
- package/smart-filters/common/model/base-filter-component.d.ts +0 -7
- package/smart-filters/common/model/field.d.ts +0 -4
- package/smart-filters/common/model/operator.d.ts +0 -1
- package/smart-filters/common/model/type.d.ts +2 -2
- package/smart-filters/date-filter/date-filter.component.d.ts +1 -8
- package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +0 -6
- package/smart-filters/number-filter/number-filter.component.d.ts +0 -5
- package/smart-filters/pepperi-addons-ngx-lib-smart-filters.metadata.json +1 -1
- package/smart-filters/public-api.d.ts +0 -1
- package/smart-filters/smart-filters.component.theme.scss +10 -10
- package/src/assets/i18n/de.ngx-lib.json +77 -77
- package/src/assets/i18n/en.ngx-lib.json +138 -139
- package/src/assets/i18n/es.ngx-lib.json +77 -77
- package/src/assets/i18n/fr.ngx-lib.json +78 -78
- package/src/assets/i18n/he.ngx-lib.json +78 -78
- package/src/assets/i18n/hu.ngx-lib.json +78 -78
- package/src/assets/i18n/it.ngx-lib.json +78 -78
- package/src/assets/i18n/ja.ngx-lib.json +78 -78
- package/src/assets/i18n/nl.ngx-lib.json +78 -78
- package/src/assets/i18n/pl.ngx-lib.json +78 -78
- package/src/assets/i18n/pt.ngx-lib.json +78 -78
- package/src/assets/i18n/ru.ngx-lib.json +78 -78
- package/src/assets/i18n/zh.ngx-lib.json +76 -76
- package/src/assets/images/no-image.svg +41 -41
- package/src/core/style/abstracts/breakpoints.scss +35 -35
- package/src/core/style/abstracts/functions.scss +422 -422
- package/src/core/style/abstracts/mixins.scss +797 -797
- package/src/core/style/abstracts/variables.scss +545 -545
- package/src/core/style/base/base.scss +873 -873
- package/src/core/style/base/grids.scss +4 -4
- package/src/core/style/base/helpers.scss +70 -70
- package/src/core/style/base/typography.scss +255 -255
- package/src/core/style/components/button.scss +349 -349
- package/src/core/style/components/checkbox.scss +473 -473
- package/src/core/style/components/datetime.scss +22 -22
- package/src/core/style/components/file.scss +219 -219
- package/src/core/style/components/general.scss +1086 -1088
- package/src/core/style/components/input.scss +94 -94
- package/src/core/style/components/quantity-selector.scss +14 -14
- package/src/core/style/components/radio-button.scss +168 -168
- package/src/core/style/components/select.scss +185 -185
- package/src/core/style/components/signature.scss +12 -12
- package/src/core/style/components/splitter.scss +64 -64
- package/src/core/style/components/textarea.scss +195 -195
- package/src/core/style/themes/black-theme.scss +7 -7
- package/src/core/style/themes/default-theme.scss +144 -144
- package/src/core/style/themes/light-theme.scss +7 -7
- package/src/core/style/themes/nature-theme.scss +7 -7
- package/src/core/style/vendors/normalize.scss +497 -497
- package/textarea/pepperi-addons-ngx-lib-textarea.metadata.json +1 -1
- package/textarea/textarea.component.d.ts +0 -1
- package/textarea/textarea.component.theme.scss +2 -2
- package/textbox/pepperi-addons-ngx-lib-textbox.metadata.json +1 -1
- package/textbox/textbox.component.theme.scss +3 -3
- package/textbox-icon/pepperi-addons-ngx-lib-textbox-icon.metadata.json +1 -1
- package/textbox-icon/textbox-icon.component.theme.scss +2 -2
- package/theming.scss +220 -224
- package/top-bar/pepperi-addons-ngx-lib-top-bar.metadata.json +1 -1
- package/top-bar/top-bar.component.theme.scss +9 -9
- package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js +0 -1113
- package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js.map +0 -1
- package/esm2015/query-builder/common/model/filter.js +0 -2
- package/esm2015/query-builder/common/model/legacy.js +0 -2
- package/esm2015/query-builder/common/model/operator-unit.js +0 -42
- package/esm2015/query-builder/common/model/operator.js +0 -207
- package/esm2015/query-builder/common/model/structure.js +0 -2
- package/esm2015/query-builder/common/model/type-map.js +0 -27
- package/esm2015/query-builder/common/model/type.js +0 -6
- package/esm2015/query-builder/common/services/output-query.service.js +0 -114
- package/esm2015/query-builder/common/services/type-convertor.service.js +0 -44
- package/esm2015/query-builder/pepperi-addons-ngx-lib-query-builder.js +0 -9
- package/esm2015/query-builder/public-api.js +0 -8
- package/esm2015/query-builder/query-builder-item/query-builder-item.component.js +0 -103
- package/esm2015/query-builder/query-builder-section/query-builder-section.component.js +0 -64
- package/esm2015/query-builder/query-builder.component.js +0 -101
- package/esm2015/query-builder/query-builder.module.js +0 -43
- package/esm2015/query-builder/query-builder.service.js +0 -283
- package/esm2015/smart-filters/text-filter/text-filter.component.js +0 -79
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.js +0 -1010
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.js.map +0 -1
- package/query-builder/common/model/filter.d.ts +0 -6
- package/query-builder/common/model/legacy.d.ts +0 -20
- package/query-builder/common/model/operator-unit.d.ts +0 -13
- package/query-builder/common/model/operator.d.ts +0 -21
- package/query-builder/common/model/structure.d.ts +0 -4
- package/query-builder/common/model/type-map.d.ts +0 -12
- package/query-builder/common/model/type.d.ts +0 -4
- package/query-builder/common/services/output-query.service.d.ts +0 -43
- package/query-builder/common/services/type-convertor.service.d.ts +0 -10
- package/query-builder/package.json +0 -14
- package/query-builder/pepperi-addons-ngx-lib-query-builder.d.ts +0 -8
- package/query-builder/pepperi-addons-ngx-lib-query-builder.metadata.json +0 -1
- package/query-builder/public-api.d.ts +0 -4
- package/query-builder/query-builder-item/query-builder-item.component.d.ts +0 -30
- package/query-builder/query-builder-section/query-builder-section.component.d.ts +0 -27
- package/query-builder/query-builder-section/query-builder-section.component.theme.scss +0 -6
- package/query-builder/query-builder.component.d.ts +0 -35
- package/query-builder/query-builder.module.d.ts +0 -2
- package/query-builder/query-builder.service.d.ts +0 -94
- package/smart-filters/text-filter/text-filter.component.d.ts +0 -17
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import { FormBuilder } from '@angular/forms';
|
|
3
|
-
import { PepQueryBuilderService } from './query-builder.service';
|
|
4
|
-
import { PepOperatorTypes } from './common/model/type';
|
|
5
|
-
export class PepQueryBuilderComponent {
|
|
6
|
-
constructor(_fb, queryBuilderService) {
|
|
7
|
-
this._fb = _fb;
|
|
8
|
-
this.queryBuilderService = queryBuilderService;
|
|
9
|
-
this._query = null;
|
|
10
|
-
this.queryChange = new EventEmitter();
|
|
11
|
-
this.formValidationChange = new EventEmitter();
|
|
12
|
-
this._lastFormValidStatus = true;
|
|
13
|
-
this.hasFields = false;
|
|
14
|
-
this.setupForm();
|
|
15
|
-
this.initDepth();
|
|
16
|
-
this._formSubscription$ = this.queryBuilderService.form.valueChanges.subscribe((val) => {
|
|
17
|
-
if (this.queryBuilderService.form.valid !== this._lastFormValidStatus) {
|
|
18
|
-
this._lastFormValidStatus = this.queryBuilderService.form.valid;
|
|
19
|
-
this.formValidationChange.emit(this._lastFormValidStatus);
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
this._outputQuerySubscription$ = this.queryBuilderService.outputQuery$.subscribe((outputQuery) => {
|
|
23
|
-
this.queryChange.emit(outputQuery);
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
set query(object) {
|
|
27
|
-
this._query = object;
|
|
28
|
-
this.loadQuery();
|
|
29
|
-
}
|
|
30
|
-
set fields(list) {
|
|
31
|
-
this.queryBuilderService.fields = list;
|
|
32
|
-
this.hasFields = this.queryBuilderService.hasFields;
|
|
33
|
-
this.loadQuery();
|
|
34
|
-
}
|
|
35
|
-
set maxDepth(value) {
|
|
36
|
-
this.queryBuilderService.maxDepth = value;
|
|
37
|
-
}
|
|
38
|
-
ngOnInit() {
|
|
39
|
-
//
|
|
40
|
-
}
|
|
41
|
-
setupForm() {
|
|
42
|
-
this.queryBuilderService.form = this._fb.group({
|
|
43
|
-
operator: this._fb.control(PepOperatorTypes.And)
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
initDepth() {
|
|
47
|
-
this.depth = {
|
|
48
|
-
current: 0,
|
|
49
|
-
max: this.queryBuilderService.maxDepth
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* builds UI query structure as soon as both the fields and query loads
|
|
54
|
-
*/
|
|
55
|
-
loadQuery() {
|
|
56
|
-
var _a;
|
|
57
|
-
if (this._query &&
|
|
58
|
-
this.queryBuilderService.hasFields &&
|
|
59
|
-
((_a = this.root) === null || _a === void 0 ? void 0 : _a.sectionContainer)) {
|
|
60
|
-
this.queryBuilderService.buildQueryStructure(this._query, this.root.sectionContainer);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
onCreateSection() {
|
|
64
|
-
const section = this.queryBuilderService.createSection(PepOperatorTypes.And, this.root.sectionContainer, this.queryBuilderService.form, 1);
|
|
65
|
-
this.queryBuilderService.createItem(null, section.containerRef, section.parentForm);
|
|
66
|
-
}
|
|
67
|
-
onCreateItem() {
|
|
68
|
-
this.queryBuilderService.createItem(null, this.root.sectionContainer, this.queryBuilderService.form);
|
|
69
|
-
}
|
|
70
|
-
onOperatorChange() {
|
|
71
|
-
this.queryBuilderService.createOutputQuery();
|
|
72
|
-
}
|
|
73
|
-
ngOnDestroy() {
|
|
74
|
-
if (this._formSubscription$) {
|
|
75
|
-
this._formSubscription$.unsubscribe();
|
|
76
|
-
}
|
|
77
|
-
if (this._outputQuerySubscription$) {
|
|
78
|
-
this._outputQuerySubscription$.unsubscribe();
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
PepQueryBuilderComponent.decorators = [
|
|
83
|
-
{ type: Component, args: [{
|
|
84
|
-
selector: 'pep-query-builder',
|
|
85
|
-
template: "<pep-query-builder-section #rootContainer [form]=\"queryBuilderService.form\" [depth]=\"depth\" [hasFields]=\"hasFields\"\r\n (createSection)=\"onCreateSection()\" (createItem)=\"onCreateItem()\" (operatorChange)=\"onOperatorChange()\">\r\n</pep-query-builder-section>",
|
|
86
|
-
styles: [""]
|
|
87
|
-
},] }
|
|
88
|
-
];
|
|
89
|
-
PepQueryBuilderComponent.ctorParameters = () => [
|
|
90
|
-
{ type: FormBuilder },
|
|
91
|
-
{ type: PepQueryBuilderService }
|
|
92
|
-
];
|
|
93
|
-
PepQueryBuilderComponent.propDecorators = {
|
|
94
|
-
query: [{ type: Input }],
|
|
95
|
-
fields: [{ type: Input }],
|
|
96
|
-
maxDepth: [{ type: Input }],
|
|
97
|
-
queryChange: [{ type: Output }],
|
|
98
|
-
formValidationChange: [{ type: Output }],
|
|
99
|
-
root: [{ type: ViewChild, args: ['rootContainer', { static: true },] }]
|
|
100
|
-
};
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFHTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWpFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBUXZELE1BQU0sT0FBTyx3QkFBd0I7SUErQmpDLFlBQ1ksR0FBZ0IsRUFDakIsbUJBQTJDO1FBRDFDLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFDakIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUF3QjtRQWhDdEQsV0FBTSxHQUFxQixJQUFJLENBQUM7UUFrQmhDLGdCQUFXLEdBQW1DLElBQUksWUFBWSxFQUFvQixDQUFDO1FBRW5GLHlCQUFvQixHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBTTFFLHlCQUFvQixHQUFHLElBQUksQ0FBQztRQUU1QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBTWQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDbkYsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7Z0JBQ25F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QUUsQ0FBQztTQUN6QztRQUNELElBQUksSUFBSSxDQUFDLHlCQUF5QixFQUFFO1lBQ2hDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNoRDtJQUNMLENBQUM7OztZQXZHSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsMlJBQTZDOzthQUVoRDs7O1lBWlEsV0FBVztZQUdYLHNCQUFzQjs7O29CQVkxQixLQUFLO3FCQUtMLEtBQUs7dUJBTUwsS0FBSzswQkFLTCxNQUFNO21DQUVOLE1BQU07bUJBR04sU0FBUyxTQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBPbkluaXQsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFBlcFF1ZXJ5QnVpbGRlclNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL3F1ZXJ5LWJ1aWxkZXItc2VjdGlvbi9xdWVyeS1idWlsZGVyLXNlY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgSVBlcFF1ZXJ5QnVpbGRlckZpZWxkLCBJUGVwUXVlcnlTZWN0aW9uIH0gZnJvbSAnLi9jb21tb24vbW9kZWwvbGVnYWN5JztcclxuaW1wb3J0IHsgUGVwUXVlcnlCdWlsZGVyU2VydmljZSB9IGZyb20gJy4vcXVlcnktYnVpbGRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSVBlcFF1ZXJ5RGVwdGggfSBmcm9tICcuL2NvbW1vbi9tb2RlbC9zdHJ1Y3R1cmUnO1xyXG5pbXBvcnQgeyBQZXBPcGVyYXRvclR5cGVzIH0gZnJvbSAnLi9jb21tb24vbW9kZWwvdHlwZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3BlcC1xdWVyeS1idWlsZGVyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9xdWVyeS1idWlsZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3F1ZXJ5LWJ1aWxkZXIuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBlcFF1ZXJ5QnVpbGRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIF9xdWVyeTogSVBlcFF1ZXJ5U2VjdGlvbiA9IG51bGw7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IHF1ZXJ5KG9iamVjdDogSVBlcFF1ZXJ5U2VjdGlvbikge1xyXG4gICAgICAgIHRoaXMuX3F1ZXJ5ID0gb2JqZWN0O1xyXG4gICAgICAgIHRoaXMubG9hZFF1ZXJ5KClcclxuICAgIH1cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgZmllbGRzKGxpc3Q6IEFycmF5PElQZXBRdWVyeUJ1aWxkZXJGaWVsZD4pIHtcclxuICAgICAgICB0aGlzLnF1ZXJ5QnVpbGRlclNlcnZpY2UuZmllbGRzID0gbGlzdDtcclxuICAgICAgICB0aGlzLmhhc0ZpZWxkcyA9IHRoaXMucXVlcnlCdWlsZGVyU2VydmljZS5oYXNGaWVsZHM7XHJcbiAgICAgICAgdGhpcy5sb2FkUXVlcnkoKTtcclxuICAgIH1cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgbWF4RGVwdGgodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMucXVlcnlCdWlsZGVyU2VydmljZS5tYXhEZXB0aCA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcXVlcnlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJUGVwUXVlcnlTZWN0aW9uPiA9IG5ldyBFdmVudEVtaXR0ZXI8SVBlcFF1ZXJ5U2VjdGlvbj4oKTtcclxuICAgIEBPdXRwdXQoKVxyXG4gICAgZm9ybVZhbGlkYXRpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdyb290Q29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSkgcm9vdDogUGVwUXVlcnlCdWlsZGVyU2VjdGlvbkNvbXBvbmVudDtcclxuXHJcbiAgICBfZm9ybVN1YnNjcmlwdGlvbiQ6IFN1YnNjcmlwdGlvbjtcclxuICAgIF9vdXRwdXRRdWVyeVN1YnNjcmlwdGlvbiQ6IFN1YnNjcmlwdGlvbjtcclxuICAgIF9sYXN0Rm9ybVZhbGlkU3RhdHVzID0gdHJ1ZTtcclxuICAgIGRlcHRoOiBJUGVwUXVlcnlEZXB0aDtcclxuICAgIGhhc0ZpZWxkcyA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX2ZiOiBGb3JtQnVpbGRlcixcclxuICAgICAgICBwdWJsaWMgcXVlcnlCdWlsZGVyU2VydmljZTogUGVwUXVlcnlCdWlsZGVyU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5zZXR1cEZvcm0oKTtcclxuICAgICAgICB0aGlzLmluaXREZXB0aCgpO1xyXG4gICAgICAgIHRoaXMuX2Zvcm1TdWJzY3JpcHRpb24kID0gdGhpcy5xdWVyeUJ1aWxkZXJTZXJ2aWNlLmZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnF1ZXJ5QnVpbGRlclNlcnZpY2UuZm9ybS52YWxpZCAhPT0gdGhpcy5fbGFzdEZvcm1WYWxpZFN0YXR1cykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbGFzdEZvcm1WYWxpZFN0YXR1cyA9IHRoaXMucXVlcnlCdWlsZGVyU2VydmljZS5mb3JtLnZhbGlkO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtVmFsaWRhdGlvbkNoYW5nZS5lbWl0KHRoaXMuX2xhc3RGb3JtVmFsaWRTdGF0dXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5fb3V0cHV0UXVlcnlTdWJzY3JpcHRpb24kID0gdGhpcy5xdWVyeUJ1aWxkZXJTZXJ2aWNlLm91dHB1dFF1ZXJ5JC5zdWJzY3JpYmUoKG91dHB1dFF1ZXJ5KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucXVlcnlDaGFuZ2UuZW1pdChvdXRwdXRRdWVyeSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgLy9cclxuICAgIH1cclxuXHJcbiAgICBzZXR1cEZvcm0oKSB7XHJcbiAgICAgICAgdGhpcy5xdWVyeUJ1aWxkZXJTZXJ2aWNlLmZvcm0gPSB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICAgICAgICAgIG9wZXJhdG9yOiB0aGlzLl9mYi5jb250cm9sKFBlcE9wZXJhdG9yVHlwZXMuQW5kKVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXREZXB0aCgpIHtcclxuICAgICAgICB0aGlzLmRlcHRoID0ge1xyXG4gICAgICAgICAgICBjdXJyZW50OiAwLFxyXG4gICAgICAgICAgICBtYXg6IHRoaXMucXVlcnlCdWlsZGVyU2VydmljZS5tYXhEZXB0aFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGJ1aWxkcyBVSSBxdWVyeSBzdHJ1Y3R1cmUgYXMgc29vbiBhcyBib3RoIHRoZSBmaWVsZHMgYW5kIHF1ZXJ5IGxvYWRzXHJcbiAgICAgKi9cclxuICAgIGxvYWRRdWVyeSgpIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHRoaXMuX3F1ZXJ5ICYmXHJcbiAgICAgICAgICAgIHRoaXMucXVlcnlCdWlsZGVyU2VydmljZS5oYXNGaWVsZHMgJiZcclxuICAgICAgICAgICAgdGhpcy5yb290Py5zZWN0aW9uQ29udGFpbmVyXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMucXVlcnlCdWlsZGVyU2VydmljZS5idWlsZFF1ZXJ5U3RydWN0dXJlKHRoaXMuX3F1ZXJ5LCB0aGlzLnJvb3Quc2VjdGlvbkNvbnRhaW5lcik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uQ3JlYXRlU2VjdGlvbigpIHtcclxuICAgICAgICBjb25zdCBzZWN0aW9uID0gdGhpcy5xdWVyeUJ1aWxkZXJTZXJ2aWNlLmNyZWF0ZVNlY3Rpb24oUGVwT3BlcmF0b3JUeXBlcy5BbmQsIHRoaXMucm9vdC5zZWN0aW9uQ29udGFpbmVyLCB0aGlzLnF1ZXJ5QnVpbGRlclNlcnZpY2UuZm9ybSwgMSk7XHJcbiAgICAgICAgdGhpcy5xdWVyeUJ1aWxkZXJTZXJ2aWNlLmNyZWF0ZUl0ZW0obnVsbCwgc2VjdGlvbi5jb250YWluZXJSZWYsIHNlY3Rpb24ucGFyZW50Rm9ybSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DcmVhdGVJdGVtKCkge1xyXG4gICAgICAgIHRoaXMucXVlcnlCdWlsZGVyU2VydmljZS5jcmVhdGVJdGVtKG51bGwsIHRoaXMucm9vdC5zZWN0aW9uQ29udGFpbmVyLCB0aGlzLnF1ZXJ5QnVpbGRlclNlcnZpY2UuZm9ybSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25PcGVyYXRvckNoYW5nZSgpIHtcclxuICAgICAgICB0aGlzLnF1ZXJ5QnVpbGRlclNlcnZpY2UuY3JlYXRlT3V0cHV0UXVlcnkoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAodGhpcy5fZm9ybVN1YnNjcmlwdGlvbiQpIHtcclxuICAgICAgICAgICAgdGhpcy5fZm9ybVN1YnNjcmlwdGlvbiQudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuX291dHB1dFF1ZXJ5U3Vic2NyaXB0aW9uJCkge1xyXG4gICAgICAgICAgICB0aGlzLl9vdXRwdXRRdWVyeVN1YnNjcmlwdGlvbiQudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { ReactiveFormsModule } from '@angular/forms';
|
|
4
|
-
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
5
|
-
import { PepSmartFiltersModule } from '@pepperi-addons/ngx-lib/smart-filters';
|
|
6
|
-
import { PepSelectModule } from '@pepperi-addons/ngx-lib/select';
|
|
7
|
-
import { PepButtonModule } from '@pepperi-addons/ngx-lib/button';
|
|
8
|
-
import { PepGroupButtonsModule } from '@pepperi-addons/ngx-lib/group-buttons';
|
|
9
|
-
import { PepQueryBuilderService } from './query-builder.service';
|
|
10
|
-
import { PepOutputQueryService } from './common/services/output-query.service';
|
|
11
|
-
import { PepTypeConvertorService } from './common/services/type-convertor.service';
|
|
12
|
-
import { PepQueryBuilderComponent } from './query-builder.component';
|
|
13
|
-
import { PepQueryBuilderSectionComponent } from './query-builder-section/query-builder-section.component';
|
|
14
|
-
import { PepQueryBuilderItemComponent } from './query-builder-item/query-builder-item.component';
|
|
15
|
-
export class PepQueryBuilderModule {
|
|
16
|
-
}
|
|
17
|
-
PepQueryBuilderModule.decorators = [
|
|
18
|
-
{ type: NgModule, args: [{
|
|
19
|
-
imports: [
|
|
20
|
-
CommonModule,
|
|
21
|
-
ReactiveFormsModule,
|
|
22
|
-
FlexLayoutModule,
|
|
23
|
-
PepSelectModule,
|
|
24
|
-
PepButtonModule,
|
|
25
|
-
PepGroupButtonsModule,
|
|
26
|
-
PepSmartFiltersModule
|
|
27
|
-
],
|
|
28
|
-
exports: [
|
|
29
|
-
PepQueryBuilderComponent
|
|
30
|
-
],
|
|
31
|
-
declarations: [
|
|
32
|
-
PepQueryBuilderComponent,
|
|
33
|
-
PepQueryBuilderSectionComponent,
|
|
34
|
-
PepQueryBuilderItemComponent
|
|
35
|
-
],
|
|
36
|
-
providers: [
|
|
37
|
-
PepQueryBuilderService,
|
|
38
|
-
PepOutputQueryService,
|
|
39
|
-
PepTypeConvertorService
|
|
40
|
-
]
|
|
41
|
-
},] }
|
|
42
|
-
];
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUU5RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUVuRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQTJCakcsTUFBTSxPQUFPLHFCQUFxQjs7O1lBeEJqQyxRQUFRLFNBQUM7Z0JBQ04sT0FBTyxFQUFFO29CQUNMLFlBQVk7b0JBQ1osbUJBQW1CO29CQUNuQixnQkFBZ0I7b0JBQ2hCLGVBQWU7b0JBQ2YsZUFBZTtvQkFDZixxQkFBcUI7b0JBQ3JCLHFCQUFxQjtpQkFDeEI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNMLHdCQUF3QjtpQkFDM0I7Z0JBQ0QsWUFBWSxFQUFFO29CQUNWLHdCQUF3QjtvQkFDeEIsK0JBQStCO29CQUMvQiw0QkFBNEI7aUJBQy9CO2dCQUNELFNBQVMsRUFBRTtvQkFDUCxzQkFBc0I7b0JBQ3RCLHFCQUFxQjtvQkFDckIsdUJBQXVCO2lCQUMxQjthQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcclxuaW1wb3J0IHsgUGVwU21hcnRGaWx0ZXJzTW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvc21hcnQtZmlsdGVycyc7XHJcbmltcG9ydCB7IFBlcFNlbGVjdE1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL3NlbGVjdCc7XHJcbmltcG9ydCB7IFBlcEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2J1dHRvbic7XHJcbmltcG9ydCB7IFBlcEdyb3VwQnV0dG9uc01vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2dyb3VwLWJ1dHRvbnMnO1xyXG5cclxuaW1wb3J0IHsgUGVwUXVlcnlCdWlsZGVyU2VydmljZSB9IGZyb20gJy4vcXVlcnktYnVpbGRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGVwT3V0cHV0UXVlcnlTZXJ2aWNlIH0gZnJvbSAnLi9jb21tb24vc2VydmljZXMvb3V0cHV0LXF1ZXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQZXBUeXBlQ29udmVydG9yU2VydmljZSB9IGZyb20gJy4vY29tbW9uL3NlcnZpY2VzL3R5cGUtY29udmVydG9yLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgUGVwUXVlcnlCdWlsZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9xdWVyeS1idWlsZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBlcFF1ZXJ5QnVpbGRlclNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL3F1ZXJ5LWJ1aWxkZXItc2VjdGlvbi9xdWVyeS1idWlsZGVyLXNlY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGVwUXVlcnlCdWlsZGVySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vcXVlcnktYnVpbGRlci1pdGVtL3F1ZXJ5LWJ1aWxkZXItaXRlbS5jb21wb25lbnQnO1xyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgRmxleExheW91dE1vZHVsZSxcclxuICAgICAgICBQZXBTZWxlY3RNb2R1bGUsXHJcbiAgICAgICAgUGVwQnV0dG9uTW9kdWxlLFxyXG4gICAgICAgIFBlcEdyb3VwQnV0dG9uc01vZHVsZSxcclxuICAgICAgICBQZXBTbWFydEZpbHRlcnNNb2R1bGVcclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgUGVwUXVlcnlCdWlsZGVyQ29tcG9uZW50XHJcbiAgICBdLFxyXG4gICAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICAgICAgUGVwUXVlcnlCdWlsZGVyQ29tcG9uZW50LFxyXG4gICAgICAgIFBlcFF1ZXJ5QnVpbGRlclNlY3Rpb25Db21wb25lbnQsXHJcbiAgICAgICAgUGVwUXVlcnlCdWlsZGVySXRlbUNvbXBvbmVudFxyXG4gICAgXSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIFBlcFF1ZXJ5QnVpbGRlclNlcnZpY2UsXHJcbiAgICAgICAgUGVwT3V0cHV0UXVlcnlTZXJ2aWNlLFxyXG4gICAgICAgIFBlcFR5cGVDb252ZXJ0b3JTZXJ2aWNlXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZXBRdWVyeUJ1aWxkZXJNb2R1bGUgeyB9XHJcbiJdfQ==
|
|
@@ -1,283 +0,0 @@
|
|
|
1
|
-
import { Injectable, ComponentFactoryResolver } from '@angular/core';
|
|
2
|
-
import { FormBuilder } from '@angular/forms';
|
|
3
|
-
import { BehaviorSubject } from 'rxjs';
|
|
4
|
-
import { PepSmartFilterOperators, createSmartFilter, createSmartFilterField } from '@pepperi-addons/ngx-lib/smart-filters';
|
|
5
|
-
import { getSmartBuilderOperator } from './common/model/operator';
|
|
6
|
-
import { PepQueryBuilderSectionComponent } from './query-builder-section/query-builder-section.component';
|
|
7
|
-
import { PepQueryBuilderItemComponent } from './query-builder-item/query-builder-item.component';
|
|
8
|
-
import { PepQueryBuilderTypeMap } from './common/model/type-map';
|
|
9
|
-
import { getSmartBuilderOperationUnit } from './common/model/operator-unit';
|
|
10
|
-
import { PepOutputQueryService } from './common/services/output-query.service';
|
|
11
|
-
import { PepOperatorTypes } from './common/model/type';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
import * as i1 from "@angular/forms";
|
|
14
|
-
import * as i2 from "./common/services/output-query.service";
|
|
15
|
-
const MAX_STRUCTURE_DEPTH = 3;
|
|
16
|
-
export class PepQueryBuilderService {
|
|
17
|
-
constructor(_fb, _resolver, _outputQueryService) {
|
|
18
|
-
this._fb = _fb;
|
|
19
|
-
this._resolver = _resolver;
|
|
20
|
-
this._outputQueryService = _outputQueryService;
|
|
21
|
-
this._outputQuery$ = new BehaviorSubject(null);
|
|
22
|
-
this._maxStructureDepth = MAX_STRUCTURE_DEPTH;
|
|
23
|
-
this.outputQuery$ = this._outputQuery$.asObservable();
|
|
24
|
-
}
|
|
25
|
-
set maxDepth(value) {
|
|
26
|
-
this._maxStructureDepth = value;
|
|
27
|
-
}
|
|
28
|
-
get maxDepth() {
|
|
29
|
-
return this._maxStructureDepth;
|
|
30
|
-
}
|
|
31
|
-
set fields(list) {
|
|
32
|
-
this._smartFilterFields = this.convertToSmartFilterFields(list);
|
|
33
|
-
}
|
|
34
|
-
get hasFields() {
|
|
35
|
-
var _a;
|
|
36
|
-
return ((_a = this._smartFilterFields) === null || _a === void 0 ? void 0 : _a.length) > 0;
|
|
37
|
-
}
|
|
38
|
-
set form(value) {
|
|
39
|
-
this._form = value;
|
|
40
|
-
}
|
|
41
|
-
get form() {
|
|
42
|
-
return this._form;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* builds a dynamic UI query structure
|
|
46
|
-
* might has a different structure than the query's due to parent-child elements merge
|
|
47
|
-
* @param query legacy query
|
|
48
|
-
* @param containerRef reference to root element
|
|
49
|
-
*/
|
|
50
|
-
buildQueryStructure(query, containerRef) {
|
|
51
|
-
//update root operator
|
|
52
|
-
if (this.hasProperty(query, 'ComplexId') &&
|
|
53
|
-
(query === null || query === void 0 ? void 0 : query.Operation) &&
|
|
54
|
-
query.Operation !== this._form.get('operator').value) {
|
|
55
|
-
this._form.get('operator').setValue(query.Operation);
|
|
56
|
-
}
|
|
57
|
-
this.flatten(null, query, containerRef, this._form, 1);
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* checks if the object contains property
|
|
61
|
-
* @param obj object
|
|
62
|
-
* @param prop property name
|
|
63
|
-
* @returns true if contains, false otherwise
|
|
64
|
-
*/
|
|
65
|
-
hasProperty(obj, prop) {
|
|
66
|
-
return Object.prototype.hasOwnProperty.call(obj, prop);
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* a recursive function dynamically builds UI filters structure
|
|
70
|
-
* @param parent legacy complex object
|
|
71
|
-
* @param current child legacy object (either another complex or expression type)
|
|
72
|
-
* @param containerRef parent element
|
|
73
|
-
* @param parentForm parent form
|
|
74
|
-
*/
|
|
75
|
-
flatten(parent, current, containerRef, parentForm, depth) {
|
|
76
|
-
if (this.hasProperty(current, 'ComplexId')) {
|
|
77
|
-
const section = current;
|
|
78
|
-
if ((parent === null || parent === void 0 ? void 0 : parent.Operation) === current.Operation) {
|
|
79
|
-
this.flatten(parent, section.LeftNode, containerRef, parentForm, depth);
|
|
80
|
-
this.flatten(parent, section.RightNode, containerRef, parentForm, depth);
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
const result = this.createSection(section.Operation, containerRef, parentForm, depth);
|
|
84
|
-
this.flatten(section, section.LeftNode, result.containerRef, result.parentForm, depth + 1);
|
|
85
|
-
this.flatten(section, section.RightNode, result.containerRef, result.parentForm, depth + 1);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
else if (this.hasProperty(current, 'ExpressionId')) {
|
|
89
|
-
this.createItem(current, containerRef, parentForm);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* creates a container object of two or more child filter items
|
|
94
|
-
* @param operator AND/OR operator
|
|
95
|
-
* @param containerRef parent element
|
|
96
|
-
* @param parentForm parent form
|
|
97
|
-
* @param depth
|
|
98
|
-
* @returns an object containing the current element and current form
|
|
99
|
-
*/
|
|
100
|
-
createSection(operator, containerRef, parentForm, depth) {
|
|
101
|
-
const factory = this._resolver.resolveComponentFactory(PepQueryBuilderSectionComponent);
|
|
102
|
-
const componentRef = containerRef.createComponent(factory);
|
|
103
|
-
const sectionGroup = this._fb.group({
|
|
104
|
-
operator: this._fb.control(operator || PepOperatorTypes.And)
|
|
105
|
-
});
|
|
106
|
-
let counter = 1;
|
|
107
|
-
Object.keys(parentForm.controls).forEach(item => { if (item.includes('section')) {
|
|
108
|
-
counter++;
|
|
109
|
-
} });
|
|
110
|
-
const formKey = `section${counter}`;
|
|
111
|
-
parentForm.addControl(formKey, sectionGroup);
|
|
112
|
-
componentRef.instance.form = sectionGroup;
|
|
113
|
-
componentRef.instance.depth = {
|
|
114
|
-
current: depth,
|
|
115
|
-
max: this._maxStructureDepth
|
|
116
|
-
};
|
|
117
|
-
componentRef.instance.createSection.subscribe(() => {
|
|
118
|
-
const section = this.createSection(PepOperatorTypes.And, componentRef.instance.sectionContainer, sectionGroup, depth + 1);
|
|
119
|
-
this.createItem(null, section.containerRef, section.parentForm);
|
|
120
|
-
});
|
|
121
|
-
componentRef.instance.createItem.subscribe(() => {
|
|
122
|
-
this.createItem(null, componentRef.instance.sectionContainer, sectionGroup);
|
|
123
|
-
});
|
|
124
|
-
componentRef.instance.remove.subscribe(() => {
|
|
125
|
-
parentForm.removeControl(formKey);
|
|
126
|
-
componentRef.destroy();
|
|
127
|
-
this.createOutputQuery();
|
|
128
|
-
});
|
|
129
|
-
componentRef.instance.operatorChange.subscribe(() => {
|
|
130
|
-
this.createOutputQuery();
|
|
131
|
-
});
|
|
132
|
-
return {
|
|
133
|
-
containerRef: componentRef.instance.sectionContainer,
|
|
134
|
-
parentForm: sectionGroup
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* creates a component represents filter item (leaf element - has no childs)
|
|
139
|
-
* @param current filter legacy element
|
|
140
|
-
* @param containerRef parent element
|
|
141
|
-
* @param parentForm parent form
|
|
142
|
-
*/
|
|
143
|
-
createItem(current, containerRef, parentForm) {
|
|
144
|
-
const factory = this._resolver.resolveComponentFactory(PepQueryBuilderItemComponent);
|
|
145
|
-
const componentRef = containerRef.createComponent(factory);
|
|
146
|
-
let counter = 1;
|
|
147
|
-
Object.keys(parentForm.controls).forEach(item => { if (item.includes('item')) {
|
|
148
|
-
counter++;
|
|
149
|
-
} });
|
|
150
|
-
const formKey = `item${counter}`;
|
|
151
|
-
componentRef.instance.formKey = formKey;
|
|
152
|
-
componentRef.instance.fields = this._smartFilterFields;
|
|
153
|
-
const selectedField = this.getSelectedField(current);
|
|
154
|
-
if (selectedField) {
|
|
155
|
-
componentRef.instance.selected = selectedField;
|
|
156
|
-
if (current) {
|
|
157
|
-
componentRef.instance.filter = this.getFilter(current, selectedField);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
componentRef.instance.parentForm = parentForm;
|
|
161
|
-
componentRef.instance.filterChange.subscribe(() => {
|
|
162
|
-
this.createOutputQuery();
|
|
163
|
-
});
|
|
164
|
-
componentRef.instance.remove.subscribe(() => {
|
|
165
|
-
parentForm.removeControl(formKey);
|
|
166
|
-
componentRef.destroy();
|
|
167
|
-
this.createOutputQuery();
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* creates a smart filter object
|
|
172
|
-
* @param current filter legacy element
|
|
173
|
-
* @param field filter's selected field
|
|
174
|
-
* @returns smart filter object
|
|
175
|
-
*/
|
|
176
|
-
getFilter(current, field) {
|
|
177
|
-
const operator = getSmartBuilderOperator(current.Operation, field.type);
|
|
178
|
-
if (operator) {
|
|
179
|
-
const filterValues = this.getFilterValues(current, operator, field);
|
|
180
|
-
return createSmartFilter(current.ApiName, operator, filterValues.first, filterValues.second, filterValues.operationUnit);
|
|
181
|
-
}
|
|
182
|
-
else {
|
|
183
|
-
return null;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* get smart filter field
|
|
188
|
-
* @param current filter legacy element
|
|
189
|
-
* @returns smart filter field, if not found returns the first fields
|
|
190
|
-
*/
|
|
191
|
-
getSelectedField(current) {
|
|
192
|
-
var _a, _b;
|
|
193
|
-
if (current) {
|
|
194
|
-
const item = this._smartFilterFields.find(field => field.id === current.ApiName);
|
|
195
|
-
return item ? item : ((_a = this._smartFilterFields) === null || _a === void 0 ? void 0 : _a.length) > 0 ? this._smartFilterFields[0] : null;
|
|
196
|
-
}
|
|
197
|
-
else {
|
|
198
|
-
return ((_b = this._smartFilterFields) === null || _b === void 0 ? void 0 : _b.length) > 0 ? this._smartFilterFields[0] : null;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* gets smart filter's values data
|
|
203
|
-
* @param current filter legacy element
|
|
204
|
-
* @param operator smart filter operator
|
|
205
|
-
* @param field filter's selected field
|
|
206
|
-
* @returns object contains the filter values data
|
|
207
|
-
*/
|
|
208
|
-
getFilterValues(current, operator, field) {
|
|
209
|
-
var _a, _b, _c, _d, _e;
|
|
210
|
-
const data = {
|
|
211
|
-
first: null,
|
|
212
|
-
second: null,
|
|
213
|
-
operationUnit: null
|
|
214
|
-
};
|
|
215
|
-
if (operator === PepSmartFilterOperators.In) { //multi select
|
|
216
|
-
//filter keys don't exist on field options
|
|
217
|
-
data.first = ((_a = current === null || current === void 0 ? void 0 : current.Values) === null || _a === void 0 ? void 0 : _a.length) > 0 ? current.Values.filter(item => {
|
|
218
|
-
return field.options.find(option => option.key === item);
|
|
219
|
-
}) : null;
|
|
220
|
-
}
|
|
221
|
-
else if (operator === PepSmartFilterOperators.InTheLast ||
|
|
222
|
-
operator === PepSmartFilterOperators.NotInTheLast ||
|
|
223
|
-
operator === PepSmartFilterOperators.DueIn ||
|
|
224
|
-
operator === PepSmartFilterOperators.NotDueIn) { //operation unit
|
|
225
|
-
data.first = ((_b = current === null || current === void 0 ? void 0 : current.Values) === null || _b === void 0 ? void 0 : _b.length) > 0 ? current.Values[0] : null;
|
|
226
|
-
if (((_c = current === null || current === void 0 ? void 0 : current.Values) === null || _c === void 0 ? void 0 : _c.length) === 2) {
|
|
227
|
-
data.operationUnit = getSmartBuilderOperationUnit(current.Values[1]);
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
else {
|
|
231
|
-
data.first = ((_d = current === null || current === void 0 ? void 0 : current.Values) === null || _d === void 0 ? void 0 : _d.length) > 0 ? current.Values[0] : null;
|
|
232
|
-
data.second = ((_e = current === null || current === void 0 ? void 0 : current.Values) === null || _e === void 0 ? void 0 : _e.length) === 2 ? current.Values[1] : null;
|
|
233
|
-
}
|
|
234
|
-
return data;
|
|
235
|
-
}
|
|
236
|
-
/**
|
|
237
|
-
* converts legacy fields to smart filter fields
|
|
238
|
-
* @param fields legacy fields array
|
|
239
|
-
* @returns smart filter fields array
|
|
240
|
-
*/
|
|
241
|
-
convertToSmartFilterFields(fields) {
|
|
242
|
-
if ((fields === null || fields === void 0 ? void 0 : fields.length) > 0) {
|
|
243
|
-
const typeMapper = new PepQueryBuilderTypeMap();
|
|
244
|
-
return fields.map((field) => {
|
|
245
|
-
var _a;
|
|
246
|
-
return createSmartFilterField({
|
|
247
|
-
id: field.FieldID,
|
|
248
|
-
name: field.Title,
|
|
249
|
-
options: (_a = field.OptionalValues) === null || _a === void 0 ? void 0 : _a.map(option => {
|
|
250
|
-
return {
|
|
251
|
-
key: option.Key,
|
|
252
|
-
value: option.Value
|
|
253
|
-
};
|
|
254
|
-
})
|
|
255
|
-
}, typeMapper.getSmartBuilderType(field.FieldType));
|
|
256
|
-
});
|
|
257
|
-
}
|
|
258
|
-
else {
|
|
259
|
-
return [];
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
/**
|
|
263
|
-
* creates a legacy output query
|
|
264
|
-
*/
|
|
265
|
-
createOutputQuery() {
|
|
266
|
-
if (this._form.valid) {
|
|
267
|
-
const query = this._outputQueryService.generateQuery(this._form.value);
|
|
268
|
-
this._outputQuery$.next(query);
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
PepQueryBuilderService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PepQueryBuilderService_Factory() { return new PepQueryBuilderService(i0.ɵɵinject(i1.FormBuilder), i0.ɵɵinject(i0.ComponentFactoryResolver), i0.ɵɵinject(i2.PepOutputQueryService)); }, token: PepQueryBuilderService, providedIn: "root" });
|
|
273
|
-
PepQueryBuilderService.decorators = [
|
|
274
|
-
{ type: Injectable, args: [{
|
|
275
|
-
providedIn: 'root'
|
|
276
|
-
},] }
|
|
277
|
-
];
|
|
278
|
-
PepQueryBuilderService.ctorParameters = () => [
|
|
279
|
-
{ type: FormBuilder },
|
|
280
|
-
{ type: ComponentFactoryResolver },
|
|
281
|
-
{ type: PepOutputQueryService }
|
|
282
|
-
];
|
|
283
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9xdWVyeS1idWlsZGVyL3F1ZXJ5LWJ1aWxkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFvQix3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd2QyxPQUFPLEVBR0gsdUJBQXVCLEVBR3ZCLGlCQUFpQixFQUNqQixzQkFBc0IsRUFDekIsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUUvRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQUV2RCxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQztBQUs5QixNQUFNLE9BQU8sc0JBQXNCO0lBUy9CLFlBQW9CLEdBQWdCLEVBQVUsU0FBbUMsRUFBVSxtQkFBMEM7UUFBakgsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQTBCO1FBQVUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUF1QjtRQVI3SCxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFDO1FBSS9DLHVCQUFrQixHQUFHLG1CQUFtQixDQUFDO1FBRTFDLGlCQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUl4RCxDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsS0FBSztRQUNkLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxJQUFrQztRQUN6QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxJQUFJLFNBQVM7O1FBQ1QsT0FBTyxDQUFBLE1BQUEsSUFBSSxDQUFDLGtCQUFrQiwwQ0FBRSxNQUFNLElBQUcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxLQUFnQjtRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILG1CQUFtQixDQUNmLEtBQXVCLEVBQ3ZCLFlBQThCO1FBRTlCLDhCQUE4QjtRQUM5QixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQzthQUNwQyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsU0FBUyxDQUFBO1lBQ2hCLEtBQUssQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFO1lBQ3RELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDeEQ7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7OztNQUtFO0lBQ00sV0FBVyxDQUFDLEdBQUcsRUFBRSxJQUFJO1FBQ3pCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssT0FBTyxDQUFDLE1BQXdCLEVBQUUsT0FBeUMsRUFBRSxZQUE4QixFQUFFLFVBQXFCLEVBQUUsS0FBYTtRQUNySixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxFQUFFO1lBQ3hDLE1BQU0sT0FBTyxHQUFHLE9BQTJCLENBQUM7WUFDNUMsSUFBSSxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxTQUFTLE1BQUssT0FBTyxDQUFDLFNBQVMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN4RSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDNUU7aUJBQU07Z0JBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3RGLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsVUFBVSxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDM0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxVQUFVLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQy9GO1NBQ0o7YUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxFQUFFO1lBQ2xELElBQUksQ0FBQyxVQUFVLENBQUMsT0FBd0IsRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDdkU7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILGFBQWEsQ0FBQyxRQUEwQixFQUFFLFlBQThCLEVBQUUsVUFBcUIsRUFBRSxLQUFhO1FBQzFHLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUN4RixNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTNELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQ2hDLFFBQVEsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksZ0JBQWdCLENBQUMsR0FBRyxDQUFDO1NBQy9ELENBQUMsQ0FBQztRQUNILElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFBRSxPQUFPLEVBQUUsQ0FBQztTQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkcsTUFBTSxPQUFPLEdBQUcsVUFBVSxPQUFPLEVBQUUsQ0FBQztRQUNwQyxVQUFVLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztRQUU3QyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7UUFDMUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUc7WUFDMUIsT0FBTyxFQUFFLEtBQUs7WUFDZCxHQUFHLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtTQUMvQixDQUFDO1FBQ0YsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMvQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLFlBQVksRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDMUgsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEUsQ0FBQyxDQUFDLENBQUM7UUFDSCxZQUFZLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzVDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDaEYsQ0FBQyxDQUFDLENBQUM7UUFDSCxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3hDLFVBQVUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbEMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsWUFBWSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNoRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU87WUFDSCxZQUFZLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0I7WUFDcEQsVUFBVSxFQUFFLFlBQVk7U0FDM0IsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFVBQVUsQ0FBQyxPQUFzQixFQUFFLFlBQThCLEVBQUUsVUFBcUI7UUFDcEYsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ3JGLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFM0QsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUFFLE9BQU8sRUFBRSxDQUFDO1NBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRyxNQUFNLE9BQU8sR0FBRyxPQUFPLE9BQU8sRUFBRSxDQUFDO1FBRWpDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN4QyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDdkQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELElBQUksYUFBYSxFQUFFO1lBQ2YsWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDO1lBQy9DLElBQUksT0FBTyxFQUFFO2dCQUNULFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO2FBQ3pFO1NBQ0o7UUFDRCxZQUFZLENBQUMsUUFBUSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDOUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM5QyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztRQUNILFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDeEMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNsQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxTQUFTLENBQUMsT0FBc0IsRUFBRSxLQUFVO1FBQ2hELE1BQU0sUUFBUSxHQUE0Qix1QkFBdUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRyxJQUFJLFFBQVEsRUFBRTtZQUNWLE1BQU0sWUFBWSxHQUEyQixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDNUYsT0FBTyxpQkFBaUIsQ0FDcEIsT0FBTyxDQUFDLE9BQU8sRUFDZixRQUFRLEVBQ1IsWUFBWSxDQUFDLEtBQUssRUFDbEIsWUFBWSxDQUFDLE1BQU0sRUFDbkIsWUFBWSxDQUFDLGFBQWEsQ0FDN0IsQ0FBQztTQUNMO2FBQU07WUFDSCxPQUFPLElBQUksQ0FBQztTQUNmO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxnQkFBZ0IsQ0FBQyxPQUFzQjs7UUFDM0MsSUFBSSxPQUFPLEVBQUU7WUFDVCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakYsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQSxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDaEc7YUFBTTtZQUNILE9BQU8sQ0FBQSxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDbEY7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssZUFBZSxDQUFDLE9BQXNCLEVBQUUsUUFBaUMsRUFBRSxLQUFVOztRQUN6RixNQUFNLElBQUksR0FBMkI7WUFDakMsS0FBSyxFQUFFLElBQUk7WUFDWCxNQUFNLEVBQUUsSUFBSTtZQUNaLGFBQWEsRUFBRSxJQUFJO1NBQ3RCLENBQUM7UUFFRixJQUFJLFFBQVEsS0FBSyx1QkFBdUIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxzQ0FBc0M7WUFDakYsMENBQTBDO1lBQzFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQSxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxNQUFNLDBDQUFFLE1BQU0sSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNwRSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQztZQUM3RCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQ2I7YUFBTSxJQUNILFFBQVEsS0FBSyx1QkFBdUIsQ0FBQyxTQUFTO1lBQzlDLFFBQVEsS0FBSyx1QkFBdUIsQ0FBQyxZQUFZO1lBQ2pELFFBQVEsS0FBSyx1QkFBdUIsQ0FBQyxLQUFLO1lBQzFDLFFBQVEsS0FBSyx1QkFBdUIsQ0FBQyxRQUFRLEVBQy9DLEVBQUUsZ0JBQWdCO1lBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQSxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxNQUFNLDBDQUFFLE1BQU0sSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNwRSxJQUFJLENBQUEsTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsTUFBTSwwQ0FBRSxNQUFNLE1BQUssQ0FBQyxFQUFFO2dCQUMvQixJQUFJLENBQUMsYUFBYSxHQUFHLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN4RTtTQUNKO2FBQU07WUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUEsTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsTUFBTSwwQ0FBRSxNQUFNLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDcEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFBLE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE1BQU0sMENBQUUsTUFBTSxNQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQzFFO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSywwQkFBMEIsQ0FBQyxNQUFvQztRQUNuRSxJQUFJLENBQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLE1BQU0sSUFBRyxDQUFDLEVBQUU7WUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1lBQ2hELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFOztnQkFDeEIsT0FBTyxzQkFBc0IsQ0FDekI7b0JBQ0ksRUFBRSxFQUFFLEtBQUssQ0FBQyxPQUFPO29CQUNqQixJQUFJLEVBQUUsS0FBSyxDQUFDLEtBQUs7b0JBQ2pCLE9BQU8sRUFBRSxNQUFBLEtBQUssQ0FBQyxjQUFjLDBDQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTt3QkFDeEMsT0FBTzs0QkFDSCxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUc7NEJBQ2YsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO3lCQUN0QixDQUFBO29CQUNMLENBQUMsQ0FBQztpQkFDbUIsRUFDdkIsVUFBVSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQXVCLENBQUMsQ0FBQTtZQUNoRixDQUFDLENBQUMsQ0FBQTtTQUNMO2FBQU07WUFDSCxPQUFPLEVBQUUsQ0FBQztTQUNiO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsaUJBQWlCO1FBQ2IsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtZQUNsQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbEM7SUFDTCxDQUFDOzs7O1lBelJKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7O1lBMUJRLFdBQVc7WUFEbUIsd0JBQXdCO1lBbUJ0RCxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBWaWV3Q29udGFpbmVyUmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IH0gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgSVBlcFF1ZXJ5QnVpbGRlckZpZWxkLCBJUGVwUXVlcnlTZWN0aW9uLCBJUGVwUXVlcnlJdGVtIH0gZnJvbSAnLi9jb21tb24vbW9kZWwvbGVnYWN5JztcclxuaW1wb3J0IHtcclxuICAgIElQZXBTbWFydEZpbHRlckZpZWxkLFxyXG4gICAgSVBlcFNtYXJ0RmlsdGVyRGF0YSxcclxuICAgIFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLFxyXG4gICAgSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IsXHJcbiAgICBQZXBTbWFydEZpbHRlclR5cGUsXHJcbiAgICBjcmVhdGVTbWFydEZpbHRlcixcclxuICAgIGNyZWF0ZVNtYXJ0RmlsdGVyRmllbGRcclxufSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9zbWFydC1maWx0ZXJzJztcclxuaW1wb3J0IHsgZ2V0U21hcnRCdWlsZGVyT3BlcmF0b3IgfSBmcm9tICcuL2NvbW1vbi9tb2RlbC9vcGVyYXRvcic7XHJcbmltcG9ydCB7IFBlcFF1ZXJ5QnVpbGRlclNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL3F1ZXJ5LWJ1aWxkZXItc2VjdGlvbi9xdWVyeS1idWlsZGVyLXNlY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGVwUXVlcnlCdWlsZGVySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vcXVlcnktYnVpbGRlci1pdGVtL3F1ZXJ5LWJ1aWxkZXItaXRlbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQZXBRdWVyeUJ1aWxkZXJUeXBlTWFwIH0gZnJvbSAnLi9jb21tb24vbW9kZWwvdHlwZS1tYXAnO1xyXG5pbXBvcnQgeyBnZXRTbWFydEJ1aWxkZXJPcGVyYXRpb25Vbml0IH0gZnJvbSAnLi9jb21tb24vbW9kZWwvb3BlcmF0b3ItdW5pdCc7XHJcbmltcG9ydCB7IFBlcE91dHB1dFF1ZXJ5U2VydmljZSB9IGZyb20gJy4vY29tbW9uL3NlcnZpY2VzL291dHB1dC1xdWVyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSVBlcFF1ZXJ5QnVpbGRlclZhbHVlcyB9IGZyb20gJy4vY29tbW9uL21vZGVsL2ZpbHRlcic7XHJcbmltcG9ydCB7IFBlcE9wZXJhdG9yVHlwZXMgfSBmcm9tICcuL2NvbW1vbi9tb2RlbC90eXBlJztcclxuXHJcbmNvbnN0IE1BWF9TVFJVQ1RVUkVfREVQVEggPSAzO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZXBRdWVyeUJ1aWxkZXJTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgX291dHB1dFF1ZXJ5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcclxuXHJcbiAgICBwcml2YXRlIF9zbWFydEZpbHRlckZpZWxkczogQXJyYXk8SVBlcFNtYXJ0RmlsdGVyRmllbGQ+O1xyXG4gICAgcHJpdmF0ZSBfZm9ybTogRm9ybUdyb3VwO1xyXG4gICAgcHJpdmF0ZSBfbWF4U3RydWN0dXJlRGVwdGggPSBNQVhfU1RSVUNUVVJFX0RFUFRIO1xyXG5cclxuICAgIHB1YmxpYyBvdXRwdXRRdWVyeSQgPSB0aGlzLl9vdXRwdXRRdWVyeSQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIF9yZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBwcml2YXRlIF9vdXRwdXRRdWVyeVNlcnZpY2U6IFBlcE91dHB1dFF1ZXJ5U2VydmljZSkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBzZXQgbWF4RGVwdGgodmFsdWUpIHtcclxuICAgICAgICB0aGlzLl9tYXhTdHJ1Y3R1cmVEZXB0aCA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBtYXhEZXB0aCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWF4U3RydWN0dXJlRGVwdGg7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGZpZWxkcyhsaXN0OiBBcnJheTxJUGVwUXVlcnlCdWlsZGVyRmllbGQ+KSB7XHJcbiAgICAgICAgdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHMgPSB0aGlzLmNvbnZlcnRUb1NtYXJ0RmlsdGVyRmllbGRzKGxpc3QpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBoYXNGaWVsZHMoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzPy5sZW5ndGggPiAwO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBmb3JtKHZhbHVlOiBGb3JtR3JvdXApIHtcclxuICAgICAgICB0aGlzLl9mb3JtID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGZvcm0oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBidWlsZHMgYSBkeW5hbWljIFVJIHF1ZXJ5IHN0cnVjdHVyZVxyXG4gICAgICogbWlnaHQgaGFzIGEgZGlmZmVyZW50IHN0cnVjdHVyZSB0aGFuIHRoZSBxdWVyeSdzIGR1ZSB0byBwYXJlbnQtY2hpbGQgZWxlbWVudHMgbWVyZ2VcclxuICAgICAqIEBwYXJhbSBxdWVyeSBsZWdhY3kgcXVlcnkgICAgIFxyXG4gICAgICogQHBhcmFtIGNvbnRhaW5lclJlZiByZWZlcmVuY2UgdG8gcm9vdCBlbGVtZW50XHJcbiAgICAgKi9cclxuICAgIGJ1aWxkUXVlcnlTdHJ1Y3R1cmUoXHJcbiAgICAgICAgcXVlcnk6IElQZXBRdWVyeVNlY3Rpb24sXHJcbiAgICAgICAgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmXHJcbiAgICApIHtcclxuICAgICAgICAvL3VwZGF0ZSByb290IG9wZXJhdG9yICAgICAgICBcclxuICAgICAgICBpZiAodGhpcy5oYXNQcm9wZXJ0eShxdWVyeSwgJ0NvbXBsZXhJZCcpICYmXHJcbiAgICAgICAgICAgIHF1ZXJ5Py5PcGVyYXRpb24gJiZcclxuICAgICAgICAgICAgcXVlcnkuT3BlcmF0aW9uICE9PSB0aGlzLl9mb3JtLmdldCgnb3BlcmF0b3InKS52YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9mb3JtLmdldCgnb3BlcmF0b3InKS5zZXRWYWx1ZShxdWVyeS5PcGVyYXRpb24pO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmZsYXR0ZW4obnVsbCwgcXVlcnksIGNvbnRhaW5lclJlZiwgdGhpcy5fZm9ybSwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIGNoZWNrcyBpZiB0aGUgb2JqZWN0IGNvbnRhaW5zIHByb3BlcnR5XHJcbiAgICAqIEBwYXJhbSBvYmogb2JqZWN0XHJcbiAgICAqIEBwYXJhbSBwcm9wIHByb3BlcnR5IG5hbWVcclxuICAgICogQHJldHVybnMgdHJ1ZSBpZiBjb250YWlucywgZmFsc2Ugb3RoZXJ3aXNlXHJcbiAgICAqL1xyXG4gICAgcHJpdmF0ZSBoYXNQcm9wZXJ0eShvYmosIHByb3ApIHtcclxuICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBhIHJlY3Vyc2l2ZSBmdW5jdGlvbiBkeW5hbWljYWxseSBidWlsZHMgVUkgZmlsdGVycyBzdHJ1Y3R1cmVcclxuICAgICAqIEBwYXJhbSBwYXJlbnQgbGVnYWN5IGNvbXBsZXggb2JqZWN0XHJcbiAgICAgKiBAcGFyYW0gY3VycmVudCBjaGlsZCBsZWdhY3kgb2JqZWN0IChlaXRoZXIgYW5vdGhlciBjb21wbGV4IG9yIGV4cHJlc3Npb24gdHlwZSlcclxuICAgICAqIEBwYXJhbSBjb250YWluZXJSZWYgcGFyZW50IGVsZW1lbnRcclxuICAgICAqIEBwYXJhbSBwYXJlbnRGb3JtIHBhcmVudCBmb3JtXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZmxhdHRlbihwYXJlbnQ6IElQZXBRdWVyeVNlY3Rpb24sIGN1cnJlbnQ6IElQZXBRdWVyeVNlY3Rpb24gfCBJUGVwUXVlcnlJdGVtLCBjb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIHBhcmVudEZvcm06IEZvcm1Hcm91cCwgZGVwdGg6IG51bWJlcikge1xyXG4gICAgICAgIGlmICh0aGlzLmhhc1Byb3BlcnR5KGN1cnJlbnQsICdDb21wbGV4SWQnKSkge1xyXG4gICAgICAgICAgICBjb25zdCBzZWN0aW9uID0gY3VycmVudCBhcyBJUGVwUXVlcnlTZWN0aW9uO1xyXG4gICAgICAgICAgICBpZiAocGFyZW50Py5PcGVyYXRpb24gPT09IGN1cnJlbnQuT3BlcmF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZsYXR0ZW4ocGFyZW50LCBzZWN0aW9uLkxlZnROb2RlLCBjb250YWluZXJSZWYsIHBhcmVudEZvcm0sIGRlcHRoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmxhdHRlbihwYXJlbnQsIHNlY3Rpb24uUmlnaHROb2RlLCBjb250YWluZXJSZWYsIHBhcmVudEZvcm0sIGRlcHRoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuY3JlYXRlU2VjdGlvbihzZWN0aW9uLk9wZXJhdGlvbiwgY29udGFpbmVyUmVmLCBwYXJlbnRGb3JtLCBkZXB0aCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZsYXR0ZW4oc2VjdGlvbiwgc2VjdGlvbi5MZWZ0Tm9kZSwgcmVzdWx0LmNvbnRhaW5lclJlZiwgcmVzdWx0LnBhcmVudEZvcm0sIGRlcHRoICsgMSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZsYXR0ZW4oc2VjdGlvbiwgc2VjdGlvbi5SaWdodE5vZGUsIHJlc3VsdC5jb250YWluZXJSZWYsIHJlc3VsdC5wYXJlbnRGb3JtLCBkZXB0aCArIDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmhhc1Byb3BlcnR5KGN1cnJlbnQsICdFeHByZXNzaW9uSWQnKSkge1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUl0ZW0oY3VycmVudCBhcyBJUGVwUXVlcnlJdGVtLCBjb250YWluZXJSZWYsIHBhcmVudEZvcm0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGNyZWF0ZXMgYSBjb250YWluZXIgb2JqZWN0IG9mIHR3byBvciBtb3JlIGNoaWxkIGZpbHRlciBpdGVtc1xyXG4gICAgICogQHBhcmFtIG9wZXJhdG9yIEFORC9PUiBvcGVyYXRvclxyXG4gICAgICogQHBhcmFtIGNvbnRhaW5lclJlZiBwYXJlbnQgZWxlbWVudFxyXG4gICAgICogQHBhcmFtIHBhcmVudEZvcm0gcGFyZW50IGZvcm1cclxuICAgICAqIEBwYXJhbSBkZXB0aFxyXG4gICAgICogQHJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgZWxlbWVudCBhbmQgY3VycmVudCBmb3JtXHJcbiAgICAgKi9cclxuICAgIGNyZWF0ZVNlY3Rpb24ob3BlcmF0b3I6IFBlcE9wZXJhdG9yVHlwZXMsIGNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgcGFyZW50Rm9ybTogRm9ybUdyb3VwLCBkZXB0aDogbnVtYmVyKSB7XHJcbiAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuX3Jlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFBlcFF1ZXJ5QnVpbGRlclNlY3Rpb25Db21wb25lbnQpO1xyXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGNvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHNlY3Rpb25Hcm91cCA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgICAgICAgICAgb3BlcmF0b3I6IHRoaXMuX2ZiLmNvbnRyb2wob3BlcmF0b3IgfHwgUGVwT3BlcmF0b3JUeXBlcy5BbmQpXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbGV0IGNvdW50ZXIgPSAxO1xyXG4gICAgICAgIE9iamVjdC5rZXlzKHBhcmVudEZvcm0uY29udHJvbHMpLmZvckVhY2goaXRlbSA9PiB7IGlmIChpdGVtLmluY2x1ZGVzKCdzZWN0aW9uJykpIHsgY291bnRlcisrOyB9IH0pO1xyXG4gICAgICAgIGNvbnN0IGZvcm1LZXkgPSBgc2VjdGlvbiR7Y291bnRlcn1gO1xyXG4gICAgICAgIHBhcmVudEZvcm0uYWRkQ29udHJvbChmb3JtS2V5LCBzZWN0aW9uR3JvdXApO1xyXG5cclxuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZm9ybSA9IHNlY3Rpb25Hcm91cDtcclxuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZGVwdGggPSB7XHJcbiAgICAgICAgICAgIGN1cnJlbnQ6IGRlcHRoLFxyXG4gICAgICAgICAgICBtYXg6IHRoaXMuX21heFN0cnVjdHVyZURlcHRoXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY3JlYXRlU2VjdGlvbi5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBzZWN0aW9uID0gdGhpcy5jcmVhdGVTZWN0aW9uKFBlcE9wZXJhdG9yVHlwZXMuQW5kLCBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VjdGlvbkNvbnRhaW5lciwgc2VjdGlvbkdyb3VwLCBkZXB0aCArIDEpO1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUl0ZW0obnVsbCwgc2VjdGlvbi5jb250YWluZXJSZWYsIHNlY3Rpb24ucGFyZW50Rm9ybSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmNyZWF0ZUl0ZW0uc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVJdGVtKG51bGwsIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWN0aW9uQ29udGFpbmVyLCBzZWN0aW9uR3JvdXApO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5yZW1vdmUuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgcGFyZW50Rm9ybS5yZW1vdmVDb250cm9sKGZvcm1LZXkpO1xyXG4gICAgICAgICAgICBjb21wb25lbnRSZWYuZGVzdHJveSgpO1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZU91dHB1dFF1ZXJ5KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLm9wZXJhdG9yQ2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlT3V0cHV0UXVlcnkoKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgY29udGFpbmVyUmVmOiBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VjdGlvbkNvbnRhaW5lcixcclxuICAgICAgICAgICAgcGFyZW50Rm9ybTogc2VjdGlvbkdyb3VwXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGNyZWF0ZXMgYSBjb21wb25lbnQgcmVwcmVzZW50cyBmaWx0ZXIgaXRlbSAobGVhZiBlbGVtZW50IC0gaGFzIG5vIGNoaWxkcylcclxuICAgICAqIEBwYXJhbSBjdXJyZW50IGZpbHRlciBsZWdhY3kgZWxlbWVudFxyXG4gICAgICogQHBhcmFtIGNvbnRhaW5lclJlZiBwYXJlbnQgZWxlbWVudFxyXG4gICAgICogQHBhcmFtIHBhcmVudEZvcm0gcGFyZW50IGZvcm1cclxuICAgICAqL1xyXG4gICAgY3JlYXRlSXRlbShjdXJyZW50OiBJUGVwUXVlcnlJdGVtLCBjb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIHBhcmVudEZvcm06IEZvcm1Hcm91cCkge1xyXG4gICAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLl9yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShQZXBRdWVyeUJ1aWxkZXJJdGVtQ29tcG9uZW50KTtcclxuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSBjb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xyXG5cclxuICAgICAgICBsZXQgY291bnRlciA9IDE7XHJcbiAgICAgICAgT2JqZWN0LmtleXMocGFyZW50Rm9ybS5jb250cm9scykuZm9yRWFjaChpdGVtID0+IHsgaWYgKGl0ZW0uaW5jbHVkZXMoJ2l0ZW0nKSkgeyBjb3VudGVyKys7IH0gfSk7XHJcbiAgICAgICAgY29uc3QgZm9ybUtleSA9IGBpdGVtJHtjb3VudGVyfWA7XHJcblxyXG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5mb3JtS2V5ID0gZm9ybUtleTtcclxuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZmllbGRzID0gdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHM7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRGaWVsZCA9IHRoaXMuZ2V0U2VsZWN0ZWRGaWVsZChjdXJyZW50KTtcclxuICAgICAgICBpZiAoc2VsZWN0ZWRGaWVsZCkge1xyXG4gICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VsZWN0ZWQgPSBzZWxlY3RlZEZpZWxkO1xyXG4gICAgICAgICAgICBpZiAoY3VycmVudCkge1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmZpbHRlciA9IHRoaXMuZ2V0RmlsdGVyKGN1cnJlbnQsIHNlbGVjdGVkRmllbGQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5wYXJlbnRGb3JtID0gcGFyZW50Rm9ybTtcclxuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZmlsdGVyQ2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlT3V0cHV0UXVlcnkoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UucmVtb3ZlLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHBhcmVudEZvcm0ucmVtb3ZlQ29udHJvbChmb3JtS2V5KTtcclxuICAgICAgICAgICAgY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVPdXRwdXRRdWVyeSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogY3JlYXRlcyBhIHNtYXJ0IGZpbHRlciBvYmplY3RcclxuICAgICAqIEBwYXJhbSBjdXJyZW50IGZpbHRlciBsZWdhY3kgZWxlbWVudFxyXG4gICAgICogQHBhcmFtIGZpZWxkIGZpbHRlcidzIHNlbGVjdGVkIGZpZWxkXHJcbiAgICAgKiBAcmV0dXJucyBzbWFydCBmaWx0ZXIgb2JqZWN0XHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0RmlsdGVyKGN1cnJlbnQ6IElQZXBRdWVyeUl0ZW0sIGZpZWxkOiBhbnkpOiBJUGVwU21hcnRGaWx0ZXJEYXRhIHwgbnVsbCB7XHJcbiAgICAgICAgY29uc3Qgb3BlcmF0b3I6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yID0gZ2V0U21hcnRCdWlsZGVyT3BlcmF0b3IoY3VycmVudC5PcGVyYXRpb24sIGZpZWxkLnR5cGUpO1xyXG4gICAgICAgIGlmIChvcGVyYXRvcikge1xyXG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJWYWx1ZXM6IElQZXBRdWVyeUJ1aWxkZXJWYWx1ZXMgPSB0aGlzLmdldEZpbHRlclZhbHVlcyhjdXJyZW50LCBvcGVyYXRvciwgZmllbGQpO1xyXG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlU21hcnRGaWx0ZXIoXHJcbiAgICAgICAgICAgICAgICBjdXJyZW50LkFwaU5hbWUsXHJcbiAgICAgICAgICAgICAgICBvcGVyYXRvcixcclxuICAgICAgICAgICAgICAgIGZpbHRlclZhbHVlcy5maXJzdCxcclxuICAgICAgICAgICAgICAgIGZpbHRlclZhbHVlcy5zZWNvbmQsXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJWYWx1ZXMub3BlcmF0aW9uVW5pdFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCBzbWFydCBmaWx0ZXIgZmllbGRcclxuICAgICAqIEBwYXJhbSBjdXJyZW50IGZpbHRlciBsZWdhY3kgZWxlbWVudFxyXG4gICAgICogQHJldHVybnMgc21hcnQgZmlsdGVyIGZpZWxkLCBpZiBub3QgZm91bmQgcmV0dXJucyB0aGUgZmlyc3QgZmllbGRzXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0U2VsZWN0ZWRGaWVsZChjdXJyZW50OiBJUGVwUXVlcnlJdGVtKTogSVBlcFNtYXJ0RmlsdGVyRmllbGQgfCBudWxsIHtcclxuICAgICAgICBpZiAoY3VycmVudCkge1xyXG4gICAgICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHMuZmluZChmaWVsZCA9PiBmaWVsZC5pZCA9PT0gY3VycmVudC5BcGlOYW1lKTtcclxuICAgICAgICAgICAgcmV0dXJuIGl0ZW0gPyBpdGVtIDogdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHM/Lmxlbmd0aCA+IDAgPyB0aGlzLl9zbWFydEZpbHRlckZpZWxkc1swXSA6IG51bGw7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzPy5sZW5ndGggPiAwID8gdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHNbMF0gOiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldHMgc21hcnQgZmlsdGVyJ3MgdmFsdWVzIGRhdGFcclxuICAgICAqIEBwYXJhbSBjdXJyZW50IGZpbHRlciBsZWdhY3kgZWxlbWVudFxyXG4gICAgICogQHBhcmFtIG9wZXJhdG9yIHNtYXJ0IGZpbHRlciBvcGVyYXRvclxyXG4gICAgICogQHBhcmFtIGZpZWxkIGZpbHRlcidzIHNlbGVjdGVkIGZpZWxkXHJcbiAgICAgKiBAcmV0dXJucyBvYmplY3QgY29udGFpbnMgdGhlIGZpbHRlciB2YWx1ZXMgZGF0YVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldEZpbHRlclZhbHVlcyhjdXJyZW50OiBJUGVwUXVlcnlJdGVtLCBvcGVyYXRvcjogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IsIGZpZWxkOiBhbnkpIHtcclxuICAgICAgICBjb25zdCBkYXRhOiBJUGVwUXVlcnlCdWlsZGVyVmFsdWVzID0ge1xyXG4gICAgICAgICAgICBmaXJzdDogbnVsbCxcclxuICAgICAgICAgICAgc2Vjb25kOiBudWxsLFxyXG4gICAgICAgICAgICBvcGVyYXRpb25Vbml0OiBudWxsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgaWYgKG9wZXJhdG9yID09PSBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5JbikgeyAvL211bHRpIHNlbGVjdCAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvL2ZpbHRlciBrZXlzIGRvbid0IGV4aXN0IG9uIGZpZWxkIG9wdGlvbnNcclxuICAgICAgICAgICAgZGF0YS5maXJzdCA9IGN1cnJlbnQ/LlZhbHVlcz8ubGVuZ3RoID4gMCA/IGN1cnJlbnQuVmFsdWVzLmZpbHRlcihpdGVtID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmaWVsZC5vcHRpb25zLmZpbmQob3B0aW9uID0+IG9wdGlvbi5rZXkgPT09IGl0ZW0pO1xyXG4gICAgICAgICAgICB9KSA6IG51bGw7XHJcbiAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgICAgb3BlcmF0b3IgPT09IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLkluVGhlTGFzdCB8fFxyXG4gICAgICAgICAgICBvcGVyYXRvciA9PT0gUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuTm90SW5UaGVMYXN0IHx8XHJcbiAgICAgICAgICAgIG9wZXJhdG9yID09PSBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5EdWVJbiB8fFxyXG4gICAgICAgICAgICBvcGVyYXRvciA9PT0gUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuTm90RHVlSW5cclxuICAgICAgICApIHsgLy9vcGVyYXRpb24gdW5pdFxyXG4gICAgICAgICAgICBkYXRhLmZpcnN0ID0gY3VycmVudD8uVmFsdWVzPy5sZW5ndGggPiAwID8gY3VycmVudC5WYWx1ZXNbMF0gOiBudWxsO1xyXG4gICAgICAgICAgICBpZiAoY3VycmVudD8uVmFsdWVzPy5sZW5ndGggPT09IDIpIHtcclxuICAgICAgICAgICAgICAgIGRhdGEub3BlcmF0aW9uVW5pdCA9IGdldFNtYXJ0QnVpbGRlck9wZXJhdGlvblVuaXQoY3VycmVudC5WYWx1ZXNbMV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZGF0YS5maXJzdCA9IGN1cnJlbnQ/LlZhbHVlcz8ubGVuZ3RoID4gMCA/IGN1cnJlbnQuVmFsdWVzWzBdIDogbnVsbDtcclxuICAgICAgICAgICAgZGF0YS5zZWNvbmQgPSBjdXJyZW50Py5WYWx1ZXM/Lmxlbmd0aCA9PT0gMiA/IGN1cnJlbnQuVmFsdWVzWzFdIDogbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogY29udmVydHMgbGVnYWN5IGZpZWxkcyB0byBzbWFydCBmaWx0ZXIgZmllbGRzXHJcbiAgICAgKiBAcGFyYW0gZmllbGRzIGxlZ2FjeSBmaWVsZHMgYXJyYXlcclxuICAgICAqIEByZXR1cm5zIHNtYXJ0IGZpbHRlciBmaWVsZHMgYXJyYXlcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBjb252ZXJ0VG9TbWFydEZpbHRlckZpZWxkcyhmaWVsZHM6IEFycmF5PElQZXBRdWVyeUJ1aWxkZXJGaWVsZD4pIHtcclxuICAgICAgICBpZiAoZmllbGRzPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHR5cGVNYXBwZXIgPSBuZXcgUGVwUXVlcnlCdWlsZGVyVHlwZU1hcCgpO1xyXG4gICAgICAgICAgICByZXR1cm4gZmllbGRzLm1hcCgoZmllbGQpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVTbWFydEZpbHRlckZpZWxkKFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGZpZWxkLkZpZWxkSUQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGZpZWxkLlRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBmaWVsZC5PcHRpb25hbFZhbHVlcz8ubWFwKG9wdGlvbiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogb3B0aW9uLktleSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogb3B0aW9uLlZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgfSBhcyBJUGVwU21hcnRGaWx0ZXJGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICwgdHlwZU1hcHBlci5nZXRTbWFydEJ1aWxkZXJUeXBlKGZpZWxkLkZpZWxkVHlwZSkgYXMgUGVwU21hcnRGaWx0ZXJUeXBlKVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBjcmVhdGVzIGEgbGVnYWN5IG91dHB1dCBxdWVyeSBcclxuICAgICAqL1xyXG4gICAgY3JlYXRlT3V0cHV0UXVlcnkoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2Zvcm0udmFsaWQpIHtcclxuICAgICAgICAgICAgY29uc3QgcXVlcnkgPSB0aGlzLl9vdXRwdXRRdWVyeVNlcnZpY2UuZ2VuZXJhdGVRdWVyeSh0aGlzLl9mb3JtLnZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy5fb3V0cHV0UXVlcnkkLm5leHQocXVlcnkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn0iXX0=
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { Validators } from '@angular/forms';
|
|
3
|
-
import { distinctUntilChanged } from 'rxjs/operators';
|
|
4
|
-
import { BaseFilterComponent } from '../common/model/base-filter-component';
|
|
5
|
-
import { PepSmartFilterOperators, } from '../common/model/operator';
|
|
6
|
-
export class PepTextFilterComponent extends BaseFilterComponent {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(...arguments);
|
|
9
|
-
this.chooseTypeOptions = [];
|
|
10
|
-
this.operatorWidth = '38%';
|
|
11
|
-
this.firstControlWidth = '62%';
|
|
12
|
-
}
|
|
13
|
-
ngOnInit() {
|
|
14
|
-
this.firstControl.valueChanges
|
|
15
|
-
.pipe(this.getDestroyer(), distinctUntilChanged())
|
|
16
|
-
.subscribe(() => {
|
|
17
|
-
this.setFieldsStateAndValidators();
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
// Override
|
|
21
|
-
getDefaultOperator() {
|
|
22
|
-
return PepSmartFilterOperators.Equals;
|
|
23
|
-
}
|
|
24
|
-
// Override
|
|
25
|
-
getFilterValue() {
|
|
26
|
-
const filterValue = {
|
|
27
|
-
first: this.firstControl.value,
|
|
28
|
-
};
|
|
29
|
-
if (this.operator === PepSmartFilterOperators.NumberRange) {
|
|
30
|
-
filterValue['second'] = this.secondControl.value;
|
|
31
|
-
}
|
|
32
|
-
return filterValue;
|
|
33
|
-
}
|
|
34
|
-
// Override
|
|
35
|
-
loadOperatorsOptions() {
|
|
36
|
-
this.chooseTypeOptions = this.operators.map((operator) => {
|
|
37
|
-
return {
|
|
38
|
-
key: operator.id,
|
|
39
|
-
value: this.translate.instant(`${this.OPERATORS_TRANSLATION_PREFIX}.${operator.name}`),
|
|
40
|
-
};
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
// Override
|
|
44
|
-
setFieldsStateAndValidators() {
|
|
45
|
-
if (this.operator === PepSmartFilterOperators.NumberRange) {
|
|
46
|
-
const firstValidators = [Validators.required];
|
|
47
|
-
if (this.secondControl.value) {
|
|
48
|
-
firstValidators.push(this.validator.isLessThan(this.secondControl));
|
|
49
|
-
}
|
|
50
|
-
this.firstControl.setValidators(firstValidators);
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
super.setFieldsStateAndValidators();
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
onOperatorChanged(value) {
|
|
57
|
-
const operator = Object.values(PepSmartFilterOperators).find((operator) => operator.id === value);
|
|
58
|
-
this.operator = operator;
|
|
59
|
-
if (this._parentForm) {
|
|
60
|
-
this.updateParentForm();
|
|
61
|
-
}
|
|
62
|
-
if (this.emitOnChange) {
|
|
63
|
-
this.applyFilter();
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
onValueChanged() {
|
|
67
|
-
if (this.emitOnChange) {
|
|
68
|
-
this.applyFilter();
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
PepTextFilterComponent.decorators = [
|
|
73
|
-
{ type: Component, args: [{
|
|
74
|
-
selector: 'pep-text-filter',
|
|
75
|
-
template: "<div [formGroup]=\"form\" [fxLayout]=\"inline ? 'row' : 'column'\" [fxLayoutGap]=\"inline ? '.5rem' : '0rem'\">\r\n <pep-select [fxFlex]=\"inline ? operatorWidth : null\" [key]=\"'typeOperator'\" [value]=\"operator.id\"\r\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\r\n [options]=\"chooseTypeOptions\" (valueChange)=\"onOperatorChanged($event)\">\r\n </pep-select>\r\n <pep-textbox [fxFlex]=\"inline ? firstControlWidth : null\" [form]=\"form\" [key]=\"firstControlKey\"\r\n [label]=\"'SMART_FILTERS.AMOUNT' | translate\" [renderError]=\"false\" [renderTitle]=\"renderTitle\"\r\n [type]=\"field.type\" [formattedValue]=\"firstControl?.value || ''\" [value]=\"firstControl?.value || ''\"\r\n (valueChange)=\"onValueChanged()\">\r\n </pep-textbox>\r\n</div>",
|
|
76
|
-
styles: [""]
|
|
77
|
-
},] }
|
|
78
|
-
];
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zbWFydC1maWx0ZXJzL3RleHQtZmlsdGVyL3RleHQtZmlsdGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUVILHVCQUF1QixHQUMxQixNQUFNLDBCQUEwQixDQUFDO0FBU2xDLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxtQkFBbUI7SUFML0Q7O1FBTUksc0JBQWlCLEdBQXNCLEVBQUUsQ0FBQztRQUMxQyxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixzQkFBaUIsR0FBRyxLQUFLLENBQUM7SUF3RTlCLENBQUM7SUF0RUcsUUFBUTtRQUNKLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWTthQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLG9CQUFvQixFQUFFLENBQUM7YUFDakQsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFdBQVc7SUFDWCxrQkFBa0I7UUFDZCxPQUFPLHVCQUF1QixDQUFDLE1BQU0sQ0FBQztJQUMxQyxDQUFDO0lBRUQsV0FBVztJQUNYLGNBQWM7UUFDVixNQUFNLFdBQVcsR0FBRztZQUNoQixLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLO1NBQ2pDLENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssdUJBQXVCLENBQUMsV0FBVyxFQUFFO1lBQ3ZELFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztTQUNwRDtRQUVELE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxXQUFXO0lBQ1gsb0JBQW9CO1FBQ2hCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3JELE9BQU87Z0JBQ0gsR0FBRyxFQUFFLFFBQVEsQ0FBQyxFQUFFO2dCQUNoQixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQ3pCLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FDMUQ7YUFDSixDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztJQUNYLDJCQUEyQjtRQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssdUJBQXVCLENBQUMsV0FBVyxFQUFFO1lBQ3ZELE1BQU0sZUFBZSxHQUFHLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUU7Z0JBQzFCLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7YUFDdkU7WUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUNwRDthQUFNO1lBQ0gsS0FBSyxDQUFDLDJCQUEyQixFQUFFLENBQUM7U0FDdkM7SUFDTCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBYTtRQUMzQixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUMsSUFBSSxDQUN4RCxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQ3RDLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7U0FDM0I7UUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3RCO0lBQ0wsQ0FBQztJQUVELGNBQWM7UUFDVixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3RCO0lBQ0wsQ0FBQzs7O1lBOUVKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQix1MkJBQTJDOzthQUU5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25DaGFuZ2VzLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEJhc2VGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21tb24vbW9kZWwvYmFzZS1maWx0ZXItY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICAgIElQZXBTbWFydEZpbHRlck9wZXJhdG9yLFxyXG4gICAgUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMsXHJcbn0gZnJvbSAnLi4vY29tbW9uL21vZGVsL29wZXJhdG9yJztcclxuaW1wb3J0IHsgSVBlcE9wdGlvbiB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcclxuaW1wb3J0IHsgSVBlcFNtYXJ0RmlsdGVyRGF0YVZhbHVlIH0gZnJvbSAnLi4vY29tbW9uL21vZGVsL2ZpbHRlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAncGVwLXRleHQtZmlsdGVyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi90ZXh0LWZpbHRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi90ZXh0LWZpbHRlci5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGVwVGV4dEZpbHRlckNvbXBvbmVudCBleHRlbmRzIEJhc2VGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgY2hvb3NlVHlwZU9wdGlvbnM6IEFycmF5PElQZXBPcHRpb24+ID0gW107XHJcbiAgICBvcGVyYXRvcldpZHRoID0gJzM4JSc7XHJcbiAgICBmaXJzdENvbnRyb2xXaWR0aCA9ICc2MiUnO1xyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuZmlyc3RDb250cm9sLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAgICAgICAucGlwZSh0aGlzLmdldERlc3Ryb3llcigpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RmllbGRzU3RhdGVBbmRWYWxpZGF0b3JzKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIE92ZXJyaWRlXHJcbiAgICBnZXREZWZhdWx0T3BlcmF0b3IoKTogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3Ige1xyXG4gICAgICAgIHJldHVybiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5FcXVhbHM7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gT3ZlcnJpZGVcclxuICAgIGdldEZpbHRlclZhbHVlKCk6IElQZXBTbWFydEZpbHRlckRhdGFWYWx1ZSB7XHJcbiAgICAgICAgY29uc3QgZmlsdGVyVmFsdWUgPSB7XHJcbiAgICAgICAgICAgIGZpcnN0OiB0aGlzLmZpcnN0Q29udHJvbC52YWx1ZSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBpZiAodGhpcy5vcGVyYXRvciA9PT0gUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuTnVtYmVyUmFuZ2UpIHtcclxuICAgICAgICAgICAgZmlsdGVyVmFsdWVbJ3NlY29uZCddID0gdGhpcy5zZWNvbmRDb250cm9sLnZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZpbHRlclZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIE92ZXJyaWRlXHJcbiAgICBsb2FkT3BlcmF0b3JzT3B0aW9ucygpIHtcclxuICAgICAgICB0aGlzLmNob29zZVR5cGVPcHRpb25zID0gdGhpcy5vcGVyYXRvcnMubWFwKChvcGVyYXRvcikgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAga2V5OiBvcGVyYXRvci5pZCxcclxuICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAgICAgICAgIGAke3RoaXMuT1BFUkFUT1JTX1RSQU5TTEFUSU9OX1BSRUZJWH0uJHtvcGVyYXRvci5uYW1lfWBcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gT3ZlcnJpZGVcclxuICAgIHNldEZpZWxkc1N0YXRlQW5kVmFsaWRhdG9ycygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5vcGVyYXRvciA9PT0gUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuTnVtYmVyUmFuZ2UpIHtcclxuICAgICAgICAgICAgY29uc3QgZmlyc3RWYWxpZGF0b3JzID0gW1ZhbGlkYXRvcnMucmVxdWlyZWRdO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zZWNvbmRDb250cm9sLnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICBmaXJzdFZhbGlkYXRvcnMucHVzaCh0aGlzLnZhbGlkYXRvci5pc0xlc3NUaGFuKHRoaXMuc2Vjb25kQ29udHJvbCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZmlyc3RDb250cm9sLnNldFZhbGlkYXRvcnMoZmlyc3RWYWxpZGF0b3JzKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBzdXBlci5zZXRGaWVsZHNTdGF0ZUFuZFZhbGlkYXRvcnMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25PcGVyYXRvckNoYW5nZWQodmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IG9wZXJhdG9yID0gT2JqZWN0LnZhbHVlcyhQZXBTbWFydEZpbHRlck9wZXJhdG9ycykuZmluZChcclxuICAgICAgICAgICAgKG9wZXJhdG9yKSA9PiBvcGVyYXRvci5pZCA9PT0gdmFsdWVcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMub3BlcmF0b3IgPSBvcGVyYXRvcjtcclxuICAgICAgICBpZiAodGhpcy5fcGFyZW50Rm9ybSkge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVBhcmVudEZvcm0oKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuZW1pdE9uQ2hhbmdlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwbHlGaWx0ZXIoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25WYWx1ZUNoYW5nZWQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZW1pdE9uQ2hhbmdlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwbHlGaWx0ZXIoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG59Il19
|