@odx/angular 2.3.1 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/charts-config/README.md +3 -0
  3. package/charts-config/index.d.ts +3 -0
  4. package/charts-config/lib/charts-theme.directive.d.ts +10 -0
  5. package/charts-config/lib/charts-theme.module.d.ts +8 -0
  6. package/charts-config/lib/charts-theme.service.d.ts +60 -0
  7. package/components/rich-list/README.md +3 -0
  8. package/components/rich-list/index.d.ts +4 -0
  9. package/components/rich-list/lib/components/index.d.ts +1 -0
  10. package/components/rich-list/lib/components/rich-list-item/rich-list-item.component.d.ts +13 -0
  11. package/components/rich-list/lib/directives/index.d.ts +1 -0
  12. package/components/rich-list/lib/directives/rich-list-item-title.d.ts +5 -0
  13. package/components/rich-list/lib/rich-list.component.d.ts +8 -0
  14. package/components/rich-list/lib/rich-list.module.d.ts +10 -0
  15. package/esm2020/charts-config/index.mjs +4 -0
  16. package/esm2020/charts-config/lib/charts-theme.directive.mjs +27 -0
  17. package/esm2020/charts-config/lib/charts-theme.module.mjs +33 -0
  18. package/esm2020/charts-config/lib/charts-theme.service.mjs +114 -0
  19. package/esm2020/charts-config/odx-angular-charts-config.mjs +5 -0
  20. package/esm2020/components/rich-list/index.mjs +5 -0
  21. package/esm2020/components/rich-list/lib/components/index.mjs +2 -0
  22. package/esm2020/components/rich-list/lib/components/rich-list-item/rich-list-item.component.mjs +46 -0
  23. package/esm2020/components/rich-list/lib/directives/index.mjs +2 -0
  24. package/esm2020/components/rich-list/lib/directives/rich-list-item-title.mjs +14 -0
  25. package/esm2020/components/rich-list/lib/rich-list.component.mjs +25 -0
  26. package/esm2020/components/rich-list/lib/rich-list.module.mjs +20 -0
  27. package/esm2020/components/rich-list/odx-angular-components-rich-list.mjs +5 -0
  28. package/esm2020/lib/services/window-ref.mjs +25 -2
  29. package/esm2020/utils/lib/helpers/dom.mjs +13 -1
  30. package/fesm2015/odx-angular-charts-config.mjs +171 -0
  31. package/fesm2015/odx-angular-charts-config.mjs.map +1 -0
  32. package/fesm2015/odx-angular-components-rich-list.mjs +96 -0
  33. package/fesm2015/odx-angular-components-rich-list.mjs.map +1 -0
  34. package/fesm2015/odx-angular-utils.mjs +13 -1
  35. package/fesm2015/odx-angular-utils.mjs.map +1 -1
  36. package/fesm2015/odx-angular.mjs +24 -1
  37. package/fesm2015/odx-angular.mjs.map +1 -1
  38. package/fesm2020/odx-angular-charts-config.mjs +171 -0
  39. package/fesm2020/odx-angular-charts-config.mjs.map +1 -0
  40. package/fesm2020/odx-angular-components-rich-list.mjs +96 -0
  41. package/fesm2020/odx-angular-components-rich-list.mjs.map +1 -0
  42. package/fesm2020/odx-angular-utils.mjs +13 -1
  43. package/fesm2020/odx-angular-utils.mjs.map +1 -1
  44. package/fesm2020/odx-angular.mjs +24 -1
  45. package/fesm2020/odx-angular.mjs.map +1 -1
  46. package/lib/services/window-ref.d.ts +3 -0
  47. package/package.json +25 -3
  48. package/utils/lib/helpers/dom.d.ts +2 -0
@@ -8,7 +8,8 @@ import * as i0 from "@angular/core";
8
8
  export class WindowRef {
9
9
  constructor() {
10
10
  this.title = inject(Title);
11
- this.nativeWindow = inject(DOCUMENT).defaultView ?? window;
11
+ this.document = inject(DOCUMENT);
12
+ this.nativeWindow = this.document.defaultView ?? window;
12
13
  this.isOnline$ = fromEvents(this.nativeWindow, 'offline', 'online').pipe(startWith(null), map(() => this.isOnline()), distinctUntilChanged(), shareReplay({ refCount: true }));
13
14
  this.pageTitle$ = (inject(Router, { optional: true })?.events ?? EMPTY).pipe(filter((event) => event instanceof NavigationEnd), startWith(null), debounceTime(0), map(() => this.title.getTitle()), shareReplay({ refCount: true }));
14
15
  }
@@ -34,6 +35,28 @@ export class WindowRef {
34
35
  const componentType = reflectComponentType(type);
35
36
  return componentType ? this.nativeWindow.document.querySelector(componentType.selector) : null;
36
37
  }
38
+ getCSSVariable(name, element = this.document.body) {
39
+ return this.nativeWindow.getComputedStyle(element).getPropertyValue(`--${name}`).trim();
40
+ }
41
+ getCSSColorStyles(filter, selector = 'body') {
42
+ const selectorFilter = new RegExp(`^${selector}$`);
43
+ const nameFilter = new RegExp(`^--${filter}`);
44
+ const arr = Array.from(this.document.styleSheets)
45
+ .filter(({ href }) => !href || href.startsWith(this.nativeWindow.location.origin))
46
+ .map(({ cssRules }) => Array.from(cssRules)[0])
47
+ .filter((rule) => rule instanceof CSSStyleRule && selectorFilter.test(rule.selectorText.trim()))
48
+ .reduce((colors, rule) => {
49
+ Object.values(rule.style)
50
+ .map((style) => style.toString().trim())
51
+ .filter((name) => Boolean(name) && nameFilter.test(name))
52
+ .forEach((name) => {
53
+ const key = name.replace('--', '');
54
+ colors[key] = this.getCSSVariable(key);
55
+ });
56
+ return colors;
57
+ }, {});
58
+ return arr;
59
+ }
37
60
  }
38
61
  WindowRef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WindowRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
39
62
  WindowRef.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WindowRef, providedIn: 'root' });
@@ -43,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
43
66
  providedIn: 'root',
44
67
  }]
