tabulator-tables 5.4.2 → 5.4.4

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 (253) hide show
  1. package/.babelrc.json +3 -3
  2. package/.editorconfig +6 -6
  3. package/.eslintignore +3 -3
  4. package/.eslintrc.js +28 -28
  5. package/.github/ISSUE_TEMPLATE/bug_report.md +58 -58
  6. package/.github/ISSUE_TEMPLATE/documentation.md +14 -14
  7. package/.github/ISSUE_TEMPLATE/feature_request.md +24 -24
  8. package/.github/ISSUE_TEMPLATE/question.md +12 -12
  9. package/.github/workflows/bad-files-check.yml +39 -39
  10. package/.github/workflows/lint-and-test.yml +30 -30
  11. package/CODE_OF_CONDUCT.md +46 -46
  12. package/CONTRIBUTING.md +22 -22
  13. package/LICENSE +20 -20
  14. package/README.md +76 -76
  15. package/bower.json +40 -40
  16. package/build/Bundler.js +185 -185
  17. package/build/rollup.js +6 -6
  18. package/dist/css/tabulator.css +1 -5
  19. package/dist/css/tabulator.css.map +1 -1
  20. package/dist/css/tabulator.min.css +1 -1
  21. package/dist/css/tabulator.min.css.map +1 -1
  22. package/dist/css/tabulator_bootstrap3.css +1 -5
  23. package/dist/css/tabulator_bootstrap3.css.map +1 -1
  24. package/dist/css/tabulator_bootstrap3.min.css +1 -1
  25. package/dist/css/tabulator_bootstrap3.min.css.map +1 -1
  26. package/dist/css/tabulator_bootstrap4.css +1 -5
  27. package/dist/css/tabulator_bootstrap4.css.map +1 -1
  28. package/dist/css/tabulator_bootstrap4.min.css +1 -1
  29. package/dist/css/tabulator_bootstrap4.min.css.map +1 -1
  30. package/dist/css/tabulator_bootstrap5.css +1 -5
  31. package/dist/css/tabulator_bootstrap5.css.map +1 -1
  32. package/dist/css/tabulator_bootstrap5.min.css +1 -1
  33. package/dist/css/tabulator_bootstrap5.min.css.map +1 -1
  34. package/dist/css/tabulator_bulma.css +1 -5
  35. package/dist/css/tabulator_bulma.css.map +1 -1
  36. package/dist/css/tabulator_bulma.min.css +1 -1
  37. package/dist/css/tabulator_bulma.min.css.map +1 -1
  38. package/dist/css/tabulator_materialize.css +1 -5
  39. package/dist/css/tabulator_materialize.css.map +1 -1
  40. package/dist/css/tabulator_materialize.min.css +1 -1
  41. package/dist/css/tabulator_materialize.min.css.map +1 -1
  42. package/dist/css/tabulator_midnight.css +1 -5
  43. package/dist/css/tabulator_midnight.css.map +1 -1
  44. package/dist/css/tabulator_midnight.min.css +1 -1
  45. package/dist/css/tabulator_midnight.min.css.map +1 -1
  46. package/dist/css/tabulator_modern.css +1 -5
  47. package/dist/css/tabulator_modern.css.map +1 -1
  48. package/dist/css/tabulator_modern.min.css +1 -1
  49. package/dist/css/tabulator_modern.min.css.map +1 -1
  50. package/dist/css/tabulator_semanticui.css +103 -107
  51. package/dist/css/tabulator_semanticui.css.map +1 -1
  52. package/dist/css/tabulator_semanticui.min.css +1 -1
  53. package/dist/css/tabulator_semanticui.min.css.map +1 -1
  54. package/dist/css/tabulator_simple.css +1 -5
  55. package/dist/css/tabulator_simple.css.map +1 -1
  56. package/dist/css/tabulator_simple.min.css +1 -1
  57. package/dist/css/tabulator_simple.min.css.map +1 -1
  58. package/dist/css/tabulator_site.css +1 -5
  59. package/dist/css/tabulator_site.css.map +1 -1
  60. package/dist/css/tabulator_site.min.css +1 -1
  61. package/dist/css/tabulator_site.min.css.map +1 -1
  62. package/dist/js/jquery_wrapper.js +55 -55
  63. package/dist/js/tabulator.js +25847 -25653
  64. package/dist/js/tabulator.js.map +1 -1
  65. package/dist/js/tabulator.min.js +2 -2
  66. package/dist/js/tabulator.min.js.map +1 -1
  67. package/dist/js/tabulator_esm.js +25926 -25732
  68. package/dist/js/tabulator_esm.js.map +1 -1
  69. package/dist/js/tabulator_esm.min.js +2 -2
  70. package/dist/js/tabulator_esm.min.js.map +1 -1
  71. package/package.json +65 -65
  72. package/src/js/builds/esm.js +14 -14
  73. package/src/js/builds/jquery_wrapper.js +55 -55
  74. package/src/js/core/ColumnManager.js +730 -730
  75. package/src/js/core/CoreFeature.js +138 -138
  76. package/src/js/core/FooterManager.js +101 -101
  77. package/src/js/core/Module.js +141 -141
  78. package/src/js/core/RowManager.js +1112 -1082
  79. package/src/js/core/Tabulator.js +895 -893
  80. package/src/js/core/TabulatorFull.js +10 -10
  81. package/src/js/core/cell/Cell.js +295 -295
  82. package/src/js/core/cell/CellComponent.js +76 -76
  83. package/src/js/core/column/Column.js +949 -949
  84. package/src/js/core/column/ColumnComponent.js +152 -152
  85. package/src/js/core/column/defaults/options.js +17 -17
  86. package/src/js/core/defaults/options.js +65 -65
  87. package/src/js/core/modules/core.js +2 -2
  88. package/src/js/core/modules/optional.js +34 -34
  89. package/src/js/core/rendering/Renderer.js +203 -203
  90. package/src/js/core/rendering/renderers/BasicHorizontal.js +19 -19
  91. package/src/js/core/rendering/renderers/BasicVertical.js +79 -78
  92. package/src/js/core/rendering/renderers/VirtualDomHorizontal.js +577 -577
  93. package/src/js/core/rendering/renderers/VirtualDomVertical.js +579 -579
  94. package/src/js/core/row/PseudoRow.js +44 -44
  95. package/src/js/core/row/Row.js +457 -457
  96. package/src/js/core/row/RowComponent.js +93 -93
  97. package/src/js/core/tools/Alert.js +61 -61
  98. package/src/js/core/tools/ComponentFunctionBinder.js +32 -32
  99. package/src/js/core/tools/DataLoader.js +119 -119
  100. package/src/js/core/tools/DeprecationAdvisor.js +46 -46
  101. package/src/js/core/tools/ExternalEventBus.js +104 -104
  102. package/src/js/core/tools/Helpers.js +46 -46
  103. package/src/js/core/tools/InteractionMonitor.js +321 -321
  104. package/src/js/core/tools/InternalEventBus.js +161 -161
  105. package/src/js/core/tools/ModuleBinder.js +104 -104
  106. package/src/js/core/tools/OptionsList.js +44 -40
  107. package/src/js/core/tools/Popup.js +304 -304
  108. package/src/js/core/tools/TableRegistry.js +61 -61
  109. package/src/js/modules/Accessor/Accessor.js +115 -115
  110. package/src/js/modules/Ajax/Ajax.js +143 -143
  111. package/src/js/modules/Ajax/defaults/config.js +2 -2
  112. package/src/js/modules/Ajax/defaults/contentTypeFormatters.js +44 -44
  113. package/src/js/modules/Ajax/defaults/loaderPromise.js +86 -86
  114. package/src/js/modules/Ajax/defaults/urlGenerator.js +43 -43
  115. package/src/js/modules/Clipboard/Clipboard.js +279 -279
  116. package/src/js/modules/Clipboard/defaults/pasteActions.js +10 -10
  117. package/src/js/modules/Clipboard/defaults/pasteParsers.js +74 -74
  118. package/src/js/modules/ColumnCalcs/CalcComponent.js +47 -47
  119. package/src/js/modules/ColumnCalcs/ColumnCalcs.js +581 -568
  120. package/src/js/modules/ColumnCalcs/defaults/calculations.js +85 -85
  121. package/src/js/modules/Comms/Comms.js +51 -51
  122. package/src/js/modules/DataTree/DataTree.js +603 -603
  123. package/src/js/modules/Download/Download.js +148 -148
  124. package/src/js/modules/Download/defaults/downloaders/csv.js +61 -61
  125. package/src/js/modules/Download/defaults/downloaders/html.js +4 -4
  126. package/src/js/modules/Download/defaults/downloaders/json.js +33 -33
  127. package/src/js/modules/Download/defaults/downloaders/jsonLines.js +31 -31
  128. package/src/js/modules/Download/defaults/downloaders/pdf.js +111 -111
  129. package/src/js/modules/Download/defaults/downloaders/xlsx.js +98 -98
  130. package/src/js/modules/Download/defaults/downloaders.js +14 -14
  131. package/src/js/modules/Edit/Edit.js +735 -736
  132. package/src/js/modules/Edit/List.js +1037 -1033
  133. package/src/js/modules/Edit/defaults/editors/autocomplete.js +11 -11
  134. package/src/js/modules/Edit/defaults/editors/date.js +138 -110
  135. package/src/js/modules/Edit/defaults/editors/datetime.js +125 -97
  136. package/src/js/modules/Edit/defaults/editors/input.js +76 -74
  137. package/src/js/modules/Edit/defaults/editors/list.js +6 -6
  138. package/src/js/modules/Edit/defaults/editors/number.js +109 -107
  139. package/src/js/modules/Edit/defaults/editors/progress.js +126 -126
  140. package/src/js/modules/Edit/defaults/editors/range.js +80 -78
  141. package/src/js/modules/Edit/defaults/editors/select.js +9 -9
  142. package/src/js/modules/Edit/defaults/editors/star.js +145 -145
  143. package/src/js/modules/Edit/defaults/editors/textarea.js +122 -120
  144. package/src/js/modules/Edit/defaults/editors/tickCross.js +94 -96
  145. package/src/js/modules/Edit/defaults/editors/time.js +126 -98
  146. package/src/js/modules/Edit/defaults/editors.js +28 -28
  147. package/src/js/modules/Edit/inputMask.js +73 -73
  148. package/src/js/modules/Export/Export.js +623 -617
  149. package/src/js/modules/Export/ExportColumn.js +10 -10
  150. package/src/js/modules/Export/ExportRow.js +9 -9
  151. package/src/js/modules/Filter/Filter.js +892 -889
  152. package/src/js/modules/Filter/defaults/filters.js +107 -107
  153. package/src/js/modules/Format/Format.js +212 -212
  154. package/src/js/modules/Format/defaults/formatters/buttonCross.js +2 -2
  155. package/src/js/modules/Format/defaults/formatters/buttonTick.js +2 -2
  156. package/src/js/modules/Format/defaults/formatters/color.js +3 -3
  157. package/src/js/modules/Format/defaults/formatters/datetime.js +36 -36
  158. package/src/js/modules/Format/defaults/formatters/datetimediff.js +40 -40
  159. package/src/js/modules/Format/defaults/formatters/handle.js +3 -3
  160. package/src/js/modules/Format/defaults/formatters/html.js +2 -2
  161. package/src/js/modules/Format/defaults/formatters/image.js +39 -39
  162. package/src/js/modules/Format/defaults/formatters/link.js +77 -77
  163. package/src/js/modules/Format/defaults/formatters/lookup.js +9 -9
  164. package/src/js/modules/Format/defaults/formatters/money.js +36 -36
  165. package/src/js/modules/Format/defaults/formatters/plaintext.js +2 -2
  166. package/src/js/modules/Format/defaults/formatters/progress.js +132 -132
  167. package/src/js/modules/Format/defaults/formatters/responsiveCollapse.js +43 -43
  168. package/src/js/modules/Format/defaults/formatters/rowSelection.js +59 -59
  169. package/src/js/modules/Format/defaults/formatters/rownum.js +9 -9
  170. package/src/js/modules/Format/defaults/formatters/star.js +37 -37
  171. package/src/js/modules/Format/defaults/formatters/textarea.js +3 -3
  172. package/src/js/modules/Format/defaults/formatters/tickCross.js +21 -21
  173. package/src/js/modules/Format/defaults/formatters/traffic.js +46 -46
  174. package/src/js/modules/Format/defaults/formatters.js +42 -42
  175. package/src/js/modules/FrozenColumns/FrozenColumns.js +299 -299
  176. package/src/js/modules/FrozenRows/FrozenRows.js +169 -159
  177. package/src/js/modules/GroupRows/Group.js +597 -595
  178. package/src/js/modules/GroupRows/GroupComponent.js +66 -66
  179. package/src/js/modules/GroupRows/GroupRows.js +639 -623
  180. package/src/js/modules/History/History.js +171 -171
  181. package/src/js/modules/History/defaults/redoers.js +24 -24
  182. package/src/js/modules/History/defaults/undoers.js +24 -24
  183. package/src/js/modules/HtmlTableImport/HtmlTableImport.js +181 -181
  184. package/src/js/modules/Import/Import.js +193 -193
  185. package/src/js/modules/Import/defaults/importers/array.js +4 -4
  186. package/src/js/modules/Import/defaults/importers/csv.js +62 -62
  187. package/src/js/modules/Import/defaults/importers/json.js +7 -7
  188. package/src/js/modules/Import/defaults/importers.js +8 -8
  189. package/src/js/modules/Interaction/Interaction.js +325 -325
  190. package/src/js/modules/Keybindings/Keybindings.js +172 -172
  191. package/src/js/modules/Keybindings/defaults/actions.js +118 -118
  192. package/src/js/modules/Keybindings/defaults/bindings.js +12 -12
  193. package/src/js/modules/Layout/Layout.js +49 -49
  194. package/src/js/modules/Layout/defaults/modes/fitColumns.js +171 -171
  195. package/src/js/modules/Layout/defaults/modes/fitData.js +9 -9
  196. package/src/js/modules/Layout/defaults/modes/fitDataGeneral.js +9 -9
  197. package/src/js/modules/Layout/defaults/modes/fitDataStretch.js +39 -39
  198. package/src/js/modules/Layout/defaults/modes.js +11 -11
  199. package/src/js/modules/Localize/Localize.js +185 -194
  200. package/src/js/modules/Localize/defaults/langs.js +36 -36
  201. package/src/js/modules/Menu/Menu.js +302 -302
  202. package/src/js/modules/MoveColumns/MoveColumns.js +299 -299
  203. package/src/js/modules/MoveRows/MoveRows.js +635 -635
  204. package/src/js/modules/Mutator/Mutator.js +161 -161
  205. package/src/js/modules/Page/Page.js +881 -881
  206. package/src/js/modules/Page/defaults/pageCounters/pages.js +32 -32
  207. package/src/js/modules/Page/defaults/pageCounters/rows.js +39 -39
  208. package/src/js/modules/Page/defaults/pageCounters.js +7 -7
  209. package/src/js/modules/Persistence/Persistence.js +458 -458
  210. package/src/js/modules/Persistence/defaults/readers.js +29 -29
  211. package/src/js/modules/Persistence/defaults/writers.js +12 -12
  212. package/src/js/modules/Popup/Popup.js +231 -231
  213. package/src/js/modules/Print/Print.js +137 -124
  214. package/src/js/modules/ReactiveData/ReactiveData.js +408 -408
  215. package/src/js/modules/ResizeColumns/ResizeColumns.js +309 -309
  216. package/src/js/modules/ResizeRows/ResizeRows.js +111 -111
  217. package/src/js/modules/ResizeTable/ResizeTable.js +159 -159
  218. package/src/js/modules/ResponsiveLayout/ResponsiveLayout.js +345 -345
  219. package/src/js/modules/SelectRow/SelectRow.js +446 -436
  220. package/src/js/modules/Sort/Sort.js +470 -470
  221. package/src/js/modules/Sort/defaults/sorters/alphanum.js +43 -43
  222. package/src/js/modules/Sort/defaults/sorters/array.js +53 -53
  223. package/src/js/modules/Sort/defaults/sorters/boolean.js +6 -6
  224. package/src/js/modules/Sort/defaults/sorters/date.js +9 -9
  225. package/src/js/modules/Sort/defaults/sorters/datetime.js +43 -43
  226. package/src/js/modules/Sort/defaults/sorters/exists.js +6 -6
  227. package/src/js/modules/Sort/defaults/sorters/number.js +39 -39
  228. package/src/js/modules/Sort/defaults/sorters/string.js +33 -33
  229. package/src/js/modules/Sort/defaults/sorters/time.js +9 -9
  230. package/src/js/modules/Sort/defaults/sorters.js +20 -20
  231. package/src/js/modules/Tooltip/Tooltip.js +130 -130
  232. package/src/js/modules/Validate/Validate.js +305 -305
  233. package/src/js/modules/Validate/defaults/validators.js +138 -138
  234. package/src/scss/tabulator.scss +1464 -1466
  235. package/src/scss/themes/bootstrap/functions4.scss +118 -118
  236. package/src/scss/themes/bootstrap/functions5.scss +302 -302
  237. package/src/scss/themes/bootstrap/tabulator_bootstrap3.scss +284 -284
  238. package/src/scss/themes/bootstrap/tabulator_bootstrap4.scss +544 -544
  239. package/src/scss/themes/bootstrap/tabulator_bootstrap5.scss +574 -574
  240. package/src/scss/themes/bootstrap/variables3.scss +870 -870
  241. package/src/scss/themes/bootstrap/variables4.scss +930 -930
  242. package/src/scss/themes/bootstrap/variables5.scss +1641 -1641
  243. package/src/scss/themes/bulma/tabulator_bulma.scss +252 -252
  244. package/src/scss/themes/bulma/variables.scss +197 -197
  245. package/src/scss/themes/materialize/tabulator_materialize.scss +265 -265
  246. package/src/scss/themes/materialize/variables.scss +70 -70
  247. package/src/scss/themes/semanticui/tabulator_semanticui.scss +561 -561
  248. package/src/scss/themes/semanticui/variables.scss +839 -839
  249. package/src/scss/themes/semanticui/variables_table.scss +247 -247
  250. package/src/scss/themes/tabulator_midnight.scss +158 -158
  251. package/src/scss/themes/tabulator_modern.scss +231 -231
  252. package/src/scss/themes/tabulator_simple.scss +102 -102
  253. package/src/scss/themes/tabulator_site.scss +189 -189
