@sd-angular/core 0.0.842 → 0.0.846

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 (25) hide show
  1. package/bundles/sd-angular-core-button.umd.js +1 -1
  2. package/bundles/sd-angular-core-button.umd.min.js +1 -1
  3. package/bundles/sd-angular-core-button.umd.min.js.map +1 -1
  4. package/bundles/sd-angular-core-grid-material.umd.js +2 -2
  5. package/bundles/sd-angular-core-grid-material.umd.js.map +1 -1
  6. package/bundles/sd-angular-core-grid-material.umd.min.js +2 -2
  7. package/bundles/sd-angular-core-grid-material.umd.min.js.map +1 -1
  8. package/bundles/sd-angular-core-tab-router.umd.js +14 -13
  9. package/bundles/sd-angular-core-tab-router.umd.js.map +1 -1
  10. package/bundles/sd-angular-core-tab-router.umd.min.js +2 -2
  11. package/bundles/sd-angular-core-tab-router.umd.min.js.map +1 -1
  12. package/button/sd-angular-core-button.metadata.json +1 -1
  13. package/esm2015/button/src/lib/button.component.js +1 -1
  14. package/esm2015/grid-material/src/lib/grid-material.component.js +3 -3
  15. package/esm2015/tab-router/src/lib/components/tab-router-outlet/tab-router-outlet.component.js +12 -10
  16. package/fesm2015/sd-angular-core-button.js +1 -1
  17. package/fesm2015/sd-angular-core-grid-material.js +2 -2
  18. package/fesm2015/sd-angular-core-grid-material.js.map +1 -1
  19. package/fesm2015/sd-angular-core-tab-router.js +11 -10
  20. package/fesm2015/sd-angular-core-tab-router.js.map +1 -1
  21. package/grid-material/sd-angular-core-grid-material.metadata.json +1 -1
  22. package/package.json +1 -1
  23. package/{sd-angular-core-0.0.842.tgz → sd-angular-core-0.0.846.tgz} +0 -0
  24. package/tab-router/sd-angular-core-tab-router.metadata.json +1 -1
  25. package/tab-router/src/lib/components/tab-router-outlet/tab-router-outlet.component.d.ts +3 -2
@@ -1,15 +1,17 @@
1
1
  var _rootRoute, _subscription, _closeTab, _activeRoute, _getActivatedRouteSnapshot, _getActivatedRoute;
