@datarailsshared/dr_renderer 1.5.159 → 1.5.168

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 (32) hide show
  1. package/.idea/jsLibraryMappings.xml +6 -0
  2. package/.idea/misc.xml +9 -0
  3. package/.nvmrc +1 -0
  4. package/jest.config.js +1 -1
  5. package/package.json +9 -11
  6. package/scripts/check-versions.js +16 -0
  7. package/src/highcharts_renderer.d.ts +2 -2
  8. package/tsconfig.json +1 -1
  9. package/.circleci/config.yml +0 -85
  10. package/.github/workflows/ai-coder-jira.yml +0 -915
  11. package/.github/workflows/ai-coder-n8n-caller.yml +0 -82
  12. package/.github/workflows/release.yml +0 -49
  13. package/tests/__snapshots__/suboptions.test.js.snap +0 -5028
  14. package/tests/dr-renderer-helpers.test.js +0 -228
  15. package/tests/dr_chart_tooltip.test.js +0 -789
  16. package/tests/dr_gauge_chart.test.js +0 -2041
  17. package/tests/errors.test.js +0 -157
  18. package/tests/highcharts_renderer.test.js +0 -9407
  19. package/tests/mock/add-in-dynamic-ranges.json +0 -127
  20. package/tests/mock/add-in-functions.json +0 -410
  21. package/tests/mock/add-in-tables.json +0 -347
  22. package/tests/mock/tables.json +0 -2258
  23. package/tests/mock/widgets.json +0 -401
  24. package/tests/options-builder.test.js +0 -1698
  25. package/tests/pivot-table/freeze-panes/constants.test.js +0 -92
  26. package/tests/pivot-table/freeze-panes/index.test.js +0 -193
  27. package/tests/pivot-table/freeze-panes/sticky-strategy.test.js +0 -542
  28. package/tests/pivot-table/freeze-panes/transform-strategy.test.js +0 -304
  29. package/tests/ptCreateDrillDownSeriesToDrilldownChart.test.js +0 -509
  30. package/tests/seriesPointStyles-helper.test.js +0 -114
  31. package/tests/suboptions.test.js +0 -322
  32. package/tests/value.formatter.test.js +0 -143
