@swimlane/ngx-datatable 17.0.0 → 20.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/README.md +0 -1
  2. package/assets/icons.css +39 -19
  3. package/bundles/swimlane-ngx-datatable.umd.js +1103 -1564
  4. package/bundles/swimlane-ngx-datatable.umd.js.map +1 -1
  5. package/esm2015/lib/components/body/body-cell.component.js +40 -86
  6. package/esm2015/lib/components/body/body-group-header-template.directive.js +8 -10
  7. package/esm2015/lib/components/body/body-group-header.directive.js +11 -19
  8. package/esm2015/lib/components/body/body-row-wrapper.component.js +32 -54
  9. package/esm2015/lib/components/body/body-row.component.js +38 -75
  10. package/esm2015/lib/components/body/body.component.js +61 -137
  11. package/esm2015/lib/components/body/progress-bar.component.js +10 -12
  12. package/esm2015/lib/components/body/scroller.component.js +21 -33
  13. package/esm2015/lib/components/body/selection.component.js +19 -35
  14. package/esm2015/lib/components/body/summary/summary-row.component.js +19 -29
  15. package/esm2015/lib/components/columns/column-cell.directive.js +6 -8
  16. package/esm2015/lib/components/columns/column-header.directive.js +6 -8
  17. package/esm2015/lib/components/columns/column.directive.js +36 -92
  18. package/esm2015/lib/components/columns/tree.directive.js +6 -8
  19. package/esm2015/lib/components/datatable.component.js +85 -214
  20. package/esm2015/lib/components/footer/footer-template.directive.js +6 -8
  21. package/esm2015/lib/components/footer/footer.component.js +28 -54
  22. package/esm2015/lib/components/footer/footer.directive.js +16 -34
  23. package/esm2015/lib/components/footer/pager.component.js +23 -39
  24. package/esm2015/lib/components/header/header-cell.component.js +45 -80
  25. package/esm2015/lib/components/header/header.component.js +43 -80
  26. package/esm2015/lib/components/row-detail/row-detail-template.directive.js +8 -10
  27. package/esm2015/lib/components/row-detail/row-detail.directive.js +11 -19
  28. package/esm2015/lib/directives/draggable.directive.js +16 -30
  29. package/esm2015/lib/directives/long-press.directive.js +16 -34
  30. package/esm2015/lib/directives/orderable.directive.js +12 -19
  31. package/esm2015/lib/directives/resizeable.directive.js +19 -29
  32. package/esm2015/lib/directives/visibility.directive.js +11 -15
  33. package/esm2015/lib/events.js +1 -1
  34. package/esm2015/lib/ngx-datatable.module.js +54 -57
  35. package/esm2015/lib/services/column-changes.service.js +6 -8
  36. package/esm2015/lib/services/dimensions-helper.service.js +6 -8
  37. package/esm2015/lib/services/scrollbar-helper.service.js +6 -9
  38. package/esm2015/lib/types/click.type.js +1 -1
  39. package/esm2015/lib/types/column-mode.type.js +1 -1
  40. package/esm2015/lib/types/contextmenu.type.js +1 -1
  41. package/esm2015/lib/types/selection.type.js +1 -1
  42. package/esm2015/lib/types/sort-direction.type.js +1 -1
  43. package/esm2015/lib/types/sort-prop-dir.type.js +2 -1
  44. package/esm2015/lib/types/sort.type.js +1 -1
  45. package/esm2015/lib/types/table-column.type.js +2 -1
  46. package/esm2015/lib/utils/camel-case.js +1 -1
  47. package/esm2015/lib/utils/column-helper.js +1 -1
  48. package/esm2015/lib/utils/column-prop-getters.js +1 -1
  49. package/esm2015/lib/utils/column.js +1 -1
  50. package/esm2015/lib/utils/elm-from-point.js +1 -1
  51. package/esm2015/lib/utils/id.js +1 -1
  52. package/esm2015/lib/utils/keys.js +1 -1
  53. package/esm2015/lib/utils/math.js +1 -1
  54. package/esm2015/lib/utils/prefixes.js +1 -1
  55. package/esm2015/lib/utils/row-height-cache.js +1 -1
  56. package/esm2015/lib/utils/selection.js +1 -1
  57. package/esm2015/lib/utils/sort.js +1 -1
  58. package/esm2015/lib/utils/throttle.js +1 -1
  59. package/esm2015/lib/utils/translate.js +1 -1
  60. package/esm2015/lib/utils/tree.js +1 -1
  61. package/esm2015/public-api.js +3 -1
  62. package/esm2015/swimlane-ngx-datatable.js +1 -1
  63. package/fesm2015/swimlane-ngx-datatable.js +682 -1248
  64. package/fesm2015/swimlane-ngx-datatable.js.map +1 -1
  65. package/lib/components/header/header-cell.component.d.ts +2 -0
  66. package/lib/components/header/header.component.d.ts +1 -0
  67. package/lib/utils/throttle.d.ts +1 -1
  68. package/package.json +10 -10
  69. package/swimlane-ngx-datatable.metadata.json +1 -1
  70. package/bundles/swimlane-ngx-datatable.umd.min.js +0 -16
  71. package/bundles/swimlane-ngx-datatable.umd.min.js.map +0 -1
  72. package/esm5/lib/components/body/body-cell.component.js +0 -438
  73. package/esm5/lib/components/body/body-group-header-template.directive.js +0 -18
  74. package/esm5/lib/components/body/body-group-header.directive.js +0 -67
  75. package/esm5/lib/components/body/body-row-wrapper.component.js +0 -114
  76. package/esm5/lib/components/body/body-row.component.js +0 -260
  77. package/esm5/lib/components/body/body.component.js +0 -775
  78. package/esm5/lib/components/body/progress-bar.component.js +0 -16
  79. package/esm5/lib/components/body/scroller.component.js +0 -97
  80. package/esm5/lib/components/body/selection.component.js +0 -159
  81. package/esm5/lib/components/body/summary/summary-row.component.js +0 -81
  82. package/esm5/lib/components/columns/column-cell.directive.js +0 -16
  83. package/esm5/lib/components/columns/column-header.directive.js +0 -16
  84. package/esm5/lib/components/columns/column.directive.js +0 -134
  85. package/esm5/lib/components/columns/tree.directive.js +0 -16
  86. package/esm5/lib/components/datatable.component.js +0 -1147
  87. package/esm5/lib/components/footer/footer-template.directive.js +0 -16
  88. package/esm5/lib/components/footer/footer.component.js +0 -74
  89. package/esm5/lib/components/footer/footer.directive.js +0 -47
  90. package/esm5/lib/components/footer/pager.component.js +0 -135
  91. package/esm5/lib/components/header/header-cell.component.js +0 -253
  92. package/esm5/lib/components/header/header.component.js +0 -317
  93. package/esm5/lib/components/row-detail/row-detail-template.directive.js +0 -18
  94. package/esm5/lib/components/row-detail/row-detail.directive.js +0 -68
  95. package/esm5/lib/directives/draggable.directive.js +0 -118
  96. package/esm5/lib/directives/long-press.directive.js +0 -132
  97. package/esm5/lib/directives/orderable.directive.js +0 -161
  98. package/esm5/lib/directives/resizeable.directive.js +0 -101
  99. package/esm5/lib/directives/visibility.directive.js +0 -69
  100. package/esm5/lib/events.js +0 -7
  101. package/esm5/lib/ngx-datatable.module.js +0 -103
  102. package/esm5/lib/services/column-changes.service.js +0 -28
  103. package/esm5/lib/services/dimensions-helper.service.js +0 -19
  104. package/esm5/lib/services/scrollbar-helper.service.js +0 -38
  105. package/esm5/lib/types/click.type.js +0 -6
  106. package/esm5/lib/types/column-mode.type.js +0 -7
  107. package/esm5/lib/types/contextmenu.type.js +0 -6
  108. package/esm5/lib/types/selection.type.js +0 -9
  109. package/esm5/lib/types/sort-direction.type.js +0 -6
  110. package/esm5/lib/types/sort-prop-dir.type.js +0 -1
  111. package/esm5/lib/types/sort.type.js +0 -6
  112. package/esm5/lib/types/table-column.type.js +0 -1
  113. package/esm5/lib/utils/camel-case.js +0 -28
  114. package/esm5/lib/utils/column-helper.js +0 -128
  115. package/esm5/lib/utils/column-prop-getters.js +0 -96
  116. package/esm5/lib/utils/column.js +0 -103
  117. package/esm5/lib/utils/elm-from-point.js +0 -38
  118. package/esm5/lib/utils/id.js +0 -8
  119. package/esm5/lib/utils/keys.js +0 -10
  120. package/esm5/lib/utils/math.js +0 -224
  121. package/esm5/lib/utils/prefixes.js +0 -40
  122. package/esm5/lib/utils/row-height-cache.js +0 -137
  123. package/esm5/lib/utils/selection.js +0 -40
  124. package/esm5/lib/utils/sort.js +0 -139
  125. package/esm5/lib/utils/throttle.js +0 -60
  126. package/esm5/lib/utils/translate.js +0 -25
  127. package/esm5/lib/utils/tree.js +0 -106
  128. package/esm5/public-api.js +0 -62
  129. package/esm5/swimlane-ngx-datatable.js +0 -5
  130. package/fesm5/swimlane-ngx-datatable.js +0 -6088
  131. package/fesm5/swimlane-ngx-datatable.js.map +0 -1
  132. package/lib/test/jasmine-matchers.d.ts +0 -12