45
68
  }] });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL3dpbmRvdy1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3RHLE1BQU0sT0FBTyxTQUFTO0lBSHRCO1FBSW1CLFVBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsaUJBQVksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQztRQUN0RCxjQUFTLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDakYsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUNmLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDMUIsb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQ2hDLENBQUM7UUFDYyxlQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDckYsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksYUFBYSxDQUFDLEVBQ2pELFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFDZixZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQ2YsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDaEMsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQ2hDLENBQUM7S0ErQkg7SUE3QkMsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztJQUM1QyxDQUFDO0lBRU0sV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUM5QyxDQUFDO0lBRU0sZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUVNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQzlCLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxnQkFBZ0IsQ0FBSSxJQUFhO1FBQ3RDLE1BQU0sYUFBYSxHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWpELE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDakcsQ0FBQzs7c0dBN0NVLFNBQVM7MEdBQVQsU0FBUyxjQUZSLE1BQU07MkZBRVAsU0FBUztrQkFIckIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIHJlZmxlY3RDb21wb25lbnRUeXBlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZyb21FdmVudHMgfSBmcm9tICdAb2R4L2FuZ3VsYXIvcnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBFTVBUWSwgZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFdpbmRvd1JlZiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGl0bGUgPSBpbmplY3QoVGl0bGUpO1xuICBwdWJsaWMgcmVhZG9ubHkgbmF0aXZlV2luZG93ID0gaW5qZWN0KERPQ1VNRU5UKS5kZWZhdWx0VmlldyA/PyB3aW5kb3c7XG4gIHB1YmxpYyByZWFkb25seSBpc09ubGluZSQgPSBmcm9tRXZlbnRzKHRoaXMubmF0aXZlV2luZG93LCAnb2ZmbGluZScsICdvbmxpbmUnKS5waXBlKFxuICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICBtYXAoKCkgPT4gdGhpcy5pc09ubGluZSgpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUgfSlcbiAgKTtcbiAgcHVibGljIHJlYWRvbmx5IHBhZ2VUaXRsZSQgPSAoaW5qZWN0KFJvdXRlciwgeyBvcHRpb25hbDogdHJ1ZSB9KT8uZXZlbnRzID8/IEVNUFRZKS5waXBlKFxuICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXG4gICAgc3RhcnRXaXRoKG51bGwpLFxuICAgIGRlYm91bmNlVGltZSgwKSxcbiAgICBtYXAoKCkgPT4gdGhpcy50aXRsZS5nZXRUaXRsZSgpKSxcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlIH0pXG4gICk7XG5cbiAgcHVibGljIGdldCBsb2NhdGlvbigpOiBMb2NhdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMubmF0aXZlV2luZG93LmxvY2F0aW9uO1xuICB9XG5cbiAgcHVibGljIGlzT25saW5lKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm5hdGl2ZVdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lO1xuICB9XG5cbiAgcHVibGljIGdldExhbmd1YWdlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubmF0aXZlV2luZG93Lm5hdmlnYXRvci5sYW5ndWFnZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMYW5ndWFnZUNvZGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMYW5ndWFnZSgpLnNwbGl0KC8tfF8vKVswXS50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgcHVibGljIGdldE9yaWdpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmxvY2F0aW9uLm9yaWdpbjtcbiAgfVxuXG4gIHB1YmxpYyByZWxvYWRQYWdlKCk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLmxvY2F0aW9uLnJlbG9hZCgpO1xuICB9XG5cbiAgcHVibGljIHF1ZXJ5QnlDb21wb25lbnQ8VD4odHlwZTogVHlwZTxUPik6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgY29uc3QgY29tcG9uZW50VHlwZSA9IHJlZmxlY3RDb21wb25lbnRUeXBlKHR5cGUpO1xuXG4gICAgcmV0dXJuIGNvbXBvbmVudFR5cGUgPyB0aGlzLm5hdGl2ZVdpbmRvdy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGNvbXBvbmVudFR5cGUuc2VsZWN0b3IpIDogbnVsbDtcbiAgfVxufVxuIl19
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL3dpbmRvdy1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3RHLE1BQU0sT0FBTyxTQUFTO0lBSHRCO1FBSW1CLFVBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixpQkFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQztRQUNuRCxjQUFTLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDakYsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUNmLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDMUIsb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQ2hDLENBQUM7UUFDYyxlQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDckYsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksYUFBYSxDQUFDLEVBQ2pELFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFDZixZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQ2YsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDaEMsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQ2hDLENBQUM7S0F1REg7SUFyREMsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztJQUM1QyxDQUFDO0lBRU0sV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUM5QyxDQUFDO0lBRU0sZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUVNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQzlCLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxnQkFBZ0IsQ0FBSSxJQUFhO1FBQ3RDLE1BQU0sYUFBYSxHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWpELE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDakcsQ0FBQztJQUVNLGNBQWMsQ0FBQyxJQUFZLEVBQUUsVUFBdUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJO1FBQzNFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUYsQ0FBQztJQUVNLGlCQUFpQixDQUFDLE1BQWMsRUFBRSxRQUFRLEdBQUcsTUFBTTtRQUN4RCxNQUFNLGNBQWMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDbkQsTUFBTSxVQUFVLEdBQUcsSUFBSSxNQUFNLENBQUMsTUFBTSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7YUFDOUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNqRixHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzlDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxZQUFZLFlBQVksSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUMvRixNQUFNLENBQUMsQ0FBQyxNQUE4QixFQUFFLElBQUksRUFBRSxFQUFFO1lBQy9DLE1BQU0sQ0FBQyxNQUFNLENBQUUsSUFBcUIsQ0FBQyxLQUFLLENBQUM7aUJBQ3hDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2lCQUN2QyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUN4RCxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDaEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ25DLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pDLENBQUMsQ0FBQyxDQUFDO1lBQ0wsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ1QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDOztzR0F0RVUsU0FBUzswR0FBVCxTQUFTLGNBRlIsTUFBTTsyRkFFUCxTQUFTO2tCQUhyQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgcmVmbGVjdENvbXBvbmVudFR5cGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZnJvbUV2ZW50cyB9IGZyb20gJ0BvZHgvYW5ndWxhci9yeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIEVNUFRZLCBmaWx0ZXIsIG1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgV2luZG93UmVmIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0aXRsZSA9IGluamVjdChUaXRsZSk7XG4gIHB1YmxpYyByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHB1YmxpYyByZWFkb25seSBuYXRpdmVXaW5kb3cgPSB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3ID8/IHdpbmRvdztcbiAgcHVibGljIHJlYWRvbmx5IGlzT25saW5lJCA9IGZyb21FdmVudHModGhpcy5uYXRpdmVXaW5kb3csICdvZmZsaW5lJywgJ29ubGluZScpLnBpcGUoXG4gICAgc3RhcnRXaXRoKG51bGwpLFxuICAgIG1hcCgoKSA9PiB0aGlzLmlzT25saW5lKCkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSB9KVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgcGFnZVRpdGxlJCA9IChpbmplY3QoUm91dGVyLCB7IG9wdGlvbmFsOiB0cnVlIH0pPy5ldmVudHMgPz8gRU1QVFkpLnBpcGUoXG4gICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcbiAgICBzdGFydFdpdGgobnVsbCksXG4gICAgZGVib3VuY2VUaW1lKDApLFxuICAgIG1hcCgoKSA9PiB0aGlzLnRpdGxlLmdldFRpdGxlKCkpLFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUgfSlcbiAgKTtcblxuICBwdWJsaWMgZ2V0IGxvY2F0aW9uKCk6IExvY2F0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5uYXRpdmVXaW5kb3cubG9jYXRpb247XG4gIH1cblxuICBwdWJsaWMgaXNPbmxpbmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubmF0aXZlV2luZG93Lm5hdmlnYXRvci5vbkxpbmU7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGFuZ3VhZ2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uYXRpdmVXaW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlO1xuICB9XG5cbiAgcHVibGljIGdldExhbmd1YWdlQ29kZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExhbmd1YWdlKCkuc3BsaXQoLy18Xy8pWzBdLnRvTG93ZXJDYXNlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0T3JpZ2luKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubG9jYXRpb24ub3JpZ2luO1xuICB9XG5cbiAgcHVibGljIHJlbG9hZFBhZ2UoKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMubG9jYXRpb24ucmVsb2FkKCk7XG4gIH1cblxuICBwdWJsaWMgcXVlcnlCeUNvbXBvbmVudDxUPih0eXBlOiBUeXBlPFQ+KTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICBjb25zdCBjb21wb25lbnRUeXBlID0gcmVmbGVjdENvbXBvbmVudFR5cGUodHlwZSk7XG5cbiAgICByZXR1cm4gY29tcG9uZW50VHlwZSA/IHRoaXMubmF0aXZlV2luZG93LmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoY29tcG9uZW50VHlwZS5zZWxlY3RvcikgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldENTU1ZhcmlhYmxlKG5hbWU6IHN0cmluZywgZWxlbWVudDogSFRNTEVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmJvZHkpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5hdGl2ZVdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoYC0tJHtuYW1lfWApLnRyaW0oKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDU1NDb2xvclN0eWxlcyhmaWx0ZXI6IHN0cmluZywgc2VsZWN0b3IgPSAnYm9keScpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICBjb25zdCBzZWxlY3RvckZpbHRlciA9IG5ldyBSZWdFeHAoYF4ke3NlbGVjdG9yfSRgKTtcbiAgICBjb25zdCBuYW1lRmlsdGVyID0gbmV3IFJlZ0V4cChgXi0tJHtmaWx0ZXJ9YCk7XG4gICAgY29uc3QgYXJyID0gQXJyYXkuZnJvbSh0aGlzLmRvY3VtZW50LnN0eWxlU2hlZXRzKVxuICAgICAgLmZpbHRlcigoeyBocmVmIH0pID0+ICFocmVmIHx8IGhyZWYuc3RhcnRzV2l0aCh0aGlzLm5hdGl2ZVdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pKVxuICAgICAgLm1hcCgoeyBjc3NSdWxlcyB9KSA9PiBBcnJheS5mcm9tKGNzc1J1bGVzKVswXSlcbiAgICAgIC5maWx0ZXIoKHJ1bGUpID0+IHJ1bGUgaW5zdGFuY2VvZiBDU1NTdHlsZVJ1bGUgJiYgc2VsZWN0b3JGaWx0ZXIudGVzdChydWxlLnNlbGVjdG9yVGV4dC50cmltKCkpKVxuICAgICAgLnJlZHVjZSgoY29sb3JzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LCBydWxlKSA9PiB7XG4gICAgICAgIE9iamVjdC52YWx1ZXMoKHJ1bGUgYXMgQ1NTU3R5bGVSdWxlKS5zdHlsZSlcbiAgICAgICAgICAubWFwKChzdHlsZSkgPT4gc3R5bGUudG9TdHJpbmcoKS50cmltKCkpXG4gICAgICAgICAgLmZpbHRlcigobmFtZSkgPT4gQm9vbGVhbihuYW1lKSAmJiBuYW1lRmlsdGVyLnRlc3QobmFtZSkpXG4gICAgICAgICAgLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IG5hbWUucmVwbGFjZSgnLS0nLCAnJyk7XG4gICAgICAgICAgICBjb2xvcnNba2V5XSA9IHRoaXMuZ2V0Q1NTVmFyaWFibGUoa2V5KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGNvbG9ycztcbiAgICAgIH0sIHt9KTtcbiAgICByZXR1cm4gYXJyO1xuICB9XG59XG4iXX0=
@@ -42,6 +42,18 @@ export function createResizeObserver(callback) {
42
42
  return { observe: () => void 0, disconnect: () => void 0, unobserve: () => void 0 };
43
43
  }
