gantt-source_management 3.37.5

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 (166) hide show
  1. package/.editorconfig +9 -0
  2. package/.eslintrc.json +39 -0
  3. package/.prettierrc.cjs +5 -0
  4. package/README.md +129 -0
  5. package/cypress/e2e/add-rows-items.test.ts +26 -0
  6. package/cypress/e2e/basic.test.ts +173 -0
  7. package/cypress/e2e/calculated-zoom-mode.test.ts +163 -0
  8. package/cypress/e2e/calendar-dates.test.ts +285 -0
  9. package/cypress/e2e/dst.test.ts +691 -0
  10. package/cypress/e2e/grid-cells.test.ts +72 -0
  11. package/cypress/e2e/items-vertical.test.ts +305 -0
  12. package/cypress/e2e/items.test.ts +501 -0
  13. package/cypress/e2e/list-columns-toggle.test.ts +124 -0
  14. package/cypress/e2e/list-header-resize.test.ts +30 -0
  15. package/cypress/e2e/locale.test.ts +102 -0
  16. package/cypress/e2e/move-items-outside.test.ts +437 -0
  17. package/cypress/e2e/rows.test.ts +50 -0
  18. package/cypress/e2e/scroll-bar.test.ts +357 -0
  19. package/cypress/e2e/time-bookmarks.test.ts +92 -0
  20. package/cypress/e2e/utc-mode.test.ts +51 -0
  21. package/cypress/fixtures/example.json +5 -0
  22. package/cypress/helpers.ts +12 -0
  23. package/cypress/plugins/index.js +22 -0
  24. package/cypress/support/commands.ts +175 -0
  25. package/cypress/support/e2e.ts +31 -0
  26. package/cypress.config.js +24 -0
  27. package/dist/api/api.d.ts +182 -0
  28. package/dist/api/helpers.d.ts +9 -0
  29. package/dist/api/id.d.ts +14 -0
  30. package/dist/api/locale.d.ts +3 -0
  31. package/dist/api/main.d.ts +47 -0
  32. package/dist/api/public.d.ts +32 -0
  33. package/dist/api/slots.d.ts +22 -0
  34. package/dist/api/time.d.ts +104 -0
  35. package/dist/assets/2f1f893a.wasm +0 -0
  36. package/dist/gstc.d.ts +708 -0
  37. package/dist/gstc.esm.min.d.ts +708 -0
  38. package/dist/gstc.esm.min.js +574 -0
  39. package/dist/gstc.umd.min.d.ts +708 -0
  40. package/dist/gstc.umd.min.js +701 -0
  41. package/dist/gstc.wasm.esm.min.d.ts +708 -0
  42. package/dist/gstc.wasm.esm.min.js +574 -0
  43. package/dist/gstc.wasm.umd.min.d.ts +708 -0
  44. package/dist/gstc.wasm.umd.min.js +701 -0
  45. package/dist/plugins/calendar-scroll.d.ts +15 -0
  46. package/dist/plugins/calendar-scroll.esm.min.d.ts +15 -0
  47. package/dist/plugins/calendar-scroll.esm.min.js +13 -0
  48. package/dist/plugins/calendar-scroll.umd.min.d.ts +15 -0
  49. package/dist/plugins/calendar-scroll.umd.min.js +13 -0
  50. package/dist/plugins/dependency-lines.d.ts +47 -0
  51. package/dist/plugins/dependency-lines.esm.min.d.ts +47 -0
  52. package/dist/plugins/dependency-lines.esm.min.js +38 -0
  53. package/dist/plugins/dependency-lines.umd.min.d.ts +47 -0
  54. package/dist/plugins/dependency-lines.umd.min.js +38 -0
  55. package/dist/plugins/export-image.d.ts +12 -0
  56. package/dist/plugins/export-image.esm.min.d.ts +12 -0
  57. package/dist/plugins/export-image.esm.min.js +28 -0
  58. package/dist/plugins/export-image.umd.min.d.ts +12 -0
  59. package/dist/plugins/export-image.umd.min.js +34 -0
  60. package/dist/plugins/export-pdf.d.ts +12 -0
  61. package/dist/plugins/export-pdf.esm.min.d.ts +12 -0
  62. package/dist/plugins/export-pdf.esm.min.js +389 -0
  63. package/dist/plugins/export-pdf.umd.min.d.ts +12 -0
  64. package/dist/plugins/export-pdf.umd.min.js +511 -0
  65. package/dist/plugins/grab-scroll.d.ts +14 -0
  66. package/dist/plugins/grab-scroll.esm.min.d.ts +14 -0
  67. package/dist/plugins/grab-scroll.umd.min.d.ts +14 -0
  68. package/dist/plugins/highlight-weekends.d.ts +12 -0
  69. package/dist/plugins/highlight-weekends.esm.min.d.ts +12 -0
  70. package/dist/plugins/highlight-weekends.esm.min.js +14 -0
  71. package/dist/plugins/highlight-weekends.umd.min.d.ts +12 -0
  72. package/dist/plugins/highlight-weekends.umd.min.js +14 -0
  73. package/dist/plugins/item-movement.d.ts +97 -0
  74. package/dist/plugins/item-movement.esm.min.d.ts +97 -0
  75. package/dist/plugins/item-movement.esm.min.js +25 -0
  76. package/dist/plugins/item-movement.umd.min.d.ts +97 -0
  77. package/dist/plugins/item-movement.umd.min.js +25 -0
  78. package/dist/plugins/item-resizing.d.ts +102 -0
  79. package/dist/plugins/item-resizing.esm.min.d.ts +102 -0
  80. package/dist/plugins/item-resizing.esm.min.js +37 -0
  81. package/dist/plugins/item-resizing.umd.min.d.ts +102 -0
  82. package/dist/plugins/item-resizing.umd.min.js +37 -0
  83. package/dist/plugins/item-types.d.ts +13 -0
  84. package/dist/plugins/item-types.esm.min.d.ts +13 -0
  85. package/dist/plugins/item-types.esm.min.js +127 -0
  86. package/dist/plugins/item-types.umd.min.d.ts +13 -0
  87. package/dist/plugins/item-types.umd.min.js +127 -0
  88. package/dist/plugins/progress-bar.d.ts +13 -0
  89. package/dist/plugins/progress-bar.esm.min.d.ts +13 -0
  90. package/dist/plugins/progress-bar.esm.min.js +27 -0
  91. package/dist/plugins/progress-bar.umd.min.d.ts +13 -0
  92. package/dist/plugins/progress-bar.umd.min.js +27 -0
  93. package/dist/plugins/selection.d.ts +94 -0
  94. package/dist/plugins/selection.esm.min.d.ts +94 -0
  95. package/dist/plugins/selection.esm.min.js +26 -0
  96. package/dist/plugins/selection.umd.min.d.ts +94 -0
  97. package/dist/plugins/selection.umd.min.js +26 -0
  98. package/dist/plugins/time-bookmarks.d.ts +38 -0
  99. package/dist/plugins/time-bookmarks.esm.min.d.ts +38 -0
  100. package/dist/plugins/time-bookmarks.esm.min.js +50 -0
  101. package/dist/plugins/time-bookmarks.umd.min.d.ts +38 -0
  102. package/dist/plugins/time-bookmarks.umd.min.js +50 -0
  103. package/dist/plugins/timeline-pointer.d.ts +83 -0
  104. package/dist/plugins/timeline-pointer.esm.min.d.ts +83 -0
  105. package/dist/plugins/timeline-pointer.esm.min.js +13 -0
  106. package/dist/plugins/timeline-pointer.umd.min.d.ts +83 -0
  107. package/dist/plugins/timeline-pointer.umd.min.js +13 -0
  108. package/dist/style.css +811 -0
  109. package/dist/vendor.esm.min.js +128 -0
  110. package/examples/complex-1/faces/face-1.jpg +0 -0
  111. package/examples/complex-1/faces/face-10.jpg +0 -0
  112. package/examples/complex-1/faces/face-11.jpg +0 -0
  113. package/examples/complex-1/faces/face-12.jpg +0 -0
  114. package/examples/complex-1/faces/face-13.jpg +0 -0
  115. package/examples/complex-1/faces/face-14.jpg +0 -0
  116. package/examples/complex-1/faces/face-15.jpg +0 -0
  117. package/examples/complex-1/faces/face-16.jpg +0 -0
  118. package/examples/complex-1/faces/face-17.jpg +0 -0
  119. package/examples/complex-1/faces/face-18.jpg +0 -0
  120. package/examples/complex-1/faces/face-19.jpg +0 -0
  121. package/examples/complex-1/faces/face-2.jpg +0 -0
  122. package/examples/complex-1/faces/face-20.jpg +0 -0
  123. package/examples/complex-1/faces/face-21.jpg +0 -0
  124. package/examples/complex-1/faces/face-22.jpg +0 -0
  125. package/examples/complex-1/faces/face-23.jpg +0 -0
  126. package/examples/complex-1/faces/face-24.jpg +0 -0
  127. package/examples/complex-1/faces/face-25.jpg +0 -0
  128. package/examples/complex-1/faces/face-26.jpg +0 -0
  129. package/examples/complex-1/faces/face-27.jpg +0 -0
  130. package/examples/complex-1/faces/face-28.jpg +0 -0
  131. package/examples/complex-1/faces/face-29.jpg +0 -0
  132. package/examples/complex-1/faces/face-3.jpg +0 -0
  133. package/examples/complex-1/faces/face-30.jpg +0 -0
  134. package/examples/complex-1/faces/face-31.jpg +0 -0
  135. package/examples/complex-1/faces/face-32.jpg +0 -0
  136. package/examples/complex-1/faces/face-33.jpg +0 -0
  137. package/examples/complex-1/faces/face-34.jpg +0 -0
  138. package/examples/complex-1/faces/face-35.jpg +0 -0
  139. package/examples/complex-1/faces/face-36.jpg +0 -0
  140. package/examples/complex-1/faces/face-37.jpg +0 -0
  141. package/examples/complex-1/faces/face-38.jpg +0 -0
  142. package/examples/complex-1/faces/face-39.jpg +0 -0
  143. package/examples/complex-1/faces/face-4.jpg +0 -0
  144. package/examples/complex-1/faces/face-40.jpg +0 -0
  145. package/examples/complex-1/faces/face-41.jpg +0 -0
  146. package/examples/complex-1/faces/face-42.jpg +0 -0
  147. package/examples/complex-1/faces/face-43.jpg +0 -0
  148. package/examples/complex-1/faces/face-44.jpg +0 -0
  149. package/examples/complex-1/faces/face-45.jpg +0 -0
  150. package/examples/complex-1/faces/face-46.jpg +0 -0
  151. package/examples/complex-1/faces/face-47.jpg +0 -0
  152. package/examples/complex-1/faces/face-48.jpg +0 -0
  153. package/examples/complex-1/faces/face-49.jpg +0 -0
  154. package/examples/complex-1/faces/face-5.jpg +0 -0
  155. package/examples/complex-1/faces/face-50.jpg +0 -0
  156. package/examples/complex-1/faces/face-6.jpg +0 -0
  157. package/examples/complex-1/faces/face-7.jpg +0 -0
  158. package/examples/complex-1/faces/face-8.jpg +0 -0
  159. package/examples/complex-1/faces/face-9.jpg +0 -0
  160. package/examples/complex-1/index.html +61 -0
  161. package/examples/complex-1/index.js +923 -0
  162. package/examples/index.html +22 -0
  163. package/examples/reset.css +455 -0
  164. package/examples/server.js +18 -0
  165. package/package.json +150 -0
  166. package/tsconfig.json +17 -0