@@ -1,103 +0,0 @@
1
- import { __values } from "tslib";
2
- /**
3
- * Returns the columns by pin.
4
- */
5
- export function columnsByPin(cols) {
6
- var e_1, _a;
7
- var ret = {
8
- left: [],
9
- center: [],
10
- right: []
11
- };
12
- if (cols) {
13
- try {
14
- for (var cols_1 = __values(cols), cols_1_1 = cols_1.next(); !cols_1_1.done; cols_1_1 = cols_1.next()) {
15
- var col = cols_1_1.value;
16
- if (col.frozenLeft) {
17
- ret.left.push(col);
18
- }
19
- else if (col.frozenRight) {
20
- ret.right.push(col);
21
- }
22
- else {
23
- ret.center.push(col);
24
- }
25
- }
26
- }
27
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
28
- finally {
29
- try {
30
- if (cols_1_1 && !cols_1_1.done && (_a = cols_1.return)) _a.call(cols_1);
31
- }
32
- finally { if (e_1) throw e_1.error; }
33
- }
34
- }
35
- return ret;
36
- }
37
- /**
38
- * Returns the widths of all group sets of a column
39
- */
40
- export function columnGroupWidths(groups, all) {
41
- return {
42
- left: columnTotalWidth(groups.left),
43
- center: columnTotalWidth(groups.center),
44
- right: columnTotalWidth(groups.right),
45
- total: Math.floor(columnTotalWidth(all))
46
- };
47
- }
48
- /**
49
- * Calculates the total width of all columns and their groups
50
- */
51
- export function columnTotalWidth(columns, prop) {
52
- var e_2, _a;
53
- var totalWidth = 0;
54
- if (columns) {
55
- try {
56
- for (var columns_1 = __values(columns), columns_1_1 = columns_1.next(); !columns_1_1.done; columns_1_1 = columns_1.next()) {
57
- var c = columns_1_1.value;
58
- var has = prop && c[prop];
59
- var width = has ? c[prop] : c.width;
60
- totalWidth = totalWidth + parseFloat(width);
61
- }
62
- }
63
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
64
- finally {
65
- try {
66
- if (columns_1_1 && !columns_1_1.done && (_a = columns_1.return)) _a.call(columns_1);
67
- }
68
- finally { if (e_2) throw e_2.error; }
69
- }
70
- }
71
- return totalWidth;
72
- }
73
- /**
74
- * Calculates the total width of all columns and their groups
75
- */
76
- export function columnsTotalWidth(columns, prop) {
77
- var e_3, _a;
78
- var totalWidth = 0;
79
- try {
80
- for (var columns_2 = __values(columns), columns_2_1 = columns_2.next(); !columns_2_1.done; columns_2_1 = columns_2.next()) {
81
- var column = columns_2_1.value;
82
- var has = prop && column[prop];
83
- totalWidth = totalWidth + (has ? column[prop] : column.width);
84
- }
85
- }
86
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
87
- finally {
88
- try {
89
- if (columns_2_1 && !columns_2_1.done && (_a = columns_2.return)) _a.call(columns_2);
90
- }
91
- finally { if (e_3) throw e_3.error; }
92
- }
93
- return totalWidth;
94
- }
95
- export function columnsByPinArr(val) {
96
- var colsByPinArr = [];
97
- var colsByPin = columnsByPin(val);
98
- colsByPinArr.push({ type: 'left', columns: colsByPin['left'] });
99
- colsByPinArr.push({ type: 'center', columns: colsByPin['center'] });
100
- colsByPinArr.push({ type: 'right', columns: colsByPin['right'] });
101
- return colsByPinArr;
102
- }
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHN3aW1sYW5lL25neC1kYXRhdGFibGUvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvY29sdW1uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsSUFBVzs7SUFDdEMsSUFBTSxHQUFHLEdBQTJDO1FBQ2xELElBQUksRUFBRSxFQUFFO1FBQ1IsTUFBTSxFQUFFLEVBQUU7UUFDVixLQUFLLEVBQUUsRUFBRTtLQUNWLENBQUM7SUFFRixJQUFJLElBQUksRUFBRTs7WUFDUixLQUFrQixJQUFBLFNBQUEsU0FBQSxJQUFJLENBQUEsMEJBQUEsNENBQUU7Z0JBQW5CLElBQU0sR0FBRyxpQkFBQTtnQkFDWixJQUFJLEdBQUcsQ0FBQyxVQUFVLEVBQUU7b0JBQ2xCLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNwQjtxQkFBTSxJQUFJLEdBQUcsQ0FBQyxXQUFXLEVBQUU7b0JBQzFCLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNyQjtxQkFBTTtvQkFDTCxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDdEI7YUFDRjs7Ozs7Ozs7O0tBQ0Y7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxNQUFXLEVBQUUsR0FBUTtJQUNyRCxPQUFPO1FBQ0wsSUFBSSxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDbkMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDdkMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDckMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDekMsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxPQUFjLEVBQUUsSUFBYTs7SUFDNUQsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBRW5CLElBQUksT0FBTyxFQUFFOztZQUNYLEtBQWdCLElBQUEsWUFBQSxTQUFBLE9BQU8sQ0FBQSxnQ0FBQSxxREFBRTtnQkFBcEIsSUFBTSxDQUFDLG9CQUFBO2dCQUNWLElBQU0sR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVCLElBQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUN0QyxVQUFVLEdBQUcsVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM3Qzs7Ozs7Ozs7O0tBQ0Y7SUFFRCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsT0FBWSxFQUFFLElBQVU7O0lBQ3hELElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQzs7UUFFbkIsS0FBcUIsSUFBQSxZQUFBLFNBQUEsT0FBTyxDQUFBLGdDQUFBLHFEQUFFO1lBQXpCLElBQU0sTUFBTSxvQkFBQTtZQUNmLElBQU0sR0FBRyxHQUFHLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakMsVUFBVSxHQUFHLFVBQVUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDL0Q7Ozs7Ozs7OztJQUVELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLEdBQVE7SUFDdEMsSUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLElBQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVwQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoRSxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwRSxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVsRSxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXR1cm5zIHRoZSBjb2x1bW5zIGJ5IHBpbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbHVtbnNCeVBpbihjb2xzOiBhbnlbXSkge1xuICBjb25zdCByZXQ6IHsgbGVmdDogYW55OyBjZW50ZXI6IGFueTsgcmlnaHQ6IGFueSB9ID0ge1xuICAgIGxlZnQ6IFtdLFxuICAgIGNlbnRlcjogW10sXG4gICAgcmlnaHQ6IFtdXG4gIH07XG5cbiAgaWYgKGNvbHMpIHtcbiAgICBmb3IgKGNvbnN0IGNvbCBvZiBjb2xzKSB7XG4gICAgICBpZiAoY29sLmZyb3plbkxlZnQpIHtcbiAgICAgICAgcmV0LmxlZnQucHVzaChjb2wpO1xuICAgICAgfSBlbHNlIGlmIChjb2wuZnJvemVuUmlnaHQpIHtcbiAgICAgICAgcmV0LnJpZ2h0LnB1c2goY29sKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldC5jZW50ZXIucHVzaChjb2wpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgd2lkdGhzIG9mIGFsbCBncm91cCBzZXRzIG9mIGEgY29sdW1uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb2x1bW5Hcm91cFdpZHRocyhncm91cHM6IGFueSwgYWxsOiBhbnkpIHtcbiAgcmV0dXJuIHtcbiAgICBsZWZ0OiBjb2x1bW5Ub3RhbFdpZHRoKGdyb3Vwcy5sZWZ0KSxcbiAgICBjZW50ZXI6IGNvbHVtblRvdGFsV2lkdGgoZ3JvdXBzLmNlbnRlciksXG4gICAgcmlnaHQ6IGNvbHVtblRvdGFsV2lkdGgoZ3JvdXBzLnJpZ2h0KSxcbiAgICB0b3RhbDogTWF0aC5mbG9vcihjb2x1bW5Ub3RhbFdpZHRoKGFsbCkpXG4gIH07XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlcyB0aGUgdG90YWwgd2lkdGggb2YgYWxsIGNvbHVtbnMgYW5kIHRoZWlyIGdyb3Vwc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY29sdW1uVG90YWxXaWR0aChjb2x1bW5zOiBhbnlbXSwgcHJvcD86IHN0cmluZykge1xuICBsZXQgdG90YWxXaWR0aCA9IDA7XG5cbiAgaWYgKGNvbHVtbnMpIHtcbiAgICBmb3IgKGNvbnN0IGMgb2YgY29sdW1ucykge1xuICAgICAgY29uc3QgaGFzID0gcHJvcCAmJiBjW3Byb3BdO1xuICAgICAgY29uc3Qgd2lkdGggPSBoYXMgPyBjW3Byb3BdIDogYy53aWR0aDtcbiAgICAgIHRvdGFsV2lkdGggPSB0b3RhbFdpZHRoICsgcGFyc2VGbG9hdCh3aWR0aCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRvdGFsV2lkdGg7XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlcyB0aGUgdG90YWwgd2lkdGggb2YgYWxsIGNvbHVtbnMgYW5kIHRoZWlyIGdyb3Vwc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY29sdW1uc1RvdGFsV2lkdGgoY29sdW1uczogYW55LCBwcm9wPzogYW55KSB7XG4gIGxldCB0b3RhbFdpZHRoID0gMDtcblxuICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBjb2x1bW5zKSB7XG4gICAgY29uc3QgaGFzID0gcHJvcCAmJiBjb2x1bW5bcHJvcF07XG4gICAgdG90YWxXaWR0aCA9IHRvdGFsV2lkdGggKyAoaGFzID8gY29sdW1uW3Byb3BdIDogY29sdW1uLndpZHRoKTtcbiAgfVxuXG4gIHJldHVybiB0b3RhbFdpZHRoO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29sdW1uc0J5UGluQXJyKHZhbDogYW55KSB7XG4gIGNvbnN0IGNvbHNCeVBpbkFyciA9IFtdO1xuICBjb25zdCBjb2xzQnlQaW4gPSBjb2x1bW5zQnlQaW4odmFsKTtcblxuICBjb2xzQnlQaW5BcnIucHVzaCh7IHR5cGU6ICdsZWZ0JywgY29sdW1uczogY29sc0J5UGluWydsZWZ0J10gfSk7XG4gIGNvbHNCeVBpbkFyci5wdXNoKHsgdHlwZTogJ2NlbnRlcicsIGNvbHVtbnM6IGNvbHNCeVBpblsnY2VudGVyJ10gfSk7XG4gIGNvbHNCeVBpbkFyci5wdXNoKHsgdHlwZTogJ3JpZ2h0JywgY29sdW1uczogY29sc0J5UGluWydyaWdodCddIH0pO1xuXG4gIHJldHVybiBjb2xzQnlQaW5BcnI7XG59XG4iXX0=
@@ -1,38 +0,0 @@
1
- if (typeof document !== 'undefined' && !document.elementsFromPoint) {
2
- document.elementsFromPoint = elementsFromPoint;
3
- }
4
- /*tslint:disable*/
5
- /**
6
- * Polyfill for `elementsFromPoint`
7
- *
8
- * https://developer.mozilla.org/en-US/docs/Web/API/Document/elementsFromPoint
9
- * https://gist.github.com/iddan/54d5d9e58311b0495a91bf06de661380
10
- * https://gist.github.com/oslego/7265412
11
- */
12
- export function elementsFromPoint(x, y) {
13
- var elements = [];
14
- var previousPointerEvents = [];
15
- var current; // TODO: window.getComputedStyle should be used with inferred type (Element)
16
- var i;
17
- var d;
18
- //if (document === undefined) return elements;
19
- // get all elements via elementFromPoint, and remove them from hit-testing in order
20
- while ((current = document.elementFromPoint(x, y)) && elements.indexOf(current) === -1 && current != null) {
21
- // push the element and its current style
22
- elements.push(current);
23
- previousPointerEvents.push({
24
- value: current.style.getPropertyValue('pointer-events'),
25
- priority: current.style.getPropertyPriority('pointer-events')
26
- });
27
- // add "pointer-events: none", to get to the underlying element
28
- current.style.setProperty('pointer-events', 'none', 'important');
29
- }
30
- // restore the previous pointer-events values
31
- for (i = previousPointerEvents.length; (d = previousPointerEvents[--i]);) {
32
- elements[i].style.setProperty('pointer-events', d.value ? d.value : '', d.priority);
33
- }
34
- // return our results
35
- return elements;
36
- }
37
- /*tslint:enable*/
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxtLWZyb20tcG9pbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac3dpbWxhbmUvbmd4LWRhdGF0YWJsZS8iLCJzb3VyY2VzIjpbImxpYi91dGlscy9lbG0tZnJvbS1wb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxJQUFJLE9BQU8sUUFBUSxLQUFLLFdBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRTtJQUNsRSxRQUFRLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7Q0FDaEQ7QUFFRCxrQkFBa0I7QUFDbEI7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLENBQVMsRUFBRSxDQUFTO0lBQ3BELElBQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNwQixJQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztJQUNqQyxJQUFJLE9BQVksQ0FBQyxDQUFDLDRFQUE0RTtJQUM5RixJQUFJLENBQUMsQ0FBQztJQUNOLElBQUksQ0FBQyxDQUFDO0lBRU4sOENBQThDO0lBRTlDLG1GQUFtRjtJQUNuRixPQUFPLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLE9BQU8sSUFBSSxJQUFJLEVBQUU7UUFDekcseUNBQXlDO1FBQ3pDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkIscUJBQXFCLENBQUMsSUFBSSxDQUFDO1lBQ3pCLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDO1lBQ3ZELFFBQVEsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDO1NBQzlELENBQUMsQ0FBQztRQUVILCtEQUErRDtRQUMvRCxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7S0FDbEU7SUFFRCw2Q0FBNkM7SUFDN0MsS0FBSyxDQUFDLEdBQUcscUJBQXFCLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBSTtRQUN6RSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQ3JGO0lBRUQscUJBQXFCO0lBQ3JCLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFDRCxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpZiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyAmJiAhZG9jdW1lbnQuZWxlbWVudHNGcm9tUG9pbnQpIHtcbiAgZG9jdW1lbnQuZWxlbWVudHNGcm9tUG9pbnQgPSBlbGVtZW50c0Zyb21Qb2ludDtcbn1cblxuLyp0c2xpbnQ6ZGlzYWJsZSovXG4vKipcbiAqIFBvbHlmaWxsIGZvciBgZWxlbWVudHNGcm9tUG9pbnRgXG4gKlxuICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0RvY3VtZW50L2VsZW1lbnRzRnJvbVBvaW50XG4gKiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9pZGRhbi81NGQ1ZDllNTgzMTFiMDQ5NWE5MWJmMDZkZTY2MTM4MFxuICogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vb3NsZWdvLzcyNjU0MTJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVsZW1lbnRzRnJvbVBvaW50KHg6IG51bWJlciwgeTogbnVtYmVyKSB7XG4gIGNvbnN0IGVsZW1lbnRzID0gW107XG4gIGNvbnN0IHByZXZpb3VzUG9pbnRlckV2ZW50cyA9IFtdO1xuICBsZXQgY3VycmVudDogYW55OyAvLyBUT0RPOiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSBzaG91bGQgYmUgdXNlZCB3aXRoIGluZmVycmVkIHR5cGUgKEVsZW1lbnQpXG4gIGxldCBpO1xuICBsZXQgZDtcblxuICAvL2lmIChkb2N1bWVudCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZWxlbWVudHM7XG5cbiAgLy8gZ2V0IGFsbCBlbGVtZW50cyB2aWEgZWxlbWVudEZyb21Qb2ludCwgYW5kIHJlbW92ZSB0aGVtIGZyb20gaGl0LXRlc3RpbmcgaW4gb3JkZXJcbiAgd2hpbGUgKChjdXJyZW50ID0gZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCh4LCB5KSkgJiYgZWxlbWVudHMuaW5kZXhPZihjdXJyZW50KSA9PT0gLTEgJiYgY3VycmVudCAhPSBudWxsKSB7XG4gICAgLy8gcHVzaCB0aGUgZWxlbWVudCBhbmQgaXRzIGN1cnJlbnQgc3R5bGVcbiAgICBlbGVtZW50cy5wdXNoKGN1cnJlbnQpO1xuICAgIHByZXZpb3VzUG9pbnRlckV2ZW50cy5wdXNoKHtcbiAgICAgIHZhbHVlOiBjdXJyZW50LnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3BvaW50ZXItZXZlbnRzJyksXG4gICAgICBwcmlvcml0eTogY3VycmVudC5zdHlsZS5nZXRQcm9wZXJ0eVByaW9yaXR5KCdwb2ludGVyLWV2ZW50cycpXG4gICAgfSk7XG5cbiAgICAvLyBhZGQgXCJwb2ludGVyLWV2ZW50czogbm9uZVwiLCB0byBnZXQgdG8gdGhlIHVuZGVybHlpbmcgZWxlbWVudFxuICAgIGN1cnJlbnQuc3R5bGUuc2V0UHJvcGVydHkoJ3BvaW50ZXItZXZlbnRzJywgJ25vbmUnLCAnaW1wb3J0YW50Jyk7XG4gIH1cblxuICAvLyByZXN0b3JlIHRoZSBwcmV2aW91cyBwb2ludGVyLWV2ZW50cyB2YWx1ZXNcbiAgZm9yIChpID0gcHJldmlvdXNQb2ludGVyRXZlbnRzLmxlbmd0aDsgKGQgPSBwcmV2aW91c1BvaW50ZXJFdmVudHNbLS1pXSk7ICkge1xuICAgIGVsZW1lbnRzW2ldLnN0eWxlLnNldFByb3BlcnR5KCdwb2ludGVyLWV2ZW50cycsIGQudmFsdWUgPyBkLnZhbHVlIDogJycsIGQucHJpb3JpdHkpO1xuICB9XG5cbiAgLy8gcmV0dXJuIG91ciByZXN1bHRzXG4gIHJldHVybiBlbGVtZW50cztcbn1cbi8qdHNsaW50OmVuYWJsZSovXG4iXX0=
@@ -1,8 +0,0 @@
1
- /**
2
- * Creates a unique object id.
3
- * http://stackoverflow.com/questions/6248666/how-to-generate-short-uid-like-ax4j9z-in-js
4
- */
5
- export function id() {
6
- return ('0000' + ((Math.random() * Math.pow(36, 4)) << 0).toString(36)).slice(-4);
7
- }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac3dpbWxhbmUvbmd4LWRhdGF0YWJsZS8iLCJzb3VyY2VzIjpbImxpYi91dGlscy9pZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsRUFBRTtJQUNoQixPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDcmVhdGVzIGEgdW5pcXVlIG9iamVjdCBpZC5cbiAqIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNjI0ODY2Ni9ob3ctdG8tZ2VuZXJhdGUtc2hvcnQtdWlkLWxpa2UtYXg0ajl6LWluLWpzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpZCgpIHtcbiAgcmV0dXJuICgnMDAwMCcgKyAoKE1hdGgucmFuZG9tKCkgKiBNYXRoLnBvdygzNiwgNCkpIDw8IDApLnRvU3RyaW5nKDM2KSkuc2xpY2UoLTQpO1xufVxuIl19
@@ -1,10 +0,0 @@
1
- export var Keys;
2
- (function (Keys) {
3
- Keys[Keys["up"] = 38] = "up";
4
- Keys[Keys["down"] = 40] = "down";
5
- Keys[Keys["return"] = 13] = "return";
6
- Keys[Keys["escape"] = 27] = "escape";
7
- Keys[Keys["left"] = 37] = "left";
8
- Keys[Keys["right"] = 39] = "right";
9
- })(Keys || (Keys = {}));
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5cy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bzd2ltbGFuZS9uZ3gtZGF0YXRhYmxlLyIsInNvdXJjZXMiOlsibGliL3V0aWxzL2tleXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksSUFPWDtBQVBELFdBQVksSUFBSTtJQUNkLDRCQUFPLENBQUE7SUFDUCxnQ0FBUyxDQUFBO0lBQ1Qsb0NBQVcsQ0FBQTtJQUNYLG9DQUFXLENBQUE7SUFDWCxnQ0FBUyxDQUFBO0lBQ1Qsa0NBQVUsQ0FBQTtBQUNaLENBQUMsRUFQVyxJQUFJLEtBQUosSUFBSSxRQU9mIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gS2V5cyB7XG4gIHVwID0gMzgsXG4gIGRvd24gPSA0MCxcbiAgcmV0dXJuID0gMTMsXG4gIGVzY2FwZSA9IDI3LFxuICBsZWZ0ID0gMzcsXG4gIHJpZ2h0ID0gMzlcbn1cbiJdfQ==
@@ -1,224 +0,0 @@
1
- import { __values } from "tslib";
2
- import { columnsByPin, columnsTotalWidth } from './column';
3
- /**
4
- * Calculates the Total Flex Grow
5
- */
6
- export function getTotalFlexGrow(columns) {
7
- var e_1, _a;
8
- var totalFlexGrow = 0;
9
- try {
10
- for (var columns_1 = __values(columns), columns_1_1 = columns_1.next(); !columns_1_1.done; columns_1_1 = columns_1.next()) {
11
- var c = columns_1_1.value;
12
- totalFlexGrow += c.flexGrow || 0;
13
- }
14
- }
15
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
16
- finally {
17
- try {
18
- if (columns_1_1 && !columns_1_1.done && (_a = columns_1.return)) _a.call(columns_1);
19
- }
20
- finally { if (e_1) throw e_1.error; }
21
- }
22
- return totalFlexGrow;
23
- }
24
- /**
25
- * Adjusts the column widths.
26
- * Inspired by: https://github.com/facebook/fixed-data-table/blob/master/src/FixedDataTableWidthHelper.js
27
- */
28
- export function adjustColumnWidths(allColumns, expectedWidth) {
29
- var columnsWidth = columnsTotalWidth(allColumns);
30
- var totalFlexGrow = getTotalFlexGrow(allColumns);
31
- var colsByGroup = columnsByPin(allColumns);
32
- if (columnsWidth !== expectedWidth) {
33
- scaleColumns(colsByGroup, expectedWidth, totalFlexGrow);
34
- }
35
- }
36
- /**
37
- * Resizes columns based on the flexGrow property, while respecting manually set widths
38
- */
39
- function scaleColumns(colsByGroup, maxWidth, totalFlexGrow) {
40
- var e_2, _a, e_3, _b;
41
- // calculate total width and flexgrow points for coulumns that can be resized
42
- for (var attr in colsByGroup) {
43
- try {
44
- for (var _c = (e_2 = void 0, __values(colsByGroup[attr])), _d = _c.next(); !_d.done; _d = _c.next()) {
45
- var column = _d.value;
46
- if (!column.canAutoResize) {
47
- maxWidth -= column.width;
48
- totalFlexGrow -= column.flexGrow ? column.flexGrow : 0;
49
- }
50
- else {
51
- column.width = 0;
52
- }
53
- }
54
- }
55
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
56
- finally {
57
- try {
58
- if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
59
- }
60
- finally { if (e_2) throw e_2.error; }
61
- }
62
- }
63
- var hasMinWidth = {};
64
- var remainingWidth = maxWidth;
65
- // resize columns until no width is left to be distributed
66
- do {
67
- var widthPerFlexPoint = remainingWidth / totalFlexGrow;
68
- remainingWidth = 0;
69
- for (var attr in colsByGroup) {
70
- try {
71
- for (var _e = (e_3 = void 0, __values(colsByGroup[attr])), _f = _e.next(); !_f.done; _f = _e.next()) {
72
- var column = _f.value;
73
- // if the column can be resize and it hasn't reached its minimum width yet
74
- if (column.canAutoResize && !hasMinWidth[column.prop]) {
75
- var newWidth = column.width + column.flexGrow * widthPerFlexPoint;
76
- if (column.minWidth !== undefined && newWidth < column.minWidth) {
77
- remainingWidth += newWidth - column.minWidth;
78
- column.width = column.minWidth;
79
- hasMinWidth[column.prop] = true;
80
- }
81
- else {
82
- column.width = newWidth;
83
- }
84
- }
85
- }
86
- }
87
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
88
- finally {
89
- try {
90
- if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
91
- }
92
- finally { if (e_3) throw e_3.error; }
93
- }
94
- }
95
- } while (remainingWidth !== 0);
96
- }
97
- /**
98
- * Forces the width of the columns to
99
- * distribute equally but overflowing when necessary
100
- *
101
- * Rules:
102
- *
103
- * - If combined withs are less than the total width of the grid,
104
- * proportion the widths given the min / max / normal widths to fill the width.
105
- *
106
- * - If the combined widths, exceed the total width of the grid,
107
- * use the standard widths.
108
- *
109
- * - If a column is resized, it should always use that width
110
- *
111
- * - The proportional widths should never fall below min size if specified.
112
- *
113
- * - If the grid starts off small but then becomes greater than the size ( + / - )
114
- * the width should use the original width; not the newly proportioned widths.
115
- */
116
- export function forceFillColumnWidths(allColumns, expectedWidth, startIdx, allowBleed, defaultColWidth) {
117
- var e_4, _a, e_5, _b;
118
- if (defaultColWidth === void 0) { defaultColWidth = 300; }
119
- var columnsToResize = allColumns.slice(startIdx + 1, allColumns.length).filter(function (c) {
120
- return c.canAutoResize !== false;
121
- });
122
- try {
123
- for (var columnsToResize_1 = __values(columnsToResize), columnsToResize_1_1 = columnsToResize_1.next(); !columnsToResize_1_1.done; columnsToResize_1_1 = columnsToResize_1.next()) {
124
- var column = columnsToResize_1_1.value;
125
- if (!column.$$oldWidth) {
126
- column.$$oldWidth = column.width;
127
- }
128
- }
129
- }
130
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
131
- finally {
132
- try {
133
- if (columnsToResize_1_1 && !columnsToResize_1_1.done && (_a = columnsToResize_1.return)) _a.call(columnsToResize_1);
134
- }
135
- finally { if (e_4) throw e_4.error; }
136
- }
137
- var additionWidthPerColumn = 0;
138
- var exceedsWindow = false;
139
- var contentWidth = getContentWidth(allColumns, defaultColWidth);
140
- var remainingWidth = expectedWidth - contentWidth;
141
- var columnsProcessed = [];
142
- var remainingWidthLimit = 1; // when to stop
143
- // This loop takes care of the
144
- do {
145
- additionWidthPerColumn = remainingWidth / columnsToResize.length;
146
- exceedsWindow = contentWidth >= expectedWidth;
147
- try {
148
- for (var columnsToResize_2 = (e_5 = void 0, __values(columnsToResize)), columnsToResize_2_1 = columnsToResize_2.next(); !columnsToResize_2_1.done; columnsToResize_2_1 = columnsToResize_2.next()) {
149
- var column = columnsToResize_2_1.value;
150
- if (exceedsWindow && allowBleed) {
151
- column.width = column.$$oldWidth || column.width || defaultColWidth;
152
- }
153
- else {
154
- var newSize = (column.width || defaultColWidth) + additionWidthPerColumn;
155
- if (column.minWidth && newSize < column.minWidth) {
156
- column.width = column.minWidth;
157
- columnsProcessed.push(column);
158
- }
159
- else if (column.maxWidth && newSize > column.maxWidth) {
160
- column.width = column.maxWidth;
161
- columnsProcessed.push(column);
162
- }
163
- else {
164
- column.width = newSize;
165
- }
166
- }
167
- column.width = Math.max(0, column.width);
168
- }
169
- }
170
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
171
- finally {
172
- try {
173
- if (columnsToResize_2_1 && !columnsToResize_2_1.done && (_b = columnsToResize_2.return)) _b.call(columnsToResize_2);
174
- }
175
- finally { if (e_5) throw e_5.error; }
176
- }
177
- contentWidth = getContentWidth(allColumns);
178
- remainingWidth = expectedWidth - contentWidth;
179
- removeProcessedColumns(columnsToResize, columnsProcessed);
180
- } while (remainingWidth > remainingWidthLimit && columnsToResize.length !== 0);
181
- }
182
- /**
183
- * Remove the processed columns from the current active columns.
184
- */
185
- function removeProcessedColumns(columnsToResize, columnsProcessed) {
186
- var e_6, _a;
187
- try {
188
- for (var columnsProcessed_1 = __values(columnsProcessed), columnsProcessed_1_1 = columnsProcessed_1.next(); !columnsProcessed_1_1.done; columnsProcessed_1_1 = columnsProcessed_1.next()) {
189
- var column = columnsProcessed_1_1.value;
190
- var index = columnsToResize.indexOf(column);
191
- columnsToResize.splice(index, 1);
192
- }
193
- }
194
- catch (e_6_1) { e_6 = { error: e_6_1 }; }
195
- finally {
196
- try {
197
- if (columnsProcessed_1_1 && !columnsProcessed_1_1.done && (_a = columnsProcessed_1.return)) _a.call(columnsProcessed_1);
198
- }
199
- finally { if (e_6) throw e_6.error; }
200
- }
201
- }
202
- /**
203
- * Gets the width of the columns
204
- */
205
- function getContentWidth(allColumns, defaultColWidth) {
206
- var e_7, _a;
207
- if (defaultColWidth === void 0) { defaultColWidth = 300; }
208
- var contentWidth = 0;
209
- try {
210
- for (var allColumns_1 = __values(allColumns), allColumns_1_1 = allColumns_1.next(); !allColumns_1_1.done; allColumns_1_1 = allColumns_1.next()) {
211
- var column = allColumns_1_1.value;
212
- contentWidth += column.width || defaultColWidth;
213
- }
214
- }
215
- catch (e_7_1) { e_7 = { error: e_7_1 }; }
216
- finally {
217
- try {
218
- if (allColumns_1_1 && !allColumns_1_1.done && (_a = allColumns_1.return)) _a.call(allColumns_1);
219
- }
220
- finally { if (e_7) throw e_7.error; }
221
- }
222
- return contentWidth;
223
- }
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0aC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bzd2ltbGFuZS9uZ3gtZGF0YXRhYmxlLyIsInNvdXJjZXMiOlsibGliL3V0aWxzL21hdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFM0Q7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsT0FBYzs7SUFDN0MsSUFBSSxhQUFhLEdBQUcsQ0FBQyxDQUFDOztRQUV0QixLQUFnQixJQUFBLFlBQUEsU0FBQSxPQUFPLENBQUEsZ0NBQUEscURBQUU7WUFBcEIsSUFBTSxDQUFDLG9CQUFBO1lBQ1YsYUFBYSxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO1NBQ2xDOzs7Ozs7Ozs7SUFFRCxPQUFPLGFBQWEsQ0FBQztBQUN2QixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLFVBQWUsRUFBRSxhQUFrQjtJQUNwRSxJQUFNLFlBQVksR0FBRyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuRCxJQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuRCxJQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFN0MsSUFBSSxZQUFZLEtBQUssYUFBYSxFQUFFO1FBQ2xDLFlBQVksQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0tBQ3pEO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxZQUFZLENBQUMsV0FBZ0IsRUFBRSxRQUFhLEVBQUUsYUFBa0I7O0lBQ3ZFLDZFQUE2RTtJQUM3RSxLQUFLLElBQU0sSUFBSSxJQUFJLFdBQVcsRUFBRTs7WUFDOUIsS0FBcUIsSUFBQSxvQkFBQSxTQUFBLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFBLGdCQUFBLDRCQUFFO2dCQUFu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QUFnQixDQUFDLENBQUM7S0FDM0QsUUFBUSxjQUFjLEdBQUcsbUJBQW1CLElBQUksZUFBZSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7QUFDakYsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxzQkFBc0IsQ0FBQyxlQUFzQixFQUFFLGdCQUF1Qjs7O1FBQzdFLEtBQXFCLElBQUEscUJBQUEsU0FBQSxnQkFBZ0IsQ0FBQSxrREFBQSxnRkFBRTtZQUFsQyxJQUFNLE1BQU0sNkJBQUE7WUFDZixJQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlDLGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ2xDOzs7Ozs7Ozs7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLGVBQWUsQ0FBQyxVQUFlLEVBQUUsZUFBNkI7O0lBQTdCLGdDQUFBLEVBQUEscUJBQTZCO0lBQ3JFLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQzs7UUFFckIsS0FBcUIsSUFBQSxlQUFBLFNBQUEsVUFBVSxDQUFBLHNDQUFBLDhEQUFFO1lBQTVCLElBQU0sTUFBTSx1QkFBQTtZQUNmLFlBQVksSUFBSSxNQUFNLENBQUMsS0FBSyxJQUFJLGVBQWUsQ0FBQztTQUNqRDs7Ozs7Ozs7O0lBRUQsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbHVtbnNCeVBpbiwgY29sdW1uc1RvdGFsV2lkdGggfSBmcm9tICcuL2NvbHVtbic7XG5cbi8qKlxuICogQ2FsY3VsYXRlcyB0aGUgVG90YWwgRmxleCBHcm93XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUb3RhbEZsZXhHcm93KGNvbHVtbnM6IGFueVtdKSB7XG4gIGxldCB0b3RhbEZsZXhHcm93ID0gMDtcblxuICBmb3IgKGNvbnN0IGMgb2YgY29sdW1ucykge1xuICAgIHRvdGFsRmxleEdyb3cgKz0gYy5mbGV4R3JvdyB8fCAwO1xuICB9XG5cbiAgcmV0dXJuIHRvdGFsRmxleEdyb3c7XG59XG5cbi8qKlxuICogQWRqdXN0cyB0aGUgY29sdW1uIHdpZHRocy5cbiAqIEluc3BpcmVkIGJ5OiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svZml4ZWQtZGF0YS10YWJsZS9ibG9iL21hc3Rlci9zcmMvRml4ZWREYXRhVGFibGVXaWR0aEhlbHBlci5qc1xuICovXG5leHBvcnQgZnVuY3Rpb24gYWRqdXN0Q29sdW1uV2lkdGhzKGFsbENvbHVtbnM6IGFueSwgZXhwZWN0ZWRXaWR0aDogYW55KSB7XG4gIGNvbnN0IGNvbHVtbnNXaWR0aCA9IGNvbHVtbnNUb3RhbFdpZHRoKGFsbENvbHVtbnMpO1xuICBjb25zdCB0b3RhbEZsZXhHcm93ID0gZ2V0VG90YWxGbGV4R3JvdyhhbGxDb2x1bW5zKTtcbiAgY29uc3QgY29sc0J5R3JvdXAgPSBjb2x1bW5zQnlQaW4oYWxsQ29sdW1ucyk7XG5cbiAgaWYgKGNvbHVtbnNXaWR0aCAhPT0gZXhwZWN0ZWRXaWR0aCkge1xuICAgIHNjYWxlQ29sdW1ucyhjb2xzQnlHcm91cCwgZXhwZWN0ZWRXaWR0aCwgdG90YWxGbGV4R3Jvdyk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXNpemVzIGNvbHVtbnMgYmFzZWQgb24gdGhlIGZsZXhHcm93IHByb3BlcnR5LCB3aGlsZSByZXNwZWN0aW5nIG1hbnVhbGx5IHNldCB3aWR0aHNcbiAqL1xuZnVuY3Rpb24gc2NhbGVDb2x1bW5zKGNvbHNCeUdyb3VwOiBhbnksIG1heFdpZHRoOiBhbnksIHRvdGFsRmxleEdyb3c6IGFueSkge1xuICAvLyBjYWxjdWxhdGUgdG90YWwgd2lkdGggYW5kIGZsZXhncm93IHBvaW50cyBmb3IgY291bHVtbnMgdGhhdCBjYW4gYmUgcmVzaXplZFxuICBmb3IgKGNvbnN0IGF0dHIgaW4gY29sc0J5R3JvdXApIHtcbiAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBjb2xzQnlHcm91cFthdHRyXSkge1xuICAgICAgaWYgKCFjb2x1bW4uY2FuQXV0b1Jlc2l6ZSkge1xuICAgICAgICBtYXhXaWR0aCAtPSBjb2x1bW4ud2lkdGg7XG4gICAgICAgIHRvdGFsRmxleEdyb3cgLT0gY29sdW1uLmZsZXhHcm93ID8gY29sdW1uLmZsZXhHcm93IDogMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbHVtbi53aWR0aCA9IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFzTWluV2lkdGggPSB7fTtcbiAgbGV0IHJlbWFpbmluZ1dpZHRoID0gbWF4V2lkdGg7XG5cbiAgLy8gcmVzaXplIGNvbHVtbnMgdW50aWwgbm8gd2lkdGggaXMgbGVmdCB0byBiZSBkaXN0cmlidXRlZFxuICBkbyB7XG4gICAgY29uc3Qgd2lkdGhQZXJGbGV4UG9pbnQgPSByZW1haW5pbmdXaWR0aCAvIHRvdGFsRmxleEdyb3c7XG4gICAgcmVtYWluaW5nV2lkdGggPSAwO1xuXG4gICAgZm9yIChjb25zdCBhdHRyIGluIGNvbHNCeUdyb3VwKSB7XG4gICAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBjb2xzQnlHcm91cFthdHRyXSkge1xuICAgICAgICAvLyBpZiB0aGUgY29sdW1uIGNhbiBiZSByZXNpemUgYW5kIGl0IGhhc24ndCByZWFjaGVkIGl0cyBtaW5pbXVtIHdpZHRoIHlldFxuICAgICAgICBpZiAoY29sdW1uLmNhbkF1dG9SZXNpemUgJiYgIWhhc01pbldpZHRoW2NvbHVtbi5wcm9wXSkge1xuICAgICAgICAgIGNvbnN0IG5ld1dpZHRoID0gY29sdW1uLndpZHRoICsgY29sdW1uLmZsZXhHcm93ICogd2lkdGhQZXJGbGV4UG9pbnQ7XG4gICAgICAgICAgaWYgKGNvbHVtbi5taW5XaWR0aCAhPT0gdW5kZWZpbmVkICYmIG5ld1dpZHRoIDwgY29sdW1uLm1pbldpZHRoKSB7XG4gICAgICAgICAgICByZW1haW5pbmdXaWR0aCArPSBuZXdXaWR0aCAtIGNvbHVtbi5taW5XaWR0aDtcbiAgICAgICAgICAgIGNvbHVtbi53aWR0aCA9IGNvbHVtbi5taW5XaWR0aDtcbiAgICAgICAgICAgIGhhc01pbldpZHRoW2NvbHVtbi5wcm9wXSA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbHVtbi53aWR0aCA9IG5ld1dpZHRoO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSB3aGlsZSAocmVtYWluaW5nV2lkdGggIT09IDApO1xufVxuXG4vKipcbiAqIEZvcmNlcyB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbnMgdG9cbiAqIGRpc3RyaWJ1dGUgZXF1YWxseSBidXQgb3ZlcmZsb3dpbmcgd2hlbiBuZWNlc3NhcnlcbiAqXG4gKiBSdWxlczpcbiAqXG4gKiAgLSBJZiBjb21iaW5lZCB3aXRocyBhcmUgbGVzcyB0aGFuIHRoZSB0b3RhbCB3aWR0aCBvZiB0aGUgZ3JpZCxcbiAqICAgIHByb3BvcnRpb24gdGhlIHdpZHRocyBnaXZlbiB0aGUgbWluIC8gbWF4IC8gbm9ybWFsIHdpZHRocyB0byBmaWxsIHRoZSB3aWR0aC5cbiAqXG4gKiAgLSBJZiB0aGUgY29tYmluZWQgd2lkdGhzLCBleGNlZWQgdGhlIHRvdGFsIHdpZHRoIG9mIHRoZSBncmlkLFxuICogICAgdXNlIHRoZSBzdGFuZGFyZCB3aWR0aHMuXG4gKlxuICogIC0gSWYgYSBjb2x1bW4gaXMgcmVzaXplZCwgaXQgc2hvdWxkIGFsd2F5cyB1c2UgdGhhdCB3aWR0aFxuICpcbiAqICAtIFRoZSBwcm9wb3J0aW9uYWwgd2lkdGhzIHNob3VsZCBuZXZlciBmYWxsIGJlbG93IG1pbiBzaXplIGlmIHNwZWNpZmllZC5cbiAqXG4gKiAgLSBJZiB0aGUgZ3JpZCBzdGFydHMgb2ZmIHNtYWxsIGJ1dCB0aGVuIGJlY29tZXMgZ3JlYXRlciB0aGFuIHRoZSBzaXplICggKyAvIC0gKVxuICogICAgdGhlIHdpZHRoIHNob3VsZCB1c2UgdGhlIG9yaWdpbmFsIHdpZHRoOyBub3QgdGhlIG5ld2x5IHByb3BvcnRpb25lZCB3aWR0aHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JjZUZpbGxDb2x1bW5XaWR0aHMoXG4gIGFsbENvbHVtbnM6IGFueVtdLFxuICBleHBlY3RlZFdpZHRoOiBudW1iZXIsXG4gIHN0YXJ0SWR4OiBudW1iZXIsXG4gIGFsbG93QmxlZWQ6IGJvb2xlYW4sXG4gIGRlZmF1bHRDb2xXaWR0aDogbnVtYmVyID0gMzAwXG4pIHtcbiAgY29uc3QgY29sdW1uc1RvUmVzaXplID0gYWxsQ29sdW1ucy5zbGljZShzdGFydElkeCArIDEsIGFsbENvbHVtbnMubGVuZ3RoKS5maWx0ZXIoYyA9PiB7XG4gICAgcmV0dXJuIGMuY2FuQXV0b1Jlc2l6ZSAhPT0gZmFsc2U7XG4gIH0pO1xuXG4gIGZvciAoY29uc3QgY29sdW1uIG9mIGNvbHVtbnNUb1Jlc2l6ZSkge1xuICAgIGlmICghY29sdW1uLiQkb2xkV2lkdGgpIHtcbiAgICAgIGNvbHVtbi4kJG9sZFdpZHRoID0gY29sdW1uLndpZHRoO1xuICAgIH1cbiAgfVxuXG4gIGxldCBhZGRpdGlvbldpZHRoUGVyQ29sdW1uID0gMDtcbiAgbGV0IGV4Y2VlZHNXaW5kb3cgPSBmYWxzZTtcbiAgbGV0IGNvbnRlbnRXaWR0aCA9IGdldENvbnRlbnRXaWR0aChhbGxDb2x1bW5zLCBkZWZhdWx0Q29sV2lkdGgpO1xuICBsZXQgcmVtYWluaW5nV2lkdGggPSBleHBlY3RlZFdpZHRoIC0gY29udGVudFdpZHRoO1xuICBjb25zdCBjb2x1bW5zUHJvY2Vzc2VkOiBhbnlbXSA9IFtdO1xuICBjb25zdCByZW1haW5pbmdXaWR0aExpbWl0ID0gMTsgLy8gd2hlbiB0byBzdG9wXG5cbiAgLy8gVGhpcyBsb29wIHRha2VzIGNhcmUgb2YgdGhlXG4gIGRvIHtcbiAgICBhZGRpdGlvbldpZHRoUGVyQ29sdW1uID0gcmVtYWluaW5nV2lkdGggLyBjb2x1bW5zVG9SZXNpemUubGVuZ3RoO1xuICAgIGV4Y2VlZHNXaW5kb3cgPSBjb250ZW50V2lkdGggPj0gZXhwZWN0ZWRXaWR0aDtcblxuICAgIGZvciAoY29uc3QgY29sdW1uIG9mIGNvbHVtbnNUb1Jlc2l6ZSkge1xuICAgICAgaWYgKGV4Y2VlZHNXaW5kb3cgJiYgYWxsb3dCbGVlZCkge1xuICAgICAgICBjb2x1bW4ud2lkdGggPSBjb2x1bW4uJCRvbGRXaWR0aCB8fCBjb2x1bW4ud2lkdGggfHwgZGVmYXVsdENvbFdpZHRoO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbmV3U2l6ZSA9IChjb2x1bW4ud2lkdGggfHwgZGVmYXVsdENvbFdpZHRoKSArIGFkZGl0aW9uV2lkdGhQZXJDb2x1bW47XG5cbiAgICAgICAgaWYgKGNvbHVtbi5taW5XaWR0aCAmJiBuZXdTaXplIDwgY29sdW1uLm1pbldpZHRoKSB7XG4gICAgICAgICAgY29sdW1uLndpZHRoID0gY29sdW1uLm1pbldpZHRoO1xuICAgICAgICAgIGNvbHVtbnNQcm9jZXNzZWQucHVzaChjb2x1bW4pO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbHVtbi5tYXhXaWR0aCAmJiBuZXdTaXplID4gY29sdW1uLm1heFdpZHRoKSB7XG4gICAgICAgICAgY29sdW1uLndpZHRoID0gY29sdW1uLm1heFdpZHRoO1xuICAgICAgICAgIGNvbHVtbnNQcm9jZXNzZWQucHVzaChjb2x1bW4pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbHVtbi53aWR0aCA9IG5ld1NpemU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29sdW1uLndpZHRoID0gTWF0aC5tYXgoMCwgY29sdW1uLndpZHRoKTtcbiAgICB9XG5cbiAgICBjb250ZW50V2lkdGggPSBnZXRDb250ZW50V2lkdGgoYWxsQ29sdW1ucyk7XG4gICAgcmVtYWluaW5nV2lkdGggPSBleHBlY3RlZFdpZHRoIC0gY29udGVudFdpZHRoO1xuICAgIHJlbW92ZVByb2Nlc3NlZENvbHVtbnMoY29sdW1uc1RvUmVzaXplLCBjb2x1bW5zUHJvY2Vzc2VkKTtcbiAgfSB3aGlsZSAocmVtYWluaW5nV2lkdGggPiByZW1haW5pbmdXaWR0aExpbWl0ICYmIGNvbHVtbnNUb1Jlc2l6ZS5sZW5ndGggIT09IDApO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgcHJvY2Vzc2VkIGNvbHVtbnMgZnJvbSB0aGUgY3VycmVudCBhY3RpdmUgY29sdW1ucy5cbiAqL1xuZnVuY3Rpb24gcmVtb3ZlUHJvY2Vzc2VkQ29sdW1ucyhjb2x1bW5zVG9SZXNpemU6IGFueVtdLCBjb2x1bW5zUHJvY2Vzc2VkOiBhbnlbXSkge1xuICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBjb2x1bW5zUHJvY2Vzc2VkKSB7XG4gICAgY29uc3QgaW5kZXggPSBjb2x1bW5zVG9SZXNpemUuaW5kZXhPZihjb2x1bW4pO1xuICAgIGNvbHVtbnNUb1Jlc2l6ZS5zcGxpY2UoaW5kZXgsIDEpO1xuICB9XG59XG5cbi8qKlxuICogR2V0cyB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbnNcbiAqL1xuZnVuY3Rpb24gZ2V0Q29udGVudFdpZHRoKGFsbENvbHVtbnM6IGFueSwgZGVmYXVsdENvbFdpZHRoOiBudW1iZXIgPSAzMDApOiBudW1iZXIge1xuICBsZXQgY29udGVudFdpZHRoID0gMDtcblxuICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBhbGxDb2x1bW5zKSB7XG4gICAgY29udGVudFdpZHRoICs9IGNvbHVtbi53aWR0aCB8fCBkZWZhdWx0Q29sV2lkdGg7XG4gIH1cblxuICByZXR1cm4gY29udGVudFdpZHRoO1xufVxuIl19
@@ -1,40 +0,0 @@
1
- import { camelCase } from './camel-case';
2
- var cache = {};
3
- var testStyle = typeof document !== 'undefined' ? document.createElement('div').style : undefined;
4
- var ɵ0 = function () {
5
- var styles = typeof window !== 'undefined' ? window.getComputedStyle(document.documentElement, '') : undefined;
6
- var match = typeof styles !== 'undefined'
7
- ? Array.prototype.slice
8
- .call(styles)
9
- .join('')
10
- .match(/-(moz|webkit|ms)-/)
11
- : null;
12
- var pre = match !== null ? match[1] : undefined;
13
- // tslint:disable-next-line: tsr-detect-non-literal-regexp
14
- var dom = typeof pre !== 'undefined' ? 'WebKit|Moz|MS|O'.match(new RegExp('(' + pre + ')', 'i'))[1] : undefined;
15
- return dom
16
- ? {
17
- dom: dom,
18
- lowercase: pre,
19
- css: "-" + pre + "-",
20
- js: pre[0].toUpperCase() + pre.substr(1)
21
- }
22
- : undefined;
23
- };
24
- // Get Prefix
25
- // http://davidwalsh.name/vendor-prefix
26
- var prefix = (ɵ0)();
27
- export function getVendorPrefixedName(property) {
28
- var name = camelCase(property);
29
- if (!cache[name]) {
30
- if (prefix !== undefined && testStyle[prefix.css + property] !== undefined) {
31
- cache[name] = prefix.css + property;
32
- }
33
- else if (testStyle[property] !== undefined) {
34
- cache[name] = property;
35
- }
36
- }
37
- return cache[name];
38
- }
39
- export { ɵ0 };
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZml4ZXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac3dpbWxhbmUvbmd4LWRhdGF0YWJsZS8iLCJzb3VyY2VzIjpbImxpYi91dGlscy9wcmVmaXhlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDLElBQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztBQUNqQixJQUFNLFNBQVMsR0FBRyxPQUFPLFFBQVEsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7U0FJcEY7SUFDZCxJQUFNLE1BQU0sR0FBRyxPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDakgsSUFBTSxLQUFLLEdBQ1QsT0FBTyxNQUFNLEtBQUssV0FBVztRQUMzQixDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLO2FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUM7YUFDWixJQUFJLENBQUMsRUFBRSxDQUFDO2FBQ1IsS0FBSyxDQUFDLG1CQUFtQixDQUFDO1FBQy9CLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDWCxJQUFNLEdBQUcsR0FBRyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNsRCwwREFBMEQ7SUFDMUQsSUFBTSxHQUFHLEdBQUcsT0FBTyxHQUFHLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBRWxILE9BQU8sR0FBRztRQUNSLENBQUMsQ0FBQztZQUNFLEdBQUcsS0FBQTtZQUNILFNBQVMsRUFBRSxHQUFHO1lBQ2QsR0FBRyxFQUFFLE1BQUksR0FBRyxNQUFHO1lBQ2YsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztTQUN6QztRQUNILENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDaEIsQ0FBQztBQXZCRCxhQUFhO0FBQ2IsdUNBQXVDO0FBQ3ZDLElBQU0sTUFBTSxHQUFHLElBcUJiLEVBQUUsQ0FBQztBQUVMLE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxRQUFnQjtJQUNwRCxJQUFNLElBQUksR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNoQixJQUFJLE1BQU0sS0FBSyxTQUFTLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQzFFLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQztTQUNyQzthQUFNLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLFNBQVMsRUFBRTtZQUM1QyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDO1NBQ3hCO0tBQ0Y7SUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2FtZWxDYXNlIH0gZnJvbSAnLi9jYW1lbC1jYXNlJztcblxuY29uc3QgY2FjaGUgPSB7fTtcbmNvbnN0IHRlc3RTdHlsZSA9IHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgPyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKS5zdHlsZSA6IHVuZGVmaW5lZDtcblxuLy8gR2V0IFByZWZpeFxuLy8gaHR0cDovL2Rhdmlkd2Fsc2gubmFtZS92ZW5kb3ItcHJlZml4XG5jb25zdCBwcmVmaXggPSAoZnVuY3Rpb24gKCkge1xuICBjb25zdCBzdHlsZXMgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgJycpIDogdW5kZWZpbmVkO1xuICBjb25zdCBtYXRjaCA9XG4gICAgdHlwZW9mIHN0eWxlcyAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgID8gQXJyYXkucHJvdG90eXBlLnNsaWNlXG4gICAgICAgICAgLmNhbGwoc3R5bGVzKVxuICAgICAgICAgIC5qb2luKCcnKVxuICAgICAgICAgIC5tYXRjaCgvLShtb3p8d2Via2l0fG1zKS0vKVxuICAgICAgOiBudWxsO1xuICBjb25zdCBwcmUgPSBtYXRjaCAhPT0gbnVsbCA/IG1hdGNoWzFdIDogdW5kZWZpbmVkO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IHRzci1kZXRlY3Qtbm9uLWxpdGVyYWwtcmVnZXhwXG4gIGNvbnN0IGRvbSA9IHR5cGVvZiBwcmUgIT09ICd1bmRlZmluZWQnID8gJ1dlYktpdHxNb3p8TVN8TycubWF0Y2gobmV3IFJlZ0V4cCgnKCcgKyBwcmUgKyAnKScsICdpJykpWzFdIDogdW5kZWZpbmVkO1xuXG4gIHJldHVybiBkb21cbiAgICA/IHtcbiAgICAgICAgZG9tLFxuICAgICAgICBsb3dlcmNhc2U6IHByZSxcbiAgICAgICAgY3NzOiBgLSR7cHJlfS1gLFxuICAgICAgICBqczogcHJlWzBdLnRvVXBwZXJDYXNlKCkgKyBwcmUuc3Vic3RyKDEpXG4gICAgICB9XG4gICAgOiB1bmRlZmluZWQ7XG59KSgpO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmVuZG9yUHJlZml4ZWROYW1lKHByb3BlcnR5OiBzdHJpbmcpIHtcbiAgY29uc3QgbmFtZSA9IGNhbWVsQ2FzZShwcm9wZXJ0eSk7XG5cbiAgaWYgKCFjYWNoZVtuYW1lXSkge1xuICAgIGlmIChwcmVmaXggIT09IHVuZGVmaW5lZCAmJiB0ZXN0U3R5bGVbcHJlZml4LmNzcyArIHByb3BlcnR5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjYWNoZVtuYW1lXSA9IHByZWZpeC5jc3MgKyBwcm9wZXJ0eTtcbiAgICB9IGVsc2UgaWYgKHRlc3RTdHlsZVtwcm9wZXJ0eV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgY2FjaGVbbmFtZV0gPSBwcm9wZXJ0eTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY2FjaGVbbmFtZV07XG59XG4iXX0=
@@ -1,137 +0,0 @@
1
- /**
2
- * This object contains the cache of the various row heights that are present inside
3
- * the data table. Its based on Fenwick tree data structure that helps with
4
- * querying sums that have time complexity of log n.
5
- *
6
- * Fenwick Tree Credits: http://petr-mitrichev.blogspot.com/2013/05/fenwick-tree-range-updates.html
7
- * https://github.com/mikolalysenko/fenwick-tree
8
- *
9
- */
10
- var RowHeightCache = /** @class */ (function () {
11
- function RowHeightCache() {
12
- /**
13
- * Tree Array stores the cumulative information of the row heights to perform efficient
14
- * range queries and updates. Currently the tree is initialized to the base row
15
- * height instead of the detail row height.
16
- */
17
- this.treeArray = [];
18
- }
19
- /**
20
- * Clear the Tree array.
21
- */
22
- RowHeightCache.prototype.clearCache = function () {
23
- this.treeArray = [];
24
- };
25
- /**
26
- * Initialize the Fenwick tree with row Heights.
27
- *
28
- * @param rows The array of rows which contain the expanded status.
29
- * @param rowHeight The row height.
30
- * @param detailRowHeight The detail row height.
31
- */
32
- RowHeightCache.prototype.initCache = function (details) {
33
- var rows = details.rows, rowHeight = details.rowHeight, detailRowHeight = details.detailRowHeight, externalVirtual = details.externalVirtual, rowCount = details.rowCount, rowIndexes = details.rowIndexes, rowExpansions = details.rowExpansions;
34
- var isFn = typeof rowHeight === 'function';
35
- var isDetailFn = typeof detailRowHeight === 'function';
36
- if (!isFn && isNaN(rowHeight)) {
37
- throw new Error("Row Height cache initialization failed. Please ensure that 'rowHeight' is a\n valid number or function value: (" + rowHeight + ") when 'scrollbarV' is enabled.");
38
- }
39
- // Add this additional guard in case detailRowHeight is set to 'auto' as it wont work.
40
- if (!isDetailFn && isNaN(detailRowHeight)) {
41
- throw new Error("Row Height cache initialization failed. Please ensure that 'detailRowHeight' is a\n valid number or function value: (" + detailRowHeight + ") when 'scrollbarV' is enabled.");
42
- }
43
- var n = externalVirtual ? rowCount : rows.length;
44
- this.treeArray = new Array(n);
45
- for (var i = 0; i < n; ++i) {
46
- this.treeArray[i] = 0;
47
- }
48
- for (var i = 0; i < n; ++i) {
49
- var row = rows[i];
50
- var currentRowHeight = rowHeight;
51
- if (isFn) {
52
- currentRowHeight = rowHeight(row);
53
- }
54
- // Add the detail row height to the already expanded rows.
55
- // This is useful for the table that goes through a filter or sort.
56
- var expanded = rowExpansions.has(row);
57
- if (row && expanded) {
58
- if (isDetailFn) {
59
- var index = rowIndexes.get(row);
60
- currentRowHeight += detailRowHeight(row, index);
61
- }
62
- else {
63
- currentRowHeight += detailRowHeight;
64
- }
65
- }
66
- this.update(i, currentRowHeight);
67
- }
68
- };
69
- /**
70
- * Given the ScrollY position i.e. sum, provide the rowIndex
71
- * that is present in the current view port. Below handles edge cases.
72
- */
73
- RowHeightCache.prototype.getRowIndex = function (scrollY) {
74
- if (scrollY === 0)
75
- return 0;
76
- return this.calcRowIndex(scrollY);
77
- };
78
- /**
79
- * When a row is expanded or rowHeight is changed, update the height. This can
80
- * be utilized in future when Angular Data table supports dynamic row heights.
81
- */
82
- RowHeightCache.prototype.update = function (atRowIndex, byRowHeight) {
83
- if (!this.treeArray.length) {
84
- throw new Error("Update at index " + atRowIndex + " with value " + byRowHeight + " failed:\n Row Height cache not initialized.");
85
- }
86
- var n = this.treeArray.length;
87
- atRowIndex |= 0;
88
- while (atRowIndex < n) {
89
- this.treeArray[atRowIndex] += byRowHeight;
90
- atRowIndex |= atRowIndex + 1;
91
- }
92
- };
93
- /**
94
- * Range Sum query from 1 to the rowIndex
95
- */
96
- RowHeightCache.prototype.query = function (atIndex) {
97
- if (!this.treeArray.length) {
98
- throw new Error("query at index " + atIndex + " failed: Fenwick tree array not initialized.");
99
- }
100
- var sum = 0;
101
- atIndex |= 0;
102
- while (atIndex >= 0) {
103
- sum += this.treeArray[atIndex];
104
- atIndex = (atIndex & (atIndex + 1)) - 1;
105
- }
106
- return sum;
107
- };
108
- /**
109
- * Find the total height between 2 row indexes
110
- */
111
- RowHeightCache.prototype.queryBetween = function (atIndexA, atIndexB) {
112
- return this.query(atIndexB) - this.query(atIndexA - 1);
113
- };
114
- /**
115
- * Given the ScrollY position i.e. sum, provide the rowIndex
116
- * that is present in the current view port.
117
- */
118
- RowHeightCache.prototype.calcRowIndex = function (sum) {
119
- if (!this.treeArray.length)
120
- return 0;
121
- var pos = -1;
122
- var dataLength = this.treeArray.length;
123
- // Get the highest bit for the block size.
124
- var highestBit = Math.pow(2, dataLength.toString(2).length - 1);
125
- for (var blockSize = highestBit; blockSize !== 0; blockSize >>= 1) {
126
- var nextPos = pos + blockSize;
127
- if (nextPos < dataLength && sum >= this.treeArray[nextPos]) {
128
- sum -= this.treeArray[nextPos];
129
- pos = nextPos;
130
- }
131
- }
132
- return pos + 1;
133
- };
134
- return RowHeightCache;
135
- }());
136
- export { RowHeightCache };
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWhlaWdodC1jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bzd2ltbGFuZS9uZ3gtZGF0YXRhYmxlLyIsInNvdXJjZXMiOlsibGliL3V0aWxzL3Jvdy1oZWlnaHQtY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFDSDtJQUFBO1FBQ0U7Ozs7V0FJRztRQUNLLGNBQVMsR0FBYSxFQUFFLENBQUM7SUEySW5DLENBQUM7SUF6SUM7O09BRUc7SUFDSCxtQ0FBVSxHQUFWO1FBQ0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGtDQUFTLEdBQVQsVUFBVSxPQUFZO1FBQ1osSUFBQSxtQkFBSSxFQUFFLDZCQUFTLEVBQUUseUNBQWUsRUFBRSx5Q0FBZSxFQUFFLDJCQUFRLEVBQUUsK0JBQVUsRUFBRSxxQ0FBYSxDQUFhO1FBQzNHLElBQU0sSUFBSSxHQUFHLE9BQU8sU0FBUyxLQUFLLFVBQVUsQ0FBQztRQUM3QyxJQUFNLFVBQVUsR0FBRyxPQUFPLGVBQWUsS0FBSyxVQUFVLENBQUM7UUFFekQsSUFBSSxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQywySEFDcUIsU0FBUyxvQ0FBaUMsQ0FBQyxDQUFDO1NBQ2xGO1FBRUQsc0ZBQXNGO1FBQ3RGLElBQUksQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ3pDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUlBQ3FCLGVBQWUsb0NBQWlDLENBQUMsQ0FBQztTQUN4RjtRQUVELElBQU0sQ0FBQyxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ25ELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFF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VUFBcUIsR0FBVztRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFFckMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDYixJQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUV6QywwQ0FBMEM7UUFDMUMsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFbEUsS0FBSyxJQUFJLFNBQVMsR0FBRyxVQUFVLEVBQUUsU0FBUyxLQUFLLENBQUMsRUFBRSxTQUFTLEtBQUssQ0FBQyxFQUFFO1lBQ2pFLElBQU0sT0FBTyxHQUFHLEdBQUcsR0FBRyxTQUFTLENBQUM7WUFDaEMsSUFBSSxPQUFPLEdBQUcsVUFBVSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUMxRCxHQUFHLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDL0IsR0FBRyxHQUFHLE9BQU8sQ0FBQzthQUNmO1NBQ0Y7UUFFRCxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUNILHFCQUFDO0FBQUQsQ0FBQyxBQWpKRCxJQWlKQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpcyBvYmplY3QgY29udGFpbnMgdGhlIGNhY2hlIG9mIHRoZSB2YXJpb3VzIHJvdyBoZWlnaHRzIHRoYXQgYXJlIHByZXNlbnQgaW5zaWRlXG4gKiB0aGUgZGF0YSB0YWJsZS4gICBJdHMgYmFzZWQgb24gRmVud2ljayB0cmVlIGRhdGEgc3RydWN0dXJlIHRoYXQgaGVscHMgd2l0aFxuICogcXVlcnlpbmcgc3VtcyB0aGF0IGhhdmUgdGltZSBjb21wbGV4aXR5IG9mIGxvZyBuLlxuICpcbiAqIEZlbndpY2sgVHJlZSBDcmVkaXRzOiBodHRwOi8vcGV0ci1taXRyaWNoZXYuYmxvZ3Nwb3QuY29tLzIwMTMvMDUvZmVud2ljay10cmVlLXJhbmdlLXVwZGF0ZXMuaHRtbFxuICogaHR0cHM6Ly9naXRodWIuY29tL21pa29sYWx5c2Vua28vZmVud2ljay10cmVlXG4gKlxuICovXG5leHBvcnQgY2xhc3MgUm93SGVpZ2h0Q2FjaGUge1xuICAvKipcbiAgICogVHJlZSBBcnJheSBzdG9yZXMgdGhlIGN1bXVsYXRpdmUgaW5mb3JtYXRpb24gb2YgdGhlIHJvdyBoZWlnaHRzIHRvIHBlcmZvcm0gZWZmaWNpZW50XG4gICAqIHJhbmdlIHF1ZXJpZXMgYW5kIHVwZGF0ZXMuICBDdXJyZW50bHkgdGhlIHRyZWUgaXMgaW5pdGlhbGl6ZWQgdG8gdGhlIGJhc2Ugcm93XG4gICAqIGhlaWdodCBpbnN0ZWFkIG9mIHRoZSBkZXRhaWwgcm93IGhlaWdodC5cbiAgICovXG4gIHByaXZhdGUgdHJlZUFycmF5OiBudW1iZXJbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBDbGVhciB0aGUgVHJlZSBhcnJheS5cbiAgICovXG4gIGNsZWFyQ2FjaGUoKTogdm9pZCB7XG4gICAgdGhpcy50cmVlQXJyYXkgPSBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBGZW53aWNrIHRyZWUgd2l0aCByb3cgSGVpZ2h0cy5cbiAgICpcbiAgICogQHBhcmFtIHJvd3MgVGhlIGFycmF5IG9mIHJvd3Mgd2hpY2ggY29udGFpbiB0aGUgZXhwYW5kZWQgc3RhdHVzLlxuICAgKiBAcGFyYW0gcm93SGVpZ2h0IFRoZSByb3cgaGVpZ2h0LlxuICAgKiBAcGFyYW0gZGV0YWlsUm93SGVpZ2h0IFRoZSBkZXRhaWwgcm93IGhlaWdodC5cbiAgICovXG4gIGluaXRDYWNoZShkZXRhaWxzOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCB7IHJvd3MsIHJvd0hlaWdodCwgZGV0YWlsUm93SGVpZ2h0LCBleHRlcm5hbFZpcnR1YWwsIHJvd0NvdW50LCByb3dJbmRleGVzLCByb3dFeHBhbnNpb25zIH0gPSBkZXRhaWxzO1xuICAgIGNvbnN0IGlzRm4gPSB0eXBlb2Ygcm93SGVpZ2h0ID09PSAnZnVuY3Rpb24nO1xuICAgIGNvbnN0IGlzRGV0YWlsRm4gPSB0eXBlb2YgZGV0YWlsUm93SGVpZ2h0ID09PSAnZnVuY3Rpb24nO1xuXG4gICAgaWYgKCFpc0ZuICYmIGlzTmFOKHJvd0hlaWdodCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUm93IEhlaWdodCBjYWNoZSBpbml0aWFsaXphdGlvbiBmYWlsZWQuIFBsZWFzZSBlbnN1cmUgdGhhdCAncm93SGVpZ2h0JyBpcyBhXG4gICAgICAgIHZhbGlkIG51bWJlciBvciBmdW5jdGlvbiB2YWx1ZTogKCR7cm93SGVpZ2h0fSkgd2hlbiAnc2Nyb2xsYmFyVicgaXMgZW5hYmxlZC5gKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgdGhpcyBhZGRpdGlvbmFsIGd1YXJkIGluIGNhc2UgZGV0YWlsUm93SGVpZ2h0IGlzIHNldCB0byAnYXV0bycgYXMgaXQgd29udCB3b3JrLlxuICAgIGlmICghaXNEZXRhaWxGbiAmJiBpc05hTihkZXRhaWxSb3dIZWlnaHQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFJvdyBIZWlnaHQgY2FjaGUgaW5pdGlhbGl6YXRpb24gZmFpbGVkLiBQbGVhc2UgZW5zdXJlIHRoYXQgJ2RldGFpbFJvd0hlaWdodCcgaXMgYVxuICAgICAgICB2YWxpZCBudW1iZXIgb3IgZnVuY3Rpb24gdmFsdWU6ICgke2RldGFpbFJvd0hlaWdodH0pIHdoZW4gJ3Njcm9sbGJhclYnIGlzIGVuYWJsZWQuYCk7XG4gICAgfVxuXG4gICAgY29uc3QgbiA9IGV4dGVybmFsVmlydHVhbCA/IHJvd0NvdW50IDogcm93cy5sZW5ndGg7XG4gICAgdGhpcy50cmVlQXJyYXkgPSBuZXcgQXJyYXkobik7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgdGhpcy50cmVlQXJyYXlbaV0gPSAwO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICBjb25zdCByb3cgPSByb3dzW2ldO1xuICAgICAgbGV0IGN1cnJlbnRSb3dIZWlnaHQgPSByb3dIZWlnaHQ7XG4gICAgICBpZiAoaXNGbikge1xuICAgICAgICBjdXJyZW50Um93SGVpZ2h0ID0gcm93SGVpZ2h0KHJvdyk7XG4gICAgICB9XG5cbiAgICAgIC8vIEFkZCB0aGUgZGV0YWlsIHJvdyBoZWlnaHQgdG8gdGhlIGFscmVhZHkgZXhwYW5kZWQgcm93cy5cbiAgICAgIC8vIFRoaXMgaXMgdXNlZnVsIGZvciB0aGUgdGFibGUgdGhhdCBnb2VzIHRocm91Z2ggYSBmaWx0ZXIgb3Igc29ydC5cbiAgICAgIGNvbnN0IGV4cGFuZGVkID0gcm93RXhwYW5zaW9ucy5oYXMocm93KTtcbiAgICAgIGlmIChyb3cgJiYgZXhwYW5kZWQpIHtcbiAgICAgICAgaWYgKGlzRGV0YWlsRm4pIHtcbiAgICAgICAgICBjb25zdCBpbmRleCA9IHJvd0luZGV4ZXMuZ2V0KHJvdyk7XG4gICAgICAgICAgY3VycmVudFJvd0hlaWdodCArPSBkZXRhaWxSb3dIZWlnaHQocm93LCBpbmRleCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY3VycmVudFJvd0hlaWdodCArPSBkZXRhaWxSb3dIZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy51cGRhdGUoaSwgY3VycmVudFJvd0hlaWdodCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdpdmVuIHRoZSBTY3JvbGxZIHBvc2l0aW9uIGkuZS4gc3VtLCBwcm92aWRlIHRoZSByb3dJbmRleFxuICAgKiB0aGF0IGlzIHByZXNlbnQgaW4gdGhlIGN1cnJlbnQgdmlldyBwb3J0LiAgQmVsb3cgaGFuZGxlcyBlZGdlIGNhc2VzLlxuICAgKi9cbiAgZ2V0Um93SW5kZXgoc2Nyb2xsWTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAoc2Nyb2xsWSA9PT0gMCkgcmV0dXJuIDA7XG4gICAgcmV0dXJuIHRoaXMuY2FsY1Jvd0luZGV4KHNjcm9sbFkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gYSByb3cgaXMgZXhwYW5kZWQgb3Igcm93SGVpZ2h0IGlzIGNoYW5nZWQsIHVwZGF0ZSB0aGUgaGVpZ2h0LiAgVGhpcyBjYW5cbiAgICogYmUgdXRpbGl6ZWQgaW4gZnV0dXJlIHdoZW4gQW5ndWxhciBEYXRhIHRhYmxlIHN1cHBvcnRzIGR5bmFtaWMgcm93IGhlaWdodHMuXG4gICAqL1xuICB1cGRhdGUoYXRSb3dJbmRleDogbnVtYmVyLCBieVJvd0hlaWdodDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnRyZWVBcnJheS5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVXBkYXRlIGF0IGluZGV4ICR7YXRSb3dJbmRleH0gd2l0aCB2YWx1ZSAke2J5Um93SGVpZ2h0fSBmYWlsZWQ6XG4gICAgICAgIFJvdyBIZWlnaHQgY2FjaGUgbm90IGluaXRpYWxpemVkLmApO1xuICAgIH1cblxuICAgIGNvbnN0IG4gPSB0aGlzLnRyZWVBcnJheS5sZW5ndGg7XG4gICAgYXRSb3dJbmRleCB8PSAwO1xuXG4gICAgd2hpbGUgKGF0Um93SW5kZXggPCBuKSB7XG4gICAgICB0aGlzLnRyZWVBcnJheVthdFJvd0luZGV4XSArPSBieVJvd0hlaWdodDtcbiAgICAgIGF0Um93SW5kZXggfD0gYXRSb3dJbmRleCArIDE7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJhbmdlIFN1bSBxdWVyeSBmcm9tIDEgdG8gdGhlIHJvd0luZGV4XG4gICAqL1xuICBxdWVyeShhdEluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy50cmVlQXJyYXkubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHF1ZXJ5IGF0IGluZGV4ICR7YXRJbmRleH0gZmFpbGVkOiBGZW53aWNrIHRyZWUgYXJyYXkgbm90IGluaXRpYWxpemVkLmApO1xuICAgIH1cblxuICAgIGxldCBzdW0gPSAwO1xuICAgIGF0SW5kZXggfD0gMDtcblxuICAgIHdoaWxlIChhdEluZGV4ID49IDApIHtcbiAgICAgIHN1bSArPSB0aGlzLnRyZWVBcnJheVthdEluZGV4XTtcbiAgICAgIGF0SW5kZXggPSAoYXRJbmRleCAmIChhdEluZGV4ICsgMSkpIC0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VtO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgdGhlIHRvdGFsIGhlaWdodCBiZXR3ZWVuIDIgcm93IGluZGV4ZXNcbiAgICovXG4gIHF1ZXJ5QmV0d2VlbihhdEluZGV4QTogbnVtYmVyLCBhdEluZGV4QjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeShhdEluZGV4QikgLSB0aGlzLnF1ZXJ5KGF0SW5kZXhBIC0gMSk7XG4gIH1cblxuICAvKipcbiAgICogR2l2ZW4gdGhlIFNjcm9sbFkgcG9zaXRpb24gaS5lLiBzdW0sIHByb3ZpZGUgdGhlIHJvd0luZGV4XG4gICAqIHRoYXQgaXMgcHJlc2VudCBpbiB0aGUgY3VycmVudCB2aWV3IHBvcnQuXG4gICAqL1xuICBwcml2YXRlIGNhbGNSb3dJbmRleChzdW06IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLnRyZWVBcnJheS5sZW5ndGgpIHJldHVybiAwO1xuXG4gICAgbGV0IHBvcyA9IC0xO1xuICAgIGNvbnN0IGRhdGFMZW5ndGggPSB0aGlzLnRyZWVBcnJheS5sZW5ndGg7XG5cbiAgICAvLyBHZXQgdGhlIGhpZ2hlc3QgYml0IGZvciB0aGUgYmxvY2sgc2l6ZS5cbiAgICBjb25zdCBoaWdoZXN0Qml0ID0gTWF0aC5wb3coMiwgZGF0YUxlbmd0aC50b1N0cmluZygyKS5sZW5ndGggLSAxKTtcblxuICAgIGZvciAobGV0IGJsb2NrU2l6ZSA9IGhpZ2hlc3RCaXQ7IGJsb2NrU2l6ZSAhPT0gMDsgYmxvY2tTaXplID4+PSAxKSB7XG4gICAgICBjb25zdCBuZXh0UG9zID0gcG9zICsgYmxvY2tTaXplO1xuICAgICAgaWYgKG5leHRQb3MgPCBkYXRhTGVuZ3RoICYmIHN1bSA+PSB0aGlzLnRyZWVBcnJheVtuZXh0UG9zXSkge1xuICAgICAgICBzdW0gLT0gdGhpcy50cmVlQXJyYXlbbmV4dFBvc107XG4gICAgICAgIHBvcyA9IG5leHRQb3M7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBvcyArIDE7XG4gIH1cbn1cbiJdfQ==