44
44
  }
45
+ export function createMutationObserver(observer, callback) {
46
+ try {
47
+ return new MutationObserver((mutations) => {
48
+ if (callback(mutations)) {
49
+ observer.next(mutations[0]);
50
+ }
51
+ });
52
+ }
53
+ catch (error) {
54
+ return { disconnect: () => void 0, observe: () => void 0, takeRecords: () => [] };
55
+ }
56
+ }
45
57
  export function containsElement(parent, other, inclusive = true) {
46
58
  if (!parent || !other)
47
59
  return false;
@@ -49,4 +61,4 @@ export function containsElement(parent, other, inclusive = true) {
49
61
  return false;
50
62
  return parent.contains(other);
51
63
  }
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3V0aWxzL3NyYy9saWIvaGVscGVycy9kb20udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxPQUFvQixFQUFFLE1BQXVGO0lBQ3ZJLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLEtBQWM7SUFDckQsT0FBTyxnQ0FBZ0MsQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPLENBQUM7QUFDNUQsQ0FBQztBQUVELE1BQU0sVUFBVSxnQ0FBZ0MsQ0FBQyxLQUFjO0lBQzdELE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUMvQixDQUFDO0FBRUQsTUFBTSxVQUFVLEVBQUUsQ0FBQyxLQUFjO0lBQy9CLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDaEQsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsQ0FBYSxFQUFFLENBQWE7SUFDdkQsT0FBTyxlQUFlLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztBQUN0QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUFDLE9BQW9CLEVBQUUsUUFBaUI7SUFDM0UsSUFBSSxRQUFRLEVBQUU7UUFDWixXQUFXLENBQUMsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7S0FDOUM7U0FBTTtRQUNMLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLFdBQVcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUM1QztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsT0FBb0I7SUFDcEQsT0FBTyxDQUFDLFlBQVksQ0FBQztBQUN2QixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFvQixFQUFFLFNBQWlCLEVBQUUsS0FBZTtJQUNuRixJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNuQixPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztLQUN4QztTQUFNO1FBQ0wsT0FBTyxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzdDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxRQUFnQztJQUNuRSxJQUFJO1FBQ0YsT0FBTyxJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUNyQztJQUFDLE1BQU07UUFDTixPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztLQUNyRjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLE1BQXVCLEVBQUUsS0FBc0IsRUFBRSxTQUFTLEdBQUcsSUFBSTtJQUMvRixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQ3BDLElBQUksQ0FBQyxTQUFTLElBQUksTUFBTSxLQUFLLEtBQUs7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUNqRCxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzTnVtYmVyLCBpc1N0cmluZyB9IGZyb20gJy4vdHlwZS1ndWFyZHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlTdHlsZXMoZWxlbWVudDogSFRNTEVsZW1lbnQsIHN0eWxlczogUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uIHwgUmVjb3JkPGtleW9mIENTU1N0eWxlRGVjbGFyYXRpb24sIHN0cmluZyB8IG51bGw+Pik6IHZvaWQge1xuICBPYmplY3QuYXNzaWduKGVsZW1lbnQuc3R5bGUsIHN0eWxlcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBib29sZWFuVG9BdHRyaWJ1dGVTdHJpbmcoc3RhdGU6IGJvb2xlYW4pOiBzdHJpbmcge1xuICByZXR1cm4gYm9vbGVhblRvT3B0aW9uYWxBdHRyaWJ1dGVTdHJpbmcoc3RhdGUpID8/ICdmYWxzZSc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBib29sZWFuVG9PcHRpb25hbEF0dHJpYnV0ZVN0cmluZyhzdGF0ZTogYm9vbGVhbik6IHN0cmluZyB8IG51bGwge1xuICByZXR1cm4gc3RhdGUgPyAndHJ1ZScgOiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHgodmFsdWU6IHVua25vd24pOiBgJHtudW1iZXJ9cHhgIHtcbiAgcmV0dXJuIGlzTnVtYmVyKHZhbHVlKSA/IGAke3ZhbHVlfXB4YCA6ICcwcHgnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3NzVHJhbnNsYXRlKHg6IHN0cmluZyB8IDAsIHk6IHN0cmluZyB8IDApOiBgdHJhbnNsYXRlM2QoJHtzdHJpbmcgfCAwfSwgJHtzdHJpbmcgfCAwfSwgMClgIHtcbiAgcmV0dXJuIGB0cmFuc2xhdGUzZCgke3h9LCAke3l9LCAwKWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXNhYmxlQ1NTVHJhbnNpdGlvbnMoZWxlbWVudDogSFRNTEVsZW1lbnQsIGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gIGlmIChkaXNhYmxlZCkge1xuICAgIGFwcGx5U3R5bGVzKGVsZW1lbnQsIHsgdHJhbnNpdGlvbjogJ25vbmUnIH0pO1xuICB9IGVsc2Uge1xuICAgIGZvcmNlTGF5b3V0UmVmbG93KGVsZW1lbnQpO1xuICAgIGFwcGx5U3R5bGVzKGVsZW1lbnQsIHsgdHJhbnNpdGlvbjogbnVsbCB9KTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yY2VMYXlvdXRSZWZsb3coZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgZWxlbWVudC5vZmZzZXRIZWlnaHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRBdHRyaWJ1dGUoZWxlbWVudDogSFRNTEVsZW1lbnQsIGF0dHJpYnV0ZTogc3RyaW5nLCB2YWx1ZT86IHVua25vd24pIHtcbiAgaWYgKGlzU3RyaW5nKHZhbHVlKSkge1xuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIGVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKGF0dHJpYnV0ZSwgISF2YWx1ZSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlc2l6ZU9ic2VydmVyKGNhbGxiYWNrOiBSZXNpemVPYnNlcnZlckNhbGxiYWNrKTogUmVzaXplT2JzZXJ2ZXIge1xuICB0cnkge1xuICAgIHJldHVybiBuZXcgUmVzaXplT2JzZXJ2ZXIoY2FsbGJhY2spO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4geyBvYnNlcnZlOiAoKSA9PiB2b2lkIDAsIGRpc2Nvbm5lY3Q6ICgpID0+IHZvaWQgMCwgdW5vYnNlcnZlOiAoKSA9PiB2b2lkIDAgfTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udGFpbnNFbGVtZW50KHBhcmVudD86IEVsZW1lbnQgfCBudWxsLCBvdGhlcj86IEVsZW1lbnQgfCBudWxsLCBpbmNsdXNpdmUgPSB0cnVlKTogYm9vbGVhbiB7XG4gIGlmICghcGFyZW50IHx8ICFvdGhlcikgcmV0dXJuIGZhbHNlO1xuICBpZiAoIWluY2x1c2l2ZSAmJiBwYXJlbnQgPT09IG90aGVyKSByZXR1cm4gZmFsc2U7XG4gIHJldHVybiBwYXJlbnQuY29udGFpbnMob3RoZXIpO1xufVxuIl19
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3V0aWxzL3NyYy9saWIvaGVscGVycy9kb20udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxPQUFvQixFQUFFLE1BQXVGO0lBQ3ZJLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLEtBQWM7SUFDckQsT0FBTyxnQ0FBZ0MsQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPLENBQUM7QUFDNUQsQ0FBQztBQUVELE1BQU0sVUFBVSxnQ0FBZ0MsQ0FBQyxLQUFjO0lBQzdELE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUMvQixDQUFDO0FBRUQsTUFBTSxVQUFVLEVBQUUsQ0FBQyxLQUFjO0lBQy9CLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDaEQsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsQ0FBYSxFQUFFLENBQWE7SUFDdkQsT0FBTyxlQUFlLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztBQUN0QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUFDLE9BQW9CLEVBQUUsUUFBaUI7SUFDM0UsSUFBSSxRQUFRLEVBQUU7UUFDWixXQUFXLENBQUMsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7S0FDOUM7U0FBTTtRQUNMLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLFdBQVcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUM1QztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsT0FBb0I7SUFDcEQsT0FBTyxDQUFDLFlBQVksQ0FBQztBQUN2QixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFvQixFQUFFLFNBQWlCLEVBQUUsS0FBZTtJQUNuRixJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNuQixPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztLQUN4QztTQUFNO1FBQ0wsT0FBTyxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzdDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxRQUFnQztJQUNuRSxJQUFJO1FBQ0YsT0FBTyxJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUNyQztJQUFDLE1BQU07UUFDTixPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztLQUNyRjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsUUFBb0MsRUFBRSxRQUFrRDtJQUM3SCxJQUFJO1FBQ0YsT0FBTyxJQUFJLGdCQUFnQixDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDeEMsSUFBSSxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3ZCLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDN0I7UUFDSCxDQUFDLENBQUMsQ0FBQztLQUNKO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7S0FDbkY7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxNQUF1QixFQUFFLEtBQXNCLEVBQUUsU0FBUyxHQUFHLElBQUk7SUFDL0YsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUs7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUNwQyxJQUFJLENBQUMsU0FBUyxJQUFJLE1BQU0sS0FBSyxLQUFLO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDakQsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJzY3JpYmVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpc051bWJlciwgaXNTdHJpbmcgfSBmcm9tICcuL3R5cGUtZ3VhcmRzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5U3R5bGVzKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzdHlsZXM6IFBhcnRpYWw8Q1NTU3R5bGVEZWNsYXJhdGlvbiB8IFJlY29yZDxrZXlvZiBDU1NTdHlsZURlY2xhcmF0aW9uLCBzdHJpbmcgfCBudWxsPj4pOiB2b2lkIHtcbiAgT2JqZWN0LmFzc2lnbihlbGVtZW50LnN0eWxlLCBzdHlsZXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYm9vbGVhblRvQXR0cmlidXRlU3RyaW5nKHN0YXRlOiBib29sZWFuKTogc3RyaW5nIHtcbiAgcmV0dXJuIGJvb2xlYW5Ub09wdGlvbmFsQXR0cmlidXRlU3RyaW5nKHN0YXRlKSA/PyAnZmFsc2UnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYm9vbGVhblRvT3B0aW9uYWxBdHRyaWJ1dGVTdHJpbmcoc3RhdGU6IGJvb2xlYW4pOiBzdHJpbmcgfCBudWxsIHtcbiAgcmV0dXJuIHN0YXRlID8gJ3RydWUnIDogbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHB4KHZhbHVlOiB1bmtub3duKTogYCR7bnVtYmVyfXB4YCB7XG4gIHJldHVybiBpc051bWJlcih2YWx1ZSkgPyBgJHt2YWx1ZX1weGAgOiAnMHB4Jztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNzc1RyYW5zbGF0ZSh4OiBzdHJpbmcgfCAwLCB5OiBzdHJpbmcgfCAwKTogYHRyYW5zbGF0ZTNkKCR7c3RyaW5nIHwgMH0sICR7c3RyaW5nIHwgMH0sIDApYCB7XG4gIHJldHVybiBgdHJhbnNsYXRlM2QoJHt4fSwgJHt5fSwgMClgO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzYWJsZUNTU1RyYW5zaXRpb25zKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICBpZiAoZGlzYWJsZWQpIHtcbiAgICBhcHBseVN0eWxlcyhlbGVtZW50LCB7IHRyYW5zaXRpb246ICdub25lJyB9KTtcbiAgfSBlbHNlIHtcbiAgICBmb3JjZUxheW91dFJlZmxvdyhlbGVtZW50KTtcbiAgICBhcHBseVN0eWxlcyhlbGVtZW50LCB7IHRyYW5zaXRpb246IG51bGwgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcmNlTGF5b3V0UmVmbG93KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gIGVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0QXR0cmlidXRlKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBhdHRyaWJ1dGU6IHN0cmluZywgdmFsdWU/OiB1bmtub3duKSB7XG4gIGlmIChpc1N0cmluZyh2YWx1ZSkpIHtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTtcbiAgfSBlbHNlIHtcbiAgICBlbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZShhdHRyaWJ1dGUsICEhdmFsdWUpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZXNpemVPYnNlcnZlcihjYWxsYmFjazogUmVzaXplT2JzZXJ2ZXJDYWxsYmFjayk6IFJlc2l6ZU9ic2VydmVyIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gbmV3IFJlc2l6ZU9ic2VydmVyKGNhbGxiYWNrKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHsgb2JzZXJ2ZTogKCkgPT4gdm9pZCAwLCBkaXNjb25uZWN0OiAoKSA9PiB2b2lkIDAsIHVub2JzZXJ2ZTogKCkgPT4gdm9pZCAwIH07XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU11dGF0aW9uT2JzZXJ2ZXIob2JzZXJ2ZXI6IFN1YnNjcmliZXI8TXV0YXRpb25SZWNvcmQ+LCBjYWxsYmFjazogKG11dGF0aW9uczogTXV0YXRpb25SZWNvcmRbXSkgPT4gYm9vbGVhbik6IE11dGF0aW9uT2JzZXJ2ZXIge1xuICB0cnkge1xuICAgIHJldHVybiBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XG4gICAgICBpZiAoY2FsbGJhY2sobXV0YXRpb25zKSkge1xuICAgICAgICBvYnNlcnZlci5uZXh0KG11dGF0aW9uc1swXSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIHsgZGlzY29ubmVjdDogKCkgPT4gdm9pZCAwLCBvYnNlcnZlOiAoKSA9PiB2b2lkIDAsIHRha2VSZWNvcmRzOiAoKSA9PiBbXSB9O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb250YWluc0VsZW1lbnQocGFyZW50PzogRWxlbWVudCB8IG51bGwsIG90aGVyPzogRWxlbWVudCB8IG51bGwsIGluY2x1c2l2ZSA9IHRydWUpOiBib29sZWFuIHtcbiAgaWYgKCFwYXJlbnQgfHwgIW90aGVyKSByZXR1cm4gZmFsc2U7XG4gIGlmICghaW5jbHVzaXZlICYmIHBhcmVudCA9PT0gb3RoZXIpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIHBhcmVudC5jb250YWlucyhvdGhlcik7XG59XG4iXX0=
@@ -0,0 +1,171 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, Injectable, Directive, NgModule } from '@angular/core';
3
+ import * as i1 from 'ng2-charts';
4
+ import { ThemeService, BaseChartDirective, NgChartsModule, NgChartsConfiguration } from 'ng2-charts';
5
+ import { createMutationObserver, untilDestroyed } from '@odx/angular/utils';
6
+ import { DOCUMENT } from '@angular/common';
7
+ import { WindowRef } from '@odx/angular';
8
+ import { ThemingService } from '@odx/angular/theming';
9
+ import { distinctUntilChanged, Observable } from 'rxjs';
10
+
11
+ /* eslint-disable @typescript-eslint/no-explicit-any */
12
+ class ChartsThemeServise {
13
+ constructor() {
14
+ this.coreChartThemeService = inject(ThemeService);
15
+ this.document = inject(DOCUMENT);
16
+ this.windowRef = inject(WindowRef);
17
+ this.themingService = inject(ThemingService);
18
+ this.getOverrides = {
19
+ borderColor: this.windowRef.getCSSVariable('gray-200'),
20
+ backgroundColor: 'rgba(0,0,0,0)',
21
+ color: this.windowRef.getCSSVariable('blue-700'),
22
+ font: {
23
+ family: 'Pangea',
24
+ size: 13.333,
25
+ },
26
+ plugins: {
27
+ colors: { enabled: false },
28
+ tooltip: {
29
+ backgroundColor: this.windowRef.getCSSVariable('blue-800'),
30
+ cornerRadius: 3,
31
+ },
32
+ },
33
+ datasets: {
34
+ line: {
35
+ backgroundColor: (context) => `${this.seriesColors[context.datasetIndex]}66`,
36
+ borderColor: (context) => `${this.seriesColors[context.datasetIndex]}`,
37
+ pointBackgroundColor: (context) => `${this.seriesColors[context.datasetIndex]}`,
38
+ pointBorderColor: '#fff',
39
+ },
40
+ bar: {
41
+ backgroundColor: (context) => `${this.seriesColors[context.datasetIndex]}99`,
42
+ borderColor: (context) => `${this.seriesColors[context.datasetIndex]}`,
43
+ },
44
+ doughnut: {
45
+ backgroundColor: (context) => `${this.seriesColors[context.dataIndex]}`,
46
+ borderColor: this.windowRef.getCSSVariable('gray-200'),
47
+ },
48
+ polarArea: {
49
+ backgroundColor: (context) => `${this.seriesColors[context.dataIndex]}99`,
50
+ borderColor: (context) => `${this.seriesColors[context.dataIndex]}`,
51
+ },
52
+ get pie() {
53
+ return this.doughnut;
54
+ },
55
+ get bubble() {
56
+ return this.doughnut;
57
+ },
58
+ get scatter() {
59
+ return this.doughnut;
60
+ },
61
+ get area() {
62
+ return this.polarArea;
63
+ },
64
+ get radar() {
65
+ return this.line;
66
+ },
67
+ },
68
+ };
69
+ this.seriesColors = Object.values(this.windowRef.getCSSColorStyles('charts-series'));
70
+ this.observeThemeChanging$ = this.document.body.className.includes('sb-')
71
+ ? this.buildBodyObserver().pipe(distinctUntilChanged())
72
+ : this.themingService.theme$;
73
+ }
74
+ setTheme(chartConf) {
75
+ const type = (chartConf && chartConf['type']) || 'bar';
76
+ this.coreChartThemeService.setColorschemesOptions(this.themeColorsOverrides(type));
77
+ }
78
+ themeColorsOverrides(type) {
79
+ const scales = type === 'pie' || type === 'doughnut'
80
+ ? undefined
81
+ : {
82
+ x: {
83
+ ticks: { color: this.windowRef.getCSSVariable('blue-700') },
84
+ grid: { color: this.windowRef.getCSSVariable('gray-200') },
85
+ },
86
+ y: {
87
+ ticks: { color: this.windowRef.getCSSVariable('blue-700') },
88
+ grid: { color: this.windowRef.getCSSVariable('gray-200') },
89
+ },
90
+ };
91
+ return {
92
+ color: this.windowRef.getCSSVariable('blue-700'),
93
+ scales,
94
+ plugins: {
95
+ colors: {
96
+ forceOverride: true,
97
+ },
98
+ legend: {},
99
+ },
100
+ };
101
+ }
102
+ buildBodyObserver() {
103
+ return new Observable((observer) => {
104
+ const mutation = createMutationObserver(observer, (mutations) => mutations.some(({ type }) => type === 'attributes'));
105
+ mutation.observe(this.document.body, { attributes: true });
106
+ return () => mutation.disconnect();
107
+ });
108
+ }
109
+ }
110
+ ChartsThemeServise.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartsThemeServise, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
111
+ ChartsThemeServise.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartsThemeServise, providedIn: 'root' });
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartsThemeServise, decorators: [{
113
+ type: Injectable,
114
+ args: [{ providedIn: 'root' }]
115
+ }] });
116
+
117
+ class ChartThemeDirective extends BaseChartDirective {
118
+ constructor(element, ngzone, parentThemeService) {
119
+ super(element, ngzone, parentThemeService);
120
+ this.chartsThemeServise = inject(ChartsThemeServise);
121
+ this.takeUntilDestroyed = untilDestroyed();
122
+ this.chartsThemeServise.observeThemeChanging$
123
+ .pipe(this.takeUntilDestroyed())
124
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
125
+ .subscribe(() => { var _a; return this.chartsThemeServise.setTheme((_a = this.chart) === null || _a === void 0 ? void 0 : _a.config); });
126
+ }
127
+ }
128
+ ChartThemeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartThemeDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.ThemeService }], target: i0.ɵɵFactoryTarget.Directive });
129
+ ChartThemeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: ChartThemeDirective, isStandalone: true, selector: "canvas[odxChart]", usesInheritance: true, ngImport: i0 });
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartThemeDirective, decorators: [{
131
+ type: Directive,
132
+ args: [{
133
+ selector: 'canvas[odxChart]',
134
+ standalone: true,
135
+ }]
136
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.ThemeService }]; } });
137
+
138
+ class ChartThemeModule {
139
+ }
140
+ ChartThemeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartThemeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
141
+ ChartThemeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: ChartThemeModule, imports: [NgChartsModule, ChartThemeDirective], exports: [NgChartsModule, ChartThemeDirective] });
142
+ ChartThemeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartThemeModule, providers: [
143
+ {
144
+ provide: NgChartsConfiguration,
145
+ useFactory: (service) => ({ defaults: service.getOverrides, generateColors: false }),
146
+ deps: [ChartsThemeServise],
147
+ },
148
+ BaseChartDirective,
149
+ ], imports: [NgChartsModule, NgChartsModule] });
150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartThemeModule, decorators: [{
151
+ type: NgModule,
152
+ args: [{
153
+ imports: [NgChartsModule, ChartThemeDirective],
154
+ providers: [
155
+ {
156
+ provide: NgChartsConfiguration,
157
+ useFactory: (service) => ({ defaults: service.getOverrides, generateColors: false }),
158
+ deps: [ChartsThemeServise],
159
+ },
160
+ BaseChartDirective,
161
+ ],
162
+ exports: [NgChartsModule, ChartThemeDirective],
163
+ }]
164
+ }] });
165
+
166
+ /**
167
+ * Generated bundle index. Do not edit.
168
+ */
169
+
170
+ export { ChartThemeDirective, ChartThemeModule, ChartsThemeServise };
171
+ //# sourceMappingURL=odx-angular-charts-config.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"odx-angular-charts-config.mjs","sources":["../../../../libs/angular/charts-config/src/lib/charts-theme.service.ts","../../../../libs/angular/charts-config/src/lib/charts-theme.directive.ts","../../../../libs/angular/charts-config/src/lib/charts-theme.module.ts","../../../../libs/angular/charts-config/src/odx-angular-charts-config.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { DOCUMENT } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\nimport { WindowRef } from '@odx/angular';\nimport { Theme, ThemingService } from '@odx/angular/theming';\nimport { createMutationObserver } from '@odx/angular/utils';\nimport { ChartConfiguration, ChartType, Color } from 'chart.js';\nimport { ThemeService } from 'ng2-charts';\nimport { distinctUntilChanged, Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ChartsThemeServise {\n private readonly coreChartThemeService = inject(ThemeService);\n private readonly document = inject(DOCUMENT);\n private readonly windowRef = inject(WindowRef);\n private readonly themingService = inject(ThemingService);\n\n public getOverrides = {\n borderColor: this.windowRef.getCSSVariable('gray-200'),\n backgroundColor: 'rgba(0,0,0,0)',\n color: this.windowRef.getCSSVariable('blue-700'),\n font: {\n family: 'Pangea',\n size: 13.333,\n },\n plugins: {\n colors: { enabled: false },\n tooltip: {\n backgroundColor: this.windowRef.getCSSVariable('blue-800'),\n cornerRadius: 3,\n },\n },\n datasets: {\n line: {\n backgroundColor: (context: any) => `${this.seriesColors[context.datasetIndex]}66`,\n borderColor: (context: any) => `${this.seriesColors[context.datasetIndex]}`,\n pointBackgroundColor: (context: any) => `${this.seriesColors[context.datasetIndex]}`,\n pointBorderColor: '#fff',\n },\n bar: {\n backgroundColor: (context: any) => `${this.seriesColors[context.datasetIndex]}99`,\n borderColor: (context: any) => `${this.seriesColors[context.datasetIndex]}`,\n },\n doughnut: {\n backgroundColor: (context: any) => `${this.seriesColors[context.dataIndex]}`,\n borderColor: this.windowRef.getCSSVariable('gray-200'),\n },\n polarArea: {\n backgroundColor: (context: any) => `${this.seriesColors[context.dataIndex]}99`,\n borderColor: (context: any) => `${this.seriesColors[context.dataIndex]}`,\n },\n get pie(): Record<string, ((context: any) => Color) | Color> {\n return this.doughnut;\n },\n get bubble(): Record<string, ((context: any) => Color) | Color> {\n return this.doughnut;\n },\n get scatter(): Record<string, ((context: any) => Color) | Color> {\n return this.doughnut;\n },\n get area(): Record<string, ((context: any) => Color) | Color> {\n return this.polarArea;\n },\n get radar(): Record<string, ((context: any) => Color) | Color> {\n return this.line;\n },\n },\n };\n\n public seriesColors = Object.values(this.windowRef.getCSSColorStyles('charts-series'));\n public observeThemeChanging$: Observable<MutationRecord | Theme> = this.document.body.className.includes('sb-')\n ? this.buildBodyObserver().pipe(distinctUntilChanged())\n : this.themingService.theme$;\n\n public setTheme(chartConf: ChartConfiguration) {\n const type: ChartType = (chartConf && chartConf['type']) || 'bar';\n this.coreChartThemeService.setColorschemesOptions(this.themeColorsOverrides(type));\n }\n\n private themeColorsOverrides(type?: ChartType): ChartConfiguration['options'] {\n const scales =\n type === 'pie' || type === 'doughnut'\n ? undefined\n : {\n x: {\n ticks: { color: this.windowRef.getCSSVariable('blue-700') },\n grid: { color: this.windowRef.getCSSVariable('gray-200') },\n },\n y: {\n ticks: { color: this.windowRef.getCSSVariable('blue-700') },\n grid: { color: this.windowRef.getCSSVariable('gray-200') },\n },\n };\n return {\n color: this.windowRef.getCSSVariable('blue-700'),\n scales,\n plugins: {\n colors: {\n forceOverride: true,\n },\n legend: {},\n },\n };\n }\n\n private buildBodyObserver(): Observable<MutationRecord> {\n return new Observable((observer) => {\n const mutation: MutationObserver = createMutationObserver(observer, (mutations) => mutations.some(({ type }) => type === 'attributes'));\n mutation.observe(this.document.body, { attributes: true });\n return () => mutation.disconnect();\n });\n }\n}\n","import { Directive, ElementRef, inject, NgZone } from '@angular/core';\nimport { untilDestroyed } from '@odx/angular/utils';\nimport { BaseChartDirective, ThemeService } from 'ng2-charts';\nimport { ChartsThemeServise } from './charts-theme.service';\n\n@Directive({\n selector: 'canvas[odxChart]',\n standalone: true,\n})\nexport class ChartThemeDirective extends BaseChartDirective {\n private readonly chartsThemeServise = inject(ChartsThemeServise);\n private readonly takeUntilDestroyed = untilDestroyed();\n\n constructor(element: ElementRef, ngzone: NgZone, parentThemeService: ThemeService) {\n super(element, ngzone, parentThemeService);\n this.chartsThemeServise.observeThemeChanging$\n .pipe(this.takeUntilDestroyed())\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .subscribe(() => this.chartsThemeServise.setTheme(this.chart?.config as any));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BaseChartDirective, NgChartsConfiguration, NgChartsModule } from 'ng2-charts';\nimport { ChartThemeDirective } from './charts-theme.directive';\nimport { ChartsThemeServise } from './charts-theme.service';\n\n@NgModule({\n imports: [NgChartsModule, ChartThemeDirective],\n providers: [\n {\n provide: NgChartsConfiguration,\n useFactory: (service: ChartsThemeServise) => ({ defaults: service.getOverrides, generateColors: false }),\n deps: [ChartsThemeServise],\n },\n BaseChartDirective,\n ],\n exports: [NgChartsModule, ChartThemeDirective],\n})\nexport class ChartThemeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ import { __decorate } from 'tslib';
2
+ import * as i0 from '@angular/core';
3
+ import { forwardRef, Component, ChangeDetectionStrategy, ViewEncapsulation, EventEmitter, Output, Directive, NgModule } from '@angular/core';
4
+ import { ExpandableContainerDirective, EXPANDABLE_CONTAINER, ExpandableItemDirective } from '@odx/angular/cdk/expandable';
5
+ import { CSSComponent } from '@odx/angular/internal';
6
+ import { injectElement, getUniqueId } from '@odx/angular/utils';
7
+ import { CoreModule } from '@odx/angular';
8
+ import { trigger, transition, useAnimation } from '@angular/animations';
9
+ import { expand, collapse } from '@odx/angular/animations';
10
+ import * as i2 from '@odx/angular/cdk/a11y';
11
+ import { A11yModule } from '@odx/angular/cdk/a11y';
12
+ import { IconComponent } from '@odx/angular/components/icon';
13
+ import * as i1 from '@angular/common';
14
+
15
+ var RichListComponent_1;
16
+ let RichListComponent = RichListComponent_1 = class RichListComponent extends ExpandableContainerDirective {
17
+ constructor() {
18
+ super(...arguments);
19
+ this.multiple = true;
20
+ this.element = injectElement();
21
+ }
22
+ };
23
+ RichListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RichListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
24
+ RichListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: RichListComponent, isStandalone: true, selector: "odx-rich-list", providers: [{ provide: EXPANDABLE_CONTAINER, useExisting: forwardRef(() => RichListComponent_1) }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"odx-rich-list-item\"></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
25
+ RichListComponent = RichListComponent_1 = __decorate([
26
+ CSSComponent('rich-list')
27
+ ], RichListComponent);
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RichListComponent, decorators: [{
29
+ type: Component,
30
+ args: [{ selector: 'odx-rich-list', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [{ provide: EXPANDABLE_CONTAINER, useExisting: forwardRef(() => RichListComponent) }], template: "<ng-content select=\"odx-rich-list-item\"></ng-content>\n" }]
31
+ }] });
32
+
33
+ let RichListItemComponent = class RichListItemComponent extends ExpandableItemDirective {
34
+ constructor() {
35
+ super(...arguments);
36
+ this.element = injectElement();
37
+ this.id = getUniqueId('odx-rich-list-item');
38
+ this.expandedChange = new EventEmitter();
39
+ }
40
+ get titleId() {
41
+ return `${this.id}-title`;
42
+ }
43
+ get slotId() {
44
+ return `${this.id}-slot`;
45
+ }
46
+ onAnimationEnd() {
47
+ this.expandedChange.emit(this.expanded);
48
+ }
49
+ };
50
+ RichListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RichListItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
51
+ RichListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: RichListItemComponent, isStandalone: true, selector: "odx-rich-list-item", outputs: { expandedChange: "expandedChange" }, host: { properties: { "class.odx-rich-list-item--expanded": "expanded", "attr.id": "id" } }, usesInheritance: true, ngImport: i0, template: "<div\n class=\"odx-rich-list-item__panel\"\n [attr.id]=\"titleId\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-controls]=\"slotId\"\n (odxCdkInteractive)=\"toggle()\"\n>\n <odx-icon class=\"odx-rich-list-item__icon\" name=\"chevron-right\" iconSet=\"core\"></odx-icon>\n <ng-content select=\"odx-rich-list-item-title\"></ng-content>\n</div>\n<div\n class=\"odx-rich-list-item__slot\"\n [attr.id]=\"slotId\"\n [attr.aria-labelledby]=\"titleId\"\n @expandSlotAnimation\n (@expandSlotAnimation.done)=\"onAnimationEnd()\"\n *ngIf=\"expanded\"\n>\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.InteractiveDirective, selector: "[odxCdkInteractive]", outputs: ["odxCdkInteractive"] }, { kind: "ngmodule", type: CoreModule }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet"] }], animations: [trigger('expandSlotAnimation', [transition(':enter', [useAnimation(expand)]), transition(':leave', [useAnimation(collapse)])])], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
52
+ RichListItemComponent = __decorate([
53
+ CSSComponent('rich-list-item')
54
+ ], RichListItemComponent);
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RichListItemComponent, decorators: [{
56
+ type: Component,
57
+ args: [{ selector: 'odx-rich-list-item', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [A11yModule, CoreModule, IconComponent], host: {
58
+ '[class.odx-rich-list-item--expanded]': 'expanded',
59
+ '[attr.id]': 'id',
60
+ }, animations: [trigger('expandSlotAnimation', [transition(':enter', [useAnimation(expand)]), transition(':leave', [useAnimation(collapse)])])], template: "<div\n class=\"odx-rich-list-item__panel\"\n [attr.id]=\"titleId\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-controls]=\"slotId\"\n (odxCdkInteractive)=\"toggle()\"\n>\n <odx-icon class=\"odx-rich-list-item__icon\" name=\"chevron-right\" iconSet=\"core\"></odx-icon>\n <ng-content select=\"odx-rich-list-item-title\"></ng-content>\n</div>\n<div\n class=\"odx-rich-list-item__slot\"\n [attr.id]=\"slotId\"\n [attr.aria-labelledby]=\"titleId\"\n @expandSlotAnimation\n (@expandSlotAnimation.done)=\"onAnimationEnd()\"\n *ngIf=\"expanded\"\n>\n <ng-content></ng-content>\n</div>\n" }]
61
+ }], propDecorators: { expandedChange: [{
62
+ type: Output
63
+ }] } });
64
+
65
+ class RichListItemTitleDirective {
66
+ }
67
+ RichListItemTitleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RichListItemTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
68
+ RichListItemTitleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: RichListItemTitleDirective, isStandalone: true, selector: "odx-rich-list-item-title", ngImport: i0 });
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RichListItemTitleDirective, decorators: [{
70
+ type: Directive,
71
+ args: [{
72
+ standalone: true,
73
+ selector: 'odx-rich-list-item-title',
74
+ }]
75
+ }] });
76
+
77
+ const modules = [RichListComponent, RichListItemComponent, RichListItemTitleDirective];
78
+ class RichListModule {
79
+ }
80
+ RichListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RichListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
81
+ RichListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: RichListModule, imports: [RichListComponent, RichListItemComponent, RichListItemTitleDirective], exports: [CoreModule, RichListComponent, RichListItemComponent, RichListItemTitleDirective] });
82
+ RichListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RichListModule, imports: [RichListComponent, RichListItemComponent, CoreModule] });
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RichListModule, decorators: [{
84
+ type: NgModule,
85
+ args: [{
86
+ imports: modules,
87
+ exports: [CoreModule, ...modules],
88
+ }]
89
+ }] });
90
+
91
+ /**
92
+ * Generated bundle index. Do not edit.
93
+ */
94
+
95
+ export { RichListComponent, RichListItemComponent, RichListItemTitleDirective, RichListModule };
96
+ //# sourceMappingURL=odx-angular-components-rich-list.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"odx-angular-components-rich-list.mjs","sources":["../../../../libs/angular/components/rich-list/src/lib/rich-list.component.ts","../../../../libs/angular/components/rich-list/src/lib/rich-list.component.html","../../../../libs/angular/components/rich-list/src/lib/components/rich-list-item/rich-list-item.component.ts","../../../../libs/angular/components/rich-list/src/lib/components/rich-list-item/rich-list-item.component.html","../../../../libs/angular/components/rich-list/src/lib/directives/rich-list-item-title.ts","../../../../libs/angular/components/rich-list/src/lib/rich-list.module.ts","../../../../libs/angular/components/rich-list/src/odx-angular-components-rich-list.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, ViewEncapsulation } from '@angular/core';\nimport { ExpandableContainerDirective, EXPANDABLE_CONTAINER } from '@odx/angular/cdk/expandable';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n@CSSComponent('rich-list')\n@Component({\n selector: 'odx-rich-list',\n templateUrl: './rich-list.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: EXPANDABLE_CONTAINER, useExisting: forwardRef(() => RichListComponent) }],\n})\nexport class RichListComponent extends ExpandableContainerDirective {\n public override multiple = true;\n public readonly element = injectElement();\n}\n","<ng-content select=\"odx-rich-list-item\"></ng-content>\n","import { transition, trigger, useAnimation } from '@angular/animations';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Output, ViewEncapsulation } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { collapse, expand } from '@odx/angular/animations';\nimport { A11yModule } from '@odx/angular/cdk/a11y';\nimport { ExpandableItemDirective } from '@odx/angular/cdk/expandable';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { getUniqueId, injectElement } from '@odx/angular/utils';\n\n@CSSComponent('rich-list-item')\n@Component({\n selector: 'odx-rich-list-item',\n templateUrl: './rich-list-item.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [A11yModule, CoreModule, IconComponent],\n host: {\n '[class.odx-rich-list-item--expanded]': 'expanded',\n '[attr.id]': 'id',\n },\n animations: [trigger('expandSlotAnimation', [transition(':enter', [useAnimation(expand)]), transition(':leave', [useAnimation(collapse)])])],\n})\nexport class RichListItemComponent extends ExpandableItemDirective {\n public readonly element = injectElement();\n public override readonly id = getUniqueId('odx-rich-list-item');\n\n @Output()\n public expandedChange: EventEmitter<boolean> = new EventEmitter();\n\n public get titleId(): string {\n return `${this.id}-title`;\n }\n\n public get slotId(): string {\n return `${this.id}-slot`;\n }\n\n public onAnimationEnd(): void {\n this.expandedChange.emit(this.expanded);\n }\n}\n","<div\n class=\"odx-rich-list-item__panel\"\n [attr.id]=\"titleId\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-controls]=\"slotId\"\n (odxCdkInteractive)=\"toggle()\"\n>\n <odx-icon class=\"odx-rich-list-item__icon\" name=\"chevron-right\" iconSet=\"core\"></odx-icon>\n <ng-content select=\"odx-rich-list-item-title\"></ng-content>\n</div>\n<div\n class=\"odx-rich-list-item__slot\"\n [attr.id]=\"slotId\"\n [attr.aria-labelledby]=\"titleId\"\n @expandSlotAnimation\n (@expandSlotAnimation.done)=\"onAnimationEnd()\"\n *ngIf=\"expanded\"\n>\n <ng-content></ng-content>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: 'odx-rich-list-item-title',\n})\nexport class RichListItemTitleDirective {}\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { RichListComponent } from './rich-list.component';\nimport { RichListItemComponent } from './components';\nimport { RichListItemTitleDirective } from './directives';\n\nconst modules = [RichListComponent, RichListItemComponent, RichListItemTitleDirective];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class RichListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -126,6 +126,18 @@ function createResizeObserver(callback) {
126
126
  return { observe: () => void 0, disconnect: () => void 0, unobserve: () => void 0 };
