@mediusinc/mng-commons 0.21.0-rc.2 → 0.21.0

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.
Files changed (81) hide show
  1. package/assets/i18n/en.json +2 -19
  2. package/assets/i18n/sl.json +1 -18
  3. package/esm2020/lib/api/services/crud-api.abstract.service.mjs +2 -9
  4. package/esm2020/lib/api/services/get-all-api.abstract.service.mjs +2 -9
  5. package/esm2020/lib/components/action/action.component.mjs +8 -12
  6. package/esm2020/lib/components/action/editor/action-editor.component.mjs +3 -22
  7. package/esm2020/lib/components/action/index.mjs +1 -2
  8. package/esm2020/lib/components/action/models/action-execution.model.mjs +1 -5
  9. package/esm2020/lib/components/action/models/index.mjs +1 -2
  10. package/esm2020/lib/components/form/date-range/date-range.component.mjs +3 -3
  11. package/esm2020/lib/components/form/editor/form-editor.component.mjs +11 -35
  12. package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +3 -3
  13. package/esm2020/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +4 -68
  14. package/esm2020/lib/components/tableview/route/tableview-route.abstract.component.mjs +1 -8
  15. package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +3 -3
  16. package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +8 -9
  17. package/esm2020/lib/components/tableview/table/table.component.mjs +7 -11
  18. package/esm2020/lib/data-providers/editor.data-provider.mjs +1 -1
  19. package/esm2020/lib/data-providers/table.data-provider.mjs +2 -2
  20. package/esm2020/lib/data-providers/tableview-crud.data-provider.mjs +3 -3
  21. package/esm2020/lib/data-providers/tableview.data-provider.mjs +16 -2
  22. package/esm2020/lib/descriptors/action.descriptor.mjs +2 -9
  23. package/esm2020/lib/descriptors/column.descriptor.mjs +1 -20
  24. package/esm2020/lib/descriptors/editor.descriptor.mjs +1 -40
  25. package/esm2020/lib/descriptors/field.descriptor.mjs +2 -44
  26. package/esm2020/lib/descriptors/table.descriptor.mjs +1 -19
  27. package/esm2020/lib/descriptors/tableview.descriptor.mjs +4 -24
  28. package/esm2020/lib/directives/component.directive.mjs +2 -2
  29. package/esm2020/lib/mng-commons.module.mjs +7 -11
  30. package/esm2020/lib/models/config.model.mjs +1 -1
  31. package/esm2020/lib/pipes/index.mjs +1 -2
  32. package/esm2020/lib/services/action-executor.service.mjs +1 -1
  33. package/esm2020/lib/services/commons.service.mjs +1 -27
  34. package/esm2020/lib/services/configuration.service.mjs +19 -4
  35. package/esm2020/lib/utils/action-data-provider.util.mjs +2 -2
  36. package/esm2020/lib/utils/editor-formly.util.mjs +1 -10
  37. package/esm2020/lib/utils/notification.util.mjs +1 -6
  38. package/esm2020/lib/utils/tableview.util.mjs +2 -2
  39. package/fesm2015/mediusinc-mng-commons.mjs +4192 -4544
  40. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
  41. package/fesm2020/mediusinc-mng-commons.mjs +4190 -4536
  42. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
  43. package/lib/api/services/crud-api.abstract.service.d.ts +2 -2
  44. package/lib/api/services/get-all-api.abstract.service.d.ts +2 -2
  45. package/lib/components/action/action.component.d.ts +3 -5
  46. package/lib/components/action/index.d.ts +0 -1
  47. package/lib/components/action/models/action-execution.model.d.ts +2 -4
  48. package/lib/components/action/models/index.d.ts +0 -1
  49. package/lib/components/form/editor/form-editor.component.d.ts +1 -8
  50. package/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +1 -6
  51. package/lib/components/tableview/route/tableview-route.abstract.component.d.ts +0 -1
  52. package/lib/components/tableview/table/table.component.d.ts +3 -4
  53. package/lib/data-providers/editor.data-provider.d.ts +4 -4
  54. package/lib/data-providers/table.data-provider.d.ts +5 -5
  55. package/lib/data-providers/tableview.data-provider.d.ts +11 -7
  56. package/lib/descriptors/action.descriptor.d.ts +4 -8
  57. package/lib/descriptors/column.descriptor.d.ts +0 -5
  58. package/lib/descriptors/editor.descriptor.d.ts +0 -21
  59. package/lib/descriptors/field.descriptor.d.ts +0 -10
  60. package/lib/descriptors/table.descriptor.d.ts +0 -6
  61. package/lib/descriptors/tableview.descriptor.d.ts +0 -7
  62. package/lib/mng-commons.module.d.ts +42 -44
  63. package/lib/models/config.model.d.ts +0 -1
  64. package/lib/pipes/index.d.ts +0 -1
  65. package/lib/services/commons.service.d.ts +0 -5
  66. package/lib/services/configuration.service.d.ts +9 -2
  67. package/lib/utils/notification.util.d.ts +0 -1
  68. package/{mediusinc-mng-commons-0.21.0-rc.2.tgz → mediusinc-mng-commons-0.21.0.tgz} +0 -0
  69. package/openapi/templates/model.mustache +1 -1
  70. package/package.json +1 -1
  71. package/scss/mng-overrides/_theme_datatable.scss +0 -6
  72. package/scss/mng-overrides/_theme_forms.scss +0 -8
  73. package/scss/mng-overrides/_theme_styles.scss +1 -0
  74. package/scss/mng-overrides/_theme_toast.scss +3 -0
  75. package/version-info.json +4 -4
  76. package/esm2020/lib/components/action/localization/data-language-dropdown.component.mjs +0 -45
  77. package/esm2020/lib/components/action/models/action-component.model.mjs +0 -2
  78. package/esm2020/lib/pipes/mngLocaleDefaultRowClass.pipe.mjs +0 -26
  79. package/lib/components/action/localization/data-language-dropdown.component.d.ts +0 -25
  80. package/lib/components/action/models/action-component.model.d.ts +0 -15
  81. package/lib/pipes/mngLocaleDefaultRowClass.pipe.d.ts +0 -10