@@ -1,162 +1,162 @@
1
- export default class InternalEventBus {
2
-
3
- constructor(debug){
4
- this.events = {};
5
- this.subscriptionNotifiers = {};
6
-
7
- this.dispatch = debug ? this._debugDispatch.bind(this) : this._dispatch.bind(this);
8
- this.chain = debug ? this._debugChain.bind(this) : this._chain.bind(this);
9
- this.confirm = debug ? this._debugConfirm.bind(this) : this._confirm.bind(this);
10
- this.debug = debug;
11
- }
12
-
13
- subscriptionChange(key, callback){
14
- if(!this.subscriptionNotifiers[key]){
15
- this.subscriptionNotifiers[key] = [];
16
- }
17
-
18
- this.subscriptionNotifiers[key].push(callback);
19
-
20
- if(this.subscribed(key)){
21
- this._notifySubscriptionChange(key, true);
22
- }
23
- }
24
-
25
- subscribe(key, callback, priority = 10000){
26
- if(!this.events[key]){
27
- this.events[key] = [];
28
- }
29
-
30
- this.events[key].push({callback, priority});
31
-
32
- this.events[key].sort((a, b) => {
33
- return a.priority - b.priority;
34
- });
35
-
36
- this._notifySubscriptionChange(key, true);
37
- }
38
-
39
- unsubscribe(key, callback){
40
- var index;
41
-
42
- if(this.events[key]){
43
- if(callback){
44
- index = this.events[key].findIndex((item) => {
45
- return item.callback === callback;
46
- });
47
-
48
- if(index > -1){
49
- this.events[key].splice(index, 1);
50
- }else{
51
- console.warn("Cannot remove event, no matching event found:", key, callback);
52
- return;
53
- }
54
- }
55
- }else{
56
- console.warn("Cannot remove event, no events set on:", key);
57
- return;
58
- }
59
-
60
- this._notifySubscriptionChange(key, false);
61
- }
62
-
63
- subscribed(key){
64
- return this.events[key] && this.events[key].length;
65
- }
66
-
67
- _chain(key, args, initialValue, fallback){
68
- var value = initialValue;
69
-
70
- if(!Array.isArray(args)){
71
- args = [args];
72
- }
73
-
74
- if(this.subscribed(key)){
75
- this.events[key].forEach((subscriber, i) => {
76
- value = subscriber.callback.apply(this, args.concat([value]));
77
- });
78
-
79
- return value;
80
- }else{
81
- return typeof fallback === "function" ? fallback() : fallback;
82
- }
83
- }
84
-
85
- _confirm(key, args){
86
- var confirmed = false;
87
-
88
- if(!Array.isArray(args)){
89
- args = [args];
90
- }
91
-
92
- if(this.subscribed(key)){
93
- this.events[key].forEach((subscriber, i) => {
94
- if(subscriber.callback.apply(this, args)){
95
- confirmed = true;
96
- }
97
- });
98
- }
99
-
100
- return confirmed;
101
- }
102
-
103
- _notifySubscriptionChange(key, subscribed){
104
- var notifiers = this.subscriptionNotifiers[key];
105
-
106
- if(notifiers){
107
- notifiers.forEach((callback)=>{
108
- callback(subscribed);
109
- });
110
- }
111
- }
112
-
113
- _dispatch(){
114
- var args = Array.from(arguments),
115
- key = args.shift();
116
-
117
- if(this.events[key]){
118
- this.events[key].forEach((subscriber) => {
119
- subscriber.callback.apply(this, args);
120
- });
121
- }
122
- }
123
-
124
- _debugDispatch(){
125
- var args = Array.from(arguments),
126
- key = args[0];
127
-
128
- args[0] = "InternalEvent:" + key;
129
-
130
- if(this.debug === true || this.debug.includes(key)){
131
- console.log(...args);
132
- }
133
-
134
- return this._dispatch(...arguments);
135
- }
136
-
137
- _debugChain(){
138
- var args = Array.from(arguments),
139
- key = args[0];
140
-
141
- args[0] = "InternalEvent:" + key;
142
-
143
- if(this.debug === true || this.debug.includes(key)){
144
- console.log(...args);
145
- }
146
-
147
- return this._chain(...arguments);
148
- }
149
-
150
- _debugConfirm(){
151
- var args = Array.from(arguments),
152
- key = args[0];
153
-
154
- args[0] = "InternalEvent:" + key;
155
-
156
- if(this.debug === true || this.debug.includes(key)){
157
- console.log(...args);
158
- }
159
-
160
- return this._confirm(...arguments);
161
- }
1
+ export default class InternalEventBus {
2
+
3
+ constructor(debug){
4
+ this.events = {};
5
+ this.subscriptionNotifiers = {};
6
+
7
+ this.dispatch = debug ? this._debugDispatch.bind(this) : this._dispatch.bind(this);
8
+ this.chain = debug ? this._debugChain.bind(this) : this._chain.bind(this);
9
+ this.confirm = debug ? this._debugConfirm.bind(this) : this._confirm.bind(this);
10
+ this.debug = debug;
11
+ }
12
+
13
+ subscriptionChange(key, callback){
14
+ if(!this.subscriptionNotifiers[key]){
15
+ this.subscriptionNotifiers[key] = [];
16
+ }
17
+
18
+ this.subscriptionNotifiers[key].push(callback);
19
+
20
+ if(this.subscribed(key)){
21
+ this._notifySubscriptionChange(key, true);
22
+ }
23
+ }
24
+
25
+ subscribe(key, callback, priority = 10000){
26
+ if(!this.events[key]){
27
+ this.events[key] = [];
28
+ }
29
+
30
+ this.events[key].push({callback, priority});
31
+
32
+ this.events[key].sort((a, b) => {
33
+ return a.priority - b.priority;
34
+ });
35
+
36
+ this._notifySubscriptionChange(key, true);
37
+ }
38
+
39
+ unsubscribe(key, callback){
40
+ var index;
41
+
42
+ if(this.events[key]){
43
+ if(callback){
44
+ index = this.events[key].findIndex((item) => {
45
+ return item.callback === callback;
46
+ });
47
+
48
+ if(index > -1){
49
+ this.events[key].splice(index, 1);
50
+ }else{
51
+ console.warn("Cannot remove event, no matching event found:", key, callback);
52
+ return;
53
+ }
54
+ }
55
+ }else{
56
+ console.warn("Cannot remove event, no events set on:", key);
57
+ return;
58
+ }
59
+
60
+ this._notifySubscriptionChange(key, false);
61
+ }
62
+
63
+ subscribed(key){
64
+ return this.events[key] && this.events[key].length;
65
+ }
66
+
67
+ _chain(key, args, initialValue, fallback){
68
+ var value = initialValue;
69
+
70
+ if(!Array.isArray(args)){
71
+ args = [args];
72
+ }
73
+
74
+ if(this.subscribed(key)){
75
+ this.events[key].forEach((subscriber, i) => {
76
+ value = subscriber.callback.apply(this, args.concat([value]));
77
+ });
78
+
79
+ return value;
80
+ }else{
81
+ return typeof fallback === "function" ? fallback() : fallback;
82
+ }
83
+ }
84
+
85
+ _confirm(key, args){
86
+ var confirmed = false;
87
+
88
+ if(!Array.isArray(args)){
89
+ args = [args];
90
+ }
91
+
92
+ if(this.subscribed(key)){
93
+ this.events[key].forEach((subscriber, i) => {
94
+ if(subscriber.callback.apply(this, args)){
95
+ confirmed = true;
96
+ }
97
+ });
98
+ }
99
+
100
+ return confirmed;
101
+ }
102
+
103
+ _notifySubscriptionChange(key, subscribed){
104
+ var notifiers = this.subscriptionNotifiers[key];
105
+
106
+ if(notifiers){
107
+ notifiers.forEach((callback)=>{
108
+ callback(subscribed);
109
+ });
110
+ }
111
+ }
112
+
113
+ _dispatch(){
114
+ var args = Array.from(arguments),
115
+ key = args.shift();
116
+
117
+ if(this.events[key]){
118
+ this.events[key].forEach((subscriber) => {
119
+ subscriber.callback.apply(this, args);
120
+ });
121
+ }
122
+ }
123
+
124
+ _debugDispatch(){
125
+ var args = Array.from(arguments),
126
+ key = args[0];
127
+
128
+ args[0] = "InternalEvent:" + key;
129
+
130
+ if(this.debug === true || this.debug.includes(key)){
131
+ console.log(...args);
132
+ }
133
+
134
+ return this._dispatch(...arguments);
135
+ }
136
+
137
+ _debugChain(){
138
+ var args = Array.from(arguments),
139
+ key = args[0];
140
+
141
+ args[0] = "InternalEvent:" + key;
142
+
143
+ if(this.debug === true || this.debug.includes(key)){
144
+ console.log(...args);
145
+ }
146
+
147
+ return this._chain(...arguments);
148
+ }
149
+
150
+ _debugConfirm(){
151
+ var args = Array.from(arguments),
152
+ key = args[0];
153
+
154
+ args[0] = "InternalEvent:" + key;
155
+
156
+ if(this.debug === true || this.debug.includes(key)){
157
+ console.log(...args);
158
+ }
159
+
160
+ return this._confirm(...arguments);
161
+ }
162
162
  }
@@ -1,105 +1,105 @@
1
- import * as coreModules from '../modules/core.js';
2
- import TableRegistry from './TableRegistry.js';
3
-
4
- export default class ModuleBinder {
5
-
6
- constructor(tabulator, modules){
7
- this.bindStaticFunctionality(tabulator);
8
- this.bindModules(tabulator, coreModules, true);
9
-
10
- if(modules){
11
- this.bindModules(tabulator, modules);
12
- }
13
- }
14
-
15
- bindStaticFunctionality(tabulator){
16
- tabulator.moduleBindings = {};
17
-
18
- tabulator.extendModule = function(name, property, values){
19
- if(tabulator.moduleBindings[name]){
20
- var source = tabulator.moduleBindings[name][property];
21
-
22
- if(source){
23
- if(typeof values == "object"){
24
- for(let key in values){
25
- source[key] = values[key];
26
- }
27
- }else{
28
- console.warn("Module Error - Invalid value type, it must be an object");
29
- }
30
- }else{
31
- console.warn("Module Error - property does not exist:", property);
32
- }
33
- }else{
34
- console.warn("Module Error - module does not exist:", name);
35
- }
36
- };
37
-
38
- tabulator.registerModule = function(modules){
39
- if(!Array.isArray(modules)){
40
- modules = [modules];
41
- }
42
-
43
- modules.forEach((mod) => {
44
- tabulator.registerModuleBinding(mod);
45
- });
46
- };
47
-
48
- tabulator.registerModuleBinding = function(mod){
49
- tabulator.moduleBindings[mod.moduleName] = mod;
50
- };
51
-
52
- tabulator.findTable = function(query){
53
- var results = TableRegistry.lookupTable(query, true);
54
- return Array.isArray(results) && !results.length ? false : results;
55
- };
56
-
57
- //ensure that module are bound to instantiated function
58
- tabulator.prototype.bindModules = function(){
59
- var orderedStartMods = [],
60
- orderedEndMods = [],
61
- unOrderedMods = [];
62
-
63
- this.modules = {};
64
-
65
- for(var name in tabulator.moduleBindings){
66
- let mod = tabulator.moduleBindings[name];
67
- let module = new mod(this);
68
-
69
- this.modules[name] = module;
70
-
71
- if(mod.prototype.moduleCore){
72
- this.modulesCore.push(module);
73
- }else{
74
- if(mod.moduleInitOrder){
75
- if(mod.moduleInitOrder < 0){
76
- orderedStartMods.push(module);
77
- }else{
78
- orderedEndMods.push(module);
79
- }
80
-
81
- }else{
82
- unOrderedMods.push(module);
83
- }
84
- }
85
- }
86
-
87
- orderedStartMods.sort((a, b) => a.moduleInitOrder > b.moduleInitOrder ? 1 : -1);
88
- orderedEndMods.sort((a, b) => a.moduleInitOrder > b.moduleInitOrder ? 1 : -1);
89
-
90
- this.modulesRegular = orderedStartMods.concat(unOrderedMods.concat(orderedEndMods));
91
- };
92
- }
93
-
94
- bindModules(tabulator, modules, core){
95
- var mods = Object.values(modules);
96
-
97
- if(core){
98
- mods.forEach((mod) => {
99
- mod.prototype.moduleCore = true;
100
- });
101
- }
102
-
103
- tabulator.registerModule(mods);
104
- }
1
+ import * as coreModules from '../modules/core.js';
2
+ import TableRegistry from './TableRegistry.js';
3
+
4
+ export default class ModuleBinder {
5
+
6
+ constructor(tabulator, modules){
7
+ this.bindStaticFunctionality(tabulator);
8
+ this.bindModules(tabulator, coreModules, true);
9
+
10
+ if(modules){
11
+ this.bindModules(tabulator, modules);
12
+ }
13
+ }
14
+
15
+ bindStaticFunctionality(tabulator){
16
+ tabulator.moduleBindings = {};
17
+
18
+ tabulator.extendModule = function(name, property, values){
19
+ if(tabulator.moduleBindings[name]){
20
+ var source = tabulator.moduleBindings[name][property];
21
+
22
+ if(source){
23
+ if(typeof values == "object"){
24
+ for(let key in values){
25
+ source[key] = values[key];
26
+ }
27
+ }else{
28
+ console.warn("Module Error - Invalid value type, it must be an object");
29
+ }
30
+ }else{
31
+ console.warn("Module Error - property does not exist:", property);
32
+ }
33
+ }else{
34
+ console.warn("Module Error - module does not exist:", name);
35
+ }
36
+ };
37
+
38
+ tabulator.registerModule = function(modules){
39
+ if(!Array.isArray(modules)){
40
+ modules = [modules];
41
+ }
42
+
43
+ modules.forEach((mod) => {
44
+ tabulator.registerModuleBinding(mod);
45
+ });
46
+ };
47
+
48
+ tabulator.registerModuleBinding = function(mod){
49
+ tabulator.moduleBindings[mod.moduleName] = mod;
50
+ };
51
+
52
+ tabulator.findTable = function(query){
53
+ var results = TableRegistry.lookupTable(query, true);
54
+ return Array.isArray(results) && !results.length ? false : results;
55
+ };
56
+
57
+ //ensure that module are bound to instantiated function
58
+ tabulator.prototype.bindModules = function(){
59
+ var orderedStartMods = [],
60
+ orderedEndMods = [],
61
+ unOrderedMods = [];
62
+
63
+ this.modules = {};
64
+
65
+ for(var name in tabulator.moduleBindings){
66
+ let mod = tabulator.moduleBindings[name];
67
+ let module = new mod(this);
68
+
69
+ this.modules[name] = module;
70
+
71
+ if(mod.prototype.moduleCore){
72
+ this.modulesCore.push(module);
73
+ }else{
74
+ if(mod.moduleInitOrder){
75
+ if(mod.moduleInitOrder < 0){
76
+ orderedStartMods.push(module);
77
+ }else{
78
+ orderedEndMods.push(module);
79
+ }
80
+
81
+ }else{
82
+ unOrderedMods.push(module);
83
+ }
84
+ }
85
+ }
86
+
87
+ orderedStartMods.sort((a, b) => a.moduleInitOrder > b.moduleInitOrder ? 1 : -1);
88
+ orderedEndMods.sort((a, b) => a.moduleInitOrder > b.moduleInitOrder ? 1 : -1);
89
+
90
+ this.modulesRegular = orderedStartMods.concat(unOrderedMods.concat(orderedEndMods));
91
+ };
92
+ }
93
+
94
+ bindModules(tabulator, modules, core){
95
+ var mods = Object.values(modules);
96
+
97
+ if(core){
98
+ mods.forEach((mod) => {
99
+ mod.prototype.moduleCore = true;
100
+ });
101
+ }
102
+
103
+ tabulator.registerModule(mods);
104
+ }
105
105
  }
@@ -1,41 +1,45 @@
1
- export default class OptionsList {
2
- constructor(table, msgType, defaults = {}){
3
- this.table = table;
4
- this.msgType = msgType;
5
- this.registeredDefaults = Object.assign({}, defaults);
6
- }
7
-
8
- register(option, value){
9
- this.registeredDefaults[option] = value;
10
- }
11
-
12
- generate(defaultOptions, userOptions = {}){
13
- var output = Object.assign({}, this.registeredDefaults);
14
-
15
- Object.assign(output, defaultOptions);
16
-
17
- if(userOptions.debugInvalidOptions !== false || this.table.options.debugInvalidOptions){
18
- for (let key in userOptions){
19
- if(!output.hasOwnProperty(key)){
20
- console.warn("Invalid " + this.msgType + " option:", key);
21
- }
22
- }
23
- }
24
-
25
- for (let key in output){
26
- if(key in userOptions){
27
- output[key] = userOptions[key];
28
- }else{
29
- if(Array.isArray(output[key])){
30
- output[key] = Object.assign([], output[key]);
31
- }else if(typeof output[key] === "object" && output[key] !== null){
32
- output[key] = Object.assign({}, output[key]);
33
- }else if (typeof output[key] === "undefined"){
34
- delete output[key];
35
- }
36
- }
37
- }
38
-
39
- return output;
40
- }
1
+ export default class OptionsList {
2
+ constructor(table, msgType, defaults = {}){
3
+ this.table = table;
4
+ this.msgType = msgType;
5
+ this.registeredDefaults = Object.assign({}, defaults);
6
+ }
7
+
8
+ register(option, value){
9
+ this.registeredDefaults[option] = value;
10
+ }
11
+
12
+ generate(defaultOptions, userOptions = {}){
13
+ var output = Object.assign({}, this.registeredDefaults),
14
+ warn = this.table.options.debugInvalidOptions || userOptions.debugInvalidOptions === true;
15
+
16
+ Object.assign(output, defaultOptions);
17
+
18
+ for (let key in userOptions){
19
+ if(!output.hasOwnProperty(key)){
20
+ if(warn){
21
+ console.warn("Invalid " + this.msgType + " option:", key);
22
+ }
23
+
24
+ output[key] = userOptions.key;
25
+ }
26
+ }
27
+
28
+
29
+ for (let key in output){
30
+ if(key in userOptions){
31
+ output[key] = userOptions[key];
32
+ }else{
33
+ if(Array.isArray(output[key])){
34
+ output[key] = Object.assign([], output[key]);
35
+ }else if(typeof output[key] === "object" && output[key] !== null){
36
+ output[key] = Object.assign({}, output[key]);
37
+ }else if (typeof output[key] === "undefined"){
38
+ delete output[key];
39
+ }
40
+ }
41
+ }
42
+
43
+ return output;
44
+ }
41
45
  }