127
127
  }
128
128
  }
129
+ function createMutationObserver(observer, callback) {
130
+ try {
131
+ return new MutationObserver((mutations) => {
132
+ if (callback(mutations)) {
133
+ observer.next(mutations[0]);
134
+ }
135
+ });
136
+ }
137
+ catch (error) {
138
+ return { disconnect: () => void 0, observe: () => void 0, takeRecords: () => [] };
139
+ }
140
+ }
129
141
  function containsElement(parent, other, inclusive = true) {
130
142
  if (!parent || !other)
131
143
  return false;
@@ -393,5 +405,5 @@ function debounce(func, delay, immediate = false) {
393
405
  * Generated bundle index. Do not edit.
394
406
  */
395
407
 
396
- export { Axis, EventManager, Position, Pure, Queue, Side, Transform, applyStyles, booleanToAttributeString, booleanToOptionalAttributeString, buildUrl, clearUniqueIdCache, containsElement, createConfigTokens, createResizeObserver, cssTranslate, debounce, deferFn, disableCSSTransitions, forceLayoutReflow, getAxis, getInjector, getOppositeSide, getSide, getUniqueId, hasChanged, injectElement, isBoolean, isComponent, isFunction, isNonEmptyString, isNumber, isPresent, isString, isTemplateRef, isViewContainer, pluckFromArray, provideConfig, px, reactiveAttributeBinding, reactiveClassBinding, setAttribute, untilDestroyed };
408
+ export { Axis, EventManager, Position, Pure, Queue, Side, Transform, applyStyles, booleanToAttributeString, booleanToOptionalAttributeString, buildUrl, clearUniqueIdCache, containsElement, createConfigTokens, createMutationObserver, createResizeObserver, cssTranslate, debounce, deferFn, disableCSSTransitions, forceLayoutReflow, getAxis, getInjector, getOppositeSide, getSide, getUniqueId, hasChanged, injectElement, isBoolean, isComponent, isFunction, isNonEmptyString, isNumber, isPresent, isString, isTemplateRef, isViewContainer, pluckFromArray, provideConfig, px, reactiveAttributeBinding, reactiveClassBinding, setAttribute, untilDestroyed };
397
409
  //# sourceMappingURL=odx-angular-utils.mjs.map