cx 24.9.1 → 24.9.2

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 (55) hide show
  1. package/dist/charts.js +22 -25
  2. package/dist/data.js +26 -29
  3. package/dist/manifest.js +775 -775
  4. package/dist/svg.js +59 -56
  5. package/dist/ui.js +51 -52
  6. package/dist/widgets.js +46 -49
  7. package/package.json +32 -32
  8. package/src/charts/Legend.js +151 -151
  9. package/src/charts/PieLabel.js +71 -71
  10. package/src/charts/axis/NumericAxis.js +347 -347
  11. package/src/charts/axis/Stack.js +55 -55
  12. package/src/charts/helpers/PointReducer.js +43 -43
  13. package/src/charts/helpers/SnapPointFinder.js +69 -69
  14. package/src/data/Binding.spec.js +69 -69
  15. package/src/data/StringTemplate.spec.js +105 -105
  16. package/src/data/getAccessor.spec.js +11 -11
  17. package/src/index.scss +6 -6
  18. package/src/svg/Text.d.ts +40 -40
  19. package/src/ui/Culture.d.ts +55 -55
  20. package/src/ui/Culture.js +139 -139
  21. package/src/ui/FocusManager.js +171 -171
  22. package/src/ui/Instance.d.ts +72 -72
  23. package/src/ui/VDOM.d.ts +12 -12
  24. package/src/ui/app/startAppLoop.js +58 -58
  25. package/src/ui/index.d.ts +42 -42
  26. package/src/ui/layout/LabelsTopLayout.js +134 -134
  27. package/src/util/Console.d.ts +4 -4
  28. package/src/util/scss/add-rules.scss +38 -38
  29. package/src/widgets/CxCredit.scss +37 -37
  30. package/src/widgets/List.scss +91 -91
  31. package/src/widgets/drag-drop/DropZone.js +214 -214
  32. package/src/widgets/form/Calendar.scss +196 -196
  33. package/src/widgets/form/ColorField.js +397 -397
  34. package/src/widgets/form/ColorPicker.scss +283 -283
  35. package/src/widgets/form/DateTimeField.js +573 -573
  36. package/src/widgets/form/MonthField.js +516 -516
  37. package/src/widgets/form/MonthPicker.scss +118 -118
  38. package/src/widgets/form/NumberField.js +459 -459
  39. package/src/widgets/form/NumberField.scss +61 -61
  40. package/src/widgets/form/Select.scss +99 -99
  41. package/src/widgets/form/Slider.scss +118 -118
  42. package/src/widgets/form/Switch.scss +140 -140
  43. package/src/widgets/form/TextArea.scss +43 -43
  44. package/src/widgets/form/TextField.js +290 -289
  45. package/src/widgets/form/TextField.scss +55 -55
  46. package/src/widgets/form/UploadButton.d.ts +34 -34
  47. package/src/widgets/grid/TreeNode.scss +88 -88
  48. package/src/widgets/grid/variables.scss +88 -88
  49. package/src/widgets/nav/Menu.scss +74 -74
  50. package/src/widgets/overlay/Dropdown.js +612 -612
  51. package/src/widgets/overlay/FlyweightTooltipTracker.js +39 -39
  52. package/src/widgets/overlay/Tooltip.js +300 -300
  53. package/src/widgets/overlay/Window.js +196 -196
  54. package/src/widgets/overlay/captureMouse.js +124 -124
  55. package/src/widgets/overlay/variables.scss +83 -83