2
2
  import { __awaiter, __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
3
  import { ChangeDetectorRef, Compiler, Component, Injector, ViewChild, } from '@angular/core';
4
- import { ActivatedRoute, ChildrenOutletContexts, Router, RoutesRecognized, } from '@angular/router';
4
+ import { ActivatedRoute, ChildrenOutletContexts, NavigationEnd, Router, } from '@angular/router';
5
5
  import { SdNotifyService } from '@sd-angular/core/notify';
6
6
  import { SdTabActivated, SdTabDeactivated, } from '../../events/tab-router.event';
7
7
  import { SdTabRouterService } from '../../services/tab-router.service';
8
8
  import { Subscription } from 'rxjs';
9
9
  import { SdTabDecoratorService } from '../../services/tab-decorator.service';
10
+ import { filter } from 'rxjs/operators';
10
11
  export class SdTabRouterOutletComponent {
11
- constructor(router, cd, injector, compiler, parentContexts, tabDecoratorService, tabRouterService, sdNotifyService) {
12
+ constructor(router, activatedRoute, cd, injector, compiler, parentContexts, tabDecoratorService, tabRouterService, sdNotifyService) {
12
13
  this.router = router;
14
+ this.activatedRoute = activatedRoute;
13
15
  this.cd = cd;
14
16
  this.injector = injector;
15
17
  this.compiler = compiler;
@@ -138,13 +140,12 @@ export class SdTabRouterOutletComponent {
138
140
  return null;
139
141
  }
140
142
  });
141
- __classPrivateFieldGet(this, _subscription).add(router.events.subscribe((event) => __awaiter(this, void 0, void 0, function* () {
142
- if (event instanceof RoutesRecognized) {
143
- console.log(event);
144
- const route = __classPrivateFieldGet(this, _getActivatedRouteSnapshot).call(this, event.state.root);
145
- __classPrivateFieldSet(this, _rootRoute, this.router.routerState.root);
146
- yield __classPrivateFieldGet(this, _activeRoute).call(this, event.urlAfterRedirects || event.url, route);
147
- }
143
+ console.log(this.activatedRoute.snapshot.url);
144
+ __classPrivateFieldGet(this, _subscription).add(router.events.pipe(filter(event => event instanceof NavigationEnd))
145
+ .subscribe((event) => __awaiter(this, void 0, void 0, function* () {
146
+ const route = __classPrivateFieldGet(this, _getActivatedRouteSnapshot).call(this, event.state.root);
147
+ __classPrivateFieldSet(this, _rootRoute, this.router.routerState.root);
148
+ yield __classPrivateFieldGet(this, _activeRoute).call(this, event.urlAfterRedirects || event.url, route);
148
149
  })));
149
150
  __classPrivateFieldGet(this, _subscription).add(tabRouterService.actions.subscribe((event) => {
150
151
  if (event && event.type === 'close') {
@@ -166,6 +167,7 @@ SdTabRouterOutletComponent.decorators = [
166
167
  ];
167
168
  SdTabRouterOutletComponent.ctorParameters = () => [
168
169
  { type: Router },
170
+ { type: ActivatedRoute },
169
171
  { type: ChangeDetectorRef },
170
172
  { type: Injector },
171
173
  { type: Compiler },
@@ -194,4 +196,4 @@ class SdOutletInjector {
194
196
  return this.parent.get(token, notFoundValue);
195
197
  }
196
198
  }
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLXJvdXRlci1vdXRsZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL3VzZXIvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvdGFiLXJvdXRlci8iLCJzb3VyY2VzIjpbInNyYy9saWIvY29tcG9uZW50cy90YWItcm91dGVyLW91dGxldC90YWItcm91dGVyLW91dGxldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixTQUFTLEVBQ1QsUUFBUSxFQUtSLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsY0FBYyxFQUVkLHNCQUFzQixFQUl0QixNQUFNLEVBQ04sZ0JBQWdCLEdBQ2pCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFDTCxjQUFjLEVBQ2QsZ0JBQWdCLEdBQ2pCLE1BQU0sK0JBQStCLENBQUM7QUFJdkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQVE3RSxNQUFNLE9BQU8sMEJBQTBCO0lBTXJDLFlBQ1UsTUFBYyxFQUNkLEVBQXFCLEVBQ3JCLFFBQWtCLEVBQ2xCLFFBQWtCLEVBQ2xCLGNBQXNDLEVBQ3RDLG1CQUEwQyxFQUMxQyxnQkFBb0MsRUFDcEMsZUFBZ0M7UUFQaEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixtQkFBYyxHQUFkLGNBQWMsQ0FBd0I7UUFDdEMsd0JBQW1C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akIsUUFBUTtZQUZSLFFBQVE7WUFZUixzQkFBc0I7WUFrQmYscUJBQXFCO1lBSHJCLGtCQUFrQjtZQVJsQixlQUFlOzs7MkJBb0JyQixTQUFTLFNBQUMsY0FBYzs7QUE0SzNCLE1BQU0sZ0JBQWdCO0lBQ3BCLFlBQ1UsS0FBNEI7SUFDcEMsaURBQWlEO0lBQ3pDLE1BQVc7UUFGWCxVQUFLLEdBQUwsS0FBSyxDQUF1QjtRQUU1QixXQUFNLEdBQU4sTUFBTSxDQUFLO0lBQ2xCLENBQUM7SUFFSixHQUFHLENBQUMsS0FBVSxFQUFFLGFBQW1CO1FBQ2pDLElBQUksS0FBSyxLQUFLLGNBQWMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQzFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNuQjtRQUVELDBDQUEwQztRQUMxQywrQkFBK0I7UUFDL0IsSUFBSTtRQUVKLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQy9DLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcGlsZXIsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEluamVjdG9yLFxyXG4gIE5nTW9kdWxlUmVmLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgVHlwZSxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQWN0aXZhdGVkUm91dGUsXHJcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcclxuICBDaGlsZHJlbk91dGxldENvbnRleHRzLFxyXG4gIC8vIENoaWxkcmVuT3V0bGV0Q29udGV4dHMsXHJcbiAgRXZlbnQsXHJcbiAgUFJJTUFSWV9PVVRMRVQsXHJcbiAgUm91dGVyLFxyXG4gIFJvdXRlc1JlY29nbml6ZWQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU2ROb3RpZnlTZXJ2aWNlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9ub3RpZnknO1xyXG5pbXBvcnQge1xyXG4gIFNkVGFiQWN0aXZhdGVkLFxyXG4gIFNkVGFiRGVhY3RpdmF0ZWQsXHJcbn0gZnJvbSAnLi4vLi4vZXZlbnRzL3RhYi1yb3V0ZXIuZXZlbnQnO1xyXG5cclxuaW1wb3J0IHsgU2RUYWIgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGFiLXJvdXRlci5tb2RlbCc7XHJcbmltcG9ydCB7IFNkVGFiQWN0aW9uIH0gZnJvbSAnLi4vLi4vYWN0aW9ucy90YWItcm91dGVyLmFjdGlvbic7XHJcbmltcG9ydCB7IFNkVGFiUm91dGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RhYi1yb3V0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFNkVGFiUm91dGVyTmF2Q29tcG9uZW50IH0gZnJvbSAnLi4vdGFiLXJvdXRlci1uYXYvdGFiLXJvdXRlci1uYXYuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNkVGFiRGVjb3JhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RhYi1kZWNvcmF0b3Iuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLXRhYi1yb3V0ZXItb3V0bGV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFiLXJvdXRlci1vdXRsZXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYi1yb3V0ZXItb3V0bGV0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgLy8gY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZFRhYlJvdXRlck91dGxldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZCgndGFiUm91dGVyTmF2JykgdGFiUm91dGVyTmF2OiBTZFRhYlJvdXRlck5hdkNvbXBvbmVudDtcclxuICB0YWJzOiBTZFRhYltdID0gW107XHJcblxyXG4gICNyb290Um91dGU6IEFjdGl2YXRlZFJvdXRlO1xyXG4gICNzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgY29tcGlsZXI6IENvbXBpbGVyLFxyXG4gICAgcHJpdmF0ZSBwYXJlbnRDb250ZXh0czogQ2hpbGRyZW5PdXRsZXRDb250ZXh0cyxcclxuICAgIHByaXZhdGUgdGFiRGVjb3JhdG9yU2VydmljZTogU2RUYWJEZWNvcmF0b3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0YWJSb3V0ZXJTZXJ2aWNlOiBTZFRhYlJvdXRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNkTm90aWZ5U2VydmljZTogU2ROb3RpZnlTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHJvdXRlci5ldmVudHMuc3Vic2NyaWJlKGFzeW5jIChldmVudDogRXZlbnQpID0+IHtcclxuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgUm91dGVzUmVjb2duaXplZCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGV2ZW50KTtcclxuICAgICAgICBjb25zdCByb3V0ZSA9IHRoaXMuI2dldEFjdGl2YXRlZFJvdXRlU25hcHNob3QoZXZlbnQuc3RhdGUucm9vdCk7XHJcbiAgICAgICAgdGhpcy4jcm9vdFJvdXRlID0gdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUucm9vdDtcclxuICAgICAgICBhd2FpdCB0aGlzLiNhY3RpdmVSb3V0ZShldmVudC51cmxBZnRlclJlZGlyZWN0cyB8fCBldmVudC51cmwsIHJvdXRlKTtcclxuICAgICAgfVxyXG4gICAgfSkpO1xyXG5cclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQodGFiUm91dGVyU2VydmljZS5hY3Rpb25zLnN1YnNjcmliZSgoZXZlbnQ6IFNkVGFiQWN0aW9uIHwgbnVsbCkgPT4ge1xyXG4gICAgICBpZiAoZXZlbnQgJiYgZXZlbnQudHlwZSA9PT0gJ2Nsb3NlJykge1xyXG4gICAgICAgIHRoaXMuI2Nsb3NlVGFiKGV2ZW50LnRhYik7XHJcbiAgICAgIH1cclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAjY2xvc2VUYWIgPSAodGFiOiBTZFRhYikgPT4ge1xyXG4gICAgdGhpcy50YWJzID0gdGhpcy50YWJzLmZpbHRlcigoeyBrZXkgfSkgPT4ga2V5ICE9PSB0YWIua2V5KTtcclxuICAgIGlmICh0YWIuaXNBY3RpdmUpIHtcclxuICAgICAgY29uc3QgbGFzdFRhYiA9IHRoaXMudGFic1t0aGlzLnRhYnMubGVuZ3RoIC0gMV07XHJcbiAgICAgIGlmIChsYXN0VGFiKSB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChsYXN0VGFiLnVybCwge1xyXG4gICAgICAgICAgc3RhdGU6IHtcclxuICAgICAgICAgICAgc3dpdGNoVGFiOiB0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvJywge1xyXG4gICAgICAgICAgc3RhdGU6IHtcclxuICAgICAgICAgICAgc3dpdGNoVGFiOiB0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50YWJSb3V0ZXJOYXY/LmNoZWNrVUkoKTtcclxuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICNhY3RpdmVSb3V0ZSA9IGFzeW5jICh1cmw6IHN0cmluZywgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBudWxsKSA9PiB7XHJcbiAgICBpZiAoIXJvdXRlPy5jb21wb25lbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29tcG9uZW50ID0gcm91dGUuY29tcG9uZW50IGFzIFR5cGU8YW55PjtcclxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0ge1xyXG4gICAgICAuLi4ocm91dGUucXVlcnlQYXJhbXMgfHwge30pLFxyXG4gICAgfTtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHtcclxuICAgICAgLi4uKHJvdXRlLnBhcmFtcyB8fCB7fSksXHJcbiAgICB9O1xyXG5cclxuICAgIGxldCBleGlzdGVkSW5kZXggPSAtMTtcclxuICAgIHRoaXMudGFicy5mb3JFYWNoKCh0YWI6IFNkVGFiLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGlmICh0YWIua2V5ID09PSB1cmwpIHtcclxuICAgICAgICB0YWIuaXNBY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIGV4aXN0ZWRJbmRleCA9IGluZGV4O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh0YWIuaXNBY3RpdmUpIHtcclxuICAgICAgICAgIHRoaXMudGFiUm91dGVyU2VydmljZS5wdXNoRXZlbnQodGFiLCBTZFRhYkRlYWN0aXZhdGVkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGFiLmlzQWN0aXZlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGN1cnJlbnROYXZpZ2F0aW9uID0gdGhpcy5yb3V0ZXIuZ2V0Q3VycmVudE5hdmlnYXRpb24oKTtcclxuICAgIGlmIChleGlzdGVkSW5kZXggPj0gMCAmJiBjdXJyZW50TmF2aWdhdGlvbj8uZXh0cmFzPy5zdGF0ZT8uc3dpdGNoVGFiKSB7XHJcbiAgICAgIGNvbnN0IGV4aXN0ZWRUYWIgPSB0aGlzLnRhYnNbZXhpc3RlZEluZGV4XTtcclxuICAgICAgdGhpcy50YWJSb3V0ZXJTZXJ2aWNlLnNldEN1cnJlbnRUYWIoZXhpc3RlZFRhYik7XHJcbiAgICAgIHRoaXMudGFiUm91dGVyU2VydmljZS5wdXNoRXZlbnQoZXhpc3RlZFRhYiwgU2RUYWJBY3RpdmF0ZWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHR5cGVvZiByb3V0ZT8ucGFyZW50Py5yb3V0ZUNvbmZpZz8ubG9hZENoaWxkcmVuID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgY29uc3QgbW9kdWxlID0gYXdhaXQgcm91dGUucGFyZW50LnJvdXRlQ29uZmlnLmxvYWRDaGlsZHJlbigpO1xyXG4gICAgICAgIGNvbnN0IGZhY3RvcnkgPSBhd2FpdCB0aGlzLmNvbXBpbGVyLmNvbXBpbGVNb2R1bGVBc3luYyhtb2R1bGUpO1xyXG4gICAgICAgIGNvbnN0IGluamVjdG9yID0gZmFjdG9yeS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XHJcbiAgICAgICAgLy8gbGV0IHRhYkluZm8gPSB7fTtcclxuICAgICAgICAvLyBpZiAoJ2dldFRhYkluZm8nIGluIGNvbXBvbmVudCkge1xyXG4gICAgICAgIC8vICAgdGFiSW5mbyA9IGNvbXBvbmVudC5nZXRUYWJJbmZvKHtcclxuICAgICAgICAvLyAgICAgcGFyYW1zLFxyXG4gICAgICAgIC8vICAgICBxdWVyeVBhcmFtcyxcclxuICAgICAgICAvLyAgIH0pO1xyXG4gICAgICAgIC8vIH1cclxuXHJcbiAgICAgICAgY29uc3QgYWN0aXZhdGVkUm91dGUgPSB0aGlzLiNnZXRBY3RpdmF0ZWRSb3V0ZShcclxuICAgICAgICAgIHRoaXMuI3Jvb3RSb3V0ZSxcclxuICAgICAgICAgIGNvbXBvbmVudFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGNvbnN0IHRhYiA9IHtcclxuICAgICAgICAgIGtleTogdXJsLFxyXG4gICAgICAgICAgY29tcG9uZW50LFxyXG4gICAgICAgICAgaW5qZWN0b3I6IG5ldyBTZE91dGxldEluamVjdG9yKGFjdGl2YXRlZFJvdXRlLCBpbmplY3RvciksXHJcblxyXG4gICAgICAgICAgaXNBY3RpdmU6IHRydWUsXHJcbiAgICAgICAgICBuYW1lOiB1cmwsXHJcbiAgICAgICAgICB1cmwsXHJcbiAgICAgICAgICBwYXJhbXMsXHJcbiAgICAgICAgICBxdWVyeVBhcmFtcyxcclxuICAgICAgICAgIC8vIC4uLnRhYkluZm8sXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy50YWJSb3V0ZXJTZXJ2aWNlLnNldEN1cnJlbnRUYWIodGFiKTtcclxuICAgICAgICBpZiAoZXhpc3RlZEluZGV4ID49IDAgJiYgIWN1cnJlbnROYXZpZ2F0aW9uPy5leHRyYXM/LnN0YXRlPy5zd2l0Y2hUYWIpIHtcclxuICAgICAgICAgIHRoaXMudGFic1tleGlzdGVkSW5kZXhdID0gdGFiO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnRhYnMucHVzaCh0YWIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy50YWJSb3V0ZXJOYXY/LmNoZWNrVUkoKTtcclxuICAgICAgaWYgKHRoaXMudGFicy5sZW5ndGggPiAxMCkge1xyXG4gICAgICAgIHRoaXMuc2ROb3RpZnlTZXJ2aWNlLm5vdGlmeS53YXJuaW5nKFxyXG4gICAgICAgICAgJ0LhuqFuIMSRw6MgbeG7nyBxdcOhIG5oaeG7gXUgdGFiLiBWdWkgbMOybmcgdOG6r3QgY8OhYyB0YWIga2jDtG5nIGTDuW5nIMSR4buDIGjhu4cgdGjhu5FuZyBob+G6oXQgxJHhu5luZyB04buRdCBoxqFuLidcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnRhYnMubGVuZ3RoID4gMTIpIHtcclxuICAgICAgICB0aGlzLnRhYnMuc3BsaWNlKDAsIHRoaXMudGFicy5sZW5ndGggLSAxMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICAjZ2V0QWN0aXZhdGVkUm91dGVTbmFwc2hvdCA9IChcclxuICAgIGFjdGl2YXRlZFJvdXRlU25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3RcclxuICApOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHwgbnVsbCA9PiB7XHJcbiAgICBpZiAoIWFjdGl2YXRlZFJvdXRlU25hcHNob3QpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGFjdGl2YXRlZFJvdXRlU25hcHNob3QuZmlyc3RDaGlsZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy4jZ2V0QWN0aXZhdGVkUm91dGVTbmFwc2hvdChhY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LmZpcnN0Q2hpbGQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGFjdGl2YXRlZFJvdXRlU25hcHNob3Q7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAjZ2V0QWN0aXZhdGVkUm91dGUgPSAoXHJcbiAgICBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBjb21wb25lbnQ6IGFueVxyXG4gICk6IEFjdGl2YXRlZFJvdXRlIHwgbnVsbCA9PiB7XHJcbiAgICBpZiAoIWFjdGl2YXRlZFJvdXRlKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChhY3RpdmF0ZWRSb3V0ZS5jb21wb25lbnQgJiYgYWN0aXZhdGVkUm91dGUuY29tcG9uZW50ID09PSBjb21wb25lbnQpIHtcclxuICAgICAgcmV0dXJuIGFjdGl2YXRlZFJvdXRlO1xyXG4gICAgfSBlbHNlIGlmIChhY3RpdmF0ZWRSb3V0ZS5maXJzdENoaWxkKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLiNnZXRBY3RpdmF0ZWRSb3V0ZShhY3RpdmF0ZWRSb3V0ZS5maXJzdENoaWxkLCBjb21wb25lbnQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5jbGFzcyBTZE91dGxldEluamVjdG9yIGltcGxlbWVudHMgSW5qZWN0b3Ige1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUgfCBudWxsLFxyXG4gICAgLy8gcHJpdmF0ZSBjaGlsZENvbnRleHRzOiBDaGlsZHJlbk91dGxldENvbnRleHRzLFxyXG4gICAgcHJpdmF0ZSBwYXJlbnQ6IGFueVxyXG4gICkge31cclxuXHJcbiAgZ2V0KHRva2VuOiBhbnksIG5vdEZvdW5kVmFsdWU/OiBhbnkpOiBhbnkge1xyXG4gICAgaWYgKHRva2VuID09PSBBY3RpdmF0ZWRSb3V0ZSAmJiB0aGlzLnJvdXRlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJvdXRlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGlmICh0b2tlbiA9PT0gQ2hpbGRyZW5PdXRsZXRDb250ZXh0cykge1xyXG4gICAgLy8gICByZXR1cm4gdGhpcy5jaGlsZENvbnRleHRzO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIHJldHVybiB0aGlzLnBhcmVudC5nZXQodG9rZW4sIG5vdEZvdW5kVmFsdWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLXJvdXRlci1vdXRsZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL3VzZXIvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvdGFiLXJvdXRlci8iLCJzb3VyY2VzIjpbInNyYy9saWIvY29tcG9uZW50cy90YWItcm91dGVyLW91dGxldC90YWItcm91dGVyLW91dGxldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixTQUFTLEVBQ1QsUUFBUSxFQUtSLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsY0FBYyxFQUVkLHNCQUFzQixFQUd0QixhQUFhLEVBRWIsTUFBTSxHQUVQLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFDTCxjQUFjLEVBQ2QsZ0JBQWdCLEdBQ2pCLE1BQU0sK0JBQStCLENBQUM7QUFJdkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFReEMsTUFBTSxPQUFPLDBCQUEwQjtJQU1yQyxZQUNVLE1BQWMsRUFDZCxjQUE4QixFQUM5QixFQUFxQixFQUNyQixRQUFrQixFQUNsQixRQUFrQixFQUNsQixjQUFzQyxFQUN0QyxtQkFBMEMsRUFDMUMsZ0JBQW9DLEVBQ3BDLGVBQWdDO1FBUmhDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsYUFBUSxH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SUFFRCxXQUFXO1FBQ1QsNENBQW1CLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7Ozs7WUF4Q0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLDhlQUFpRDs7YUFHbEQ7OztZQXRCQyxNQUFNO1lBUE4sY0FBYztZQVhkLGlCQUFpQjtZQUdqQixRQUFRO1lBRlIsUUFBUTtZQVlSLHNCQUFzQjtZQW1CZixxQkFBcUI7WUFIckIsa0JBQWtCO1lBUmxCLGVBQWU7OzsyQkFxQnJCLFNBQVMsU0FBQyxjQUFjOztBQTRLM0IsTUFBTSxnQkFBZ0I7SUFDcEIsWUFDVSxLQUE0QjtJQUNwQyxpREFBaUQ7SUFDekMsTUFBVztRQUZYLFVBQUssR0FBTCxLQUFLLENBQXVCO1FBRTVCLFdBQU0sR0FBTixNQUFNLENBQUs7SUFDakIsQ0FBQztJQUVMLEdBQUcsQ0FBQyxLQUFVLEVBQUUsYUFBbUI7UUFDakMsSUFBSSxLQUFLLEtBQUssY0FBYyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDMUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ25CO1FBRUQsMENBQTBDO1FBQzFDLCtCQUErQjtRQUMvQixJQUFJO1FBRUosT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDL0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21waWxlcixcclxuICBDb21wb25lbnQsXHJcbiAgSW5qZWN0b3IsXHJcbiAgTmdNb2R1bGVSZWYsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBUeXBlLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBY3RpdmF0ZWRSb3V0ZSxcclxuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxyXG4gIENoaWxkcmVuT3V0bGV0Q29udGV4dHMsXHJcbiAgLy8gQ2hpbGRyZW5PdXRsZXRDb250ZXh0cyxcclxuICBFdmVudCxcclxuICBOYXZpZ2F0aW9uRW5kLFxyXG4gIFBSSU1BUllfT1VUTEVULFxyXG4gIFJvdXRlcixcclxuICBSb3V0ZXNSZWNvZ25pemVkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFNkTm90aWZ5U2VydmljZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvbm90aWZ5JztcclxuaW1wb3J0IHtcclxuICBTZFRhYkFjdGl2YXRlZCxcclxuICBTZFRhYkRlYWN0aXZhdGVkLFxyXG59IGZyb20gJy4uLy4uL2V2ZW50cy90YWItcm91dGVyLmV2ZW50JztcclxuXHJcbmltcG9ydCB7IFNkVGFiIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RhYi1yb3V0ZXIubW9kZWwnO1xyXG5pbXBvcnQgeyBTZFRhYkFjdGlvbiB9IGZyb20gJy4uLy4uL2FjdGlvbnMvdGFiLXJvdXRlci5hY3Rpb24nO1xyXG5pbXBvcnQgeyBTZFRhYlJvdXRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YWItcm91dGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZFRhYlJvdXRlck5hdkNvbXBvbmVudCB9IGZyb20gJy4uL3RhYi1yb3V0ZXItbmF2L3RhYi1yb3V0ZXItbmF2LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTZFRhYkRlY29yYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YWItZGVjb3JhdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLXRhYi1yb3V0ZXItb3V0bGV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFiLXJvdXRlci1vdXRsZXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYi1yb3V0ZXItb3V0bGV0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgLy8gY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZFRhYlJvdXRlck91dGxldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZCgndGFiUm91dGVyTmF2JykgdGFiUm91dGVyTmF2OiBTZFRhYlJvdXRlck5hdkNvbXBvbmVudDtcclxuICB0YWJzOiBTZFRhYltdID0gW107XHJcblxyXG4gICNyb290Um91dGU6IEFjdGl2YXRlZFJvdXRlO1xyXG4gICNzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBjb21waWxlcjogQ29tcGlsZXIsXHJcbiAgICBwcml2YXRlIHBhcmVudENvbnRleHRzOiBDaGlsZHJlbk91dGxldENvbnRleHRzLFxyXG4gICAgcHJpdmF0ZSB0YWJEZWNvcmF0b3JTZXJ2aWNlOiBTZFRhYkRlY29yYXRvclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRhYlJvdXRlclNlcnZpY2U6IFNkVGFiUm91dGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgc2ROb3RpZnlTZXJ2aWNlOiBTZE5vdGlmeVNlcnZpY2VcclxuICApIHtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QudXJsKTtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQocm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcihldmVudCA9PiAgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSlcclxuICAgICAgLnN1YnNjcmliZShhc3luYyAoZXZlbnQ6IFJvdXRlc1JlY29nbml6ZWQpID0+IHtcclxuICAgICAgICBjb25zdCByb3V0ZSA9IHRoaXMuI2dldEFjdGl2YXRlZFJvdXRlU25hcHNob3QoZXZlbnQuc3RhdGUucm9vdCk7XHJcbiAgICAgICAgdGhpcy4jcm9vdFJvdXRlID0gdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUucm9vdDtcclxuICAgICAgICBhd2FpdCB0aGlzLiNhY3RpdmVSb3V0ZShldmVudC51cmxBZnRlclJlZGlyZWN0cyB8fCBldmVudC51cmwsIHJvdXRlKTtcclxuICAgICAgfSkpO1xyXG5cclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQodGFiUm91dGVyU2VydmljZS5hY3Rpb25zLnN1YnNjcmliZSgoZXZlbnQ6IFNkVGFiQWN0aW9uIHwgbnVsbCkgPT4ge1xyXG4gICAgICBpZiAoZXZlbnQgJiYgZXZlbnQudHlwZSA9PT0gJ2Nsb3NlJykge1xyXG4gICAgICAgIHRoaXMuI2Nsb3NlVGFiKGV2ZW50LnRhYik7XHJcbiAgICAgIH1cclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAjY2xvc2VUYWIgPSAodGFiOiBTZFRhYikgPT4ge1xyXG4gICAgdGhpcy50YWJzID0gdGhpcy50YWJzLmZpbHRlcigoeyBrZXkgfSkgPT4ga2V5ICE9PSB0YWIua2V5KTtcclxuICAgIGlmICh0YWIuaXNBY3RpdmUpIHtcclxuICAgICAgY29uc3QgbGFzdFRhYiA9IHRoaXMudGFic1t0aGlzLnRhYnMubGVuZ3RoIC0gMV07XHJcbiAgICAgIGlmIChsYXN0VGFiKSB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChsYXN0VGFiLnVybCwge1xyXG4gICAgICAgICAgc3RhdGU6IHtcclxuICAgICAgICAgICAgc3dpdGNoVGFiOiB0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvJywge1xyXG4gICAgICAgICAgc3RhdGU6IHtcclxuICAgICAgICAgICAgc3dpdGNoVGFiOiB0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50YWJSb3V0ZXJOYXY/LmNoZWNrVUkoKTtcclxuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICNhY3RpdmVSb3V0ZSA9IGFzeW5jICh1cmw6IHN0cmluZywgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBudWxsKSA9PiB7XHJcbiAgICBpZiAoIXJvdXRlPy5jb21wb25lbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29tcG9uZW50ID0gcm91dGUuY29tcG9uZW50IGFzIFR5cGU8YW55PjtcclxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0ge1xyXG4gICAgICAuLi4ocm91dGUucXVlcnlQYXJhbXMgfHwge30pLFxyXG4gICAgfTtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHtcclxuICAgICAgLi4uKHJvdXRlLnBhcmFtcyB8fCB7fSksXHJcbiAgICB9O1xyXG5cclxuICAgIGxldCBleGlzdGVkSW5kZXggPSAtMTtcclxuICAgIHRoaXMudGFicy5mb3JFYWNoKCh0YWI6IFNkVGFiLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGlmICh0YWIua2V5ID09PSB1cmwpIHtcclxuICAgICAgICB0YWIuaXNBY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIGV4aXN0ZWRJbmRleCA9IGluZGV4O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh0YWIuaXNBY3RpdmUpIHtcclxuICAgICAgICAgIHRoaXMudGFiUm91dGVyU2VydmljZS5wdXNoRXZlbnQodGFiLCBTZFRhYkRlYWN0aXZhdGVkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGFiLmlzQWN0aXZlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGN1cnJlbnROYXZpZ2F0aW9uID0gdGhpcy5yb3V0ZXIuZ2V0Q3VycmVudE5hdmlnYXRpb24oKTtcclxuICAgIGlmIChleGlzdGVkSW5kZXggPj0gMCAmJiBjdXJyZW50TmF2aWdhdGlvbj8uZXh0cmFzPy5zdGF0ZT8uc3dpdGNoVGFiKSB7XHJcbiAgICAgIGNvbnN0IGV4aXN0ZWRUYWIgPSB0aGlzLnRhYnNbZXhpc3RlZEluZGV4XTtcclxuICAgICAgdGhpcy50YWJSb3V0ZXJTZXJ2aWNlLnNldEN1cnJlbnRUYWIoZXhpc3RlZFRhYik7XHJcbiAgICAgIHRoaXMudGFiUm91dGVyU2VydmljZS5wdXNoRXZlbnQoZXhpc3RlZFRhYiwgU2RUYWJBY3RpdmF0ZWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHR5cGVvZiByb3V0ZT8ucGFyZW50Py5yb3V0ZUNvbmZpZz8ubG9hZENoaWxkcmVuID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgY29uc3QgbW9kdWxlID0gYXdhaXQgcm91dGUucGFyZW50LnJvdXRlQ29uZmlnLmxvYWRDaGlsZHJlbigpO1xyXG4gICAgICAgIGNvbnN0IGZhY3RvcnkgPSBhd2FpdCB0aGlzLmNvbXBpbGVyLmNvbXBpbGVNb2R1bGVBc3luYyhtb2R1bGUpO1xyXG4gICAgICAgIGNvbnN0IGluamVjdG9yID0gZmFjdG9yeS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XHJcbiAgICAgICAgLy8gbGV0IHRhYkluZm8gPSB7fTtcclxuICAgICAgICAvLyBpZiAoJ2dldFRhYkluZm8nIGluIGNvbXBvbmVudCkge1xyXG4gICAgICAgIC8vICAgdGFiSW5mbyA9IGNvbXBvbmVudC5nZXRUYWJJbmZvKHtcclxuICAgICAgICAvLyAgICAgcGFyYW1zLFxyXG4gICAgICAgIC8vICAgICBxdWVyeVBhcmFtcyxcclxuICAgICAgICAvLyAgIH0pO1xyXG4gICAgICAgIC8vIH1cclxuXHJcbiAgICAgICAgY29uc3QgYWN0aXZhdGVkUm91dGUgPSB0aGlzLiNnZXRBY3RpdmF0ZWRSb3V0ZShcclxuICAgICAgICAgIHRoaXMuI3Jvb3RSb3V0ZSxcclxuICAgICAgICAgIGNvbXBvbmVudFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGNvbnN0IHRhYiA9IHtcclxuICAgICAgICAgIGtleTogdXJsLFxyXG4gICAgICAgICAgY29tcG9uZW50LFxyXG4gICAgICAgICAgaW5qZWN0b3I6IG5ldyBTZE91dGxldEluamVjdG9yKGFjdGl2YXRlZFJvdXRlLCBpbmplY3RvciksXHJcblxyXG4gICAgICAgICAgaXNBY3RpdmU6IHRydWUsXHJcbiAgICAgICAgICBuYW1lOiB1cmwsXHJcbiAgICAgICAgICB1cmwsXHJcbiAgICAgICAgICBwYXJhbXMsXHJcbiAgICAgICAgICBxdWVyeVBhcmFtcyxcclxuICAgICAgICAgIC8vIC4uLnRhYkluZm8sXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy50YWJSb3V0ZXJTZXJ2aWNlLnNldEN1cnJlbnRUYWIodGFiKTtcclxuICAgICAgICBpZiAoZXhpc3RlZEluZGV4ID49IDAgJiYgIWN1cnJlbnROYXZpZ2F0aW9uPy5leHRyYXM/LnN0YXRlPy5zd2l0Y2hUYWIpIHtcclxuICAgICAgICAgIHRoaXMudGFic1tleGlzdGVkSW5kZXhdID0gdGFiO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnRhYnMucHVzaCh0YWIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy50YWJSb3V0ZXJOYXY/LmNoZWNrVUkoKTtcclxuICAgICAgaWYgKHRoaXMudGFicy5sZW5ndGggPiAxMCkge1xyXG4gICAgICAgIHRoaXMuc2ROb3RpZnlTZXJ2aWNlLm5vdGlmeS53YXJuaW5nKFxyXG4gICAgICAgICAgJ0LhuqFuIMSRw6MgbeG7nyBxdcOhIG5oaeG7gXUgdGFiLiBWdWkgbMOybmcgdOG6r3QgY8OhYyB0YWIga2jDtG5nIGTDuW5nIMSR4buDIGjhu4cgdGjhu5FuZyBob+G6oXQgxJHhu5luZyB04buRdCBoxqFuLidcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnRhYnMubGVuZ3RoID4gMTIpIHtcclxuICAgICAgICB0aGlzLnRhYnMuc3BsaWNlKDAsIHRoaXMudGFicy5sZW5ndGggLSAxMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICAjZ2V0QWN0aXZhdGVkUm91dGVTbmFwc2hvdCA9IChcclxuICAgIGFjdGl2YXRlZFJvdXRlU25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3RcclxuICApOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHwgbnVsbCA9PiB7XHJcbiAgICBpZiAoIWFjdGl2YXRlZFJvdXRlU25hcHNob3QpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGFjdGl2YXRlZFJvdXRlU25hcHNob3QuZmlyc3RDaGlsZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy4jZ2V0QWN0aXZhdGVkUm91dGVTbmFwc2hvdChhY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LmZpcnN0Q2hpbGQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGFjdGl2YXRlZFJvdXRlU25hcHNob3Q7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAjZ2V0QWN0aXZhdGVkUm91dGUgPSAoXHJcbiAgICBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBjb21wb25lbnQ6IGFueVxyXG4gICk6IEFjdGl2YXRlZFJvdXRlIHwgbnVsbCA9PiB7XHJcbiAgICBpZiAoIWFjdGl2YXRlZFJvdXRlKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChhY3RpdmF0ZWRSb3V0ZS5jb21wb25lbnQgJiYgYWN0aXZhdGVkUm91dGUuY29tcG9uZW50ID09PSBjb21wb25lbnQpIHtcclxuICAgICAgcmV0dXJuIGFjdGl2YXRlZFJvdXRlO1xyXG4gICAgfSBlbHNlIGlmIChhY3RpdmF0ZWRSb3V0ZS5maXJzdENoaWxkKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLiNnZXRBY3RpdmF0ZWRSb3V0ZShhY3RpdmF0ZWRSb3V0ZS5maXJzdENoaWxkLCBjb21wb25lbnQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5jbGFzcyBTZE91dGxldEluamVjdG9yIGltcGxlbWVudHMgSW5qZWN0b3Ige1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUgfCBudWxsLFxyXG4gICAgLy8gcHJpdmF0ZSBjaGlsZENvbnRleHRzOiBDaGlsZHJlbk91dGxldENvbnRleHRzLFxyXG4gICAgcHJpdmF0ZSBwYXJlbnQ6IGFueVxyXG4gICkgeyB9XHJcblxyXG4gIGdldCh0b2tlbjogYW55LCBub3RGb3VuZFZhbHVlPzogYW55KTogYW55IHtcclxuICAgIGlmICh0b2tlbiA9PT0gQWN0aXZhdGVkUm91dGUgJiYgdGhpcy5yb3V0ZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5yb3V0ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBpZiAodG9rZW4gPT09IENoaWxkcmVuT3V0bGV0Q29udGV4dHMpIHtcclxuICAgIC8vICAgcmV0dXJuIHRoaXMuY2hpbGRDb250ZXh0cztcclxuICAgIC8vIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuZ2V0KHRva2VuLCBub3RGb3VuZFZhbHVlKTtcclxuICB9XHJcbn1cclxuIl19
@@ -60,7 +60,7 @@ SdButton.decorators = [
60
60
  { type: Component, args: [{
61
61
  selector: 'sd-button',
62
62
  template: "<button *ngIf=\"type === 'fill'\" [ngStyle]=\"{'width':width}\" class=\"c-button c-fill\"\r\n [ngClass]=\"{'c-sm': size === 'sm', 'c-lg': size === 'lg'}\" type=\"button\" [color]=\"color\" [disabled]=\"isDisabled\"\r\n matTooltipPosition=\"above\" [matTooltip]=\"tooltip\" mat-flat-button #button>\r\n <ng-container *ngTemplateOutlet=\"buttonContent\"></ng-container>\r\n</button>\r\n<button *ngIf=\"type === 'light'\" [ngStyle]=\"{'width':width}\" class=\"c-button c-light\"\r\n [ngClass]=\"{'c-sm': size === 'sm', 'c-lg': size === 'lg'}\" type=\"button\" [color]=\"color\" [disabled]=\"isDisabled\"\r\n matTooltipPosition=\"above\" [matTooltip]=\"tooltip\" mat-flat-button #button>\r\n <ng-container *ngTemplateOutlet=\"buttonContent\"></ng-container>\r\n</button>\r\n<button *ngIf=\"type === 'outline'\" [ngStyle]=\"{'width':width}\" class=\"c-button c-outline\"\r\n [ngClass]=\"{'c-sm': size === 'sm', 'c-lg': size === 'lg'}\" type=\"button\" [color]=\"color\" [disabled]=\"isDisabled\"\r\n matTooltipPosition=\"above\" [matTooltip]=\"tooltip\" mat-stroked-button #button>\r\n <ng-container *ngTemplateOutlet=\"buttonContent\"></ng-container>\r\n</button>\r\n<button *ngIf=\"type === 'link'\" [ngStyle]=\"{'width':width}\" class=\"c-button c-link\"\r\n [ngClass]=\"{'c-sm': size === 'sm', 'c-lg': size === 'lg'}\" type=\"button\" [color]=\"color\" [disabled]=\"isDisabled\"\r\n matTooltipPosition=\"above\" [matTooltip]=\"tooltip\" mat-button #button>\r\n <ng-container *ngTemplateOutlet=\"buttonContent\"></ng-container>\r\n</button>\r\n<ng-template #buttonContent>\r\n <ng-container *ngIf=\"title\">\r\n <ng-container *ngIf=\"!iconSuffix\">\r\n <mat-spinner *ngIf=\"loading\" strokeWidth=\"2\" mode=\"indeterminate\" diameter=\"18\" value=\"100\"\r\n class=\"d-inline-block\"></mat-spinner>\r\n <mat-icon *ngIf=\"!loading && icon\" [fontSet]=\"fontSet\">{{icon}}</mat-icon>\r\n </ng-container>\r\n <span class=\"d-inline\" [ngClass]=\"{'ml-8': icon && !iconSuffix, 'mr-8': icon && iconSuffix}\">{{title}}</span>\r\n <mat-icon *ngIf=\"iconSuffix && icon\" [fontSet]=\"fontSet\">{{icon}}</mat-icon>\r\n </ng-container>\r\n <ng-container *ngIf=\"!title\">\r\n <mat-icon [fontSet]=\"fontSet\">{{icon}}</mat-icon>\r\n </ng-container>\r\n</ng-template>",
63
- styles: [":host ::ng-deep button.c-button{font-size:16px;height:40px;line-height:20px;padding:2px 16px!important}:host ::ng-deep button.c-button .mat-button-wrapper{align-items:center;display:flex;justify-content:center}:host ::ng-deep button.c-button.mat-button-disabled{background-color:#e9e9e9!important;color:#a6a6a6!important}:host ::ng-deep button.c-button.c-sm{font-size:14px!important;font-weight:400;height:32px;line-height:20px!important;padding:2px 16px!important}:host ::ng-deep button.c-button.c-sm mat-icon{font-size:16px!important;height:16px!important;width:16px!important}:host ::ng-deep button.c-button.c-lg{font-size:16px!important;height:48px;line-height:20px!important;padding:2px 16px!important}:host ::ng-deep button.c-button:focus{outline:none}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-info,:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-primary{background-color:#2962ff;color:#fff}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-success{background-color:#4caf50;color:#fff}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-warning{background-color:#ff9600;color:#fff}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-danger{background-color:#f82c13;color:#fff}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-secondary{background-color:#212121;color:#fff}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-info,:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-primary{background-color:#e7e9ff;color:#2962ff}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-success{background-color:#dbefdc;color:#4caf50}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-warning{background-color:#ffeacc;color:#ff9600}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-danger{background-color:#fed5d0;color:#f82c13}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-secondary{background-color:#e9e9e9;color:#212121}:host ::ng-deep button.c-button.c-outline.mat-stroked-button{border-color:#d3d3d3}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-info,:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-primary{color:#2962ff}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-success{color:#4caf50}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-warning{color:#ff9600}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-danger{color:#f82c13}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-secondary{color:#212121}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-button-disabled{background:transparent!important}:host ::ng-deep button.c-button.c-link.mat-button.mat-info,:host ::ng-deep button.c-button.c-link.mat-button.mat-primary{color:#2962ff}:host ::ng-deep button.c-button.c-link.mat-button.mat-success{color:#4caf50}:host ::ng-deep button.c-button.c-link.mat-button.mat-warning{color:#ff9600}:host ::ng-deep button.c-button.c-link.mat-button.mat-danger{color:#f82c13}:host ::ng-deep button.c-button.c-link.mat-button.mat-secondary{color:#212121}"]
63
+ styles: [":host ::ng-deep button.c-button{font-size:16px;height:40px;line-height:20px;padding:2px 16px!important}:host ::ng-deep button.c-button .mat-button-wrapper{align-items:center;display:flex;justify-content:center}:host ::ng-deep button.c-button.mat-button-disabled{background-color:#e9e9e9!important;color:#a6a6a6!important}:host ::ng-deep button.c-button.c-square{min-width:auto!important;padding:0!important;width:40px!important}:host ::ng-deep button.c-button.c-sm{font-size:14px!important;font-weight:400;height:32px;line-height:20px!important;padding:2px 16px!important}:host ::ng-deep button.c-button.c-sm mat-icon{font-size:16px!important;height:16px!important;width:16px!important}:host ::ng-deep button.c-button.c-sm.c-square{width:32px!important}:host ::ng-deep button.c-button.c-lg{font-size:16px!important;height:48px;line-height:20px!important;padding:2px 16px!important}:host ::ng-deep button.c-button.c-lg.c-square{width:48px!important}:host ::ng-deep button.c-button:focus{outline:none}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-info,:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-primary{background-color:#2962ff;color:#fff}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-success{background-color:#4caf50;color:#fff}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-warning{background-color:#ff9600;color:#fff}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-danger{background-color:#f82c13;color:#fff}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-secondary{background-color:#212121;color:#fff}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-info,:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-primary{background-color:#e7e9ff;color:#2962ff}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-success{background-color:#dbefdc;color:#4caf50}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-warning{background-color:#ffeacc;color:#ff9600}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-danger{background-color:#fed5d0;color:#f82c13}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-secondary{background-color:#e9e9e9;color:#212121}:host ::ng-deep button.c-button.c-outline.mat-stroked-button{border-color:#d3d3d3}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-info,:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-primary{color:#2962ff}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-success{color:#4caf50}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-warning{color:#ff9600}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-danger{color:#f82c13}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-secondary{color:#212121}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-button-disabled{background:transparent!important}:host ::ng-deep button.c-button.c-link.mat-button.mat-info,:host ::ng-deep button.c-button.c-link.mat-button.mat-primary{color:#2962ff}:host ::ng-deep button.c-button.c-link.mat-button.mat-success{color:#4caf50}:host ::ng-deep button.c-button.c-link.mat-button.mat-warning{color:#ff9600}:host ::ng-deep button.c-button.c-link.mat-button.mat-danger{color:#f82c13}:host ::ng-deep button.c-button.c-link.mat-button.mat-secondary{color:#212121}"]
64
64
  },] }
65
65
  ];
66
66
  SdButton.ctorParameters = () => [
@@ -1714,7 +1714,7 @@ _paginator = new WeakMap(), _sort = new WeakMap(), _subscription$1 = new WeakMap
1714
1714
  SdGridMaterial.decorators = [
1715
1715
  { type: Component, args: [{
1716
1716
  selector: 'sd-grid-material',
1717
- template: "<ng-container *ngIf=\"gridConfigurationObserver | async as gridConfiguration\">\r\n <ng-container *ngIf=\"gridConfiguration | sdGridConfigurationResult:gridOption:sdSubInformation as configuration\">\r\n <ng-container *ngIf=\"!gridOption.filter?.disabled\">\r\n <sd-grid-filter [filter]=\"gridOption?.filter\" [columns]=\"configuration.firstColumns\" [filterDefs]=\"filterDefs\">\r\n </sd-grid-filter>\r\n </ng-container>\r\n <div class=\"c-container {{gridOption?.style?.grid}}\" [ngClass]=\"{'mat-elevation-z2': gridOption?.shadow}\">\r\n <div class=\"c-loading\" *ngIf=\"isLoading\">\r\n <mat-spinner *ngIf=\"isLoading\"></mat-spinner>\r\n </div>\r\n <ng-container>\r\n <div class=\"c-table\" [ngStyle]=\"{'max-height': gridOption?.maxHeight, 'min-height': 'gridOption?.minHeight'}\">\r\n <table *ngIf=\"items?.length;else elseEmpty\" mat-table [dataSource]=\"items\" matSort\r\n [matSortDisabled]=\"!gridOption.sortable\" cdkDropList cdkDropListOrientation=\"horizontal\"\r\n [cdkDropListDisabled]=\"!gridOption.dropDragColumnEnable\"\r\n (cdkDropListDropped)=\"drop($event, configuration.displayedColumns)\" multiTemplateDataRows>\r\n <ng-container matColumnDef=\"sdSubInformation\" sticky>\r\n <td class=\"p-0\" mat-cell *matCellDef=\"let item\" [attr.colspan]=\"configuration.displayedColumns.length\">\r\n <div *ngIf=\"sdSubInformation?.templateRef\" [@detailExpand]=\"item.isExpanded ? 'expanded' : 'collapsed'\">\r\n <ng-container *ngIf=\"item.isExpanded\">\r\n <ng-container *ngTemplateOutlet=\"sdSubInformation.templateRef;context:{item: item}\">\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdSubInformationAction\" stickyEnd>\r\n <th class=\"p-0\" mat-header-cell *matHeaderCellDef style=\"width: 1px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button *ngIf=\"!element.isExpanding\" mat-icon-button aria-label=\"Expand & Collapse\"\r\n (click)=\"onExpand(element)\">\r\n <mat-icon *ngIf=\"!element.isExpanded\">expand_more</mat-icon>\r\n <mat-icon *ngIf=\"element.isExpanded\">expand_less</mat-icon>\r\n </button>\r\n <div *ngIf=\"element.isExpanding\" class=\"lds-ring\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"selection\" sticky>\r\n <th class=\"text-center px-15\" mat-header-cell *matHeaderCellDef style=\"min-width: 50px;max-width: 50px;\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\">\r\n <mat-checkbox *ngIf=\"!gridOption.selection?.single\" class=\"c-selection\" color=\"primary\"\r\n [(ngModel)]=\"isSelectAll\" (change)=\"onSelectAll()\" [disabled]=\"items | selectionDisableSelectAll:gridOption?.selection\">\r\n </mat-checkbox>\r\n </th>\r\n <td class=\"text-center px-15\" mat-cell *matCellDef=\"let item\" style=\"min-width: 50px;max-width: 50px;\">\r\n <mat-checkbox class=\"c-selection\" color=\"primary\" [(ngModel)]=\"item.isSelected\"\r\n (change)=\"onSelect(item)\" [disabled]=\"selectedItems | selectionDisable:item:gridOption?.selection\">\r\n </mat-checkbox>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"command\">\r\n <th class=\"px-10\" mat-header-cell *matHeaderCellDef style=\"width: 50px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"></th>\r\n <td class=\"px-10\" mat-cell *matCellDef=\"let item\">\r\n <sd-desktop-command [commands]=\"gridOption.commands\" [item]=\"item\"></sd-desktop-command>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef>\r\n </td>\r\n </ng-container>\r\n <ng-container *ngFor=\"let column of configuration.firstColumns; let i = index\" [matColumnDef]=\"column.field\"\r\n [sticky]=\"configuration.fixedColumn[column.field]\">\r\n <th mat-header-cell *matHeaderCellDef cdkDrag mat-sort-header class=\"px-10 c-th\"\r\n [ngStyle]=\"{'min-width': column.width}\" [disabled]=\"!column.sortable || column.type === 'children-col'\"\r\n [attr.rowspan]=\"configuration.multipleHeader && column.type !== 'children-col' ? 2 : 1\"\r\n [attr.colspan]=\"column.type === 'children-col' ? column.children?.length : 1\">\r\n <div>\r\n <div [innerHTML]=\"column.titleHtml || column.title\"></div>\r\n <div *ngIf=\"gridOption.filter?.inlineColumn\">\r\n <ng-container *ngTemplateOutlet=\"inlineColumn; context: {column: column}\"></ng-container>\r\n </div>\r\n </div>\r\n </th>\r\n <td class=\"c-td px-10\" mat-cell *matCellDef=\"let item\">\r\n <ng-container *ngIf=\"cellDef[column.field]\">\r\n <ng-container\r\n *ngTemplateOutlet=\"cellDef[column.field].templateRef;context:{item: item, column:column, idx: i}\">\r\n </ng-container>\r\n </ng-container>\r\n <sd-desktop-cell-view *ngIf=\"!cellDef[column.field]\" [key]=\"key\" [column]=\"column\" [item]=\"item\">\r\n </sd-desktop-cell-view>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef>\r\n <ng-container *ngIf=\"footerDef[column.field]\">\r\n <ng-container\r\n *ngTemplateOutlet=\"footerDef[column.field].templateRef;context:{items: items, column:column}\">\r\n </ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n <ng-container *ngFor=\"let column of configuration.secondColumns; let i = index\"\r\n [matColumnDef]=\"column.field\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header class=\"c-th px-10\"\r\n [ngStyle]=\"{'min-width': column.width}\">\r\n <div>\r\n <div [innerHTML]=\"column.titleHtml || column.title\"></div>\r\n <div *ngIf=\"gridOption.filter?.inlineColumn\">\r\n <ng-container *ngTemplateOutlet=\"inlineColumn; context: {column: column}\"></ng-container>\r\n </div>\r\n </div>\r\n </th>\r\n <td class=\"c-td px-10\" mat-cell *matCellDef=\"let item\">\r\n <ng-container *ngIf=\"cellDef[column.field]\">\r\n <ng-container\r\n *ngTemplateOutlet=\"cellDef[column.field].templateRef;context:{item: item, column:column, idx: i}\">\r\n </ng-container>\r\n </ng-container>\r\n <sd-desktop-cell-view *ngIf=\"!cellDef[column.field]\" [key]=\"key\" [column]=\"column\" [item]=\"item\">\r\n </sd-desktop-cell-view>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef>\r\n <ng-container *ngIf=\"footerDef[column.field]\">\r\n <ng-container\r\n *ngTemplateOutlet=\"footerDef[column.field].templateRef;context:{items: items, column:column}\">\r\n </ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n <tr class=\"c-first-header\" mat-header-row *matHeaderRowDef=\"configuration.firstHeaders; sticky: true\"></tr>\r\n <ng-container *ngIf=\"configuration.secondHeaders?.length\">\r\n <tr class=\"c-second-header\" mat-header-row *matHeaderRowDef=\"configuration.secondHeaders; sticky: true\">\r\n </tr>\r\n </ng-container>\r\n <tr mat-row *matRowDef=\"let row; columns: configuration.displayedColumns;\" matRipple class=\"c-row\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: ['sdSubInformation']\" class=\"c-detail-row\"></tr>\r\n <ng-container *ngIf=\"hasFooter && configuration.displayedFooters?.length\">\r\n <tr mat-footer-row *matFooterRowDef=\"configuration.displayedFooters; sticky: true\"></tr>\r\n </ng-container>\r\n </table>\r\n <ng-template #elseEmpty>\r\n <table mat-table [dataSource]=\"[{}]\">\r\n <ng-container matColumnDef=\"selection\" sticky>\r\n <th class=\"px-15\" mat-header-cell *matHeaderCellDef style=\"min-width: 50px;max-width: 50px;\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"></th>\r\n </ng-container>\r\n <ng-container matColumnDef=\"command\">\r\n <th class=\"px-10\" mat-header-cell *matHeaderCellDef style=\"min-width: 50px;max-width: 50px;\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"></th>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdSubInformationAction\">\r\n <th class=\"p-0\" mat-header-cell *matHeaderCellDef style=\"width: 1px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"></th>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdEmpty\">\r\n <td class=\"c-empty\" mat-cell *matCellDef=\"let item\"\r\n [attr.colspan]=\"configuration.displayedColumns.length\">\r\n <ng-container *ngIf=\"sdEmptyData?.templateRef; else sdEmptyDataNoRef\">\r\n <ng-container *ngTemplateOutlet=\"sdEmptyData.templateRef;context:{item: item}\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #sdEmptyDataNoRef>\r\n <mat-icon fontSet=\"material-icons-outlined\">leaderboard</mat-icon>\r\n </ng-template>\r\n </td>\r\n </ng-container>\r\n <ng-container *ngFor=\"let column of configuration.columns\" [matColumnDef]=\"column.field\"\r\n [sticky]=\"configuration.fixedColumn[column.field]\">\r\n <th mat-header-cell *matHeaderCellDef class=\"c-th px-10\" [ngStyle]=\"{'min-width': column.width}\">\r\n <div [innerHTML]=\"column.titleHtml || column.title\"></div>\r\n </th>\r\n </ng-container>\r\n <ng-container *ngFor=\"let column of configuration.firstColumns\" [matColumnDef]=\"column.field\"\r\n [sticky]=\"configuration.fixedColumn[column.field]\">\r\n <th mat-header-cell *matHeaderCellDef class=\"c-th px-10\" [ngStyle]=\"{'min-width': column.width}\"\r\n [attr.rowspan]=\"configuration.multipleHeader && column.type !== 'children-col' ? 2 : 1\"\r\n [attr.colspan]=\"column.type === 'children-col' ? column.children?.length : 1\">\r\n <div>\r\n <div [innerHTML]=\"column.titleHtml || column.title\"></div>\r\n <div *ngIf=\"gridOption.filter?.inlineColumn\">\r\n <ng-container *ngTemplateOutlet=\"inlineColumn; context: {column: column}\"></ng-container>\r\n </div>\r\n </div>\r\n </th>\r\n </ng-container>\r\n <ng-container *ngFor=\"let column of configuration.secondColumns\" [matColumnDef]=\"column.field\">\r\n <th mat-header-cell *matHeaderCellDef class=\"c-th px-10\" [ngStyle]=\"{'min-width': column.width}\">\r\n <div>\r\n <div [innerHTML]=\"column.titleHtml || column.title\"></div>\r\n <div *ngIf=\"gridOption.filter?.inlineColumn\">\r\n <ng-container *ngTemplateOutlet=\"inlineColumn; context: {column: column}\"></ng-container>\r\n </div>\r\n </div>\r\n </th>\r\n </ng-container>\r\n <tr class=\"c-first-header\" mat-header-row *matHeaderRowDef=\"configuration.firstHeaders; sticky: true\">\r\n </tr>\r\n <tr class=\"c-second-header\" mat-header-row *matHeaderRowDef=\"configuration.secondHeaders; sticky: true\">\r\n </tr>\r\n <tr mat-row *matRowDef=\"let row; columns: ['sdEmpty']\"></tr>\r\n </table>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n <div class=\"c-paginator\">\r\n <div class=\"c-action\">\r\n <sd-button *ngIf=\"!gridOption.filter?.disabled && !gridOption.filter?.inlineColumn\" class=\"mr-10\"\r\n [title]=\"'Filter' | sdTranslate\" icon=\"filter_alt\" size=\"sm\" (action)=\"gridFilter.open()\" type=\"link\">\r\n </sd-button>\r\n <sd-button *ngIf=\"gridOption.reload?.visible\" class=\"mr-10\" [title]=\"'Reload' | sdTranslate\" icon=\"refresh\"\r\n size=\"sm\" (action)=\"reload()\" [disabled]=\"!items?.length\" type=\"link\">\r\n </sd-button>\r\n <ng-container *ngIf=\"gridOption.export?.visible && items?.length\">\r\n <ng-container *ngIf=\"isExporting else unExporting\">\r\n <sd-button class=\"mr-10\" [loading]=\"isExporting\" [title]=\"exportTitle | sdTranslate\" icon=\"get_app\"\r\n size=\"sm\" type=\"link\">\r\n </sd-button>\r\n </ng-container>\r\n <ng-template #unExporting>\r\n <sd-button class=\"mr-10\" [title]=\"exportTitle | sdTranslate\" icon=\"get_app\" size=\"sm\"\r\n [matMenuTriggerFor]=\"menu\" type=\"link\">\r\n </sd-button>\r\n </ng-template>\r\n\r\n <mat-menu #menu=\"matMenu\">\r\n <button *ngIf=\"gridOption.export?.visibleExcel !== false\" mat-menu-item\r\n (click)=\"sdPopupExport.exportDefault()\" type=\"button\">\r\n <mat-icon fontSet=\"material-icons-outlined\">file_download</mat-icon>\r\n <span> {{'Export excel' | sdTranslate}}</span>\r\n </button>\r\n <button *ngIf=\"gridOption.export?.visibleCSV !== false\" mat-menu-item\r\n (click)=\"sdPopupExport.exportDefault(true)\" type=\"button\">\r\n <mat-icon fontSet=\"material-icons-outlined\">file_download</mat-icon>\r\n <span> {{'Export CSV' | sdTranslate}}</span>\r\n </button>\r\n <button *ngIf=\"gridOption.export?.key\" mat-menu-item (click)=\"sdPopupExport.open()\" type=\"button\">\r\n <mat-icon fontSet=\"material-icons-outlined\">settings</mat-icon>\r\n <span> {{'Configure' | sdTranslate}}</span>\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n <sd-button *ngIf=\"gridOption.config?.visible\" class=\"mr-10\" [title]=\"'Configure' | sdTranslate\"\r\n icon=\"settings\" size=\"sm\" (action)=\"popupGridConfiguration.open()\" type=\"link\">\r\n </sd-button>\r\n </div>\r\n <mat-paginator [class.d-none]=\"gridOption.paginate?.hidden\" [length]=\"total\"\r\n [pageSize]=\"gridOption.paginate?.pageSize\" [pageSizeOptions]=\"gridOption.paginate?.pages\"\r\n [showFirstLastButtons]=\"gridOption.paginate?.showFirstLastButtons\"></mat-paginator>\r\n </div>\r\n </div>\r\n <sd-popup-export *ngIf=\"gridOption.export?.visible\" [gridOption]=\"gridOption\" (export)=\"onExport($event)\"\r\n #sdPopupExport>\r\n </sd-popup-export>\r\n <sd-popup-grid-configuration [gridOption]=\"gridOption\" [key]=\"key\" #popupGridConfiguration>\r\n </sd-popup-grid-configuration>\r\n </ng-container>\r\n</ng-container>\r\n<ng-template #inlineColumn let-column=\"column\">\r\n <ng-container *ngIf=\"column.type === 'string' \r\n || column.type === 'number' \r\n || column.type === 'bool' \r\n || column.type === 'values' \r\n || column.type === 'date' \r\n || column.type === 'datetime' \r\n || column.type === 'time';else noFilter\">\r\n <sd-input *ngIf=\"column.type === 'string'\" type=\"text\" [(model)]=\"columnFilter[column.field]\"\r\n (keyupEnter)=\"onFilterChange()\" [disabled]=\"column.filter?.disabled\">\r\n </sd-input>\r\n <sd-input *ngIf=\"column.type === 'number'\" type=\"number\" [(model)]=\"columnFilter[column.field]\"\r\n (keyupEnter)=\"onFilterChange()\" [disabled]=\"column.filter?.disabled\">\r\n </sd-input>\r\n <sd-select *ngIf=\"column.type === 'bool'\" [items]=\"[{value:'1',display:column.option?.displayOnTrue || 'True' },\r\n {value:'0',display:column.option?.displayOnFalse || 'False' }]\" valueField=\"value\" displayField=\"display\"\r\n [(model)]=\"columnFilter[column.field]\" (sdChange)=\"onFilterChange()\" [disabled]=\"column.filter?.disabled\">\r\n </sd-select>\r\n <sd-select *ngIf=\"column.type === 'values' && column?.option?.selection !== 'AUTOCOMPLETE'\"\r\n [items]=\"column.option.items\" [valueField]=\"column.option.valueField\" [displayField]=\"column.option.displayField\"\r\n [(model)]=\"columnFilter[column.field]\" (sdChange)=\"onFilterChange()\" [disabled]=\"column.filter?.disabled\"\r\n [multiple]=\"column?.option?.selection === 'MULTIPLE' || column?.option?.selection === 'MULTIPLEAUTOCOMPLETE'\"\r\n [filtered]=\"column?.option?.selection === 'MULTIPLEAUTOCOMPLETE'\">\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"column.type === 'values' && column?.option?.selection === 'AUTOCOMPLETE'\"\r\n [items]=\"column.option.items\" [valueField]=\"column.option.valueField\" [displayField]=\"column.option.displayField\"\r\n [(model)]=\"columnFilter[column.field]\" (sdChange)=\"onFilterChange()\" [disabled]=\"column.filter?.disabled\">\r\n </sd-autocomplete>\r\n <sd-date-time *ngIf=\"column.type === 'date' || column.type === 'datetime' || column.type === 'time'\"\r\n [(model)]=\"columnFilter[column.field]\" [type]=\"column.type\" (sdChange)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\">\r\n </sd-date-time>\r\n </ng-container>\r\n <ng-template #noFilter>\r\n <sd-input type=\"text\" disabled>\r\n </sd-input>\r\n </ng-template>\r\n</ng-template>\r\n\r\n<sd-quick-action *ngIf=\"selectedItems | selectionActionFilter:gridOption?.selection?.actions as actions\" [isOpened]=\"actions?.length\">\r\n <div sdMessage>\r\n <strong class=\"text-info\">{{ selectedItems.length }}</strong>\r\n {{gridOption?.selection?.message || ('selected rows' | sdTranslate)}}\r\n </div>\r\n <div class=\"d-flex align-items-center\" sdAction>\r\n <ng-container *ngFor=\"let action of actions\">\r\n <sd-button *ngIf=\"action.click\" class=\"ml-5\" [tooltip]=\"action.tooltip\" [icon]=\"action.icon\"\r\n [color]=\"action.color || 'secondary'\" [type]=\"action.type || 'light'\" [fontSet]=\"action.fontSet\"\r\n [title]=\"action.title\" size=\"sm\" (action)=\"action.click(selectedItems)\"></sd-button>\r\n <ng-container *ngIf=\"action.children?.length\">\r\n <sd-button class=\"ml-5\" [tooltip]=\"action.tooltip\" [icon]=\"action.icon || 'more_vert'\" [color]=\"action.color || 'secondary'\"\r\n [type]=\"action.type || 'light'\" [fontSet]=\"action.fontSet\" [title]=\"action.title\" size=\"sm\"\r\n [matMenuTriggerFor]=\"menu\">\r\n </sd-button>\r\n <mat-menu #menu=\"matMenu\">\r\n <span>\r\n <button *ngFor=\"let childAction of action.children\" mat-menu-item (click)=\"childAction.click(selectedItems)\"\r\n [disabled]=\"childAction.disabled\">\r\n <mat-icon [fontSet]=\"childAction.fontSet\" class=\"c-icon\">{{childAction.icon}}\r\n </mat-icon>\r\n <span> {{childAction.title}}</span>\r\n </button>\r\n </span>\r\n </mat-menu>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</sd-quick-action>",
1717
+ template: "<ng-container *ngIf=\"gridConfigurationObserver | async as gridConfiguration\">\r\n <ng-container\r\n *ngIf=\"\r\n gridConfiguration\r\n | sdGridConfigurationResult\r\n : gridOption\r\n : sdSubInformation as configuration\r\n \"\r\n >\r\n <ng-container *ngIf=\"!gridOption.filter?.disabled\">\r\n <sd-grid-filter\r\n [filter]=\"gridOption?.filter\"\r\n [columns]=\"configuration.firstColumns\"\r\n [filterDefs]=\"filterDefs\"\r\n >\r\n </sd-grid-filter>\r\n </ng-container>\r\n <div\r\n class=\"c-container {{ gridOption?.style?.grid }}\"\r\n [ngClass]=\"{ 'mat-elevation-z2': gridOption?.shadow }\"\r\n >\r\n <div class=\"c-loading\" *ngIf=\"isLoading\">\r\n <mat-spinner *ngIf=\"isLoading\"></mat-spinner>\r\n </div>\r\n <ng-container>\r\n <div\r\n class=\"c-table\"\r\n [ngStyle]=\"{\r\n 'max-height': gridOption?.maxHeight,\r\n 'min-height': 'gridOption?.minHeight'\r\n }\"\r\n >\r\n <table\r\n *ngIf=\"items?.length; else elseEmpty\"\r\n mat-table\r\n [dataSource]=\"items\"\r\n matSort\r\n [matSortDisabled]=\"!gridOption.sortable\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n [cdkDropListDisabled]=\"!gridOption.dropDragColumnEnable\"\r\n (cdkDropListDropped)=\"drop($event, configuration.displayedColumns)\"\r\n multiTemplateDataRows\r\n >\r\n <ng-container matColumnDef=\"sdSubInformation\" sticky>\r\n <td\r\n class=\"p-0\"\r\n mat-cell\r\n *matCellDef=\"let item\"\r\n [attr.colspan]=\"configuration.displayedColumns.length\"\r\n >\r\n <div\r\n *ngIf=\"sdSubInformation?.templateRef\"\r\n [@detailExpand]=\"item.isExpanded ? 'expanded' : 'collapsed'\"\r\n >\r\n <ng-container *ngIf=\"item.isExpanded\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n sdSubInformation.templateRef;\r\n context: { item: item }\r\n \"\r\n >\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdSubInformationAction\" stickyEnd>\r\n <th\r\n class=\"p-0\"\r\n mat-header-cell\r\n *matHeaderCellDef\r\n style=\"width: 1px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"\r\n ></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button\r\n *ngIf=\"!element.isExpanding\"\r\n mat-icon-button\r\n aria-label=\"Expand & Collapse\"\r\n (click)=\"onExpand(element)\"\r\n >\r\n <mat-icon *ngIf=\"!element.isExpanded\">expand_more</mat-icon>\r\n <mat-icon *ngIf=\"element.isExpanded\">expand_less</mat-icon>\r\n </button>\r\n <div *ngIf=\"element.isExpanding\" class=\"lds-ring\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"selection\" sticky>\r\n <th\r\n class=\"text-center px-15\"\r\n mat-header-cell\r\n *matHeaderCellDef\r\n style=\"min-width: 50px; max-width: 50px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"\r\n >\r\n <mat-checkbox\r\n *ngIf=\"!gridOption.selection?.single\"\r\n class=\"c-selection\"\r\n color=\"primary\"\r\n [(ngModel)]=\"isSelectAll\"\r\n (change)=\"onSelectAll()\"\r\n [disabled]=\"\r\n items | selectionDisableSelectAll: gridOption?.selection\r\n \"\r\n >\r\n </mat-checkbox>\r\n </th>\r\n <td\r\n class=\"text-center px-15\"\r\n mat-cell\r\n *matCellDef=\"let item\"\r\n style=\"min-width: 50px; max-width: 50px\"\r\n >\r\n <mat-checkbox\r\n class=\"c-selection\"\r\n color=\"primary\"\r\n [(ngModel)]=\"item.isSelected\"\r\n (change)=\"onSelect(item)\"\r\n [disabled]=\"\r\n selectedItems | selectionDisable: item:gridOption?.selection\r\n \"\r\n >\r\n </mat-checkbox>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"command\">\r\n <th\r\n class=\"px-10\"\r\n mat-header-cell\r\n *matHeaderCellDef\r\n style=\"width: 50px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"\r\n ></th>\r\n <td class=\"px-10\" mat-cell *matCellDef=\"let item\">\r\n <sd-desktop-command\r\n [commands]=\"gridOption.commands\"\r\n [item]=\"item\"\r\n ></sd-desktop-command>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container\r\n *ngFor=\"let column of configuration.firstColumns; let i = index\"\r\n [matColumnDef]=\"column.field\"\r\n [sticky]=\"configuration.fixedColumn[column.field]\"\r\n >\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n cdkDrag\r\n class=\"px-10 c-th\"\r\n [ngStyle]=\"{ 'min-width': column.width }\"\r\n [attr.rowspan]=\"\r\n configuration.multipleHeader && column.type !== 'children-col'\r\n ? 2\r\n : 1\r\n \"\r\n [attr.colspan]=\"\r\n column.type === 'children-col' ? column.children?.length : 1\r\n \"\r\n >\r\n <div>\r\n <div\r\n aria-hidden=\"false\"\r\n role=\"presentation\"\r\n mat-sort-header\r\n [disabled]=\"\r\n !column.sortable || column.type === 'children-col'\r\n \"\r\n [innerHTML]=\"column.titleHtml || column.title\"\r\n ></div>\r\n <div\r\n class=\"c-inline-column\"\r\n *ngIf=\"gridOption.filter?.inlineColumn\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n inlineColumn;\r\n context: { column: column }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n </th>\r\n <td class=\"c-td px-10\" mat-cell *matCellDef=\"let item\">\r\n <ng-container *ngIf=\"cellDef[column.field]\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n cellDef[column.field].templateRef;\r\n context: { item: item, column: column, idx: i }\r\n \"\r\n >\r\n </ng-container>\r\n </ng-container>\r\n <sd-desktop-cell-view\r\n *ngIf=\"!cellDef[column.field]\"\r\n [key]=\"key\"\r\n [column]=\"column\"\r\n [item]=\"item\"\r\n >\r\n </sd-desktop-cell-view>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef>\r\n <ng-container *ngIf=\"footerDef[column.field]\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n footerDef[column.field].templateRef;\r\n context: { items: items, column: column }\r\n \"\r\n >\r\n </ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n <ng-container\r\n *ngFor=\"let column of configuration.secondColumns; let i = index\"\r\n [matColumnDef]=\"column.field\"\r\n >\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n mat-sort-header\r\n class=\"c-th px-10\"\r\n [ngStyle]=\"{ 'min-width': column.width }\"\r\n >\r\n <div>\r\n <div [innerHTML]=\"column.titleHtml || column.title\"></div>\r\n <div *ngIf=\"gridOption.filter?.inlineColumn\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n inlineColumn;\r\n context: { column: column }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n </th>\r\n <td class=\"c-td px-10\" mat-cell *matCellDef=\"let item\">\r\n <ng-container *ngIf=\"cellDef[column.field]\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n cellDef[column.field].templateRef;\r\n context: { item: item, column: column, idx: i }\r\n \"\r\n >\r\n </ng-container>\r\n </ng-container>\r\n <sd-desktop-cell-view\r\n *ngIf=\"!cellDef[column.field]\"\r\n [key]=\"key\"\r\n [column]=\"column\"\r\n [item]=\"item\"\r\n >\r\n </sd-desktop-cell-view>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef>\r\n <ng-container *ngIf=\"footerDef[column.field]\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n footerDef[column.field].templateRef;\r\n context: { items: items, column: column }\r\n \"\r\n >\r\n </ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n <tr\r\n class=\"c-first-header\"\r\n mat-header-row\r\n *matHeaderRowDef=\"configuration.firstHeaders; sticky: true\"\r\n ></tr>\r\n <ng-container *ngIf=\"configuration.secondHeaders?.length\">\r\n <tr\r\n class=\"c-second-header\"\r\n mat-header-row\r\n *matHeaderRowDef=\"configuration.secondHeaders; sticky: true\"\r\n ></tr>\r\n </ng-container>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: configuration.displayedColumns\"\r\n matRipple\r\n class=\"c-row\"\r\n ></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: ['sdSubInformation']\"\r\n class=\"c-detail-row\"\r\n ></tr>\r\n <ng-container\r\n *ngIf=\"hasFooter && configuration.displayedFooters?.length\"\r\n >\r\n <tr\r\n mat-footer-row\r\n *matFooterRowDef=\"configuration.displayedFooters; sticky: true\"\r\n ></tr>\r\n </ng-container>\r\n </table>\r\n <ng-template #elseEmpty>\r\n <table mat-table [dataSource]=\"[{}]\">\r\n <ng-container matColumnDef=\"selection\" sticky>\r\n <th\r\n class=\"px-15\"\r\n mat-header-cell\r\n *matHeaderCellDef\r\n style=\"min-width: 50px; max-width: 50px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"\r\n ></th>\r\n </ng-container>\r\n <ng-container matColumnDef=\"command\">\r\n <th\r\n class=\"px-10\"\r\n mat-header-cell\r\n *matHeaderCellDef\r\n style=\"min-width: 50px; max-width: 50px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"\r\n ></th>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdSubInformationAction\">\r\n <th\r\n class=\"p-0\"\r\n mat-header-cell\r\n *matHeaderCellDef\r\n style=\"width: 1px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"\r\n ></th>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdEmpty\">\r\n <td\r\n class=\"c-empty\"\r\n mat-cell\r\n *matCellDef=\"let item\"\r\n [attr.colspan]=\"configuration.displayedColumns.length\"\r\n >\r\n <ng-container\r\n *ngIf=\"sdEmptyData?.templateRef; else sdEmptyDataNoRef\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n sdEmptyData.templateRef;\r\n context: { item: item }\r\n \"\r\n >\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #sdEmptyDataNoRef>\r\n <mat-icon fontSet=\"material-icons-outlined\"\r\n >leaderboard</mat-icon\r\n >\r\n </ng-template>\r\n </td>\r\n </ng-container>\r\n <ng-container\r\n *ngFor=\"let column of configuration.columns\"\r\n [matColumnDef]=\"column.field\"\r\n [sticky]=\"configuration.fixedColumn[column.field]\"\r\n >\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n class=\"c-th px-10\"\r\n [ngStyle]=\"{ 'min-width': column.width }\"\r\n >\r\n <div [innerHTML]=\"column.titleHtml || column.title\"></div>\r\n </th>\r\n </ng-container>\r\n <ng-container\r\n *ngFor=\"let column of configuration.firstColumns\"\r\n [matColumnDef]=\"column.field\"\r\n [sticky]=\"configuration.fixedColumn[column.field]\"\r\n >\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n class=\"c-th px-10\"\r\n [ngStyle]=\"{ 'min-width': column.width }\"\r\n [attr.rowspan]=\"\r\n configuration.multipleHeader &&\r\n column.type !== 'children-col'\r\n ? 2\r\n : 1\r\n \"\r\n [attr.colspan]=\"\r\n column.type === 'children-col' ? column.children?.length : 1\r\n \"\r\n >\r\n <div>\r\n <div [innerHTML]=\"column.titleHtml || column.title\"></div>\r\n <div *ngIf=\"gridOption.filter?.inlineColumn\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n inlineColumn;\r\n context: { column: column }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n </th>\r\n </ng-container>\r\n <ng-container\r\n *ngFor=\"let column of configuration.secondColumns\"\r\n [matColumnDef]=\"column.field\"\r\n >\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n class=\"c-th px-10\"\r\n [ngStyle]=\"{ 'min-width': column.width }\"\r\n >\r\n <div>\r\n <div [innerHTML]=\"column.titleHtml || column.title\"></div>\r\n <div *ngIf=\"gridOption.filter?.inlineColumn\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n inlineColumn;\r\n context: { column: column }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n </th>\r\n </ng-container>\r\n <tr\r\n class=\"c-first-header\"\r\n mat-header-row\r\n *matHeaderRowDef=\"configuration.firstHeaders; sticky: true\"\r\n ></tr>\r\n <tr\r\n class=\"c-second-header\"\r\n mat-header-row\r\n *matHeaderRowDef=\"configuration.secondHeaders; sticky: true\"\r\n ></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: ['sdEmpty']\"></tr>\r\n </table>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n <div class=\"c-paginator\">\r\n <div class=\"c-action\">\r\n <sd-button\r\n *ngIf=\"\r\n !gridOption.filter?.disabled && !gridOption.filter?.inlineColumn\r\n \"\r\n class=\"mr-10\"\r\n [title]=\"'Filter' | sdTranslate\"\r\n icon=\"filter_alt\"\r\n size=\"sm\"\r\n (action)=\"gridFilter.open()\"\r\n type=\"link\"\r\n >\r\n </sd-button>\r\n <sd-button\r\n *ngIf=\"gridOption.reload?.visible\"\r\n class=\"mr-10\"\r\n [title]=\"'Reload' | sdTranslate\"\r\n icon=\"refresh\"\r\n size=\"sm\"\r\n (action)=\"reload()\"\r\n [disabled]=\"!items?.length\"\r\n type=\"link\"\r\n >\r\n </sd-button>\r\n <ng-container *ngIf=\"gridOption.export?.visible && items?.length\">\r\n <ng-container *ngIf=\"isExporting; else unExporting\">\r\n <sd-button\r\n class=\"mr-10\"\r\n [loading]=\"isExporting\"\r\n [title]=\"exportTitle | sdTranslate\"\r\n icon=\"get_app\"\r\n size=\"sm\"\r\n type=\"link\"\r\n >\r\n </sd-button>\r\n </ng-container>\r\n <ng-template #unExporting>\r\n <sd-button\r\n class=\"mr-10\"\r\n [title]=\"exportTitle | sdTranslate\"\r\n icon=\"get_app\"\r\n size=\"sm\"\r\n [matMenuTriggerFor]=\"menu\"\r\n type=\"link\"\r\n >\r\n </sd-button>\r\n </ng-template>\r\n\r\n <mat-menu #menu=\"matMenu\">\r\n <button\r\n *ngIf=\"gridOption.export?.visibleExcel !== false\"\r\n mat-menu-item\r\n (click)=\"sdPopupExport.exportDefault()\"\r\n type=\"button\"\r\n >\r\n <mat-icon fontSet=\"material-icons-outlined\"\r\n >file_download</mat-icon\r\n >\r\n <span> {{ \"Export excel\" | sdTranslate }}</span>\r\n </button>\r\n <button\r\n *ngIf=\"gridOption.export?.visibleCSV !== false\"\r\n mat-menu-item\r\n (click)=\"sdPopupExport.exportDefault(true)\"\r\n type=\"button\"\r\n >\r\n <mat-icon fontSet=\"material-icons-outlined\"\r\n >file_download</mat-icon\r\n >\r\n <span> {{ \"Export CSV\" | sdTranslate }}</span>\r\n </button>\r\n <button\r\n *ngIf=\"gridOption.export?.key\"\r\n mat-menu-item\r\n (click)=\"sdPopupExport.open()\"\r\n type=\"button\"\r\n >\r\n <mat-icon fontSet=\"material-icons-outlined\">settings</mat-icon>\r\n <span> {{ \"Configure\" | sdTranslate }}</span>\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n <sd-button\r\n *ngIf=\"gridOption.config?.visible\"\r\n class=\"mr-10\"\r\n [title]=\"'Configure' | sdTranslate\"\r\n icon=\"settings\"\r\n size=\"sm\"\r\n (action)=\"popupGridConfiguration.open()\"\r\n type=\"link\"\r\n >\r\n </sd-button>\r\n </div>\r\n <mat-paginator\r\n [class.d-none]=\"gridOption.paginate?.hidden\"\r\n [length]=\"total\"\r\n [pageSize]=\"gridOption.paginate?.pageSize\"\r\n [pageSizeOptions]=\"gridOption.paginate?.pages\"\r\n [showFirstLastButtons]=\"gridOption.paginate?.showFirstLastButtons\"\r\n ></mat-paginator>\r\n </div>\r\n </div>\r\n <sd-popup-export\r\n *ngIf=\"gridOption.export?.visible\"\r\n [gridOption]=\"gridOption\"\r\n (export)=\"onExport($event)\"\r\n #sdPopupExport\r\n >\r\n </sd-popup-export>\r\n <sd-popup-grid-configuration\r\n [gridOption]=\"gridOption\"\r\n [key]=\"key\"\r\n #popupGridConfiguration\r\n >\r\n </sd-popup-grid-configuration>\r\n </ng-container>\r\n</ng-container>\r\n<ng-template #inlineColumn let-column=\"column\">\r\n <ng-container\r\n *ngIf=\"\r\n column.type === 'string' ||\r\n column.type === 'number' ||\r\n column.type === 'bool' ||\r\n column.type === 'values' ||\r\n column.type === 'date' ||\r\n column.type === 'datetime' ||\r\n column.type === 'time';\r\n else noFilter\r\n \"\r\n >\r\n <sd-input\r\n *ngIf=\"column.type === 'string'\"\r\n size=\"sm\"\r\n type=\"text\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n (keyupEnter)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\"\r\n >\r\n </sd-input>\r\n <sd-input\r\n *ngIf=\"column.type === 'number'\"\r\n size=\"sm\"\r\n type=\"number\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n (keyupEnter)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\"\r\n >\r\n </sd-input>\r\n <sd-select\r\n *ngIf=\"column.type === 'bool'\"\r\n size=\"sm\"\r\n [items]=\"[\r\n { value: '1', display: column.option?.displayOnTrue || 'True' },\r\n { value: '0', display: column.option?.displayOnFalse || 'False' }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n (sdChange)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\"\r\n >\r\n </sd-select>\r\n <sd-select\r\n *ngIf=\"\r\n column.type === 'values' && column?.option?.selection !== 'AUTOCOMPLETE'\r\n \"\r\n size=\"sm\"\r\n [items]=\"column.option.items\"\r\n [valueField]=\"column.option.valueField\"\r\n [displayField]=\"column.option.displayField\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n (sdChange)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\"\r\n [multiple]=\"\r\n column?.option?.selection === 'MULTIPLE' ||\r\n column?.option?.selection === 'MULTIPLEAUTOCOMPLETE'\r\n \"\r\n [filtered]=\"column?.option?.selection === 'MULTIPLEAUTOCOMPLETE'\"\r\n >\r\n </sd-select>\r\n <sd-autocomplete\r\n *ngIf=\"\r\n column.type === 'values' && column?.option?.selection === 'AUTOCOMPLETE'\r\n \"\r\n size=\"sm\"\r\n [items]=\"column.option.items\"\r\n [valueField]=\"column.option.valueField\"\r\n [displayField]=\"column.option.displayField\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n (sdChange)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\"\r\n >\r\n </sd-autocomplete>\r\n <sd-date-time\r\n *ngIf=\"\r\n column.type === 'date' ||\r\n column.type === 'datetime' ||\r\n column.type === 'time'\r\n \"\r\n size=\"sm\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n [type]=\"column.type\"\r\n (sdChange)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\"\r\n >\r\n </sd-date-time>\r\n </ng-container>\r\n <ng-template #noFilter>\r\n <sd-input type=\"text\" disabled> </sd-input>\r\n </ng-template>\r\n</ng-template>\r\n\r\n<sd-quick-action\r\n *ngIf=\"\r\n selectedItems\r\n | selectionActionFilter: gridOption?.selection?.actions as actions\r\n \"\r\n [isOpened]=\"actions?.length\"\r\n>\r\n <div sdMessage>\r\n <strong class=\"text-info\">{{ selectedItems.length }}</strong>\r\n {{ gridOption?.selection?.message || (\"selected rows\" | sdTranslate) }}\r\n </div>\r\n <div class=\"d-flex align-items-center\" sdAction>\r\n <ng-container *ngFor=\"let action of actions\">\r\n <sd-button\r\n *ngIf=\"action.click\"\r\n class=\"ml-5\"\r\n [tooltip]=\"action.tooltip\"\r\n [icon]=\"action.icon\"\r\n [color]=\"action.color || 'secondary'\"\r\n [type]=\"action.type || 'light'\"\r\n [fontSet]=\"action.fontSet\"\r\n [title]=\"action.title\"\r\n size=\"sm\"\r\n (action)=\"action.click(selectedItems)\"\r\n ></sd-button>\r\n <ng-container *ngIf=\"action.children?.length\">\r\n <sd-button\r\n class=\"ml-5\"\r\n [tooltip]=\"action.tooltip\"\r\n [icon]=\"action.icon || 'more_vert'\"\r\n [color]=\"action.color || 'secondary'\"\r\n [type]=\"action.type || 'light'\"\r\n [fontSet]=\"action.fontSet\"\r\n [title]=\"action.title\"\r\n size=\"sm\"\r\n [matMenuTriggerFor]=\"menu\"\r\n >\r\n </sd-button>\r\n <mat-menu #menu=\"matMenu\">\r\n <span>\r\n <button\r\n *ngFor=\"let childAction of action.children\"\r\n mat-menu-item\r\n (click)=\"childAction.click(selectedItems)\"\r\n [disabled]=\"childAction.disabled\"\r\n >\r\n <mat-icon [fontSet]=\"childAction.fontSet\" class=\"c-icon\"\r\n >{{ childAction.icon }}\r\n </mat-icon>\r\n <span> {{ childAction.title }}</span>\r\n </button>\r\n </span>\r\n </mat-menu>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</sd-quick-action>\r\n",
1718
1718
  animations: [
1719
1719
  trigger('detailExpand', [
1720
1720
  state('collapsed', style({ height: '0', minHeight: '0', visibility: 'hidden' })),
@@ -1722,7 +1722,7 @@ SdGridMaterial.decorators = [
1722
1722
  transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),
1723
1723
  ]),
1724
1724
  ],
1725
- styles: [":host{height:100%}:host,:host .c-container{display:flex;flex-direction:column;overflow:auto}:host .c-container{min-height:200px;position:relative}:host .c-container .c-table{min-height:300px;overflow:auto;position:relative}:host .c-container .c-table table{border-collapse:separate;width:100%}:host .c-container .c-table table tr.c-first-header.mat-header-row,:host .c-container .c-table table tr.c-second-header.mat-header-row{height:40px}:host .c-container .c-table table tr.c-detail-row{height:0}:host .c-container .c-table table tr.c-row td{border-bottom-width:0}:host .c-container .c-table table tr.c-row.c-expandable{cursor:pointer}:host .c-container .c-table table tr.c-row.c-expandable:hover{background:#f5f5f5}:host .c-container .c-table .c-th{color:#000;font-size:14px;font-weight:500;line-height:20px}:host .c-container .c-table .c-td:first{padding-left:10px}:host .c-container .c-loading{align-items:center;background:rgba(0,0,0,.15);bottom:56px;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:2}:host .c-container .c-paginator{align-items:center;background-color:#fff;display:flex;flex-direction:row;justify-content:space-between}:host .c-container .c-paginator .c-action{padding:5px}:host .c-container .c-empty{background-color:#fff;border:none!important;text-align:center}:host .c-container .c-empty mat-icon{font-size:150px;height:auto;margin-bottom:30px;margin-top:30px;opacity:.2;width:auto}:host mat-icon.c-icon{color:rgba(0,0,0,.54)!important}:host .lds-ring{display:inline-block;height:40px;position:relative;width:40px}:host .lds-ring div{-webkit-animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;border:4px solid transparent;border-radius:50%;border-top-color:#cef;box-sizing:border-box;display:block;height:32px;margin:4px;position:absolute;width:32px}:host .lds-ring div:first-child{-webkit-animation-delay:-.45s;animation-delay:-.45s}:host .lds-ring div:nth-child(2){-webkit-animation-delay:-.3s;animation-delay:-.3s}:host .lds-ring div:nth-child(3){-webkit-animation-delay:-.15s;animation-delay:-.15s}:host .style1 .mat-table{border:1px solid #dde0e5}:host .style1 .mat-table tr.mat-header-row{background:#f2f3f4}:host .style1 .mat-table th.mat-header-cell{padding:10px 0}:host .style1 .c-paginator{border:1px solid #dde0e5;border-top:none!important}:host .style1 .mat-form-field-wrapper{background:#fff;padding:0}@-webkit-keyframes lds-ring{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes lds-ring{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}:host ::ng-deep .mat-sort-header-content{display:block;text-align:left;width:100%}"]
1725
+ styles: [":host{height:100%}:host,:host .c-container{display:flex;flex-direction:column;overflow:auto}:host .c-container{min-height:200px;position:relative}:host .c-container .c-table{min-height:300px;overflow:auto;position:relative}:host .c-container .c-table table{border-collapse:separate;width:100%}:host .c-container .c-table table tr.c-first-header.mat-header-row,:host .c-container .c-table table tr.c-second-header.mat-header-row{height:40px}:host .c-container .c-table table tr.c-detail-row{height:0}:host .c-container .c-table table tr.c-row td{border-bottom-width:0}:host .c-container .c-table table tr.c-row.c-expandable{cursor:pointer}:host .c-container .c-table table tr.c-row.c-expandable:hover{background:#f5f5f5}:host .c-container .c-table .c-th{color:#000;font-size:14px;font-weight:500;line-height:20px;vertical-align:baseline}:host .c-container .c-table .c-td:first{padding-left:10px}:host .c-container .c-loading{align-items:center;background:rgba(0,0,0,.15);bottom:56px;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:2}:host .c-container .c-paginator{align-items:center;background-color:#fff;display:flex;flex-direction:row;justify-content:space-between}:host .c-container .c-paginator .c-action{padding:5px}:host .c-container .c-empty{background-color:#fff;border:none!important;text-align:center}:host .c-container .c-empty mat-icon{font-size:150px;height:auto;margin-bottom:30px;margin-top:30px;opacity:.2;width:auto}:host mat-icon.c-icon{color:rgba(0,0,0,.54)!important}:host .lds-ring{display:inline-block;height:40px;position:relative;width:40px}:host .lds-ring div{-webkit-animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;border:4px solid transparent;border-radius:50%;border-top-color:#cef;box-sizing:border-box;display:block;height:32px;margin:4px;position:absolute;width:32px}:host .lds-ring div:first-child{-webkit-animation-delay:-.45s;animation-delay:-.45s}:host .lds-ring div:nth-child(2){-webkit-animation-delay:-.3s;animation-delay:-.3s}:host .lds-ring div:nth-child(3){-webkit-animation-delay:-.15s;animation-delay:-.15s}:host .style1 .mat-table{border:1px solid #dde0e5}:host .style1 .mat-table tr.mat-header-row{background:#f2f3f4}:host .style1 .mat-table th.mat-header-cell{padding:10px 0}:host .style1 .c-paginator{border:1px solid #dde0e5;border-top:none!important}:host .style1 .mat-form-field-wrapper{background:#fff;padding:0}@-webkit-keyframes lds-ring{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes lds-ring{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}:host ::ng-deep .mat-sort-header-content{display:block;text-align:left;width:100%}:host ::ng-deep .mat-select-arrow{color:#a6a6a6}:host ::ng-deep .mat-sort-header-disabled{background-image:none!important;cursor:default!important;padding-right:12px!important}:host ::ng-deep .mat-sort-header-container{align-items:start!important}:host ::ng-deep .mat-sort-header-arrow{margin-top:4px!important}:host ::ng-deep .mat-sort-header{cursor:pointer}:host ::ng-deep .mat-sort-header[aria-sort]{background-position:center right 0;background-repeat:no-repeat;background-size:16px 16px;cursor:pointer;padding-right:24px}:host ::ng-deep .mat-sort-header[aria-sort=none]{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 0 24 24' width='24px' fill='%23000000'%3E%3Cpath d='M0 0h24v24H0V0z' fill='none'/%3E%3Cpath fill='%237A7A7A' d='M12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z'/%3E%3C/svg%3E\")}:host ::ng-deep .mat-sort-header[aria-sort=ascending]{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 0 24 24' width='24px' fill='%23000000'%3E%3Cpath d='M0 0h24v24H0V0z' fill='none'/%3E%3Cpath fill='%237A7A7A' d='M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z'/%3E%3C/svg%3E\")}:host ::ng-deep .mat-sort-header[aria-sort=descending]{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 0 24 24' width='24px' fill='%23000000'%3E%3Cpath d='M0 0h24v24H0V0z' fill='none'/%3E%3Cpath fill='%237A7A7A' d='M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z'/%3E%3C/svg%3E\")}.c-inline-column ::ng-deep .mat-form-field-wrapper{background-color:#fff;border-radius:8px}"]
1726
1726
  },] }
1727
1727
  ];
1728
1728
  SdGridMaterial.ctorParameters = () => [