@bryntum/chart-angular-thin 7.2.3 → 7.3.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.
@@ -1,24 +1,25 @@
1
1
  /**
2
2
  * Angular Bryntum Chart Shared module
3
3
  */
4
+ import { CommonModule } from '@angular/common';
4
5
  import { NgModule } from '@angular/core';
5
6
  import { BryntumChartComponent } from './bryntum-chart.component';
6
7
  import * as i0 from "@angular/core";
7
8
  export class BryntumChartModule {
8
9
  }
9
10
  BryntumChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: BryntumChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- BryntumChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: BryntumChartModule, declarations: [BryntumChartComponent], exports: [BryntumChartComponent] });
11
- BryntumChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: BryntumChartModule, imports: [[]] });
11
+ BryntumChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: BryntumChartModule, declarations: [BryntumChartComponent], imports: [CommonModule], exports: [BryntumChartComponent] });
12
+ BryntumChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: BryntumChartModule, imports: [[CommonModule]] });
12
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: BryntumChartModule, decorators: [{
13
14
  type: NgModule,
14
15
  args: [{
15
16
  declarations: [
16
17
  BryntumChartComponent
17
18
  ],
18
- imports: [],
19
+ imports: [CommonModule],
19
20
  exports: [
20
21
  BryntumChartComponent
21
22
  ]
22
23
  }]
23
24
  }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY29tcG9uZW50L3NyYy9saWIvY2hhcnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztFQUVFO0FBQ0YsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFhbEUsTUFBTSxPQUFPLGtCQUFrQjs7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCLGlCQVJ2QixxQkFBcUIsYUFLckIscUJBQXFCO2dIQUdoQixrQkFBa0IsWUFOakIsRUFBRTsyRkFNSCxrQkFBa0I7a0JBWDlCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFHO3dCQUVYLHFCQUFxQjtxQkFDeEI7b0JBQ0QsT0FBTyxFQUFHLEVBQUU7b0JBQ1osT0FBTyxFQUFHO3dCQUVOLHFCQUFxQjtxQkFDeEI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiogQW5ndWxhciBCcnludHVtIENoYXJ0IFNoYXJlZCBtb2R1bGVcbiovXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCcnludHVtQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuL2JyeW50dW0tY2hhcnQuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnMgOiBbXG5cbiAgICAgICAgQnJ5bnR1bUNoYXJ0Q29tcG9uZW50XG4gICAgXSxcbiAgICBpbXBvcnRzIDogW10sXG4gICAgZXhwb3J0cyA6IFtcblxuICAgICAgICBCcnludHVtQ2hhcnRDb21wb25lbnRcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEJyeW50dW1DaGFydE1vZHVsZSB7IH1cbiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY29tcG9uZW50L3NyYy9saWIvY2hhcnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztFQUVFO0FBQ0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBYWxFLE1BQU0sT0FBTyxrQkFBa0I7OytHQUFsQixrQkFBa0I7Z0hBQWxCLGtCQUFrQixpQkFSdkIscUJBQXFCLGFBRWQsWUFBWSxhQUduQixxQkFBcUI7Z0hBR2hCLGtCQUFrQixZQU5qQixDQUFDLFlBQVksQ0FBQzsyRkFNZixrQkFBa0I7a0JBWDlCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFHO3dCQUVYLHFCQUFxQjtxQkFDeEI7b0JBQ0QsT0FBTyxFQUFHLENBQUMsWUFBWSxDQUFDO29CQUN4QixPQUFPLEVBQUc7d0JBRU4scUJBQXFCO3FCQUN4QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuKiBBbmd1bGFyIEJyeW50dW0gQ2hhcnQgU2hhcmVkIG1vZHVsZVxuKi9cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCcnludHVtQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuL2JyeW50dW0tY2hhcnQuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnMgOiBbXG5cbiAgICAgICAgQnJ5bnR1bUNoYXJ0Q29tcG9uZW50XG4gICAgXSxcbiAgICBpbXBvcnRzIDogW0NvbW1vbk1vZHVsZV0sXG4gICAgZXhwb3J0cyA6IFtcblxuICAgICAgICBCcnludHVtQ2hhcnRDb21wb25lbnRcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEJyeW50dW1DaGFydE1vZHVsZSB7IH1cbiJdfQ==
@@ -0,0 +1,82 @@
1
+ import { GlobalEvents } from '@bryntum/core-thin';
2
+ // Module-level registry of all open shadow roots that host Bryntum widgets.
3
+ // Populated lazily by collectOpenShadowRoots() the first time it is called, and
4
+ // kept up to date via registerShadowRoot / unregisterShadowRoot.
5
+ const openShadowRoots = new Set();
6
+ // Walks the DOM tree starting from `root` and collects every open shadow root found.
7
+ // Results are cached in openShadowRoots after the first traversal so subsequent calls
8
+ // are O(1). Recursive so nested shadow roots are also discovered.
9
+ function collectOpenShadowRoots(root = document) {
10
+ if (openShadowRoots.size > 0) {
11
+ return Array.from(openShadowRoots);
12
+ }
13
+ const roots = [];
14
+ Array.from(root.querySelectorAll('*')).forEach(el => {
15
+ if (el.shadowRoot) {
16
+ roots.push(el.shadowRoot);
17
+ roots.push(...collectOpenShadowRoots(el.shadowRoot));
18
+ }
19
+ });
20
+ roots.forEach(r => openShadowRoots.add(r));
21
+ return roots;
22
+ }
23
+ // Updates the href and data-bryntum-theme attribute of every theme <link> inside all
24
+ // registered shadow roots to mirror the new head link after a theme change.
25
+ function syncThemeToShadowRoots(headLink) {
26
+ var _a;
27
+ const href = headLink.href;
28
+ const themeAttr = (_a = headLink.getAttribute('data-bryntum-theme')) !== null && _a !== void 0 ? _a : '';
29
+ collectOpenShadowRoots().forEach(shadowRoot => {
30
+ Array.from(shadowRoot.querySelectorAll('link[data-bryntum-theme]')).forEach(link => {
31
+ link.setAttribute('data-bryntum-theme', themeAttr);
32
+ link.href = href;
33
+ });
34
+ });
35
+ }
36
+ // Adds a shadow root to the registry so it is included in theme sync operations.
37
+ // Called by BryntumThemeComboComponent.ngOnInit when it detects it is inside a shadow root.
38
+ export function registerShadowRoot(shadowRoot) {
39
+ openShadowRoots.add(shadowRoot);
40
+ }
41
+ // Removes a shadow root from the registry.
42
+ // Called by BryntumThemeComboComponent.ngOnDestroy to clean up on component teardown.
43
+ export function unregisterShadowRoot(shadowRoot) {
44
+ openShadowRoots.delete(shadowRoot);
45
+ }
46
+ // Injects a clone of each document.head theme <link> into every registered shadow root
47
+ // that does not already have one. This is required because CSS from document.head does
48
+ // not cascade into shadow DOM, so Bryntum theme styles would be absent without this.
49
+ // Safe to call multiple times — the presence check prevents duplicate injection.
50
+ export function initThemeInShadowRoots() {
51
+ const headThemeLinks = Array.from(document.head.querySelectorAll('link[data-bryntum-theme]'));
52
+ if (!headThemeLinks.length) {
53
+ return;
54
+ }
55
+ collectOpenShadowRoots().forEach(shadowRoot => {
56
+ if (shadowRoot.querySelector('link[data-bryntum-theme]')) {
57
+ return;
58
+ }
59
+ headThemeLinks.forEach(headLink => {
60
+ if (!headLink.href) {
61
+ return;
62
+ }
63
+ // Clone the head link to preserve all attributes, then ensure absolute href
64
+ const clone = headLink.cloneNode();
65
+ clone.href = headLink.href;
66
+ shadowRoot.appendChild(clone);
67
+ });
68
+ });
69
+ }
70
+ // Listens for Bryntum's internal theme-change event and keeps every shadow root's
71
+ // theme link in sync with the new document.head link. Fires after the old <link>s
72
+ // are removed and the new one is fully loaded in document.head.
73
+ // @ts-ignore - ion() is public but not present on GlobalEventsSingleton typings
74
+ GlobalEvents.ion({
75
+ theme() {
76
+ const link = document.head.querySelector('link[data-bryntum-theme]');
77
+ if (link === null || link === void 0 ? void 0 : link.href) {
78
+ syncThemeToShadowRoots(link);
79
+ }
80
+ }
81
+ });
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhZG93ZG9tLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbXBvbmVudC9zcmMvbGliL3NoYWRvd2RvbS5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWxELDRFQUE0RTtBQUM1RSxnRkFBZ0Y7QUFDaEYsaUVBQWlFO0FBQ2pFLE1BQU0sZUFBZSxHQUFHLElBQUksR0FBRyxFQUFjLENBQUM7QUFFOUMscUZBQXFGO0FBQ3JGLHNGQUFzRjtBQUN0RixrRUFBa0U7QUFDbEUsU0FBUyxzQkFBc0IsQ0FBQyxPQUErQixRQUFRO0lBQ25FLElBQUksZUFBZSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUU7UUFDMUIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBQ3RDO0lBQ0QsTUFBTSxLQUFLLEdBQWtCLEVBQUUsQ0FBQztJQUNoQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUNoRCxJQUFLLEVBQTZDLENBQUMsVUFBVSxFQUFFO1lBQzNELEtBQUssQ0FBQyxJQUFJLENBQUUsRUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ25DLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxzQkFBc0IsQ0FBRSxFQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztTQUNqRTtJQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQyxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDO0FBRUQscUZBQXFGO0FBQ3JGLDRFQUE0RTtBQUM1RSxTQUFTLHNCQUFzQixDQUFDLFFBQTBCOztJQUN0RCxNQUFNLElBQUksR0FBUyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQ2pDLE1BQU0sU0FBUyxHQUFJLE1BQUEsUUFBUSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxtQ0FBSSxFQUFFLENBQUM7SUFFckUsc0JBQXNCLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDMUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQWtCLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEcsSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVELGlGQUFpRjtBQUNqRiw0RkFBNEY7QUFDNUYsTUFBTSxVQUFVLGtCQUFrQixDQUFDLFVBQXVCO0lBQ3RELGVBQWUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUVELDJDQUEyQztBQUMzQyxzRkFBc0Y7QUFDdEYsTUFBTSxVQUFVLG9CQUFvQixDQUFDLFVBQXVCO0lBQ3hELGVBQWUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQUVELHVGQUF1RjtBQUN2Rix1RkFBdUY7QUFDdkYscUZBQXFGO0FBQ3JGLGlGQUFpRjtBQUNqRixNQUFNLFVBQVUsc0JBQXNCO0lBQ2xDLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBa0IsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO0lBRS9HLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFO1FBQ3hCLE9BQU87S0FDVjtJQUVELHNCQUFzQixFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQzFDLElBQUksVUFBVSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQyxFQUFFO1lBQ3RELE9BQU87U0FDVjtRQUVELGNBQWMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2hCLE9BQU87YUFDVjtZQUNELDRFQUE0RTtZQUM1RSxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsU0FBUyxFQUFxQixDQUFDO1lBQ3RELEtBQUssQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztZQUMzQixVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsa0ZBQWtGO0FBQ2xGLGtGQUFrRjtBQUNsRixnRUFBZ0U7QUFDaEUsZ0ZBQWdGO0FBQ2hGLFlBQVksQ0FBQyxHQUFHLENBQUM7SUFDYixLQUFLO1FBQ0QsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQWtCLDBCQUEwQixDQUFDLENBQUM7UUFDdEYsSUFBSSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsSUFBSSxFQUFFO1lBQ1osc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDaEM7SUFDTCxDQUFDO0NBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2xvYmFsRXZlbnRzIH0gZnJvbSAnQGJyeW50dW0vY29yZS10aGluJztcblxuLy8gTW9kdWxlLWxldmVsIHJlZ2lzdHJ5IG9mIGFsbCBvcGVuIHNoYWRvdyByb290cyB0aGF0IGhvc3QgQnJ5bnR1bSB3aWRnZXRzLlxuLy8gUG9wdWxhdGVkIGxhemlseSBieSBjb2xsZWN0T3BlblNoYWRvd1Jvb3RzKCkgdGhlIGZpcnN0IHRpbWUgaXQgaXMgY2FsbGVkLCBhbmRcbi8vIGtlcHQgdXAgdG8gZGF0ZSB2aWEgcmVnaXN0ZXJTaGFkb3dSb290IC8gdW5yZWdpc3RlclNoYWRvd1Jvb3QuXG5jb25zdCBvcGVuU2hhZG93Um9vdHMgPSBuZXcgU2V0PFNoYWRvd1Jvb3Q+KCk7XG5cbi8vIFdhbGtzIHRoZSBET00gdHJlZSBzdGFydGluZyBmcm9tIGByb290YCBhbmQgY29sbGVjdHMgZXZlcnkgb3BlbiBzaGFkb3cgcm9vdCBmb3VuZC5cbi8vIFJlc3VsdHMgYXJlIGNhY2hlZCBpbiBvcGVuU2hhZG93Um9vdHMgYWZ0ZXIgdGhlIGZpcnN0IHRyYXZlcnNhbCBzbyBzdWJzZXF1ZW50IGNhbGxzXG4vLyBhcmUgTygxKS4gUmVjdXJzaXZlIHNvIG5lc3RlZCBzaGFkb3cgcm9vdHMgYXJlIGFsc28gZGlzY292ZXJlZC5cbmZ1bmN0aW9uIGNvbGxlY3RPcGVuU2hhZG93Um9vdHMocm9vdCA6IERvY3VtZW50IHwgU2hhZG93Um9vdCA9IGRvY3VtZW50KSA6IFNoYWRvd1Jvb3RbXSB7XG4gICAgaWYgKG9wZW5TaGFkb3dSb290cy5zaXplID4gMCkge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShvcGVuU2hhZG93Um9vdHMpO1xuICAgIH1cbiAgICBjb25zdCByb290cyA6IFNoYWRvd1Jvb3RbXSA9IFtdO1xuICAgIEFycmF5LmZyb20ocm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcqJykpLmZvckVhY2goZWwgPT4ge1xuICAgICAgICBpZiAoKGVsIGFzIEVsZW1lbnQgJiB7IHNoYWRvd1Jvb3Q/IDogU2hhZG93Um9vdCB9KS5zaGFkb3dSb290KSB7XG4gICAgICAgICAgICByb290cy5wdXNoKChlbCBhcyBhbnkpLnNoYWRvd1Jvb3QpO1xuICAgICAgICAgICAgcm9vdHMucHVzaCguLi5jb2xsZWN0T3BlblNoYWRvd1Jvb3RzKChlbCBhcyBhbnkpLnNoYWRvd1Jvb3QpKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJvb3RzLmZvckVhY2gociA9PiBvcGVuU2hhZG93Um9vdHMuYWRkKHIpKTtcbiAgICByZXR1cm4gcm9vdHM7XG59XG5cbi8vIFVwZGF0ZXMgdGhlIGhyZWYgYW5kIGRhdGEtYnJ5bnR1bS10aGVtZSBhdHRyaWJ1dGUgb2YgZXZlcnkgdGhlbWUgPGxpbms+IGluc2lkZSBhbGxcbi8vIHJlZ2lzdGVyZWQgc2hhZG93IHJvb3RzIHRvIG1pcnJvciB0aGUgbmV3IGhlYWQgbGluayBhZnRlciBhIHRoZW1lIGNoYW5nZS5cbmZ1bmN0aW9uIHN5bmNUaGVtZVRvU2hhZG93Um9vdHMoaGVhZExpbmsgOiBIVE1MTGlua0VsZW1lbnQpIDogdm9pZCB7XG4gICAgY29uc3QgaHJlZiAgICAgICA9IGhlYWRMaW5rLmhyZWY7XG4gICAgY29uc3QgdGhlbWVBdHRyICA9IGhlYWRMaW5rLmdldEF0dHJpYnV0ZSgnZGF0YS1icnludHVtLXRoZW1lJykgPz8gJyc7XG5cbiAgICBjb2xsZWN0T3BlblNoYWRvd1Jvb3RzKCkuZm9yRWFjaChzaGFkb3dSb290ID0+IHtcbiAgICAgICAgQXJyYXkuZnJvbShzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTExpbmtFbGVtZW50PignbGlua1tkYXRhLWJyeW50dW0tdGhlbWVdJykpLmZvckVhY2gobGluayA9PiB7XG4gICAgICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZSgnZGF0YS1icnludHVtLXRoZW1lJywgdGhlbWVBdHRyKTtcbiAgICAgICAgICAgIGxpbmsuaHJlZiA9IGhyZWY7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxuXG4vLyBBZGRzIGEgc2hhZG93IHJvb3QgdG8gdGhlIHJlZ2lzdHJ5IHNvIGl0IGlzIGluY2x1ZGVkIGluIHRoZW1lIHN5bmMgb3BlcmF0aW9ucy5cbi8vIENhbGxlZCBieSBCcnludHVtVGhlbWVDb21ib0NvbXBvbmVudC5uZ09uSW5pdCB3aGVuIGl0IGRldGVjdHMgaXQgaXMgaW5zaWRlIGEgc2hhZG93IHJvb3QuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJTaGFkb3dSb290KHNoYWRvd1Jvb3QgOiBTaGFkb3dSb290KSA6IHZvaWQge1xuICAgIG9wZW5TaGFkb3dSb290cy5hZGQoc2hhZG93Um9vdCk7XG59XG5cbi8vIFJlbW92ZXMgYSBzaGFkb3cgcm9vdCBmcm9tIHRoZSByZWdpc3RyeS5cbi8vIENhbGxlZCBieSBCcnludHVtVGhlbWVDb21ib0NvbXBvbmVudC5uZ09uRGVzdHJveSB0byBjbGVhbiB1cCBvbiBjb21wb25lbnQgdGVhcmRvd24uXG5leHBvcnQgZnVuY3Rpb24gdW5yZWdpc3RlclNoYWRvd1Jvb3Qoc2hhZG93Um9vdCA6IFNoYWRvd1Jvb3QpIDogdm9pZCB7XG4gICAgb3BlblNoYWRvd1Jvb3RzLmRlbGV0ZShzaGFkb3dSb290KTtcbn1cblxuLy8gSW5qZWN0cyBhIGNsb25lIG9mIGVhY2ggZG9jdW1lbnQuaGVhZCB0aGVtZSA8bGluaz4gaW50byBldmVyeSByZWdpc3RlcmVkIHNoYWRvdyByb290XG4vLyB0aGF0IGRvZXMgbm90IGFscmVhZHkgaGF2ZSBvbmUuIFRoaXMgaXMgcmVxdWlyZWQgYmVjYXVzZSBDU1MgZnJvbSBkb2N1bWVudC5oZWFkIGRvZXNcbi8vIG5vdCBjYXNjYWRlIGludG8gc2hhZG93IERPTSwgc28gQnJ5bnR1bSB0aGVtZSBzdHlsZXMgd291bGQgYmUgYWJzZW50IHdpdGhvdXQgdGhpcy5cbi8vIFNhZmUgdG8gY2FsbCBtdWx0aXBsZSB0aW1lcyDigJQgdGhlIHByZXNlbmNlIGNoZWNrIHByZXZlbnRzIGR1cGxpY2F0ZSBpbmplY3Rpb24uXG5leHBvcnQgZnVuY3Rpb24gaW5pdFRoZW1lSW5TaGFkb3dSb290cygpIDogdm9pZCB7XG4gICAgY29uc3QgaGVhZFRoZW1lTGlua3MgPSBBcnJheS5mcm9tKGRvY3VtZW50LmhlYWQucXVlcnlTZWxlY3RvckFsbDxIVE1MTGlua0VsZW1lbnQ+KCdsaW5rW2RhdGEtYnJ5bnR1bS10aGVtZV0nKSk7XG5cbiAgICBpZiAoIWhlYWRUaGVtZUxpbmtzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29sbGVjdE9wZW5TaGFkb3dSb290cygpLmZvckVhY2goc2hhZG93Um9vdCA9PiB7XG4gICAgICAgIGlmIChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2xpbmtbZGF0YS1icnludHVtLXRoZW1lXScpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBoZWFkVGhlbWVMaW5rcy5mb3JFYWNoKGhlYWRMaW5rID0+IHtcbiAgICAgICAgICAgIGlmICghaGVhZExpbmsuaHJlZikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIENsb25lIHRoZSBoZWFkIGxpbmsgdG8gcHJlc2VydmUgYWxsIGF0dHJpYnV0ZXMsIHRoZW4gZW5zdXJlIGFic29sdXRlIGhyZWZcbiAgICAgICAgICAgIGNvbnN0IGNsb25lID0gaGVhZExpbmsuY2xvbmVOb2RlKCkgYXMgSFRNTExpbmtFbGVtZW50O1xuICAgICAgICAgICAgY2xvbmUuaHJlZiA9IGhlYWRMaW5rLmhyZWY7XG4gICAgICAgICAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGNsb25lKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59XG5cbi8vIExpc3RlbnMgZm9yIEJyeW50dW0ncyBpbnRlcm5hbCB0aGVtZS1jaGFuZ2UgZXZlbnQgYW5kIGtlZXBzIGV2ZXJ5IHNoYWRvdyByb290J3Ncbi8vIHRoZW1lIGxpbmsgaW4gc3luYyB3aXRoIHRoZSBuZXcgZG9jdW1lbnQuaGVhZCBsaW5rLiBGaXJlcyBhZnRlciB0aGUgb2xkIDxsaW5rPnNcbi8vIGFyZSByZW1vdmVkIGFuZCB0aGUgbmV3IG9uZSBpcyBmdWxseSBsb2FkZWQgaW4gZG9jdW1lbnQuaGVhZC5cbi8vIEB0cy1pZ25vcmUgLSBpb24oKSBpcyBwdWJsaWMgYnV0IG5vdCBwcmVzZW50IG9uIEdsb2JhbEV2ZW50c1NpbmdsZXRvbiB0eXBpbmdzXG5HbG9iYWxFdmVudHMuaW9uKHtcbiAgICB0aGVtZSgpIDogdm9pZCB7XG4gICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5oZWFkLnF1ZXJ5U2VsZWN0b3I8SFRNTExpbmtFbGVtZW50PignbGlua1tkYXRhLWJyeW50dW0tdGhlbWVdJyk7XG4gICAgICAgIGlmIChsaW5rPy5ocmVmKSB7XG4gICAgICAgICAgICBzeW5jVGhlbWVUb1NoYWRvd1Jvb3RzKGxpbmspO1xuICAgICAgICB9XG4gICAgfVxufSk7XG4iXX0=
@@ -1,6 +1,7 @@
1
+ import { CommonModule } from '@angular/common';
1
2
  import * as i0 from '@angular/core';
2
3
  import { isDevMode, EventEmitter, Component, Input, Output, NgModule } from '@angular/core';
3
- import { Widget } from '@bryntum/core-thin';
4
+ import { GlobalEvents, Widget } from '@bryntum/core-thin';
4
5
  import { Chart } from '@bryntum/chart-thin';
5
6
 
6
7
  class WrapperHelper {
@@ -76,6 +77,87 @@ class WrapperHelper {
76
77
  }
77
78
  }
78
79
 
80
+ // Module-level registry of all open shadow roots that host Bryntum widgets.
81
+ // Populated lazily by collectOpenShadowRoots() the first time it is called, and
82
+ // kept up to date via registerShadowRoot / unregisterShadowRoot.
83
+ const openShadowRoots = new Set();
84
+ // Walks the DOM tree starting from `root` and collects every open shadow root found.
85
+ // Results are cached in openShadowRoots after the first traversal so subsequent calls
86
+ // are O(1). Recursive so nested shadow roots are also discovered.
87
+ function collectOpenShadowRoots(root = document) {
88
+ if (openShadowRoots.size > 0) {
89
+ return Array.from(openShadowRoots);
90
+ }
91
+ const roots = [];
92
+ Array.from(root.querySelectorAll('*')).forEach(el => {
93
+ if (el.shadowRoot) {
94
+ roots.push(el.shadowRoot);
95
+ roots.push(...collectOpenShadowRoots(el.shadowRoot));
96
+ }
97
+ });
98
+ roots.forEach(r => openShadowRoots.add(r));
99
+ return roots;
100
+ }
101
+ // Updates the href and data-bryntum-theme attribute of every theme <link> inside all
102
+ // registered shadow roots to mirror the new head link after a theme change.
103
+ function syncThemeToShadowRoots(headLink) {
104
+ var _a;
105
+ const href = headLink.href;
106
+ const themeAttr = (_a = headLink.getAttribute('data-bryntum-theme')) !== null && _a !== void 0 ? _a : '';
107
+ collectOpenShadowRoots().forEach(shadowRoot => {
108
+ Array.from(shadowRoot.querySelectorAll('link[data-bryntum-theme]')).forEach(link => {
109
+ link.setAttribute('data-bryntum-theme', themeAttr);
110
+ link.href = href;
111
+ });
112
+ });
113
+ }
114
+ // Adds a shadow root to the registry so it is included in theme sync operations.
115
+ // Called by BryntumThemeComboComponent.ngOnInit when it detects it is inside a shadow root.
116
+ function registerShadowRoot(shadowRoot) {
117
+ openShadowRoots.add(shadowRoot);
118
+ }
119
+ // Removes a shadow root from the registry.
120
+ // Called by BryntumThemeComboComponent.ngOnDestroy to clean up on component teardown.
121
+ function unregisterShadowRoot(shadowRoot) {
122
+ openShadowRoots.delete(shadowRoot);
123
+ }
124
+ // Injects a clone of each document.head theme <link> into every registered shadow root
125
+ // that does not already have one. This is required because CSS from document.head does
126
+ // not cascade into shadow DOM, so Bryntum theme styles would be absent without this.
127
+ // Safe to call multiple times — the presence check prevents duplicate injection.
128
+ function initThemeInShadowRoots() {
129
+ const headThemeLinks = Array.from(document.head.querySelectorAll('link[data-bryntum-theme]'));
130
+ if (!headThemeLinks.length) {
131
+ return;
132
+ }
133
+ collectOpenShadowRoots().forEach(shadowRoot => {
134
+ if (shadowRoot.querySelector('link[data-bryntum-theme]')) {
135
+ return;
136
+ }
137
+ headThemeLinks.forEach(headLink => {
138
+ if (!headLink.href) {
139
+ return;
140
+ }
141
+ // Clone the head link to preserve all attributes, then ensure absolute href
142
+ const clone = headLink.cloneNode();
143
+ clone.href = headLink.href;
144
+ shadowRoot.appendChild(clone);
145
+ });
146
+ });
147
+ }
148
+ // Listens for Bryntum's internal theme-change event and keeps every shadow root's
149
+ // theme link in sync with the new document.head link. Fires after the old <link>s
150
+ // are removed and the new one is fully loaded in document.head.
151
+ // @ts-ignore - ion() is public but not present on GlobalEventsSingleton typings
152
+ GlobalEvents.ion({
153
+ theme() {
154
+ const link = document.head.querySelector('link[data-bryntum-theme]');
155
+ if (link === null || link === void 0 ? void 0 : link.href) {
156
+ syncThemeToShadowRoots(link);
157
+ }
158
+ }
159
+ });
160
+
79
161
  /* eslint-disable @typescript-eslint/no-unused-vars */
80
162
  class BryntumChartComponent {
81
163
  constructor(element) {
@@ -116,8 +198,7 @@ class BryntumChartComponent {
116
198
  this.onBeforeShow = new EventEmitter();
117
199
  /**
118
200
  * Fires when any other event is fired from the object.
119
- * ...
120
- * [View online docs...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#event-catchAll)
201
+ * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#event-catchAll)
121
202
  * @param {object} event Event object
122
203
  * @param {{[key: string]: any, type: string}} event.event The Object that contains event details
123
204
  * @param {string} event.event.type The type of the event which is caught by the listener
@@ -175,8 +256,7 @@ class BryntumChartComponent {
175
256
  /**
176
257
  * Triggered when a widget which had been in a non-visible state for any reason
177
258
  * achieves visibility.
178
- * ...
179
- * [View online docs...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#event-paint)
259
+ * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#event-paint)
180
260
  * @param {object} event Event object
181
261
  * @param {Core.widget.Widget} event.source The widget being painted.
182
262
  * @param {boolean} event.firstPaint `true` if this is the first paint.
@@ -255,9 +335,61 @@ class BryntumChartComponent {
255
335
  else {
256
336
  WrapperHelper.devWarningContainer(instanceName, containerParam);
257
337
  }
338
+ // In shadow DOM (e.g. Angular ViewEncapsulation.ShadowDom), theme CSS from document.head
339
+ // does not cascade into the shadow root. Inject a matching <link> so Bryntum's CSS check
340
+ // finds the theme. The @font-face rules from component styles are also extracted to
341
+ // document scope so document.fonts detects them (shadow-root @font-face is not reliably
342
+ // included in document.fonts across all browsers).
343
+ const shadowRoot = elementRef.nativeElement.getRootNode();
344
+ if (shadowRoot instanceof ShadowRoot) {
345
+ initThemeInShadowRoots();
346
+ BryntumChartComponent.ensureFontsInDocument(shadowRoot);
347
+ }
258
348
  // @ts-ignore
259
349
  me.instance = instanceName === 'Widget' ? Widget.create(bryntumConfig) : new instanceClass(bryntumConfig);
260
350
  }
351
+ /**
352
+ * Extracts all @font-face declarations from a shadow root's stylesheets and adds them to
353
+ * document.head as a single <style> element. This is needed because @font-face rules inside
354
+ * a shadow root are not reliably included in document.fonts across all browsers, causing
355
+ * Bryntum's CSS compatibility check to incorrectly report missing fonts.
356
+ * Safe to call multiple times — the extraction runs only once per page.
357
+ */
358
+ static ensureFontsInDocument(shadowRoot) {
359
+ var _a;
360
+ if (document.querySelector('#b-shadow-root-fonts')) {
361
+ return;
362
+ }
363
+ const fontFaceRules = [];
364
+ const extractFromSheet = (sheet) => {
365
+ try {
366
+ const rules = sheet.cssRules;
367
+ for (let i = 0; i < rules.length; i++) {
368
+ if (rules[i].type === CSSRule.FONT_FACE_RULE) {
369
+ fontFaceRules.push(rules[i].cssText);
370
+ }
371
+ }
372
+ }
373
+ catch (_e) {
374
+ // Cross-origin access may throw; silently skip
375
+ }
376
+ };
377
+ // adoptedStyleSheets (Angular 14+ / modern browsers)
378
+ const adoptedSheets = (_a = shadowRoot.adoptedStyleSheets) !== null && _a !== void 0 ? _a : [];
379
+ adoptedSheets.forEach(sheet => extractFromSheet(sheet));
380
+ // <style> elements (older Angular or fallback)
381
+ shadowRoot.querySelectorAll('style').forEach(el => {
382
+ if (el.sheet) {
383
+ extractFromSheet(el.sheet);
384
+ }
385
+ });
386
+ if (fontFaceRules.length > 0) {
387
+ const style = document.createElement('style');
388
+ style.id = 'b-shadow-root-fonts';
389
+ style.textContent = fontFaceRules.join('\n');
390
+ document.head.appendChild(style);
391
+ }
392
+ }
261
393
  /**
262
394
  * Watch for changes
263
395
  * @param changes
@@ -377,6 +509,7 @@ BryntumChartComponent.bryntumConfigs = BryntumChartComponent.bryntumFeatureNames
377
509
  'label',
378
510
  'labelPosition',
379
511
  'labels',
512
+ 'labelWidth',
380
513
  'layout',
381
514
  'layoutStyle',
382
515
  'lazyItems',
@@ -505,7 +638,6 @@ BryntumChartComponent.bryntumConfigsOnly = [
505
638
  ];
506
639
  BryntumChartComponent.bryntumProps = BryntumChartComponent.bryntumFeatureNames.concat([
507
640
  'alignSelf',
508
- 'anchorSize',
509
641
  'animate',
510
642
  'animationDuration',
511
643
  'appendTo',
@@ -531,9 +663,7 @@ BryntumChartComponent.bryntumProps = BryntumChartComponent.bryntumFeatureNames.c
531
663
  'field',
532
664
  'fillColorField',
533
665
  'flex',
534
- 'focusVisible',
535
666
  'gridColor',
536
- 'hasChanges',
537
667
  'height',
538
668
  'hidden',
539
669
  'html',
@@ -542,13 +672,12 @@ BryntumChartComponent.bryntumProps = BryntumChartComponent.bryntumFeatureNames.c
542
672
  'insertBefore',
543
673
  'insertFirst',
544
674
  'interactive',
545
- 'isSettingValues',
546
- 'isValid',
547
675
  'items',
548
676
  'keyMap',
549
677
  'label',
550
678
  'labelPosition',
551
679
  'labels',
680
+ 'labelWidth',
552
681
  'layout',
553
682
  'layoutStyle',
554
683
  'legendPosition',
@@ -599,7 +728,7 @@ BryntumChartComponent.bryntumProps = BryntumChartComponent.bryntumFeatureNames.c
599
728
  'y'
600
729
  ]);
601
730
  BryntumChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: BryntumChartComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
602
- BryntumChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.0", type: BryntumChartComponent, selector: "bryntum-chart", inputs: { adopt: "adopt", align: "align", anchor: "anchor", ariaDescription: "ariaDescription", ariaLabel: "ariaLabel", autoUpdateRecord: "autoUpdateRecord", border: "border", bubbleEvents: "bubbleEvents", centered: "centered", color: "color", config: "config", constrainTo: "constrainTo", contentElementCls: "contentElementCls", dataField: "dataField", defaultBindProperty: "defaultBindProperty", defaultFocus: "defaultFocus", defaults: "defaults", detectCSSCompatibilityIssues: "detectCSSCompatibilityIssues", dock: "dock", draggable: "draggable", elementAttributes: "elementAttributes", floating: "floating", hideAnimation: "hideAnimation", hideWhenEmpty: "hideWhenEmpty", htmlCls: "htmlCls", ignoreParentReadOnly: "ignoreParentReadOnly", itemCls: "itemCls", lazyItems: "lazyItems", listeners: "listeners", localeClass: "localeClass", localizable: "localizable", localizableProperties: "localizableProperties", maskDefaults: "maskDefaults", masked: "masked", monitorResize: "monitorResize", namedItems: "namedItems", positioned: "positioned", preventTooltipOnTouch: "preventTooltipOnTouch", relayStoreEvents: "relayStoreEvents", ripple: "ripple", rootElement: "rootElement", scrollAction: "scrollAction", showAnimation: "showAnimation", showTooltipWhenDisabled: "showTooltipWhenDisabled", tab: "tab", tabBarItems: "tabBarItems", tag: "tag", textAlign: "textAlign", textContent: "textContent", type: "type", ui: "ui", weight: "weight", alignSelf: "alignSelf", animate: "animate", animationDuration: "animationDuration", appendTo: "appendTo", axisColor: "axisColor", axisLabelColor: "axisLabelColor", background: "background", barDirection: "barDirection", barWidth: "barWidth", bubbleScaleFactor: "bubbleScaleFactor", callOnFunctions: "callOnFunctions", catchEventHandlerExceptions: "catchEventHandlerExceptions", chartPadding: "chartPadding", chartTooltip: "chartTooltip", chartType: "chartType", cls: "cls", column: "column", content: "content", data: "data", dataPointShape: "dataPointShape", dataset: "dataset", disabled: "disabled", extraData: "extraData", field: "field", fillColorField: "fillColorField", flex: "flex", gridColor: "gridColor", height: "height", hidden: "hidden", html: "html", id: "id", inputFieldAlign: "inputFieldAlign", insertBefore: "insertBefore", insertFirst: "insertFirst", interactive: "interactive", items: "items", keyMap: "keyMap", label: "label", labelPosition: "labelPosition", labels: "labels", layout: "layout", layoutStyle: "layoutStyle", legendPosition: "legendPosition", legendScale: "legendScale", margin: "margin", max: "max", maxHeight: "maxHeight", maximizeOnMobile: "maximizeOnMobile", maxTickLabelRotation: "maxTickLabelRotation", maxWidth: "maxWidth", min: "min", minHeight: "minHeight", minTickLabelRotation: "minTickLabelRotation", minWidth: "minWidth", pointSize: "pointSize", readOnly: "readOnly", record: "record", rendition: "rendition", role: "role", rtl: "rtl", scrollable: "scrollable", series: "series", seriesLineDash: "seriesLineDash", seriesLineOpacity: "seriesLineOpacity", seriesLineThickness: "seriesLineThickness", showControls: "showControls", showLegend: "showLegend", showPoints: "showPoints", showSubtitle: "showSubtitle", showTicks: "showTicks", showTitle: "showTitle", showTooltips: "showTooltips", span: "span", strictRecordMapping: "strictRecordMapping", subtitle: "subtitle", subtitleFont: "subtitleFont", subtitlePadding: "subtitlePadding", tickFont: "tickFont", tickMarkColor: "tickMarkColor", title: "title", titleFont: "titleFont", titlePadding: "titlePadding", tooltip: "tooltip", width: "width", x: "x", y: "y", anchorSize: "anchorSize", focusVisible: "focusVisible", hasChanges: "hasChanges", isSettingValues: "isSettingValues", isValid: "isValid", parent: "parent", values: "values" }, outputs: { onBeforeDestroy: "onBeforeDestroy", onBeforeHide: "onBeforeHide", onBeforeSetRecord: "onBeforeSetRecord", onBeforeShow: "onBeforeShow", onCatchAll: "onCatchAll", onDestroy: "onDestroy", onDirtyStateChange: "onDirtyStateChange", onElementCreated: "onElementCreated", onFocusIn: "onFocusIn", onFocusOut: "onFocusOut", onHide: "onHide", onPaint: "onPaint", onReadOnly: "onReadOnly", onRecompose: "onRecompose", onResize: "onResize", onShow: "onShow" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
731
+ BryntumChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.0", type: BryntumChartComponent, selector: "bryntum-chart", inputs: { adopt: "adopt", align: "align", anchor: "anchor", ariaDescription: "ariaDescription", ariaLabel: "ariaLabel", autoUpdateRecord: "autoUpdateRecord", border: "border", bubbleEvents: "bubbleEvents", centered: "centered", color: "color", config: "config", constrainTo: "constrainTo", contentElementCls: "contentElementCls", dataField: "dataField", defaultBindProperty: "defaultBindProperty", defaultFocus: "defaultFocus", defaults: "defaults", detectCSSCompatibilityIssues: "detectCSSCompatibilityIssues", dock: "dock", draggable: "draggable", elementAttributes: "elementAttributes", floating: "floating", hideAnimation: "hideAnimation", hideWhenEmpty: "hideWhenEmpty", htmlCls: "htmlCls", ignoreParentReadOnly: "ignoreParentReadOnly", itemCls: "itemCls", lazyItems: "lazyItems", listeners: "listeners", localeClass: "localeClass", localizable: "localizable", localizableProperties: "localizableProperties", maskDefaults: "maskDefaults", masked: "masked", monitorResize: "monitorResize", namedItems: "namedItems", positioned: "positioned", preventTooltipOnTouch: "preventTooltipOnTouch", relayStoreEvents: "relayStoreEvents", ripple: "ripple", rootElement: "rootElement", scrollAction: "scrollAction", showAnimation: "showAnimation", showTooltipWhenDisabled: "showTooltipWhenDisabled", tab: "tab", tabBarItems: "tabBarItems", tag: "tag", textAlign: "textAlign", textContent: "textContent", type: "type", ui: "ui", weight: "weight", alignSelf: "alignSelf", animate: "animate", animationDuration: "animationDuration", appendTo: "appendTo", axisColor: "axisColor", axisLabelColor: "axisLabelColor", background: "background", barDirection: "barDirection", barWidth: "barWidth", bubbleScaleFactor: "bubbleScaleFactor", callOnFunctions: "callOnFunctions", catchEventHandlerExceptions: "catchEventHandlerExceptions", chartPadding: "chartPadding", chartTooltip: "chartTooltip", chartType: "chartType", cls: "cls", column: "column", content: "content", data: "data", dataPointShape: "dataPointShape", dataset: "dataset", disabled: "disabled", extraData: "extraData", field: "field", fillColorField: "fillColorField", flex: "flex", gridColor: "gridColor", height: "height", hidden: "hidden", html: "html", id: "id", inputFieldAlign: "inputFieldAlign", insertBefore: "insertBefore", insertFirst: "insertFirst", interactive: "interactive", items: "items", keyMap: "keyMap", label: "label", labelPosition: "labelPosition", labels: "labels", labelWidth: "labelWidth", layout: "layout", layoutStyle: "layoutStyle", legendPosition: "legendPosition", legendScale: "legendScale", margin: "margin", max: "max", maxHeight: "maxHeight", maximizeOnMobile: "maximizeOnMobile", maxTickLabelRotation: "maxTickLabelRotation", maxWidth: "maxWidth", min: "min", minHeight: "minHeight", minTickLabelRotation: "minTickLabelRotation", minWidth: "minWidth", pointSize: "pointSize", readOnly: "readOnly", record: "record", rendition: "rendition", role: "role", rtl: "rtl", scrollable: "scrollable", series: "series", seriesLineDash: "seriesLineDash", seriesLineOpacity: "seriesLineOpacity", seriesLineThickness: "seriesLineThickness", showControls: "showControls", showLegend: "showLegend", showPoints: "showPoints", showSubtitle: "showSubtitle", showTicks: "showTicks", showTitle: "showTitle", showTooltips: "showTooltips", span: "span", strictRecordMapping: "strictRecordMapping", subtitle: "subtitle", subtitleFont: "subtitleFont", subtitlePadding: "subtitlePadding", tickFont: "tickFont", tickMarkColor: "tickMarkColor", title: "title", titleFont: "titleFont", titlePadding: "titlePadding", tooltip: "tooltip", width: "width", x: "x", y: "y", parent: "parent", values: "values" }, outputs: { onBeforeDestroy: "onBeforeDestroy", onBeforeHide: "onBeforeHide", onBeforeSetRecord: "onBeforeSetRecord", onBeforeShow: "onBeforeShow", onCatchAll: "onCatchAll", onDestroy: "onDestroy", onDirtyStateChange: "onDirtyStateChange", onElementCreated: "onElementCreated", onFocusIn: "onFocusIn", onFocusOut: "onFocusOut", onHide: "onHide", onPaint: "onPaint", onReadOnly: "onReadOnly", onRecompose: "onRecompose", onResize: "onResize", onShow: "onShow" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
603
732
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: BryntumChartComponent, decorators: [{
604
733
  type: Component,
605
734
  args: [{
@@ -790,6 +919,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImpor
790
919
  type: Input
791
920
  }], labels: [{
792
921
  type: Input
922
+ }], labelWidth: [{
923
+ type: Input
793
924
  }], layout: [{
794
925
  type: Input
795
926
  }], layoutStyle: [{
@@ -882,16 +1013,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImpor
882
1013
  type: Input
883
1014
  }], y: [{
884
1015
  type: Input
885
- }], anchorSize: [{
886
- type: Input
887
- }], focusVisible: [{
888
- type: Input
889
- }], hasChanges: [{
890
- type: Input
891
- }], isSettingValues: [{
892
- type: Input
893
- }], isValid: [{
894
- type: Input
895
1016
  }], parent: [{
896
1017
  type: Input
897
1018
  }], values: [{
@@ -936,15 +1057,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImpor
936
1057
  class BryntumChartModule {
937
1058
  }
938
1059
  BryntumChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: BryntumChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
939
- BryntumChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: BryntumChartModule, declarations: [BryntumChartComponent], exports: [BryntumChartComponent] });
940
- BryntumChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: BryntumChartModule, imports: [[]] });
1060
+ BryntumChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: BryntumChartModule, declarations: [BryntumChartComponent], imports: [CommonModule], exports: [BryntumChartComponent] });
1061
+ BryntumChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: BryntumChartModule, imports: [[CommonModule]] });
941
1062
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: BryntumChartModule, decorators: [{
942
1063
  type: NgModule,
943
1064
  args: [{
944
1065
  declarations: [
945
1066
  BryntumChartComponent
946
1067
  ],
947
- imports: [],
1068
+ imports: [CommonModule],
948
1069
  exports: [
949
1070
  BryntumChartComponent
950
1071
  ]