@@ -0,0 +1,285 @@
1
+ /// <reference types="Cypress" />
2
+
3
+ import DeepState from 'deep-state-observer';
4
+ import { DataChartTime } from '../../dist/gstc';
5
+ import { fixed } from '../helpers';
6
+
7
+ describe('Calendar dates', () => {
8
+ it('should generate all dates (complex-1)', () => {
9
+ let window, merge, state: DeepState;
10
+ cy.load('/examples/complex-1')
11
+ .window()
12
+ .then((win) => {
13
+ window = win;
14
+ // @ts-ignore
15
+ merge = win.gstc.api.mergeDeep;
16
+ // @ts-ignore
17
+ state = win.state;
18
+ state.update('config.scroll.horizontal.precise', true);
19
+ state.update('config.scroll.vertical.precise', true);
20
+ const time: DataChartTime = state.get('$data.chart.time');
21
+ expect(time.allDates.length).to.eq(2);
22
+ expect(time.allDates[0].length).to.be.at.least(2);
23
+ cy.log('All dates', time.allDates);
24
+ const firstDateLevel0 = time.allDates[0][0].leftGlobalDate;
25
+ const firstDateLevel1 = time.allDates[1][0].leftGlobalDate;
26
+ const lastDateLevel0 = time.allDates[0][time.allDates[0].length - 1].rightGlobalDate;
27
+ const lastDateLevel1 = time.allDates[1][time.allDates[1].length - 1].rightGlobalDate;
28
+ cy.log('From date', time.fromDate.format('YYYY-MM-DD HH:mm:ss'));
29
+ cy.log('To date', time.toDate.format('YYYY-MM-DD HH:mm:ss'));
30
+ cy.log('firstDateLevel0', firstDateLevel0.format('YYYY-MM-DD HH:mm:ss'));
31
+ cy.log('firstDateLevel1', firstDateLevel1.format('YYYY-MM-DD HH:mm:ss'));
32
+ cy.log('lastDateLevel0', lastDateLevel0.format('YYYY-MM-DD HH:mm:ss'));
33
+ cy.log('lastDateLevel1', lastDateLevel1.format('YYYY-MM-DD HH:mm:ss'));
34
+ expect(lastDateLevel0.valueOf()).to.be.at.least(time.toDate.valueOf());
35
+ expect(lastDateLevel1.valueOf()).to.be.at.least(time.toDate.valueOf());
36
+ expect(firstDateLevel0.valueOf()).to.be.at.most(time.fromDate.valueOf());
37
+ expect(firstDateLevel1.valueOf()).to.be.at.most(time.fromDate.valueOf());
38
+ })
39
+ //
40
+ // Check first date element
41
+ //
42
+ .get('.gstc__chart-calendar-date--level-1')
43
+ .then(($el) => {
44
+ const time: DataChartTime = state.get('$data.chart.time');
45
+ const first = $el.get(0);
46
+ const day = Cypress.$(first).find('.gstc__chart-calendar-date-content.gstc-date-top').get(0);
47
+ const firstDate = time.levels[1][0];
48
+ cy.log('day', day);
49
+ expect(day.textContent).to.eq('01');
50
+ expect(time.levels.length).to.eq(2);
51
+ expect(time.levels[0].length).to.eq(1);
52
+ cy.log('firstDate', firstDate);
53
+ expect(firstDate.leftGlobalDate.valueOf()).to.eq(time.fromDate.valueOf());
54
+ const elementWidth = fixed(first.style.width);
55
+ const dataWidth = fixed(firstDate.currentView.width);
56
+ expect(dataWidth).to.eq(elementWidth);
57
+ expect(dataWidth).to.be.greaterThan(80);
58
+ })
59
+ //
60
+ // move horizontal scroll bar a little bit
61
+ //
62
+ .scrollH(15)
63
+ .get('.gstc__chart-calendar-date--level-1')
64
+ .then(($el) => {
65
+ const time: DataChartTime = state.get('$data.chart.time');
66
+ const first = $el.get(0);
67
+ const firstDate = time.levels[1][0];
68
+ const elementWidth = fixed(first.style.width);
69
+ const dataWidth = fixed(firstDate.currentView.width);
70
+ expect(elementWidth).to.eq(dataWidth);
71
+ expect(elementWidth).to.be.lessThan(fixed(firstDate.width));
72
+ const day = Cypress.$(first).find('.gstc__chart-calendar-date-content.gstc-date-top').get(0);
73
+ expect(day.textContent).to.eq('01');
74
+ })
75
+ //
76
+ // Move horizontal scroll bar to the end
77
+ //
78
+ .scrollH(1000)
79
+ .get('.gstc__chart-calendar-date--level-1')
80
+ .then(($el) => {
81
+ const time = merge({}, window.state.get('$data.chart.time'));
82
+ const last = $el.get($el.length - 1);
83
+ const lastDate = time.levels[1][time.levels[1].length - 1];
84
+ const elementWidth = fixed(last.style.width);
85
+ const dataWidth = fixed(lastDate.currentView.width);
86
+ expect(elementWidth).to.eq(dataWidth);
87
+ expect(elementWidth).to.eq(fixed(lastDate.width));
88
+ const day = Cypress.$(last).find('.gstc__chart-calendar-date-content.gstc-date-top').get(0);
89
+ expect(day.textContent).to.eq('31');
90
+ })
91
+ //
92
+ // Move horizontal scroll bar a little bit from the end
93
+ //
94
+ .scrollH(-14)
95
+ .get('.gstc__chart-calendar-date--level-1')
96
+ .then(($el) => {
97
+ const time = merge({}, window.state.get('$data.chart.time'));
98
+ const last = $el.get($el.length - 1);
99
+ const lastDate = time.levels[1][time.levels[1].length - 1];
100
+ const elementWidth = fixed(last.style.width);
101
+ const dataWidth = fixed(lastDate.currentView.width);
102
+ expect(elementWidth).to.eq(dataWidth);
103
+ expect(elementWidth).to.be.lessThan(fixed(lastDate.width));
104
+ const day = Cypress.$(last).find('.gstc__chart-calendar-date-content.gstc-date-top').get(0);
105
+ expect(day.textContent).to.eq('31');
106
+ });
107
+ });
108
+
109
+ it('should calculate proper left/right global dates when changing the zoom', () => {
110
+ let state;
111
+ cy.load('/examples/complex-1')
112
+ .window()
113
+ .then((win) => {
114
+ // @ts-ignore
115
+ state = win.state;
116
+ state.update('config.chart.time.zoom', 21);
117
+ })
118
+ .wait(Cypress.env('wait'))
119
+ .then(() => {
120
+ const time: DataChartTime = state.get('$data.chart.time');
121
+ expect(time.leftGlobalDate.format('YYYY-MM-DD HH:mm:ss')).to.eq('2020-02-01 00:00:00');
122
+ expect(time.rightGlobalDate.format('YYYY-MM-DD HH:mm:ss')).to.eq('2020-02-27 19:42:32');
123
+ })
124
+ .get('.gstc__chart-calendar-date--day .gstc-date-top')
125
+ .then(($daysTop) => {
126
+ expect($daysTop.length).to.eq(27);
127
+ const first = $daysTop.get(0);
128
+ expect(first.textContent).to.eq('01');
129
+ expect(first.offsetWidth).to.eq(40);
130
+ const last = $daysTop.get($daysTop.length - 1);
131
+ expect(last.textContent).to.eq('27');
132
+ expect(last.offsetWidth).to.eq(33);
133
+ })
134
+ .get('.gstc__chart-timeline-grid-row[data-gstcid="gstcid-0"] .gstc__chart-timeline-grid-row-cell')
135
+ .then(($cells) => {
136
+ expect($cells.length).to.eq(27);
137
+ const first = $cells.get(0);
138
+ expect(first.offsetWidth).to.eq(41);
139
+ const last = $cells.get($cells.length - 1);
140
+ expect(last.offsetWidth).to.eq(34);
141
+ });
142
+ });
143
+
144
+ it('should align levels to main dates when there are missing main dates', () => {
145
+ let state;
146
+ const februaryElSel = '.gstc__chart-calendar-date--month[data-gstcid="gstcid-1580511600000"]';
147
+ let februaryInitialWidth = 0;
148
+ cy.load('/examples/complex-1')
149
+ .window()
150
+ .then((win) => {
151
+ // @ts-ignore
152
+ state = win.state;
153
+ state.update('config.chart.time.zoom', 21);
154
+ })
155
+ .wait(Cypress.env('wait'))
156
+ .get(februaryElSel)
157
+ .should('be.visible')
158
+ .then(($feb) => {
159
+ februaryInitialWidth = fixed($feb.get(0).style.width);
160
+ })
161
+ .log(`Initial february width ${februaryInitialWidth}`)
162
+ .get('#hide-weekends')
163
+ .click()
164
+ .wait(Cypress.env('wait'))
165
+ .then(() => {
166
+ const dataTime: DataChartTime = state.get('$data.chart.time');
167
+ const mainDates = dataTime.allDates[dataTime.level];
168
+ const firstMarch = mainDates.find((date) => date.leftGlobalDate.month() === 2);
169
+ const march = dataTime.allDates[0][1];
170
+ expect(firstMarch.leftPx).to.eq(march.leftPx);
171
+ })
172
+ .get(februaryElSel)
173
+ .should('be.visible')
174
+ .then(($feb) => {
175
+ expect(fixed($feb.get(0).style.width)).to.be.lessThan(februaryInitialWidth);
176
+ });
177
+ });
178
+
179
+ it('should generate all dates (custom-period-advanced)', () => {
180
+ let window, merge, state: DeepState;
181
+ cy.load('/examples/custom-period-advanced')
182
+ .window()
183
+ .then((win) => {
184
+ window = win;
185
+ // @ts-ignore
186
+ merge = win.gstc.api.mergeDeep;
187
+ // @ts-ignore
188
+ state = win.state;
189
+ state.update('config.scroll.horizontal.precise', true);
190
+ state.update('config.scroll.vertical.precise', true);
191
+ const time: DataChartTime = state.get('$data.chart.time');
192
+ expect(time.allDates.length).to.eq(2);
193
+ expect(time.allDates[0].length).to.be.at.least(2);
194
+ cy.log('All dates', time.allDates);
195
+ const firstDateLevel0 = time.allDates[0][0].leftGlobalDate;
196
+ const firstDateLevel1 = time.allDates[1][0].leftGlobalDate;
197
+ const lastDateLevel0 = time.allDates[0][time.allDates[0].length - 1].rightGlobalDate;
198
+ const lastDateLevel1 = time.allDates[1][time.allDates[1].length - 1].rightGlobalDate;
199
+ cy.log('From date', time.fromDate.format('YYYY-MM-DD HH:mm:ss'));
200
+ cy.log('To date', time.toDate.format('YYYY-MM-DD HH:mm:ss'));
201
+ cy.log('firstDateLevel0', firstDateLevel0.format('YYYY-MM-DD HH:mm:ss'));
202
+ cy.log('firstDateLevel1', firstDateLevel1.format('YYYY-MM-DD HH:mm:ss'));
203
+ cy.log('lastDateLevel0', lastDateLevel0.format('YYYY-MM-DD HH:mm:ss'));
204
+ cy.log('lastDateLevel1', lastDateLevel1.format('YYYY-MM-DD HH:mm:ss'));
205
+ expect(lastDateLevel0.valueOf()).to.be.at.least(time.toDate.valueOf());
206
+ expect(lastDateLevel1.valueOf()).to.be.at.least(time.toDate.valueOf());
207
+ expect(firstDateLevel0.valueOf()).to.be.at.most(time.fromDate.valueOf());
208
+ expect(firstDateLevel1.valueOf()).to.be.at.most(time.fromDate.valueOf());
209
+ })
210
+ .wait(Cypress.env('wait'))
211
+ //
212
+ // Check first date element
213
+ //
214
+ .get('.gstc__chart-calendar-date--level-1')
215
+ .then(($el) => {
216
+ const time: DataChartTime = state.get('$data.chart.time');
217
+ const first = $el.get(0);
218
+ const cell = Cypress.$(first).find('.gstc__chart-calendar-date-content--day').get(0);
219
+ const firstDate = time.levels[1][0];
220
+ expect(cell.textContent).to.eq('01 - 16');
221
+ expect(time.levels.length).to.eq(2);
222
+ expect(time.levels[0].length).to.eq(8); // only visible
223
+ expect(time.allDates[0].length).to.eq(12); // all dates
224
+ cy.log('firstDate', firstDate);
225
+ expect(firstDate.leftGlobalDate.valueOf()).to.eq(time.fromDate.valueOf());
226
+ const elementWidth = fixed(first.style.width);
227
+ const dataWidth = fixed(firstDate.currentView.width);
228
+ expect(dataWidth).to.eq(elementWidth);
229
+ expect(dataWidth).to.be.greaterThan(80);
230
+ })
231
+ //
232
+ // move horizontal scroll bar a little bit
233
+ //
234
+ .scrollH(2)
235
+ .get('.gstc__chart-calendar-date--level-1')
236
+ .then(($el) => {
237
+ const time: DataChartTime = state.get('$data.chart.time');
238
+ const first = $el.get(0);
239
+ const second = $el.get(1);
240
+ const firstDate = time.levels[1][0];
241
+ const elementWidth = fixed(first.style.width);
242
+ const dataWidth = fixed(firstDate.currentView.width);
243
+ expect(elementWidth).to.eq(dataWidth);
244
+ expect(elementWidth).to.be.lessThan(fixed(firstDate.width));
245
+ const cell1 = Cypress.$(first).find('.gstc__chart-calendar-date-content--day').get(0);
246
+ expect(cell1.textContent).to.eq('01 - 16');
247
+ const cell2 = Cypress.$(second).find('.gstc__chart-calendar-date-content--day').get(0);
248
+ expect(cell2.textContent).to.eq('17 - 31');
249
+ })
250
+ //
251
+ // Move horizontal scroll bar to the end
252
+ //
253
+ .scrollH(1000)
254
+ .get('.gstc__chart-calendar-date--level-1')
255
+ .then(($el) => {
256
+ const time = merge({}, window.state.get('$data.chart.time'));
257
+ const last = $el.get($el.length - 1);
258
+ const lastDate = time.levels[1][time.levels[1].length - 1];
259
+ const elementWidth = fixed(last.style.width);
260
+ const dataWidth = fixed(lastDate.currentView.width);
261
+ expect(elementWidth).to.eq(dataWidth);
262
+ expect(elementWidth).to.eq(fixed(lastDate.width));
263
+ const cell1 = Cypress.$(last).find('.gstc__chart-calendar-date-content--day').get(0);
264
+ expect(cell1.textContent).to.eq('17 - 31');
265
+ })
266
+ //
267
+ // Move horizontal scroll bar a little bit from the end
268
+ //
269
+ .scrollH(-40)
270
+ .get('.gstc__chart-calendar-date--level-1')
271
+ .then(($el) => {
272
+ const time = merge({}, window.state.get('$data.chart.time'));
273
+ const last = $el.get($el.length - 1);
274
+ const lastDate = time.levels[1][time.levels[1].length - 1];
275
+ const elementWidth = fixed(last.style.width);
276
+ const dataWidth = fixed(lastDate.currentView.width);
277
+ expect(elementWidth).to.eq(dataWidth);
278
+ expect(elementWidth).to.be.lessThan(fixed(lastDate.width));
279
+ const cell1 = Cypress.$(last).find('.gstc__chart-calendar-date-content--day').get(0);
280
+ expect(cell1.textContent).to.eq('17 - 31');
281
+ });
282
+ });
283
+
284
+ //generateAllDates('/examples/custom-period-advanced');
285
+ });