@@ -1,72 +1,72 @@
1
- import { Record } from "../core";
2
- import { RenderingContext } from "./RenderingContext";
3
- import { View } from "../data/View";
4
- import { Widget } from "./Widget";
5
-
6
- export class Instance<ViewModel = any, Controller = any> {
7
- store: View<ViewModel>;
8
- data: Record;
9
- widget: Widget;
10
- key: number;
11
- id: string;
12
- controller: Controller;
13
- parentOptions: any;
14
- children?: Instance[];
15
-
16
- constructor(widget: Widget, key: string | number, parent?: Instance, store?: View);
17
-
18
- setStore(store: View): void;
19
-
20
- init(context: RenderingContext): void;
21
-
22
- explore(context: RenderingContext): boolean;
23
-
24
- prepare(context: RenderingContext): void;
25
-
26
- cleanup(context: RenderingContext): void;
27
-
28
- render(context: RenderingContext, keyPrefix?: string): JSX.Element | void;
29
-
30
- setState(state: Cx.Record): void;
31
-
32
- set(prop: string, value: any, internal?: boolean);
33
-
34
- definePropertySetter(prop: string, setter: (value: any) => void): boolean;
35
-
36
- /**
37
- * @protected
38
- * @param prop
39
- * @param value
40
- * @returns {boolean}
41
- */
42
- protected doSet(prop: string, value: any): boolean;
43
-
44
- replaceState(state: Cx.Config);
45
-
46
- getInstanceCache(): InstanceCache;
47
-
48
- clearChildrenCache();
49
-
50
- getChild(context: RenderingContext | null, widget: Widget, keyPrefix?: string, store?: View): Instance;
51
-
52
- getDetachedChild(widget: Widget, key: number | string, store?: View): Instance;
53
-
54
- // TODO: check return type
55
- prepareRenderCleanupChild(widget: Widget, store?: View, keyPrefix?: string, options?: object): JSX.Element | void;
56
-
57
- getJsxEventProps(): Cx.Config;
58
-
59
- nestedDataSet(key: string, value: any, dataConfig: Cx.Config): boolean;
60
-
61
- invokeControllerMethod(methodName: string, ...args: any[]);
62
- }
63
-
64
- export class InstanceCache {
65
- constructor(parent: Instance);
66
-
67
- getChild(widget: Widget, store: View, keyPrefix?: string): Instance;
68
-
69
- mark();
70
-
71
- sweep();
72
- }
1
+ import { Record } from "../core";
2
+ import { RenderingContext } from "./RenderingContext";
3
+ import { View } from "../data/View";
4
+ import { Widget } from "./Widget";
5
+
6
+ export class Instance<ViewModel = any, Controller = any> {
7
+ store: View<ViewModel>;
8
+ data: Record;
9
+ widget: Widget;
10
+ key: number;
11
+ id: string;
12
+ controller: Controller;
13
+ parentOptions: any;
14
+ children?: Instance[];
15
+
16
+ constructor(widget: Widget, key: string | number, parent?: Instance, store?: View);
17
+
18
+ setStore(store: View): void;
19
+
20
+ init(context: RenderingContext): void;
21
+
22
+ explore(context: RenderingContext): boolean;
23
+
24
+ prepare(context: RenderingContext): void;
25
+
26
+ cleanup(context: RenderingContext): void;
27
+
28
+ render(context: RenderingContext, keyPrefix?: string): JSX.Element | void;
29
+
30
+ setState(state: Cx.Record): void;
31
+
32
+ set(prop: string, value: any, internal?: boolean);
33
+
34
+ definePropertySetter(prop: string, setter: (value: any) => void): boolean;
35
+
36
+ /**
37
+ * @protected
38
+ * @param prop
39
+ * @param value
40
+ * @returns {boolean}
41
+ */
42
+ protected doSet(prop: string, value: any): boolean;
43
+
44
+ replaceState(state: Cx.Config);
45
+
46
+ getInstanceCache(): InstanceCache;
47
+
48
+ clearChildrenCache();
49
+
50
+ getChild(context: RenderingContext | null, widget: Widget, keyPrefix?: string, store?: View): Instance;
51
+
52
+ getDetachedChild(widget: Widget, key: number | string, store?: View): Instance;
53
+
54
+ // TODO: check return type
55
+ prepareRenderCleanupChild(widget: Widget, store?: View, keyPrefix?: string, options?: object): JSX.Element | void;
56
+
57
+ getJsxEventProps(): Cx.Config;
58
+
59
+ nestedDataSet(key: string, value: any, dataConfig: Cx.Config): boolean;
60
+
61
+ invokeControllerMethod(methodName: string, ...args: any[]);
62
+ }
63
+
64
+ export class InstanceCache {
65
+ constructor(parent: Instance);
66
+
67
+ getChild(widget: Widget, store: View, keyPrefix?: string): Instance;
68
+
69
+ mark();
70
+
71
+ sweep();
72
+ }
package/src/ui/VDOM.d.ts CHANGED
@@ -1,12 +1,12 @@
1
- import { HtmlElement, react } from "cx/widgets";
2
- import { ReactElement } from "react";
3
- export interface VDOM {
4
- createElement(type, props, ...children);
5
- allowRenderOutputCaching?: boolean;
6
-
7
- DOM: {
8
- render(reactElement: ReactElement, container: HtmlElement): void;
9
- unmountComponentAtNode(container: HtmlElement): void;
10
- createRoot?(container: HtmlElement): any;
11
- };
12
- }
1
+ import { HtmlElement, react } from "cx/widgets";
2
+ import { ReactElement } from "react";
3
+ export interface VDOM {
4
+ createElement(type, props, ...children);
5
+ allowRenderOutputCaching?: boolean;
6
+
7
+ DOM: {
8
+ render(reactElement: ReactElement, container: HtmlElement): void;
9
+ unmountComponentAtNode(container: HtmlElement): void;
10
+ createRoot?(container: HtmlElement): any;
11
+ };
12
+ }
@@ -1,58 +1,58 @@
1
- import { Widget, VDOM } from "../Widget";
2
- import { Store } from "../../data/Store";
3
- import { Cx } from "../Cx";
4
-
5
- export function startAppLoop(parentDOMElement, storeOrInstance, widget, options = {}) {
6
- if (!parentDOMElement || parentDOMElement.nodeType !== 1)
7
- throw new Error("First argument to startAppLoop should be a valid DOM element.");
8
-
9
- let store, instance, parentInstance;
10
-
11
- if (!storeOrInstance) storeOrInstance = new Store();
12
-
13
- if (storeOrInstance.notify) store = storeOrInstance;
14
- else if (storeOrInstance.getChild) {
15
- if (storeOrInstance.widget === widget) instance = storeOrInstance;
16
- else parentInstance = storeOrInstance;
17
- } else throw new Error("Second argument to startAppLoop should be either of type Store or Instance");
18
-
19
- let content = (
20
- <Cx
21
- store={store}
22
- widget={widget}
23
- instance={instance}
24
- parentInstance={parentInstance}
25
- options={options}
26
- subscribe
27
- />
28
- );
29
-
30
- let root = null;
31
- if (VDOM.DOM.createRoot) {
32
- root = VDOM.DOM.createRoot(parentDOMElement);
33
- root.render(content);
34
- } else VDOM.DOM.render(content, parentDOMElement);
35
-
36
- let stopped = false;
37
-
38
- return function () {
39
- if (stopped) return;
40
-
41
- stopped = true;
42
-
43
- if (!options.destroyDelay) destroy(parentDOMElement, options, root);
44
- else {
45
- setTimeout(() => {
46
- destroy(parentDOMElement, options, root);
47
- }, options.destroyDelay);
48
- }
49
- };
50
- }
51
-
52
- function destroy(parentDOMElement, options, root) {
53
- if (root) root.unmount();
54
- else VDOM.DOM.unmountComponentAtNode(parentDOMElement);
55
-
56
- if (options.removeParentDOMElement && parentDOMElement.parentNode)
57
- parentDOMElement.parentNode.removeChild(parentDOMElement);
58
- }
1
+ import { Widget, VDOM } from "../Widget";
2
+ import { Store } from "../../data/Store";
3
+ import { Cx } from "../Cx";
4
+
5
+ export function startAppLoop(parentDOMElement, storeOrInstance, widget, options = {}) {
6
+ if (!parentDOMElement || parentDOMElement.nodeType !== 1)
7
+ throw new Error("First argument to startAppLoop should be a valid DOM element.");
8
+
9
+ let store, instance, parentInstance;
10
+
11
+ if (!storeOrInstance) storeOrInstance = new Store();
12
+
13
+ if (storeOrInstance.notify) store = storeOrInstance;
14
+ else if (storeOrInstance.getChild) {
15
+ if (storeOrInstance.widget === widget) instance = storeOrInstance;
16
+ else parentInstance = storeOrInstance;
17
+ } else throw new Error("Second argument to startAppLoop should be either of type Store or Instance");
18
+
19
+ let content = (
20
+ <Cx
21
+ store={store}
22
+ widget={widget}
23
+ instance={instance}
24
+ parentInstance={parentInstance}
25
+ options={options}
26
+ subscribe
27
+ />
28
+ );
29
+
30
+ let root = null;
31
+ if (VDOM.DOM.createRoot) {
32
+ root = VDOM.DOM.createRoot(parentDOMElement);
33
+ root.render(content);
34
+ } else VDOM.DOM.render(content, parentDOMElement);
35
+
36
+ let stopped = false;
37
+
38
+ return function () {
39
+ if (stopped) return;
40
+
41
+ stopped = true;
42
+
43
+ if (!options.destroyDelay) destroy(parentDOMElement, options, root);
44
+ else {
45
+ setTimeout(() => {
46
+ destroy(parentDOMElement, options, root);
47
+ }, options.destroyDelay);
48
+ }
49
+ };
50
+ }
51
+
52
+ function destroy(parentDOMElement, options, root) {
53
+ if (root) root.unmount();
54
+ else VDOM.DOM.unmountComponentAtNode(parentDOMElement);
55
+
56
+ if (options.removeParentDOMElement && parentDOMElement.parentNode)
57
+ parentDOMElement.parentNode.removeChild(parentDOMElement);
58
+ }
package/src/ui/index.d.ts CHANGED
@@ -1,42 +1,42 @@
1
- export * from "./Controller";
2
- export * from "./Widget";
3
- export * from "./Container";
4
- export * from "./PureContainer";
5
- export * from "./Repeater";
6
- export * from "./Rescope";
7
- export * from "./StaticText";
8
- export * from "./Text";
9
- export * from "./CSS";
10
- export * from "./CSSHelper";
11
- export * from "./FocusManager";
12
- export * from "./ResizeManager";
13
- export * from "./ZIndexManager";
14
- export * from "./Format";
15
- export * from "./Culture";
16
- export * from "./Localization";
17
- export * from "./Cx";
18
- export * from "./Instance";
19
- export * from "./RenderingContext";
20
- export * from "./ContentResolver";
21
- export * from "./batchUpdates";
22
- export * from "./IsolatedScope";
23
- export * from "./DetachedScope";
24
- export * from "./Restate";
25
- export * from "./DataProxy";
26
- export * from "./keyboardShortcuts";
27
- export * from "./createFunctionalComponent";
28
- export * from "./StructuredInstanceDataAccessor";
29
- export * from "./HoverSync";
30
-
31
- export * from "./selection/index";
32
- export * from "./layout/index";
33
- export * from "./app/index";
34
- export * from "./adapter/index";
35
-
36
- export * from "./bind";
37
- export * from "./tpl";
38
- export * from "./expr";
39
-
40
- //re-export computable here
41
- import { computable } from "../data/computable";
42
- export { computable };
1
+ export * from "./Controller";
2
+ export * from "./Widget";
3
+ export * from "./Container";
4
+ export * from "./PureContainer";
5
+ export * from "./Repeater";
6
+ export * from "./Rescope";
7
+ export * from "./StaticText";
8
+ export * from "./Text";
9
+ export * from "./CSS";
10
+ export * from "./CSSHelper";
11
+ export * from "./FocusManager";
12
+ export * from "./ResizeManager";
13
+ export * from "./ZIndexManager";
14
+ export * from "./Format";
15
+ export * from "./Culture";
16
+ export * from "./Localization";
17
+ export * from "./Cx";
18
+ export * from "./Instance";
19
+ export * from "./RenderingContext";
20
+ export * from "./ContentResolver";
21
+ export * from "./batchUpdates";
22
+ export * from "./IsolatedScope";
23
+ export * from "./DetachedScope";
24
+ export * from "./Restate";
25
+ export * from "./DataProxy";
26
+ export * from "./keyboardShortcuts";
27
+ export * from "./createFunctionalComponent";
28
+ export * from "./StructuredInstanceDataAccessor";
29
+ export * from "./HoverSync";
30
+
31
+ export * from "./selection/index";
32
+ export * from "./layout/index";
33
+ export * from "./app/index";
34
+ export * from "./adapter/index";
35
+
36
+ export * from "./bind";
37
+ export * from "./tpl";
38
+ export * from "./expr";
39
+
40
+ //re-export computable here
41
+ import { computable } from "../data/computable";
42
+ export { computable };
@@ -1,135 +1,135 @@
1
- import {VDOM, getContent, contentAppend} from '../Widget';
2
- import {Container} from '../Container';
3
- import {PureContainer} from '../PureContainer';
4
- import {isArray} from '../../util/isArray';
5
- import {isUndefined} from '../../util/isUndefined';
6
- import {isNumber} from "../../util/isNumber";
7
-
8
- function validContent(r) {
9
- let content = [];
10
- for (let key in r)
11
- if (key != "label")
12
- contentAppend(content, r[key]);
13
- return content;
14
- }
15
-
16
- export class LabelsTopLayout extends Container {
17
-
18
- init() {
19
- if (this.vertical && isUndefined(this.columns))
20
- this.columns = 1;
21
-
22
- super.init();
23
- }
24
-
25
- render(context, instance, key) {
26
- let {children, data} = instance;
27
-
28
- let state = {
29
- rows: [],
30
- currentRow: 0,
31
- labelCells: [],
32
- fieldCells: [],
33
- rowCapacities: [this.columns]
34
- };
35
-
36
- const processContent = (r) => {
37
- if (!r)
38
- return;
39
- if (isArray(r.content) && r.useParentLayout)
40
- r.content.forEach((x) => processContent(x));
41
- else if (r.atomic && r.type == "layout-cell")
42
- this.addItem(state, isArray(r.content) && r.content.length == 1 ? r.content[0] : r.content, r.data);
43
- else
44
- this.addItem(state, r, {});
45
- };
46
-
47
- children.forEach(item => processContent(item.vdom));
48
-
49
- this.addRow(state);
50
-
51
- return <table key={key} className={data.classNames} style={data.style}>
52
- <tbody>
53
- {state.rows}
54
- </tbody>
55
- </table>;
56
- }
57
-
58
- addRow(state) {
59
- if (state.labelCells.length > 0)
60
- state.rows.push(<tr key={state.rows.length}>{state.labelCells}</tr>);
61
-
62
- if (state.fieldCells.length > 0)
63
- state.rows.push(<tr key={state.rows.length}>{state.fieldCells}</tr>);
64
-
65
- state.labelCells = [];
66
- state.fieldCells = [];
67
- state.currentRow++;
68
- if (state.currentRow == state.rowCapacities.length)
69
- state.rowCapacities.push(this.columns);
70
- }
71
-
72
-
73
- addItem(state, item, data) {
74
-
75
- while (state.labelCells.length == state.rowCapacities[state.currentRow])
76
- this.addRow(state);
77
-
78
- if (data.rowSpan > 1) {
79
- for (let row = state.currentRow + 1; row < state.currentRow + data.rowSpan; row++) {
80
- if (row == state.rowCapacities.length)
81
- state.rowCapacities.push(this.columns);
82
- state.rowCapacities[row] -= data.colSpan || 1;
83
- }
84
- }
85
-
86
- if (data.colSpan > 1)
87
- state.rowCapacities[state.currentRow] -= data.colSpan - 1;
88
-
89
- state.labelCells.push(
90
- <td className={this.CSS.element(this.baseClass, "label")} key={state.labelCells.length} colSpan={data.colSpan}>
91
- {getContent(item.label)}
92
- </td>
93
- );
94
- state.fieldCells.push(
95
- <td className={this.CSS.element(this.baseClass, "field")}
96
- key={state.fieldCells.length}
97
- colSpan={data.colSpan}
98
- rowSpan={isNumber(data.rowSpan) ? 2 * data.rowSpan - 1 : undefined}
99
- style={data.style}
100
- >
101
- {validContent(item)}
102
- </td>
103
- );
104
- }
105
- }
106
-
107
- LabelsTopLayout.prototype.baseClass = 'labelstoplayout';
108
- LabelsTopLayout.prototype.vertical = false;
109
- LabelsTopLayout.prototype.columns = undefined;
110
- LabelsTopLayout.prototype.styled = true;
111
-
112
- export class LabelsTopLayoutCell extends PureContainer {
113
-
114
- declareData(...args) {
115
- super.declareData(...args, {
116
- colSpan: undefined,
117
- rowSpan: undefined
118
- })
119
- }
120
-
121
- render(context, instance, key) {
122
-
123
- let { content } = this.renderChildren(context, instance);
124
-
125
- return {
126
- atomic: true,
127
- type: 'layout-cell',
128
- data: instance.data,
129
- content
130
- }
131
- }
132
- }
133
-
134
- LabelsTopLayoutCell.prototype.styled = true;
1
+ import {VDOM, getContent, contentAppend} from '../Widget';
2
+ import {Container} from '../Container';
3
+ import {PureContainer} from '../PureContainer';
4
+ import {isArray} from '../../util/isArray';
5
+ import {isUndefined} from '../../util/isUndefined';
6
+ import {isNumber} from "../../util/isNumber";
7
+
8
+ function validContent(r) {
9
+ let content = [];
10
+ for (let key in r)
11
+ if (key != "label")
12
+ contentAppend(content, r[key]);
13
+ return content;
14
+ }
15
+
16
+ export class LabelsTopLayout extends Container {
17
+
18
+ init() {
19
+ if (this.vertical && isUndefined(this.columns))
20
+ this.columns = 1;
21
+
22
+ super.init();
23
+ }
24
+
25
+ render(context, instance, key) {
26
+ let {children, data} = instance;
27
+
28
+ let state = {
29
+ rows: [],
30
+ currentRow: 0,
31
+ labelCells: [],
32
+ fieldCells: [],
33
+ rowCapacities: [this.columns]
34
+ };
35
+
36
+ const processContent = (r) => {
37
+ if (!r)
38
+ return;
39
+ if (isArray(r.content) && r.useParentLayout)
40
+ r.content.forEach((x) => processContent(x));
41
+ else if (r.atomic && r.type == "layout-cell")
42
+ this.addItem(state, isArray(r.content) && r.content.length == 1 ? r.content[0] : r.content, r.data);
43
+ else
44
+ this.addItem(state, r, {});
45
+ };
46
+
47
+ children.forEach(item => processContent(item.vdom));
48
+
49
+ this.addRow(state);
50
+
51
+ return <table key={key} className={data.classNames} style={data.style}>
52
+ <tbody>
53
+ {state.rows}
54
+ </tbody>
55
+ </table>;
56
+ }
57
+
58
+ addRow(state) {
59
+ if (state.labelCells.length > 0)
60
+ state.rows.push(<tr key={state.rows.length}>{state.labelCells}</tr>);
61
+
62
+ if (state.fieldCells.length > 0)
63
+ state.rows.push(<tr key={state.rows.length}>{state.fieldCells}</tr>);
64
+
65
+ state.labelCells = [];
66
+ state.fieldCells = [];
67
+ state.currentRow++;
68
+ if (state.currentRow == state.rowCapacities.length)
69
+ state.rowCapacities.push(this.columns);
70
+ }
71
+
72
+
73
+ addItem(state, item, data) {
74
+
75
+ while (state.labelCells.length == state.rowCapacities[state.currentRow])
76
+ this.addRow(state);
77
+
78
+ if (data.rowSpan > 1) {
79
+ for (let row = state.currentRow + 1; row < state.currentRow + data.rowSpan; row++) {
80
+ if (row == state.rowCapacities.length)
81
+ state.rowCapacities.push(this.columns);
82
+ state.rowCapacities[row] -= data.colSpan || 1;
83
+ }
84
+ }
85
+
86
+ if (data.colSpan > 1)
87
+ state.rowCapacities[state.currentRow] -= data.colSpan - 1;
88
+
89
+ state.labelCells.push(
90
+ <td className={this.CSS.element(this.baseClass, "label")} key={state.labelCells.length} colSpan={data.colSpan}>
91
+ {getContent(item.label)}
92
+ </td>
93
+ );
94
+ state.fieldCells.push(
95
+ <td className={this.CSS.element(this.baseClass, "field")}
96
+ key={state.fieldCells.length}
97
+ colSpan={data.colSpan}
98
+ rowSpan={isNumber(data.rowSpan) ? 2 * data.rowSpan - 1 : undefined}
99
+ style={data.style}
100
+ >
101
+ {validContent(item)}
102
+ </td>
103
+ );
104
+ }
105
+ }
106
+
107
+ LabelsTopLayout.prototype.baseClass = 'labelstoplayout';
108
+ LabelsTopLayout.prototype.vertical = false;
109
+ LabelsTopLayout.prototype.columns = undefined;
110
+ LabelsTopLayout.prototype.styled = true;
111
+
112
+ export class LabelsTopLayoutCell extends PureContainer {
113
+
114
+ declareData(...args) {
115
+ super.declareData(...args, {
116
+ colSpan: undefined,
117
+ rowSpan: undefined
118
+ })
119
+ }
120
+
121
+ render(context, instance, key) {
122
+
123
+ let { content } = this.renderChildren(context, instance);
124
+
125
+ return {
126
+ atomic: true,
127
+ type: 'layout-cell',
128
+ data: instance.data,
129
+ content
130
+ }
131
+ }
132
+ }
133
+
134
+ LabelsTopLayoutCell.prototype.styled = true;
135
135
  LabelsTopLayoutCell.prototype.useParentLayout = true;
@@ -1,4 +1,4 @@
1
- export class Console {
2
- static log(...args: unknown[]): void;
3
- static warn(...args: unknown[]): void;
4
- }
1
+ export class Console {
2
+ static log(...args: unknown[]): void;
3
+ static warn(...args: unknown[]): void;
4
+ }