ontimize-web-ngx 15.3.2 → 15.3.4

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 (46) hide show
  1. package/esm2020/lib/components/app-sidenav/index.mjs +2 -1
  2. package/esm2020/lib/components/bar-menu/index.mjs +2 -1
  3. package/esm2020/lib/components/filter-builder/index.mjs +2 -1
  4. package/esm2020/lib/components/form/index.mjs +3 -1
  5. package/esm2020/lib/components/index.mjs +3 -1
  6. package/esm2020/lib/components/input/radio/o-radio.component.mjs +9 -11
  7. package/esm2020/lib/components/input/search-input/o-search-input.component.mjs +3 -3
  8. package/esm2020/lib/components/o-service-component.class.mjs +42 -21
  9. package/esm2020/lib/components/table/column/o-column.class.mjs +2 -2
  10. package/esm2020/lib/components/table/column/o-table-column.component.mjs +2 -4
  11. package/esm2020/lib/components/table/extensions/dialog/export/o-table-export-dialog.component.mjs +2 -2
  12. package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.mjs +9 -8
  13. package/esm2020/lib/components/table/extensions/header/table-columns-filter/o-table-columns-filter.component.mjs +7 -4
  14. package/esm2020/lib/components/table/o-table.component.mjs +64 -40
  15. package/esm2020/lib/layouts/form-layout/o-form-layout-manager-base.class.mjs +1 -1
  16. package/esm2020/lib/layouts/form-layout/o-form-layout-manager.component.mjs +14 -3
  17. package/esm2020/lib/layouts/form-layout/split-pane/o-form-layout-split-pane.component.mjs +2 -1
  18. package/esm2020/lib/layouts/form-layout/tabgroup/o-form-layout-tabgroup.component.mjs +1 -14
  19. package/esm2020/lib/layouts/index.mjs +3 -1
  20. package/esm2020/lib/services/navigation.service.mjs +10 -2
  21. package/esm2020/lib/services/permissions/ontimize-ee-permissions.service.mjs +24 -15
  22. package/esm2020/lib/shared/index.mjs +3 -1
  23. package/esm2020/lib/types/form-layout-detail-component-data.type.mjs +1 -1
  24. package/fesm2015/ontimize-web-ngx.mjs +193 -122
  25. package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
  26. package/fesm2020/ontimize-web-ngx.mjs +175 -113
  27. package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
  28. package/lib/components/app-sidenav/index.d.ts +1 -0
  29. package/lib/components/bar-menu/index.d.ts +1 -0
  30. package/lib/components/filter-builder/index.d.ts +1 -0
  31. package/lib/components/form/index.d.ts +2 -0
  32. package/lib/components/index.d.ts +2 -0
  33. package/lib/components/input/radio/o-radio.component.d.ts +0 -2
  34. package/lib/components/o-service-component.class.d.ts +2 -2
  35. package/lib/components/table/column/o-table-column.component.d.ts +0 -1
  36. package/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.d.ts +4 -4
  37. package/lib/components/table/extensions/header/table-columns-filter/o-table-columns-filter.component.d.ts +4 -3
  38. package/lib/components/table/o-table.component.d.ts +19 -2
  39. package/lib/layouts/form-layout/o-form-layout-manager-base.class.d.ts +3 -0
  40. package/lib/layouts/form-layout/tabgroup/o-form-layout-tabgroup.component.d.ts +0 -1
  41. package/lib/layouts/index.d.ts +2 -0
  42. package/lib/services/navigation.service.d.ts +8 -4
  43. package/lib/shared/index.d.ts +2 -0
  44. package/lib/types/form-layout-detail-component-data.type.d.ts +3 -1
  45. package/package.json +1 -1
  46. package/theme.scss +8 -3
@@ -3,4 +3,5 @@ export * from './menu-group/o-app-sidenav-menu-group.component';
3
3
  export * from './menu-item/o-app-sidenav-menu-item.component';
4
4
  export * from './o-app-sidenav.component';
5
5
  export * from './o-app-sidenav.module';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9hcHAtc2lkZW5hdi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ltYWdlL28tYXBwLXNpZGVuYXYtaW1hZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbWVudS1ncm91cC9vLWFwcC1zaWRlbmF2LW1lbnUtZ3JvdXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbWVudS1pdGVtL28tYXBwLXNpZGVuYXYtbWVudS1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL28tYXBwLXNpZGVuYXYuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vby1hcHAtc2lkZW5hdi5tb2R1bGUnO1xuIl19
6
+ export * from './o-app-sidenav-base.class';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9hcHAtc2lkZW5hdi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaW1hZ2Uvby1hcHAtc2lkZW5hdi1pbWFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9tZW51LWdyb3VwL28tYXBwLXNpZGVuYXYtbWVudS1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9tZW51LWl0ZW0vby1hcHAtc2lkZW5hdi1tZW51LWl0ZW0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vby1hcHAtc2lkZW5hdi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWFwcC1zaWRlbmF2Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL28tYXBwLXNpZGVuYXYtYmFzZS5jbGFzcyc7Il19
@@ -6,4 +6,5 @@ export * from './menu-separator/o-bar-menu-separator.component';
6
6
  export * from './o-bar-menu.component';
7
7
  export * from './o-bar-menu.module';
8
8
  export * from './o-base-menu-item.class';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9iYXItbWVudS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xvY2FsZS1tZW51LWl0ZW0vby1sb2NhbGUtYmFyLW1lbnUtaXRlbS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9tZW51LWdyb3VwL28tYmFyLW1lbnUtZ3JvdXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbWVudS1pdGVtL28tYmFyLW1lbnUtaXRlbS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9tZW51LW5lc3RlZC9vLWJhci1tZW51LW5lc3RlZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9tZW51LXNlcGFyYXRvci9vLWJhci1tZW51LXNlcGFyYXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWJhci1tZW51LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL28tYmFyLW1lbnUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vby1iYXNlLW1lbnUtaXRlbS5jbGFzcyc7XG4iXX0=
9
+ export * from './o-bar-menu-base.class';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9iYXItbWVudS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbG9jYWxlLW1lbnUtaXRlbS9vLWxvY2FsZS1iYXItbWVudS1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL21lbnUtZ3JvdXAvby1iYXItbWVudS1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9tZW51LWl0ZW0vby1iYXItbWVudS1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL21lbnUtbmVzdGVkL28tYmFyLW1lbnUtbmVzdGVkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL21lbnUtc2VwYXJhdG9yL28tYmFyLW1lbnUtc2VwYXJhdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL28tYmFyLW1lbnUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vby1iYXItbWVudS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWJhc2UtbWVudS1pdGVtLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vby1iYXItbWVudS1iYXNlLmNsYXNzJztcbiJdfQ==
@@ -3,4 +3,5 @@ export * from './/o-filter-builder-query.directive';
3
3
  export * from './o-filter-builder.component';
4
4
  export * from './o-filter-builder.module';
5
5
  export * from './filter-builder-menu/filter-builder-menu.component';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXItYnVpbGRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMscURBQXFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL28tZmlsdGVyLWJ1aWxkZXItY2xlYXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vL28tZmlsdGVyLWJ1aWxkZXItcXVlcnkuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vby1maWx0ZXItYnVpbGRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWZpbHRlci1idWlsZGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbHRlci1idWlsZGVyLW1lbnUvZmlsdGVyLWJ1aWxkZXItbWVudS5jb21wb25lbnQnO1xuIl19
6
+ export * from './o-filter-builder-base.class';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXItYnVpbGRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vby1maWx0ZXItYnVpbGRlci1jbGVhci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi8vby1maWx0ZXItYnVpbGRlci1xdWVyeS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWZpbHRlci1idWlsZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL28tZmlsdGVyLWJ1aWxkZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVyLWJ1aWxkZXItbWVudS9maWx0ZXItYnVpbGRlci1tZW51LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL28tZmlsdGVyLWJ1aWxkZXItYmFzZS5jbGFzcyc7XG4iXX0=
@@ -9,4 +9,6 @@ export * from './o-form-value';
9
9
  export * from './toolbar/o-form-toolbar.component';
10
10
  export * from './toolbar/o-form-toolbar.module';
11
11
  export * from './o-form-tokens';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2FjaGUvby1mb3JtLmNhY2hlLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vZ3VhcmRzL28tZm9ybS1jYW4tZGVhY3RpdmF0ZS5ndWFyZCc7XG5leHBvcnQgKiBmcm9tICcuL25hdmlnYXRpb24vby1mb3JtLW5hdmlnYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbmF2aWdhdGlvbi9vLWZvcm0ubmF2aWdhdGlvbi5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL28tZm9ybS1tZXNzYWdlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vby1mb3JtLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL28tZm9ybS12YWx1ZSc7XG5leHBvcnQgKiBmcm9tICcuL3Rvb2xiYXIvby1mb3JtLXRvb2xiYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdG9vbGJhci9vLWZvcm0tdG9vbGJhci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWZvcm0tdG9rZW5zJzsiXX0=
12
+ export * from './o-form-base.class';
13
+ export * from './toolbar/o-form-toolbar-base.class';
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUNBQXFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhY2hlL28tZm9ybS5jYWNoZS5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2d1YXJkcy9vLWZvcm0tY2FuLWRlYWN0aXZhdGUuZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9uYXZpZ2F0aW9uL28tZm9ybS1uYXZpZ2F0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL25hdmlnYXRpb24vby1mb3JtLm5hdmlnYXRpb24uY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9vLWZvcm0tbWVzc2FnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vby1mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL28tZm9ybS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWZvcm0tdmFsdWUnO1xuZXhwb3J0ICogZnJvbSAnLi90b29sYmFyL28tZm9ybS10b29sYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Rvb2xiYXIvby1mb3JtLXRvb2xiYXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vby1mb3JtLXRva2Vucyc7XG5leHBvcnQgKiBmcm9tICcuL28tZm9ybS1iYXNlLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vdG9vbGJhci9vLWZvcm0tdG9vbGJhci1iYXNlLmNsYXNzJyJdfQ==
@@ -1,5 +1,6 @@
1
1
  export * from './app-header/o-app-header.component';
2
2
  export * from './app-header/o-app-header.module';
3
+ export * from './app-header/o-app-header-base.class';
3
4
  export * from './app-sidenav/index';
4
5
  export * from './bar-menu/index';
5
6
  export * from './breadcrumb/o-breadcrumb.component';
@@ -40,4 +41,5 @@ export * from './expandable-container/o-expandable-container.component';
40
41
  export * from './expandable-container/o-expandable-container.module';
41
42
  export * from './tree/index';