@@ -8,7 +8,6 @@ import { ActionDeleteDescriptor, ActionDescriptor, ActionEditorAddDescriptor, Ac
8
8
  import { ActionPositionEnum } from '../../../descriptors/types';
9
9
  import { StyleLevelEnum, StyleSizeEnum } from '../../../styles/models';
10
10
  import { ActionDataProviderUtil } from '../../../utils';
11
- import { MngDataLanguageDropdownComponent } from '../../action/localization/data-language-dropdown.component';
12
11
  import { TableviewActionDefaultCategories } from '../../action/models';
13
12
  import * as i0 from "@angular/core";
14
13
  export class AMngTableviewRouteComponent {
@@ -31,7 +30,6 @@ export class AMngTableviewRouteComponent {
31
30
  this.createActionDescriptorForDelete(),
32
31
  this.createActionDescriptorForRefresh(),
33
32
  this.createActionDescriptorForExport(),
34
- this.createActionDescriptorForDataTranslate(),
35
33
  //details actions
36
34
  this.createActionDescriptorForDetailsEditLink(),
37
35
  this.createActionDescriptorForDetailsDelete()
@@ -108,15 +106,10 @@ export class AMngTableviewRouteComponent {
108
106
  action.button.withIcon('pi pi-refresh').styleClass.withActionLevel(StyleLevelEnum.Secondary);
109
107
  return action;
110
108
  }
111
- createActionDescriptorForDataTranslate(descriptor = this.descriptor.model) {
112
- return this.descriptor.isLocalized()
113
- ? new ActionDescriptor(descriptor, 'translator').withPosition(ActionPositionEnum.ToolbarLeft).withComponent(MngDataLanguageDropdownComponent)
114
- : null;
115
- }
116
109
  }
117
110
  AMngTableviewRouteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: AMngTableviewRouteComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
118
111
  AMngTableviewRouteComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.0", type: AMngTableviewRouteComponent, ngImport: i0 });
119
112
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: AMngTableviewRouteComponent, decorators: [{
120
113
  type: Directive
121
114
  }], ctorParameters: function () { return []; } });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LXJvdXRlLmFic3RyYWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXZpZXcvcm91dGUvdGFibGV2aWV3LXJvdXRlLmFic3RyYWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBRXpGLE9BQU8sRUFDSCxzQkFBc0IsRUFDdEIsZ0JBQWdCLEVBQ2hCLHlCQUF5QixFQUN6Qiw2QkFBNkIsRUFDN0IsMEJBQTBCLEVBQzFCLG9CQUFvQixFQUl2QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRzlELE9BQU8sRUFBQyxjQUFjLEVBQUUsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDNUcsT0FBTyxFQUFnQixnQ0FBZ0MsRUFBQyxNQUFNLHFCQUFxQixDQUFDOztBQUdwRixNQUFNLE9BQWdCLDJCQUEyQjtJQU83QztRQUNJLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lB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LFdBQVcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxnQ0FBZ0MsQ0FBQztZQUNoSixDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2YsQ0FBQzs7d0hBdElpQiwyQkFBMkI7NEdBQTNCLDJCQUEyQjsyRkFBM0IsMkJBQTJCO2tCQURoRCxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIE9uSW5pdCwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCAqIGFzIEZpbGVTYXZlciBmcm9tICdmaWxlLXNhdmVyJztcbmltcG9ydCB7b2YsIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge01lZGl1c1F1ZXJ5UGFyYW1CdWlsZGVyfSBmcm9tICcuLi8uLi8uLi9hcGkvbW9kZWxzL2J1aWxkZXJzL3F1ZXJ5LXBhcmFtLmJ1aWxkZXInO1xuaW1wb3J0IHtJVGFibGV2aWV3RGF0YVByb3ZpZGVyfSBmcm9tICcuLi8uLi8uLi9kYXRhLXByb3ZpZGVycyc7XG5pbXBvcnQge1xuICAgIEFjdGlvbkRlbGV0ZURlc2NyaXB0b3IsXG4gICAgQWN0aW9uRGVzY3JpcHRvcixcbiAgICBBY3Rpb25FZGl0b3JBZGREZXNjcmlwdG9yLFxuICAgIEFjdGlvbkVkaXRvckRldGFpbHNEZXNjcmlwdG9yLFxuICAgIEFjdGlvbkVkaXRvckVkaXREZXNjcmlwdG9yLFxuICAgIEFjdGlvbkxpbmtEZXNjcmlwdG9yLFxuICAgIEVkaXRvckRlc2NyaXB0b3IsXG4gICAgTW9kZWxEZXNjcmlwdG9yLFxuICAgIFRhYmxldmlld0Rlc2NyaXB0b3Jcbn0gZnJvbSAnLi4vLi4vLi4vZGVzY3JpcHRvcnMnO1xuaW1wb3J0IHtBY3Rpb25Qb3NpdGlvbkVudW19IGZyb20gJy4uLy4uLy4uL2Rlc2NyaXB0b3JzL3R5cGVzJztcbmltcG9ydCB7SVZpZXdDb250YWluZXJFZGl0b3IsIElWaWV3Q29udGFpbmVyVGFibGV9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQge01uZ1JvdXRlckRhdGF9IGZyb20gJy4uLy4uLy4uL3JvdXRlci9tb2RlbHMnO1xuaW1wb3J0IHtTdHlsZUxldmVsRW51bSwgU3R5bGVTaXplRW51bX0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL21vZGVscyc7XG5pbXBvcnQge0FjdGlvbkRhdGFQcm92aWRlclV0aWx9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7TW5nRGF0YUxhbmd1YWdlRHJvcGRvd25Db21wb25lbnR9IGZyb20gJy4uLy4uL2FjdGlvbi9sb2NhbGl6YXRpb24vZGF0YS1sYW5ndWFnZS1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHtBY3Rpb25Db250ZXh0LCBUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllc30gZnJvbSAnLi4vLi4vYWN0aW9uL21vZGVscyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudDxULCBTPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHVibGljIGRlc2NyaXB0b3IhOiBUYWJsZXZpZXdEZXNjcmlwdG9yPFQ+O1xuICAgIHB1YmxpYyBkYXRhUHJvdmlkZXIhOiBJVGFibGV2aWV3RGF0YVByb3ZpZGVyPFQsIFM+O1xuICAgIHB1YmxpYyBhY3Rpb25zITogQXJyYXk8QWN0aW9uRGVzY3JpcHRvcjxUPj47XG5cbiAgICBwcm90ZWN0ZWQgcm91dGU6IEFjdGl2YXRlZFJvdXRlO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMucm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgcm91dGVEYXRhKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhIGFzIE1uZ1JvdXRlckRhdGE7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmRlc2NyaXB0b3IgPSB0aGlzLmNyZWF0ZVRhYmxldmlld0Rlc2NyaXB0b3IoKTtcbiAgICAgICAgdGhpcy5kYXRhUHJvdmlkZXIgPSB0aGlzLmNyZWF0ZVRhYmxldmlld0RhdGFQcm92aWRlcigpO1xuICAgICAgICB0aGlzLmFjdGlvbnMgPSB0aGlzLmNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JzKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZVRhYmxldmlld0Rlc2NyaXB0b3IoKTogVGFibGV2aWV3RGVzY3JpcHRvcjxUPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBjcmVhdGVUYWJsZXZpZXdEYXRhUHJvdmlkZXIoKTogSVRhYmxldmlld0RhdGFQcm92aWRlcjxULCBTPjtcblxuICAgIHByb3RlY3RlZCBjcmVhdGVBY3Rpb25EZXNjcmlwdG9ycygpOiBBcnJheTxBY3Rpb25EZXNjcmlwdG9yPFQ+PiB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JGb3JEZXRhaWxzKCksXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JGb3JBZGQoKSxcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlQWN0aW9uRGVzY3JpcHRvckZvckVkaXQoKSxcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlQWN0aW9uRGVzY3JpcHRvckZvckRlbGV0ZSgpLFxuICAgICAgICAgICAgdGhpcy5jcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yUmVmcmVzaCgpLFxuICAgICAgICAgICAgdGhpcy5jcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yRXhwb3J0KCksXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JGb3JEYXRhVHJhbnNsYXRlKCksXG5cbiAgICAgICAgICAgIC8vZGV0YWlscyBhY3Rpb25zXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JGb3JEZXRhaWxzRWRpdExpbmsoKSxcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlQWN0aW9uRGVzY3JpcHRvckZvckRldGFpbHNEZWxldGUoKVxuICAgICAgICBdLmZpbHRlcihlID0+IGUgIT0gbnVsbCkgYXMgQXJyYXk8QWN0aW9uRGVzY3JpcHRvcjxUPj47XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JGb3JEZXRhaWxzKGRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3I8VD4gPSB0aGlzLmRlc2NyaXB0b3IuZGV0YWlsc0VkaXRvcik6IEFjdGlvbkVkaXRvckRldGFpbHNEZXNjcmlwdG9yPFQ+IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiAhdGhpcy5yb3V0ZURhdGEudGFibGV2aWV3QWN0aW9ucyB8fCB0aGlzLnJvdXRlRGF0YS50YWJsZXZpZXdBY3Rpb25zLmhhc0RldGFpbHMgPyBuZXcgQWN0aW9uRWRpdG9yRGV0YWlsc0Rlc2NyaXB0b3IoZGVzY3JpcHRvcikgOiBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yQWRkKGRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3I8VD4gPSB0aGlzLmRlc2NyaXB0b3IuYWRkRWRpdG9yKTogQWN0aW9uRWRpdG9yQWRkRGVzY3JpcHRvcjxUPiB8IG51bGwge1xuICAgICAgICByZXR1cm4gIXRoaXMucm91dGVEYXRhLnRhYmxldmlld0FjdGlvbnMgfHwgdGhpcy5yb3V0ZURhdGEudGFibGV2aWV3QWN0aW9ucy5oYXNBZGQgPyBuZXcgQWN0aW9uRWRpdG9yQWRkRGVzY3JpcHRvcihkZXNjcmlwdG9yKSA6IG51bGw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JGb3JFZGl0KGRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3I8VD4gPSB0aGlzLmRlc2NyaXB0b3IuZWRpdEVkaXRvcik6IEFjdGlvbkVkaXRvckVkaXREZXNjcmlwdG9yPFQ+IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiAhdGhpcy5yb3V0ZURhdGEudGFibGV2aWV3QWN0aW9ucyB8fCB0aGlzLnJvdXRlRGF0YS50YWJsZXZpZXdBY3Rpb25zLmhhc0VkaXQgPyBuZXcgQWN0aW9uRWRpdG9yRWRpdERlc2NyaXB0b3IoZGVzY3JpcHRvcikgOiBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yRGV0YWlsc0VkaXRMaW5rKGRlc2NyaXB0b3I6IE1vZGVsRGVzY3JpcHRvcjxUPiA9IHRoaXMuZGVzY3JpcHRvci5tb2RlbCk6IEFjdGlvbkxpbmtEZXNjcmlwdG9yPFQ+IHwgbnVsbCB7XG4gICAgICAgIGlmICghdGhpcy5yb3V0ZURhdGEudGFibGV2aWV3QWN0aW9ucyB8fCB0aGlzLnJvdXRlRGF0YS50YWJsZXZpZXdBY3Rpb25zLmhhc0VkaXQpIHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBBY3Rpb25MaW5rRGVzY3JpcHRvcihkZXNjcmlwdG9yLCBBY3Rpb25FZGl0b3JFZGl0RGVzY3JpcHRvci5BQ1RJT05fTkFNRSlcbiAgICAgICAgICAgICAgICAud2l0aFRhYmxldmlld0NhdGVnb3J5KFRhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkVESVQpXG4gICAgICAgICAgICAgICAgLndpdGhQb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXMoW1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkRFVEFJTFNdKVxuICAgICAgICAgICAgICAgIC53aXRoUG9zaXRpb24oQWN0aW9uUG9zaXRpb25FbnVtLkZvb3RlckxlZnQpXG4gICAgICAgICAgICAgICAgLndpdGhSb3V0ZXJMaW5rKCcuL2VkaXQnKTtcbiAgICAgICAgICAgIGFjdGlvbi5idXR0b24uc3R5bGVDbGFzcy53aXRoQWN0aW9uTGV2ZWwoU3R5bGVMZXZlbEVudW0uU2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIGFjdGlvbi5idXR0b24ud2l0aEljb24oJ3BpIHBpLXBlbmNpbCcpO1xuXG4gICAgICAgICAgICByZXR1cm4gYWN0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JGb3JEZXRhaWxzRGVsZXRlKGRlc2NyaXB0b3I6IE1vZGVsRGVzY3JpcHRvcjxUPiA9IHRoaXMuZGVzY3JpcHRvci5tb2RlbCk6IEFjdGlvbkRlc2NyaXB0b3I8VD4gfCBudWxsIHtcbiAgICAgICAgY29uc3QgYWN0aW9uID0gdGhpcy5jcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yRGVsZXRlKCk7XG4gICAgICAgIGlmIChhY3Rpb24pIHtcbiAgICAgICAgICAgIGFjdGlvblxuICAgICAgICAgICAgICAgIC53aXRoVGFibGV2aWV3Q2F0ZWdvcnkoVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuREVMRVRFKVxuICAgICAgICAgICAgICAgIC53aXRoUG9zaXRpb25UYWJsZXZpZXdDYXRlZ29yaWVzKFtUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERVRBSUxTXSlcbiAgICAgICAgICAgICAgICAud2l0aFBvc2l0aW9uKEFjdGlvblBvc2l0aW9uRW51bS5Gb290ZXJMZWZ0KVxuICAgICAgICAgICAgICAgIC53aXRoUnVuRnVuY3Rpb24oY3R4ID0+XG4gICAgICAgICAgICAgICAgICAgIEFjdGlvbkRhdGFQcm92aWRlclV0aWwucnVuRGVsZXRlT3JGYWlsKGN0eCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN0eC5wYXJhbWV0ZXJzLnZpZXdDb250YWluZXIgYXMgSVZpZXdDb250YWluZXJUYWJsZTx1bmtub3duLCB1bmtub3duPik/LnJlbG9hZFRhYmxlPy4oe30pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjdHgucGFyYW1ldGVycy52aWV3Q29udGFpbmVyIGFzIElWaWV3Q29udGFpbmVyRWRpdG9yPHVua25vd24sIHVua25vd24+KT8uY2xvc2VFZGl0b3I/LigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBhY3Rpb24uYnV0dG9uLndpdGhMYWJlbCh1bmRlZmluZWQpO1xuICAgICAgICAgICAgYWN0aW9uLmJ1dHRvbi5zdHlsZUNsYXNzLndpdGhTaXplKFN0eWxlU2l6ZUVudW0uTm9ybWFsKTtcblxuICAgICAgICAgICAgcmV0dXJuIGFjdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yRGVsZXRlKGRlc2NyaXB0b3I6IE1vZGVsRGVzY3JpcHRvcjxUPiA9IHRoaXMuZGVzY3JpcHRvci5tb2RlbCk6IEFjdGlvbkRlbGV0ZURlc2NyaXB0b3I8VD4gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnJvdXRlRGF0YS50YWJsZXZpZXdBY3Rpb25zIHx8IHRoaXMucm91dGVEYXRhLnRhYmxldmlld0FjdGlvbnMuaGFzRGVsZXRlID8gbmV3IEFjdGlvbkRlbGV0ZURlc2NyaXB0b3IoZGVzY3JpcHRvcikgOiBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yRXhwb3J0KGRlc2NyaXB0b3I6IE1vZGVsRGVzY3JpcHRvcjxUPiA9IHRoaXMuZGVzY3JpcHRvci5tb2RlbCk6IEFjdGlvbkRlc2NyaXB0b3I8VD4gfCBudWxsIHtcbiAgICAgICAgY29uc3QgYWN0aW9uID0gbmV3IEFjdGlvbkRlc2NyaXB0b3IoZGVzY3JpcHRvciwgJ2V4cG9ydCcpXG4gICAgICAgICAgICAud2l0aFJ1bkZ1bmN0aW9uKGN0eCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcXVlcnlQYXJhbUJ1aWxkZXIgPSBjdHgucGFyYW1ldGVycy5xdWVyeVBhcmFtID8gTWVkaXVzUXVlcnlQYXJhbUJ1aWxkZXIuY3JlYXRlRnJvbUV4aXN0aW5nKGN0eC5wYXJhbWV0ZXJzLnF1ZXJ5UGFyYW0pIDogTWVkaXVzUXVlcnlQYXJhbUJ1aWxkZXIuY3JlYXRlKCk7XG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbUJ1aWxkZXIud2l0aEl0ZW1zT2Zmc2V0KDApLndpdGhJdGVtc1BlclBhZ2UoNTAwKTtcbiAgICAgICAgICAgICAgICBjdHgucGFyYW1ldGVycy53aXRoUXVlcnlQYXJhbShxdWVyeVBhcmFtQnVpbGRlci5idWlsZCgpKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gQWN0aW9uRGF0YVByb3ZpZGVyVXRpbC5ydW5HZXRBbGxPckZhaWwoY3R4KS5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtYXAocmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkocmVzLnBhZ2VEYXRhLCB1bmRlZmluZWQsIDQpXSwge3R5cGU6ICdhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTgnfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0eXBlTmFtZSA9IGN0eC5pbnN0YW5jZS5hY3Rpb24ubW9kZWw/LnR5cGVOYW1lID8/ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgRmlsZVNhdmVyLnNhdmVBcyhibG9iLCBgJHt0eXBlTmFtZSA/IHR5cGVOYW1lICsgJ18nIDogJyd9JHtjdHguaW5zdGFuY2UuYWN0aW9uLmFjdGlvbk5hbWV9Lmpzb25gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9uKEFjdGlvblBvc2l0aW9uRW51bS5Ub29sYmFyUmlnaHQpO1xuICAgICAgICBhY3Rpb24uYnV0dG9uLndpdGhJY29uKCdwaSBwaS11cGxvYWQnKTtcbiAgICAgICAgcmV0dXJuIGFjdGlvbjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlQWN0aW9uRGVzY3JpcHRvckZvclJlZnJlc2goZGVzY3JpcHRvcjogTW9kZWxEZXNjcmlwdG9yPFQ+ID0gdGhpcy5kZXNjcmlwdG9yLm1vZGVsKTogQWN0aW9uRGVzY3JpcHRvcjxUPiB8IG51bGwge1xuICAgICAgICBjb25zdCBhY3Rpb24gPSBuZXcgQWN0aW9uRGVzY3JpcHRvcjxUPihkZXNjcmlwdG9yLCAncmVmcmVzaCcpXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9uKEFjdGlvblBvc2l0aW9uRW51bS5Ub29sYmFyUmlnaHQpXG4gICAgICAgICAgICAud2l0aFRhYmxldmlld0NhdGVnb3J5KFRhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLlJFQUQpXG4gICAgICAgICAgICAud2l0aFJ1bk5vdGlmaWNhdGlvblN1Y2Nlc3ModW5kZWZpbmVkLCB1bmRlZmluZWQsIGZhbHNlKVxuICAgICAgICAgICAgLndpdGhSdW5GdW5jdGlvbigoY3R4OiBBY3Rpb25Db250ZXh0PFQsIFM+KSA9PiB7XG4gICAgICAgICAgICAgICAgKGN0eC5wYXJhbWV0ZXJzLnZpZXdDb250YWluZXIgYXMgSVZpZXdDb250YWluZXJUYWJsZTxULCBTPik/LnJlbG9hZFRhYmxlPy4oe30pO1xuICAgICAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICBhY3Rpb24uYnV0dG9uLndpdGhJY29uKCdwaSBwaS1yZWZyZXNoJykuc3R5bGVDbGFzcy53aXRoQWN0aW9uTGV2ZWwoU3R5bGVMZXZlbEVudW0uU2Vjb25kYXJ5KTtcbiAgICAgICAgcmV0dXJuIGFjdGlvbjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlQWN0aW9uRGVzY3JpcHRvckZvckRhdGFUcmFuc2xhdGUoZGVzY3JpcHRvcjogTW9kZWxEZXNjcmlwdG9yPFQ+ID0gdGhpcy5kZXNjcmlwdG9yLm1vZGVsKTogQWN0aW9uRGVzY3JpcHRvcjxUPiB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5kZXNjcmlwdG9yLmlzTG9jYWxpemVkKClcbiAgICAgICAgICAgID8gbmV3IEFjdGlvbkRlc2NyaXB0b3I8VD4oZGVzY3JpcHRvciwgJ3RyYW5zbGF0b3InKS53aXRoUG9zaXRpb24oQWN0aW9uUG9zaXRpb25FbnVtLlRvb2xiYXJMZWZ0KS53aXRoQ29tcG9uZW50KE1uZ0RhdGFMYW5ndWFnZURyb3Bkb3duQ29tcG9uZW50KVxuICAgICAgICAgICAgOiBudWxsO1xuICAgIH1cbn1cbiJdfQ==
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LXJvdXRlLmFic3RyYWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXZpZXcvcm91dGUvdGFibGV2aWV3LXJvdXRlLmFic3RyYWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBRXpGLE9BQU8sRUFDSCxzQkFBc0IsRUFDdEIsZ0JBQWdCLEVBQ2hCLHlCQUF5QixFQUN6Qiw2QkFBNkIsRUFDN0IsMEJBQTBCLEVBQzFCLG9CQUFvQixFQUl2QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRzlELE9BQU8sRUFBQyxjQUFjLEVBQUUsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFnQixnQ0FBZ0MsRUFBQyxNQUFNLHFCQUFxQixDQUFDOztBQUdwRixNQUFNLE9BQWdCLDJCQUEyQjtJQU83QztRQUNJLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFjLFNBQVM7UUFDbkIsT0FBTyxJQUFJLENBQUMs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QUNOLENBQUMsQ0FBQzthQUNELFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuRCxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN2QyxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRVMsZ0NBQWdDLENBQUMsYUFBaUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLO1FBQzdGLE1BQU0sTUFBTSxHQUFHLElBQUksZ0JBQWdCLENBQUksVUFBVSxFQUFFLFNBQVMsQ0FBQzthQUN4RCxZQUFZLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDO2FBQzdDLHFCQUFxQixDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQzthQUM1RCwwQkFBMEIsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQzthQUN2RCxlQUFlLENBQUMsQ0FBQyxHQUF3QixFQUFFLEVBQUU7WUFDekMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxhQUEyQyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQy9FLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0YsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7d0hBL0hpQiwyQkFBMkI7NEdBQTNCLDJCQUEyQjsyRkFBM0IsMkJBQTJCO2tCQURoRCxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIE9uSW5pdCwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCAqIGFzIEZpbGVTYXZlciBmcm9tICdmaWxlLXNhdmVyJztcbmltcG9ydCB7b2YsIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge01lZGl1c1F1ZXJ5UGFyYW1CdWlsZGVyfSBmcm9tICcuLi8uLi8uLi9hcGkvbW9kZWxzL2J1aWxkZXJzL3F1ZXJ5LXBhcmFtLmJ1aWxkZXInO1xuaW1wb3J0IHtJVGFibGV2aWV3RGF0YVByb3ZpZGVyfSBmcm9tICcuLi8uLi8uLi9kYXRhLXByb3ZpZGVycyc7XG5pbXBvcnQge1xuICAgIEFjdGlvbkRlbGV0ZURlc2NyaXB0b3IsXG4gICAgQWN0aW9uRGVzY3JpcHRvcixcbiAgICBBY3Rpb25FZGl0b3JBZGREZXNjcmlwdG9yLFxuICAgIEFjdGlvbkVkaXRvckRldGFpbHNEZXNjcmlwdG9yLFxuICAgIEFjdGlvbkVkaXRvckVkaXREZXNjcmlwdG9yLFxuICAgIEFjdGlvbkxpbmtEZXNjcmlwdG9yLFxuICAgIEVkaXRvckRlc2NyaXB0b3IsXG4gICAgTW9kZWxEZXNjcmlwdG9yLFxuICAgIFRhYmxldmlld0Rlc2NyaXB0b3Jcbn0gZnJvbSAnLi4vLi4vLi4vZGVzY3JpcHRvcnMnO1xuaW1wb3J0IHtBY3Rpb25Qb3NpdGlvbkVudW19IGZyb20gJy4uLy4uLy4uL2Rlc2NyaXB0b3JzL3R5cGVzJztcbmltcG9ydCB7SVZpZXdDb250YWluZXJFZGl0b3IsIElWaWV3Q29udGFpbmVyVGFibGV9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQge01uZ1JvdXRlckRhdGF9IGZyb20gJy4uLy4uLy4uL3JvdXRlci9tb2RlbHMnO1xuaW1wb3J0IHtTdHlsZUxldmVsRW51bSwgU3R5bGVTaXplRW51bX0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL21vZGVscyc7XG5pbXBvcnQge0FjdGlvbkRhdGFQcm92aWRlclV0aWx9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7QWN0aW9uQ29udGV4dCwgVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXN9IGZyb20gJy4uLy4uL2FjdGlvbi9tb2RlbHMnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBTW5nVGFibGV2aWV3Um91dGVDb21wb25lbnQ8VCwgUz4gaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHB1YmxpYyBkZXNjcmlwdG9yITogVGFibGV2aWV3RGVzY3JpcHRvcjxUPjtcbiAgICBwdWJsaWMgZGF0YVByb3ZpZGVyITogSVRhYmxldmlld0RhdGFQcm92aWRlcjxULCBTPjtcbiAgICBwdWJsaWMgYWN0aW9ucyE6IEFycmF5PEFjdGlvbkRlc2NyaXB0b3I8VD4+O1xuXG4gICAgcHJvdGVjdGVkIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHJvdXRlRGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm91dGUuc25hcHNob3QuZGF0YSBhcyBNbmdSb3V0ZXJEYXRhO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5kZXNjcmlwdG9yID0gdGhpcy5jcmVhdGVUYWJsZXZpZXdEZXNjcmlwdG9yKCk7XG4gICAgICAgIHRoaXMuZGF0YVByb3ZpZGVyID0gdGhpcy5jcmVhdGVUYWJsZXZpZXdEYXRhUHJvdmlkZXIoKTtcbiAgICAgICAgdGhpcy5hY3Rpb25zID0gdGhpcy5jcmVhdGVBY3Rpb25EZXNjcmlwdG9ycygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBjcmVhdGVUYWJsZXZpZXdEZXNjcmlwdG9yKCk6IFRhYmxldmlld0Rlc2NyaXB0b3I8VD47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlVGFibGV2aWV3RGF0YVByb3ZpZGVyKCk6IElUYWJsZXZpZXdEYXRhUHJvdmlkZXI8VCwgUz47XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlQWN0aW9uRGVzY3JpcHRvcnMoKTogQXJyYXk8QWN0aW9uRGVzY3JpcHRvcjxUPj4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yRGV0YWlscygpLFxuICAgICAgICAgICAgdGhpcy5jcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yQWRkKCksXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JGb3JFZGl0KCksXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JGb3JEZWxldGUoKSxcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlQWN0aW9uRGVzY3JpcHRvckZvclJlZnJlc2goKSxcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlQWN0aW9uRGVzY3JpcHRvckZvckV4cG9ydCgpLFxuXG4gICAgICAgICAgICAvL2RldGFpbHMgYWN0aW9uc1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yRGV0YWlsc0VkaXRMaW5rKCksXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JGb3JEZXRhaWxzRGVsZXRlKClcbiAgICAgICAgXS5maWx0ZXIoZSA9PiBlICE9IG51bGwpIGFzIEFycmF5PEFjdGlvbkRlc2NyaXB0b3I8VD4+O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yRGV0YWlscyhkZXNjcmlwdG9yOiBFZGl0b3JEZXNjcmlwdG9yPFQ+ID0gdGhpcy5kZXNjcmlwdG9yLmRldGFpbHNFZGl0b3IpOiBBY3Rpb25FZGl0b3JEZXRhaWxzRGVzY3JpcHRvcjxUPiB8IG51bGwge1xuICAgICAgICByZXR1cm4gIXRoaXMucm91dGVEYXRhLnRhYmxldmlld0FjdGlvbnMgfHwgdGhpcy5yb3V0ZURhdGEudGFibGV2aWV3QWN0aW9ucy5oYXNEZXRhaWxzID8gbmV3IEFjdGlvbkVkaXRvckRldGFpbHNEZXNjcmlwdG9yKGRlc2NyaXB0b3IpIDogbnVsbDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlQWN0aW9uRGVzY3JpcHRvckZvckFkZChkZXNjcmlwdG9yOiBFZGl0b3JEZXNjcmlwdG9yPFQ+ID0gdGhpcy5kZXNjcmlwdG9yLmFkZEVkaXRvcik6IEFjdGlvbkVkaXRvckFkZERlc2NyaXB0b3I8VD4gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnJvdXRlRGF0YS50YWJsZXZpZXdBY3Rpb25zIHx8IHRoaXMucm91dGVEYXRhLnRhYmxldmlld0FjdGlvbnMuaGFzQWRkID8gbmV3IEFjdGlvbkVkaXRvckFkZERlc2NyaXB0b3IoZGVzY3JpcHRvcikgOiBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yRWRpdChkZXNjcmlwdG9yOiBFZGl0b3JEZXNjcmlwdG9yPFQ+ID0gdGhpcy5kZXNjcmlwdG9yLmVkaXRFZGl0b3IpOiBBY3Rpb25FZGl0b3JFZGl0RGVzY3JpcHRvcjxUPiB8IG51bGwge1xuICAgICAgICByZXR1cm4gIXRoaXMucm91dGVEYXRhLnRhYmxldmlld0FjdGlvbnMgfHwgdGhpcy5yb3V0ZURhdGEudGFibGV2aWV3QWN0aW9ucy5oYXNFZGl0ID8gbmV3IEFjdGlvbkVkaXRvckVkaXREZXNjcmlwdG9yKGRlc2NyaXB0b3IpIDogbnVsbDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlQWN0aW9uRGVzY3JpcHRvckZvckRldGFpbHNFZGl0TGluayhkZXNjcmlwdG9yOiBNb2RlbERlc2NyaXB0b3I8VD4gPSB0aGlzLmRlc2NyaXB0b3IubW9kZWwpOiBBY3Rpb25MaW5rRGVzY3JpcHRvcjxUPiB8IG51bGwge1xuICAgICAgICBpZiAoIXRoaXMucm91dGVEYXRhLnRhYmxldmlld0FjdGlvbnMgfHwgdGhpcy5yb3V0ZURhdGEudGFibGV2aWV3QWN0aW9ucy5oYXNFZGl0KSB7XG4gICAgICAgICAgICBjb25zdCBhY3Rpb24gPSBuZXcgQWN0aW9uTGlua0Rlc2NyaXB0b3IoZGVzY3JpcHRvciwgQWN0aW9uRWRpdG9yRWRpdERlc2NyaXB0b3IuQUNUSU9OX05BTUUpXG4gICAgICAgICAgICAgICAgLndpdGhUYWJsZXZpZXdDYXRlZ29yeShUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5FRElUKVxuICAgICAgICAgICAgICAgIC53aXRoUG9zaXRpb25UYWJsZXZpZXdDYXRlZ29yaWVzKFtUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERVRBSUxTXSlcbiAgICAgICAgICAgICAgICAud2l0aFBvc2l0aW9uKEFjdGlvblBvc2l0aW9uRW51bS5Gb290ZXJMZWZ0KVxuICAgICAgICAgICAgICAgIC53aXRoUm91dGVyTGluaygnLi9lZGl0Jyk7XG4gICAgICAgICAgICBhY3Rpb24uYnV0dG9uLnN0eWxlQ2xhc3Mud2l0aEFjdGlvbkxldmVsKFN0eWxlTGV2ZWxFbnVtLlNlY29uZGFyeSk7XG4gICAgICAgICAgICBhY3Rpb24uYnV0dG9uLndpdGhJY29uKCdwaSBwaS1wZW5jaWwnKTtcblxuICAgICAgICAgICAgcmV0dXJuIGFjdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yRGV0YWlsc0RlbGV0ZShkZXNjcmlwdG9yOiBNb2RlbERlc2NyaXB0b3I8VD4gPSB0aGlzLmRlc2NyaXB0b3IubW9kZWwpOiBBY3Rpb25EZXNjcmlwdG9yPFQ+IHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuY3JlYXRlQWN0aW9uRGVzY3JpcHRvckZvckRlbGV0ZSgpO1xuICAgICAgICBpZiAoYWN0aW9uKSB7XG4gICAgICAgICAgICBhY3Rpb25cbiAgICAgICAgICAgICAgICAud2l0aFRhYmxldmlld0NhdGVnb3J5KFRhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkRFTEVURSlcbiAgICAgICAgICAgICAgICAud2l0aFBvc2l0aW9uVGFibGV2aWV3Q2F0ZWdvcmllcyhbVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuREVUQUlMU10pXG4gICAgICAgICAgICAgICAgLndpdGhQb3NpdGlvbihBY3Rpb25Qb3NpdGlvbkVudW0uRm9vdGVyTGVmdClcbiAgICAgICAgICAgICAgICAud2l0aFJ1bkZ1bmN0aW9uKGN0eCA9PlxuICAgICAgICAgICAgICAgICAgICBBY3Rpb25EYXRhUHJvdmlkZXJVdGlsLnJ1bkRlbGV0ZU9yRmFpbChjdHgpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjdHgucGFyYW1ldGVycy52aWV3Q29udGFpbmVyIGFzIElWaWV3Q29udGFpbmVyVGFibGU8dW5rbm93biwgdW5rbm93bj4pPy5yZWxvYWRUYWJsZT8uKHt9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY3R4LnBhcmFtZXRlcnMudmlld0NvbnRhaW5lciBhcyBJVmlld0NvbnRhaW5lckVkaXRvcjx1bmtub3duLCB1bmtub3duPik/LmNsb3NlRWRpdG9yPy4oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgYWN0aW9uLmJ1dHRvbi53aXRoTGFiZWwodW5kZWZpbmVkKTtcbiAgICAgICAgICAgIGFjdGlvbi5idXR0b24uc3R5bGVDbGFzcy53aXRoU2l6ZShTdHlsZVNpemVFbnVtLk5vcm1hbCk7XG5cbiAgICAgICAgICAgIHJldHVybiBhY3Rpb247XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlQWN0aW9uRGVzY3JpcHRvckZvckRlbGV0ZShkZXNjcmlwdG9yOiBNb2RlbERlc2NyaXB0b3I8VD4gPSB0aGlzLmRlc2NyaXB0b3IubW9kZWwpOiBBY3Rpb25EZWxldGVEZXNjcmlwdG9yPFQ+IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiAhdGhpcy5yb3V0ZURhdGEudGFibGV2aWV3QWN0aW9ucyB8fCB0aGlzLnJvdXRlRGF0YS50YWJsZXZpZXdBY3Rpb25zLmhhc0RlbGV0ZSA/IG5ldyBBY3Rpb25EZWxldGVEZXNjcmlwdG9yKGRlc2NyaXB0b3IpIDogbnVsbDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlQWN0aW9uRGVzY3JpcHRvckZvckV4cG9ydChkZXNjcmlwdG9yOiBNb2RlbERlc2NyaXB0b3I8VD4gPSB0aGlzLmRlc2NyaXB0b3IubW9kZWwpOiBBY3Rpb25EZXNjcmlwdG9yPFQ+IHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBBY3Rpb25EZXNjcmlwdG9yKGRlc2NyaXB0b3IsICdleHBvcnQnKVxuICAgICAgICAgICAgLndpdGhSdW5GdW5jdGlvbihjdHggPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1CdWlsZGVyID0gY3R4LnBhcmFtZXRlcnMucXVlcnlQYXJhbSA/IE1lZGl1c1F1ZXJ5UGFyYW1CdWlsZGVyLmNyZWF0ZUZyb21FeGlzdGluZyhjdHgucGFyYW1ldGVycy5xdWVyeVBhcmFtKSA6IE1lZGl1c1F1ZXJ5UGFyYW1CdWlsZGVyLmNyZWF0ZSgpO1xuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1CdWlsZGVyLndpdGhJdGVtc09mZnNldCgwKS53aXRoSXRlbXNQZXJQYWdlKDUwMCk7XG4gICAgICAgICAgICAgICAgY3R4LnBhcmFtZXRlcnMud2l0aFF1ZXJ5UGFyYW0ocXVlcnlQYXJhbUJ1aWxkZXIuYnVpbGQoKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEFjdGlvbkRhdGFQcm92aWRlclV0aWwucnVuR2V0QWxsT3JGYWlsKGN0eCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgbWFwKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW0pTT04uc3RyaW5naWZ5KHJlcy5wYWdlRGF0YSwgdW5kZWZpbmVkLCA0KV0sIHt0eXBlOiAnYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04J30pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdHlwZU5hbWUgPSBjdHguaW5zdGFuY2UuYWN0aW9uLm1vZGVsPy50eXBlTmFtZSA/PyAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVTYXZlci5zYXZlQXMoYmxvYiwgYCR7dHlwZU5hbWUgPyB0eXBlTmFtZSArICdfJyA6ICcnfSR7Y3R4Lmluc3RhbmNlLmFjdGlvbi5hY3Rpb25OYW1lfS5qc29uYCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLndpdGhQb3NpdGlvbihBY3Rpb25Qb3NpdGlvbkVudW0uVG9vbGJhclJpZ2h0KTtcbiAgICAgICAgYWN0aW9uLmJ1dHRvbi53aXRoSWNvbigncGkgcGktdXBsb2FkJyk7XG4gICAgICAgIHJldHVybiBhY3Rpb247XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JGb3JSZWZyZXNoKGRlc2NyaXB0b3I6IE1vZGVsRGVzY3JpcHRvcjxUPiA9IHRoaXMuZGVzY3JpcHRvci5tb2RlbCk6IEFjdGlvbkRlc2NyaXB0b3I8VD4gfCBudWxsIHtcbiAgICAgICAgY29uc3QgYWN0aW9uID0gbmV3IEFjdGlvbkRlc2NyaXB0b3I8VD4oZGVzY3JpcHRvciwgJ3JlZnJlc2gnKVxuICAgICAgICAgICAgLndpdGhQb3NpdGlvbihBY3Rpb25Qb3NpdGlvbkVudW0uVG9vbGJhclJpZ2h0KVxuICAgICAgICAgICAgLndpdGhUYWJsZXZpZXdDYXRlZ29yeShUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5SRUFEKVxuICAgICAgICAgICAgLndpdGhSdW5Ob3RpZmljYXRpb25TdWNjZXNzKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBmYWxzZSlcbiAgICAgICAgICAgIC53aXRoUnVuRnVuY3Rpb24oKGN0eDogQWN0aW9uQ29udGV4dDxULCBTPikgPT4ge1xuICAgICAgICAgICAgICAgIChjdHgucGFyYW1ldGVycy52aWV3Q29udGFpbmVyIGFzIElWaWV3Q29udGFpbmVyVGFibGU8VCwgUz4pPy5yZWxvYWRUYWJsZT8uKHt9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgYWN0aW9uLmJ1dHRvbi53aXRoSWNvbigncGkgcGktcmVmcmVzaCcpLnN0eWxlQ2xhc3Mud2l0aEFjdGlvbkxldmVsKFN0eWxlTGV2ZWxFbnVtLlNlY29uZGFyeSk7XG4gICAgICAgIHJldHVybiBhY3Rpb247XG4gICAgfVxufVxuIl19
@@ -105,10 +105,10 @@ export class MngTableColumnFilterComponent {
105
105
  }
