nuxeo-development-framework 1.9.1 → 1.9.3
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/bundles/nuxeo-development-framework.umd.js +823 -707
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/Core/adapters/adapter.service.js +4 -4
- package/esm2015/lib/Core/core.module.js +5 -5
- package/esm2015/lib/Core/services/callApi/call-api.service.js +4 -4
- package/esm2015/lib/Core/services/extension/component-register.service.js +4 -4
- package/esm2015/lib/Core/services/extension/extension-loader.service.js +4 -4
- package/esm2015/lib/Core/services/extension/extension.service.js +4 -4
- package/esm2015/lib/Core/services/initialization/initialization.service.js +4 -4
- package/esm2015/lib/Core/services/localStorag/local-storag.service.js +4 -4
- package/esm2015/lib/Core/services/nuxeo/nuxeo.service.js +4 -4
- package/esm2015/lib/Core/services/roles/roles.service.js +4 -4
- package/esm2015/lib/Core/services/translation/translate-loader.service.js +4 -4
- package/esm2015/lib/Core/services/translation/translation.service.js +4 -4
- package/esm2015/lib/Core/services/user/user-preferences.service.js +4 -4
- package/esm2015/lib/Core/utilities/moment-date-adapter.js +4 -4
- package/esm2015/lib/Core/utilities/utility.service.js +4 -4
- package/esm2015/lib/components/activity/activity/activity.component.js +4 -4
- package/esm2015/lib/components/activity/activity.module.js +5 -5
- package/esm2015/lib/components/avatar/avatar/avatar.component.js +4 -4
- package/esm2015/lib/components/avatar/avatar.module.js +5 -5
- package/esm2015/lib/components/card/card.component.js +4 -4
- package/esm2015/lib/components/card/card.module.js +5 -5
- package/esm2015/lib/components/comments/comments.module.js +5 -5
- package/esm2015/lib/components/comments/components/comment-item/comment-item.component.js +4 -4
- package/esm2015/lib/components/comments/components/comments-dashlet/comments-dashlet.component.js +4 -4
- package/esm2015/lib/components/comments/components/comments-list/comments-list.component.js +4 -4
- package/esm2015/lib/components/comments/components/edit-delete-modal/edit-delete-modal.component.js +4 -4
- package/esm2015/lib/components/comments/services/comment-api.service.js +4 -4
- package/esm2015/lib/components/confirm-caller/confirm-caller.dialog.js +4 -4
- package/esm2015/lib/components/confirm-caller/confirm-caller.module.js +5 -5
- package/esm2015/lib/components/confirm-caller/confirm-dialog/confirm-dialog.component.js +4 -4
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.js +4 -4
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-create-form/correspondence-relation-create-form.component.js +4 -4
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-list/correspondence-relation-list.component.js +4 -4
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-reply/correspondence-relation-reply.component.js +4 -4
- package/esm2015/lib/components/correspondence-relation/components/versions/versions.component.js +4 -4
- package/esm2015/lib/components/correspondence-relation/correspondence-relation.module.js +5 -5
- package/esm2015/lib/components/correspondence-relation/services/correspondence-realation.service.js +4 -4
- package/esm2015/lib/components/correspondence-relation/services/viewer-files.service.js +4 -4
- package/esm2015/lib/components/create-entity/create-entity/create-entity.component.js +4 -4
- package/esm2015/lib/components/create-entity/create-entity.module.js +5 -5
- package/esm2015/lib/components/cts-tags/components/correspondence-tags/correspondence-tags.component.js +4 -4
- package/esm2015/lib/components/cts-tags/cts-tags.module.js +5 -5
- package/esm2015/lib/components/cts-tags/services/tags-api.service.js +4 -4
- package/esm2015/lib/components/custom-toastr/components/custom-toastr/custom-toastr.component.js +4 -4
- package/esm2015/lib/components/custom-toastr/custom-toastr.module.js +5 -5
- package/esm2015/lib/components/custom-toastr/services/custom-toastr.service.js +4 -4
- package/esm2015/lib/components/documents/components/attachments-list/attachments-list.component.js +4 -4
- package/esm2015/lib/components/documents/components/attachments-page-provider/attachments-page-provider.component.js +4 -4
- package/esm2015/lib/components/documents/components/document-list/documents-list.component.js +4 -4
- package/esm2015/lib/components/documents/components/document-scan/document-scan.component.js +4 -4
- package/esm2015/lib/components/documents/components/document-scan/document-scan.service.js +4 -4
- package/esm2015/lib/components/documents/components/document-upload/document-upload.component.js +4 -4
- package/esm2015/lib/components/documents/components/documents/documents.component.js +4 -4
- package/esm2015/lib/components/documents/documents.module.js +5 -5
- package/esm2015/lib/components/documents/services/document-templates.service.js +4 -4
- package/esm2015/lib/components/documents/services/documents.service.js +4 -4
- package/esm2015/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.js +4 -4
- package/esm2015/lib/components/dynamic-chart/dynamic-chart.module.js +5 -5
- package/esm2015/lib/components/dynamic-chart/dynamic-single-chart/dynamic-single-chart.component.js +4 -4
- package/esm2015/lib/components/dynamic-chart/services/chart-data.service.js +4 -4
- package/esm2015/lib/components/dynamic-filter/dynamic-filter/dynamic-filter.component.js +4 -4
- package/esm2015/lib/components/dynamic-filter/dynamic-filter.module.js +5 -5
- package/esm2015/lib/components/dynamic-form/components/department-form/department-form.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form/dynamic-form.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form/fields.adapter.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form/form-builder.service.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-boolitem/dynamic-form-boolitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-builder/dynamic-form-builder.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-checkbox-item/dynamic-form-checkbox-item.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/dynamic-form-dateitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/owlDateTimeIntl.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-api.service.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-management.service.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-field/dynamic-form-field.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-item-dispatcher/dynamic-form-item-dispatcher.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-mapitem/dynamic-form-mapitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-options/dynamic-form-options.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-tag/dynamic-form-select-tag.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-user-filter/dynamic-form-select-user-filter.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/dynamic-form-select-users.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/services/user-api.service.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-selectitem/dynamic-form-selectitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-slide-toggleitem/dynamic-form-slide-toggleitem.component.js +10 -5
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-textarea/dynamic-form-textarea.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-textitem/dynamic-form-textitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select-i18n.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-viewer/dynamic-form-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/toggle-wrapper/toggle-wrapper.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/user-selector-wrapper/user-selector-wrapper.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/directives/dynamic-form-content-proxy.directive.js +4 -4
- package/esm2015/lib/components/dynamic-form/dynamic-form.module.js +5 -5
- package/esm2015/lib/components/dynamic-form/services/card-item-types.service.js +4 -4
- package/esm2015/lib/components/dynamic-form/services/dynamic-form-update.service.js +4 -4
- package/esm2015/lib/components/dynamic-search/dynamic-search/dynamic-search.component.js +118 -27
- package/esm2015/lib/components/dynamic-search/dynamic-search.module.js +9 -5
- package/esm2015/lib/components/dynamic-table/dynamic-table/dynamic-table.component.js +15 -4
- package/esm2015/lib/components/dynamic-table/dynamic-table.module.js +5 -5
- package/esm2015/lib/components/dynamic-table/services/dynamic-table.service.js +4 -4
- package/esm2015/lib/components/dynamic-view/boolean-viewer/boolean-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/custom-document-viewer/custom-document-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/custom-pp-viewer/custom-pp-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/cutome-voc-viewer/cutome-voc-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/data-viewer/data-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/date-viewer/date-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/department-viewer/department-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/dropdown-viewer/dropdown-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/dynamic-view.module.js +5 -5
- package/esm2015/lib/components/dynamic-view/dynamic-viewe.service.js +4 -4
- package/esm2015/lib/components/dynamic-view/list-viewer/list-viewer.component.js +4 -4
- package/esm2015/lib/components/filter/filter/filter.component.js +4 -4
- package/esm2015/lib/components/filter/filter.module.js +5 -5
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/gregorian-datepicker/gregorian-datepicker.component.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-gregorian-datepicker.component.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/provide-parent-form.directive.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/ngx-hijri-gregorian-datepicker.module.js +5 -5
- package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-formatter.service.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-helper.service.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/utils/CustomNgbDateParserFormatter.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/utils/IslamicI18n.js +4 -4
- package/esm2015/lib/components/latest-activity/components/activity-line/activity-line.component.js +4 -4
- package/esm2015/lib/components/latest-activity/components/latest-activity/latest-activity.component.js +4 -4
- package/esm2015/lib/components/latest-activity/components/single-activity/single-activity.component.js +4 -4
- package/esm2015/lib/components/latest-activity/latest-activity.module.js +5 -5
- package/esm2015/lib/components/latest-activity/services/activity-log.service.js +4 -4
- package/esm2015/lib/components/notifications/components/notification-item/notification-item.component.js +4 -4
- package/esm2015/lib/components/notifications/components/notification-options/notification-options.component.js +4 -4
- package/esm2015/lib/components/notifications/components/notification-toast/notification-toast.component.js +4 -4
- package/esm2015/lib/components/notifications/components/notifications-button/notifications-button.component.js +4 -4
- package/esm2015/lib/components/notifications/components/notifications-list/notifications-list.component.js +4 -4
- package/esm2015/lib/components/notifications/notifications.module.js +5 -5
- package/esm2015/lib/components/notifications/notifications.service.js +4 -4
- package/esm2015/lib/components/pagination/pagination/pagination.component.js +4 -4
- package/esm2015/lib/components/pagination/pagination.module.js +5 -5
- package/esm2015/lib/components/pdf-tron/pdf-tron.module.js +5 -5
- package/esm2015/lib/components/pdf-tron/pdftron/pdftron.component.js +4 -4
- package/esm2015/lib/components/pdf-tron/pdftron/pdftron.service.js +4 -4
- package/esm2015/lib/components/select/select/select.component.js +4 -4
- package/esm2015/lib/components/select/select.module.js +5 -5
- package/esm2015/lib/components/table/dynamic-column/dynamic-column.component.js +4 -4
- package/esm2015/lib/components/table/table/table.component.js +26 -8
- package/esm2015/lib/components/table/table.module.js +5 -5
- package/esm2015/lib/components/users-card/users-card.component.js +4 -4
- package/esm2015/lib/components/users-card/users-card.module.js +5 -5
- package/esm2015/lib/components/viewer-log/components/viewer-log/viewer-log.component.js +4 -4
- package/esm2015/lib/components/viewer-log/viewer-log.module.js +5 -5
- package/esm2015/lib/components/vocabulary/services/vocabulary-api.service.js +4 -4
- package/esm2015/lib/components/vocabulary/vocabulary/vocabulary.component.js +4 -4
- package/esm2015/lib/components/vocabulary/vocabulary.module.js +5 -5
- package/esm2015/lib/configuration/app-config.service.js +4 -4
- package/esm2015/lib/directive/app-has-role/app-has-role.directive.js +4 -4
- package/esm2015/lib/directive/clickOutSide/click-outside.directive.js +4 -4
- package/esm2015/lib/directive/directive.module.js +5 -5
- package/esm2015/lib/directive/permissions/evaluators.service.js +4 -4
- package/esm2015/lib/directive/permissions/permissions.directive.js +4 -4
- package/esm2015/lib/directive/rtl/set-dir-rtl.directive.js +4 -4
- package/esm2015/lib/directive/rtl/set-rtl.directive.js +4 -4
- package/esm2015/lib/nuxeo-development-framework.component.js +4 -4
- package/esm2015/lib/nuxeo-development-framework.module.js +5 -5
- package/esm2015/lib/nuxeo-development-framework.service.js +4 -4
- package/esm2015/lib/pipes/file-size.pipe.js +4 -4
- package/esm2015/lib/pipes/hijri-date.pipe.js +4 -4
- package/esm2015/lib/pipes/localized-date.pipe.js +4 -4
- package/esm2015/lib/pipes/multi-value.pipe.js +4 -4
- package/esm2015/lib/pipes/pipes.module.js +5 -5
- package/esm2015/lib/pipes/secure-html.pipe.js +4 -4
- package/esm2015/lib/pipes/secure.pipe.js +4 -4
- package/esm2015/lib/pipes/time-ago.pipe.js +4 -4
- package/esm2015/lib/shared/components/button/button.component.js +4 -4
- package/esm2015/lib/shared/components/item-list/item-list.component.js +4 -4
- package/esm2015/lib/shared/components/no-data/no-data.component.js +4 -4
- package/esm2015/lib/shared/components/read-more/read-more.component.js +4 -4
- package/esm2015/lib/shared/components/search-autocomplete/search-autocomplete.component.js +4 -4
- package/esm2015/lib/shared/components/spinner/spinner.component.js +4 -4
- package/esm2015/lib/shared/components/user-card/user-card.component.js +4 -4
- package/esm2015/lib/shared/libraryShared.module.js +5 -5
- package/fesm2015/nuxeo-development-framework.js +737 -614
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/components/dynamic-form/components/dynamic-form-slide-toggleitem/dynamic-form-slide-toggleitem.component.d.ts +4 -1
- package/lib/components/dynamic-search/dynamic-search/dynamic-search.component.d.ts +16 -1
- package/lib/components/dynamic-search/dynamic-search.module.d.ts +4 -3
- package/lib/components/dynamic-table/dynamic-table/dynamic-table.component.d.ts +6 -1
- package/lib/components/table/table/table.component.d.ts +7 -1
- package/package.json +1 -1
|
@@ -1,17 +1,24 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewEncapsulation, Inject } from '@angular/core';
|
|
2
2
|
import { FormGroup, FormControl } from '@angular/forms';
|
|
3
3
|
import * as _ from 'lodash';
|
|
4
4
|
import { animate, AUTO_STYLE, state, style, transition, trigger } from '@angular/animations';
|
|
5
|
+
import { debounceTime } from 'rxjs/operators';
|
|
6
|
+
import { from } from 'rxjs';
|
|
5
7
|
import * as i0 from "@angular/core";
|
|
6
8
|
import * as i1 from "@angular/router";
|
|
7
|
-
import * as i2 from "
|
|
8
|
-
import * as i3 from "
|
|
9
|
-
import * as i4 from "
|
|
10
|
-
import * as i5 from "../../dynamic-
|
|
11
|
-
import * as i6 from "@angular/material/
|
|
12
|
-
import * as i7 from "@angular/
|
|
13
|
-
import * as i8 from "
|
|
14
|
-
import * as i9 from "
|
|
9
|
+
import * as i2 from "../../../directive/permissions/evaluators.service";
|
|
10
|
+
import * as i3 from "../../../Core/services/nuxeo/nuxeo.service";
|
|
11
|
+
import * as i4 from "@angular/cdk/layout";
|
|
12
|
+
import * as i5 from "../../dynamic-filter/dynamic-filter/dynamic-filter.component";
|
|
13
|
+
import * as i6 from "@angular/material/autocomplete";
|
|
14
|
+
import * as i7 from "@angular/material/core";
|
|
15
|
+
import * as i8 from "../../card/card.component";
|
|
16
|
+
import * as i9 from "../../dynamic-form/components/dynamic-form-slide-toggleitem/dynamic-form-slide-toggleitem.component";
|
|
17
|
+
import * as i10 from "../../dynamic-table/dynamic-table/dynamic-table.component";
|
|
18
|
+
import * as i11 from "@angular/material/progress-spinner";
|
|
19
|
+
import * as i12 from "@angular/common";
|
|
20
|
+
import * as i13 from "@angular/forms";
|
|
21
|
+
import * as i14 from "@ngx-translate/core";
|
|
15
22
|
/**
|
|
16
23
|
* Dynamic search component uses [Dynamic Table]{@link DynamicTableComponent} & [Dynamic Filter]{@link DynamicFilterComponent} internally,
|
|
17
24
|
* and utilizes its inputs to perform advanced search and filtering on any nuxeo Provider
|
|
@@ -36,9 +43,12 @@ import * as i9 from "@ngx-translate/core";
|
|
|
36
43
|
* </cts-dynamic-search>
|
|
37
44
|
*/
|
|
38
45
|
export class DynamicSearchComponent {
|
|
39
|
-
constructor(route, router, breakpointObserver) {
|
|
46
|
+
constructor(route, router, evaluatorService, nuxeoService, environment, breakpointObserver) {
|
|
40
47
|
this.route = route;
|
|
41
48
|
this.router = router;
|
|
49
|
+
this.evaluatorService = evaluatorService;
|
|
50
|
+
this.nuxeoService = nuxeoService;
|
|
51
|
+
this.environment = environment;
|
|
42
52
|
this.breakpointObserver = breakpointObserver;
|
|
43
53
|
/** Translations prefix */
|
|
44
54
|
this.prefix = '';
|
|
@@ -55,10 +65,19 @@ export class DynamicSearchComponent {
|
|
|
55
65
|
this.queryParams = {};
|
|
56
66
|
this.searchForm = new FormGroup({
|
|
57
67
|
text: new FormControl(null),
|
|
68
|
+
personalFiles: new FormControl(false),
|
|
69
|
+
depFiles: new FormControl(false)
|
|
58
70
|
});
|
|
59
71
|
this.loading = false;
|
|
60
72
|
this.customResponsiveStyle = false;
|
|
61
73
|
this.openCloseFilterFromOutside = false;
|
|
74
|
+
this.quickFilters = '';
|
|
75
|
+
this.savedPersFilterValue = null;
|
|
76
|
+
this.savedDepFilterValue = null;
|
|
77
|
+
this.resultSets = [];
|
|
78
|
+
this.evaluatorService.evaluateRule('enableSearchToggles', {}).then(res => {
|
|
79
|
+
this.useToggleFilters = res;
|
|
80
|
+
});
|
|
62
81
|
}
|
|
63
82
|
ngOnChanges(changes) {
|
|
64
83
|
if (changes.openCloseFilterFromOutside) {
|
|
@@ -66,28 +85,58 @@ export class DynamicSearchComponent {
|
|
|
66
85
|
}
|
|
67
86
|
}
|
|
68
87
|
ngOnInit() {
|
|
69
|
-
this.
|
|
88
|
+
this.updateQueryParams(this.constructParamsFunction(this.route.snapshot.queryParams));
|
|
70
89
|
this.searchInputPopulate();
|
|
71
|
-
this.updateQueryParams({ [this.fullTextParamName]: this.text });
|
|
72
90
|
this.route.queryParams.subscribe((params) => {
|
|
73
91
|
var _a;
|
|
74
92
|
if ((this.text !== params['search_query'] && params['search_query']) ||
|
|
75
|
-
(((_a = params['search_query']) === null || _a === void 0 ? void 0 : _a.length) == 0 &&
|
|
76
|
-
this.
|
|
77
|
-
this.
|
|
93
|
+
(((_a = params['search_query']) === null || _a === void 0 ? void 0 : _a.length) == 0 && this.text !== params['search_query'] ||
|
|
94
|
+
(this.useToggleFilters && this.quickFilters !== params['quickFilters']))) {
|
|
95
|
+
this.updateQueryParams(this.constructParamsFunction(params));
|
|
78
96
|
this.searchInputPopulate();
|
|
79
|
-
this.updateQueryParams({ [this.fullTextParamName]: this.text });
|
|
80
97
|
}
|
|
81
98
|
});
|
|
82
99
|
this.breakpoint();
|
|
100
|
+
this.searchForm.get('text').valueChanges.pipe(debounceTime(500)).subscribe(res => {
|
|
101
|
+
this.search(res).subscribe(results => {
|
|
102
|
+
this.resultSets = results;
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
constructParamsFunction(params) {
|
|
107
|
+
let contructedParms = {};
|
|
108
|
+
this.text = params['search_query'];
|
|
109
|
+
if (this.useToggleFilters) {
|
|
110
|
+
if (params['quickFilters']) {
|
|
111
|
+
this.quickFilters = params['quickFilters'];
|
|
112
|
+
contructedParms = { [this.fullTextParamName]: this.text, quickFilters: this.quickFilters };
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
this.quickFilters = '';
|
|
116
|
+
contructedParms = { [this.fullTextParamName]: this.text, quickFilters: '' };
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
contructedParms = { [this.fullTextParamName]: this.text };
|
|
121
|
+
}
|
|
122
|
+
return contructedParms;
|
|
83
123
|
}
|
|
84
124
|
updateQueryParams(newQueryparams) {
|
|
85
125
|
this.queryParams = Object.assign(Object.assign({}, this.queryParams), newQueryparams);
|
|
86
126
|
}
|
|
87
127
|
searchInputPopulate() {
|
|
88
|
-
this.
|
|
89
|
-
|
|
90
|
-
|
|
128
|
+
if (this.useToggleFilters) {
|
|
129
|
+
this.searchForm.patchValue({
|
|
130
|
+
text: this.text,
|
|
131
|
+
personalFiles: (this.quickFilters === 'personalFilter') ? true : (this.savedPersFilterValue !== null) ? this.savedPersFilterValue : false,
|
|
132
|
+
depFiles: (this.quickFilters === 'departmentFilter') ? true : (this.savedDepFilterValue !== null) ? this.savedDepFilterValue : false
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
this.searchForm.patchValue({
|
|
137
|
+
text: this.text,
|
|
138
|
+
});
|
|
139
|
+
}
|
|
91
140
|
}
|
|
92
141
|
FilterSelected(val) {
|
|
93
142
|
this.loading = true;
|
|
@@ -130,13 +179,41 @@ export class DynamicSearchComponent {
|
|
|
130
179
|
this.totalRecords = data.totalSize;
|
|
131
180
|
}
|
|
132
181
|
submitForm() {
|
|
182
|
+
let params = {};
|
|
183
|
+
if (this.useToggleFilters) {
|
|
184
|
+
params = {
|
|
185
|
+
search_query: this.searchForm.controls.text.value,
|
|
186
|
+
quickFilters: this.getToggleFilters()
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
params = {
|
|
191
|
+
search_query: this.searchForm.controls.text.value,
|
|
192
|
+
};
|
|
193
|
+
}
|
|
133
194
|
this.router.navigate(['.'], {
|
|
134
195
|
relativeTo: this.route,
|
|
135
|
-
queryParams:
|
|
136
|
-
search_query: this.searchForm.controls.text.value,
|
|
137
|
-
},
|
|
196
|
+
queryParams: params,
|
|
138
197
|
});
|
|
139
198
|
}
|
|
199
|
+
getToggleFilters() {
|
|
200
|
+
this.savedDepFilterValue = this.searchForm.controls.depFiles.value;
|
|
201
|
+
this.savedPersFilterValue = this.searchForm.controls.personalFiles.value;
|
|
202
|
+
if ((this.searchForm.controls.personalFiles.value && this.searchForm.controls.depFiles.value)
|
|
203
|
+
|| (!this.searchForm.controls.personalFiles.value && !this.searchForm.controls.depFiles.value)) {
|
|
204
|
+
return '';
|
|
205
|
+
}
|
|
206
|
+
else if (this.searchForm.controls.personalFiles.value && !this.searchForm.controls.depFiles.value) {
|
|
207
|
+
return "personalFilter";
|
|
208
|
+
}
|
|
209
|
+
else if (!this.searchForm.controls.personalFiles.value && this.searchForm.controls.depFiles.value) {
|
|
210
|
+
return "departmentFilter";
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
setOptionValue(searchedText) {
|
|
214
|
+
this.searchForm.get('text').setValue(searchedText);
|
|
215
|
+
this.submitForm();
|
|
216
|
+
}
|
|
140
217
|
onOpenFilter() {
|
|
141
218
|
this.openFilter = !this.openFilter;
|
|
142
219
|
}
|
|
@@ -152,9 +229,20 @@ export class DynamicSearchComponent {
|
|
|
152
229
|
performAction(action) {
|
|
153
230
|
this.actionOnRow.emit(action);
|
|
154
231
|
}
|
|
232
|
+
search(term) {
|
|
233
|
+
return from(this.nuxeoService.nuxeoClient
|
|
234
|
+
.operation('Search.CustomSuggestersLauncher', {
|
|
235
|
+
url: `${this.environment.nuxeo}${this.environment.customAutomation}`,
|
|
236
|
+
})
|
|
237
|
+
.params({
|
|
238
|
+
searchTerm: term
|
|
239
|
+
})
|
|
240
|
+
.context({})
|
|
241
|
+
.execute());
|
|
242
|
+
}
|
|
155
243
|
}
|
|
156
|
-
DynamicSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
157
|
-
DynamicSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DynamicSearchComponent, selector: "cts-dynamic-search", inputs: { columns: "columns", responsiveColumns: "responsiveColumns", entityType: "entityType", prefix: "prefix", headers: "headers", fields: "fields", pageProvider: "pageProvider", pageSize: "pageSize", sortingBy: "sortingBy", fullTextParamName: "fullTextParamName", filter: "filter", onRowSelected: "onRowSelected", sortingArray: "sortingArray", customResponsiveStyle: "customResponsiveStyle", openCloseFilterFromOutside: "openCloseFilterFromOutside", theme: "theme" }, outputs: { actionOnRow: "actionOnRow" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!customResponsiveStyle\">\r\n <div class=\"search-toolbar d-md-flex d-xl-none mx-3\">\r\n <button (click)=\"onOpenFilter()\" class=\"my-button\">\r\n <span> {{ \"FILTER\" | translate }}</span>\r\n <i class=\"bi bi-filter\" *ngIf=\"!openFilter\"></i>\r\n <i class=\"bi bi-x\" *ngIf=\"openFilter\"></i>\r\n </button>\r\n <div *ngIf=\"openFilter\">\r\n <i class=\"bi bi-caret-up-fill arrow-up\"></i>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"customResponsiveStyle\">\r\n <div class=\"customStyle -mt-12 px-8 flex flex-col\"\r\n [ngClass]=\"{'bg-accent-200': theme === 'dgda','bg-accent-100': theme === 'ksreleif' || theme === 'comptechco'}\"\r\n [@collapse]=\"!openFilter\">\r\n <form\r\n [formGroup]=\"searchForm\"\r\n class=\"search-form\"\r\n (ngSubmit)=\"submitForm()\"\r\n >\r\n <input\r\n class=\"search-input\"\r\n type=\"text\"\r\n formControlName=\"text\"\r\n [placeholder]=\"'search.search' | translate\"\r\n />\r\n <div (click)=\"submitForm()\" class=\"search-icon bi bi-search\"></div>\r\n </form>\r\n <div class=\"flex gap-x-18 flex-row mt-5 pb-3 overflow-x-auto\">\r\n <ng-container *ngIf=\"aggregations; else progressSpinner\">\r\n <ng-container *ngIf=\"aggregations.length; else noAggregations\">\r\n <ng-container *ngFor=\"let aggregation of aggregations\">\r\n <ng-container *ngIf=\"aggregation.buckets.length > 0\">\r\n <cts-dynamic-filter\r\n [entityType]=\"entityType\"\r\n [filters]=\"aggregation.buckets\"\r\n [id]=\"aggregation.id\"\r\n [selections]=\"aggregation.selection\"\r\n [title]=\"aggregation.field\"\r\n [prefix]=\"'search'\"\r\n [department]=\"\r\n aggregation.field === 'corr:to' ||\r\n aggregation.field === 'corr:from'\r\n \"\r\n [componentType]=\"aggregation.componentType ? aggregation.componentType : 'defult'\"\r\n [customPageProvider]=\"aggregation.customPageProvider ? aggregation.customPageProvider : ''\"\r\n [config]=\"aggregation.config ? aggregation.config : {}\"\r\n (onFilterSelected)=\"FilterSelected($event)\"\r\n ></cts-dynamic-filter>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-container>\r\n<div class=\"row wrapper\">\r\n <ng-container *ngIf=\"!customResponsiveStyle\">\r\n <div class=\"popup-filter px-3 d-flex d-xl-none\" *ngIf=\"openFilter\">\r\n <form\r\n [formGroup]=\"searchForm\"\r\n class=\"search-form\"\r\n (ngSubmit)=\"submitForm()\"\r\n >\r\n <input\r\n class=\"search-input\"\r\n type=\"text\"\r\n formControlName=\"text\"\r\n [placeholder]=\"'search.search' | translate\"\r\n />\r\n <div (click)=\"submitForm()\" class=\"search-icon bi bi-search\"></div>\r\n </form>\r\n <ng-container *ngIf=\"aggregations; else progressSpinner\">\r\n <ng-container *ngIf=\"aggregations.length; else noAggregations\">\r\n <div *ngFor=\"let aggregation of aggregations\">\r\n <ng-container *ngIf=\"aggregation.buckets.length > 0\">\r\n <cts-dynamic-filter\r\n [entityType]=\"entityType\"\r\n [filters]=\"aggregation.buckets\"\r\n [id]=\"aggregation.id\"\r\n [selections]=\"aggregation.selection\"\r\n [title]=\"aggregation.field\"\r\n [prefix]=\"'search'\"\r\n [department]=\"\r\n aggregation.field === 'corr:to' ||\r\n aggregation.field === 'corr:from'\r\n \"\r\n [componentType]=\"aggregation.componentType ? aggregation.componentType : 'defult'\"\r\n [customPageProvider]=\"aggregation.customPageProvider ? aggregation.customPageProvider : ''\"\r\n [config]=\"aggregation.config ? aggregation.config : {}\"\r\n (onFilterSelected)=\"FilterSelected($event)\"\r\n ></cts-dynamic-filter>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <div class=\"col-xl-3 search-sideMenu d-none d-xl-block\">\r\n <form\r\n [formGroup]=\"searchForm\"\r\n class=\"search-form\"\r\n (ngSubmit)=\"submitForm()\"\r\n >\r\n <input\r\n class=\"search-input\"\r\n type=\"text\"\r\n formControlName=\"text\"\r\n [placeholder]=\"'search.search' | translate\"\r\n />\r\n <div (click)=\"submitForm()\" class=\"search-icon bi bi-search\"></div>\r\n </form>\r\n <ng-container *ngIf=\"aggregations; else progressSpinner\">\r\n <div *ngFor=\"let aggregation of aggregations\">\r\n <ng-container *ngIf=\"aggregation.buckets.length > 0\">\r\n <cts-dynamic-filter\r\n [entityType]=\"entityType\"\r\n [filters]=\"aggregation.buckets\"\r\n [id]=\"aggregation.id\"\r\n [selections]=\"aggregation.selection\"\r\n [title]=\"aggregation.field\"\r\n [prefix]=\"'search'\"\r\n [department]=\"\r\n aggregation.field === 'corr:to' ||\r\n aggregation.field === 'corr:from'\r\n \"\r\n [componentType]=\"aggregation.componentType ? aggregation.componentType : 'defult'\"\r\n [customPageProvider]=\"aggregation.customPageProvider ? aggregation.customPageProvider : ''\"\r\n [config]=\"aggregation.config ? aggregation.config : {}\"\r\n (onFilterSelected)=\"FilterSelected($event)\"\r\n ></cts-dynamic-filter>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"col-12 col-xl-9\">\r\n <app-card>\r\n <div class=\"title\">\r\n <h3>\r\n {{ \"search.header\" | translate }}\r\n </h3>\r\n </div>\r\n <div class=\"body\">\r\n <div *ngIf=\"aggregations\" class=\"table-toolbar\">\r\n <div class=\"result-count\">\r\n <span>\r\n {{\r\n \"search.\" + \"resultsNumber\"\r\n | translate: { value: totalRecords ? totalRecords : 0 }\r\n }}\r\n </span>\r\n </div>\r\n <!-- <form\r\n [formGroup]=\"searchForm\"\r\n class=\"search-form\"\r\n (ngSubmit)=\"submitForm()\"\r\n >\r\n <input\r\n class=\"search-input\"\r\n type=\"text\"\r\n formControlName=\"text\"\r\n [placeholder]=\"'search.search' | translate\"\r\n />\r\n <div (click)=\"submitForm()\" class=\"search-icon bi bi-search\"></div>\r\n </form> -->\r\n </div>\r\n <cts-dynamic-table\r\n [pageSize]=\"pageSize\"\r\n [columns]=\"columns\"\r\n [responsiveColumns]=\"responsiveColumns\"\r\n [pageProvider]=\"pageProvider\"\r\n [quickFilter]=\"filter\"\r\n [entityType]=\"entityType\"\r\n [fields]=\"fields\"\r\n [queryParam]=\"queryParams\"\r\n [headers]=\"headers\"\r\n [prefix]=\"prefix\"\r\n [sortingBy]=\"sortingBy\"\r\n [isSearchPage]=\"true\"\r\n (onRowSelected)=\"onRowSelected($event)\"\r\n (actionOnRow)=\"performAction($event)\"\r\n (onGettingData)=\"getTableData($event)\"\r\n ></cts-dynamic-table>\r\n </div>\r\n </app-card>\r\n </div>\r\n\r\n <ng-template #progressSpinner>\r\n <div class=\"progress-spinner\">\r\n <mat-spinner color=\"warn\" [diameter]=\"25\"></mat-spinner>\r\n </div>\r\n </ng-template>\r\n <ng-template #noAggregations>\r\n <div class=\"progress-spinner\">\r\n {{ \"search.noAggregations\" | translate }}\r\n </div>\r\n </ng-template>\r\n</div>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.result-count{color:#8f98aa;font-size:14px}.search-sideMenu{background-color:#fff;padding-top:22px;padding-bottom:22px;border-radius:5px}.search-sideMenu .search-form{display:flex;color:#6a768e;width:100%}.search-sideMenu .search-form .search-input{width:100%;border:1px solid #d9dce2;border-inline-end:0;border-start-start-radius:5px;border-end-start-radius:5px;border:1px solid #ccc;height:32px;font-size:16px;padding-inline-start:4px}.search-sideMenu .search-form .search-input::-webkit-input-placeholder{font-size:14px}.search-sideMenu .search-form .search-input:focus-visible{border:2px solid #465573;outline:transparent}.search-sideMenu .search-form .search-icon{background:#465573;color:#fff;width:12%;display:flex;align-items:center;justify-content:center;border-radius:0;cursor:pointer;border:1px solid #d9dce2;border-start-end-radius:6px;border-end-end-radius:6px;border-inline-start:0}.search-toolbar{position:relative;display:flex;justify-content:flex-end;margin-bottom:16px}.search-toolbar .my-button{width:90px}.search-toolbar .arrow-up{position:absolute;top:26px;right:28px;font-size:25px;color:#8f98aab3}.wrapper{position:relative}.wrapper .popup-filter{flex-direction:column;position:absolute;right:0;z-index:9999;max-height:70vh;max-width:400px;background-color:#fff;overflow:scroll;box-shadow:0 1px 10px 2px #00000054;top:-4px;border-radius:5px}.wrapper .popup-filter .search-form{margin-top:10px!important}.wrapper .popup-filter .search-input{width:100%!important}.wrapper .search-container{background-color:#fff;border-radius:5px;border:0px;padding:16px;height:max-content}.wrapper .search-container .table-toolbar{display:flex;align-items:center;margin-bottom:8px;justify-content:space-between}.progress-spinner{margin-top:10px;margin-block-end:0;display:grid;place-items:center;width:100%}.rtl .popup-filter{left:0px;right:unset!important}.rtl .arrow-up{position:absolute;top:33px;left:28px;right:unset!important}@media (width: 1180px),(width: 820px){.customStyle cts-dynamic-filter .aggregation-container{width:176px!important}}.customStyle .search-form{display:flex;color:#6a768e;width:100%}.customStyle .search-form .search-input{width:288px;border:1px solid #d9dce2;border-inline-end:0;border-start-start-radius:5px;border-end-start-radius:5px;border:1px solid #ccc;height:32px;font-size:16px;padding-inline-start:4px}.customStyle .search-form .search-input::-webkit-input-placeholder{font-size:14px}.customStyle .search-form .search-input:focus-visible{border:2px solid #465573;outline:transparent}.customStyle .search-form .search-icon{background:#465573;color:#fff;width:40px;display:flex;align-items:center;justify-content:center;border-radius:0;cursor:pointer;border:1px solid #d9dce2;border-start-end-radius:6px;border-end-end-radius:6px;border-inline-start:0}\n"], components: [{ type: i3.DynamicFilterComponent, selector: "cts-dynamic-filter", inputs: ["title", "filters", "selections", "id", "entityType", "prefix", "department", "componentType", "customPageProvider", "config"], outputs: ["onFilterSelected"] }, { type: i4.CardComponent, selector: "app-card", inputs: ["noBody", "dark"] }, { type: i5.DynamicTableComponent, selector: "cts-dynamic-table", inputs: ["columns", "responsiveColumns", "entityType", "prefix", "headers", "fields", "pageProvider", "pageSize", "sortingBy", "queryParam", "quickFilter", "report", "rowCursor", "fullWidth", "tableMode", "tableActions", "defultSort", "range", "isSearchPage", "highlightSelectedCard"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData"] }, { type: i6.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i9.TranslatePipe }, animations: [
|
|
244
|
+
DynamicSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DynamicSearchComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.EvaluatorsService }, { token: i3.NuxeoService }, { token: 'environment' }, { token: i4.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component });
|
|
245
|
+
DynamicSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: DynamicSearchComponent, selector: "cts-dynamic-search", inputs: { columns: "columns", responsiveColumns: "responsiveColumns", entityType: "entityType", prefix: "prefix", headers: "headers", fields: "fields", pageProvider: "pageProvider", pageSize: "pageSize", sortingBy: "sortingBy", fullTextParamName: "fullTextParamName", filter: "filter", onRowSelected: "onRowSelected", sortingArray: "sortingArray", customResponsiveStyle: "customResponsiveStyle", openCloseFilterFromOutside: "openCloseFilterFromOutside", theme: "theme" }, outputs: { actionOnRow: "actionOnRow" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!customResponsiveStyle\">\r\n <div class=\"search-toolbar d-md-flex d-xl-none mx-3\">\r\n <button (click)=\"onOpenFilter()\" class=\"my-button\">\r\n <span> {{ \"FILTER\" | translate }}</span>\r\n <i class=\"bi bi-filter\" *ngIf=\"!openFilter\"></i>\r\n <i class=\"bi bi-x\" *ngIf=\"openFilter\"></i>\r\n </button>\r\n <div *ngIf=\"openFilter\">\r\n <i class=\"bi bi-caret-up-fill arrow-up\"></i>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"customResponsiveStyle\">\r\n <div class=\"customStyle -mt-12 px-8 flex flex-col\"\r\n [ngClass]=\"{'bg-accent-200': theme === 'dgda','bg-accent-100': theme === 'ksreleif' || theme === 'comptechco'}\"\r\n [@collapse]=\"!openFilter\">\r\n <!-- <form\r\n [formGroup]=\"searchForm\"\r\n class=\"search-form\"\r\n (ngSubmit)=\"submitForm()\"\r\n >\r\n <input\r\n class=\"search-input\"\r\n type=\"text\"\r\n formControlName=\"text\"\r\n [placeholder]=\"'search.search' | translate\"\r\n />\r\n <div (click)=\"submitForm()\" class=\"search-icon bi bi-search\"></div>\r\n </form> -->\r\n <div class=\"flex gap-x-18 flex-row mt-5 pb-3 overflow-x-auto\">\r\n <ng-container *ngIf=\"aggregations; else progressSpinner\">\r\n <ng-container *ngIf=\"aggregations.length; else noAggregations\">\r\n <ng-container *ngFor=\"let aggregation of aggregations\">\r\n <ng-container *ngIf=\"aggregation.buckets.length > 0\">\r\n <cts-dynamic-filter [entityType]=\"entityType\" [filters]=\"aggregation.buckets\" [id]=\"aggregation.id\"\r\n [selections]=\"aggregation.selection\" [title]=\"aggregation.field\" [prefix]=\"'search'\" [department]=\"\r\n aggregation.field === 'corr:to' ||\r\n aggregation.field === 'corr:from'\r\n \" [componentType]=\"aggregation.componentType ? aggregation.componentType : 'defult'\"\r\n [customPageProvider]=\"aggregation.customPageProvider ? aggregation.customPageProvider : ''\"\r\n [config]=\"aggregation.config ? aggregation.config : {}\" (onFilterSelected)=\"FilterSelected($event)\">\r\n </cts-dynamic-filter>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<div class=\"row wrapper\">\r\n <ng-container *ngIf=\"!customResponsiveStyle\">\r\n <div class=\"popup-filter px-3 d-flex d-xl-none\" *ngIf=\"openFilter\">\r\n <form [formGroup]=\"searchForm\" class=\"search-form\" (ngSubmit)=\"submitForm()\">\r\n <input class=\"search-input\" type=\"text\" formControlName=\"text\" [matAutocomplete]=\"matAutocomplete1\" [placeholder]=\"'search.search' | translate\" />\r\n <div (click)=\"submitForm()\" class=\"search-icon bi bi-search\"></div>\r\n </form>\r\n <mat-autocomplete\r\n class=\"\r\n auto-complete-iner-wrapper\r\n auto-complete-wrapper\r\n \"\r\n [disableRipple]=\"true\"\r\n #matAutocomplete1=\"matAutocomplete\"\r\n >\r\n <mat-option\r\n class=\"no-text\"\r\n *ngIf=\"resultSets && !resultSets.length\"\r\n >\r\n No results found!\r\n </mat-option>\r\n <ng-container *ngFor=\"let resultSet of resultSets\">\r\n <mat-option (click)=\"setOptionValue(resultSet.label)\">\r\n <span\r\n class=\"option-iner-text\"\r\n >{{ resultSet.label }}</span\r\n >\r\n </mat-option >\r\n </ng-container>\r\n </mat-autocomplete>\r\n <ng-container *ngIf=\"aggregations; else progressSpinner\">\r\n <ng-container *ngIf=\"aggregations.length; else noAggregations\">\r\n <div *ngFor=\"let aggregation of aggregations\">\r\n <ng-container *ngIf=\"aggregation.buckets.length > 0\">\r\n <cts-dynamic-filter [entityType]=\"entityType\" [filters]=\"aggregation.buckets\" [id]=\"aggregation.id\"\r\n [selections]=\"aggregation.selection\" [title]=\"aggregation.field\" [prefix]=\"'search'\" [department]=\"\r\n aggregation.field === 'corr:to' ||\r\n aggregation.field === 'corr:from'\r\n \" [componentType]=\"aggregation.componentType ? aggregation.componentType : 'defult'\"\r\n [customPageProvider]=\"aggregation.customPageProvider ? aggregation.customPageProvider : ''\"\r\n [config]=\"aggregation.config ? aggregation.config : {}\" (onFilterSelected)=\"FilterSelected($event)\">\r\n </cts-dynamic-filter>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"col-xl-3 search-sideMenu d-none d-xl-block\">\r\n <form [formGroup]=\"searchForm\" class=\"search-form\" (ngSubmit)=\"submitForm()\">\r\n <input class=\"search-input\" type=\"text\" formControlName=\"text\" [matAutocomplete]=\"matAutocomplete2\"\r\n [placeholder]=\"'search.search' | translate\" />\r\n <div (click)=\"submitForm()\" class=\"search-icon bi bi-search\"></div>\r\n </form>\r\n <mat-autocomplete class=\"\r\n auto-complete-iner-wrapper\r\n auto-complete-wrapper\r\n \" [disableRipple]=\"true\" #matAutocomplete2=\"matAutocomplete\">\r\n <mat-option class=\"no-text\" *ngIf=\"resultSets && !resultSets.length\">\r\n No results found!\r\n </mat-option>\r\n <ng-container *ngFor=\"let resultSet of resultSets\">\r\n <mat-option (click)=\"setOptionValue(resultSet.label)\">\r\n <span class=\"option-iner-text\">{{ resultSet.label }}</span>\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n <ng-container *ngIf=\"aggregations; else progressSpinner\">\r\n <div *ngFor=\"let aggregation of aggregations\">\r\n <ng-container *ngIf=\"aggregation.buckets.length > 0\">\r\n <cts-dynamic-filter [entityType]=\"entityType\" [filters]=\"aggregation.buckets\" [id]=\"aggregation.id\"\r\n [selections]=\"aggregation.selection\" [title]=\"aggregation.field\" [prefix]=\"'search'\" [department]=\"\r\n aggregation.field === 'corr:to' ||\r\n aggregation.field === 'corr:from'\r\n \" [componentType]=\"aggregation.componentType ? aggregation.componentType : 'defult'\"\r\n [customPageProvider]=\"aggregation.customPageProvider ? aggregation.customPageProvider : ''\"\r\n [config]=\"aggregation.config ? aggregation.config : {}\" (onFilterSelected)=\"FilterSelected($event)\">\r\n </cts-dynamic-filter>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"col-12 col-xl-9\">\r\n <app-card>\r\n <div class=\"title\">\r\n <h3>\r\n {{ \"search.header\" | translate }}\r\n </h3>\r\n </div>\r\n <div class=\"body\">\r\n <div *ngIf=\"aggregations\" class=\"table-toolbar\">\r\n <div class=\"result-count\">\r\n <span>\r\n {{\r\n \"search.\" + \"resultsNumber\"\r\n | translate: { value: totalRecords ? totalRecords : 0 }\r\n }}\r\n </span>\r\n </div>\r\n <div>\r\n <form class=\"d-flex justify-between\" [formGroup]=\"searchForm\" (ngSubmit)=\"submitForm()\">\r\n <div *ngIf=\"useToggleFilters && !customResponsiveStyle\"></div>\r\n <div *ngIf=\"customResponsiveStyle\">\r\n <div class=\"search-form custom-responsive-search\">\r\n <input class=\"search-input\" type=\"text\" formControlName=\"text\" [matAutocomplete]=\"matAutocomplete\"\r\n [placeholder]=\"'search.search' | translate\" />\r\n <div (click)=\"submitForm()\" class=\"search-icon bi bi-search\"></div>\r\n </div>\r\n <mat-autocomplete\r\n class=\"\r\n auto-complete-iner-wrapper\r\n auto-complete-wrapper\r\n \"\r\n [disableRipple]=\"true\"\r\n #matAutocomplete=\"matAutocomplete\"\r\n >\r\n <mat-option\r\n class=\"no-text\"\r\n *ngIf=\"resultSets && !resultSets.length\"\r\n >\r\n No results found!\r\n </mat-option>\r\n <ng-container *ngFor=\"let resultSet of resultSets\">\r\n <mat-option (click)=\"setOptionValue(resultSet.label)\">\r\n <span\r\n class=\"option-iner-text\"\r\n >{{ resultSet.label }}</span\r\n >\r\n </mat-option >\r\n </ng-container>\r\n </mat-autocomplete>\r\n </div>\r\n <div class=\"d-flex\" *ngIf=\"useToggleFilters\">\r\n <cts-dynamic-form-slide-toggleitem class=\"mx-2 small-font\" [label]=\"'search.PERSONAL_FILES'\"\r\n (onToggle)=\"submitForm()\" formControlName=\"personalFiles\">\r\n </cts-dynamic-form-slide-toggleitem>\r\n <cts-dynamic-form-slide-toggleitem class=\"mx-2 small-font\" [label]=\"'search.DEP_FILES'\"\r\n formControlName=\"depFiles\" (onToggle)=\"submitForm()\">\r\n </cts-dynamic-form-slide-toggleitem>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n <cts-dynamic-table [pageSize]=\"pageSize\" [columns]=\"columns\" [responsiveColumns]=\"responsiveColumns\"\r\n [pageProvider]=\"pageProvider\" [quickFilter]=\"filter\" [entityType]=\"entityType\" [fields]=\"fields\"\r\n [queryParam]=\"queryParams\" [headers]=\"headers\" [prefix]=\"prefix\" [sortingBy]=\"sortingBy\" [isSearchPage]=\"true\"\r\n (onRowSelected)=\"onRowSelected($event)\" (actionOnRow)=\"performAction($event)\"\r\n (onGettingData)=\"getTableData($event)\"></cts-dynamic-table>\r\n </div>\r\n </app-card>\r\n </div>\r\n\r\n <ng-template #progressSpinner>\r\n <div class=\"progress-spinner\">\r\n <mat-spinner color=\"warn\" [diameter]=\"25\"></mat-spinner>\r\n </div>\r\n </ng-template>\r\n <ng-template #noAggregations>\r\n <div class=\"progress-spinner\">\r\n {{ \"search.noAggregations\" | translate }}\r\n </div>\r\n </ng-template>\r\n</div>", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.result-count{color:#8f98aa;font-size:14px}.search-sideMenu{background-color:#fff;padding-top:22px;padding-bottom:22px;border-radius:5px}.auto-complete-iner-wrapper{max-height:350px;border-radius:4px}.auto-complete-iner-wrapper .no-text{font-size:14px;color:#465573}.auto-complete-iner-wrapper .mat-option{text-align:start;color:#465573;font-weight:bold;font-size:14px}.auto-complete-iner-wrapper .mat-option .mat-option-text{text-align:flex-start}.search-form{display:flex;color:#6a768e;width:100%}.search-form .search-input{width:100%;border:1px solid #d9dce2;border-inline-end:0;border-start-start-radius:5px;border-end-start-radius:5px;border:1px solid #ccc;height:32px;font-size:16px;padding-inline-start:4px}.search-form .search-input::-webkit-input-placeholder{font-size:14px}.search-form .search-input:focus-visible{border:2px solid #465573;outline:transparent}.search-form .search-icon{background:#465573;color:#fff;width:12%;display:flex;align-items:center;justify-content:center;border-radius:0;cursor:pointer;border:1px solid #d9dce2;border-start-end-radius:6px;border-end-end-radius:6px;border-inline-start:0}.small-font{font-size:14px}.custom-responsive-search{width:300px!important;margin:0 35px}.search-toolbar{position:relative;display:flex;justify-content:flex-end;margin-bottom:16px}.search-toolbar .my-button{width:90px}.search-toolbar .arrow-up{position:absolute;top:26px;right:28px;font-size:25px;color:#8f98aab3}.wrapper{position:relative}.wrapper .popup-filter{flex-direction:column;position:absolute;right:0;z-index:9999;max-height:70vh;max-width:400px;background-color:#fff;overflow:scroll;box-shadow:0 1px 10px 2px #00000054;top:-4px;border-radius:5px}.wrapper .popup-filter .search-form{margin-top:10px!important}.wrapper .popup-filter .search-input{width:100%!important}.wrapper .search-container{background-color:#fff;border-radius:5px;border:0px;padding:16px;height:-webkit-max-content;height:max-content}.wrapper .search-container .table-toolbar{display:flex;align-items:center;margin-bottom:8px;justify-content:space-between}.progress-spinner{margin-top:10px;margin-block-end:0;display:grid;place-items:center;width:100%}.rtl .popup-filter{left:0px;right:unset!important}.rtl .arrow-up{position:absolute;top:33px;left:28px;right:unset!important}@media (width: 1180px),(width: 820px){.customStyle cts-dynamic-filter .aggregation-container{width:176px!important}}.customStyle .search-form{display:flex;color:#6a768e;width:100%}.customStyle .search-form .search-input{width:288px;border:1px solid #d9dce2;border-inline-end:0;border-start-start-radius:5px;border-end-start-radius:5px;border:1px solid #ccc;height:32px;font-size:16px;padding-inline-start:4px}.customStyle .search-form .search-input::-webkit-input-placeholder{font-size:14px}.customStyle .search-form .search-input:focus-visible{border:2px solid #465573;outline:transparent}.customStyle .search-form .search-icon{background:#465573;color:#fff;width:40px;display:flex;align-items:center;justify-content:center;border-radius:0;cursor:pointer;border:1px solid #d9dce2;border-start-end-radius:6px;border-end-end-radius:6px;border-inline-start:0}\n"], components: [{ type: i5.DynamicFilterComponent, selector: "cts-dynamic-filter", inputs: ["title", "filters", "selections", "id", "entityType", "prefix", "department", "componentType", "customPageProvider", "config"], outputs: ["onFilterSelected"] }, { type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i8.CardComponent, selector: "app-card", inputs: ["noBody", "dark"] }, { type: i9.DynamicFormSlideToggleitemComponent, selector: "cts-dynamic-form-slide-toggleitem", inputs: ["label", "disabled", "checked", "theme"], outputs: ["onToggle"] }, { type: i10.DynamicTableComponent, selector: "cts-dynamic-table", inputs: ["columns", "responsiveColumns", "entityType", "prefix", "headers", "fields", "pageProvider", "pageSize", "sortingBy", "queryParam", "quickFilter", "report", "rowCursor", "fullWidth", "tableMode", "tableActions", "defultSort", "range", "isSearchPage", "multiSelectRows", "highlightSelectedCard"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected"] }, { type: i11.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i13.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i13.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i13.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i13.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i13.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i13.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }], pipes: { "translate": i14.TranslatePipe }, animations: [
|
|
158
246
|
trigger('collapse', [
|
|
159
247
|
state('false', style({ height: AUTO_STYLE, visibility: AUTO_STYLE })),
|
|
160
248
|
state('true', style({ height: '0', visibility: 'hidden' })),
|
|
@@ -162,7 +250,7 @@ DynamicSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
162
250
|
transition('true => false', animate(300))
|
|
163
251
|
])
|
|
164
252
|
], encapsulation: i0.ViewEncapsulation.None });
|
|
165
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
253
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DynamicSearchComponent, decorators: [{
|
|
166
254
|
type: Component,
|
|
167
255
|
args: [{
|
|
168
256
|
selector: 'cts-dynamic-search',
|
|
@@ -178,7 +266,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
178
266
|
],
|
|
179
267
|
encapsulation: ViewEncapsulation.None
|
|
180
268
|
}]
|
|
181
|
-
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.
|
|
269
|
+
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.EvaluatorsService }, { type: i3.NuxeoService }, { type: undefined, decorators: [{
|
|
270
|
+
type: Inject,
|
|
271
|
+
args: ['environment']
|
|
272
|
+
}] }, { type: i4.BreakpointObserver }]; }, propDecorators: { columns: [{
|
|
182
273
|
type: Input
|
|
183
274
|
}], responsiveColumns: [{
|
|
184
275
|
type: Input
|
|
@@ -213,4 +304,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
213
304
|
}], theme: [{
|
|
214
305
|
type: Input
|
|
215
306
|
}] } });
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1zZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLXNlYXJjaC9keW5hbWljLXNlYXJjaC9keW5hbWljLXNlYXJjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtc2VhcmNoL2R5bmFtaWMtc2VhcmNoL2R5bmFtaWMtc2VhcmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQzVILE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJeEQsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7Ozs7O0FBRTdGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBZUgsTUFBTSxPQUFPLHNCQUFzQjtJQTZDakMsWUFDVSxLQUFxQixFQUNyQixNQUFjLEVBQ2Ysa0JBQXNDO1FBRnJDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBdkMvQywwQkFBMEI7UUFDakIsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQVNyQixxQkFBcUI7UUFDWixjQUFTLEdBQUcs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QUFDO3lCQUMxQyxDQUFDO3FCQUNIO29CQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0QzsySkFLVSxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFHTixhQUFhO3NCQURaLEtBQUs7Z0JBT0ksV0FBVztzQkFBcEIsTUFBTTtnQkFVUCxZQUFZO3NCQURYLEtBQUs7Z0JBRUcscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBEb2N1bWVudHNDb25zdGFudHMgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2RvY3VtZW50cy9jb25zdGFudHMvZG9jdW1lbnRzJztcclxuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50cyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IGFuaW1hdGUsIEFVVE9fU1RZTEUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5cclxuLyoqXHJcbiAqIER5bmFtaWMgc2VhcmNoIGNvbXBvbmVudCB1c2VzIFtEeW5hbWljIFRhYmxlXXtAbGluayBEeW5hbWljVGFibGVDb21wb25lbnR9ICYgW0R5bmFtaWMgRmlsdGVyXXtAbGluayBEeW5hbWljRmlsdGVyQ29tcG9uZW50fSBpbnRlcm5hbGx5LFxyXG4gKiBhbmQgdXRpbGl6ZXMgaXRzIGlucHV0cyB0byBwZXJmb3JtIGFkdmFuY2VkIHNlYXJjaCBhbmQgZmlsdGVyaW5nIG9uIGFueSBudXhlbyBQcm92aWRlclxyXG4gKiBAdGl0bGVcclxuICogRHluYW1pYyBTZWFyY2hcclxuICpcclxuICogQGV4YW1wbGVcclxuICogPGN0cy1keW5hbWljLXNlYXJjaFxyXG4gKiAgIFtwYWdlUHJvdmlkZXJdPVwiJ3BhZ2VQcm92aWRlck5hbWUnXCJcclxuICogICBbY29sdW1uc109XCJjb2x1bW5zQXJyYXlcIlxyXG4gKiAgIFtyZXNwb25zaXZlQ29sdW1uc109XCJyZXNwb25zaXZlQ29sdW1uc0FycmF5XCJcclxuICogICBbZW50aXR5VHlwZV09XCInZG9jdW1lbnRzJ1wiXHJcbiAqICAgW3ByZWZpeF09XCJwcmVmaXhcIlxyXG4gKiAgIFtmaWVsZHNdPVwiZmllbGRzXCJcclxuICogICBbaGVhZGVyc109XCJoZWFkZXJzXCJcclxuICogICBbc29ydGluZ0J5XT1cInNvcnRpbmdCeVwiXHJcbiAqICAgW3BhZ2VTaXplXT1cIlBhZ2VTaXplXCJcclxuKiAgICBbY3VzdG9tUmVzcG9uc2l2ZVN0eWxlXT1cImZhbHNlIG9yIHRydWVcIlxyXG4gICAgIFtvcGVuQ2xvc2VGaWx0ZXJGcm9tT3V0c2lkZV09XCJwYXNzIEZpbHRlciBzdGF0ZSBmcm9tIHBhcmVudCBjb21wb25lbnRcIlxyXG4gICAgIFt0aGVtZV0gPSBcInRvICBzZXQgYmFja2dyb3VuZCBkZXBlbmVkIG9uIHRoZW1lXCJcclxuICogPlxyXG4gKiA8L2N0cy1keW5hbWljLXNlYXJjaD5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY3RzLWR5bmFtaWMtc2VhcmNoJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1zZWFyY2guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtc2VhcmNoLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcignY29sbGFwc2UnLCBbXHJcbiAgICAgIHN0YXRlKCdmYWxzZScsIHN0eWxlKHsgaGVpZ2h0OiBBVVRPX1NUWUxFLCB2aXNpYmlsaXR5OiBBVVRPX1NUWUxFIH0pKSxcclxuICAgICAgc3RhdGUoJ3RydWUnLCBzdHlsZSh7IGhlaWdodDogJzAnLCB2aXNpYmlsaXR5OiAnaGlkZGVuJyB9KSksXHJcbiAgICAgIHRyYW5zaXRpb24oJ2ZhbHNlID0+IHRydWUnLCBhbmltYXRlKDMwMCkpLFxyXG4gICAgICB0cmFuc2l0aW9uKCd0cnVlID0+IGZhbHNlJywgYW5pbWF0ZSgzMDApKVxyXG4gICAgXSlcclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIER5bmFtaWNTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsT25DaGFuZ2VzIHtcclxuICB0ZXh0OiBzdHJpbmc7XHJcbiAgYWdncmVnYXRpb25zO1xyXG4gIC8qKiBBcnJheSBvZiBjb2x1bW5zICovXHJcbiAgQElucHV0KCkgY29sdW1ucztcclxuICAvKiogQXJyYXkgb2YgY29sdW1ucyBvbiBzbWFsbGVyIHNjcmVlbnMgKi9cclxuICBASW5wdXQoKSByZXNwb25zaXZlQ29sdW1ucz87XHJcbiAgLyoqIERlZmluZXMgdGhlIHBhZ2UgaW4gd2hpY2ggdGFibGUgaXMgYmVpbmcgdXNlZCAqL1xyXG4gIEBJbnB1dCgpIGVudGl0eVR5cGU6IHN0cmluZztcclxuICAvKiogVHJhbnNsYXRpb25zIHByZWZpeCAqL1xyXG4gIEBJbnB1dCgpIHByZWZpeCA9ICcnO1xyXG4gIC8qKiBIZWFkZXJzIHRvIGJlIHNlbnQgd2l0aCBBUEkgUmVxdWVzdCAqL1xyXG4gIEBJbnB1dCgpIGhlYWRlcnM7XHJcbiAgLyoqIEZpZWxkcyBrZXltYXAgdG8gYmUgbWFwcGVkIGluIHRoZSBhZGFwdGVyICovXHJcbiAgQElucHV0KCkgZmllbGRzO1xyXG4gIC8qKiBQYWdlIFByb3ZpZGVyIG5hbWUgdGhhdCB3aWxsIGJlIHVzZWQgdG8gcmV0cmlldmUgZGF0YSAqL1xyXG4gIEBJbnB1dCgpIHBhZ2VQcm92aWRlcjtcclxuICAvKiogQ29udHJvbHMgbnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlIGluIHRhYmxlICovXHJcbiAgQElucHV0KCkgcGFnZVNpemU7XHJcbiAgLyoqIFNvcnRpbmcgY29sdW1uICovXHJcbiAgQElucHV0KCkgc29ydGluZ0J5Pz0ge307XHJcbiAgQElucHV0KCkgZnVsbFRleHRQYXJhbU5hbWUgPSAnc3lzdGVtX2Z1bGx0ZXh0JztcclxuICBASW5wdXQoKSBmaWx0ZXI7IC8vIHVzZWQgdG8gcGFzcyBwYXJhbXMgZnJvbSBvdXRzaWRlIHRvIHBhcmFtcyBvZiBkeW5hbWljIHRhYmxlIGRpcmVjdGx5XHJcblxyXG4gIEBJbnB1dCgpIFxyXG4gIG9uUm93U2VsZWN0ZWQgPSAocm93KSA9PiB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbeyBvdXRsZXRzOiB7IHZpZXdlcjogWyd2aWV3Jywgcm93Wyd1aWQnXV0gfSB9XSwge1xyXG4gICAgICBxdWVyeVBhcmFtczogeyBsb2NhdGlvbjogdGhpcy5yb3V0ZXIudXJsIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqIHVzZWQgdG8gZW1pdCBhbnkgYWN0aW9ucyB0byBvdXRzaWRlICovXHJcbiAgQE91dHB1dCgpIGFjdGlvbk9uUm93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHF1ZXJ5UGFyYW1zID0ge307XHJcbiAgZmlsdGVycztcclxuICBzZWFyY2hGb3JtID0gbmV3IEZvcm1Hcm91cCh7XHJcbiAgICB0ZXh0OiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgfSk7XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIHRvdGFsUmVjb3JkcztcclxuICBvcGVuRmlsdGVyOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpXHJcbiAgc29ydGluZ0FycmF5O1xyXG4gIEBJbnB1dCgpIGN1c3RvbVJlc3BvbnNpdmVTdHlsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG9wZW5DbG9zZUZpbHRlckZyb21PdXRzaWRlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdGhlbWUgOmFueTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHB1YmxpYyBicmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlclxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmKGNoYW5nZXMub3BlbkNsb3NlRmlsdGVyRnJvbU91dHNpZGUpIHtcclxuICAgICAgdGhpcy5vcGVuRmlsdGVyID0gY2hhbmdlcy5vcGVuQ2xvc2VGaWx0ZXJGcm9tT3V0c2lkZS5jdXJyZW50VmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudGV4dCA9IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ3NlYXJjaF9xdWVyeSddO1xyXG4gICAgdGhpcy5zZWFyY2hJbnB1dFBvcHVsYXRlKCk7XHJcbiAgICB0aGlzLnVwZGF0ZVF1ZXJ5UGFyYW1zKHsgW3RoaXMuZnVsbFRleHRQYXJhbU5hbWVdOiB0aGlzLnRleHQgfSk7XHJcbiAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICAodGhpcy50ZXh0ICE9PSBwYXJhbXNbJ3NlYXJjaF9xdWVyeSddICYmIHBhcmFtc1snc2VhcmNoX3F1ZXJ5J10pIHx8XHJcbiAgICAgICAgKHBhcmFtc1snc2VhcmNoX3F1ZXJ5J10/Lmxlbmd0aCA9PSAwICYmXHJcbiAgICAgICAgICB0aGlzLnRleHQgIT09IHBhcmFtc1snc2VhcmNoX3F1ZXJ5J10pXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMudGV4dCA9IHBhcmFtc1snc2VhcmNoX3F1ZXJ5J107XHJcbiAgICAgICAgdGhpcy5zZWFyY2hJbnB1dFBvcHVsYXRlKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVRdWVyeVBhcmFtcyh7IFt0aGlzLmZ1bGxUZXh0UGFyYW1OYW1lXTogdGhpcy50ZXh0IH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuYnJlYWtwb2ludCgpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUXVlcnlQYXJhbXMobmV3UXVlcnlwYXJhbXM6IG9iamVjdCkge1xyXG4gICAgdGhpcy5xdWVyeVBhcmFtcyA9IHtcclxuICAgICAgLi4udGhpcy5xdWVyeVBhcmFtcyxcclxuICAgICAgLi4ubmV3UXVlcnlwYXJhbXMsXHJcbiAgICB9O1xyXG4gIH1cclxuICBcclxuICBzZWFyY2hJbnB1dFBvcHVsYXRlKCkge1xyXG4gICAgdGhpcy5zZWFyY2hGb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICB0ZXh0OiB0aGlzLnRleHQsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgRmlsdGVyU2VsZWN0ZWQodmFsOiBhbnkpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmZpbHRlcnMgPSB7IC4uLnRoaXMuZmlsdGVycywgLi4udmFsLmZpbHRlciB9OyAvL3N0b3JlIGZpbHRlcnNcclxuICAgIHRoaXMudXBkYXRlUXVlcnlQYXJhbXModGhpcy5maWx0ZXJzKTtcclxuICB9XHJcblxyXG4gIHBhZ2luYXRpb25DaGFuZ2UoZXZlbnQpIHsgfVxyXG5cclxuICBnZXRUYWJsZURhdGEoZGF0YSkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLmFnZ3JlZ2F0aW9ucyA9IE9iamVjdC5lbnRyaWVzKGRhdGEuYWdncmVnYXRpb25zIHx8IHt9KS5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgcmV0dXJuIGl0ZW1bMV07XHJcbiAgICB9KTtcclxuICAgIC8vIHRoaXMuYWdncmVnYXRpb25zID0gdGhpcy5hZ2dyZWdhdGlvbnMuZmlsdGVyKChpdGVtKSA9PlxyXG4gICAgLy8gICB0aGlzLnNvcnRpbmdBcnJheS5pbmNsdWRlcyhpdGVtLmlkKVxyXG4gICAgLy8gKTtcclxuICAgIGxldCB1cGRhdGVkQWdncmVnYXRpb24gPSBbXTtcclxuICAgIHRoaXMuYWdncmVnYXRpb25zLm1hcChhZ2dyZWcgPT4ge1xyXG4gICAgICB0aGlzLnNvcnRpbmdBcnJheS5tYXAoc29ydFR5cGUgPT4ge1xyXG4gICAgICAgIGlmKHNvcnRUeXBlLmlkID09PSBhZ2dyZWcuaWQpe1xyXG4gICAgICAgICAgYWdncmVnWydjb21wb25lbnRUeXBlJ10gPSBzb3J0VHlwZS5jb21wb2VuZW50VHlwZTtcclxuICAgICAgICAgIC8vIGluIGNhc2Ugb2YgY3VzdG9tIGNvbXBvbmVudCBuZWVkIHRvIGNhbGwgcGFnZSBwcm92aWRlciB0byBnZXQgZGF0YSBcclxuICAgICAgICAgIGlmKHNvcnRUeXBlLmNvbXBvZW5lbnRUeXBlID09PSAnY3VzdG9tLXBwJyB8fCBzb3J0VHlwZS5jb21wb2VuZW50VHlwZSA9PT0gJ2N1c3RvbS1kb2N1bWVudCcgfHwgc29ydFR5cGUuY29tcG9lbmVudFR5cGUgPT09ICdjdXN0b20tZGVwYXJ0bWVudCcpe1xyXG4gICAgICAgICAgICBhZ2dyZWdbJ2N1c3RvbVBhZ2VQcm92aWRlciddID0gc29ydFR5cGUucGFnZVByb3ZpZGVyLFxyXG4gICAgICAgICAgICBhZ2dyZWdbJ2NvbmZpZyddID0gc29ydFR5cGUuY29uZmlnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB1cGRhdGVkQWdncmVnYXRpb24ucHVzaChhZ2dyZWcpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfSlcclxuICAgIHRoaXMuYWdncmVnYXRpb25zID0gXy5zb3J0QnkodXBkYXRlZEFnZ3JlZ2F0aW9uLCAoaXRlbSkgPT4ge1xyXG4gICAgICBsZXQgaSA9IC0xO1xyXG4gICAgICAgdGhpcy5zb3J0aW5nQXJyYXkubWFwKChzb3J0VHlwZSAsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgIGlmKHNvcnRUeXBlLmlkID09PSBpdGVtLmlkKXtcclxuICAgICAgICAgICBpID0gaW5kZXg7XHJcbiAgICAgICAgIH1cclxuICAgICAgIH0pO1xyXG4gICAgICAgcmV0dXJuIGk7XHJcbiAgICB9KTtcclxuICAgIGNvbnNvbGUubG9nKCdhZ2dyZWdhdGlvbnMnLCB0aGlzLmFnZ3JlZ2F0aW9ucyk7XHJcbiAgICB0aGlzLnRvdGFsUmVjb3JkcyA9IGRhdGEudG90YWxTaXplO1xyXG4gIH1cclxuXHJcbiAgc3VibWl0Rm9ybSgpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLiddLCB7XHJcbiAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXHJcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7XHJcbiAgICAgICAgc2VhcmNoX3F1ZXJ5OiB0aGlzLnNlYXJjaEZvcm0uY29udHJvbHMudGV4dC52YWx1ZSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgb25PcGVuRmlsdGVyKCkge1xyXG4gICAgdGhpcy5vcGVuRmlsdGVyID0gIXRoaXMub3BlbkZpbHRlcjtcclxuICB9XHJcblxyXG4gIGJyZWFrcG9pbnQoKSB7XHJcbiAgICB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlclxyXG4gICAgICAub2JzZXJ2ZShbJyhtaW4td2lkdGg6IDEyMDBweCknXSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC5tYXRjaGVzKSB7XHJcbiAgICAgICAgICB0aGlzLm9wZW5GaWx0ZXIgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcGVyZm9ybUFjdGlvbihhY3Rpb24pe1xyXG4gICAgdGhpcy5hY3Rpb25PblJvdy5lbWl0KGFjdGlvbik7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhY3VzdG9tUmVzcG9uc2l2ZVN0eWxlXCI+XHJcbiAgPGRpdiBjbGFzcz1cInNlYXJjaC10b29sYmFyIGQtbWQtZmxleCBkLXhsLW5vbmUgbXgtM1wiPlxyXG4gICAgPGJ1dHRvbiAoY2xpY2spPVwib25PcGVuRmlsdGVyKClcIiBjbGFzcz1cIm15LWJ1dHRvblwiPlxyXG4gICAgICA8c3Bhbj4ge3sgXCJGSUxURVJcIiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgPGkgY2xhc3M9XCJiaSBiaS1maWx0ZXJcIiAqbmdJZj1cIiFvcGVuRmlsdGVyXCI+PC9pPlxyXG4gICAgICA8aSBjbGFzcz1cImJpIGJpLXhcIiAqbmdJZj1cIm9wZW5GaWx0ZXJcIj48L2k+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxkaXYgKm5nSWY9XCJvcGVuRmlsdGVyXCI+XHJcbiAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2FyZXQtdXAtZmlsbCBhcnJvdy11cFwiPjwvaT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJjdXN0b21SZXNwb25zaXZlU3R5bGVcIj5cclxuICA8ZGl2IGNsYXNzPVwiY3VzdG9tU3R5bGUgLW10LTEyIHB4LTggZmxleCBmbGV4LWNvbFwiXHJcbiAgICBbbmdDbGFzc109XCJ7J2JnLWFjY2VudC0yMDAnOiB0aGVtZSA9PT0gJ2RnZGEnLCdiZy1hY2NlbnQtMTAwJzogdGhlbWUgPT09ICdrc3JlbGVpZicgfHwgdGhlbWUgPT09ICdjb21wdGVjaGNvJ31cIlxyXG4gICAgW0Bjb2xsYXBzZV09XCIhb3BlbkZpbHRlclwiPlxyXG4gICAgICA8Zm9ybVxyXG4gICAgICAgIFtmb3JtR3JvdXBdPVwic2VhcmNoRm9ybVwiXHJcbiAgICAgICAgY2xhc3M9XCJzZWFyY2gtZm9ybVwiXHJcbiAgICAgICAgKG5nU3VibWl0KT1cInN1Ym1pdEZvcm0oKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGNsYXNzPVwic2VhcmNoLWlucHV0XCJcclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRleHRcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidzZWFyY2guc2VhcmNoJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8ZGl2IChjbGljayk9XCJzdWJtaXRGb3JtKClcIiBjbGFzcz1cInNlYXJjaC1pY29uIGJpIGJpLXNlYXJjaFwiPjwvZGl2PlxyXG4gICAgICA8L2Zvcm0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC14LTE4IGZsZXgtcm93IG10LTUgcGItMyBvdmVyZmxvdy14LWF1dG9cIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWdncmVnYXRpb25zOyBlbHNlIHByb2dyZXNzU3Bpbm5lclwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFnZ3JlZ2F0aW9ucy5sZW5ndGg7IGVsc2Ugbm9BZ2dyZWdhdGlvbnNcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWdncmVnYXRpb24gb2YgYWdncmVnYXRpb25zXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFnZ3JlZ2F0aW9uLmJ1Y2tldHMubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgPGN0cy1keW5hbWljLWZpbHRlclxyXG4gICAgICAgICAgICAgICAgICBbZW50aXR5VHlwZV09XCJlbnRpdHlUeXBlXCJcclxuICAgICAgICAgICAgICAgICAgW2ZpbHRlcnNdPVwiYWdncmVnYXRpb24uYnVja2V0c1wiXHJcbiAgICAgICAgICAgICAgICAgIFtpZF09XCJhZ2dyZWdhdGlvbi5pZFwiXHJcbiAgICAgICAgICAgICAgICAgIFtzZWxlY3Rpb25zXT1cImFnZ3JlZ2F0aW9uLnNlbGVjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJhZ2dyZWdhdGlvbi5maWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgIFtwcmVmaXhdPVwiJ3NlYXJjaCdcIlxyXG4gICAgICAgICAgICAgICAgICBbZGVwYXJ0bWVudF09XCJcclxuICAgICAgICAgICAgICAgICAgICBhZ2dyZWdhdGlvbi5maWVsZCA9PT0gJ2NvcnI6dG8nIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgYWdncmVnYXRpb24uZmllbGQgPT09ICdjb3JyOmZyb20nXHJcbiAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgIFtjb21wb25lbnRUeXBlXT1cImFnZ3JlZ2F0aW9uLmNvbXBvbmVudFR5cGUgPyBhZ2dyZWdhdGlvbi5jb21wb25lbnRUeXBlIDogJ2RlZnVsdCdcIlxyXG4gICAgICAgICAgICAgICAgICBbY3VzdG9tUGFnZVByb3ZpZGVyXT1cImFnZ3JlZ2F0aW9uLmN1c3RvbVBhZ2VQcm92aWRlciA/IGFnZ3JlZ2F0aW9uLmN1c3RvbVBhZ2VQcm92aWRlciA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJhZ2dyZWdhdGlvbi5jb25maWcgPyBhZ2dyZWdhdGlvbi5jb25maWcgOiB7fVwiXHJcbiAgICAgICAgICAgICAgICAgIChvbkZpbHRlclNlbGVjdGVkKT1cIkZpbHRlclNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgPjwvY3RzLWR5bmFtaWMtZmlsdGVyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbjxkaXYgY2xhc3M9XCJyb3cgd3JhcHBlclwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY3VzdG9tUmVzcG9uc2l2ZVN0eWxlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicG9wdXAtZmlsdGVyIHB4LTMgZC1mbGV4IGQteGwtbm9uZVwiICpuZ0lmPVwib3BlbkZpbHRlclwiPlxyXG4gICAgICA8Zm9ybVxyXG4gICAgICAgIFtmb3JtR3JvdXBdPVwic2VhcmNoRm9ybVwiXHJcbiAgICAgICAgY2xhc3M9XCJzZWFyY2gtZm9ybVwiXHJcbiAgICAgICAgKG5nU3VibWl0KT1cInN1Ym1pdEZvcm0oKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGNsYXNzPVwic2VhcmNoLWlucHV0XCJcclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRleHRcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidzZWFyY2guc2VhcmNoJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8ZGl2IChjbGljayk9XCJzdWJtaXRGb3JtKClcIiBjbGFzcz1cInNlYXJjaC1pY29uIGJpIGJpLXNlYXJjaFwiPjwvZGl2PlxyXG4gICAgICA8L2Zvcm0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhZ2dyZWdhdGlvbnM7IGVsc2UgcHJvZ3Jlc3NTcGlubmVyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFnZ3JlZ2F0aW9ucy5sZW5ndGg7IGVsc2Ugbm9BZ2dyZWdhdGlvbnNcIj5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBhZ2dyZWdhdGlvbiBvZiBhZ2dyZWdhdGlvbnNcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhZ2dyZWdhdGlvbi5idWNrZXRzLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgPGN0cy1keW5hbWljLWZpbHRlclxyXG4gICAgICAgICAgICAgIFtlbnRpdHlUeXBlXT1cImVudGl0eVR5cGVcIlxyXG4gICAgICAgICAgICAgIFtmaWx0ZXJzXT1cImFnZ3JlZ2F0aW9uLmJ1Y2tldHNcIlxyXG4gICAgICAgICAgICAgIFtpZF09XCJhZ2dyZWdhdGlvbi5pZFwiXHJcbiAgICAgICAgICAgICAgW3NlbGVjdGlvbnNdPVwiYWdncmVnYXRpb24uc2VsZWN0aW9uXCJcclxuICAgICAgICAgICAgICBbdGl0bGVdPVwiYWdncmVnYXRpb24uZmllbGRcIlxyXG4gICAgICAgICAgICAgIFtwcmVmaXhdPVwiJ3NlYXJjaCdcIlxyXG4gICAgICAgICAgICAgIFtkZXBhcnRtZW50XT1cIlxyXG4gICAgICAgICAgICAgICAgYWdncmVnYXRpb24uZmllbGQgPT09ICdjb3JyOnRvJyB8fFxyXG4gICAgICAgICAgICAgICAgYWdncmVnYXRpb24uZmllbGQgPT09ICdjb3JyOmZyb20nXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICBbY29tcG9uZW50VHlwZV09XCJhZ2dyZWdhdGlvbi5jb21wb25lbnRUeXBlID8gYWdncmVnYXRpb24uY29tcG9uZW50VHlwZSA6ICdkZWZ1bHQnXCJcclxuICAgICAgICAgICAgICBbY3VzdG9tUGFnZVByb3ZpZGVyXT1cImFnZ3JlZ2F0aW9uLmN1c3RvbVBhZ2VQcm92aWRlciA/IGFnZ3JlZ2F0aW9uLmN1c3RvbVBhZ2VQcm92aWRlciA6ICcnXCJcclxuICAgICAgICAgICAgICBbY29uZmlnXT1cImFnZ3JlZ2F0aW9uLmNvbmZpZyA/IGFnZ3JlZ2F0aW9uLmNvbmZpZyA6IHt9XCJcclxuICAgICAgICAgICAgICAob25GaWx0ZXJTZWxlY3RlZCk9XCJGaWx0ZXJTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgPjwvY3RzLWR5bmFtaWMtZmlsdGVyPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPGRpdiBjbGFzcz1cImNvbC14bC0zIHNlYXJjaC1zaWRlTWVudSBkLW5vbmUgZC14bC1ibG9ja1wiPlxyXG4gICAgPGZvcm1cclxuICAgICAgW2Zvcm1Hcm91cF09XCJzZWFyY2hGb3JtXCJcclxuICAgICAgY2xhc3M9XCJzZWFyY2gtZm9ybVwiXHJcbiAgICAgIChuZ1N1Ym1pdCk9XCJzdWJtaXRGb3JtKClcIlxyXG4gICAgPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBjbGFzcz1cInNlYXJjaC1pbnB1dFwiXHJcbiAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRleHRcIlxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInc2VhcmNoLnNlYXJjaCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAvPlxyXG4gICAgICA8ZGl2IChjbGljayk9XCJzdWJtaXRGb3JtKClcIiBjbGFzcz1cInNlYXJjaC1pY29uIGJpIGJpLXNlYXJjaFwiPjwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFnZ3JlZ2F0aW9uczsgZWxzZSBwcm9ncmVzc1NwaW5uZXJcIj5cclxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgYWdncmVnYXRpb24gb2YgYWdncmVnYXRpb25zXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFnZ3JlZ2F0aW9uLmJ1Y2tldHMubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgPGN0cy1keW5hbWljLWZpbHRlclxyXG4gICAgICAgICAgICBbZW50aXR5VHlwZV09XCJlbnRpdHlUeXBlXCJcclxuICAgICAgICAgICAgW2ZpbHRlcnNdPVwiYWdncmVnYXRpb24uYnVja2V0c1wiXHJcbiAgICAgICAgICAgIFtpZF09XCJhZ2dyZWdhdGlvbi5pZFwiXHJcbiAgICAgICAgICAgIFtzZWxlY3Rpb25zXT1cImFnZ3JlZ2F0aW9uLnNlbGVjdGlvblwiXHJcbiAgICAgICAgICAgIFt0aXRsZV09XCJhZ2dyZWdhdGlvbi5maWVsZFwiXHJcbiAgICAgICAgICAgIFtwcmVmaXhdPVwiJ3NlYXJjaCdcIlxyXG4gICAgICAgICAgICBbZGVwYXJ0bWVudF09XCJcclxuICAgICAgICAgICAgICBhZ2dyZWdhdGlvbi5maWVsZCA9PT0gJ2NvcnI6dG8nIHx8XHJcbiAgICAgICAgICAgICAgYWdncmVnYXRpb24uZmllbGQgPT09ICdjb3JyOmZyb20nXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgIFtjb21wb25lbnRUeXBlXT1cImFnZ3JlZ2F0aW9uLmNvbXBvbmVudFR5cGUgPyBhZ2dyZWdhdGlvbi5jb21wb25lbnRUeXBlIDogJ2RlZnVsdCdcIlxyXG4gICAgICAgICAgICBbY3VzdG9tUGFnZVByb3ZpZGVyXT1cImFnZ3JlZ2F0aW9uLmN1c3RvbVBhZ2VQcm92aWRlciA/IGFnZ3JlZ2F0aW9uLmN1c3RvbVBhZ2VQcm92aWRlciA6ICcnXCJcclxuICAgICAgICAgICAgW2NvbmZpZ109XCJhZ2dyZWdhdGlvbi5jb25maWcgPyBhZ2dyZWdhdGlvbi5jb25maWcgOiB7fVwiXHJcbiAgICAgICAgICAgIChvbkZpbHRlclNlbGVjdGVkKT1cIkZpbHRlclNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgPjwvY3RzLWR5bmFtaWMtZmlsdGVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC14bC05XCI+XHJcbiAgICA8YXBwLWNhcmQ+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxyXG4gICAgICAgIDxoMz5cclxuICAgICAgICAgIHt7IFwic2VhcmNoLmhlYWRlclwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9oMz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJib2R5XCI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImFnZ3JlZ2F0aW9uc1wiIGNsYXNzPVwidGFibGUtdG9vbGJhclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJlc3VsdC1jb3VudFwiPlxyXG4gICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgXCJzZWFyY2guXCIgKyBcInJlc3VsdHNOdW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgICB8IHRyYW5zbGF0ZTogeyB2YWx1ZTogdG90YWxSZWNvcmRzID8gdG90YWxSZWNvcmRzIDogMCB9XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8IS0tIDxmb3JtXHJcbiAgICAgICAgICBbZm9ybUdyb3VwXT1cInNlYXJjaEZvcm1cIlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWFyY2gtZm9ybVwiXHJcbiAgICAgICAgICAobmdTdWJtaXQpPVwic3VibWl0Rm9ybSgpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2gtaW5wdXRcIlxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRleHRcIlxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3NlYXJjaC5zZWFyY2gnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8ZGl2IChjbGljayk9XCJzdWJtaXRGb3JtKClcIiBjbGFzcz1cInNlYXJjaC1pY29uIGJpIGJpLXNlYXJjaFwiPjwvZGl2PlxyXG4gICAgICAgIDwvZm9ybT4gLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGN0cy1keW5hbWljLXRhYmxlXHJcbiAgICAgICAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIlxyXG4gICAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgICAgICAgICBbcmVzcG9uc2l2ZUNvbHVtbnNdPVwicmVzcG9uc2l2ZUNvbHVtbnNcIlxyXG4gICAgICAgICAgW3BhZ2VQcm92aWRlcl09XCJwYWdlUHJvdmlkZXJcIlxyXG4gICAgICAgICAgW3F1aWNrRmlsdGVyXT1cImZpbHRlclwiXHJcbiAgICAgICAgICBbZW50aXR5VHlwZV09XCJlbnRpdHlUeXBlXCJcclxuICAgICAgICAgIFtmaWVsZHNdPVwiZmllbGRzXCJcclxuICAgICAgICAgIFtxdWVyeVBhcmFtXT1cInF1ZXJ5UGFyYW1zXCJcclxuICAgICAgICAgIFtoZWFkZXJzXT1cImhlYWRlcnNcIlxyXG4gICAgICAgICAgW3ByZWZpeF09XCJwcmVmaXhcIlxyXG4gICAgICAgICAgW3NvcnRpbmdCeV09XCJzb3J0aW5nQnlcIlxyXG4gICAgICAgICAgW2lzU2VhcmNoUGFnZV09XCJ0cnVlXCJcclxuICAgICAgICAgIChvblJvd1NlbGVjdGVkKT1cIm9uUm93U2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoYWN0aW9uT25Sb3cpPVwicGVyZm9ybUFjdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChvbkdldHRpbmdEYXRhKT1cImdldFRhYmxlRGF0YSgkZXZlbnQpXCJcclxuICAgICAgICA+PC9jdHMtZHluYW1pYy10YWJsZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2FwcC1jYXJkPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bmctdGVtcGxhdGUgI3Byb2dyZXNzU3Bpbm5lcj5cclxuICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy1zcGlubmVyXCI+XHJcbiAgICAgIDxtYXQtc3Bpbm5lciBjb2xvcj1cIndhcm5cIiBbZGlhbWV0ZXJdPVwiMjVcIj48L21hdC1zcGlubmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8bmctdGVtcGxhdGUgI25vQWdncmVnYXRpb25zPlxyXG4gICAgPGRpdiBjbGFzcz1cInByb2dyZXNzLXNwaW5uZXJcIj5cclxuICAgICAge3sgXCJzZWFyY2gubm9BZ2dyZWdhdGlvbnNcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
307
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1zZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLXNlYXJjaC9keW5hbWljLXNlYXJjaC9keW5hbWljLXNlYXJjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtc2VhcmNoL2R5bmFtaWMtc2VhcmNoL2R5bmFtaWMtc2VhcmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQTRCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXhELE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRzdGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBR3hDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBZUgsTUFBTSxPQUFPLHNCQUFzQjtJQXFEakMsWUFDVSxLQUFxQixFQUNyQixNQUFjLEVBQ2QsZ0JBQW9DLEVBQ3BDLFlBQTJCLEVBQ0osV0FBVyxFQUNuQyxrQkFBc0M7UUFMckMsVUFBSyxHQUFMLEtB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QUdOLGFBQWE7c0JBRFosS0FBSztnQkFPSSxXQUFXO3NCQUFwQixNQUFNO2dCQVlQLFlBQVk7c0JBRFgsS0FBSztnQkFFRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRG9jdW1lbnRzQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9kb2N1bWVudHMvY29uc3RhbnRzL2RvY3VtZW50cyc7XHJcbmltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludHMgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcclxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBhbmltYXRlLCBBVVRPX1NUWUxFLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgdGhyZWFkSWQgfSBmcm9tICd3b3JrZXJfdGhyZWFkcyc7XHJcbmltcG9ydCB7IEV2YWx1YXRvcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL3Blcm1pc3Npb25zL2V2YWx1YXRvcnMuc2VydmljZSc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBOdXhlb1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9Db3JlL3NlcnZpY2VzL251eGVvL251eGVvLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIER5bmFtaWMgc2VhcmNoIGNvbXBvbmVudCB1c2VzIFtEeW5hbWljIFRhYmxlXXtAbGluayBEeW5hbWljVGFibGVDb21wb25lbnR9ICYgW0R5bmFtaWMgRmlsdGVyXXtAbGluayBEeW5hbWljRmlsdGVyQ29tcG9uZW50fSBpbnRlcm5hbGx5LFxyXG4gKiBhbmQgdXRpbGl6ZXMgaXRzIGlucHV0cyB0byBwZXJmb3JtIGFkdmFuY2VkIHNlYXJjaCBhbmQgZmlsdGVyaW5nIG9uIGFueSBudXhlbyBQcm92aWRlclxyXG4gKiBAdGl0bGVcclxuICogRHluYW1pYyBTZWFyY2hcclxuICpcclxuICogQGV4YW1wbGVcclxuICogPGN0cy1keW5hbWljLXNlYXJjaFxyXG4gKiAgIFtwYWdlUHJvdmlkZXJdPVwiJ3BhZ2VQcm92aWRlck5hbWUnXCJcclxuICogICBbY29sdW1uc109XCJjb2x1bW5zQXJyYXlcIlxyXG4gKiAgIFtyZXNwb25zaXZlQ29sdW1uc109XCJyZXNwb25zaXZlQ29sdW1uc0FycmF5XCJcclxuICogICBbZW50aXR5VHlwZV09XCInZG9jdW1lbnRzJ1wiXHJcbiAqICAgW3ByZWZpeF09XCJwcmVmaXhcIlxyXG4gKiAgIFtmaWVsZHNdPVwiZmllbGRzXCJcclxuICogICBbaGVhZGVyc109XCJoZWFkZXJzXCJcclxuICogICBbc29ydGluZ0J5XT1cInNvcnRpbmdCeVwiXHJcbiAqICAgW3BhZ2VTaXplXT1cIlBhZ2VTaXplXCJcclxuKiAgICBbY3VzdG9tUmVzcG9uc2l2ZVN0eWxlXT1cImZhbHNlIG9yIHRydWVcIlxyXG4gICAgIFtvcGVuQ2xvc2VGaWx0ZXJGcm9tT3V0c2lkZV09XCJwYXNzIEZpbHRlciBzdGF0ZSBmcm9tIHBhcmVudCBjb21wb25lbnRcIlxyXG4gICAgIFt0aGVtZV0gPSBcInRvICBzZXQgYmFja2dyb3VuZCBkZXBlbmVkIG9uIHRoZW1lXCJcclxuICogPlxyXG4gKiA8L2N0cy1keW5hbWljLXNlYXJjaD5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY3RzLWR5bmFtaWMtc2VhcmNoJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1zZWFyY2guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtc2VhcmNoLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcignY29sbGFwc2UnLCBbXHJcbiAgICAgIHN0YXRlKCdmYWxzZScsIHN0eWxlKHsgaGVpZ2h0OiBBVVRPX1NUWUxFLCB2aXNpYmlsaXR5OiBBVVRPX1NUWUxFIH0pKSxcclxuICAgICAgc3RhdGUoJ3RydWUnLCBzdHlsZSh7IGhlaWdodDogJzAnLCB2aXNpYmlsaXR5OiAnaGlkZGVuJyB9KSksXHJcbiAgICAgIHRyYW5zaXRpb24oJ2ZhbHNlID0+IHRydWUnLCBhbmltYXRlKDMwMCkpLFxyXG4gICAgICB0cmFuc2l0aW9uKCd0cnVlID0+IGZhbHNlJywgYW5pbWF0ZSgzMDApKVxyXG4gICAgXSlcclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIER5bmFtaWNTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsT25DaGFuZ2VzIHtcclxuICB0ZXh0OiBzdHJpbmc7XHJcbiAgYWdncmVnYXRpb25zO1xyXG4gIC8qKiBBcnJheSBvZiBjb2x1bW5zICovXHJcbiAgQElucHV0KCkgY29sdW1ucztcclxuICAvKiogQXJyYXkgb2YgY29sdW1ucyBvbiBzbWFsbGVyIHNjcmVlbnMgKi9cclxuICBASW5wdXQoKSByZXNwb25zaXZlQ29sdW1ucz87XHJcbiAgLyoqIERlZmluZXMgdGhlIHBhZ2UgaW4gd2hpY2ggdGFibGUgaXMgYmVpbmcgdXNlZCAqL1xyXG4gIEBJbnB1dCgpIGVudGl0eVR5cGU6IHN0cmluZztcclxuICAvKiogVHJhbnNsYXRpb25zIHByZWZpeCAqL1xyXG4gIEBJbnB1dCgpIHByZWZpeCA9ICcnO1xyXG4gIC8qKiBIZWFkZXJzIHRvIGJlIHNlbnQgd2l0aCBBUEkgUmVxdWVzdCAqL1xyXG4gIEBJbnB1dCgpIGhlYWRlcnM7XHJcbiAgLyoqIEZpZWxkcyBrZXltYXAgdG8gYmUgbWFwcGVkIGluIHRoZSBhZGFwdGVyICovXHJcbiAgQElucHV0KCkgZmllbGRzO1xyXG4gIC8qKiBQYWdlIFByb3ZpZGVyIG5hbWUgdGhhdCB3aWxsIGJlIHVzZWQgdG8gcmV0cmlldmUgZGF0YSAqL1xyXG4gIEBJbnB1dCgpIHBhZ2VQcm92aWRlcjtcclxuICAvKiogQ29udHJvbHMgbnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlIGluIHRhYmxlICovXHJcbiAgQElucHV0KCkgcGFnZVNpemU7XHJcbiAgLyoqIFNvcnRpbmcgY29sdW1uICovXHJcbiAgQElucHV0KCkgc29ydGluZ0J5Pz0ge307XHJcbiAgQElucHV0KCkgZnVsbFRleHRQYXJhbU5hbWUgPSAnc3lzdGVtX2Z1bGx0ZXh0JztcclxuICBASW5wdXQoKSBmaWx0ZXI7IC8vIHVzZWQgdG8gcGFzcyBwYXJhbXMgZnJvbSBvdXRzaWRlIHRvIHBhcmFtcyBvZiBkeW5hbWljIHRhYmxlIGRpcmVjdGx5XHJcblxyXG4gIEBJbnB1dCgpIFxyXG4gIG9uUm93U2VsZWN0ZWQgPSAocm93KSA9PiB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbeyBvdXRsZXRzOiB7IHZpZXdlcjogWyd2aWV3Jywgcm93Wyd1aWQnXV0gfSB9XSwge1xyXG4gICAgICBxdWVyeVBhcmFtczogeyBsb2NhdGlvbjogdGhpcy5yb3V0ZXIudXJsIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqIHVzZWQgdG8gZW1pdCBhbnkgYWN0aW9ucyB0byBvdXRzaWRlICovXHJcbiAgQE91dHB1dCgpIGFjdGlvbk9uUm93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHF1ZXJ5UGFyYW1zID0ge307XHJcbiAgZmlsdGVycztcclxuICBzZWFyY2hGb3JtID0gbmV3IEZvcm1Hcm91cCh7XHJcbiAgICB0ZXh0OiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICBwZXJzb25hbEZpbGVzIDogbmV3IEZvcm1Db250cm9sKGZhbHNlKSxcclxuICAgIGRlcEZpbGVzIDogbmV3IEZvcm1Db250cm9sKGZhbHNlKVxyXG4gIH0pO1xyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICB0b3RhbFJlY29yZHM7XHJcbiAgb3BlbkZpbHRlcjogYm9vbGVhbjtcclxuICBASW5wdXQoKVxyXG4gIHNvcnRpbmdBcnJheTtcclxuICBASW5wdXQoKSBjdXN0b21SZXNwb25zaXZlU3R5bGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBvcGVuQ2xvc2VGaWx0ZXJGcm9tT3V0c2lkZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRoZW1lIDphbnk7XHJcbiAgdXNlVG9nZ2xlRmlsdGVycztcclxuXHJcbiAgcXVpY2tGaWx0ZXJzID0gJyc7XHJcbiAgc2F2ZWRQZXJzRmlsdGVyVmFsdWUgPSBudWxsO1xyXG4gIHNhdmVkRGVwRmlsdGVyVmFsdWUgPSBudWxsO1xyXG4gIHJlc3VsdFNldHMgPSBbXTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgZXZhbHVhdG9yU2VydmljZSA6IEV2YWx1YXRvcnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBudXhlb1NlcnZpY2UgOiBOdXhlb1NlcnZpY2UsXHJcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByaXZhdGUgZW52aXJvbm1lbnQsXHJcbiAgICBwdWJsaWMgYnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXJcclxuICApIHsgXHJcbiAgICB0aGlzLmV2YWx1YXRvclNlcnZpY2UuZXZhbHVhdGVSdWxlKCdlbmFibGVTZWFyY2hUb2dnbGVzJyAsIHt9KS50aGVuKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMudXNlVG9nZ2xlRmlsdGVycyA9IHJlcztcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZihjaGFuZ2VzLm9wZW5DbG9zZUZpbHRlckZyb21PdXRzaWRlKSB7XHJcbiAgICAgIHRoaXMub3BlbkZpbHRlciA9IGNoYW5nZXMub3BlbkNsb3NlRmlsdGVyRnJvbU91dHNpZGUuY3VycmVudFZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBcclxuICAgIHRoaXMudXBkYXRlUXVlcnlQYXJhbXModGhpcy5jb25zdHJ1Y3RQYXJhbXNGdW5jdGlvbih0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zKSk7XHJcbiAgICB0aGlzLnNlYXJjaElucHV0UG9wdWxhdGUoKTtcclxuICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKChwYXJhbXMpID0+IHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgICh0aGlzLnRleHQgIT09IHBhcmFtc1snc2VhcmNoX3F1ZXJ5J10gJiYgcGFyYW1zWydzZWFyY2hfcXVlcnknXSkgfHxcclxuICAgICAgICAocGFyYW1zWydzZWFyY2hfcXVlcnknXT8ubGVuZ3RoID09IDAgJiYgdGhpcy50ZXh0ICE9PSBwYXJhbXNbJ3NlYXJjaF9xdWVyeSddIHx8IFxyXG4gICAgICAgICh0aGlzLnVzZVRvZ2dsZUZpbHRlcnMgJiYgdGhpcy5xdWlja0ZpbHRlcnMgIT09IHBhcmFtc1sncXVpY2tGaWx0ZXJzJ10pKSBcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVRdWVyeVBhcmFtcyh0aGlzLmNvbnN0cnVjdFBhcmFtc0Z1bmN0aW9uKHBhcmFtcykpO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoSW5wdXRQb3B1bGF0ZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuYnJlYWtwb2ludCgpO1xyXG4gICAgXHJcbiAgIHRoaXMuc2VhcmNoRm9ybS5nZXQoJ3RleHQnKS52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgIGRlYm91bmNlVGltZSg1MDApKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgdGhpcy5zZWFyY2gocmVzKS5zdWJzY3JpYmUocmVzdWx0cyA9PiB7XHJcbiAgICAgICAgdGhpcy5yZXN1bHRTZXRzID0gcmVzdWx0cztcclxuICAgICAgfSlcclxuICAgfSlcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdFBhcmFtc0Z1bmN0aW9uKHBhcmFtcyl7XHJcbiAgICBsZXQgY29udHJ1Y3RlZFBhcm1zID0ge307XHJcbiAgICB0aGlzLnRleHQgPSBwYXJhbXNbJ3NlYXJjaF9xdWVyeSddO1xyXG4gICAgaWYodGhpcy51c2VUb2dnbGVGaWx0ZXJzKXtcclxuICAgICAgaWYocGFyYW1zWydxdWlja0ZpbHRlcnMnXSl7XHJcbiAgICAgICAgdGhpcy5xdWlja0ZpbHRlcnMgPSBwYXJhbXNbJ3F1aWNrRmlsdGVycyddIDtcclxuICAgICAgICBjb250cnVjdGVkUGFybXMgPSB7IFt0aGlzLmZ1bGxUZXh0UGFyYW1OYW1lXSA6IHRoaXMudGV4dCAsIHF1aWNrRmlsdGVycyA6IHRoaXMucXVpY2tGaWx0ZXJzfVxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLnF1aWNrRmlsdGVycyA9ICcnO1xyXG4gICAgICAgIGNvbnRydWN0ZWRQYXJtcyA9IHsgW3RoaXMuZnVsbFRleHRQYXJhbU5hbWVdIDogdGhpcy50ZXh0ICwgcXVpY2tGaWx0ZXJzIDogJyd9XHJcbiAgICAgIH1cclxuICAgIH1lbHNle1xyXG4gICAgICBjb250cnVjdGVkUGFybXMgPSB7IFt0aGlzLmZ1bGxUZXh0UGFyYW1OYW1lXSA6IHRoaXMudGV4dH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY29udHJ1Y3RlZFBhcm1zO1xyXG4gIH1cclxuICB1cGRhdGVRdWVyeVBhcmFtcyhuZXdRdWVyeXBhcmFtczogb2JqZWN0KSB7XHJcbiAgICB0aGlzLnF1ZXJ5UGFyYW1zID0ge1xyXG4gICAgICAuLi50aGlzLnF1ZXJ5UGFyYW1zLFxyXG4gICAgICAuLi5uZXdRdWVyeXBhcmFtcyxcclxuICAgIH07XHJcbiAgfVxyXG4gIFxyXG4gIHNlYXJjaElucHV0UG9wdWxhdGUoKSB7XHJcbiAgICBpZih0aGlzLnVzZVRvZ2dsZUZpbHRlcnMpe1xyXG4gICAgICB0aGlzLnNlYXJjaEZvcm0ucGF0Y2hWYWx1ZSh7XHJcbiAgICAgICAgdGV4dDogdGhpcy50ZXh0LFxyXG4gICAgICAgIHBlcnNvbmFsRmlsZXMgOiAodGhpcy5xdWlja0ZpbHRlcnMgPT09ICdwZXJzb25hbEZpbHRlcicgKSA/IHRydWUgOiAodGhpcy5zYXZlZFBlcnNGaWx0ZXJWYWx1ZSAhPT0gbnVsbCkgPyB0aGlzLnNhdmVkUGVyc0ZpbHRlclZhbHVlIDogZmFsc2UsXHJcbiAgICAgICAgZGVwRmlsZXMgOiAodGhpcy5xdWlja0ZpbHRlcnMgPT09ICdkZXBhcnRtZW50RmlsdGVyJykgPyB0cnVlIDogKHRoaXMuc2F2ZWREZXBGaWx0ZXJWYWx1ZSAhPT0gbnVsbCkgPyB0aGlzLnNhdmVkRGVwRmlsdGVyVmFsdWUgOiBmYWxzZSBcclxuICAgICAgfSk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5zZWFyY2hGb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICAgIHRleHQ6IHRoaXMudGV4dCxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBGaWx0ZXJTZWxlY3RlZCh2YWw6IGFueSkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuZmlsdGVycyA9IHsgLi4udGhpcy5maWx0ZXJzLCAuLi52YWwuZmlsdGVyIH07IC8vc3RvcmUgZmlsdGVyc1xyXG4gICAgdGhpcy51cGRhdGVRdWVyeVBhcmFtcyh0aGlzLmZpbHRlcnMpO1xyXG4gIH1cclxuXHJcbiAgcGFnaW5hdGlvbkNoYW5nZShldmVudCkgeyB9XHJcblxyXG4gIGdldFRhYmxlRGF0YShkYXRhKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMuYWdncmVnYXRpb25zID0gT2JqZWN0LmVudHJpZXMoZGF0YS5hZ2dyZWdhdGlvbnMgfHwge30pLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICByZXR1cm4gaXRlbVsxXTtcclxuICAgIH0pO1xyXG4gICAgLy8gdGhpcy5hZ2dyZWdhdGlvbnMgPSB0aGlzLmFnZ3JlZ2F0aW9ucy5maWx0ZXIoKGl0ZW0pID0+XHJcbiAgICAvLyAgIHRoaXMuc29ydGluZ0FycmF5LmluY2x1ZGVzKGl0ZW0uaWQpXHJcbiAgICAvLyApO1xyXG4gICAgbGV0IHVwZGF0ZWRBZ2dyZWdhdGlvbiA9IFtdO1xyXG4gICAgdGhpcy5hZ2dyZWdhdGlvbnMubWFwKGFnZ3JlZyA9PiB7XHJcbiAgICAgIHRoaXMuc29ydGluZ0FycmF5Lm1hcChzb3J0VHlwZSA9PiB7XHJcbiAgICAgICAgaWYoc29ydFR5cGUuaWQgPT09IGFnZ3JlZy5pZCl7XHJcbiAgICAgICAgICBhZ2dyZWdbJ2NvbXBvbmVudFR5cGUnXSA9IHNvcnRUeXBlLmNvbXBvZW5lbnRUeXBlO1xyXG4gICAgICAgICAgLy8gaW4gY2FzZSBvZiBjdXN0b20gY29tcG9uZW50IG5lZWQgdG8gY2FsbCBwYWdlIHByb3ZpZGVyIHRvIGdldCBkYXRhIFxyXG4gICAgICAgICAgaWYoc29ydFR5cGUuY29tcG9lbmVudFR5cGUgPT09ICdjdXN0b20tcHAnIHx8IHNvcnRUeXBlLmNvbXBvZW5lbnRUeXBlID09PSAnY3VzdG9tLWRvY3VtZW50JyB8fCBzb3J0VHlwZS5jb21wb2VuZW50VHlwZSA9PT0gJ2N1c3RvbS1kZXBhcnRtZW50Jyl7XHJcbiAgICAgICAgICAgIGFnZ3JlZ1snY3VzdG9tUGFnZVByb3ZpZGVyJ10gPSBzb3J0VHlwZS5wYWdlUHJvdmlkZXIsXHJcbiAgICAgICAgICAgIGFnZ3JlZ1snY29uZmlnJ10gPSBzb3J0VHlwZS5jb25maWdcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHVwZGF0ZWRBZ2dyZWdhdGlvbi5wdXNoKGFnZ3JlZylcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gICAgdGhpcy5hZ2dyZWdhdGlvbnMgPSBfLnNvcnRCeSh1cGRhdGVkQWdncmVnYXRpb24sIChpdGVtKSA9PiB7XHJcbiAgICAgIGxldCBpID0gLTE7XHJcbiAgICAgICB0aGlzLnNvcnRpbmdBcnJheS5tYXAoKHNvcnRUeXBlICwgaW5kZXgpID0+IHtcclxuICAgICAgICAgaWYoc29ydFR5cGUuaWQgPT09IGl0ZW0uaWQpe1xyXG4gICAgICAgICAgIGkgPSBpbmRleDtcclxuICAgICAgICAgfVxyXG4gICAgICAgfSk7XHJcbiAgICAgICByZXR1cm4gaTtcclxuICAgIH0pO1xyXG4gICAgY29uc29sZS5sb2coJ2FnZ3JlZ2F0aW9ucycsIHRoaXMuYWdncmVnYXRpb25zKTtcclxuICAgIHRoaXMudG90YWxSZWNvcmRzID0gZGF0YS50b3RhbFNpemU7XHJcbiAgfVxyXG5cclxuICBzdWJtaXRGb3JtKCkge1xyXG4gICAgbGV0IHBhcmFtcyA9IHt9IDtcclxuICAgIGlmKHRoaXMudXNlVG9nZ2xlRmlsdGVycyl7XHJcbiAgICAgIHBhcmFtcyA9IHtcclxuICAgICAgICBzZWFyY2hfcXVlcnk6IHRoaXMuc2VhcmNoRm9ybS5jb250cm9scy50ZXh0LnZhbHVlLFxyXG4gICAgICAgIHF1aWNrRmlsdGVycyA6IHRoaXMuZ2V0VG9nZ2xlRmlsdGVycygpXHJcbiAgICAgIH1cclxuICAgIH1lbHNle1xyXG4gICAgICBwYXJhbXMgPSB7XHJcbiAgICAgICAgc2VhcmNoX3F1ZXJ5OiB0aGlzLnNlYXJjaEZvcm0uY29udHJvbHMudGV4dC52YWx1ZSxcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuJ10sIHtcclxuICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcclxuICAgICAgcXVlcnlQYXJhbXM6IHBhcmFtcyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VG9nZ2xlRmlsdGVycygpe1xyXG4gICAgdGhpcy5zYXZlZERlcEZpbHRlclZhbHVlID0gdGhpcy5zZWFyY2hGb3JtLmNvbnRyb2xzLmRlcEZpbGVzLnZhbHVlO1xyXG4gICAgdGhpcy5zYXZlZFBlcnNGaWx0ZXJWYWx1ZSA9IHRoaXMuc2VhcmNoRm9ybS5jb250cm9scy5wZXJzb25hbEZpbGVzLnZhbHVlO1xyXG4gICAgaWYoKHRoaXMuc2VhcmNoRm9ybS5jb250cm9scy5wZXJzb25hbEZpbGVzLnZhbHVlICYmIHRoaXMuc2VhcmNoRm9ybS5jb250cm9scy5kZXBGaWxlcy52YWx1ZSlcclxuICAgIHx8ICghdGhpcy5zZWFyY2hGb3JtLmNvbnRyb2xzLnBlcnNvbmFsRmlsZXMudmFsdWUgJiYgIXRoaXMuc2VhcmNoRm9ybS5jb250cm9scy5kZXBGaWxlcy52YWx1ZSkpe1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VhcmNoRm9ybS5jb250cm9scy5wZXJzb25hbEZpbGVzLnZhbHVlICYmICF0aGlzLnNlYXJjaEZvcm0uY29udHJvbHMuZGVwRmlsZXMudmFsdWUpIHtcclxuICAgICAgcmV0dXJuIFwicGVyc29uYWxGaWx0ZXJcIiA7XHJcblxyXG4gICAgfSBlbHNlIGlmICghdGhpcy5zZWFyY2hGb3JtLmNvbnRyb2xzLnBlcnNvbmFsRmlsZXMudmFsdWUgJiYgdGhpcy5zZWFyY2hGb3JtLmNvbnRyb2xzLmRlcEZpbGVzLnZhbHVlKSB7XHJcbiAgICAgIHJldHVyblwiZGVwYXJ0bWVudEZpbHRlclwiIDtcclxuXHJcbiAgICB9XHJcblxyXG5cclxuICB9XHJcblxyXG4gIHNldE9wdGlvblZhbHVlKHNlYXJjaGVkVGV4dCl7XHJcbiAgICB0aGlzLnNlYXJjaEZvcm0uZ2V0KCd0ZXh0Jykuc2V0VmFsdWUoc2VhcmNoZWRUZXh0KTtcclxuICAgIHRoaXMuc3VibWl0Rm9ybSgpO1xyXG4gIH1cclxuICBvbk9wZW5GaWx0ZXIoKSB7XHJcbiAgICB0aGlzLm9wZW5GaWx0ZXIgPSAhdGhpcy5vcGVuRmlsdGVyO1xyXG4gIH1cclxuXHJcbiAgYnJlYWtwb2ludCgpIHtcclxuICAgIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyXHJcbiAgICAgIC5vYnNlcnZlKFsnKG1pbi13aWR0aDogMTIwMHB4KSddKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0Lm1hdGNoZXMpIHtcclxuICAgICAgICAgIHRoaXMub3BlbkZpbHRlciA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwZXJmb3JtQWN0aW9uKGFjdGlvbil7XHJcbiAgICB0aGlzLmFjdGlvbk9uUm93LmVtaXQoYWN0aW9uKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaCh0ZXJtOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAgICAgLm9wZXJhdGlvbignU2VhcmNoLkN1c3RvbVN1Z2dlc3RlcnNMYXVuY2hlcicsIHtcclxuICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5lbnZpcm9ubWVudC5udXhlb30ke3RoaXMuZW52aXJvbm1lbnQuY3VzdG9tQXV0b21hdGlvbn1gLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAucGFyYW1zKHtcclxuICAgICAgICAgICAgICAgIHNlYXJjaFRlcm06IHRlcm1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmNvbnRleHQoe30pXHJcbiAgICAgICAgICAgIC5leGVjdXRlKClcclxuICAgICk7XHJcbn1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWN1c3RvbVJlc3BvbnNpdmVTdHlsZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJzZWFyY2gtdG9vbGJhciBkLW1kLWZsZXggZC14bC1ub25lIG14LTNcIj5cclxuICAgIDxidXR0b24gKGNsaWNrKT1cIm9uT3BlbkZpbHRlcigpXCIgY2xhc3M9XCJteS1idXR0b25cIj5cclxuICAgICAgPHNwYW4+IHt7IFwiRklMVEVSXCIgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgIDxpIGNsYXNzPVwiYmkgYmktZmlsdGVyXCIgKm5nSWY9XCIhb3BlbkZpbHRlclwiPjwvaT5cclxuICAgICAgPGkgY2xhc3M9XCJiaSBiaS14XCIgKm5nSWY9XCJvcGVuRmlsdGVyXCI+PC9pPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8ZGl2ICpuZ0lmPVwib3BlbkZpbHRlclwiPlxyXG4gICAgICA8aSBjbGFzcz1cImJpIGJpLWNhcmV0LXVwLWZpbGwgYXJyb3ctdXBcIj48L2k+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tUmVzcG9uc2l2ZVN0eWxlXCI+XHJcbiAgPGRpdiBjbGFzcz1cImN1c3RvbVN0eWxlIC1tdC0xMiBweC04IGZsZXggZmxleC1jb2xcIlxyXG4gICAgW25nQ2xhc3NdPVwieydiZy1hY2NlbnQtMjAwJzogdGhlbWUgPT09ICdkZ2RhJywnYmctYWNjZW50LTEwMCc6IHRoZW1lID09PSAna3NyZWxlaWYnIHx8IHRoZW1lID09PSAnY29tcHRlY2hjbyd9XCJcclxuICAgIFtAY29sbGFwc2VdPVwiIW9wZW5GaWx0ZXJcIj5cclxuICAgIDwhLS0gPGZvcm1cclxuICAgICAgICBbZm9ybUdyb3VwXT1cInNlYXJjaEZvcm1cIlxyXG4gICAgICAgIGNsYXNzPVwic2VhcmNoLWZvcm1cIlxyXG4gICAgICAgIChuZ1N1Ym1pdCk9XCJzdWJtaXRGb3JtKClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBjbGFzcz1cInNlYXJjaC1pbnB1dFwiXHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0ZXh0XCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInc2VhcmNoLnNlYXJjaCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGRpdiAoY2xpY2spPVwic3VibWl0Rm9ybSgpXCIgY2xhc3M9XCJzZWFyY2gtaWNvbiBiaSBiaS1zZWFyY2hcIj48L2Rpdj5cclxuICAgICAgPC9mb3JtPiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC14LTE4IGZsZXgtcm93IG10LTUgcGItMyBvdmVyZmxvdy14LWF1dG9cIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFnZ3JlZ2F0aW9uczsgZWxzZSBwcm9ncmVzc1NwaW5uZXJcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWdncmVnYXRpb25zLmxlbmd0aDsgZWxzZSBub0FnZ3JlZ2F0aW9uc1wiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWdncmVnYXRpb24gb2YgYWdncmVnYXRpb25zXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhZ2dyZWdhdGlvbi5idWNrZXRzLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICA8Y3RzLWR5bmFtaWMtZmlsdGVyIFtlbnRpdHlUeXBlXT1cImVudGl0eVR5cGVcIiBbZmlsdGVyc109XCJhZ2dyZWdhdGlvbi5idWNrZXRzXCIgW2lkXT1cImFnZ3JlZ2F0aW9uLmlkXCJcclxuICAgICAgICAgICAgICAgIFtzZWxlY3Rpb25zXT1cImFnZ3JlZ2F0aW9uLnNlbGVjdGlvblwiIFt0aXRsZV09XCJhZ2dyZWdhdGlvbi5maWVsZFwiIFtwcmVmaXhdPVwiJ3NlYXJjaCdcIiBbZGVwYXJ0bWVudF09XCJcclxuICAgICAgICAgICAgICAgICAgICBhZ2dyZWdhdGlvbi5maWVsZCA9PT0gJ2NvcnI6dG8nIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgYWdncmVnYXRpb24uZmllbGQgPT09ICdjb3JyOmZyb20nXHJcbiAgICAgICAgICAgICAgICAgIFwiIFtjb21wb25lbnRUeXBlXT1cImFnZ3JlZ2F0aW9uLmNvbXBvbmVudFR5cGUgPyBhZ2dyZWdhdGlvbi5jb21wb25lbnRUeXBlIDogJ2RlZnVsdCdcIlxyXG4gICAgICAgICAgICAgICAgW2N1c3RvbVBhZ2VQcm92aWRlcl09XCJhZ2dyZWdhdGlvbi5jdXN0b21QYWdlUHJvdmlkZXIgPyBhZ2dyZWdhdGlvbi5jdXN0b21QYWdlUHJvdmlkZXIgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICBbY29uZmlnXT1cImFnZ3JlZ2F0aW9uLmNvbmZpZyA/IGFnZ3JlZ2F0aW9uLmNvbmZpZyA6IHt9XCIgKG9uRmlsdGVyU2VsZWN0ZWQpPVwiRmlsdGVyU2VsZWN0ZWQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgIDwvY3RzLWR5bmFtaWMtZmlsdGVyPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxkaXYgY2xhc3M9XCJyb3cgd3JhcHBlclwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY3VzdG9tUmVzcG9uc2l2ZVN0eWxlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicG9wdXAtZmlsdGVyIHB4LTMgZC1mbGV4IGQteGwtbm9uZVwiICpuZ0lmPVwib3BlbkZpbHRlclwiPlxyXG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInNlYXJjaEZvcm1cIiBjbGFzcz1cInNlYXJjaC1mb3JtXCIgKG5nU3VibWl0KT1cInN1Ym1pdEZvcm0oKVwiPlxyXG4gICAgICAgIDxpbnB1dCBjbGFzcz1cInNlYXJjaC1pbnB1dFwiIHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwidGV4dFwiIFttYXRBdXRvY29tcGxldGVdPVwibWF0QXV0b2NvbXBsZXRlMVwiIFtwbGFjZWhvbGRlcl09XCInc2VhcmNoLnNlYXJjaCcgfCB0cmFuc2xhdGVcIiAvPlxyXG4gICAgICAgIDxkaXYgKGNsaWNrKT1cInN1Ym1pdEZvcm0oKVwiIGNsYXNzPVwic2VhcmNoLWljb24gYmkgYmktc2VhcmNoXCI+PC9kaXY+XHJcbiAgICAgIDwvZm9ybT5cclxuICAgICAgPG1hdC1hdXRvY29tcGxldGVcclxuICAgICAgY2xhc3M9XCJcclxuICAgICAgICAgYXV0by1jb21wbGV0ZS1pbmVyLXdyYXBwZXJcclxuICAgICAgICAgIGF1dG8tY29tcGxldGUtd3JhcHBlclxyXG4gICAgICBcIlxyXG4gICAgICBbZGlzYWJsZVJpcHBsZV09XCJ0cnVlXCJcclxuICAgICAgI21hdEF1dG9jb21wbGV0ZTE9XCJtYXRBdXRvY29tcGxldGVcIlxyXG4gID5cclxuICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgIGNsYXNzPVwibm8tdGV4dFwiXHJcbiAgICAgICAgICAqbmdJZj1cInJlc3VsdFNldHMgJiYgIXJlc3VsdFNldHMubGVuZ3RoXCJcclxuICAgICAgPlxyXG4gICAgICAgICAgTm8gcmVzdWx0cyBmb3VuZCFcclxuICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCByZXN1bHRTZXQgb2YgcmVzdWx0U2V0c1wiPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gIChjbGljayk9XCJzZXRPcHRpb25WYWx1ZShyZXN1bHRTZXQubGFiZWwpXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJvcHRpb24taW5lci10ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgPnt7IHJlc3VsdFNldC5sYWJlbCB9fTwvc3BhblxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgIDwvbWF0LW9wdGlvbiA+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhZ2dyZWdhdGlvbnM7IGVsc2UgcHJvZ3Jlc3NTcGlubmVyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFnZ3JlZ2F0aW9ucy5sZW5ndGg7IGVsc2Ugbm9BZ2dyZWdhdGlvbnNcIj5cclxuICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGFnZ3JlZ2F0aW9uIG9mIGFnZ3JlZ2F0aW9uc1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWdncmVnYXRpb24uYnVja2V0cy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgPGN0cy1keW5hbWljLWZpbHRlciBbZW50aXR5VHlwZV09XCJlbnRpdHlUeXBlXCIgW2ZpbHRlcnNdPVwiYWdncmVnYXRpb24uYnVja2V0c1wiIFtpZF09XCJhZ2dyZWdhdGlvbi5pZFwiXHJcbiAgICAgICAgICAgICAgICBbc2VsZWN0aW9uc109XCJhZ2dyZWdhdGlvbi5zZWxlY3Rpb25cIiBbdGl0bGVdPVwiYWdncmVnYXRpb24uZmllbGRcIiBbcHJlZml4XT1cIidzZWFyY2gnXCIgW2RlcGFydG1lbnRdPVwiXHJcbiAgICAgICAgICAgICAgICBhZ2dyZWdhdGlvbi5maWVsZCA9PT0gJ2NvcnI6dG8nIHx8XHJcbiAgICAgICAgICAgICAgICBhZ2dyZWdhdGlvbi5maWVsZCA9PT0gJ2NvcnI6ZnJvbSdcclxuICAgICAgICAgICAgICBcIiBbY29tcG9uZW50VHlwZV09XCJhZ2dyZWdhdGlvbi5jb21wb25lbnRUeXBlID8gYWdncmVnYXRpb24uY29tcG9uZW50VHlwZSA6ICdkZWZ1bHQnXCJcclxuICAgICAgICAgICAgICAgIFtjdXN0b21QYWdlUHJvdmlkZXJdPVwiYWdncmVnYXRpb24uY3VzdG9tUGFnZVByb3ZpZGVyID8gYWdncmVnYXRpb24uY3VzdG9tUGFnZVByb3ZpZGVyIDogJydcIlxyXG4gICAgICAgICAgICAgICAgW2NvbmZpZ109XCJhZ2dyZWdhdGlvbi5jb25maWcgPyBhZ2dyZWdhdGlvbi5jb25maWcgOiB7fVwiIChvbkZpbHRlclNlbGVjdGVkKT1cIkZpbHRlclNlbGVjdGVkKCRldmVudClcIj5cclxuICAgICAgICAgICAgICA8L2N0cy1keW5hbWljLWZpbHRlcj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImNvbC14bC0zIHNlYXJjaC1zaWRlTWVudSBkLW5vbmUgZC14bC1ibG9ja1wiPlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJzZWFyY2hGb3JtXCIgY2xhc3M9XCJzZWFyY2gtZm9ybVwiIChuZ1N1Ym1pdCk9XCJzdWJtaXRGb3JtKClcIj5cclxuICAgICAgPGlucHV0IGNsYXNzPVwic2VhcmNoLWlucHV0XCIgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJ0ZXh0XCIgW21hdEF1dG9jb21wbGV0ZV09XCJtYXRBdXRvY29tcGxldGUyXCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3NlYXJjaC5zZWFyY2gnIHwgdHJhbnNsYXRlXCIgLz5cclxuICAgICAgPGRpdiAoY2xpY2spPVwic3VibWl0Rm9ybSgpXCIgY2xhc3M9XCJzZWFyY2gtaWNvbiBiaSBiaS1zZWFyY2hcIj48L2Rpdj5cclxuICAgIDwvZm9ybT5cclxuICAgIDxtYXQtYXV0b2NvbXBsZXRlIGNsYXNzPVwiXHJcbiAgICAgICBhdXRvLWNvbXBsZXRlLWluZXItd3JhcHBlclxyXG4gICAgICAgIGF1dG8tY29tcGxldGUtd3JhcHBlclxyXG4gICAgXCIgW2Rpc2FibGVSaXBwbGVdPVwidHJ1ZVwiICNtYXRBdXRvY29tcGxldGUyPVwibWF0QXV0b2NvbXBsZXRlXCI+XHJcbiAgICAgIDxtYXQtb3B0aW9uIGNsYXNzPVwibm8tdGV4dFwiICpuZ0lmPVwicmVzdWx0U2V0cyAmJiAhcmVzdWx0U2V0cy5sZW5ndGhcIj5cclxuICAgICAgICBObyByZXN1bHRzIGZvdW5kIVxyXG4gICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHJlc3VsdFNldCBvZiByZXN1bHRTZXRzXCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKGNsaWNrKT1cInNldE9wdGlvblZhbHVlKHJlc3VsdFNldC5sYWJlbClcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3B0aW9uLWluZXItdGV4dFwiPnt7IHJlc3VsdFNldC5sYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFnZ3JlZ2F0aW9uczsgZWxzZSBwcm9ncmVzc1NwaW5uZXJcIj5cclxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgYWdncmVnYXRpb24gb2YgYWdncmVnYXRpb25zXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFnZ3JlZ2F0aW9uLmJ1Y2tldHMubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgPGN0cy1keW5hbWljLWZpbHRlciBbZW50aXR5VHlwZV09XCJlbnRpdHlUeXBlXCIgW2ZpbHRlcnNdPVwiYWdncmVnYXRpb24uYnVja2V0c1wiIFtpZF09XCJhZ2dyZWdhdGlvbi5pZFwiXHJcbiAgICAgICAgICAgIFtzZWxlY3Rpb25zXT1cImFnZ3JlZ2F0aW9uLnNlbGVjdGlvblwiIFt0aXRsZV09XCJhZ2dyZWdhdGlvbi5maWVsZFwiIFtwcmVmaXhdPVwiJ3NlYXJjaCdcIiBbZGVwYXJ0bWVudF09XCJcclxuICAgICAgICAgICAgICBhZ2dyZWdhdGlvbi5maWVsZCA9PT0gJ2NvcnI6dG8nIHx8XHJcbiAgICAgICAgICAgICAgYWdncmVnYXRpb24uZmllbGQgPT09ICdjb3JyOmZyb20nXHJcbiAgICAgICAgICAgIFwiIFtjb21wb25lbnRUeXBlXT1cImFnZ3JlZ2F0aW9uLmNvbXBvbmVudFR5cGUgPyBhZ2dyZWdhdGlvbi5jb21wb25lbnRUeXBlIDogJ2RlZnVsdCdcIlxyXG4gICAgICAgICAgICBbY3VzdG9tUGFnZVByb3ZpZGVyXT1cImFnZ3JlZ2F0aW9uLmN1c3RvbVBhZ2VQcm92aWRlciA/IGFnZ3JlZ2F0aW9uLmN1c3RvbVBhZ2VQcm92aWRlciA6ICcnXCJcclxuICAgICAgICAgICAgW2NvbmZpZ109XCJhZ2dyZWdhdGlvbi5jb25maWcgPyBhZ2dyZWdhdGlvbi5jb25maWcgOiB7fVwiIChvbkZpbHRlclNlbGVjdGVkKT1cIkZpbHRlclNlbGVjdGVkKCRldmVudClcIj5cclxuICAgICAgICAgIDwvY3RzLWR5bmFtaWMtZmlsdGVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC14bC05XCI+XHJcbiAgICA8YXBwLWNhcmQ+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxyXG4gICAgICAgIDxoMz5cclxuICAgICAgICAgIHt7IFwic2VhcmNoLmhlYWRlclwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9oMz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJib2R5XCI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImFnZ3JlZ2F0aW9uc1wiIGNsYXNzPVwidGFibGUtdG9vbGJhclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJlc3VsdC1jb3VudFwiPlxyXG4gICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgIFwic2VhcmNoLlwiICsgXCJyZXN1bHRzTnVtYmVyXCJcclxuICAgICAgICAgICAgICB8IHRyYW5zbGF0ZTogeyB2YWx1ZTogdG90YWxSZWNvcmRzID8gdG90YWxSZWNvcmRzIDogMCB9XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8Zm9ybSBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWJldHdlZW5cIiBbZm9ybUdyb3VwXT1cInNlYXJjaEZvcm1cIiAobmdTdWJtaXQpPVwic3VibWl0Rm9ybSgpXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInVzZVRvZ2dsZUZpbHRlcnMgJiYgIWN1c3RvbVJlc3BvbnNpdmVTdHlsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjdXN0b21SZXNwb25zaXZlU3R5bGVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtZm9ybSBjdXN0b20tcmVzcG9uc2l2ZS1zZWFyY2hcIj5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwic2VhcmNoLWlucHV0XCIgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJ0ZXh0XCIgW21hdEF1dG9jb21wbGV0ZV09XCJtYXRBdXRvY29tcGxldGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInc2VhcmNoLnNlYXJjaCcgfCB0cmFuc2xhdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJzdWJtaXRGb3JtKClcIiBjbGFzcz1cInNlYXJjaC1pY29uIGJpIGJpLXNlYXJjaFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJcclxuICAgICAgICAgICAgICAgICAgIGF1dG8tY29tcGxldGUtaW5lci13cmFwcGVyXHJcbiAgICAgICAgICAgICAgICAgICAgYXV0by1jb21wbGV0ZS13cmFwcGVyXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVSaXBwbGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAjbWF0QXV0b2NvbXBsZXRlPVwibWF0QXV0b2NvbXBsZXRlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5vLXRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicmVzdWx0U2V0cyAmJiAhcmVzdWx0U2V0cy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIE5vIHJlc3VsdHMgZm91bmQhXHJcbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCByZXN1bHRTZXQgb2YgcmVzdWx0U2V0c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICAoY2xpY2spPVwic2V0T3B0aW9uVmFsdWUocmVzdWx0U2V0LmxhYmVsKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJvcHRpb24taW5lci10ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyByZXN1bHRTZXQubGFiZWwgfX08L3NwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbiA+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCIgKm5nSWY9XCJ1c2VUb2dnbGVGaWx0ZXJzXCI+XHJcbiAgICAgICAgICAgICAgICA8Y3RzLWR5bmFtaWMtZm9ybS1zbGlkZS10b2dnbGVpdGVtIGNsYXNzPVwibXgtMiBzbWFsbC1mb250XCIgW2xhYmVsXT1cIidzZWFyY2guUEVSU09OQUxfRklMRVMnXCJcclxuICAgICAgICAgICAgICAgICAgKG9uVG9nZ2xlKT1cInN1Ym1pdEZvcm0oKVwiIGZvcm1Db250cm9sTmFtZT1cInBlcnNvbmFsRmlsZXNcIj5cclxuICAgICAgICAgICAgICAgIDwvY3RzLWR5bmFtaWMtZm9ybS1zbGlkZS10b2dnbGVpdGVtPlxyXG4gICAgICAgICAgICAgICAgPGN0cy1keW5hbWljLWZvcm0tc2xpZGUtdG9nZ2xlaXRlbSBjbGFzcz1cIm14LTIgc21hbGwtZm9udFwiIFtsYWJlbF09XCInc2VhcmNoLkRFUF9GSUxFUydcIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZXBGaWxlc1wiIChvblRvZ2dsZSk9XCJzdWJtaXRGb3JtKClcIj5cclxuICAgICAgICAgICAgICAgIDwvY3RzLWR5bmFtaWMtZm9ybS1zbGlkZS10b2dnbGVpdGVtPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8Y3RzLWR5bmFtaWMtdGFibGUgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCIgW2NvbHVtbnNdPVwiY29sdW1uc1wiIFtyZXNwb25zaXZlQ29sdW1uc109XCJyZXNwb25zaXZlQ29sdW1uc1wiXHJcbiAgICAgICAgICBbcGFnZVByb3ZpZGVyXT1cInBhZ2VQcm92aWRlclwiIFtxdWlja0ZpbHRlcl09XCJmaWx0ZXJcIiBbZW50aXR5VHlwZV09XCJlbnRpdHlUeXBlXCIgW2ZpZWxkc109XCJmaWVsZHNcIlxyXG4gICAgICAgICAgW3F1ZXJ5UGFyYW1dPVwicXVlcnlQYXJhbXNcIiBbaGVhZGVyc109XCJoZWFkZXJzXCIgW3ByZWZpeF09XCJwcmVmaXhcIiBbc29ydGluZ0J5XT1cInNvcnRpbmdCeVwiIFtpc1NlYXJjaFBhZ2VdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAob25Sb3dTZWxlY3RlZCk9XCJvblJvd1NlbGVjdGVkKCRldmVudClcIiAoYWN0aW9uT25Sb3cpPVwicGVyZm9ybUFjdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChvbkdldHRpbmdEYXRhKT1cImdldFRhYmxlRGF0YSgkZXZlbnQpXCI+PC9jdHMtZHluYW1pYy10YWJsZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2FwcC1jYXJkPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bmctdGVtcGxhdGUgI3Byb2dyZXNzU3Bpbm5lcj5cclxuICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy1zcGlubmVyXCI+XHJcbiAgICAgIDxtYXQtc3Bpbm5lciBjb2xvcj1cIndhcm5cIiBbZGlhbWV0ZXJdPVwiMjVcIj48L21hdC1zcGlubmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8bmctdGVtcGxhdGUgI25vQWdncmVnYXRpb25zPlxyXG4gICAgPGRpdiBjbGFzcz1cInByb2dyZXNzLXNwaW5uZXJcIj5cclxuICAgICAge3sgXCJzZWFyY2gubm9BZ2dyZWdhdGlvbnNcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9kaXY+Il19
|
|
@@ -8,6 +8,7 @@ import { DynamicFilterModule } from '../dynamic-filter/dynamic-filter.module';
|
|
|
8
8
|
import { DynamicFormModule } from '../dynamic-form/dynamic-form.module';
|
|
9
9
|
import { DynamicTableModule } from '../dynamic-table/dynamic-table.module';
|
|
10
10
|
import { DynamicSearchComponent } from './dynamic-search/dynamic-search.component';
|
|
11
|
+
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
12
13
|
/**
|
|
13
14
|
* @title
|
|
@@ -15,28 +16,30 @@ import * as i0 from "@angular/core";
|
|
|
15
16
|
*/
|
|
16
17
|
export class DynamicSearchModule {
|
|
17
18
|
}
|
|
18
|
-
DynamicSearchModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
19
|
-
DynamicSearchModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.
|
|
19
|
+
DynamicSearchModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DynamicSearchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
20
|
+
DynamicSearchModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DynamicSearchModule, declarations: [DynamicSearchComponent], imports: [CommonModule,
|
|
20
21
|
CardModule,
|
|
21
22
|
DynamicTableModule,
|
|
22
23
|
DynamicFilterModule,
|
|
23
24
|
DynamicFormModule,
|
|
24
25
|
ReactiveFormsModule,
|
|
26
|
+
MatAutocompleteModule,
|
|
25
27
|
FormsModule,
|
|
26
28
|
TranslateModule,
|
|
27
29
|
MatProgressSpinnerModule], exports: [DynamicSearchComponent] });
|
|
28
|
-
DynamicSearchModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.
|
|
30
|
+
DynamicSearchModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DynamicSearchModule, imports: [[
|
|
29
31
|
CommonModule,
|
|
30
32
|
CardModule,
|
|
31
33
|
DynamicTableModule,
|
|
32
34
|
DynamicFilterModule,
|
|
33
35
|
DynamicFormModule,
|
|
34
36
|
ReactiveFormsModule,
|
|
37
|
+
MatAutocompleteModule,
|
|
35
38
|
FormsModule,
|
|
36
39
|
TranslateModule,
|
|
37
40
|
MatProgressSpinnerModule,
|
|
38
41
|
]] });
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DynamicSearchModule, decorators: [{
|
|
40
43
|
type: NgModule,
|
|
41
44
|
args: [{
|
|
42
45
|
declarations: [DynamicSearchComponent],
|
|
@@ -47,6 +50,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
47
50
|
DynamicFilterModule,
|
|
48
51
|
DynamicFormModule,
|
|
49
52
|
ReactiveFormsModule,
|
|
53
|
+
MatAutocompleteModule,
|
|
50
54
|
FormsModule,
|
|
51
55
|
TranslateModule,
|
|
52
56
|
MatProgressSpinnerModule,
|
|
@@ -54,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
54
58
|
exports: [DynamicSearchComponent],
|
|
55
59
|
}]
|
|
56
60
|
}] });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1zZWFyY2gubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLXNlYXJjaC9keW5hbWljLXNlYXJjaC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFvQyxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUV6Rzs7O0dBR0c7QUFpQkgsTUFBTSxPQUFPLG1CQUFtQjs7Z0hBQW5CLG1CQUFtQjtpSEFBbkIsbUJBQW1CLGlCQWZmLHNCQUFzQixhQUVuQyxZQUFZO1FBQ1osVUFBVTtRQUNWLGtCQUFrQjtRQUNsQixtQkFBbUI7UUFDbkIsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQixxQkFBcUI7UUFDckIsV0FBVztRQUNYLGVBQWU7UUFDZix3QkFBd0IsYUFFaEIsc0JBQXNCO2lIQUVyQixtQkFBbUIsWUFkckI7WUFDUCxZQUFZO1lBQ1osVUFBVTtZQUNWLGtCQUFrQjtZQUNsQixtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLG1CQUFtQjtZQUNuQixxQkFBcUI7WUFDckIsV0FBVztZQUNYLGVBQWU7WUFDZix3QkFBd0I7U0FDekI7MkZBR1UsbUJBQW1CO2tCQWhCL0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDdEMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osVUFBVTt3QkFDVixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLHFCQUFxQjt3QkFDckIsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLHdCQUF3QjtxQkFDekI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQ2FyZE1vZHVsZSB9IGZyb20gJy4uL2NhcmQvY2FyZC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBEeW5hbWljRmlsdGVyTW9kdWxlIH0gZnJvbSAnLi4vZHluYW1pYy1maWx0ZXIvZHluYW1pYy1maWx0ZXIubW9kdWxlJztcclxuaW1wb3J0IHsgRHluYW1pY0Zvcm1Nb2R1bGUgfSBmcm9tICcuLi9keW5hbWljLWZvcm0vZHluYW1pYy1mb3JtLm1vZHVsZSc7XHJcbmltcG9ydCB7IER5bmFtaWNUYWJsZU1vZHVsZSB9IGZyb20gJy4uL2R5bmFtaWMtdGFibGUvZHluYW1pYy10YWJsZS5tb2R1bGUnO1xyXG5pbXBvcnQgeyBEeW5hbWljU2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLXNlYXJjaC9keW5hbWljLXNlYXJjaC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNQVRfQVVUT0NPTVBMRVRFX1NDUk9MTF9TVFJBVEVHWSwgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuXHJcbi8qKlxyXG4gKiBAdGl0bGVcclxuICogRHluYW1pYyBTZWFyY2ggTW9kdWxlXHJcbiAqL1xyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW0R5bmFtaWNTZWFyY2hDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIENhcmRNb2R1bGUsXHJcbiAgICBEeW5hbWljVGFibGVNb2R1bGUsXHJcbiAgICBEeW5hbWljRmlsdGVyTW9kdWxlLFxyXG4gICAgRHluYW1pY0Zvcm1Nb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXHJcbiAgXSxcclxuICBleHBvcnRzOiBbRHluYW1pY1NlYXJjaENvbXBvbmVudF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljU2VhcmNoTW9kdWxlIHt9XHJcbiJdfQ==
|