42
43
  export * from './o-skeleton.component';
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHVFQUF1RSxDQUFDO0FBQ3RGLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXBwLWhlYWRlci9vLWFwcC1oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYXBwLWhlYWRlci9vLWFwcC1oZWFkZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBwLXNpZGVuYXYvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXItbWVudS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2JyZWFkY3J1bWIvby1icmVhZGNydW1iLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2JyZWFkY3J1bWIvby1icmVhZGNydW1iLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2J1dHRvbi10b2dnbGUvby1idXR0b24tdG9nZ2xlLWdyb3VwL28tYnV0dG9uLXRvZ2dsZS1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9idXR0b24tdG9nZ2xlL28tYnV0dG9uLXRvZ2dsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9idXR0b24tdG9nZ2xlL28tYnV0dG9uLXRvZ2dsZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9idXR0b24vby1idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYnV0dG9uL28tYnV0dG9uLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NhcmQtbWVudS1pdGVtL28tY2FyZC1tZW51LWl0ZW0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY2FyZC1tZW51LWl0ZW0vby1jYXJkLW1lbnUtaXRlbS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250YWluZXIvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0bWVudS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbHRlci1idWlsZGVyL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1jb250YWluZXIvby1mb3JtLWNvbnRhaW5lci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWNvbnRhaW5lci9vLWZvcm0tY29udGFpbmVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0vaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9ncmlkL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vaW1hZ2UvZnVsbHNjcmVlbi9mdWxsc2NyZWVuLWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZS9vLWltYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlL28taW1hZ2UubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9sYW5ndWFnZS1zZWxlY3Rvci9vLWxhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xhbmd1YWdlLXNlbGVjdG9yL28tbGFuZ3VhZ2Utc2VsZWN0b3IubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGlzdC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL21hdGVyaWFsL2NrZWRpdG9yL2NrLWVkaXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXRlcmlhbC9ja2VkaXRvci9jay1lZGl0b3IubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vby1jb21wb25lbnQuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWZvcm0tZGF0YS1jb21wb25lbnQuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9vLXNlcnZpY2UtYmFzZS1jb21wb25lbnQuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9vLXNlcnZpY2UtY29tcG9uZW50LmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vby12YWx1ZS1jaGFuZ2UtZXZlbnQuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXItaW5mby9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2R1YWwtbGlzdC1zZWxlY3Rvci9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL28tZGF0YS10b29sYmFyL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vZXhwYW5kYWJsZS1jb250YWluZXIvby1leHBhbmRhYmxlLWNvbnRhaW5lci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9leHBhbmRhYmxlLWNvbnRhaW5lci9vLWV4cGFuZGFibGUtY29udGFpbmVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3RyZWUvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9vLXNrZWxldG9uLmNvbXBvbmVudCc7XG4iXX0=
44
+ export * from './user-info/o-user-info-base.class';
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsdUVBQXVFLENBQUM7QUFDdEYsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsb0NBQW9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FwcC1oZWFkZXIvby1hcHAtaGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2FwcC1oZWFkZXIvby1hcHAtaGVhZGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwcC1oZWFkZXIvby1hcHAtaGVhZGVyLWJhc2UuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9hcHAtc2lkZW5hdi9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2Jhci1tZW51L2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vYnJlYWRjcnVtYi9vLWJyZWFkY3J1bWIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYnJlYWRjcnVtYi9vLWJyZWFkY3J1bWIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vYnV0dG9uLXRvZ2dsZS9vLWJ1dHRvbi10b2dnbGUtZ3JvdXAvby1idXR0b24tdG9nZ2xlLWdyb3VwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2J1dHRvbi10b2dnbGUvby1idXR0b24tdG9nZ2xlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2J1dHRvbi10b2dnbGUvby1idXR0b24tdG9nZ2xlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2J1dHRvbi9vLWJ1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9idXR0b24vby1idXR0b24ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY2FyZC1tZW51LWl0ZW0vby1jYXJkLW1lbnUtaXRlbS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXJkLW1lbnUtaXRlbS9vLWNhcmQtbWVudS1pdGVtLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRhaW5lci9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHRtZW51L2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVyLWJ1aWxkZXIvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWNvbnRhaW5lci9vLWZvcm0tY29udGFpbmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tY29udGFpbmVyL28tZm9ybS1jb250YWluZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2dyaWQvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZS9mdWxsc2NyZWVuL2Z1bGxzY3JlZW4tZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlL28taW1hZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaW1hZ2Uvby1pbWFnZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xhbmd1YWdlLXNlbGVjdG9yL28tbGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGFuZ3VhZ2Utc2VsZWN0b3Ivby1sYW5ndWFnZS1zZWxlY3Rvci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saXN0L2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbWF0ZXJpYWwvY2tlZGl0b3IvY2stZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL21hdGVyaWFsL2NrZWRpdG9yL2NrLWVkaXRvci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWNvbXBvbmVudC5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL28tZm9ybS1kYXRhLWNvbXBvbmVudC5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL28tc2VydmljZS1iYXNlLWNvbXBvbmVudC5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL28tc2VydmljZS1jb21wb25lbnQuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9vLXZhbHVlLWNoYW5nZS1ldmVudC5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL3RhYmxlL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci1pbmZvL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vZHVhbC1saXN0LXNlbGVjdG9yL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vby1kYXRhLXRvb2xiYXIvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9leHBhbmRhYmxlLWNvbnRhaW5lci9vLWV4cGFuZGFibGUtY29udGFpbmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2V4cGFuZGFibGUtY29udGFpbmVyL28tZXhwYW5kYWJsZS1jb250YWluZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vdHJlZS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL28tc2tlbGV0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci1pbmZvL28tdXNlci1pbmZvLWJhc2UuY2xhc3MnO1xuXG4iXX0=
@@ -1,6 +1,5 @@
1
1
  import { Component, ElementRef, forwardRef, Inject, Injector, Optional, ViewChild, ViewEncapsulation } from '@angular/core';
2
2
  import { MatRadioGroup } from '@angular/material/radio';
3
- import { OFormLayoutManagerComponent } from '../../../layouts/form-layout/o-form-layout-manager.component';
4
3
  import { OntimizeServiceProvider } from '../../../services/factories';
5
4
  import { Util } from '../../../util/util';
6
5
  import { OFormComponent } from '../../form/o-form.component';
@@ -31,11 +30,6 @@ export class ORadioComponent extends OFormServiceComponent {
31
30
  this.layout = 'column';
32
31
  this.labelPosition = 'after';
33
32
  this.labelGap = '8px';
34
- try {
35
- this.formLayoutManager = this.injector.get(OFormLayoutManagerComponent);
36
- }
37
- catch (e) {
38
- }
39
33
  }