106
106
  }
107
107
  MngTableColumnFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngTableColumnFilterComponent, deps: [{ token: i1.PrimeNGConfig }], target: i0.ɵɵFactoryTarget.Component });
108
- MngTableColumnFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: MngTableColumnFilterComponent, selector: "mng-table-column-filter", inputs: { descriptor: "descriptor", display: "display" }, viewQueries: [{ propertyName: "primeColumnFilter", first: true, predicate: ColumnFilter, descendants: true }], ngImport: i0, template: "<p-columnFilter\n class=\"ml-auto\"\n [type]=\"primeType\"\n [field]=\"descriptor.property\"\n [display]=\"primeDisplay\"\n [matchMode]=\"$any(primeDefaultMatchMode)\"\n [matchModeOptions]=\"$any(primeMatchModes)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showMatchModes]=\"true\"\n [showOperator]=\"false\"\n [showAddButton]=\"false\"\n [hideOnClear]=\"true\"\n [showMenu]=\"primeShowMatchMode\"\n [minFractionDigits]=\"$any(descriptor.numberMinFractionDigits)\"\n [maxFractionDigits]=\"$any(descriptor.numberMaxFractionDigits)\"\n [useGrouping]=\"descriptor.numberUseGrouping\">\n <ng-template *ngIf=\"primeType === 'date'\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container *ngIf=\"activeMatchMode === 'between'; else datePicker\">\n <mng-date-range\n [ngModel]=\"value\"\n (ngModelChange)=\"dateFilter($event, filterCallback)\"\n [showTime]=\"descriptor.datePickerShowTime\"\n [dateFormat]=\"descriptor.datePickerFormat\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"></mng-date-range>\n </ng-container>\n <ng-template #datePicker>\n <p-calendar\n appendTo=\"body\"\n [ngModel]=\"value\"\n (ngModelChange)=\"dateFilter($event, filterCallback)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showIcon]=\"true\"\n [dateFormat]=\"descriptor.datePickerFormat ?? 'dd.mm.yy'\"\n [showTime]=\"descriptor.datePickerShowTime\">\n </p-calendar>\n </ng-template>\n </ng-template>\n <ng-template *ngIf=\"lookupDescriptor\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container [ngSwitch]=\"lookupDescriptor.lookupType\">\n <mng-autocomplete\n *ngSwitchCase=\"lookupTypeAutocomplete\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [dataKeyProperty]=\"lookupDescriptor.dataKeyProperty\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsLabelTranslate]=\"lookupDescriptor.itemsLabelTranslate\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [openOnFocus]=\"lookupDescriptor.autocompleteOpenOnFocus\"\n [inlineSearch]=\"lookupDescriptor.autocompleteInlineSearch\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.searchToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n (valueChange)=\"autocompleteFilter($event, filterCallback)\">\n </mng-autocomplete>\n <mng-dropdown\n *ngSwitchCase=\"lookupTypeDropdown\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsLabelTranslate]=\"lookupDescriptor.itemsLabelTranslate\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.selectToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n [showClear]=\"false\"\n [changeValueOnBlur]=\"lookupDescriptor.multiselect\"\n (valueChange)=\"dropdownFilter($event, filterCallback)\">\n </mng-dropdown>\n </ng-container>\n </ng-template>\n</p-columnFilter>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4.Calendar, selector: "p-calendar", inputs: ["style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "view", "defaultDate", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.ColumnFilter, selector: "p-columnFilter", inputs: ["field", "type", "display", "showMenu", "matchMode", "operator", "showOperator", "showClearButton", "showApplyButton", "showMatchModes", "showAddButton", "hideOnClear", "placeholder", "matchModeOptions", "maxConstraints", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "locale", "localeMatcher", "currency", "currencyDisplay", "useGrouping", "showButtons"] }, { kind: "component", type: i6.MngAutocompleteComponent, selector: "mng-autocomplete", inputs: ["dataProvider", "dataKeyProperty", "itemsValueProperty", "itemsLabelProperty", "itemsLabelTranslate", "inlineSearch", "openOnFocus", "multiselect", "placeholder", "className", "dropdownClassName", "showClear", "autoClear", "selectFirst"], outputs: ["valueChange"] }, { kind: "component", type: i7.MngDropdownComponent, selector: "mng-dropdown", inputs: ["dataProvider", "dataKeyProperty", "itemsLabelProperty", "itemsLabelTranslate", "itemsValueProperty", "itemsDisabledProperty", "multiselect", "placeholder", "showClear", "selectFirstItem", "className", "dropdownClassName", "changeValueOnBlur"], outputs: ["valueChange"] }, { kind: "component", type: i8.MngDateRangeComponent, selector: "mng-date-range", inputs: ["placeholder", "showTime", "showSeconds", "dateFormat"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] });
108
+ MngTableColumnFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: MngTableColumnFilterComponent, selector: "mng-table-column-filter", inputs: { descriptor: "descriptor", display: "display" }, viewQueries: [{ propertyName: "primeColumnFilter", first: true, predicate: ColumnFilter, descendants: true }], ngImport: i0, template: "<p-columnFilter\n class=\"ml-auto\"\n [type]=\"primeType\"\n [field]=\"descriptor.property\"\n [display]=\"primeDisplay\"\n [matchMode]=\"$any(primeDefaultMatchMode)\"\n [matchModeOptions]=\"$any(primeMatchModes)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showMatchModes]=\"true\"\n [showOperator]=\"false\"\n [showAddButton]=\"false\"\n [hideOnClear]=\"true\"\n [showMenu]=\"primeShowMatchMode\"\n [minFractionDigits]=\"$any(descriptor.numberMinFractionDigits)\"\n [maxFractionDigits]=\"$any(descriptor.numberMaxFractionDigits)\"\n [useGrouping]=\"descriptor.numberUseGrouping\">\n <ng-template *ngIf=\"primeType === 'date'\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container *ngIf=\"activeMatchMode === 'between'; else datePicker\">\n <mng-date-range\n [ngModel]=\"value\"\n (ngModelChange)=\"dateFilter($event, filterCallback)\"\n [showTime]=\"descriptor.datePickerShowTime\"\n [dateFormat]=\"descriptor.datePickerFormat\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"></mng-date-range>\n </ng-container>\n <ng-template #datePicker>\n <p-calendar\n appendTo=\"body\"\n [ngModel]=\"value\"\n (ngModelChange)=\"dateFilter($event, filterCallback)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showIcon]=\"true\"\n [dateFormat]=\"descriptor.datePickerFormat ?? 'dd.mm.yy'\"\n [showTime]=\"descriptor.datePickerShowTime\"\n [firstDayOfWeek]=\"1\">\n </p-calendar>\n </ng-template>\n </ng-template>\n <ng-template *ngIf=\"lookupDescriptor\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container [ngSwitch]=\"lookupDescriptor.lookupType\">\n <mng-autocomplete\n *ngSwitchCase=\"lookupTypeAutocomplete\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [dataKeyProperty]=\"lookupDescriptor.dataKeyProperty\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsLabelTranslate]=\"lookupDescriptor.itemsLabelTranslate\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [openOnFocus]=\"lookupDescriptor.autocompleteOpenOnFocus\"\n [inlineSearch]=\"lookupDescriptor.autocompleteInlineSearch\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.searchToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n (valueChange)=\"autocompleteFilter($event, filterCallback)\">\n </mng-autocomplete>\n <mng-dropdown\n *ngSwitchCase=\"lookupTypeDropdown\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsLabelTranslate]=\"lookupDescriptor.itemsLabelTranslate\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.selectToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n [showClear]=\"false\"\n [changeValueOnBlur]=\"lookupDescriptor.multiselect\"\n (valueChange)=\"dropdownFilter($event, filterCallback)\">\n </mng-dropdown>\n </ng-container>\n </ng-template>\n</p-columnFilter>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4.Calendar, selector: "p-calendar", inputs: ["style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "view", "defaultDate", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.ColumnFilter, selector: "p-columnFilter", inputs: ["field", "type", "display", "showMenu", "matchMode", "operator", "showOperator", "showClearButton", "showApplyButton", "showMatchModes", "showAddButton", "hideOnClear", "placeholder", "matchModeOptions", "maxConstraints", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "locale", "localeMatcher", "currency", "currencyDisplay", "useGrouping", "showButtons"] }, { kind: "component", type: i6.MngAutocompleteComponent, selector: "mng-autocomplete", inputs: ["dataProvider", "dataKeyProperty", "itemsValueProperty", "itemsLabelProperty", "itemsLabelTranslate", "inlineSearch", "openOnFocus", "multiselect", "placeholder", "className", "dropdownClassName", "showClear", "autoClear", "selectFirst"], outputs: ["valueChange"] }, { kind: "component", type: i7.MngDropdownComponent, selector: "mng-dropdown", inputs: ["dataProvider", "dataKeyProperty", "itemsLabelProperty", "itemsLabelTranslate", "itemsValueProperty", "itemsDisabledProperty", "multiselect", "placeholder", "showClear", "selectFirstItem", "className", "dropdownClassName", "changeValueOnBlur"], outputs: ["valueChange"] }, { kind: "component", type: i8.MngDateRangeComponent, selector: "mng-date-range", inputs: ["placeholder", "showTime", "showSeconds", "dateFormat"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] });
109
109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngTableColumnFilterComponent, decorators: [{
110
110
  type: Component,
111
- args: [{ selector: 'mng-table-column-filter', template: "<p-columnFilter\n class=\"ml-auto\"\n [type]=\"primeType\"\n [field]=\"descriptor.property\"\n [display]=\"primeDisplay\"\n [matchMode]=\"$any(primeDefaultMatchMode)\"\n [matchModeOptions]=\"$any(primeMatchModes)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showMatchModes]=\"true\"\n [showOperator]=\"false\"\n [showAddButton]=\"false\"\n [hideOnClear]=\"true\"\n [showMenu]=\"primeShowMatchMode\"\n [minFractionDigits]=\"$any(descriptor.numberMinFractionDigits)\"\n [maxFractionDigits]=\"$any(descriptor.numberMaxFractionDigits)\"\n [useGrouping]=\"descriptor.numberUseGrouping\">\n <ng-template *ngIf=\"primeType === 'date'\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container *ngIf=\"activeMatchMode === 'between'; else datePicker\">\n <mng-date-range\n [ngModel]=\"value\"\n (ngModelChange)=\"dateFilter($event, filterCallback)\"\n [showTime]=\"descriptor.datePickerShowTime\"\n [dateFormat]=\"descriptor.datePickerFormat\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"></mng-date-range>\n </ng-container>\n <ng-template #datePicker>\n <p-calendar\n appendTo=\"body\"\n [ngModel]=\"value\"\n (ngModelChange)=\"dateFilter($event, filterCallback)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showIcon]=\"true\"\n [dateFormat]=\"descriptor.datePickerFormat ?? 'dd.mm.yy'\"\n [showTime]=\"descriptor.datePickerShowTime\">\n </p-calendar>\n </ng-template>\n </ng-template>\n <ng-template *ngIf=\"lookupDescriptor\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container [ngSwitch]=\"lookupDescriptor.lookupType\">\n <mng-autocomplete\n *ngSwitchCase=\"lookupTypeAutocomplete\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [dataKeyProperty]=\"lookupDescriptor.dataKeyProperty\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsLabelTranslate]=\"lookupDescriptor.itemsLabelTranslate\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [openOnFocus]=\"lookupDescriptor.autocompleteOpenOnFocus\"\n [inlineSearch]=\"lookupDescriptor.autocompleteInlineSearch\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.searchToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n (valueChange)=\"autocompleteFilter($event, filterCallback)\">\n </mng-autocomplete>\n <mng-dropdown\n *ngSwitchCase=\"lookupTypeDropdown\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsLabelTranslate]=\"lookupDescriptor.itemsLabelTranslate\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.selectToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n [showClear]=\"false\"\n [changeValueOnBlur]=\"lookupDescriptor.multiselect\"\n (valueChange)=\"dropdownFilter($event, filterCallback)\">\n </mng-dropdown>\n </ng-container>\n </ng-template>\n</p-columnFilter>\n" }]
111
+ args: [{ selector: 'mng-table-column-filter', template: "<p-columnFilter\n class=\"ml-auto\"\n [type]=\"primeType\"\n [field]=\"descriptor.property\"\n [display]=\"primeDisplay\"\n [matchMode]=\"$any(primeDefaultMatchMode)\"\n [matchModeOptions]=\"$any(primeMatchModes)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showMatchModes]=\"true\"\n [showOperator]=\"false\"\n [showAddButton]=\"false\"\n [hideOnClear]=\"true\"\n [showMenu]=\"primeShowMatchMode\"\n [minFractionDigits]=\"$any(descriptor.numberMinFractionDigits)\"\n [maxFractionDigits]=\"$any(descriptor.numberMaxFractionDigits)\"\n [useGrouping]=\"descriptor.numberUseGrouping\">\n <ng-template *ngIf=\"primeType === 'date'\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container *ngIf=\"activeMatchMode === 'between'; else datePicker\">\n <mng-date-range\n [ngModel]=\"value\"\n (ngModelChange)=\"dateFilter($event, filterCallback)\"\n [showTime]=\"descriptor.datePickerShowTime\"\n [dateFormat]=\"descriptor.datePickerFormat\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"></mng-date-range>\n </ng-container>\n <ng-template #datePicker>\n <p-calendar\n appendTo=\"body\"\n [ngModel]=\"value\"\n (ngModelChange)=\"dateFilter($event, filterCallback)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showIcon]=\"true\"\n [dateFormat]=\"descriptor.datePickerFormat ?? 'dd.mm.yy'\"\n [showTime]=\"descriptor.datePickerShowTime\"\n [firstDayOfWeek]=\"1\">\n </p-calendar>\n </ng-template>\n </ng-template>\n <ng-template *ngIf=\"lookupDescriptor\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container [ngSwitch]=\"lookupDescriptor.lookupType\">\n <mng-autocomplete\n *ngSwitchCase=\"lookupTypeAutocomplete\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [dataKeyProperty]=\"lookupDescriptor.dataKeyProperty\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsLabelTranslate]=\"lookupDescriptor.itemsLabelTranslate\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [openOnFocus]=\"lookupDescriptor.autocompleteOpenOnFocus\"\n [inlineSearch]=\"lookupDescriptor.autocompleteInlineSearch\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.searchToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n (valueChange)=\"autocompleteFilter($event, filterCallback)\">\n </mng-autocomplete>\n <mng-dropdown\n *ngSwitchCase=\"lookupTypeDropdown\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsLabelTranslate]=\"lookupDescriptor.itemsLabelTranslate\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.selectToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n [showClear]=\"false\"\n [changeValueOnBlur]=\"lookupDescriptor.multiselect\"\n (valueChange)=\"dropdownFilter($event, filterCallback)\">\n </mng-dropdown>\n </ng-container>\n </ng-template>\n</p-columnFilter>\n" }]
112
112
  }], ctorParameters: function () { return [{ type: i1.PrimeNGConfig }]; }, propDecorators: { descriptor: [{
113
113
  type: Input
114
114
  }], display: [{
@@ -117,4 +117,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
117
117
  type: ViewChild,
118
118
  args: [ColumnFilter]
119
119
  }] } });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdGFibGV2aWV3L3RhYmxlL2NvbHVtbi1maWx0ZXIvY29sdW1uLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdGFibGV2aWV3L3RhYmxlL2NvbHVtbi1maWx0ZXIvY29sdW1uLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRzdFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFDLE9BQU8sRUFBZ0IsWUFBWSxFQUFFLG9CQUFvQixFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRy9FLE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFFaEk7OztHQUdHO0FBS0gsTUFBTSxPQUFPLDZCQUE2QjtJQXVCdEMsWUFBb0IsV0FBMEI7UUFBMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWU7UUF0QjlCLHVCQUFrQixHQUF5QixvQkFBb0IsQ0FBQyxRQUFRLENBQUM7UUFDekUsMkJBQXNCLEdBQXlCLG9CQUFvQixDQUFDLFlBQVksQ0FBQztRQVUxRixjQUFTLEdBQUcsTUFBTSxDQUFDO1FBQ25CLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUUxQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixvQkFBZSxHQUF3QixJQUFJLENBQUM7UUFJM0Msd0JBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQXdCLENBQUM7UUFJOUQsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUks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QyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsNEZBQTRGO0lBQzVGLGNBQWMsQ0FBQyxLQUFVLEVBQUUsY0FBd0I7UUFDL0MsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzVDLEtBQUssR0FBRyxTQUFTLENBQUM7U0FDckI7UUFDRCxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQzs7MEhBakhRLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLDRLQU8zQixZQUFZLGdEQ3hCM0IsaytIQXlFQTsyRkR4RGEsNkJBQTZCO2tCQUp6QyxTQUFTOytCQUNJLHlCQUF5QjtvR0FPMUIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRTBCLGlCQUFpQjtzQkFBaEQsU0FBUzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtGaWx0ZXJNZXRhZGF0YSwgUHJpbWVOR0NvbmZpZywgU2VsZWN0SXRlbX0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHtDb2x1bW5GaWx0ZXJ9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWR9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0ZpbHRlckRlc2NyaXB0b3IsIEZpbHRlckxvb2t1cERlc2NyaXB0b3J9IGZyb20gJy4uLy4uLy4uLy4uL2Rlc2NyaXB0b3JzJztcbmltcG9ydCB7RmlsdGVyTG9va3VwVHlwZUVudW0sIEZpbHRlck1hdGNoTW9kZUVudW0sIEZpbHRlclR5cGVFbnVtLCBUYWJsZUZpbHRlckRpc3BsYXlFbnVtfSBmcm9tICcuLi8uLi8uLi8uLi9kZXNjcmlwdG9ycy90eXBlcyc7XG5cbi8qKlxuICogQ2Fubm90IGJlIG9uIHB1c2ggY2hhbmdlIGRldGVjdGlvbiBzdHJhdGVneSBiZWNhdXNlIG9mIGZpbHRlciB1cGRhdGVzIHRyaWdnZXJlZCBmcm9tIHJvdXRlIHdoaWNoIGNhdXNlcyB0byBmb3JjZSB1cGRhdGUgdmFsdWVzIGluIGZvcmNlIG1ldGFkYXRhXG4gKiBhbmQgdGhlc2UgbXVzdCBiZSBwcm9wYWdhdGVkIHRocm91Z2ggdG8gdGhpcyBjb21wb25lbnQgYW5kIGJleW9uZCB0byBwcmltZU5HLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21uZy10YWJsZS1jb2x1bW4tZmlsdGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29sdW1uLWZpbHRlci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgTW5nVGFibGVDb2x1bW5GaWx0ZXJDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIHJlYWRvbmx5IGxvb2t1cFR5cGVEcm9wZG93bjogRmlsdGVyTG9va3VwVHlwZUVudW0gPSBGaWx0ZXJMb29rdXBUeXBlRW51bS5Ecm9wZG93bjtcbiAgICBwdWJsaWMgcmVhZG9ubHkgbG9va3VwVHlwZUF1dG9jb21wbGV0ZTogRmlsdGVyTG9va3VwVHlwZUVudW0gPSBGaWx0ZXJMb29rdXBUeXBlRW51bS5BdXRvY29tcGxldGU7XG5cbiAgICBASW5wdXQoKSBkZXNjcmlwdG9yITogRmlsdGVyRGVzY3JpcHRvcjxUPjtcbiAgICBASW5wdXQoKSBkaXNwbGF5ITogVGFibGVGaWx0ZXJEaXNwbGF5RW51bTtcblxuICAgIEBWaWV3Q2hpbGQoQ29sdW1uRmlsdGVyKSBwdWJsaWMgcHJpbWVDb2x1bW5GaWx0ZXIhOiBDb2x1bW5GaWx0ZXI7XG5cbiAgICBwdWJsaWMgbG9va3VwRGVzY3JpcHRvcj86IEZpbHRlckxvb2t1cERlc2NyaXB0b3I8VD47XG5cbiAgICBwdWJsaWMgcHJpbWVGaWVsZCE6IHN0cmluZztcbiAgICBwdWJsaWMgcHJpbWVUeXBlID0gJ3RleHQnO1xuICAgIHB1YmxpYyBwcmltZVNob3dNYXRjaE1vZGUgPSB0cnVlO1xuICAgIHB1YmxpYyBwcmltZURlZmF1bHRNYXRjaE1vZGUhOiBGaWx0ZXJNYXRjaE1vZGVFbnVtO1xuICAgIHB1YmxpYyBwcmltZURpc3BsYXkgPSAncm93JztcbiAgICBwdWJsaWMgcHJpbWVNYXRjaE1vZGVzOiBTZWxlY3RJdGVtW10gfCBudWxsID0gbnVsbDtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gICAgcHJpdmF0ZSBkYXRlRmlsdGVyQ2FsbGJhY2s/OiBGdW5jdGlvbjtcbiAgICBwcml2YXRlIGRhdGVEZWJvdW5jZVN1YmplY3QgPSBuZXcgU3ViamVjdDxEYXRlIHwgRGF0ZVtdIHwgbnVsbD4oKTtcbiAgICBwcml2YXRlIGRhdGVEZWJvdW5jZVN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcHJpbWVDb25maWc6IFByaW1lTkdDb25maWcpIHtcbiAgICAgICAgdGhpcy5kYXRlRGVib3VuY2VTdWJzY3JpcHRpb24gPSB0aGlzLmRhdGVEZWJvdW5jZVN1YmplY3QucGlwZShkZWJvdW5jZVRpbWUoNTAwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKHYgPT4ge1xuICAgICAgICAgICAgdGhpcy5kYXRlRmlsdGVyQ2FsbGJhY2s/Lih2KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhY3RpdmVNYXRjaE1vZGUoKTogRmlsdGVyTWF0Y2hNb2RlRW51bSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMucHJpbWVDb2x1bW5GaWx0ZXI/LmR0LmZpbHRlcnNbdGhpcy5kZXNjcmlwdG9yLnByb3BlcnR5XSBhcyBGaWx0ZXJNZXRhZGF0YTtcbiAgICAgICAgcmV0dXJuIGZpbHRlcj8ubWF0Y2hNb2RlIGFzIEZpbHRlck1hdGNoTW9kZUVudW0gfCB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMucHJpbWVEZWZhdWx0TWF0Y2hNb2RlID0gdGhpcy5kZXNjcmlwdG9yLmRlZmF1bHRGaWx0ZXJNYXRjaE1vZGUgPz8gRmlsdGVyTWF0Y2hNb2RlRW51bS5FcXVhbHM7XG5cbiAgICAgICAgc3dpdGNoICh0aGlzLmRlc2NyaXB0b3IuZmlsdGVyVHlwZSkge1xuICAgICAgICAgICAgY2FzZSBGaWx0ZXJUeXBlRW51bS5Cb29sZWFuOlxuICAgICAgICAgICAgICAgIHRoaXMucHJpbWVUeXBlID0gJ2Jvb2xlYW4nO1xuICAgICAgICAgICAgICAgIHRoaXMucHJpbWVTaG93TWF0Y2hNb2RlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpbHRlclR5cGVFbnVtLk51bWJlcjpcbiAgICAgICAgICAgICAgICB0aGlzLnByaW1lVHlwZSA9ICdudW1lcmljJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRmlsdGVyVHlwZUVudW0uRGF0ZTpcbiAgICAgICAgICAgICAgICB0aGlzLnByaW1lVHlwZSA9ICdkYXRlJztcbiAgICAgICAgICAgICAgICB0aGlzLnByaW1lRGVmYXVsdE1hdGNoTW9kZSA9IEZpbHRlck1hdGNoTW9kZUVudW0uRGF0ZUlzO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGaWx0ZXJUeXBlRW51bS5Mb29rdXA6XG4gICAgICAgICAgICAgICAgdGhpcy5wcmltZVR5cGUgPSAnbG9va3VwJztcbiAgICAgICAgICAgICAgICB0aGlzLnByaW1lU2hvd01hdGNoTW9kZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMubG9va3VwRGVzY3JpcHRvciA9IHRoaXMuZGVzY3JpcHRvciBhcyBGaWx0ZXJMb29rdXBEZXNjcmlwdG9yPFQ+O1xuICAgICAgICAgICAgICAgIHRoaXMucHJpbWVGaWVsZCA9IGAke3RoaXMuZGVzY3JpcHRvci5wcm9wZXJ0eX0ke3RoaXMubG9va3VwRGVzY3JpcHRvci5pdGVtc1ZhbHVlUHJvcGVydHkgPyBgLiR7dGhpcy5sb29rdXBEZXNjcmlwdG9yLml0ZW1zVmFsdWVQcm9wZXJ0eX1gIDogJyd9YDtcbiAgICAgICAgICAgICAgICB0aGlzLnByaW1lTWF0Y2hNb2RlcyA9IFt7dmFsdWU6IEZpbHRlck1hdGNoTW9kZUVudW0uRXF1YWxzLCBsYWJlbDogdGhpcy5wcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGVFbnVtLkVxdWFscyl9XTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvb2t1cERlc2NyaXB0b3IubXVsdGlzZWxlY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmltZURlZmF1bHRNYXRjaE1vZGUgPSBGaWx0ZXJNYXRjaE1vZGVFbnVtLkluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRmlsdGVyVHlwZUVudW0uU3RyaW5nOlxuICAgICAgICAgICAgICAgIHRoaXMucHJpbWVUeXBlID0gJ3RleHQnO1xuICAgICAgICAgICAgICAgIHRoaXMucHJpbWVEZWZhdWx0TWF0Y2hNb2RlID0gRmlsdGVyTWF0Y2hNb2RlRW51bS5Db250YWlucztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3IubWF0Y2hNb2Rlcykge1xuICAgICAgICAgICAgdGhpcy5wcmltZU1hdGNoTW9kZXMgPSB0aGlzLmRlc2NyaXB0b3IubWF0Y2hNb2Rlcy5tYXAobW0gPT4gPFNlbGVjdEl0ZW0+e3ZhbHVlOiBtbSwgbGFiZWw6IHRoaXMucHJpbWVDb25maWcuZ2V0VHJhbnNsYXRpb24obW0pfSk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5wcmltZU1hdGNoTW9kZXMubWFwKG1hdGNoTW9kZSA9PiBtYXRjaE1vZGUudmFsdWUpLmluY2x1ZGVzKHRoaXMucHJpbWVEZWZhdWx0TWF0Y2hNb2RlKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucHJpbWVEZWZhdWx0TWF0Y2hNb2RlID0gdGhpcy5kZXNjcmlwdG9yLm1hdGNoTW9kZXNbMF0gYXMgRmlsdGVyTWF0Y2hNb2RlRW51bTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5wcmltZVNob3dNYXRjaE1vZGUgPSB0aGlzLnByaW1lTWF0Y2hNb2Rlcz8ubGVuZ3RoID4gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXkgPT09IFRhYmxlRmlsdGVyRGlzcGxheUVudW0uTWVudSkge1xuICAgICAgICAgICAgdGhpcy5wcmltZURpc3BsYXkgPSAnbWVudSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kYXRlRGVib3VuY2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbiAgICBkYXRlRmlsdGVyKHZhbHVlOiBEYXRlIHwgRGF0ZVtdIHwgbnVsbCwgZmlsdGVyQ2FsbGJhY2s6IEZ1bmN0aW9uKSB7XG4gICAgICAgIHRoaXMuZGF0ZUZpbHRlckNhbGxiYWNrID0gZmlsdGVyQ2FsbGJhY2s7XG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZU1hdGNoTW9kZSA9PT0gRmlsdGVyTWF0Y2hNb2RlRW51bS5CZXR3ZWVuICYmIEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRlVmFsdWVzID0gdmFsdWUuZmlsdGVyKHYgPT4gdiBpbnN0YW5jZW9mIERhdGUpO1xuICAgICAgICAgICAgaWYgKGRhdGVWYWx1ZXMubGVuZ3RoIDw9IDEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kYXRlRGVib3VuY2VTdWJqZWN0Lm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gICAgZGF0ZVJhbmdlQ2hhbmdlKHZhbHVlOiBEYXRlW10gfCBudWxsLCBmaWx0ZXJDYWxsYmFjazogRnVuY3Rpb24pIHtcbiAgICAgICAgZmlsdGVyQ2FsbGJhY2sodmFsdWUpO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gICAgYXV0b2NvbXBsZXRlRmlsdGVyKHZhbHVlOiBULCBmaWx0ZXJDYWxsYmFjazogRnVuY3Rpb24pIHtcbiAgICAgICAgZmlsdGVyQ2FsbGJhY2sodmFsdWUpO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgZHJvcGRvd25GaWx0ZXIodmFsdWU6IGFueSwgZmlsdGVyQ2FsbGJhY2s6IEZ1bmN0aW9uKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGZpbHRlckNhbGxiYWNrKHZhbHVlKTtcbiAgICB9XG59XG4iLCI8cC1jb2x1bW5GaWx0ZXJcbiAgICBjbGFzcz1cIm1sLWF1dG9cIlxuICAgIFt0eXBlXT1cInByaW1lVHlwZVwiXG4gICAgW2ZpZWxkXT1cImRlc2NyaXB0b3IucHJvcGVydHlcIlxuICAgIFtkaXNwbGF5XT1cInByaW1lRGlzcGxheVwiXG4gICAgW21hdGNoTW9kZV09XCIkYW55KHByaW1lRGVmYXVsdE1hdGNoTW9kZSlcIlxuICAgIFttYXRjaE1vZGVPcHRpb25zXT1cIiRhbnkocHJpbWVNYXRjaE1vZGVzKVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cImRlc2NyaXB0b3IucGxhY2Vob2xkZXIgPz8gJ21uZ1RhYmxlLnR5cGVUb0ZpbHRlcicgfCB0cmFuc2xhdGVcIlxuICAgIFtzaG93TWF0Y2hNb2Rlc109XCJ0cnVlXCJcbiAgICBbc2hvd09wZXJhdG9yXT1cImZhbHNlXCJcbiAgICBbc2hvd0FkZEJ1dHRvbl09XCJmYWxzZVwiXG4gICAgW2hpZGVPbkNsZWFyXT1cInRydWVcIlxuICAgIFtzaG93TWVudV09XCJwcmltZVNob3dNYXRjaE1vZGVcIlxuICAgIFttaW5GcmFjdGlvbkRpZ2l0c109XCIkYW55KGRlc2NyaXB0b3IubnVtYmVyTWluRnJhY3Rpb25EaWdpdHMpXCJcbiAgICBbbWF4RnJhY3Rpb25EaWdpdHNdPVwiJGFueShkZXNjcmlwdG9yLm51bWJlck1heEZyYWN0aW9uRGlnaXRzKVwiXG4gICAgW3VzZUdyb3VwaW5nXT1cImRlc2NyaXB0b3IubnVtYmVyVXNlR3JvdXBpbmdcIj5cbiAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJwcmltZVR5cGUgPT09ICdkYXRlJ1wiIHBUZW1wbGF0ZT1cImZpbHRlclwiIGxldC12YWx1ZSBsZXQtZmlsdGVyQ2FsbGJhY2s9XCJmaWx0ZXJDYWxsYmFja1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aXZlTWF0Y2hNb2RlID09PSAnYmV0d2Vlbic7IGVsc2UgZGF0ZVBpY2tlclwiPlxuICAgICAgICAgICAgPG1uZy1kYXRlLXJhbmdlXG4gICAgICAgICAgICAgICAgW25nTW9kZWxdPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImRhdGVGaWx0ZXIoJGV2ZW50LCBmaWx0ZXJDYWxsYmFjaylcIlxuICAgICAgICAgICAgICAgIFtzaG93VGltZV09XCJkZXNjcmlwdG9yLmRhdGVQaWNrZXJTaG93VGltZVwiXG4gICAgICAgICAgICAgICAgW2RhdGVGb3JtYXRdPVwiZGVzY3JpcHRvci5kYXRlUGlja2VyRm9ybWF0XCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZGVzY3JpcHRvci5wbGFjZWhvbGRlciA/PyAnbW5nVGFibGUudHlwZVRvRmlsdGVyJyB8IHRyYW5zbGF0ZVwiPjwvbW5nLWRhdGUtcmFuZ2U+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2RhdGVQaWNrZXI+XG4gICAgICAgICAgICA8cC1jYWxlbmRhclxuICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgICAgICAgICAgICAgW25nTW9kZWxdPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImRhdGVGaWx0ZXIoJGV2ZW50LCBmaWx0ZXJDYWxsYmFjaylcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJkZXNjcmlwdG9yLnBsYWNlaG9sZGVyID8/ICdtbmdUYWJsZS50eXBlVG9GaWx0ZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbc2hvd0ljb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2RhdGVGb3JtYXRdPVwiZGVzY3JpcHRvci5kYXRlUGlja2VyRm9ybWF0ID8/ICdkZC5tbS55eSdcIlxuICAgICAgICAgICAgICAgIFtzaG93VGltZV09XCJkZXNjcmlwdG9yLmRhdGVQaWNrZXJTaG93VGltZVwiPlxuICAgICAgICAgICAgPC9wLWNhbGVuZGFyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwibG9va3VwRGVzY3JpcHRvclwiIHBUZW1wbGF0ZT1cImZpbHRlclwiIGxldC12YWx1ZSBsZXQtZmlsdGVyQ2FsbGJhY2s9XCJmaWx0ZXJDYWxsYmFja1wiPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJsb29rdXBEZXNjcmlwdG9yLmxvb2t1cFR5cGVcIj5cbiAgICAgICAgICAgIDxtbmctYXV0b2NvbXBsZXRlXG4gICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cImxvb2t1cFR5cGVBdXRvY29tcGxldGVcIlxuICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICBbZGF0YVByb3ZpZGVyXT1cImxvb2t1cERlc2NyaXB0b3IuZGF0YVByb3ZpZGVyXCJcbiAgICAgICAgICAgICAgICBbZGF0YUtleVByb3BlcnR5XT1cImxvb2t1cERlc2NyaXB0b3IuZGF0YUtleVByb3BlcnR5XCJcbiAgICAgICAgICAgICAgICBbaXRlbXNWYWx1ZVByb3BlcnR5XT1cImxvb2t1cERlc2NyaXB0b3IuaXRlbXNWYWx1ZVByb3BlcnR5XCJcbiAgICAgICAgICAgICAgICBbaXRlbXNMYWJlbFByb3BlcnR5XT1cImxvb2t1cERlc2NyaXB0b3IuaXRlbXNMYWJlbFByb3BlcnR5XCJcbiAgICAgICAgICAgICAgICBbaXRlbXNMYWJlbFRyYW5zbGF0ZV09XCJsb29rdXBEZXNjcmlwdG9yLml0ZW1zTGFiZWxUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFttdWx0aXNlbGVjdF09XCJsb29rdXBEZXNjcmlwdG9yLm11bHRpc2VsZWN0XCJcbiAgICAgICAgICAgICAgICBbb3Blbk9uRm9jdXNdPVwibG9va3VwRGVzY3JpcHRvci5hdXRvY29tcGxldGVPcGVuT25Gb2N1c1wiXG4gICAgICAgICAgICAgICAgW2lubGluZVNlYXJjaF09XCJsb29rdXBEZXNjcmlwdG9yLmF1dG9jb21wbGV0ZUlubGluZVNlYXJjaFwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImRlc2NyaXB0b3IucGxhY2Vob2xkZXIgPz8gJ21uZ1RhYmxlLnNlYXJjaFRvRmlsdGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzTmFtZV09XCJsb29rdXBEZXNjcmlwdG9yLmNsYXNzTmFtZVwiXG4gICAgICAgICAgICAgICAgW2Ryb3Bkb3duQ2xhc3NOYW1lXT1cImxvb2t1cERlc2NyaXB0b3IuZHJvcGRvd25DbGFzc05hbWVcIlxuICAgICAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJhdXRvY29tcGxldGVGaWx0ZXIoJGV2ZW50LCBmaWx0ZXJDYWxsYmFjaylcIj5cbiAgICAgICAgICAgIDwvbW5nLWF1dG9jb21wbGV0ZT5cbiAgICAgICAgICAgIDxtbmctZHJvcGRvd25cbiAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwibG9va3VwVHlwZURyb3Bkb3duXCJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgW2RhdGFQcm92aWRlcl09XCJsb29rdXBEZXNjcmlwdG9yLmRhdGFQcm92aWRlclwiXG4gICAgICAgICAgICAgICAgW2l0ZW1zVmFsdWVQcm9wZXJ0eV09XCJsb29rdXBEZXNjcmlwdG9yLml0ZW1zVmFsdWVQcm9wZXJ0eVwiXG4gICAgICAgICAgICAgICAgW2l0ZW1zTGFiZWxQcm9wZXJ0eV09XCJsb29rdXBEZXNjcmlwdG9yLml0ZW1zTGFiZWxQcm9wZXJ0eVwiXG4gICAgICAgICAgICAgICAgW2l0ZW1zTGFiZWxUcmFuc2xhdGVdPVwibG9va3VwRGVzY3JpcHRvci5pdGVtc0xhYmVsVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbbXVsdGlzZWxlY3RdPVwibG9va3VwRGVzY3JpcHRvci5tdWx0aXNlbGVjdFwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImRlc2NyaXB0b3IucGxhY2Vob2xkZXIgPz8gJ21uZ1RhYmxlLnNlbGVjdFRvRmlsdGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzTmFtZV09XCJsb29rdXBEZXNjcmlwdG9yLmNsYXNzTmFtZVwiXG4gICAgICAgICAgICAgICAgW2Ryb3Bkb3duQ2xhc3NOYW1lXT1cImxvb2t1cERlc2NyaXB0b3IuZHJvcGRvd25DbGFzc05hbWVcIlxuICAgICAgICAgICAgICAgIFtzaG93Q2xlYXJdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtjaGFuZ2VWYWx1ZU9uQmx1cl09XCJsb29rdXBEZXNjcmlwdG9yLm11bHRpc2VsZWN0XCJcbiAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwiZHJvcGRvd25GaWx0ZXIoJGV2ZW50LCBmaWx0ZXJDYWxsYmFjaylcIj5cbiAgICAgICAgICAgIDwvbW5nLWRyb3Bkb3duPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9wLWNvbHVtbkZpbHRlcj5cbiJdfQ==
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdGFibGV2aWV3L3RhYmxlL2NvbHVtbi1maWx0ZXIvY29sdW1uLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdGFibGV2aWV3L3RhYmxlL2NvbHVtbi1maWx0ZXIvY29sdW1uLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRzdFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFDLE9BQU8sRUFBZ0IsWUFBWSxFQUFFLG9CQUFvQixFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRy9FLE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFFaEk7OztHQUdHO0FBS0gsTUFBTSxPQUFPLDZCQUE2QjtJQXVCdEMsWUFBb0IsV0FBMEI7UUFBMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWU7UUF0QjlCLHVCQUFrQixHQUF5QixvQkFBb0IsQ0FBQyxRQUFRLENBQUM7UUFDekUsMkJBQXNCLEdBQXlCLG9CQUFvQixDQUFDLFlBQVksQ0FBQztRQVUxRixjQUFTLEdBQUcsTUFBTSxDQUFDO1FBQ25CLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUUxQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixvQkFBZSxHQUF3QixJQUFJLENBQUM7UUFJM0Msd0JBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQXdCLENBQUM7UUFJOUQsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUks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QyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsNEZBQTRGO0lBQzVGLGNBQWMsQ0FBQyxLQUFVLEVBQUUsY0FBd0I7UUFDL0MsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzVDLEtBQUssR0FBRyxTQUFTLENBQUM7U0FDckI7UUFDRCxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQzs7MEhBakhRLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLDRLQU8zQixZQUFZLGdEQ3hCM0IsMGdJQTBFQTsyRkR6RGEsNkJBQTZCO2tCQUp6QyxTQUFTOytCQUNJLHlCQUF5QjtvR0FPMUIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRTBCLGlCQUFpQjtzQkFBaEQsU0FBUzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtGaWx0ZXJNZXRhZGF0YSwgUHJpbWVOR0NvbmZpZywgU2VsZWN0SXRlbX0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHtDb2x1bW5GaWx0ZXJ9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWR9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0ZpbHRlckRlc2NyaXB0b3IsIEZpbHRlckxvb2t1cERlc2NyaXB0b3J9IGZyb20gJy4uLy4uLy4uLy4uL2Rlc2NyaXB0b3JzJztcbmltcG9ydCB7RmlsdGVyTG9va3VwVHlwZUVudW0sIEZpbHRlck1hdGNoTW9kZUVudW0sIEZpbHRlclR5cGVFbnVtLCBUYWJsZUZpbHRlckRpc3BsYXlFbnVtfSBmcm9tICcuLi8uLi8uLi8uLi9kZXNjcmlwdG9ycy90eXBlcyc7XG5cbi8qKlxuICogQ2Fubm90IGJlIG9uIHB1c2ggY2hhbmdlIGRldGVjdGlvbiBzdHJhdGVneSBiZWNhdXNlIG9mIGZpbHRlciB1cGRhdGVzIHRyaWdnZXJlZCBmcm9tIHJvdXRlIHdoaWNoIGNhdXNlcyB0byBmb3JjZSB1cGRhdGUgdmFsdWVzIGluIGZvcmNlIG1ldGFkYXRhXG4gKiBhbmQgdGhlc2UgbXVzdCBiZSBwcm9wYWdhdGVkIHRocm91Z2ggdG8gdGhpcyBjb21wb25lbnQgYW5kIGJleW9uZCB0byBwcmltZU5HLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21uZy10YWJsZS1jb2x1bW4tZmlsdGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29sdW1uLWZpbHRlci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgTW5nVGFibGVDb2x1bW5GaWx0ZXJDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIHJlYWRvbmx5IGxvb2t1cFR5cGVEcm9wZG93bjogRmlsdGVyTG9va3VwVHlwZUVudW0gPSBGaWx0ZXJMb29rdXBUeXBlRW51bS5Ecm9wZG93bjtcbiAgICBwdWJsaWMgcmVhZG9ubHkgbG9va3VwVHlwZUF1dG9jb21wbGV0ZTogRmlsdGVyTG9va3VwVHlwZUVudW0gPSBGaWx0ZXJMb29rdXBUeXBlRW51bS5BdXRvY29tcGxldGU7XG5cbiAgICBASW5wdXQoKSBkZXNjcmlwdG9yITogRmlsdGVyRGVzY3JpcHRvcjxUPjtcbiAgICBASW5wdXQoKSBkaXNwbGF5ITogVGFibGVGaWx0ZXJEaXNwbGF5RW51bTtcblxuICAgIEBWaWV3Q2hpbGQoQ29sdW1uRmlsdGVyKSBwdWJsaWMgcHJpbWVDb2x1bW5GaWx0ZXIhOiBDb2x1bW5GaWx0ZXI7XG5cbiAgICBwdWJsaWMgbG9va3VwRGVzY3JpcHRvcj86IEZpbHRlckxvb2t1cERlc2NyaXB0b3I8VD47XG5cbiAgICBwdWJsaWMgcHJpbWVGaWVsZCE6IHN0cmluZztcbiAgICBwdWJsaWMgcHJpbWVUeXBlID0gJ3RleHQnO1xuICAgIHB1YmxpYyBwcmltZVNob3dNYXRjaE1vZGUgPSB0cnVlO1xuICAgIHB1YmxpYyBwcmltZURlZmF1bHRNYXRjaE1vZGUhOiBGaWx0ZXJNYXRjaE1vZGVFbnVtO1xuICAgIHB1YmxpYyBwcmltZURpc3BsYXkgPSAncm93JztcbiAgICBwdWJsaWMgcHJpbWVNYXRjaE1vZGVzOiBTZWxlY3RJdGVtW10gfCBudWxsID0gbnVsbDtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gICAgcHJpdmF0ZSBkYXRlRmlsdGVyQ2FsbGJhY2s/OiBGdW5jdGlvbjtcbiAgICBwcml2YXRlIGRhdGVEZWJvdW5jZVN1YmplY3QgPSBuZXcgU3ViamVjdDxEYXRlIHwgRGF0ZVtdIHwgbnVsbD4oKTtcbiAgICBwcml2YXRlIGRhdGVEZWJvdW5jZVN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcHJpbWVDb25maWc6IFByaW1lTkdDb25maWcpIHtcbiAgICAgICAgdGhpcy5kYXRlRGVib3VuY2VTdWJzY3JpcHRpb24gPSB0aGlzLmRhdGVEZWJvdW5jZVN1YmplY3QucGlwZShkZWJvdW5jZVRpbWUoNTAwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKHYgPT4ge1xuICAgICAgICAgICAgdGhpcy5kYXRlRmlsdGVyQ2FsbGJhY2s/Lih2KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhY3RpdmVNYXRjaE1vZGUoKTogRmlsdGVyTWF0Y2hNb2RlRW51bSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMucHJpbWVDb2x1bW5GaWx0ZXI/LmR0LmZpbHRlcnNbdGhpcy5kZXNjcmlwdG9yLnByb3BlcnR5XSBhcyBGaWx0ZXJNZXRhZGF0YTtcbiAgICAgICAgcmV0dXJuIGZpbHRlcj8ubWF0Y2hNb2RlIGFzIEZpbHRlck1hdGNoTW9kZUVudW0gfCB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMucHJpbWVEZWZhdWx0TWF0Y2hNb2RlID0gdGhpcy5kZXNjcmlwdG9yLmRlZmF1bHRGaWx0ZXJNYXRjaE1vZGUgPz8gRmlsdGVyTWF0Y2hNb2RlRW51bS5FcXVhbHM7XG5cbiAgICAgICAgc3dpdGNoICh0aGlzLmRlc2NyaXB0b3IuZmlsdGVyVHlwZSkge1xuICAgICAgICAgICAgY2FzZSBGaWx0ZXJUeXBlRW51bS5Cb29sZWFuOlxuICAgICAgICAgICAgICAgIHRoaXMucHJpbWVUeXBlID0gJ2Jvb2xlYW4nO1xuICAgICAgICAgICAgICAgIHRoaXMucHJpbWVTaG93TWF0Y2hNb2RlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpbHRlclR5cGVFbnVtLk51bWJlcjpcbiAgICAgICAgICAgICAgICB0aGlzLnByaW1lVHlwZSA9ICdudW1lcmljJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRmlsdGVyVHlwZUVudW0uRGF0ZTpcbiAgICAgICAgICAgICAgICB0aGlzLnByaW1lVHlwZSA9ICdkYXRlJztcbiAgICAgICAgICAgICAgICB0aGlzLnByaW1lRGVmYXVsdE1hdGNoTW9kZSA9IEZpbHRlck1hdGNoTW9kZUVudW0uRGF0ZUlzO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGaWx0ZXJUeXBlRW51bS5Mb29rdXA6XG4gICAgICAgICAgICAgICAgdGhpcy5wcmltZVR5cGUgPSAnbG9va3VwJztcbiAgICAgICAgICAgICAgICB0aGlzLnByaW1lU2hvd01hdGNoTW9kZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMubG9va3VwRGVzY3JpcHRvciA9IHRoaXMuZGVzY3JpcHRvciBhcyBGaWx0ZXJMb29rdXBEZXNjcmlwdG9yPFQ+O1xuICAgICAgICAgICAgICAgIHRoaXMucHJpbWVGaWVsZCA9IGAke3RoaXMuZGVzY3JpcHRvci5wcm9wZXJ0eX0ke3RoaXMubG9va3VwRGVzY3JpcHRvci5pdGVtc1ZhbHVlUHJvcGVydHkgPyBgLiR7dGhpcy5sb29rdXBEZXNjcmlwdG9yLml0ZW1zVmFsdWVQcm9wZXJ0eX1gIDogJyd9YDtcbiAgICAgICAgICAgICAgICB0aGlzLnByaW1lTWF0Y2hNb2RlcyA9IFt7dmFsdWU6IEZpbHRlck1hdGNoTW9kZUVudW0uRXF1YWxzLCBsYWJlbDogdGhpcy5wcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGVFbnVtLkVxdWFscyl9XTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvb2t1cERlc2NyaXB0b3IubXVsdGlzZWxlY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmltZURlZmF1bHRNYXRjaE1vZGUgPSBGaWx0ZXJNYXRjaE1vZGVFbnVtLkluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRmlsdGVyVHlwZUVudW0uU3RyaW5nOlxuICAgICAgICAgICAgICAgIHRoaXMucHJpbWVUeXBlID0gJ3RleHQnO1xuICAgICAgICAgICAgICAgIHRoaXMucHJpbWVEZWZhdWx0TWF0Y2hNb2RlID0gRmlsdGVyTWF0Y2hNb2RlRW51bS5Db250YWlucztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3IubWF0Y2hNb2Rlcykge1xuICAgICAgICAgICAgdGhpcy5wcmltZU1hdGNoTW9kZXMgPSB0aGlzLmRlc2NyaXB0b3IubWF0Y2hNb2Rlcy5tYXAobW0gPT4gPFNlbGVjdEl0ZW0+e3ZhbHVlOiBtbSwgbGFiZWw6IHRoaXMucHJpbWVDb25maWcuZ2V0VHJhbnNsYXRpb24obW0pfSk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5wcmltZU1hdGNoTW9kZXMubWFwKG1hdGNoTW9kZSA9PiBtYXRjaE1vZGUudmFsdWUpLmluY2x1ZGVzKHRoaXMucHJpbWVEZWZhdWx0TWF0Y2hNb2RlKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucHJpbWVEZWZhdWx0TWF0Y2hNb2RlID0gdGhpcy5kZXNjcmlwdG9yLm1hdGNoTW9kZXNbMF0gYXMgRmlsdGVyTWF0Y2hNb2RlRW51bTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5wcmltZVNob3dNYXRjaE1vZGUgPSB0aGlzLnByaW1lTWF0Y2hNb2Rlcz8ubGVuZ3RoID4gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXkgPT09IFRhYmxlRmlsdGVyRGlzcGxheUVudW0uTWVudSkge1xuICAgICAgICAgICAgdGhpcy5wcmltZURpc3BsYXkgPSAnbWVudSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kYXRlRGVib3VuY2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbiAgICBkYXRlRmlsdGVyKHZhbHVlOiBEYXRlIHwgRGF0ZVtdIHwgbnVsbCwgZmlsdGVyQ2FsbGJhY2s6IEZ1bmN0aW9uKSB7XG4gICAgICAgIHRoaXMuZGF0ZUZpbHRlckNhbGxiYWNrID0gZmlsdGVyQ2FsbGJhY2s7XG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZU1hdGNoTW9kZSA9PT0gRmlsdGVyTWF0Y2hNb2RlRW51bS5CZXR3ZWVuICYmIEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRlVmFsdWVzID0gdmFsdWUuZmlsdGVyKHYgPT4gdiBpbnN0YW5jZW9mIERhdGUpO1xuICAgICAgICAgICAgaWYgKGRhdGVWYWx1ZXMubGVuZ3RoIDw9IDEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kYXRlRGVib3VuY2VTdWJqZWN0Lm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gICAgZGF0ZVJhbmdlQ2hhbmdlKHZhbHVlOiBEYXRlW10gfCBudWxsLCBmaWx0ZXJDYWxsYmFjazogRnVuY3Rpb24pIHtcbiAgICAgICAgZmlsdGVyQ2FsbGJhY2sodmFsdWUpO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gICAgYXV0b2NvbXBsZXRlRmlsdGVyKHZhbHVlOiBULCBmaWx0ZXJDYWxsYmFjazogRnVuY3Rpb24pIHtcbiAgICAgICAgZmlsdGVyQ2FsbGJhY2sodmFsdWUpO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgZHJvcGRvd25GaWx0ZXIodmFsdWU6IGFueSwgZmlsdGVyQ2FsbGJhY2s6IEZ1bmN0aW9uKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGZpbHRlckNhbGxiYWNrKHZhbHVlKTtcbiAgICB9XG59XG4iLCI8cC1jb2x1bW5GaWx0ZXJcbiAgICBjbGFzcz1cIm1sLWF1dG9cIlxuICAgIFt0eXBlXT1cInByaW1lVHlwZVwiXG4gICAgW2ZpZWxkXT1cImRlc2NyaXB0b3IucHJvcGVydHlcIlxuICAgIFtkaXNwbGF5XT1cInByaW1lRGlzcGxheVwiXG4gICAgW21hdGNoTW9kZV09XCIkYW55KHByaW1lRGVmYXVsdE1hdGNoTW9kZSlcIlxuICAgIFttYXRjaE1vZGVPcHRpb25zXT1cIiRhbnkocHJpbWVNYXRjaE1vZGVzKVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cImRlc2NyaXB0b3IucGxhY2Vob2xkZXIgPz8gJ21uZ1RhYmxlLnR5cGVUb0ZpbHRlcicgfCB0cmFuc2xhdGVcIlxuICAgIFtzaG93TWF0Y2hNb2Rlc109XCJ0cnVlXCJcbiAgICBbc2hvd09wZXJhdG9yXT1cImZhbHNlXCJcbiAgICBbc2hvd0FkZEJ1dHRvbl09XCJmYWxzZVwiXG4gICAgW2hpZGVPbkNsZWFyXT1cInRydWVcIlxuICAgIFtzaG93TWVudV09XCJwcmltZVNob3dNYXRjaE1vZGVcIlxuICAgIFttaW5GcmFjdGlvbkRpZ2l0c109XCIkYW55KGRlc2NyaXB0b3IubnVtYmVyTWluRnJhY3Rpb25EaWdpdHMpXCJcbiAgICBbbWF4RnJhY3Rpb25EaWdpdHNdPVwiJGFueShkZXNjcmlwdG9yLm51bWJlck1heEZyYWN0aW9uRGlnaXRzKVwiXG4gICAgW3VzZUdyb3VwaW5nXT1cImRlc2NyaXB0b3IubnVtYmVyVXNlR3JvdXBpbmdcIj5cbiAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJwcmltZVR5cGUgPT09ICdkYXRlJ1wiIHBUZW1wbGF0ZT1cImZpbHRlclwiIGxldC12YWx1ZSBsZXQtZmlsdGVyQ2FsbGJhY2s9XCJmaWx0ZXJDYWxsYmFja1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aXZlTWF0Y2hNb2RlID09PSAnYmV0d2Vlbic7IGVsc2UgZGF0ZVBpY2tlclwiPlxuICAgICAgICAgICAgPG1uZy1kYXRlLXJhbmdlXG4gICAgICAgICAgICAgICAgW25nTW9kZWxdPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImRhdGVGaWx0ZXIoJGV2ZW50LCBmaWx0ZXJDYWxsYmFjaylcIlxuICAgICAgICAgICAgICAgIFtzaG93VGltZV09XCJkZXNjcmlwdG9yLmRhdGVQaWNrZXJTaG93VGltZVwiXG4gICAgICAgICAgICAgICAgW2RhdGVGb3JtYXRdPVwiZGVzY3JpcHRvci5kYXRlUGlja2VyRm9ybWF0XCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZGVzY3JpcHRvci5wbGFjZWhvbGRlciA/PyAnbW5nVGFibGUudHlwZVRvRmlsdGVyJyB8IHRyYW5zbGF0ZVwiPjwvbW5nLWRhdGUtcmFuZ2U+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2RhdGVQaWNrZXI+XG4gICAgICAgICAgICA8cC1jYWxlbmRhclxuICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgICAgICAgICAgICAgW25nTW9kZWxdPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImRhdGVGaWx0ZXIoJGV2ZW50LCBmaWx0ZXJDYWxsYmFjaylcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJkZXNjcmlwdG9yLnBsYWNlaG9sZGVyID8/ICdtbmdUYWJsZS50eXBlVG9GaWx0ZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbc2hvd0ljb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2RhdGVGb3JtYXRdPVwiZGVzY3JpcHRvci5kYXRlUGlja2VyRm9ybWF0ID8/ICdkZC5tbS55eSdcIlxuICAgICAgICAgICAgICAgIFtzaG93VGltZV09XCJkZXNjcmlwdG9yLmRhdGVQaWNrZXJTaG93VGltZVwiXG4gICAgICAgICAgICAgICAgW2ZpcnN0RGF5T2ZXZWVrXT1cIjFcIj5cbiAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cImxvb2t1cERlc2NyaXB0b3JcIiBwVGVtcGxhdGU9XCJmaWx0ZXJcIiBsZXQtdmFsdWUgbGV0LWZpbHRlckNhbGxiYWNrPVwiZmlsdGVyQ2FsbGJhY2tcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwibG9va3VwRGVzY3JpcHRvci5sb29rdXBUeXBlXCI+XG4gICAgICAgICAgICA8bW5nLWF1dG9jb21wbGV0ZVxuICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJsb29rdXBUeXBlQXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgW2RhdGFQcm92aWRlcl09XCJsb29rdXBEZXNjcmlwdG9yLmRhdGFQcm92aWRlclwiXG4gICAgICAgICAgICAgICAgW2RhdGFLZXlQcm9wZXJ0eV09XCJsb29rdXBEZXNjcmlwdG9yLmRhdGFLZXlQcm9wZXJ0eVwiXG4gICAgICAgICAgICAgICAgW2l0ZW1zVmFsdWVQcm9wZXJ0eV09XCJsb29rdXBEZXNjcmlwdG9yLml0ZW1zVmFsdWVQcm9wZXJ0eVwiXG4gICAgICAgICAgICAgICAgW2l0ZW1zTGFiZWxQcm9wZXJ0eV09XCJsb29rdXBEZXNjcmlwdG9yLml0ZW1zTGFiZWxQcm9wZXJ0eVwiXG4gICAgICAgICAgICAgICAgW2l0ZW1zTGFiZWxUcmFuc2xhdGVdPVwibG9va3VwRGVzY3JpcHRvci5pdGVtc0xhYmVsVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbbXVsdGlzZWxlY3RdPVwibG9va3VwRGVzY3JpcHRvci5tdWx0aXNlbGVjdFwiXG4gICAgICAgICAgICAgICAgW29wZW5PbkZvY3VzXT1cImxvb2t1cERlc2NyaXB0b3IuYXV0b2NvbXBsZXRlT3Blbk9uRm9jdXNcIlxuICAgICAgICAgICAgICAgIFtpbmxpbmVTZWFyY2hdPVwibG9va3VwRGVzY3JpcHRvci5hdXRvY29tcGxldGVJbmxpbmVTZWFyY2hcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJkZXNjcmlwdG9yLnBsYWNlaG9sZGVyID8/ICdtbmdUYWJsZS5zZWFyY2hUb0ZpbHRlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtjbGFzc05hbWVdPVwibG9va3VwRGVzY3JpcHRvci5jbGFzc05hbWVcIlxuICAgICAgICAgICAgICAgIFtkcm9wZG93bkNsYXNzTmFtZV09XCJsb29rdXBEZXNjcmlwdG9yLmRyb3Bkb3duQ2xhc3NOYW1lXCJcbiAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwiYXV0b2NvbXBsZXRlRmlsdGVyKCRldmVudCwgZmlsdGVyQ2FsbGJhY2spXCI+XG4gICAgICAgICAgICA8L21uZy1hdXRvY29tcGxldGU+XG4gICAgICAgICAgICA8bW5nLWRyb3Bkb3duXG4gICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cImxvb2t1cFR5cGVEcm9wZG93blwiXG4gICAgICAgICAgICAgICAgW25nTW9kZWxdPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgIFtkYXRhUHJvdmlkZXJdPVwibG9va3VwRGVzY3JpcHRvci5kYXRhUHJvdmlkZXJcIlxuICAgICAgICAgICAgICAgIFtpdGVtc1ZhbHVlUHJvcGVydHldPVwibG9va3VwRGVzY3JpcHRvci5pdGVtc1ZhbHVlUHJvcGVydHlcIlxuICAgICAgICAgICAgICAgIFtpdGVtc0xhYmVsUHJvcGVydHldPVwibG9va3VwRGVzY3JpcHRvci5pdGVtc0xhYmVsUHJvcGVydHlcIlxuICAgICAgICAgICAgICAgIFtpdGVtc0xhYmVsVHJhbnNsYXRlXT1cImxvb2t1cERlc2NyaXB0b3IuaXRlbXNMYWJlbFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW211bHRpc2VsZWN0XT1cImxvb2t1cERlc2NyaXB0b3IubXVsdGlzZWxlY3RcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJkZXNjcmlwdG9yLnBsYWNlaG9sZGVyID8/ICdtbmdUYWJsZS5zZWxlY3RUb0ZpbHRlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtjbGFzc05hbWVdPVwibG9va3VwRGVzY3JpcHRvci5jbGFzc05hbWVcIlxuICAgICAgICAgICAgICAgIFtkcm9wZG93bkNsYXNzTmFtZV09XCJsb29rdXBEZXNjcmlwdG9yLmRyb3Bkb3duQ2xhc3NOYW1lXCJcbiAgICAgICAgICAgICAgICBbc2hvd0NsZWFyXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICBbY2hhbmdlVmFsdWVPbkJsdXJdPVwibG9va3VwRGVzY3JpcHRvci5tdWx0aXNlbGVjdFwiXG4gICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cImRyb3Bkb3duRmlsdGVyKCRldmVudCwgZmlsdGVyQ2FsbGJhY2spXCI+XG4gICAgICAgICAgICA8L21uZy1kcm9wZG93bj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvcC1jb2x1bW5GaWx0ZXI+XG4iXX0=
@@ -5,12 +5,11 @@ import * as i1 from "primeng/api";
5
5
  import * as i2 from "@ngx-translate/core";
6
6
  import * as i3 from "../../../../pipes";
7
7
  import * as i4 from "@angular/common";
8
- import * as i5 from "primeng/tooltip";
9
- import * as i6 from "primeng/button";
10
- import * as i7 from "primeng/ripple";
11
- import * as i8 from "../../../../directives/component.directive";
12
- import * as i9 from "../../../../pipes/enum.pipe";
13
- import * as i10 from "../../../../pipes/boolean.pipe";
8
+ import * as i5 from "primeng/button";
9
+ import * as i6 from "primeng/ripple";
10
+ import * as i7 from "../../../../directives/component.directive";
11
+ import * as i8 from "../../../../pipes/enum.pipe";
12
+ import * as i9 from "../../../../pipes/boolean.pipe";
14
13
  export class MngTableColumnValueComponent {
15
14
  constructor(elementRef, messageService, translate, jsonPathPipe, getterPipe, templatePipe) {
16
15
  this.elementRef = elementRef;
@@ -66,10 +65,10 @@ export class MngTableColumnValueComponent {
66
65
  }
67
66
  }
68
67
  MngTableColumnValueComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngTableColumnValueComponent, deps: [{ token: i0.ElementRef }, { token: i1.MessageService }, { token: i2.TranslateService }, { token: i3.JsonPathPipe }, { token: i3.MngGetterPipe }, { token: i3.MngTemplatePipe }], target: i0.ɵɵFactoryTarget.Component });
69
- MngTableColumnValueComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: MngTableColumnValueComponent, selector: "mng-table-column-value", inputs: { descriptor: "descriptor", item: "item" }, host: { properties: { "style.max-width.px": "this.styleMaxWidth", "class": "this.className" } }, ngImport: i0, template: "<ng-container [ngSwitch]=\"descriptor.columnDisplayType\">\n <i *ngIf=\"descriptor.localizationExistsProperty && !item[descriptor.localizationExistsProperty]\" class=\"pi pi-exclamation-circle\" [pTooltip]=\"'mngTable.translationMissing' | translate\"></i>\n <ng-container *ngSwitchCase=\"columnDisplayTypeString\">\n {{ value }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeHtml\">\n <span [innerHTML]=\"value\"></span>\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeNumber\">\n {{ value | number: descriptor.displayFormat:descriptor.locale }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeCurrency\">\n {{ value | currency: currency:descriptor.currencyDisplay:descriptor.displayFormat:descriptor.locale }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeDate\">\n {{ value | date: descriptor.displayFormat }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeBoolean\">\n <ng-container *ngIf=\"descriptor.booleanAsIcon; else booleanText\">\n <i [class]=\"value | boolean: descriptor.booleanYes:descriptor.booleanNo:true\"></i>\n </ng-container>\n <ng-template #booleanText>\n {{ value | boolean: descriptor.booleanYes:descriptor.booleanNo | translate }}\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeEnum\">\n {{ value | enum: descriptor.enumType:descriptor.enumTitlePath:descriptor.enumNameAsValue | translate }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeComponent\">\n <ng-container\n [mngComponent]=\"descriptor.customComponentType!\"\n [inputs]=\"{\n value: value,\n item: item,\n descriptor: descriptor\n }\"></ng-container>\n </ng-container>\n</ng-container>\n<div class=\"help-buttons\" *ngIf=\"descriptor.hasCopyToClipboard\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-copy\" class=\"p-button-rounded p-button-info p-button-sm\" (click)=\"copyToClipboard($event)\"></button>\n</div>\n", styles: [":host{display:inline-block;overflow:hidden}:host.nowrap{white-space:nowrap;text-overflow:ellipsis}.help-buttons{display:none;position:absolute;right:0;top:50%;transform:translateY(-50%)}.help-buttons .p-button{height:1.9rem;width:1.9rem;padding:0}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i6.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "directive", type: i7.Ripple, selector: "[pRipple]" }, { kind: "directive", type: i8.MngComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "inputs"], outputs: ["instanceCreated"] }, { kind: "pipe", type: i4.DecimalPipe, name: "number" }, { kind: "pipe", type: i4.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i4.DatePipe, name: "date" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: i9.MngEnumPipe, name: "enum" }, { kind: "pipe", type: i10.MngBooleanPipe, name: "boolean" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
68
+ MngTableColumnValueComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: MngTableColumnValueComponent, selector: "mng-table-column-value", inputs: { descriptor: "descriptor", item: "item" }, host: { properties: { "style.max-width.px": "this.styleMaxWidth", "class": "this.className" } }, ngImport: i0, template: "<ng-container [ngSwitch]=\"descriptor.columnDisplayType\">\n <ng-container *ngSwitchCase=\"columnDisplayTypeString\">\n {{ value }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeHtml\">\n <span [innerHTML]=\"value\"></span>\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeNumber\">\n {{ value | number: descriptor.displayFormat:descriptor.locale }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeCurrency\">\n {{ value | currency: currency:descriptor.currencyDisplay:descriptor.displayFormat:descriptor.locale }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeDate\">\n {{ value | date: descriptor.displayFormat }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeBoolean\">\n <ng-container *ngIf=\"descriptor.booleanAsIcon; else booleanText\">\n <i [class]=\"value | boolean: descriptor.booleanYes:descriptor.booleanNo:true\"></i>\n </ng-container>\n <ng-template #booleanText>\n {{ value | boolean: descriptor.booleanYes:descriptor.booleanNo | translate }}\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeEnum\">\n {{ value | enum: descriptor.enumType:descriptor.enumTitlePath:descriptor.enumNameAsValue | translate }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeComponent\">\n <ng-container\n [mngComponent]=\"descriptor.customComponentType!\"\n [inputs]=\"{\n value: value,\n item: item,\n descriptor: descriptor\n }\"></ng-container>\n </ng-container>\n</ng-container>\n<div class=\"help-buttons\" *ngIf=\"descriptor.hasCopyToClipboard\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-copy\" class=\"p-button-rounded p-button-info p-button-sm\" (click)=\"copyToClipboard($event)\"></button>\n</div>\n", styles: [":host{display:inline-block;overflow:hidden}:host.nowrap{white-space:nowrap;text-overflow:ellipsis}.help-buttons{display:none;position:absolute;right:0;top:50%;transform:translateY(-50%)}.help-buttons .p-button{height:1.9rem;width:1.9rem;padding:0}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "directive", type: i6.Ripple, selector: "[pRipple]" }, { kind: "directive", type: i7.MngComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "inputs"], outputs: ["instanceCreated"] }, { kind: "pipe", type: i4.DecimalPipe, name: "number" }, { kind: "pipe", type: i4.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i4.DatePipe, name: "date" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: i8.MngEnumPipe, name: "enum" }, { kind: "pipe", type: i9.MngBooleanPipe, name: "boolean" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
70
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngTableColumnValueComponent, decorators: [{
71
70
  type: Component,
72
- args: [{ selector: 'mng-table-column-value', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [ngSwitch]=\"descriptor.columnDisplayType\">\n <i *ngIf=\"descriptor.localizationExistsProperty && !item[descriptor.localizationExistsProperty]\" class=\"pi pi-exclamation-circle\" [pTooltip]=\"'mngTable.translationMissing' | translate\"></i>\n <ng-container *ngSwitchCase=\"columnDisplayTypeString\">\n {{ value }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeHtml\">\n <span [innerHTML]=\"value\"></span>\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeNumber\">\n {{ value | number: descriptor.displayFormat:descriptor.locale }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeCurrency\">\n {{ value | currency: currency:descriptor.currencyDisplay:descriptor.displayFormat:descriptor.locale }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeDate\">\n {{ value | date: descriptor.displayFormat }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeBoolean\">\n <ng-container *ngIf=\"descriptor.booleanAsIcon; else booleanText\">\n <i [class]=\"value | boolean: descriptor.booleanYes:descriptor.booleanNo:true\"></i>\n </ng-container>\n <ng-template #booleanText>\n {{ value | boolean: descriptor.booleanYes:descriptor.booleanNo | translate }}\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeEnum\">\n {{ value | enum: descriptor.enumType:descriptor.enumTitlePath:descriptor.enumNameAsValue | translate }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeComponent\">\n <ng-container\n [mngComponent]=\"descriptor.customComponentType!\"\n [inputs]=\"{\n value: value,\n item: item,\n descriptor: descriptor\n }\"></ng-container>\n </ng-container>\n</ng-container>\n<div class=\"help-buttons\" *ngIf=\"descriptor.hasCopyToClipboard\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-copy\" class=\"p-button-rounded p-button-info p-button-sm\" (click)=\"copyToClipboard($event)\"></button>\n</div>\n", styles: [":host{display:inline-block;overflow:hidden}:host.nowrap{white-space:nowrap;text-overflow:ellipsis}.help-buttons{display:none;position:absolute;right:0;top:50%;transform:translateY(-50%)}.help-buttons .p-button{height:1.9rem;width:1.9rem;padding:0}\n"] }]
71
+ args: [{ selector: 'mng-table-column-value', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [ngSwitch]=\"descriptor.columnDisplayType\">\n <ng-container *ngSwitchCase=\"columnDisplayTypeString\">\n {{ value }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeHtml\">\n <span [innerHTML]=\"value\"></span>\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeNumber\">\n {{ value | number: descriptor.displayFormat:descriptor.locale }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeCurrency\">\n {{ value | currency: currency:descriptor.currencyDisplay:descriptor.displayFormat:descriptor.locale }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeDate\">\n {{ value | date: descriptor.displayFormat }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeBoolean\">\n <ng-container *ngIf=\"descriptor.booleanAsIcon; else booleanText\">\n <i [class]=\"value | boolean: descriptor.booleanYes:descriptor.booleanNo:true\"></i>\n </ng-container>\n <ng-template #booleanText>\n {{ value | boolean: descriptor.booleanYes:descriptor.booleanNo | translate }}\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeEnum\">\n {{ value | enum: descriptor.enumType:descriptor.enumTitlePath:descriptor.enumNameAsValue | translate }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeComponent\">\n <ng-container\n [mngComponent]=\"descriptor.customComponentType!\"\n [inputs]=\"{\n value: value,\n item: item,\n descriptor: descriptor\n }\"></ng-container>\n </ng-container>\n</ng-container>\n<div class=\"help-buttons\" *ngIf=\"descriptor.hasCopyToClipboard\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-copy\" class=\"p-button-rounded p-button-info p-button-sm\" (click)=\"copyToClipboard($event)\"></button>\n</div>\n", styles: [":host{display:inline-block;overflow:hidden}:host.nowrap{white-space:nowrap;text-overflow:ellipsis}.help-buttons{display:none;position:absolute;right:0;top:50%;transform:translateY(-50%)}.help-buttons .p-button{height:1.9rem;width:1.9rem;padding:0}\n"] }]
73
72
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.MessageService }, { type: i2.TranslateService }, { type: i3.JsonPathPipe }, { type: i3.MngGetterPipe }, { type: i3.MngTemplatePipe }]; }, propDecorators: { descriptor: [{
74
73
  type: Input
75
74
  }], item: [{
@@ -81,4 +80,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
81
80
  type: HostBinding,
82
81
  args: ['class']
83
82
  }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXZhbHVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXZpZXcvdGFibGUvY29sdW1uLXZhbHVlL2NvbHVtbi12YWx1ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdGFibGV2aWV3L3RhYmxlL2NvbHVtbi12YWx1ZS9jb2x1bW4tdmFsdWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBYyxXQUFXLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBTXpHLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7Ozs7QUFTcEUsTUFBTSxPQUFPLDRCQUE0QjtJQXNCckMsWUFDWSxVQUFzQixFQUN0QixjQUE4QixFQUM5QixTQUEyQixFQUMzQixZQUEwQixFQUMxQixVQUF5QixFQUN6QixZQUE2QjtRQUw3QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixlQUFVLEdBQVYsVUFBVSxDQUFlO1FBQ3pCLGlCQUFZLEdBQVosWUFBWSxDQUFpQjtRQTNCekIsNEJBQXVCLEdBQTBCLHFCQUFxQixDQUFDLE1BQU0sQ0FBQztRQUM5RSw0QkFBdUIsR0FBMEIscUJBQXFCLENBQUMsTUFBTSxDQUFDO1FBQzlFLDhCQUF5QixHQUEwQixxQkFBcUIsQ0FBQyxRQUFRLENBQUM7UUFDbEYsNkJBQXdCLEdBQTBCLHFCQUFxQixDQUFDLE9BQU8sQ0FBQztRQUNoRiwwQkFBcUIsR0FBMEIscUJBQXFCLENBQUMsSUFBSSxDQUFDO1FBQzFFLDBC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LDRCQUE0Qjs2R0FBNUIsNEJBQTRCLG1OQ2Z6QywwcEVBeUNBOzJGRDFCYSw0QkFBNEI7a0JBTnhDLFNBQVM7K0JBQ0ksd0JBQXdCLG1CQUdqQix1QkFBdUIsQ0FBQyxNQUFNO2tQQVl0QyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFb0MsYUFBYTtzQkFBdEQsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBQ0osU0FBUztzQkFBckMsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge01lc3NhZ2VTZXJ2aWNlfSBmcm9tICdwcmltZW5nL2FwaSc7XG5cbmltcG9ydCB7Q29sdW1uRGVzY3JpcHRvcn0gZnJvbSAnLi4vLi4vLi4vLi4vZGVzY3JpcHRvcnMnO1xuaW1wb3J0IHtDb2x1bW5EaXNwbGF5VHlwZUVudW19IGZyb20gJy4uLy4uLy4uLy4uL2Rlc2NyaXB0b3JzL3R5cGVzJztcbmltcG9ydCB7SnNvblBhdGhQaXBlLCBNbmdHZXR0ZXJQaXBlLCBNbmdUZW1wbGF0ZVBpcGV9IGZyb20gJy4uLy4uLy4uLy4uL3BpcGVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtbmctdGFibGUtY29sdW1uLXZhbHVlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29sdW1uLXZhbHVlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb2x1bW4tdmFsdWUuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNbmdUYWJsZUNvbHVtblZhbHVlQ29tcG9uZW50PFQsIFRUPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtbkRpc3BsYXlUeXBlU3RyaW5nOiBDb2x1bW5EaXNwbGF5VHlwZUVudW0gPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uU3RyaW5nO1xuICAgIHB1YmxpYyByZWFkb25seSBjb2x1bW5EaXNwbGF5VHlwZU51bWJlcjogQ29sdW1uRGlzcGxheVR5cGVFbnVtID0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLk51bWJlcjtcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29sdW1uRGlzcGxheVR5cGVDdXJyZW5jeTogQ29sdW1uRGlzcGxheVR5cGVFbnVtID0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkN1cnJlbmN5O1xuICAgIHB1YmxpYyByZWFkb25seSBjb2x1bW5EaXNwbGF5VHlwZUJvb2xlYW46IENvbHVtbkRpc3BsYXlUeXBlRW51bSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5Cb29sZWFuO1xuICAgIHB1YmxpYyByZWFkb25seSBjb2x1bW5EaXNwbGF5VHlwZURhdGU6IENvbHVtbkRpc3BsYXlUeXBlRW51bSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5EYXRlO1xuICAgIHB1YmxpYyByZWFkb25seSBjb2x1bW5EaXNwbGF5VHlwZUVudW06IENvbHVtbkRpc3BsYXlUeXBlRW51bSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5FbnVtO1xuICAgIHB1YmxpYyByZWFkb25seSBjb2x1bW5EaXNwbGF5VHlwZUNvbXBvbmVudDogQ29sdW1uRGlzcGxheVR5cGVFbnVtID0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkNvbXBvbmVudDtcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29sdW1uRGlzcGxheVR5cGVIdG1sOiBDb2x1bW5EaXNwbGF5VHlwZUVudW0gPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uSHRtbDtcblxuICAgIEBJbnB1dCgpIGRlc2NyaXB0b3IhOiBDb2x1bW5EZXNjcmlwdG9yPFQsIFRUPjtcbiAgICBASW5wdXQoKSBpdGVtITogYW55O1xuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXgtd2lkdGgucHgnKSBwdWJsaWMgc3R5bGVNYXhXaWR0aDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIHB1YmxpYyBjbGFzc05hbWUgPSAnbm93cmFwJztcblxuICAgIHB1YmxpYyBjdXJyZW5jeT86IHN0cmluZztcblxuICAgIHB1YmxpYyBqc29uUGF0aCA9ICckJztcblxuICAgIHB1YmxpYyB2YWx1ZTogYW55O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGpzb25QYXRoUGlwZTogSnNvblBhdGhQaXBlLFxuICAgICAgICBwcml2YXRlIGdldHRlclBpcGU6IE1uZ0dldHRlclBpcGUsXG4gICAgICAgIHByaXZhdGUgdGVtcGxhdGVQaXBlOiBNbmdUZW1wbGF0ZVBpcGVcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3IuY29sdW1uRGlzcGxheVR5cGUgPT09IENvbHVtbkRpc3BsYXlUeXBlRW51bS5DdXJyZW5jeSkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW5jeSA9IHRoaXMuZGVzY3JpcHRvci5jdXJyZW5jeUZyb21Qcm9wZXJ0eSA/IHRoaXMuaXRlbVt0aGlzLmRlc2NyaXB0b3IuY3VycmVuY3lGcm9tUHJvcGVydHldIDogdGhpcy5kZXNjcmlwdG9yLmN1cnJlbmN5Q29kZSA/PyAnRVVSJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3IubWF4V2lkdGgpIHtcbiAgICAgICAgICAgIHRoaXMuc3R5bGVNYXhXaWR0aCA9IHRoaXMuZGVzY3JpcHRvci5tYXhXaWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3IuanNvblBhdGgpIHtcbiAgICAgICAgICAgIHRoaXMuanNvblBhdGggPSB0aGlzLmRlc2NyaXB0b3IuanNvblBhdGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmpzb25QYXRoID0gYCQuJHt0aGlzLmRlc2NyaXB0b3IucHJvcGVydHl9YDtcbiAgICAgICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3Iub2JqZWN0TW9kZWxUeXBlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5qc29uUGF0aCA9IGAkLiR7dGhpcy5kZXNjcmlwdG9yLnByb3BlcnR5fS4ke3RoaXMuZGVzY3JpcHRvci5vYmplY3RUaXRsZVByb3BlcnR5fWA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLmpzb25QYXRoUGlwZS50cmFuc2Zvcm0odGhpcy5pdGVtLCB0aGlzLmpzb25QYXRoKTtcblxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGVzY3JpcHRvci5nZXR0ZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdGhpcy5nZXR0ZXJQaXBlLnRyYW5zZm9ybSh0aGlzLml0ZW0sIHRoaXMuZGVzY3JpcHRvci5nZXR0ZXIsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kZXNjcmlwdG9yLnRlbXBsYXRlKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHRoaXMudGVtcGxhdGVQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgdGhpcy5kZXNjcmlwdG9yLnRlbXBsYXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29weVRvQ2xpcGJvYXJkKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5pbm5lclRleHQudHJpbSgpO1xuICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh2YWx1ZSk7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnbW5nVGFibGUuY29weU5vdGlmaWNhdGlvblRpdGxlJyk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdtbmdUYWJsZS5jb3B5Tm90aWZpY2F0aW9uTWVzc2FnZScsIHt2YWx1ZX0pO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7c2V2ZXJpdHk6ICdpbmZvJywgc3VtbWFyeTogdGl0bGUsIGRldGFpbDogbWVzc2FnZX0pO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImRlc2NyaXB0b3IuY29sdW1uRGlzcGxheVR5cGVcIj5cbiAgICA8aSAqbmdJZj1cImRlc2NyaXB0b3IubG9jYWxpemF0aW9uRXhpc3RzUHJvcGVydHkgJiYgIWl0ZW1bZGVzY3JpcHRvci5sb2NhbGl6YXRpb25FeGlzdHNQcm9wZXJ0eV1cIiBjbGFzcz1cInBpIHBpLWV4Y2xhbWF0aW9uLWNpcmNsZVwiIFtwVG9vbHRpcF09XCInbW5nVGFibGUudHJhbnNsYXRpb25NaXNzaW5nJyB8IHRyYW5zbGF0ZVwiPjwvaT5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJjb2x1bW5EaXNwbGF5VHlwZVN0cmluZ1wiPlxuICAgICAgICB7eyB2YWx1ZSB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImNvbHVtbkRpc3BsYXlUeXBlSHRtbFwiPlxuICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cInZhbHVlXCI+PC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImNvbHVtbkRpc3BsYXlUeXBlTnVtYmVyXCI+XG4gICAgICAgIHt7IHZhbHVlIHwgbnVtYmVyOiBkZXNjcmlwdG9yLmRpc3BsYXlGb3JtYXQ6ZGVzY3JpcHRvci5sb2NhbGUgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJjb2x1bW5EaXNwbGF5VHlwZUN1cnJlbmN5XCI+XG4gICAgICAgIHt7IHZhbHVlIHwgY3VycmVuY3k6IGN1cnJlbmN5OmRlc2NyaXB0b3IuY3VycmVuY3lEaXNwbGF5OmRlc2NyaXB0b3IuZGlzcGxheUZvcm1hdDpkZXNjcmlwdG9yLmxvY2FsZSB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImNvbHVtbkRpc3BsYXlUeXBlRGF0ZVwiPlxuICAgICAgICB7eyB2YWx1ZSB8IGRhdGU6IGRlc2NyaXB0b3IuZGlzcGxheUZvcm1hdCB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImNvbHVtbkRpc3BsYXlUeXBlQm9vbGVhblwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGVzY3JpcHRvci5ib29sZWFuQXNJY29uOyBlbHNlIGJvb2xlYW5UZXh0XCI+XG4gICAgICAgICAgICA8aSBbY2xhc3NdPVwidmFsdWUgfCBib29sZWFuOiBkZXNjcmlwdG9yLmJvb2xlYW5ZZXM6ZGVzY3JpcHRvci5ib29sZWFuTm86dHJ1ZVwiPjwvaT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjYm9vbGVhblRleHQ+XG4gICAgICAgICAgICB7eyB2YWx1ZSB8IGJvb2xlYW46IGRlc2NyaXB0b3IuYm9vbGVhblllczpkZXNjcmlwdG9yLmJvb2xlYW5ObyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImNvbHVtbkRpc3BsYXlUeXBlRW51bVwiPlxuICAgICAgICB7eyB2YWx1ZSB8IGVudW06IGRlc2NyaXB0b3IuZW51bVR5cGU6ZGVzY3JpcHRvci5lbnVtVGl0bGVQYXRoOmRlc2NyaXB0b3IuZW51bU5hbWVBc1ZhbHVlIHwgdHJhbnNsYXRlIH19XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uRGlzcGxheVR5cGVDb21wb25lbnRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgW21uZ0NvbXBvbmVudF09XCJkZXNjcmlwdG9yLmN1c3RvbUNvbXBvbmVudFR5cGUhXCJcbiAgICAgICAgICAgIFtpbnB1dHNdPVwie1xuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICBpdGVtOiBpdGVtLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0b3I6IGRlc2NyaXB0b3JcbiAgICAgICAgICAgIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuPGRpdiBjbGFzcz1cImhlbHAtYnV0dG9uc1wiICpuZ0lmPVwiZGVzY3JpcHRvci5oYXNDb3B5VG9DbGlwYm9hcmRcIj5cbiAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgaWNvbj1cInBpIHBpLWNvcHlcIiBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24taW5mbyBwLWJ1dHRvbi1zbVwiIChjbGljayk9XCJjb3B5VG9DbGlwYm9hcmQoJGV2ZW50KVwiPjwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXZhbHVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXZpZXcvdGFibGUvY29sdW1uLXZhbHVlL2NvbHVtbi12YWx1ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdGFibGV2aWV3L3RhYmxlL2NvbHVtbi12YWx1ZS9jb2x1bW4tdmFsdWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBYyxXQUFXLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBTXpHLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7OztBQVNwRSxNQUFNLE9BQU8sNEJBQTRCO0lBc0JyQyxZQUNZLFVBQXNCLEVBQ3RCLGNBQThCLEVBQzlCLFNBQTJCLEVBQzNCLFlBQTBCLEVBQzFCLFVBQXlCLEVBQ3pCLFlBQTZCO1FBTDdCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGVBQVUsR0FBVixVQUFVLENBQWU7UUFDekIsaUJBQVksR0FBWixZQUFZLENBQWlCO1FBM0J6Qiw0QkFBdUIsR0FBMEIscUJBQXFCLENBQUMsTUFBTSxDQUFDO1FBQzlFLDRCQUF1QixHQUEwQixxQkFBcUIsQ0FBQyxNQUFNLENBQUM7UUFDOUUsOEJBQXlCLEdBQTBCLHFCQUFxQixDQUFDLFFBQVEsQ0FBQztRQUNsRiw2QkFBd0IsR0FBMEIscUJBQXFCLENBQUMsT0FBTyxDQUFDO1FBQ2hGLDBCQUFxQixHQUEwQixxQkFBcUIsQ0FBQyxJQUFJLENBQUM7UUFDMUUsMEJB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NEJBQTRCOzZHQUE1Qiw0QkFBNEIsbU5DZnpDLGk5REF3Q0E7MkZEekJhLDRCQUE0QjtrQkFOeEMsU0FBUzsrQkFDSSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU07a1BBWXRDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVvQyxhQUFhO3NCQUF0RCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFDSixTQUFTO3NCQUFyQyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7TWVzc2FnZVNlcnZpY2V9IGZyb20gJ3ByaW1lbmcvYXBpJztcblxuaW1wb3J0IHtDb2x1bW5EZXNjcmlwdG9yfSBmcm9tICcuLi8uLi8uLi8uLi9kZXNjcmlwdG9ycyc7XG5pbXBvcnQge0NvbHVtbkRpc3BsYXlUeXBlRW51bX0gZnJvbSAnLi4vLi4vLi4vLi4vZGVzY3JpcHRvcnMvdHlwZXMnO1xuaW1wb3J0IHtKc29uUGF0aFBpcGUsIE1uZ0dldHRlclBpcGUsIE1uZ1RlbXBsYXRlUGlwZX0gZnJvbSAnLi4vLi4vLi4vLi4vcGlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21uZy10YWJsZS1jb2x1bW4tdmFsdWUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2x1bW4tdmFsdWUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NvbHVtbi12YWx1ZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE1uZ1RhYmxlQ29sdW1uVmFsdWVDb21wb25lbnQ8VCwgVFQ+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29sdW1uRGlzcGxheVR5cGVTdHJpbmc6IENvbHVtbkRpc3BsYXlUeXBlRW51bSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5TdHJpbmc7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtbkRpc3BsYXlUeXBlTnVtYmVyOiBDb2x1bW5EaXNwbGF5VHlwZUVudW0gPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uTnVtYmVyO1xuICAgIHB1YmxpYyByZWFkb25seSBjb2x1bW5EaXNwbGF5VHlwZUN1cnJlbmN5OiBDb2x1bW5EaXNwbGF5VHlwZUVudW0gPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uQ3VycmVuY3k7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtbkRpc3BsYXlUeXBlQm9vbGVhbjogQ29sdW1uRGlzcGxheVR5cGVFbnVtID0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkJvb2xlYW47XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtbkRpc3BsYXlUeXBlRGF0ZTogQ29sdW1uRGlzcGxheVR5cGVFbnVtID0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkRhdGU7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtbkRpc3BsYXlUeXBlRW51bTogQ29sdW1uRGlzcGxheVR5cGVFbnVtID0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkVudW07XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtbkRpc3BsYXlUeXBlQ29tcG9uZW50OiBDb2x1bW5EaXNwbGF5VHlwZUVudW0gPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uQ29tcG9uZW50O1xuICAgIHB1YmxpYyByZWFkb25seSBjb2x1bW5EaXNwbGF5VHlwZUh0bWw6IENvbHVtbkRpc3BsYXlUeXBlRW51bSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5IdG1sO1xuXG4gICAgQElucHV0KCkgZGVzY3JpcHRvciE6IENvbHVtbkRlc2NyaXB0b3I8VCwgVFQ+O1xuICAgIEBJbnB1dCgpIGl0ZW0hOiBhbnk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1heC13aWR0aC5weCcpIHB1YmxpYyBzdHlsZU1heFdpZHRoOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgcHVibGljIGNsYXNzTmFtZSA9ICdub3dyYXAnO1xuXG4gICAgcHVibGljIGN1cnJlbmN5Pzogc3RyaW5nO1xuXG4gICAgcHVibGljIGpzb25QYXRoID0gJyQnO1xuXG4gICAgcHVibGljIHZhbHVlOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUganNvblBhdGhQaXBlOiBKc29uUGF0aFBpcGUsXG4gICAgICAgIHByaXZhdGUgZ2V0dGVyUGlwZTogTW5nR2V0dGVyUGlwZSxcbiAgICAgICAgcHJpdmF0ZSB0ZW1wbGF0ZVBpcGU6IE1uZ1RlbXBsYXRlUGlwZVxuICAgICkge31cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZGVzY3JpcHRvci5jb2x1bW5EaXNwbGF5VHlwZSA9PT0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkN1cnJlbmN5KSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbmN5ID0gdGhpcy5kZXNjcmlwdG9yLmN1cnJlbmN5RnJvbVByb3BlcnR5ID8gdGhpcy5pdGVtW3RoaXMuZGVzY3JpcHRvci5jdXJyZW5jeUZyb21Qcm9wZXJ0eV0gOiB0aGlzLmRlc2NyaXB0b3IuY3VycmVuY3lDb2RlID8/ICdFVVInO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGVzY3JpcHRvci5tYXhXaWR0aCkge1xuICAgICAgICAgICAgdGhpcy5zdHlsZU1heFdpZHRoID0gdGhpcy5kZXNjcmlwdG9yLm1heFdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGVzY3JpcHRvci5qc29uUGF0aCkge1xuICAgICAgICAgICAgdGhpcy5qc29uUGF0aCA9IHRoaXMuZGVzY3JpcHRvci5qc29uUGF0aDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuanNvblBhdGggPSBgJC4ke3RoaXMuZGVzY3JpcHRvci5wcm9wZXJ0eX1gO1xuICAgICAgICAgICAgaWYgKHRoaXMuZGVzY3JpcHRvci5vYmplY3RNb2RlbFR5cGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmpzb25QYXRoID0gYCQuJHt0aGlzLmRlc2NyaXB0b3IucHJvcGVydHl9LiR7dGhpcy5kZXNjcmlwdG9yLm9iamVjdFRpdGxlUHJvcGVydHl9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuanNvblBhdGhQaXBlLnRyYW5zZm9ybSh0aGlzLml0ZW0sIHRoaXMuanNvblBhdGgpO1xuXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kZXNjcmlwdG9yLmdldHRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdmFsdWUgPSB0aGlzLmdldHRlclBpcGUudHJhbnNmb3JtKHRoaXMuaXRlbSwgdGhpcy5kZXNjcmlwdG9yLmdldHRlciwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3IudGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdGhpcy50ZW1wbGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLCB0aGlzLmRlc2NyaXB0b3IudGVtcGxhdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb3B5VG9DbGlwYm9hcmQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmlubmVyVGV4dC50cmltKCk7XG4gICAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHZhbHVlKTtcbiAgICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdtbmdUYWJsZS5jb3B5Tm90aWZpY2F0aW9uVGl0bGUnKTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ21uZ1RhYmxlLmNvcHlOb3RpZmljYXRpb25NZXNzYWdlJywge3ZhbHVlfSk7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtzZXZlcml0eTogJ2luZm8nLCBzdW1tYXJ5OiB0aXRsZSwgZGV0YWlsOiBtZXNzYWdlfSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZGVzY3JpcHRvci5jb2x1bW5EaXNwbGF5VHlwZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImNvbHVtbkRpc3BsYXlUeXBlU3RyaW5nXCI+XG4gICAgICAgIHt7IHZhbHVlIH19XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uRGlzcGxheVR5cGVIdG1sXCI+XG4gICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwidmFsdWVcIj48L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uRGlzcGxheVR5cGVOdW1iZXJcIj5cbiAgICAgICAge3sgdmFsdWUgfCBudW1iZXI6IGRlc2NyaXB0b3IuZGlzcGxheUZvcm1hdDpkZXNjcmlwdG9yLmxvY2FsZSB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImNvbHVtbkRpc3BsYXlUeXBlQ3VycmVuY3lcIj5cbiAgICAgICAge3sgdmFsdWUgfCBjdXJyZW5jeTogY3VycmVuY3k6ZGVzY3JpcHRvci5jdXJyZW5jeURpc3BsYXk6ZGVzY3JpcHRvci5kaXNwbGF5Rm9ybWF0OmRlc2NyaXB0b3IubG9jYWxlIH19XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uRGlzcGxheVR5cGVEYXRlXCI+XG4gICAgICAgIHt7IHZhbHVlIHwgZGF0ZTogZGVzY3JpcHRvci5kaXNwbGF5Rm9ybWF0IH19XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uRGlzcGxheVR5cGVCb29sZWFuXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkZXNjcmlwdG9yLmJvb2xlYW5Bc0ljb247IGVsc2UgYm9vbGVhblRleHRcIj5cbiAgICAgICAgICAgIDxpIFtjbGFzc109XCJ2YWx1ZSB8IGJvb2xlYW46IGRlc2NyaXB0b3IuYm9vbGVhblllczpkZXNjcmlwdG9yLmJvb2xlYW5Obzp0cnVlXCI+PC9pPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNib29sZWFuVGV4dD5cbiAgICAgICAgICAgIHt7IHZhbHVlIHwgYm9vbGVhbjogZGVzY3JpcHRvci5ib29sZWFuWWVzOmRlc2NyaXB0b3IuYm9vbGVhbk5vIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uRGlzcGxheVR5cGVFbnVtXCI+XG4gICAgICAgIHt7IHZhbHVlIHwgZW51bTogZGVzY3JpcHRvci5lbnVtVHlwZTpkZXNjcmlwdG9yLmVudW1UaXRsZVBhdGg6ZGVzY3JpcHRvci5lbnVtTmFtZUFzVmFsdWUgfCB0cmFuc2xhdGUgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJjb2x1bW5EaXNwbGF5VHlwZUNvbXBvbmVudFwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICBbbW5nQ29tcG9uZW50XT1cImRlc2NyaXB0b3IuY3VzdG9tQ29tcG9uZW50VHlwZSFcIlxuICAgICAgICAgICAgW2lucHV0c109XCJ7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgICAgIGl0ZW06IGl0ZW0sXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRvcjogZGVzY3JpcHRvclxuICAgICAgICAgICAgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG48ZGl2IGNsYXNzPVwiaGVscC1idXR0b25zXCIgKm5nSWY9XCJkZXNjcmlwdG9yLmhhc0NvcHlUb0NsaXBib2FyZFwiPlxuICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIHR5cGU9XCJidXR0b25cIiBpY29uPVwicGkgcGktY29weVwiIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1pbmZvIHAtYnV0dG9uLXNtXCIgKGNsaWNrKT1cImNvcHlUb0NsaXBib2FyZCgkZXZlbnQpXCI+PC9idXR0b24+XG48L2Rpdj5cbiJdfQ==