@@ -1,304 +0,0 @@
1
- const transformStrategy = require('../../../src/pivot-table/freeze-panes/transform-strategy');
2
- const { TRANSFORM_CSS_CLASSES } = require('../../../src/pivot-table/freeze-panes/constants');
3
-
4
- describe('freeze-panes/transform-strategy', () => {
5
- describe('getClassStrings', () => {
6
- it('should return transform class strings when enabled', () => {
7
- const result = transformStrategy.getClassStrings(true);
8
-
9
- expect(result.horizontal).toBe(' ' + TRANSFORM_CSS_CLASSES.HORIZONTAL);
10
- expect(result.vertical).toBe(' ' + TRANSFORM_CSS_CLASSES.VERTICAL);
11
- expect(result.axis).toBe(' ' + TRANSFORM_CSS_CLASSES.AXIS);
12
- });
13
-
14
- it('should return empty strings when disabled', () => {
15
- const result = transformStrategy.getClassStrings(false);
16
-
17
- expect(result.horizontal).toBe('');
18
- expect(result.vertical).toBe('');
19
- expect(result.axis).toBe('');
20
- });
21
-
22
- it('should return class strings with leading space', () => {
23
- const result = transformStrategy.getClassStrings(true);
24
-
25
- expect(result.horizontal.startsWith(' ')).toBe(true);
26
- expect(result.vertical.startsWith(' ')).toBe(true);
27
- expect(result.axis.startsWith(' ')).toBe(true);
28
- });
29
-
30
- it('should return object with horizontal, vertical, and axis properties', () => {
31
- const result = transformStrategy.getClassStrings(true);
32
-
33
- expect(result).toHaveProperty('horizontal');
34
- expect(result).toHaveProperty('vertical');
35
- expect(result).toHaveProperty('axis');
36
- });
37
- });
38
-
39
- describe('initialize', () => {
40
- let container;
41
-
42
- beforeEach(() => {
43
- container = document.createElement('div');
44
- document.body.appendChild(container);
45
- });
46
-
47
- afterEach(() => {
48
- document.body.removeChild(container);
49
- });
50
-
51
- it('should attach scroll handler to container', () => {
52
- transformStrategy.initialize(container, { rowAttrsLength: 1 });
53
-
54
- expect(container.onscroll).toBeInstanceOf(Function);
55
- });
56
-
57
- it('should return object with destroy function', () => {
58
- const result = transformStrategy.initialize(container, { rowAttrsLength: 1 });
59
-
60
- expect(result).toBeDefined();
61
- expect(result).toHaveProperty('destroy');
62
- expect(typeof result.destroy).toBe('function');
63
- });
64
-
65
- it('should reset onscroll handler when destroy is called', () => {
66
- const result = transformStrategy.initialize(container, { rowAttrsLength: 1 });
67
-
68
- expect(container.onscroll).toBeInstanceOf(Function);
69
-
70
- result.destroy();
71
-
72
- expect(container.onscroll).toBeNull();
73
- });
74
-
75
- it('should reset transform styles when destroy is called', () => {
76
- const verticalElement = document.createElement('div');
77
- verticalElement.className = TRANSFORM_CSS_CLASSES.VERTICAL;
78
- container.appendChild(verticalElement);
79
-
80
- const result = transformStrategy.initialize(container, { rowAttrsLength: 1 });
81
-
82
- // Trigger scroll to apply transform
83
- container.onscroll({ target: { scrollTop: 50, scrollLeft: 0, dataset: {} } });
84
- expect(verticalElement.style.transform).toBe('translate(0px, 50px)');
85
-
86
- result.destroy();
87
-
88
- expect(verticalElement.style.transform).toBe('');
89
- });
90
-
91
- it('should work without tableInfo parameter', () => {
92
- expect(() => {
93
- transformStrategy.initialize(container);
94
- }).not.toThrow();
95
- });
96
- });
97
-
98
- describe('scroll handler', () => {
99
- let container;
100
-
101
- beforeEach(() => {
102
- container = document.createElement('div');
103
- document.body.appendChild(container);
104
- });
105
-
106
- afterEach(() => {
107
- document.body.removeChild(container);
108
- });
109
-
110
- function createScrollEvent(target, scrollTop, scrollLeft) {
111
- // Create a mock target with scroll properties
112
- const mockTarget = {
113
- scrollTop: scrollTop,
114
- scrollLeft: scrollLeft,
115
- dataset: target.dataset || {},
116
- };
117
- return { target: mockTarget };
118
- }
119
-
120
- it('should transform vertical freeze pane elements on scroll', () => {
121
- const verticalElement = document.createElement('div');
122
- verticalElement.className = TRANSFORM_CSS_CLASSES.VERTICAL;
123
- container.appendChild(verticalElement);
124
-
125
- transformStrategy.initialize(container, { rowAttrsLength: 1 });
126
-
127
- container.onscroll(createScrollEvent(container, 50, 0));
128
-
129
- expect(verticalElement.style.transform).toBe('translate(0px, 50px)');
130
- });
131
-
132
- it('should transform horizontal freeze pane elements on scroll', () => {
133
- const horizontalElement = document.createElement('div');
134
- // The code checks for ' horizontal-freeze-pane' (with leading space)
135
- // so we add a prefix class to simulate real usage
136
- horizontalElement.className = 'cell ' + TRANSFORM_CSS_CLASSES.HORIZONTAL;
137
- container.appendChild(horizontalElement);
138
-
139
- transformStrategy.initialize(container, { rowAttrsLength: 1 });
140
-
141
- container.onscroll(createScrollEvent(container, 0, 100));
142
-
143
- expect(horizontalElement.style.transform).toBe('translate(100px, 0px)');
144
- });
145
-
146
- it('should transform axis freeze pane elements on scroll', () => {
147
- const axisElement = document.createElement('div');
148
- // The code checks for ' axis-freeze-pane' (with leading space)
149
- axisElement.className = 'cell ' + TRANSFORM_CSS_CLASSES.AXIS;
150
- container.appendChild(axisElement);
151
-
152
- transformStrategy.initialize(container, { rowAttrsLength: 1 });
153
-
154
- container.onscroll(createScrollEvent(container, 75, 50));
155
-
156
- expect(axisElement.style.transform).toBe('translate(50px, 75px)');
157
- });
158
-
159
- it('should handle multiple elements of different types', () => {
160
- const verticalElement = document.createElement('div');
161
- verticalElement.className = TRANSFORM_CSS_CLASSES.VERTICAL;
162
- container.appendChild(verticalElement);
163
-
164
- const horizontalElement = document.createElement('div');
165
- // Need prefix class for horizontal/axis due to includes() check with leading space
166
- horizontalElement.className = 'cell ' + TRANSFORM_CSS_CLASSES.HORIZONTAL;
167
- container.appendChild(horizontalElement);
168
-
169
- const axisElement = document.createElement('div');
170
- axisElement.className = 'cell ' + TRANSFORM_CSS_CLASSES.AXIS;
171
- container.appendChild(axisElement);
172
-
173
- transformStrategy.initialize(container, { rowAttrsLength: 1 });
174
-
175
- container.onscroll(createScrollEvent(container, 30, 20));
176
-
177
- expect(verticalElement.style.transform).toBe('translate(0px, 30px)');
178
- expect(horizontalElement.style.transform).toBe('translate(20px, 0px)');
179
- expect(axisElement.style.transform).toBe('translate(20px, 30px)');
180
- });
181
-
182
- it('should skip if target has canFreezePanes dataset', () => {
183
- const verticalElement = document.createElement('div');
184
- verticalElement.className = TRANSFORM_CSS_CLASSES.VERTICAL;
185
- container.appendChild(verticalElement);
186
-
187
- transformStrategy.initialize(container, { rowAttrsLength: 1 });
188
-
189
- // Add dataset flag
190
- const mockTarget = {
191
- scrollTop: 50,
192
- scrollLeft: 0,
193
- dataset: { canFreezePanes: 'true' },
194
- };
195
- container.onscroll({ target: mockTarget });
196
-
197
- // Transform should not be applied
198
- expect(verticalElement.style.transform).toBe('');
199
- });
200
-
201
- it('should handle zero scroll values', () => {
202
- const axisElement = document.createElement('div');
203
- axisElement.className = TRANSFORM_CSS_CLASSES.AXIS;
204
- container.appendChild(axisElement);
205
-
206
- transformStrategy.initialize(container, { rowAttrsLength: 1 });
207
-
208
- container.onscroll(createScrollEvent(container, 0, 0));
209
-
210
- expect(axisElement.style.transform).toBe('translate(0px, 0px)');
211
- });
212
-
213
- it('should handle no freezable elements', () => {
214
- const regularElement = document.createElement('div');
215
- regularElement.className = 'some-other-class';
216
- container.appendChild(regularElement);
217
-
218
- transformStrategy.initialize(container, { rowAttrsLength: 1 });
219
-
220
- expect(() => {
221
- container.onscroll(createScrollEvent(container, 50, 50));
222
- }).not.toThrow();
223
- });
224
-
225
- it('should handle nested elements with freeze classes', () => {
226
- const wrapper = document.createElement('div');
227
- const verticalElement = document.createElement('div');
228
- verticalElement.className = TRANSFORM_CSS_CLASSES.VERTICAL;
229
- wrapper.appendChild(verticalElement);
230
- container.appendChild(wrapper);
231
-
232
- transformStrategy.initialize(container, { rowAttrsLength: 1 });
233
-
234
- container.onscroll(createScrollEvent(container, 25, 0));
235
-
236
- expect(verticalElement.style.transform).toBe('translate(0px, 25px)');
237
- });
238
- });
239
-
240
- describe('selectFreezableElements', () => {
241
- let container;
242
-
243
- beforeEach(() => {
244
- container = document.createElement('div');
245
- document.body.appendChild(container);
246
- });
247
-
248
- afterEach(() => {
249
- document.body.removeChild(container);
250
- });
251
-
252
- function createScrollEvent(scrollTop, scrollLeft) {
253
- return {
254
- target: {
255
- scrollTop: scrollTop,
256
- scrollLeft: scrollLeft,
257
- dataset: {},
258
- },
259
- };
260
- }
261
-
262
- it('should select all elements with vertical freeze class', () => {
263
- const el1 = document.createElement('div');
264
- el1.className = TRANSFORM_CSS_CLASSES.VERTICAL;
265
- const el2 = document.createElement('div');
266
- el2.className = TRANSFORM_CSS_CLASSES.VERTICAL;
267
- container.appendChild(el1);
268
- container.appendChild(el2);
269
-
270
- transformStrategy.initialize(container, {});
271
-
272
- container.onscroll(createScrollEvent(10, 0));
273
-
274
- expect(el1.style.transform).toBe('translate(0px, 10px)');
275
- expect(el2.style.transform).toBe('translate(0px, 10px)');
276
- });
277
-
278
- it('should select all elements with horizontal freeze class', () => {
279
- const el = document.createElement('div');
280
- // Need prefix class for horizontal due to includes() check with leading space
281
- el.className = 'cell ' + TRANSFORM_CSS_CLASSES.HORIZONTAL;
282
- container.appendChild(el);
283
-
284
- transformStrategy.initialize(container, {});
285
-
286
- container.onscroll(createScrollEvent(0, 15));
287
-
288
- expect(el.style.transform).toBe('translate(15px, 0px)');
289
- });
290
-
291
- it('should select all elements with axis freeze class', () => {
292
- const el = document.createElement('div');
293
- // Need prefix class for axis due to includes() check with leading space
294
- el.className = 'cell ' + TRANSFORM_CSS_CLASSES.AXIS;
295
- container.appendChild(el);
296
-
297
- transformStrategy.initialize(container, {});
298
-
299
- container.onscroll(createScrollEvent(5, 10));
300
-
301
- expect(el.style.transform).toBe('translate(10px, 5px)');
302
- });
303
- });
304
- });