40
34
  ngAfterViewInit() {
41
35
  super.ngAfterViewInit();
@@ -45,12 +39,16 @@ export class ORadioComponent extends OFormServiceComponent {
45
39
  this.updateFormLayoutManagerState();
46
40
  }
47
41
  updateFormLayoutManagerState() {
48
- if (this.formLayoutManager && this.formLayoutManager.storeState && this.formLayoutManager.isTabMode() && this.formLayoutManager.oTabGroup) {
42
+ const formLayoutManager = this.form.getFormManager();
43
+ if (formLayoutManager && formLayoutManager.storeState && formLayoutManager.isTabMode() && formLayoutManager.oTabGroup) {
49
44
  if (!Util.isDefined(this.formLayoutManagerTabIndex)) {
50
- this.formLayoutManagerTabIndex = this.formLayoutManager.oTabGroup.data.length;
45
+ const tabGroupData = formLayoutManager.oTabGroup.data;
46
+ const keysValues = this.form.getFormNavigation().getCurrentKeysValues();
47
+ const data = tabGroupData.find(item => Object.entries(keysValues).every(([key, value]) => item.params[key] == value));
48
+ this.formLayoutManagerTabIndex = data?.id;
51
49
  }
52
- this.tabsSubscriptions = this.formLayoutManager.onSelectedTabChange.subscribe((arg) => {
53
- if (arg.index === this.formLayoutManagerTabIndex) {
50
+ this.tabsSubscriptions = formLayoutManager.onSelectedTabChange.subscribe((arg) => {
51
+ if (arg.data.id === this.formLayoutManagerTabIndex) {
54
52
  this.mrg.value = this.getValue();
55
53
  }
56
54
  });
@@ -110,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
110
108
  type: ViewChild,
111
109
  args: [MatRadioGroup]
112
110
  }] } });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1yYWRpby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9pbnB1dC9yYWRpby9vLXJhZGlvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0L3JhZGlvL28tcmFkaW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFhLFFBQVEsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEosT0FBTyxFQUFrQixhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFFMUUsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDcEMsUUFBUTtJQUNSLCtCQUErQjtJQUMvQixxQkFBcUI7Q0FDdEIsQ0FBQztBQWdCRixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxxQkFBcUI7SUFjeEQsWUFDd0QsSUFBb0IsRUFDMUUsS0FBaUIsRUFDakIsUUFBa0I7UUFFbEIsS0FBSyxDQUFD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Q0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ3ZLO1NBQ0Y7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTSxXQUFXO1FBQ2hCLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVoQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEM7SUFFSCxDQUFDOzs2R0F4RlUsZUFBZSxrQkFlSixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDO2lHQWYzQyxlQUFlLDRNQVJmO1FBQ1QsdUJBQXVCO0tBQ3hCLCtEQWlCVSxhQUFhLHVFQzFDMUIsOHRFQWlDQTs0RkRGYSxlQUFlO2tCQWIzQixTQUFTOytCQUNFLFNBQVMsVUFHWCxzQkFBc0IsYUFDbkI7d0JBQ1QsdUJBQXVCO3FCQUN4QixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLGlCQUFpQixFQUFFLE1BQU07cUJBQzFCOzswQkFpQkUsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDOzRGQUo1QixHQUFHO3NCQUE1QixTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIEluamVjdCwgSW5qZWN0b3IsIE9uRGVzdHJveSwgT3B0aW9uYWwsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFJhZGlvQ2hhbmdlLCBNYXRSYWRpb0dyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xuXG5pbXBvcnQgeyBPRm9ybUxheW91dE1hbmFnZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9sYXlvdXRzL2Zvcm0tbGF5b3V0L28tZm9ybS1sYXlvdXQtbWFuYWdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgT250aW1pemVTZXJ2aWNlUHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mYWN0b3JpZXMnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBPRm9ybVZhbHVlIH0gZnJvbSAnLi4vLi4vZm9ybS9vLWZvcm0tdmFsdWUnO1xuaW1wb3J0IHsgT0Zvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9mb3JtL28tZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgT1ZhbHVlQ2hhbmdlRXZlbnQgfSBmcm9tICcuLi8uLi9vLXZhbHVlLWNoYW5nZS1ldmVudC5jbGFzcyc7XG5pbXBvcnQgeyBPRm9ybVNlcnZpY2VDb21wb25lbnQgfSBmcm9tICcuLi9vLWZvcm0tc2VydmljZS1jb21wb25lbnQuY2xhc3MnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlBVVFNfT19SQURJTyA9IFtcbiAgJ2xheW91dCcsXG4gICdsYWJlbFBvc2l0aW9uOiBsYWJlbC1wb3NpdGlvbicsXG4gICdsYWJlbEdhcDogbGFiZWwtZ2FwJ1xuXTtcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLXJhZGlvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tcmFkaW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vLXJhZGlvLmNvbXBvbmVudC5zY3NzJ10sXG4gIGlucHV0czogREVGQVVMVF9JTlBVVFNfT19SQURJTyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgT250aW1pemVTZXJ2aWNlUHJvdmlkZXJcbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3Muby1yYWRpb10nOiAndHJ1ZSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBPUmFkaW9Db21wb25lbnQgZXh0ZW5kcyBPRm9ybVNlcnZpY2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIC8qIElucHV0cyAqL1xuICBwdWJsaWMgbGF5b3V0OiAncm93JyB8ICdjb2x1bW4nID0gJ2NvbHVtbic7XG4gIHB1YmxpYyBsYWJlbFBvc2l0aW9uOiAnYmVmb3JlJyB8ICdhZnRlcicgPSAnYWZ0ZXInO1xuICBwdWJsaWMgbGFiZWxHYXAgPSAnOHB4J1xuICAvKiBFbmQgaW5wdXRzKi9cblxuICB2YWx1ZTogT0Zvcm1WYWx1ZTtcbiAgZm9ybUxheW91dE1hbmFnZXI6IE9Gb3JtTGF5b3V0TWFuYWdlckNvbXBvbmVudDtcbiAgdGFic1N1YnNjcmlwdGlvbnM6IGFueTtcbiAgQFZpZXdDaGlsZChNYXRSYWRpb0dyb3VwKSBtcmc6IE1hdFJhZGlvR3JvdXA7XG4gIGZvcm1MYXlvdXRNYW5hZ2VyVGFiSW5kZXg6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gT0Zvcm1Db21wb25lbnQpKSBmb3JtOiBPRm9ybUNvbXBvbmVudCxcbiAgICBlbFJlZjogRWxlbWVudFJlZixcbiAgICBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7XG4gICAgc3VwZXIoZm9ybSwgZWxSZWYsIGluamVjdG9yKTtcblxuICAgIHRyeSB7XG4gICAgICB0aGlzLmZvcm1MYXlvdXRNYW5hZ2VyID0gdGhpcy5pbmplY3Rvci5nZXQoT0Zvcm1MYXlvdXRNYW5hZ2VyQ29tcG9uZW50KTtcblxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIG5vIHBhcmVudCBmb3JtIGxheW91dCBtYW5hZ2VyXG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgIGlmICh0aGlzLnF1ZXJ5T25Jbml0KSB7XG4gICAgICB0aGlzLnF1ZXJ5RGF0YSgpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZUZvcm1MYXlvdXRNYW5hZ2VyU3RhdGUoKTtcbiAgfVxuXG4gIHVwZGF0ZUZvcm1MYXlvdXRNYW5hZ2VyU3RhdGUoKSB7XG4gICAgaWYgKHRoaXMuZm9ybUxheW91dE1hbmFnZXIgJiYgdGhpcy5mb3JtTGF5b3V0TWFuYWdlci5zdG9yZVN0YXRlICYmIHRoaXMuZm9ybUxheW91dE1hbmFnZXIuaXNUYWJNb2RlKCkgJiYgdGhpcy5mb3JtTGF5b3V0TWFuYWdlci5vVGFiR3JvdXApIHtcbiAgICAgIGlmICghVXRpbC5pc0RlZmluZWQodGhpcy5mb3JtTGF5b3V0TWFuYWdlclRhYkluZGV4KSkge1xuICAgICAgICB0aGlzLmZvcm1MYXlvdXRNYW5hZ2VyVGFiSW5kZXggPSB0aGlzLmZvcm1MYXlvdXRNYW5hZ2VyLm9UYWJHcm91cC5kYXRhLmxlbmd0aDtcbiAgICAgIH1cbiAgICAgIHRoaXMudGFic1N1YnNjcmlwdGlvbnMgPSB0aGlzLmZvcm1MYXlvdXRNYW5hZ2VyLm9uU2VsZWN0ZWRUYWJDaGFuZ2Uuc3Vic2NyaWJlKChhcmcpID0+IHtcbiAgICAgICAgaWYgKGFyZy5pbmRleCA9PT0gdGhpcy5mb3JtTGF5b3V0TWFuYWdlclRhYkluZGV4KSB7XG4gICAgICAgICAgdGhpcy5tcmcudmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG5cbiAgb25NYXRSYWRpb0dyb3VwQ2hhbmdlKGU6IE1hdFJhZGlvQ2hhbmdlKTogdm9pZCB7XG4gICAgY29uc3QgbmV3VmFsdWUgPSBlLnZhbHVlO1xuICAgIHRoaXMuc2V0VmFsdWUobmV3VmFsdWUsIHtcbiAgICAgIGNoYW5nZVR5cGU6IE9WYWx1ZUNoYW5nZUV2ZW50LlVTRVJfQ0hBTkdFLFxuICAgICAgZW1pdEV2ZW50OiBmYWxzZSxcbiAgICAgIGVtaXRNb2RlbFRvVmlld0NoYW5nZTogZmFsc2VcbiAgICB9KTtcbiAgfVxuXG4gIGdldFZhbHVlQ29sdW1uKGl0ZW06IGFueSkge1xuICAgIGlmIChpdGVtICYmIGl0ZW0uaGFzT3duUHJvcGVydHkodGhpcy52YWx1ZUNvbHVtbikpIHtcbiAgICAgIGxldCBvcHRpb24gPSBpdGVtW3RoaXMudmFsdWVDb2x1bW5dO1xuICAgICAgaWYgKG9wdGlvbiA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgb3B0aW9uID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvcHRpb247XG4gICAgfVxuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBnZXREZXNjcmlwdGlvblZhbHVlKCkge1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLmRlc2NyaXB0aW9uQ29sQXJyYXkpICYmIHRoaXMuZGVzY3JpcHRpb25Db2xBcnJheS5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGN1cnJJdGVtID0gdGhpcy5kYXRhQXJyYXkuZmluZChlID0+IGVbdGhpcy52YWx1ZUNvbHVtbl0gPT09IHRoaXMuZ2V0VmFsdWUoKSk7XG4gICAgICBpZiAoVXRpbC5pc0RlZmluZWQoY3Vyckl0ZW0pKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlc2NyaXB0aW9uQ29sQXJyYXkubWFwKGNvbCA9PiAodGhpcy50cmFuc2xhdGUgJiYgdGhpcy50cmFuc2xhdGVTZXJ2aWNlKSA/IHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoY3Vyckl0ZW1bY29sXSkgOiBjdXJySXRlbVtjb2xdKS5qb2luKHRoaXMuc2VwYXJhdG9yKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLmRlc3Ryb3koKTtcblxuICAgIGlmICh0aGlzLnRhYnNTdWJzY3JpcHRpb25zKSB7XG4gICAgICB0aGlzLnRhYnNTdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gIH1cblxufVxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cImdldEZvcm1Hcm91cCgpXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcFwiIFttYXRUb29sdGlwQ2xhc3NdPVwidG9vbHRpcENsYXNzXCJcbiAgW21hdFRvb2x0aXBQb3NpdGlvbl09XCJ0b29sdGlwUG9zaXRpb25cIiBbbWF0VG9vbHRpcFNob3dEZWxheV09XCJ0b29sdGlwU2hvd0RlbGF5XCJcbiAgW21hdFRvb2x0aXBIaWRlRGVsYXldPVwidG9vbHRpcEhpZGVEZWxheVwiIGNsYXNzPVwicmVsYXRpdmVcIiBbb0NvbnRleHRNZW51XT1cIm9Db250ZXh0TWVudVwiPlxuICA8IS0tIG1hdC1mb3JtLWZpZWxkIGFuZCBoaWRkZW4gaW5wdXQgYXJlIHVzZWQgb25seSBmb3IgZGlzcGxheWluZyBjb21wb25lbnQgbGFiZWwgYW5kIGVycm9ycyBhcyBtYXQtcmFkaW8gaXMgbm90IHN1cHBvcnRlZCBpbnNpZGUgZm9ybS1maWVsZCAtLT5cbiAgPCEtLSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9tYXRlcmlhbDIvaXNzdWVzLzc4OTEgLS0+XG4gIDxtYXQtZm9ybS1maWVsZCBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCIgW2hpZGVSZXF1aXJlZE1hcmtlcl09XCJoaWRlUmVxdWlyZWRNYXJrZXJcIlxuICAgIFtjbGFzcy5yZWFkLW9ubHldPVwiaXNSZWFkT25seVwiIFtjbGFzcy5jdXN0b20td2lkdGhdPVwiaGFzQ3VzdG9tV2lkdGhcIiBbY2xhc3Muby1yYWRpby1mcm9tLWZpZWxkLXJvd109XCJsYXlvdXQ9PT0ncm93J1wiXG4gICAgZmxvYXRMYWJlbD1cImFsd2F5c1wiIGNsYXNzPVwibWF0LWZvcm0tZmllbGQtLW5vLXVuZGVybGluZVwiIGZ4RmlsbCBbc3Vic2NyaXB0U2l6aW5nXT1cInN1YnNjcmlwdFNpemluZ1wiPlxuICAgIDxtYXQtbGFiZWwgKm5nSWY9XCJsYWJlbFZpc2libGVcIj57eyBvbGFiZWwgfCBvVHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XG4gICAgPGlucHV0IG1hdElucHV0IFtpZF09XCJnZXRBdHRyaWJ1dGUoKVwiIFtmb3JtQ29udHJvbE5hbWVdPVwiZ2V0QXR0cmlidXRlKClcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXJcIlxuICAgICAgW3JlcXVpcmVkXT1cImlzUmVxdWlyZWRcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIiAvPlxuICAgIDxtYXQtcmFkaW8tZ3JvdXAgW2lkXT1cImdldEF0dHJpYnV0ZSgpXCIgW2Zvcm1Db250cm9sTmFtZV09XCJnZXRBdHRyaWJ1dGUoKVwiIFtuYW1lXT1cImdldEF0dHJpYnV0ZSgpXCJcbiAgICAgIFt2YWx1ZV09XCJnZXRWYWx1ZSgpXCIgW3JlcXVpcmVkXT1cImlzUmVxdWlyZWRcIiBbbGFiZWxQb3NpdGlvbl09XCJsYWJlbFBvc2l0aW9uXCJcbiAgICAgIChjaGFuZ2UpPVwib25NYXRSYWRpb0dyb3VwQ2hhbmdlKCRldmVudClcIiBbZnhMYXlvdXRdPVwibGF5b3V0XCIgW2Z4TGF5b3V0R2FwXT1cImxhYmVsR2FwXCI+XG4gICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBbaWRdPVwiJ28tcmFkaW8tYnV0dG9uLScraVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRhdGFBcnJheTtsZXQgaSA9IGluZGV4XCIgW3ZhbHVlXT1cImdldFZhbHVlQ29sdW1uKGl0ZW0pXCJcbiAgICAgICBbZGlzYWJsZWRdPVwiIWVuYWJsZWRcIj5cbiAgICAgICAge3sgZ2V0T3B0aW9uRGVzY3JpcHRpb25WYWx1ZShpdGVtKSB9fVxuICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxuICAgIDxtYXQtZXJyb3IgKm9NYXRFcnJvcj1cImhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XG4gICAgICB7eyAnRk9STV9WQUxJREFUSU9OLlJFUVVJUkVEJyB8IG9UcmFuc2xhdGUgfX1cbiAgICA8L21hdC1lcnJvcj5cbiAgICA8bWF0LWVycm9yICpuZ0Zvcj1cImxldCBvRXJyb3Igb2YgZ2V0QWN0aXZlT0Vycm9ycygpXCI+XG4gICAgICB7eyBvRXJyb3IudGV4dCB8IG9UcmFuc2xhdGUgfX1cbiAgICA8L21hdC1lcnJvcj5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPGRpdiAqbmdJZj1cImlzUmVhZE9ubHlcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgY2xhc3M9XCJyZWFkLW9ubHktYmxvY2tlclwiIGZ4RmlsbD48L2Rpdj5cblxuICA8by1jb250ZXh0LW1lbnUgKm5nSWY9XCIhdGhpcy5pc1JlYWRPbmx5ICYmIHRoaXMuZW5hYmxlZFwiPlxuICAgIDxvLWNvbnRleHQtbWVudS1pdGVtIGF0dHI9XCJyZWZyZXNoXCIgbGFiZWw9XCJGT1JNX1NFUlZJQ0VfQ09NUE9ORU5ULlJFRlJFU0hcIiBzdmctaWNvbj1cIm9udGltaXplOmF1dG9yZW5ld1wiIChleGVjdXRlKT1cInJlZnJlc2goKVwiPlxuICAgIDwvby1jb250ZXh0LW1lbnUtaXRlbT5cbiAgPC9vLWNvbnRleHQtbWVudT5cbjwvZGl2PlxuIl19
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1yYWRpby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9pbnB1dC9yYWRpby9vLXJhZGlvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0L3JhZGlvL28tcmFkaW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFhLFFBQVEsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEosT0FBTyxFQUFrQixhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFFMUUsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDcEMsUUFBUTtJQUNSLCtCQUErQjtJQUMvQixxQkFBcUI7Q0FDdEIsQ0FBQztBQWdCRixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxxQkFBcUI7SUFheEQsWUFDd0QsSUFBb0IsRUFDMUUsS0FBaUIsRUFDakIsUUFBa0I7UUFFbEIsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFmeEIsV0FB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bGVtZW50UmVmLCBmb3J3YXJkUmVmLCBJbmplY3QsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9wdGlvbmFsLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRSYWRpb0NoYW5nZSwgTWF0UmFkaW9Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcblxuaW1wb3J0IHsgT250aW1pemVTZXJ2aWNlUHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mYWN0b3JpZXMnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBPRm9ybVZhbHVlIH0gZnJvbSAnLi4vLi4vZm9ybS9vLWZvcm0tdmFsdWUnO1xuaW1wb3J0IHsgT0Zvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9mb3JtL28tZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgT1ZhbHVlQ2hhbmdlRXZlbnQgfSBmcm9tICcuLi8uLi9vLXZhbHVlLWNoYW5nZS1ldmVudC5jbGFzcyc7XG5pbXBvcnQgeyBPRm9ybVNlcnZpY2VDb21wb25lbnQgfSBmcm9tICcuLi9vLWZvcm0tc2VydmljZS1jb21wb25lbnQuY2xhc3MnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlBVVFNfT19SQURJTyA9IFtcbiAgJ2xheW91dCcsXG4gICdsYWJlbFBvc2l0aW9uOiBsYWJlbC1wb3NpdGlvbicsXG4gICdsYWJlbEdhcDogbGFiZWwtZ2FwJ1xuXTtcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLXJhZGlvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tcmFkaW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vLXJhZGlvLmNvbXBvbmVudC5zY3NzJ10sXG4gIGlucHV0czogREVGQVVMVF9JTlBVVFNfT19SQURJTyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgT250aW1pemVTZXJ2aWNlUHJvdmlkZXJcbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3Muby1yYWRpb10nOiAndHJ1ZSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBPUmFkaW9Db21wb25lbnQgZXh0ZW5kcyBPRm9ybVNlcnZpY2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIC8qIElucHV0cyAqL1xuICBwdWJsaWMgbGF5b3V0OiAncm93JyB8ICdjb2x1bW4nID0gJ2NvbHVtbic7XG4gIHB1YmxpYyBsYWJlbFBvc2l0aW9uOiAnYmVmb3JlJyB8ICdhZnRlcicgPSAnYWZ0ZXInO1xuICBwdWJsaWMgbGFiZWxHYXAgPSAnOHB4J1xuICAvKiBFbmQgaW5wdXRzKi9cblxuICB2YWx1ZTogT0Zvcm1WYWx1ZTtcbiAgdGFic1N1YnNjcmlwdGlvbnM6IGFueTtcbiAgQFZpZXdDaGlsZChNYXRSYWRpb0dyb3VwKSBtcmc6IE1hdFJhZGlvR3JvdXA7XG4gIGZvcm1MYXlvdXRNYW5hZ2VyVGFiSW5kZXg6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gT0Zvcm1Db21wb25lbnQpKSBmb3JtOiBPRm9ybUNvbXBvbmVudCxcbiAgICBlbFJlZjogRWxlbWVudFJlZixcbiAgICBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7XG4gICAgc3VwZXIoZm9ybSwgZWxSZWYsIGluamVjdG9yKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICBpZiAodGhpcy5xdWVyeU9uSW5pdCkge1xuICAgICAgdGhpcy5xdWVyeURhdGEoKTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVGb3JtTGF5b3V0TWFuYWdlclN0YXRlKCk7XG4gIH1cblxuICB1cGRhdGVGb3JtTGF5b3V0TWFuYWdlclN0YXRlKCkge1xuICAgIGNvbnN0IGZvcm1MYXlvdXRNYW5hZ2VyID0gdGhpcy5mb3JtLmdldEZvcm1NYW5hZ2VyKCk7XG5cbiAgICBpZiAoZm9ybUxheW91dE1hbmFnZXIgJiYgZm9ybUxheW91dE1hbmFnZXIuc3RvcmVTdGF0ZSAmJiBmb3JtTGF5b3V0TWFuYWdlci5pc1RhYk1vZGUoKSAmJiBmb3JtTGF5b3V0TWFuYWdlci5vVGFiR3JvdXApIHtcbiAgICAgIGlmICghVXRpbC5pc0RlZmluZWQodGhpcy5mb3JtTGF5b3V0TWFuYWdlclRhYkluZGV4KSkge1xuICAgICAgICBjb25zdCB0YWJHcm91cERhdGEgPSBmb3JtTGF5b3V0TWFuYWdlci5vVGFiR3JvdXAuZGF0YTtcblxuICAgICAgICBjb25zdCBrZXlzVmFsdWVzID0gdGhpcy5mb3JtLmdldEZvcm1OYXZpZ2F0aW9uKCkuZ2V0Q3VycmVudEtleXNWYWx1ZXMoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRhYkdyb3VwRGF0YS5maW5kKGl0ZW0gPT5cbiAgICAgICAgICBPYmplY3QuZW50cmllcyhrZXlzVmFsdWVzKS5ldmVyeShcbiAgICAgICAgICAgIChba2V5LCB2YWx1ZV0pID0+IGl0ZW0ucGFyYW1zW2tleV0gPT0gdmFsdWVcbiAgICAgICAgICApKTtcbiAgICAgICAgdGhpcy5mb3JtTGF5b3V0TWFuYWdlclRhYkluZGV4ID0gZGF0YT8uaWQ7XG4gICAgICB9XG4gICAgICB0aGlzLnRhYnNTdWJzY3JpcHRpb25zID0gZm9ybUxheW91dE1hbmFnZXIub25TZWxlY3RlZFRhYkNoYW5nZS5zdWJzY3JpYmUoKGFyZykgPT4ge1xuICAgICAgICBpZiAoYXJnLmRhdGEuaWQgPT09IHRoaXMuZm9ybUxheW91dE1hbmFnZXJUYWJJbmRleCkge1xuICAgICAgICAgIHRoaXMubXJnLnZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuXG4gIG9uTWF0UmFkaW9Hcm91cENoYW5nZShlOiBNYXRSYWRpb0NoYW5nZSk6IHZvaWQge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gZS52YWx1ZTtcbiAgICB0aGlzLnNldFZhbHVlKG5ld1ZhbHVlLCB7XG4gICAgICBjaGFuZ2VUeXBlOiBPVmFsdWVDaGFuZ2VFdmVudC5VU0VSX0NIQU5HRSxcbiAgICAgIGVtaXRFdmVudDogZmFsc2UsXG4gICAgICBlbWl0TW9kZWxUb1ZpZXdDaGFuZ2U6IGZhbHNlXG4gICAgfSk7XG4gIH1cblxuICBnZXRWYWx1ZUNvbHVtbihpdGVtOiBhbnkpIHtcbiAgICBpZiAoaXRlbSAmJiBpdGVtLmhhc093blByb3BlcnR5KHRoaXMudmFsdWVDb2x1bW4pKSB7XG4gICAgICBsZXQgb3B0aW9uID0gaXRlbVt0aGlzLnZhbHVlQ29sdW1uXTtcbiAgICAgIGlmIChvcHRpb24gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIG9wdGlvbiA9IG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gb3B0aW9uO1xuICAgIH1cbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgZ2V0RGVzY3JpcHRpb25WYWx1ZSgpIHtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQodGhpcy5kZXNjcmlwdGlvbkNvbEFycmF5KSAmJiB0aGlzLmRlc2NyaXB0aW9uQ29sQXJyYXkubGVuZ3RoKSB7XG4gICAgICBjb25zdCBjdXJySXRlbSA9IHRoaXMuZGF0YUFycmF5LmZpbmQoZSA9PiBlW3RoaXMudmFsdWVDb2x1bW5dID09PSB0aGlzLmdldFZhbHVlKCkpO1xuICAgICAgaWYgKFV0aWwuaXNEZWZpbmVkKGN1cnJJdGVtKSkge1xuICAgICAgICByZXR1cm4gdGhpcy5kZXNjcmlwdGlvbkNvbEFycmF5Lm1hcChjb2wgPT4gKHRoaXMudHJhbnNsYXRlICYmIHRoaXMudHJhbnNsYXRlU2VydmljZSkgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KGN1cnJJdGVtW2NvbF0pIDogY3Vyckl0ZW1bY29sXSkuam9pbih0aGlzLnNlcGFyYXRvcik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5kZXN0cm95KCk7XG5cbiAgICBpZiAodGhpcy50YWJzU3Vic2NyaXB0aW9ucykge1xuICAgICAgdGhpcy50YWJzU3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICB9XG5cbn1cbiIsIjxkaXYgW2Zvcm1Hcm91cF09XCJnZXRGb3JtR3JvdXAoKVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXBcIiBbbWF0VG9vbHRpcENsYXNzXT1cInRvb2x0aXBDbGFzc1wiXG4gIFttYXRUb29sdGlwUG9zaXRpb25dPVwidG9vbHRpcFBvc2l0aW9uXCIgW21hdFRvb2x0aXBTaG93RGVsYXldPVwidG9vbHRpcFNob3dEZWxheVwiXG4gIFttYXRUb29sdGlwSGlkZURlbGF5XT1cInRvb2x0aXBIaWRlRGVsYXlcIiBjbGFzcz1cInJlbGF0aXZlXCIgW29Db250ZXh0TWVudV09XCJvQ29udGV4dE1lbnVcIj5cbiAgPCEtLSBtYXQtZm9ybS1maWVsZCBhbmQgaGlkZGVuIGlucHV0IGFyZSB1c2VkIG9ubHkgZm9yIGRpc3BsYXlpbmcgY29tcG9uZW50IGxhYmVsIGFuZCBlcnJvcnMgYXMgbWF0LXJhZGlvIGlzIG5vdCBzdXBwb3J0ZWQgaW5zaWRlIGZvcm0tZmllbGQgLS0+XG4gIDwhLS0gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvbWF0ZXJpYWwyL2lzc3Vlcy83ODkxIC0tPlxuICA8bWF0LWZvcm0tZmllbGQgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiIFtoaWRlUmVxdWlyZWRNYXJrZXJdPVwiaGlkZVJlcXVpcmVkTWFya2VyXCJcbiAgICBbY2xhc3MucmVhZC1vbmx5XT1cImlzUmVhZE9ubHlcIiBbY2xhc3MuY3VzdG9tLXdpZHRoXT1cImhhc0N1c3RvbVdpZHRoXCIgW2NsYXNzLm8tcmFkaW8tZnJvbS1maWVsZC1yb3ddPVwibGF5b3V0PT09J3JvdydcIlxuICAgIGZsb2F0TGFiZWw9XCJhbHdheXNcIiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLS1uby11bmRlcmxpbmVcIiBmeEZpbGwgW3N1YnNjcmlwdFNpemluZ109XCJzdWJzY3JpcHRTaXppbmdcIj5cbiAgICA8bWF0LWxhYmVsICpuZ0lmPVwibGFiZWxWaXNpYmxlXCI+e3sgb2xhYmVsIHwgb1RyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxuICAgIDxpbnB1dCBtYXRJbnB1dCBbaWRdPVwiZ2V0QXR0cmlidXRlKClcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImdldEF0dHJpYnV0ZSgpXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlSG9sZGVyXCJcbiAgICAgIFtyZXF1aXJlZF09XCJpc1JlcXVpcmVkXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lXCIgLz5cbiAgICA8bWF0LXJhZGlvLWdyb3VwIFtpZF09XCJnZXRBdHRyaWJ1dGUoKVwiIFtmb3JtQ29udHJvbE5hbWVdPVwiZ2V0QXR0cmlidXRlKClcIiBbbmFtZV09XCJnZXRBdHRyaWJ1dGUoKVwiXG4gICAgICBbdmFsdWVdPVwiZ2V0VmFsdWUoKVwiIFtyZXF1aXJlZF09XCJpc1JlcXVpcmVkXCIgW2xhYmVsUG9zaXRpb25dPVwibGFiZWxQb3NpdGlvblwiXG4gICAgICAoY2hhbmdlKT1cIm9uTWF0UmFkaW9Hcm91cENoYW5nZSgkZXZlbnQpXCIgW2Z4TGF5b3V0XT1cImxheW91dFwiIFtmeExheW91dEdhcF09XCJsYWJlbEdhcFwiPlxuICAgICAgPG1hdC1yYWRpby1idXR0b24gW2lkXT1cIidvLXJhZGlvLWJ1dHRvbi0nK2lcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhQXJyYXk7bGV0IGkgPSBpbmRleFwiIFt2YWx1ZV09XCJnZXRWYWx1ZUNvbHVtbihpdGVtKVwiXG4gICAgICAgW2Rpc2FibGVkXT1cIiFlbmFibGVkXCI+XG4gICAgICAgIHt7IGdldE9wdGlvbkRlc2NyaXB0aW9uVmFsdWUoaXRlbSkgfX1cbiAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICA8L21hdC1yYWRpby1ncm91cD5cbiAgICA8bWF0LWVycm9yICpvTWF0RXJyb3I9XCJoYXNFcnJvcigncmVxdWlyZWQnKVwiPlxuICAgICAge3sgJ0ZPUk1fVkFMSURBVElPTi5SRVFVSVJFRCcgfCBvVHJhbnNsYXRlIH19XG4gICAgPC9tYXQtZXJyb3I+XG4gICAgPG1hdC1lcnJvciAqbmdGb3I9XCJsZXQgb0Vycm9yIG9mIGdldEFjdGl2ZU9FcnJvcnMoKVwiPlxuICAgICAge3sgb0Vycm9yLnRleHQgfCBvVHJhbnNsYXRlIH19XG4gICAgPC9tYXQtZXJyb3I+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDxkaXYgKm5nSWY9XCJpc1JlYWRPbmx5XCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIGNsYXNzPVwicmVhZC1vbmx5LWJsb2NrZXJcIiBmeEZpbGw+PC9kaXY+XG5cbiAgPG8tY29udGV4dC1tZW51ICpuZ0lmPVwiIXRoaXMuaXNSZWFkT25seSAmJiB0aGlzLmVuYWJsZWRcIj5cbiAgICA8by1jb250ZXh0LW1lbnUtaXRlbSBhdHRyPVwicmVmcmVzaFwiIGxhYmVsPVwiRk9STV9TRVJWSUNFX0NPTVBPTkVOVC5SRUZSRVNIXCIgc3ZnLWljb249XCJvbnRpbWl6ZTphdXRvcmVuZXdcIiAoZXhlY3V0ZSk9XCJyZWZyZXNoKClcIj5cbiAgICA8L28tY29udGV4dC1tZW51LWl0ZW0+XG4gIDwvby1jb250ZXh0LW1lbnU+XG48L2Rpdj5cbiJdfQ==
@@ -196,7 +196,7 @@ export class OSearchInputComponent {
196
196
  }
197
197
  }
198
198
  OSearchInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OSearchInputComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
199
- OSearchInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OSearchInputComponent, selector: "o-search-input", inputs: { placeholder: "placeholder", label: "label", width: "width", floatLabel: ["float-label", "floatLabel"], appearance: "appearance", columns: "columns", filterCaseSensitive: ["filter-case-sensitive", "filterCaseSensitive"], showCaseSensitiveCheckbox: ["show-case-sensitive-checkbox", "showCaseSensitiveCheckbox"], showMenu: ["show-menu", "showMenu"] }, outputs: { onSearch: "onSearch" }, host: { properties: { "class.o-search-input": "true" } }, ngImport: i0, template: "<form [formGroup]=\"getFormGroup()\">\n <div class=\"quickFilter\" fxLayout=\"row\">\n <mat-form-field [appearance]=\"appearance\">\n <mat-icon *ngIf=\"!showFilterMenu\" svgIcon=\"ontimize:search\" matPrefix></mat-icon>\n <input #term matInput id=\"term\" type=\"search\" formControlName=\"term\" [placeholder]=\"placeholder\">\n <mat-label *ngIf=\"labelVisible\">{{ label | oTranslate }}</mat-label>\n <div *ngIf=\"showFilterMenu\" fxLayout=\"row\" matPrefix>\n <mat-icon svgIcon=\"ontimize:search\" [matBadge]=\"areAllColumnsChecked()?'':getCountColumnsChecked()\" matBadgeSize=\"small\"></mat-icon>\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" (menuClosed)=\"onMenuClosed()\" (click)=\"$event.stopPropagation()\">\n <mat-icon class=\"search-icon\">expand_more</mat-icon>\n </button>\n </div>\n\n\n <mat-menu #menu=\"matMenu\" class=\"o-search-input-menu\">\n <div fxLayout=\"column\" class=\"checkbox-container\">\n\n <ng-container *ngIf=\"colArray.length > 1\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"areAllColumnsChecked()\" (change)=\"onSelectAllChange($event)\">\n {{ 'SELECT_ALL' | oTranslate }}</mat-checkbox>\n <mat-divider></mat-divider>\n </ng-container>\n\n <ng-container *ngFor=\"let item of colArray\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"isChecked(item)\" (change)=\"onCheckboxChange(item, $event)\">\n {{ item.column | oTranslate }}\n </mat-checkbox>\n </ng-container>\n\n <ng-container *ngIf=\"showCaseSensitiveCheckbox\">\n <mat-divider></mat-divider>\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"filterCaseSensitive\" (change)=\"onFilterCaseSensitiveChange($event)\">\n {{ 'TABLE.FILTER.CASE_SENSITIVE' | oTranslate }}\n </mat-checkbox>\n </ng-container>\n </div>\n </mat-menu>\n </mat-form-field>\n </div>\n</form>\n", styles: [".o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-form-field-subscript-wrapper{display:none}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper{padding-bottom:0}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{height:32px;line-height:32px;padding:0 10px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix{border-top:0;padding:0 4px;align-self:center}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{align-self:stretch;display:flex}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div{align-items:center;display:inline-flex;margin:2px 0}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div .mat-badge-content{background-color:#3c8500;width:14px;height:14px;line-height:14px;top:-4px;right:-4px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div .mat-icon,.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button{margin-right:6px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button.mat-mdc-icon-button{height:100%;width:auto}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-subscript-wrapper{display:none}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-flex{padding-top:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-underline{bottom:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper,.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{margin:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{border-right:1px solid rgba(0,0,0,.12)}.o-search-input-menu .mat-divider{margin:8px 0}.o-search-input-menu .checkbox-container{padding:6px 12px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "component", type: i9.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i11.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: i12.OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
199
+ OSearchInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OSearchInputComponent, selector: "o-search-input", inputs: { placeholder: "placeholder", label: "label", width: "width", floatLabel: ["float-label", "floatLabel"], appearance: "appearance", columns: "columns", filterCaseSensitive: ["filter-case-sensitive", "filterCaseSensitive"], showCaseSensitiveCheckbox: ["show-case-sensitive-checkbox", "showCaseSensitiveCheckbox"], showMenu: ["show-menu", "showMenu"] }, outputs: { onSearch: "onSearch" }, host: { properties: { "class.o-search-input": "true" } }, ngImport: i0, template: "<form [formGroup]=\"getFormGroup()\">\n <div class=\"quickFilter\" fxLayout=\"row\">\n <mat-form-field [appearance]=\"appearance\">\n <mat-icon *ngIf=\"!showFilterMenu\" svgIcon=\"ontimize:search\" matPrefix></mat-icon>\n <input #term matInput id=\"term\" type=\"search\" formControlName=\"term\" [placeholder]=\"placeholder\">\n <mat-label *ngIf=\"labelVisible\">{{ label | oTranslate }}</mat-label>\n <div *ngIf=\"showFilterMenu\" fxLayout=\"row\" matPrefix>\n <mat-icon svgIcon=\"ontimize:search\" [matBadge]=\"areAllColumnsChecked()?'':getCountColumnsChecked()\" matBadgeSize=\"small\"></mat-icon>\n <button type=\"button\" mat-icon-button [matMenuTriggerFor]=\"menu\" (menuClosed)=\"onMenuClosed()\" (click)=\"$event.stopPropagation()\">\n <mat-icon class=\"search-icon\">expand_more</mat-icon>\n </button>\n </div>\n\n\n <mat-menu #menu=\"matMenu\" class=\"o-search-input-menu\">\n <div fxLayout=\"column\" class=\"checkbox-container\">\n\n <ng-container *ngIf=\"colArray.length > 1\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"areAllColumnsChecked()\" (change)=\"onSelectAllChange($event)\">\n {{ 'SELECT_ALL' | oTranslate }}</mat-checkbox>\n <mat-divider></mat-divider>\n </ng-container>\n\n <ng-container *ngFor=\"let item of colArray\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"isChecked(item)\" (change)=\"onCheckboxChange(item, $event)\">\n {{ item.column | oTranslate }}\n </mat-checkbox>\n </ng-container>\n\n <ng-container *ngIf=\"showCaseSensitiveCheckbox\">\n <mat-divider></mat-divider>\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"filterCaseSensitive\" (change)=\"onFilterCaseSensitiveChange($event)\">\n {{ 'TABLE.FILTER.CASE_SENSITIVE' | oTranslate }}\n </mat-checkbox>\n </ng-container>\n </div>\n </mat-menu>\n </mat-form-field>\n </div>\n</form>\n", styles: [".o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-form-field-subscript-wrapper{display:none}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper{padding-bottom:0}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{height:32px;line-height:32px;padding:0 10px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix{border-top:0;padding:0 4px;align-self:center}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{align-self:stretch;display:flex}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div{align-items:center;display:inline-flex;margin:2px 0}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div .mat-badge-content{background-color:#3c8500;width:14px;height:14px;line-height:14px;top:-4px;right:-4px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div .mat-icon,.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button{margin-right:6px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button.mat-mdc-icon-button{height:100%;width:auto}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-subscript-wrapper{display:none}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-flex{padding-top:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-underline{bottom:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper,.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{margin:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{border-right:1px solid rgba(0,0,0,.12)}.o-search-input-menu .mat-divider{margin:8px 0}.o-search-input-menu .checkbox-container{padding:6px 12px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "component", type: i9.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i11.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: i12.OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
200
200
  __decorate([
201
201
  BooleanInputConverter(),
202
202
  __metadata("design:type", Boolean)
@@ -213,6 +213,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
213
213
  type: Component,
214
214
  args: [{ selector: 'o-search-input', inputs: DEFAULT_INPUTS_O_SEARCH_INPUT, outputs: DEFAULT_OUTPUTS_O_SEARCH_INPUT, encapsulation: ViewEncapsulation.None, host: {
215
215
  '[class.o-search-input]': 'true'
216
- }, template: "<form [formGroup]=\"getFormGroup()\">\n <div class=\"quickFilter\" fxLayout=\"row\">\n <mat-form-field [appearance]=\"appearance\">\n <mat-icon *ngIf=\"!showFilterMenu\" svgIcon=\"ontimize:search\" matPrefix></mat-icon>\n <input #term matInput id=\"term\" type=\"search\" formControlName=\"term\" [placeholder]=\"placeholder\">\n <mat-label *ngIf=\"labelVisible\">{{ label | oTranslate }}</mat-label>\n <div *ngIf=\"showFilterMenu\" fxLayout=\"row\" matPrefix>\n <mat-icon svgIcon=\"ontimize:search\" [matBadge]=\"areAllColumnsChecked()?'':getCountColumnsChecked()\" matBadgeSize=\"small\"></mat-icon>\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" (menuClosed)=\"onMenuClosed()\" (click)=\"$event.stopPropagation()\">\n <mat-icon class=\"search-icon\">expand_more</mat-icon>\n </button>\n </div>\n\n\n <mat-menu #menu=\"matMenu\" class=\"o-search-input-menu\">\n <div fxLayout=\"column\" class=\"checkbox-container\">\n\n <ng-container *ngIf=\"colArray.length > 1\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"areAllColumnsChecked()\" (change)=\"onSelectAllChange($event)\">\n {{ 'SELECT_ALL' | oTranslate }}</mat-checkbox>\n <mat-divider></mat-divider>\n </ng-container>\n\n <ng-container *ngFor=\"let item of colArray\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"isChecked(item)\" (change)=\"onCheckboxChange(item, $event)\">\n {{ item.column | oTranslate }}\n </mat-checkbox>\n </ng-container>\n\n <ng-container *ngIf=\"showCaseSensitiveCheckbox\">\n <mat-divider></mat-divider>\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"filterCaseSensitive\" (change)=\"onFilterCaseSensitiveChange($event)\">\n {{ 'TABLE.FILTER.CASE_SENSITIVE' | oTranslate }}\n </mat-checkbox>\n </ng-container>\n </div>\n </mat-menu>\n </mat-form-field>\n </div>\n</form>\n", styles: [".o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-form-field-subscript-wrapper{display:none}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper{padding-bottom:0}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{height:32px;line-height:32px;padding:0 10px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix{border-top:0;padding:0 4px;align-self:center}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{align-self:stretch;display:flex}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div{align-items:center;display:inline-flex;margin:2px 0}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div .mat-badge-content{background-color:#3c8500;width:14px;height:14px;line-height:14px;top:-4px;right:-4px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div .mat-icon,.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button{margin-right:6px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button.mat-mdc-icon-button{height:100%;width:auto}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-subscript-wrapper{display:none}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-flex{padding-top:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-underline{bottom:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper,.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{margin:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{border-right:1px solid rgba(0,0,0,.12)}.o-search-input-menu .mat-divider{margin:8px 0}.o-search-input-menu .checkbox-container{padding:6px 12px}\n"] }]
216
+ }, template: "<form [formGroup]=\"getFormGroup()\">\n <div class=\"quickFilter\" fxLayout=\"row\">\n <mat-form-field [appearance]=\"appearance\">\n <mat-icon *ngIf=\"!showFilterMenu\" svgIcon=\"ontimize:search\" matPrefix></mat-icon>\n <input #term matInput id=\"term\" type=\"search\" formControlName=\"term\" [placeholder]=\"placeholder\">\n <mat-label *ngIf=\"labelVisible\">{{ label | oTranslate }}</mat-label>\n <div *ngIf=\"showFilterMenu\" fxLayout=\"row\" matPrefix>\n <mat-icon svgIcon=\"ontimize:search\" [matBadge]=\"areAllColumnsChecked()?'':getCountColumnsChecked()\" matBadgeSize=\"small\"></mat-icon>\n <button type=\"button\" mat-icon-button [matMenuTriggerFor]=\"menu\" (menuClosed)=\"onMenuClosed()\" (click)=\"$event.stopPropagation()\">\n <mat-icon class=\"search-icon\">expand_more</mat-icon>\n </button>\n </div>\n\n\n <mat-menu #menu=\"matMenu\" class=\"o-search-input-menu\">\n <div fxLayout=\"column\" class=\"checkbox-container\">\n\n <ng-container *ngIf=\"colArray.length > 1\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"areAllColumnsChecked()\" (change)=\"onSelectAllChange($event)\">\n {{ 'SELECT_ALL' | oTranslate }}</mat-checkbox>\n <mat-divider></mat-divider>\n </ng-container>\n\n <ng-container *ngFor=\"let item of colArray\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"isChecked(item)\" (change)=\"onCheckboxChange(item, $event)\">\n {{ item.column | oTranslate }}\n </mat-checkbox>\n </ng-container>\n\n <ng-container *ngIf=\"showCaseSensitiveCheckbox\">\n <mat-divider></mat-divider>\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"filterCaseSensitive\" (change)=\"onFilterCaseSensitiveChange($event)\">\n {{ 'TABLE.FILTER.CASE_SENSITIVE' | oTranslate }}\n </mat-checkbox>\n </ng-container>\n </div>\n </mat-menu>\n </mat-form-field>\n </div>\n</form>\n", styles: [".o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-form-field-subscript-wrapper{display:none}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper{padding-bottom:0}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{height:32px;line-height:32px;padding:0 10px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix{border-top:0;padding:0 4px;align-self:center}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{align-self:stretch;display:flex}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div{align-items:center;display:inline-flex;margin:2px 0}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div .mat-badge-content{background-color:#3c8500;width:14px;height:14px;line-height:14px;top:-4px;right:-4px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div .mat-icon,.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button{margin-right:6px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button.mat-mdc-icon-button{height:100%;width:auto}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-subscript-wrapper{display:none}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-flex{padding-top:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-underline{bottom:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper,.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{margin:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{border-right:1px solid rgba(0,0,0,.12)}.o-search-input-menu .mat-divider{margin:8px 0}.o-search-input-menu .checkbox-container{padding:6px 12px}\n"] }]
217
217
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { showCaseSensitiveCheckbox: [], showMenu: [], _filterCaseSensitive: [] } });
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1zZWFyY2gtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXQvc2VhcmNoLWlucHV0L28tc2VhcmNoLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0L3NlYXJjaC1pbnB1dC9vLXNlYXJjaC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUlwRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBRTFDLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHO0lBQzNDLGFBQWE7SUFDYixPQUFPO0lBQ1AsT0FBTztJQUNQLHlCQUF5QjtJQUN6QixZQUFZO0lBQ1osU0FBUztJ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Z0JBQWdCO1FBQ2xCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDM0MsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDekIsT0FBTyxxQkFBcUIsQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7YUFDOUU7U0FDRjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7O21IQWhOVSxxQkFBcUI7dUdBQXJCLHFCQUFxQiwwZkNoRGxDLGlpRUF3Q0E7QUQrQkU7SUFBQyxxQkFBcUIsRUFBRTs7d0VBQzBCO0FBQ2xEO0lBQUMscUJBQXFCLEVBQUU7O3VEQUNRO0FBQ2hDO0lBQUMscUJBQXFCLEVBQUU7O21FQUN3Qjs0RkE1QnJDLHFCQUFxQjtrQkFYakMsU0FBUzsrQkFDRSxnQkFBZ0IsVUFHbEIsNkJBQTZCLFdBQzVCLDhCQUE4QixpQkFDeEIsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSix3QkFBd0IsRUFBRSxNQUFNO3FCQUNqQzt3SEEwQk0seUJBQXlCLE1BRXpCLFFBQVEsTUFFTCxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdENoZWNrYm94Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgRmxvYXRMYWJlbFR5cGUsIE1hdEZvcm1GaWVsZEFwcGVhcmFuY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE9fSU5QVVRTX09QVElPTlMgfSBmcm9tICcuLi8uLi8uLi9jb25maWcvYXBwLWNvbmZpZyc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXRDb252ZXJ0ZXIgfSBmcm9tICcuLi8uLi8uLi9kZWNvcmF0b3JzL2lucHV0LWNvbnZlcnRlcic7XG5pbXBvcnQgeyBTbmFja0JhclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zbmFja2Jhci5zZXJ2aWNlJztcbmltcG9ydCB7IE9UcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdHJhbnNsYXRlL28tdHJhbnNsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2V4cHJlc3Npb24udHlwZSc7XG5pbXBvcnQgeyBGb3JtVmFsdWVPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvZm9ybS12YWx1ZS1vcHRpb25zLnR5cGUnO1xuaW1wb3J0IHsgT0lucHV0c09wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9vLWlucHV0cy1vcHRpb25zLnR5cGUnO1xuaW1wb3J0IHsgRmlsdGVyRXhwcmVzc2lvblV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC9maWx0ZXItZXhwcmVzc2lvbi51dGlscyc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC91dGlsJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfSU5QVVRTX09fU0VBUkNIX0lOUFVUID0gW1xuICAncGxhY2Vob2xkZXInLFxuICAnbGFiZWwnLFxuICAnd2lkdGgnLFxuICAnZmxvYXRMYWJlbDogZmxvYXQtbGFiZWwnLFxuICAnYXBwZWFyYW5jZScsXG4gICdjb2x1bW5zJyxcbiAgJ2ZpbHRlckNhc2VTZW5zaXRpdmU6IGZpbHRlci1jYXNlLXNlbnNpdGl2ZScsXG4gICdzaG93Q2FzZVNlbnNpdGl2ZUNoZWNrYm94OiBzaG93LWNhc2Utc2Vuc2l0aXZlLWNoZWNrYm94JyxcbiAgJ3Nob3dNZW51OiBzaG93LW1lbnUnXG5dO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9PVVRQVVRTX09fU0VBUkNIX0lOUFVUID0gW1xuICAnb25TZWFyY2gnXG5dO1xuXG5kZWNsYXJlIHR5cGUgQ29sdW1uT2JqZWN0ID0ge1xuICBjb2x1bW46IHN0cmluZztcbiAgY2hlY2tlZDogYm9vbGVhbjtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ28tc2VhcmNoLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tc2VhcmNoLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vby1zZWFyY2gtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgaW5wdXRzOiBERUZBVUxUX0lOUFVUU19PX1NFQVJDSF9JTlBVVCxcbiAgb3V0cHV0czogREVGQVVMVF9PVVRQVVRTX09fU0VBUkNIX0lOUFVULFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5vLXNlYXJjaC1pbnB1dF0nOiAndHJ1ZSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBPU2VhcmNoSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gIHB1YmxpYyBvblNlYXJjaDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgcHVibGljIGxhYmVsOiBzdHJpbmc7XG4gIHB1YmxpYyBjb2xBcnJheTogQ29sdW1uT2JqZWN0W10gPSBbXTtcbiAgcHVibGljIF9wbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NFQVJDSCc7XG5cbiAgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQodGhpcy5fcGxhY2Vob2xkZXIpO1xuICB9XG5cbiAgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQodmFsdWUpKSB7XG4gICAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBsYWJlbFZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFV0aWwuaXNEZWZpbmVkKHRoaXMubGFiZWwpO1xuICB9XG5cbiAgcHVibGljIHdpZHRoOiBzdHJpbmc7XG4gIHB1YmxpYyBjb2x1bW5zOiBzdHJpbmc7XG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBwdWJsaWMgc2hvd0Nhc2VTZW5zaXRpdmVDaGVja2JveDogYm9vbGVhbiA9IGZhbHNlO1xuICBAQm9vbGVhbklucHV0Q29udmVydGVyKClcbiAgcHVibGljIHNob3dNZW51OiBib29sZWFuID0gdHJ1ZTtcbiAgQEJvb2xlYW5JbnB1dENvbnZlcnRlcigpXG4gIHByb3RlY3RlZCBfZmlsdGVyQ2FzZVNlbnNpdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgX2Zsb2F0TGFiZWw6IEZsb2F0TGFiZWxUeXBlO1xuICBwcm90ZWN0ZWQgX2FwcGVhcmFuY2U6IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2U7XG5cbiAgcHJvdGVjdGVkIGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cDtcbiAgcHJvdGVjdGVkIHRlcm06IFVudHlwZWRGb3JtQ29udHJvbDtcbiAgcHJvdGVjdGVkIHRyYW5zbGF0ZVNlcnZpY2U6IE9UcmFuc2xhdGVTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgb0lucHV0c09wdGlvbnM6IE9JbnB1dHNPcHRpb25zO1xuICBwcm90ZWN0ZWQgc25hY2tCYXJTZXJ2aWNlOiBTbmFja0JhclNlcnZpY2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcm90ZWN0ZWQgZWxSZWY6IEVsZW1lbnRSZWZcbiAgKSB7XG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoT1RyYW5zbGF0ZVNlcnZpY2UpO1xuICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoU25hY2tCYXJTZXJ2aWNlKTtcbiAgICB0aGlzLmZvcm1Hcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRlcm0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XG4gICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbCgndGVybScsIHRoaXMudGVybSk7XG5cbiAgICB0aGlzLnRlcm0udmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDQwMCkpXG4gICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUodGVybSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNoZWNrQWN0aXZlQ29sdW1ucygpKSB7XG4gICAgICAgICAgdGhpcy5vblNlYXJjaC5lbWl0KHRlcm0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIGNvbnN0IGNvbEFycmF5ID0gVXRpbC5wYXJzZUFycmF5KHRoaXMuY29sdW1ucywgdHJ1ZSk7XG4gICAgY29sQXJyYXkuZm9yRWFjaCgoY29sOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuY29sQXJyYXkucHVzaCh7XG4gICAgICAgIGNvbHVtbjogY29sLFxuICAgICAgICBjaGVja2VkOiB0cnVlXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMub0lucHV0c09wdGlvbnMgPSB0aGlzLmluamVjdG9yLmdldChPX0lOUFVUU19PUFRJT05TKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLm9JbnB1dHNPcHRpb25zID0ge307XG4gICAgfVxuICAgIFV0aWwucGFyc2VPSW5wdXRzT3B0aW9ucyh0aGlzLmVsUmVmLCB0aGlzLm9JbnB1dHNPcHRpb25zKTtcbiAgfVxuXG4gIGdldCBmbG9hdExhYmVsKCk6IEZsb2F0TGFiZWxUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5fZmxvYXRMYWJlbDtcbiAgfVxuXG4gIHNldCBmbG9hdExhYmVsKHZhbHVlOiBGbG9hdExhYmVsVHlwZSkge1xuICAgIGNvbnN0IHZhbHVlcyA9IFsnYWx3YXlzJywgJ2F1dG8nXTtcbiAgICBpZiAodmFsdWVzLmluZGV4T2YodmFsdWUpID09PSAtMSkge1xuICAgICAgdmFsdWUgPSAnYWx3YXlzJztcbiAgICB9XG4gICAgdGhpcy5fZmxvYXRMYWJlbCA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGFwcGVhcmFuY2UoKTogTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSB7XG4gICAgcmV0dXJuIHRoaXMuX2FwcGVhcmFuY2U7XG4gIH1cblxuICBzZXQgYXBwZWFyYW5jZSh2YWx1ZTogTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSkge1xuICAgIGNvbnN0IHZhbHVlcyA9IFsnZmlsbCcsICdvdXRsaW5lJ107XG4gICAgaWYgKHZhbHVlcy5pbmRleE9mKHZhbHVlKSA9PT0gLTEpIHtcbiAgICAgIHZhbHVlID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB0aGlzLl9hcHBlYXJhbmNlID0gdmFsdWU7XG4gIH1cblxuICBnZXQgZmlsdGVyQ2FzZVNlbnNpdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyQ2FzZVNlbnNpdGl2ZTtcbiAgfVxuXG4gIHNldCBmaWx0ZXJDYXNlU2Vuc2l0aXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZmlsdGVyQ2FzZVNlbnNpdGl2ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldEZvcm1Hcm91cCgpOiBVbnR5cGVkRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXA7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50ZXJtLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIHNldFZhbHVlKHZhbDogc3RyaW5nLCBvcHRpb25zPzogRm9ybVZhbHVlT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMudGVybS5zZXRWYWx1ZSh2YWwsIG9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIGdldEZvcm1Db250cm9sKCk6IFVudHlwZWRGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMudGVybTtcbiAgfVxuXG4gIGdldCBoYXNDdXN0b21XaWR0aCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy53aWR0aCAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0IHNob3dGaWx0ZXJNZW51KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNob3dNZW51ICYmIHRoaXMuY29sQXJyYXkubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHB1YmxpYyBpc0NoZWNrZWQoY29sdW1uOiBDb2x1bW5PYmplY3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gY29sdW1uLmNoZWNrZWQ7XG4gIH1cblxuICBwdWJsaWMgb25DaGVja2JveENoYW5nZShjb2x1bW46IENvbHVtbk9iamVjdCwgZXZlbnQ6IE1hdENoZWNrYm94Q2hhbmdlKTogdm9pZCB7XG4gICAgY29sdW1uLmNoZWNrZWQgPSBldmVudC5jaGVja2VkO1xuICAgIC8vIHRyaWdnZXJPblNlYXJjaCBpZiB3ZSB3YW50IHRvIHRyaWdnZXIgc2VhcmNoIG9uIGVhY2ggY2hhbmdlXG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3RBbGxDaGFuZ2UoZXZlbnQ6IE1hdENoZWNrYm94Q2hhbmdlKTogdm9pZCB7XG4gICAgdGhpcy5jb2xBcnJheS5mb3JFYWNoKChjb2w6IENvbHVtbk9iamVjdCkgPT4ge1xuICAgICAgY29sLmNoZWNrZWQgPSBldmVudC5jaGVja2VkO1xuICAgIH0pO1xuICAgIC8vIHRyaWdnZXJPblNlYXJjaCBpZiB3ZSB3YW50IHRvIHRyaWdnZXIgc2VhcmNoIG9uIGVhY2ggY2hhbmdlXG4gIH1cblxuICBwdWJsaWMgYXJlQWxsQ29sdW1uc0NoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgbGV0IHJlc3VsdDogYm9vbGVhbiA9IHRydWU7XG4gICAgdGhpcy5jb2xBcnJheS5mb3JFYWNoKChjb2w6IENvbHVtbk9iamVjdCkgPT4ge1xuICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIGNvbC5jaGVja2VkO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q291bnRDb2x1bW5zQ2hlY2tlZCgpOiBudW1iZXIge1xuICAgIGxldCBjb3VudCA9IDA7XG4gICAgdGhpcy5jb2xBcnJheS5mb3JFYWNoKChjb2w6IENvbHVtbk9iamVjdCkgPT4ge1xuICAgICAgaWYgKGNvbC5jaGVja2VkKSB7XG4gICAgICAgIGNvdW50Kys7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGNvdW50O1xuICB9XG4gIHB1YmxpYyBvbkZpbHRlckNhc2VTZW5zaXRpdmVDaGFuZ2UoZXZlbnQ6IE1hdENoZWNrYm94Q2hhbmdlKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJDYXNlU2Vuc2l0aXZlID0gZXZlbnQuY2hlY2tlZDtcbiAgICAvLyB0cmlnZ2VyT25TZWFyY2ggaWYgd2Ugd2FudCB0byB0cmlnZ2VyIHNlYXJjaCBvbiBlYWNoIGNoYW5nZVxuICB9XG5cbiAgcHVibGljIGdldEFjdGl2ZUNvbHVtbnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmNvbEFycmF5LmZpbHRlcihjb2wgPT4gY29sLmNoZWNrZWQpLm1hcChjb2wgPT4gY29sLmNvbHVtbik7XG4gIH1cblxuICBwdWJsaWMgc2V0QWN0aXZlQ29sdW1ucyhhcmc6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5jb2xBcnJheS5mb3JFYWNoKChjOiBDb2x1bW5PYmplY3QpID0+IHtcbiAgICAgIGMuY2hlY2tlZCA9IGFyZy5pbmRleE9mKGMuY29sdW1uKSAhPT0gLTE7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hlY2tBY3RpdmVDb2x1bW5zKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmdldEFjdGl2ZUNvbHVtbnMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ01FU1NBR0VTLkFWT0lEX1FVRVJZX1dJVEhPVVRfUVVJQ0tGSUxURVJfQ09MVU1OUycpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0cmlnZ2VyT25TZWFyY2goKTogdm9pZCB7XG4gICAgY29uc3QgdGVybSA9IHRoaXMudGVybS52YWx1ZTtcbiAgICBpZiAodGhpcy5jaGVja0FjdGl2ZUNvbHVtbnMoKSAmJiBVdGlsLmlzRGVmaW5lZCh0ZXJtKSAmJiB0ZXJtLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMub25TZWFyY2guZW1pdCh0ZXJtKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25NZW51Q2xvc2VkKCk6IHZvaWQge1xuICAgIHRoaXMudHJpZ2dlck9uU2VhcmNoKCk7XG4gIH1cblxuICBnZXQgZmlsdGVyRXhwcmVzc2lvbigpOiBFeHByZXNzaW9uIHtcbiAgICBjb25zdCB0ZXJtVmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHRlcm1WYWx1ZSkgJiYgdGVybVZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZpbHRlckNvbHMgPSB0aGlzLmdldEFjdGl2ZUNvbHVtbnMoKTtcbiAgICAgIGlmIChmaWx0ZXJDb2xzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIEZpbHRlckV4cHJlc3Npb25VdGlscy5idWlsZEFycmF5RXhwcmVzc2lvbkxpa2UoZmlsdGVyQ29scywgdGVybVZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJnZXRGb3JtR3JvdXAoKVwiPlxuICA8ZGl2IGNsYXNzPVwicXVpY2tGaWx0ZXJcIiBmeExheW91dD1cInJvd1wiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCI+XG4gICAgICA8bWF0LWljb24gKm5nSWY9XCIhc2hvd0ZpbHRlck1lbnVcIiBzdmdJY29uPVwib250aW1pemU6c2VhcmNoXCIgbWF0UHJlZml4PjwvbWF0LWljb24+XG4gICAgICA8aW5wdXQgI3Rlcm0gbWF0SW5wdXQgaWQ9XCJ0ZXJtXCIgdHlwZT1cInNlYXJjaFwiIGZvcm1Db250cm9sTmFtZT1cInRlcm1cIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIj5cbiAgICAgIDxtYXQtbGFiZWwgKm5nSWY9XCJsYWJlbFZpc2libGVcIj57eyBsYWJlbCB8IG9UcmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgIDxkaXYgKm5nSWY9XCJzaG93RmlsdGVyTWVudVwiIGZ4TGF5b3V0PVwicm93XCIgbWF0UHJlZml4PlxuICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cIm9udGltaXplOnNlYXJjaFwiIFttYXRCYWRnZV09XCJhcmVBbGxDb2x1bW5zQ2hlY2tlZCgpPycnOmdldENvdW50Q29sdW1uc0NoZWNrZWQoKVwiIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiAobWVudUNsb3NlZCk9XCJvbk1lbnVDbG9zZWQoKVwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJzZWFyY2gtaWNvblwiPmV4cGFuZF9tb3JlPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cblxuXG4gICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJvLXNlYXJjaC1pbnB1dC1tZW51XCI+XG4gICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBjbGFzcz1cImNoZWNrYm94LWNvbnRhaW5lclwiPlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbEFycmF5Lmxlbmd0aCA+IDFcIj5cbiAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIFtjaGVja2VkXT1cImFyZUFsbENvbHVtbnNDaGVja2VkKClcIiAoY2hhbmdlKT1cIm9uU2VsZWN0QWxsQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgICAge3sgJ1NFTEVDVF9BTEwnIHwgb1RyYW5zbGF0ZSB9fTwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbEFycmF5XCI+XG4gICAgICAgICAgICA8bWF0LWNoZWNrYm94IChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiBbY2hlY2tlZF09XCJpc0NoZWNrZWQoaXRlbSlcIiAoY2hhbmdlKT1cIm9uQ2hlY2tib3hDaGFuZ2UoaXRlbSwgJGV2ZW50KVwiPlxuICAgICAgICAgICAgICB7eyBpdGVtLmNvbHVtbiB8IG9UcmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dDYXNlU2Vuc2l0aXZlQ2hlY2tib3hcIj5cbiAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgICAgPG1hdC1jaGVja2JveCAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgW2NoZWNrZWRdPVwiZmlsdGVyQ2FzZVNlbnNpdGl2ZVwiIChjaGFuZ2UpPVwib25GaWx0ZXJDYXNlU2Vuc2l0aXZlQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgICAge3sgJ1RBQkxFLkZJTFRFUi5DQVNFX1NFTlNJVElWRScgfCBvVHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21hdC1tZW51PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1zZWFyY2gtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXQvc2VhcmNoLWlucHV0L28tc2VhcmNoLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0L3NlYXJjaC1pbnB1dC9vLXNlYXJjaC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUlwRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBRTFDLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHO0lBQzNDLGFBQWE7SUFDYixPQUFPO0lBQ1AsT0FBTztJQUNQLHlCQUF5QjtJQUN6QixZQUFZO0lBQ1osU0FBUztJ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Z0JBQWdCO1FBQ2xCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDM0MsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDekIsT0FBTyxxQkFBcUIsQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7YUFDOUU7U0FDRjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7O21IQWhOVSxxQkFBcUI7dUdBQXJCLHFCQUFxQiwwZkNoRGxDLGlqRUF3Q0E7QUQrQkU7SUFBQyxxQkFBcUIsRUFBRTs7d0VBQzBCO0FBQ2xEO0lBQUMscUJBQXFCLEVBQUU7O3VEQUNRO0FBQ2hDO0lBQUMscUJBQXFCLEVBQUU7O21FQUN3Qjs0RkE1QnJDLHFCQUFxQjtrQkFYakMsU0FBUzsrQkFDRSxnQkFBZ0IsVUFHbEIsNkJBQTZCLFdBQzVCLDhCQUE4QixpQkFDeEIsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSix3QkFBd0IsRUFBRSxNQUFNO3FCQUNqQzt3SEEwQk0seUJBQXlCLE1BRXpCLFFBQVEsTUFFTCxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdENoZWNrYm94Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgRmxvYXRMYWJlbFR5cGUsIE1hdEZvcm1GaWVsZEFwcGVhcmFuY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE9fSU5QVVRTX09QVElPTlMgfSBmcm9tICcuLi8uLi8uLi9jb25maWcvYXBwLWNvbmZpZyc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXRDb252ZXJ0ZXIgfSBmcm9tICcuLi8uLi8uLi9kZWNvcmF0b3JzL2lucHV0LWNvbnZlcnRlcic7XG5pbXBvcnQgeyBTbmFja0JhclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zbmFja2Jhci5zZXJ2aWNlJztcbmltcG9ydCB7IE9UcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdHJhbnNsYXRlL28tdHJhbnNsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2V4cHJlc3Npb24udHlwZSc7XG5pbXBvcnQgeyBGb3JtVmFsdWVPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvZm9ybS12YWx1ZS1vcHRpb25zLnR5cGUnO1xuaW1wb3J0IHsgT0lucHV0c09wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9vLWlucHV0cy1vcHRpb25zLnR5cGUnO1xuaW1wb3J0IHsgRmlsdGVyRXhwcmVzc2lvblV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC9maWx0ZXItZXhwcmVzc2lvbi51dGlscyc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC91dGlsJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfSU5QVVRTX09fU0VBUkNIX0lOUFVUID0gW1xuICAncGxhY2Vob2xkZXInLFxuICAnbGFiZWwnLFxuICAnd2lkdGgnLFxuICAnZmxvYXRMYWJlbDogZmxvYXQtbGFiZWwnLFxuICAnYXBwZWFyYW5jZScsXG4gICdjb2x1bW5zJyxcbiAgJ2ZpbHRlckNhc2VTZW5zaXRpdmU6IGZpbHRlci1jYXNlLXNlbnNpdGl2ZScsXG4gICdzaG93Q2FzZVNlbnNpdGl2ZUNoZWNrYm94OiBzaG93LWNhc2Utc2Vuc2l0aXZlLWNoZWNrYm94JyxcbiAgJ3Nob3dNZW51OiBzaG93LW1lbnUnXG5dO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9PVVRQVVRTX09fU0VBUkNIX0lOUFVUID0gW1xuICAnb25TZWFyY2gnXG5dO1xuXG5kZWNsYXJlIHR5cGUgQ29sdW1uT2JqZWN0ID0ge1xuICBjb2x1bW46IHN0cmluZztcbiAgY2hlY2tlZDogYm9vbGVhbjtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ28tc2VhcmNoLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tc2VhcmNoLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vby1zZWFyY2gtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgaW5wdXRzOiBERUZBVUxUX0lOUFVUU19PX1NFQVJDSF9JTlBVVCxcbiAgb3V0cHV0czogREVGQVVMVF9PVVRQVVRTX09fU0VBUkNIX0lOUFVULFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5vLXNlYXJjaC1pbnB1dF0nOiAndHJ1ZSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBPU2VhcmNoSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gIHB1YmxpYyBvblNlYXJjaDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgcHVibGljIGxhYmVsOiBzdHJpbmc7XG4gIHB1YmxpYyBjb2xBcnJheTogQ29sdW1uT2JqZWN0W10gPSBbXTtcbiAgcHVibGljIF9wbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NFQVJDSCc7XG5cbiAgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQodGhpcy5fcGxhY2Vob2xkZXIpO1xuICB9XG5cbiAgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQodmFsdWUpKSB7XG4gICAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBsYWJlbFZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFV0aWwuaXNEZWZpbmVkKHRoaXMubGFiZWwpO1xuICB9XG5cbiAgcHVibGljIHdpZHRoOiBzdHJpbmc7XG4gIHB1YmxpYyBjb2x1bW5zOiBzdHJpbmc7XG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBwdWJsaWMgc2hvd0Nhc2VTZW5zaXRpdmVDaGVja2JveDogYm9vbGVhbiA9IGZhbHNlO1xuICBAQm9vbGVhbklucHV0Q29udmVydGVyKClcbiAgcHVibGljIHNob3dNZW51OiBib29sZWFuID0gdHJ1ZTtcbiAgQEJvb2xlYW5JbnB1dENvbnZlcnRlcigpXG4gIHByb3RlY3RlZCBfZmlsdGVyQ2FzZVNlbnNpdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgX2Zsb2F0TGFiZWw6IEZsb2F0TGFiZWxUeXBlO1xuICBwcm90ZWN0ZWQgX2FwcGVhcmFuY2U6IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2U7XG5cbiAgcHJvdGVjdGVkIGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cDtcbiAgcHJvdGVjdGVkIHRlcm06IFVudHlwZWRGb3JtQ29udHJvbDtcbiAgcHJvdGVjdGVkIHRyYW5zbGF0ZVNlcnZpY2U6IE9UcmFuc2xhdGVTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgb0lucHV0c09wdGlvbnM6IE9JbnB1dHNPcHRpb25zO1xuICBwcm90ZWN0ZWQgc25hY2tCYXJTZXJ2aWNlOiBTbmFja0JhclNlcnZpY2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcm90ZWN0ZWQgZWxSZWY6IEVsZW1lbnRSZWZcbiAgKSB7XG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoT1RyYW5zbGF0ZVNlcnZpY2UpO1xuICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoU25hY2tCYXJTZXJ2aWNlKTtcbiAgICB0aGlzLmZvcm1Hcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRlcm0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XG4gICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbCgndGVybScsIHRoaXMudGVybSk7XG5cbiAgICB0aGlzLnRlcm0udmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDQwMCkpXG4gICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUodGVybSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNoZWNrQWN0aXZlQ29sdW1ucygpKSB7XG4gICAgICAgICAgdGhpcy5vblNlYXJjaC5lbWl0KHRlcm0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIGNvbnN0IGNvbEFycmF5ID0gVXRpbC5wYXJzZUFycmF5KHRoaXMuY29sdW1ucywgdHJ1ZSk7XG4gICAgY29sQXJyYXkuZm9yRWFjaCgoY29sOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuY29sQXJyYXkucHVzaCh7XG4gICAgICAgIGNvbHVtbjogY29sLFxuICAgICAgICBjaGVja2VkOiB0cnVlXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMub0lucHV0c09wdGlvbnMgPSB0aGlzLmluamVjdG9yLmdldChPX0lOUFVUU19PUFRJT05TKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLm9JbnB1dHNPcHRpb25zID0ge307XG4gICAgfVxuICAgIFV0aWwucGFyc2VPSW5wdXRzT3B0aW9ucyh0aGlzLmVsUmVmLCB0aGlzLm9JbnB1dHNPcHRpb25zKTtcbiAgfVxuXG4gIGdldCBmbG9hdExhYmVsKCk6IEZsb2F0TGFiZWxUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5fZmxvYXRMYWJlbDtcbiAgfVxuXG4gIHNldCBmbG9hdExhYmVsKHZhbHVlOiBGbG9hdExhYmVsVHlwZSkge1xuICAgIGNvbnN0IHZhbHVlcyA9IFsnYWx3YXlzJywgJ2F1dG8nXTtcbiAgICBpZiAodmFsdWVzLmluZGV4T2YodmFsdWUpID09PSAtMSkge1xuICAgICAgdmFsdWUgPSAnYWx3YXlzJztcbiAgICB9XG4gICAgdGhpcy5fZmxvYXRMYWJlbCA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGFwcGVhcmFuY2UoKTogTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSB7XG4gICAgcmV0dXJuIHRoaXMuX2FwcGVhcmFuY2U7XG4gIH1cblxuICBzZXQgYXBwZWFyYW5jZSh2YWx1ZTogTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSkge1xuICAgIGNvbnN0IHZhbHVlcyA9IFsnZmlsbCcsICdvdXRsaW5lJ107XG4gICAgaWYgKHZhbHVlcy5pbmRleE9mKHZhbHVlKSA9PT0gLTEpIHtcbiAgICAgIHZhbHVlID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB0aGlzLl9hcHBlYXJhbmNlID0gdmFsdWU7XG4gIH1cblxuICBnZXQgZmlsdGVyQ2FzZVNlbnNpdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyQ2FzZVNlbnNpdGl2ZTtcbiAgfVxuXG4gIHNldCBmaWx0ZXJDYXNlU2Vuc2l0aXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZmlsdGVyQ2FzZVNlbnNpdGl2ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldEZvcm1Hcm91cCgpOiBVbnR5cGVkRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXA7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50ZXJtLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIHNldFZhbHVlKHZhbDogc3RyaW5nLCBvcHRpb25zPzogRm9ybVZhbHVlT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMudGVybS5zZXRWYWx1ZSh2YWwsIG9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIGdldEZvcm1Db250cm9sKCk6IFVudHlwZWRGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMudGVybTtcbiAgfVxuXG4gIGdldCBoYXNDdXN0b21XaWR0aCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy53aWR0aCAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0IHNob3dGaWx0ZXJNZW51KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNob3dNZW51ICYmIHRoaXMuY29sQXJyYXkubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHB1YmxpYyBpc0NoZWNrZWQoY29sdW1uOiBDb2x1bW5PYmplY3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gY29sdW1uLmNoZWNrZWQ7XG4gIH1cblxuICBwdWJsaWMgb25DaGVja2JveENoYW5nZShjb2x1bW46IENvbHVtbk9iamVjdCwgZXZlbnQ6IE1hdENoZWNrYm94Q2hhbmdlKTogdm9pZCB7XG4gICAgY29sdW1uLmNoZWNrZWQgPSBldmVudC5jaGVja2VkO1xuICAgIC8vIHRyaWdnZXJPblNlYXJjaCBpZiB3ZSB3YW50IHRvIHRyaWdnZXIgc2VhcmNoIG9uIGVhY2ggY2hhbmdlXG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3RBbGxDaGFuZ2UoZXZlbnQ6IE1hdENoZWNrYm94Q2hhbmdlKTogdm9pZCB7XG4gICAgdGhpcy5jb2xBcnJheS5mb3JFYWNoKChjb2w6IENvbHVtbk9iamVjdCkgPT4ge1xuICAgICAgY29sLmNoZWNrZWQgPSBldmVudC5jaGVja2VkO1xuICAgIH0pO1xuICAgIC8vIHRyaWdnZXJPblNlYXJjaCBpZiB3ZSB3YW50IHRvIHRyaWdnZXIgc2VhcmNoIG9uIGVhY2ggY2hhbmdlXG4gIH1cblxuICBwdWJsaWMgYXJlQWxsQ29sdW1uc0NoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgbGV0IHJlc3VsdDogYm9vbGVhbiA9IHRydWU7XG4gICAgdGhpcy5jb2xBcnJheS5mb3JFYWNoKChjb2w6IENvbHVtbk9iamVjdCkgPT4ge1xuICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIGNvbC5jaGVja2VkO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q291bnRDb2x1bW5zQ2hlY2tlZCgpOiBudW1iZXIge1xuICAgIGxldCBjb3VudCA9IDA7XG4gICAgdGhpcy5jb2xBcnJheS5mb3JFYWNoKChjb2w6IENvbHVtbk9iamVjdCkgPT4ge1xuICAgICAgaWYgKGNvbC5jaGVja2VkKSB7XG4gICAgICAgIGNvdW50Kys7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGNvdW50O1xuICB9XG4gIHB1YmxpYyBvbkZpbHRlckNhc2VTZW5zaXRpdmVDaGFuZ2UoZXZlbnQ6IE1hdENoZWNrYm94Q2hhbmdlKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJDYXNlU2Vuc2l0aXZlID0gZXZlbnQuY2hlY2tlZDtcbiAgICAvLyB0cmlnZ2VyT25TZWFyY2ggaWYgd2Ugd2FudCB0byB0cmlnZ2VyIHNlYXJjaCBvbiBlYWNoIGNoYW5nZVxuICB9XG5cbiAgcHVibGljIGdldEFjdGl2ZUNvbHVtbnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmNvbEFycmF5LmZpbHRlcihjb2wgPT4gY29sLmNoZWNrZWQpLm1hcChjb2wgPT4gY29sLmNvbHVtbik7XG4gIH1cblxuICBwdWJsaWMgc2V0QWN0aXZlQ29sdW1ucyhhcmc6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5jb2xBcnJheS5mb3JFYWNoKChjOiBDb2x1bW5PYmplY3QpID0+IHtcbiAgICAgIGMuY2hlY2tlZCA9IGFyZy5pbmRleE9mKGMuY29sdW1uKSAhPT0gLTE7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hlY2tBY3RpdmVDb2x1bW5zKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmdldEFjdGl2ZUNvbHVtbnMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ01FU1NBR0VTLkFWT0lEX1FVRVJZX1dJVEhPVVRfUVVJQ0tGSUxURVJfQ09MVU1OUycpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0cmlnZ2VyT25TZWFyY2goKTogdm9pZCB7XG4gICAgY29uc3QgdGVybSA9IHRoaXMudGVybS52YWx1ZTtcbiAgICBpZiAodGhpcy5jaGVja0FjdGl2ZUNvbHVtbnMoKSAmJiBVdGlsLmlzRGVmaW5lZCh0ZXJtKSAmJiB0ZXJtLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMub25TZWFyY2guZW1pdCh0ZXJtKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25NZW51Q2xvc2VkKCk6IHZvaWQge1xuICAgIHRoaXMudHJpZ2dlck9uU2VhcmNoKCk7XG4gIH1cblxuICBnZXQgZmlsdGVyRXhwcmVzc2lvbigpOiBFeHByZXNzaW9uIHtcbiAgICBjb25zdCB0ZXJtVmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHRlcm1WYWx1ZSkgJiYgdGVybVZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZpbHRlckNvbHMgPSB0aGlzLmdldEFjdGl2ZUNvbHVtbnMoKTtcbiAgICAgIGlmIChmaWx0ZXJDb2xzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIEZpbHRlckV4cHJlc3Npb25VdGlscy5idWlsZEFycmF5RXhwcmVzc2lvbkxpa2UoZmlsdGVyQ29scywgdGVybVZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJnZXRGb3JtR3JvdXAoKVwiPlxuICA8ZGl2IGNsYXNzPVwicXVpY2tGaWx0ZXJcIiBmeExheW91dD1cInJvd1wiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCI+XG4gICAgICA8bWF0LWljb24gKm5nSWY9XCIhc2hvd0ZpbHRlck1lbnVcIiBzdmdJY29uPVwib250aW1pemU6c2VhcmNoXCIgbWF0UHJlZml4PjwvbWF0LWljb24+XG4gICAgICA8aW5wdXQgI3Rlcm0gbWF0SW5wdXQgaWQ9XCJ0ZXJtXCIgdHlwZT1cInNlYXJjaFwiIGZvcm1Db250cm9sTmFtZT1cInRlcm1cIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIj5cbiAgICAgIDxtYXQtbGFiZWwgKm5nSWY9XCJsYWJlbFZpc2libGVcIj57eyBsYWJlbCB8IG9UcmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgIDxkaXYgKm5nSWY9XCJzaG93RmlsdGVyTWVudVwiIGZ4TGF5b3V0PVwicm93XCIgbWF0UHJlZml4PlxuICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cIm9udGltaXplOnNlYXJjaFwiIFttYXRCYWRnZV09XCJhcmVBbGxDb2x1bW5zQ2hlY2tlZCgpPycnOmdldENvdW50Q29sdW1uc0NoZWNrZWQoKVwiIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgKG1lbnVDbG9zZWQpPVwib25NZW51Q2xvc2VkKClcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwic2VhcmNoLWljb25cIj5leHBhbmRfbW9yZTwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG5cblxuICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiIGNsYXNzPVwiby1zZWFyY2gtaW5wdXQtbWVudVwiPlxuICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgY2xhc3M9XCJjaGVja2JveC1jb250YWluZXJcIj5cblxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2xBcnJheS5sZW5ndGggPiAxXCI+XG4gICAgICAgICAgICA8bWF0LWNoZWNrYm94IChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiBbY2hlY2tlZF09XCJhcmVBbGxDb2x1bW5zQ2hlY2tlZCgpXCIgKGNoYW5nZSk9XCJvblNlbGVjdEFsbENoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIHt7ICdTRUxFQ1RfQUxMJyB8IG9UcmFuc2xhdGUgfX08L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb2xBcnJheVwiPlxuICAgICAgICAgICAgPG1hdC1jaGVja2JveCAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgW2NoZWNrZWRdPVwiaXNDaGVja2VkKGl0ZW0pXCIgKGNoYW5nZSk9XCJvbkNoZWNrYm94Q2hhbmdlKGl0ZW0sICRldmVudClcIj5cbiAgICAgICAgICAgICAge3sgaXRlbS5jb2x1bW4gfCBvVHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93Q2FzZVNlbnNpdGl2ZUNoZWNrYm94XCI+XG4gICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIFtjaGVja2VkXT1cImZpbHRlckNhc2VTZW5zaXRpdmVcIiAoY2hhbmdlKT1cIm9uRmlsdGVyQ2FzZVNlbnNpdGl2ZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIHt7ICdUQUJMRS5GSUxURVIuQ0FTRV9TRU5TSVRJVkUnIHwgb1RyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtbWVudT5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==