melondtable 1.16.1 → 1.16.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3052,11 +3052,14 @@ class CellManager {
3052
3052
  }
3053
3053
 
3054
3054
  promise = valuePromise.then((value) => {
3055
- const done = editor.setValue(value, rowIndex, col);
3056
3055
  const oldValue = this.getCell(colIndex, rowIndex).content;
3057
3056
 
3057
+ if (oldValue === value) return false;
3058
+
3059
+ const done = editor.setValue(value, rowIndex, col);
3060
+
3058
3061
  // update cell immediately
3059
- this.updateCell(colIndex, rowIndex, value);
3062
+ this.updateCell(colIndex, rowIndex, value, true);
3060
3063
  $cell.focus();
3061
3064
 
3062
3065
  if (done && done.then) {
@@ -3134,7 +3137,7 @@ class CellManager {
3134
3137
  let rowIndex = i + focusedCell.rowIndex;
3135
3138
  row.forEach((cell, j) => {
3136
3139
  let colIndex = j + focusedCell.colIndex;
3137
- this.updateCell(colIndex, rowIndex, cell);
3140
+ this.updateCell(colIndex, rowIndex, cell, true);
3138
3141
  });
3139
3142
  });
3140
3143
  }
@@ -3149,16 +3152,16 @@ class CellManager {
3149
3152
  }
3150
3153
  }
3151
3154
 
3152
- updateCell(colIndex, rowIndex, value) {
3155
+ updateCell(colIndex, rowIndex, value, refreshHtml = false) {
3153
3156
  const cell = this.datamanager.updateCell(colIndex, rowIndex, {
3154
3157
  content: value
3155
3158
  });
3156
- this.refreshCell(cell);
3159
+ this.refreshCell(cell, refreshHtml);
3157
3160
  }
3158
3161
 
3159
- refreshCell(cell) {
3162
+ refreshCell(cell, refreshHtml = false) {
3160
3163
  const $cell = $(this.selector(cell.colIndex, cell.rowIndex), this.bodyScrollable);
3161
- $cell.innerHTML = this.getCellContent(cell);
3164
+ $cell.innerHTML = this.getCellContent(cell, refreshHtml);
3162
3165
  }
3163
3166
 
3164
3167
  toggleTreeButton(rowIndex, flag) {
@@ -3175,7 +3178,7 @@ class CellManager {
3175
3178
  }
3176
3179
 
3177
3180
  focusCellInDirection(direction) {
3178
- if (!this.$focusedCell) {
3181
+ if (!this.$focusedCell || (this.$editingCell && ['left', 'right', 'up', 'down'].includes(direction))) {
3179
3182
  return false;
3180
3183
  } else if (this.$editingCell && ['tab', 'shift+tab'].includes(direction)) {
3181
3184
  this.deactivateEditing();
@@ -3333,7 +3336,7 @@ class CellManager {
3333
3336
  `;
3334
3337
  }
3335
3338
 
3336
- getCellContent(cell) {
3339
+ getCellContent(cell, refreshHtml = false) {
3337
3340
  const {
3338
3341
  isHeader,
3339
3342
  isFilter,
@@ -3356,15 +3359,18 @@ class CellManager {
3356
3359
  const hasDropdown = isHeader && cell.dropdown !== false;
3357
3360
  const dropdown = hasDropdown ? this.columnmanager.getDropdownHTML() : '';
3358
3361
 
3359
- const customFormatter = cell.format || (cell.column && cell.column.format) || null;
3360
-
3362
+ let customFormatter = CellManager.getCustomCellFormatter(cell);
3361
3363
  let contentHTML;
3362
3364
  if (isHeader || isFilter || !customFormatter) {
3363
3365
  contentHTML = cell.content;
3364
3366
  } else {
3365
- const row = this.datamanager.getRow(cell.rowIndex);
3366
- const data = this.datamanager.getData(cell.rowIndex);
3367
- contentHTML = customFormatter(cell.content, row, cell.column, data);
3367
+ if (!cell.html || refreshHtml) {
3368
+ const row = this.datamanager.getRow(cell.rowIndex);
3369
+ const data = this.datamanager.getData(cell.rowIndex);
3370
+ contentHTML = customFormatter(cell.content, row, cell.column, data);
3371
+ } else {
3372
+ contentHTML = cell.html;
3373
+ }
3368
3374
  }
3369
3375
 
3370
3376
  cell.html = contentHTML;
@@ -3414,6 +3420,10 @@ class CellManager {
3414
3420
  selector(colIndex, rowIndex) {
3415
3421
  return `.dt-cell--${colIndex}-${rowIndex}`;
3416
3422
  }
3423
+
3424
+ static getCustomCellFormatter(cell) {
3425
+ return cell.format || (cell.column && cell.column.format) || null;
3426
+ }
3417
3427
  }
3418
3428
 
3419
3429
  class ColumnManager {
@@ -3924,7 +3934,7 @@ class RowManager {
3924
3934
  const _row = this.datamanager.updateRow(row, rowIndex);
3925
3935
 
3926
3936
  _row.forEach(cell => {
3927
- this.cellmanager.refreshCell(cell);
3937
+ this.cellmanager.refreshCell(cell, true);
3928
3938
  });
3929
3939
  }
3930
3940
 
@@ -4185,7 +4195,8 @@ class RowManager {
4185
4195
  if (props.isFilter) {
4186
4196
  row = row.map(cell => (Object.assign({}, cell, {
4187
4197
  content: this.getFilterInput({
4188
- colIndex: cell.colIndex
4198
+ colIndex: cell.colIndex,
4199
+ name: cell.name
4189
4200
  }),
4190
4201
  isFilter: 1,
4191
4202
  isHeader: undefined,
@@ -4207,8 +4218,10 @@ class RowManager {
4207
4218
  }
4208
4219
 
4209
4220
  getFilterInput(props) {
4221
+ let title = `title="Filter based on ${props.name || 'Index'}"`;
4210
4222
  const dataAttr = makeDataAttributeString(props);
4211
- return `<input class="dt-filter dt-input" type="text" ${dataAttr} tabindex="1" />`;
4223
+ return `<input class="dt-filter dt-input" type="text" ${dataAttr} tabindex="1"
4224
+ ${props.colIndex === 0 ? 'disabled' : title} />`;
4212
4225
  }
4213
4226
 
4214
4227
  selector(rowIndex) {
@@ -5319,7 +5332,7 @@ function filterRows(rows, filters) {
5319
5332
  const cells = filteredRows.map(row => row[colIndex]);
5320
5333
 
5321
5334
  let filter = guessFilter(keyword);
5322
- let filterMethod = getFilterMethod(filter);
5335
+ let filterMethod = getFilterMethod(rows, filter);
5323
5336
 
5324
5337
  if (filterMethod) {
5325
5338
  filteredRowIndices = filterMethod(filter.text, cells);
@@ -5330,9 +5343,18 @@ function filterRows(rows, filters) {
5330
5343
 
5331
5344
  return filteredRowIndices;
5332
5345
  }
5333
- function getFilterMethod(filter) {
5346
+ function getFilterMethod(rows, filter) {
5347
+ const getFormattedValue = cell => {
5348
+ let formatter = CellManager.getCustomCellFormatter(cell);
5349
+ if (formatter && cell.content) {
5350
+ cell.html = formatter(cell.content, rows[cell.rowIndex], cell.column, rows[cell.rowIndex]);
5351
+ return stripHTML(cell.html);
5352
+ }
5353
+ return cell.content || '';
5354
+ };
5355
+
5334
5356
  const stringCompareValue = cell =>
5335
- String(stripHTML(cell.html || '') || cell.content || '').toLowerCase();
5357
+ String(stripHTML(cell.html || '') || getFormattedValue(cell)).toLowerCase();
5336
5358
 
5337
5359
  const numberCompareValue = cell => parseFloat(cell.content);
5338
5360
 
@@ -5834,10 +5856,10 @@ var files = ["dist","src"];
5834
5856
  var devDependencies = {"autoprefixer":"^9.0.0","chai":"3.5.0","cypress":"^9.2.0","cz-conventional-changelog":"^2.1.0","deepmerge":"^2.0.1","eslint":"^5.0.1","eslint-config-airbnb":"^16.1.0","eslint-config-airbnb-base":"^12.1.0","eslint-plugin-import":"^2.11.0","http-server":"^0.11.1","mocha":"3.3.0","postcss-custom-properties":"^7.0.0","postcss-nested":"^3.0.0","rollup":"^0.59.4","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-eslint":"^4.0.0","rollup-plugin-json":"^2.3.0","rollup-plugin-node-resolve":"^3.0.3","rollup-plugin-postcss":"^1.2.8","rollup-plugin-uglify-es":"^0.0.1","semantic-release":"^17.1.1","start-server-and-test":"^1.4.1","travis-deploy-once":"^5.0.1"};
5835
5857
  var repository = {"type":"git","url":"https://github.com/amonak/melondtable.git"};
5836
5858
  var keywords = ["datatable","data","grid","table"];
5837
- var author = "Faris Ansari";
5859
+ var author = "Alphamonak Solutions";
5838
5860
  var license = "MIT";
5839
5861
  var bugs = {"url":"https://github.com/amonak/datatable/issues"};
5840
- var homepage = "https://monakerp.com/melondtable";
5862
+ var homepage = "https://devel.monakerp.com/datatable";
5841
5863
  var dependencies = {"hyperlist":"^1.0.0-beta","lodash":"^4.17.5","sortablejs":"^1.7.0"};
5842
5864
  var config = {"commitizen":{"path":"cz-conventional-changelog"}};
5843
5865
  var packageJson = {
File without changes
@@ -290,11 +290,18 @@ var DataTable = (function (Sortable) {
290
290
 
291
291
  var _freeGlobal = freeGlobal;
292
292
 
293
+ var _freeGlobal$1 = /*#__PURE__*/Object.freeze({
294
+ default: _freeGlobal,
295
+ __moduleExports: _freeGlobal
296
+ });
297
+
298
+ var freeGlobal$1 = ( _freeGlobal$1 && _freeGlobal ) || _freeGlobal$1;
299
+
293
300
  /** Detect free variable `self`. */
294
301
  var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
295
302
 
296
303
  /** Used as a reference to the global object. */
297
- var root = _freeGlobal || freeSelf || Function('return this')();
304
+ var root = freeGlobal$1 || freeSelf || Function('return this')();
298
305
 
299
306
  var _root = root;
300
307
 
@@ -1139,6 +1146,13 @@ var DataTable = (function (Sortable) {
1139
1146
 
1140
1147
  var eq_1 = eq;
1141
1148
 
1149
+ var eq$1 = /*#__PURE__*/Object.freeze({
1150
+ default: eq_1,
1151
+ __moduleExports: eq_1
1152
+ });
1153
+
1154
+ var eq$2 = ( eq$1 && eq_1 ) || eq$1;
1155
+
1142
1156
  /**
1143
1157
  * Gets the index at which the `key` is found in `array` of key-value pairs.
1144
1158
  *
@@ -1150,7 +1164,7 @@ var DataTable = (function (Sortable) {
1150
1164
  function assocIndexOf(array, key) {
1151
1165
  var length = array.length;
1152
1166
  while (length--) {
1153
- if (eq_1(array[length][0], key)) {
1167
+ if (eq$2(array[length][0], key)) {
1154
1168
  return length;
1155
1169
  }
1156
1170
  }
@@ -3051,11 +3065,14 @@ var DataTable = (function (Sortable) {
3051
3065
  }
3052
3066
 
3053
3067
  promise = valuePromise.then((value) => {
3054
- const done = editor.setValue(value, rowIndex, col);
3055
3068
  const oldValue = this.getCell(colIndex, rowIndex).content;
3056
3069
 
3070
+ if (oldValue === value) return false;
3071
+
3072
+ const done = editor.setValue(value, rowIndex, col);
3073
+
3057
3074
  // update cell immediately
3058
- this.updateCell(colIndex, rowIndex, value);
3075
+ this.updateCell(colIndex, rowIndex, value, true);
3059
3076
  $cell.focus();
3060
3077
 
3061
3078
  if (done && done.then) {
@@ -3133,7 +3150,7 @@ var DataTable = (function (Sortable) {
3133
3150
  let rowIndex = i + focusedCell.rowIndex;
3134
3151
  row.forEach((cell, j) => {
3135
3152
  let colIndex = j + focusedCell.colIndex;
3136
- this.updateCell(colIndex, rowIndex, cell);
3153
+ this.updateCell(colIndex, rowIndex, cell, true);
3137
3154
  });
3138
3155
  });
3139
3156
  }
@@ -3148,16 +3165,16 @@ var DataTable = (function (Sortable) {
3148
3165
  }
3149
3166
  }
3150
3167
 
3151
- updateCell(colIndex, rowIndex, value) {
3168
+ updateCell(colIndex, rowIndex, value, refreshHtml = false) {
3152
3169
  const cell = this.datamanager.updateCell(colIndex, rowIndex, {
3153
3170
  content: value
3154
3171
  });
3155
- this.refreshCell(cell);
3172
+ this.refreshCell(cell, refreshHtml);
3156
3173
  }
3157
3174
 
3158
- refreshCell(cell) {
3175
+ refreshCell(cell, refreshHtml = false) {
3159
3176
  const $cell = $(this.selector(cell.colIndex, cell.rowIndex), this.bodyScrollable);
3160
- $cell.innerHTML = this.getCellContent(cell);
3177
+ $cell.innerHTML = this.getCellContent(cell, refreshHtml);
3161
3178
  }
3162
3179
 
3163
3180
  toggleTreeButton(rowIndex, flag) {
@@ -3174,7 +3191,7 @@ var DataTable = (function (Sortable) {
3174
3191
  }
3175
3192
 
3176
3193
  focusCellInDirection(direction) {
3177
- if (!this.$focusedCell) {
3194
+ if (!this.$focusedCell || (this.$editingCell && ['left', 'right', 'up', 'down'].includes(direction))) {
3178
3195
  return false;
3179
3196
  } else if (this.$editingCell && ['tab', 'shift+tab'].includes(direction)) {
3180
3197
  this.deactivateEditing();
@@ -3332,7 +3349,7 @@ var DataTable = (function (Sortable) {
3332
3349
  `;
3333
3350
  }
3334
3351
 
3335
- getCellContent(cell) {
3352
+ getCellContent(cell, refreshHtml = false) {
3336
3353
  const {
3337
3354
  isHeader,
3338
3355
  isFilter,
@@ -3355,15 +3372,18 @@ var DataTable = (function (Sortable) {
3355
3372
  const hasDropdown = isHeader && cell.dropdown !== false;
3356
3373
  const dropdown = hasDropdown ? this.columnmanager.getDropdownHTML() : '';
3357
3374
 
3358
- const customFormatter = cell.format || (cell.column && cell.column.format) || null;
3359
-
3375
+ let customFormatter = CellManager.getCustomCellFormatter(cell);
3360
3376
  let contentHTML;
3361
3377
  if (isHeader || isFilter || !customFormatter) {
3362
3378
  contentHTML = cell.content;
3363
3379
  } else {
3364
- const row = this.datamanager.getRow(cell.rowIndex);
3365
- const data = this.datamanager.getData(cell.rowIndex);
3366
- contentHTML = customFormatter(cell.content, row, cell.column, data);
3380
+ if (!cell.html || refreshHtml) {
3381
+ const row = this.datamanager.getRow(cell.rowIndex);
3382
+ const data = this.datamanager.getData(cell.rowIndex);
3383
+ contentHTML = customFormatter(cell.content, row, cell.column, data);
3384
+ } else {
3385
+ contentHTML = cell.html;
3386
+ }
3367
3387
  }
3368
3388
 
3369
3389
  cell.html = contentHTML;
@@ -3413,6 +3433,10 @@ var DataTable = (function (Sortable) {
3413
3433
  selector(colIndex, rowIndex) {
3414
3434
  return `.dt-cell--${colIndex}-${rowIndex}`;
3415
3435
  }
3436
+
3437
+ static getCustomCellFormatter(cell) {
3438
+ return cell.format || (cell.column && cell.column.format) || null;
3439
+ }
3416
3440
  }
3417
3441
 
3418
3442
  class ColumnManager {
@@ -3923,7 +3947,7 @@ var DataTable = (function (Sortable) {
3923
3947
  const _row = this.datamanager.updateRow(row, rowIndex);
3924
3948
 
3925
3949
  _row.forEach(cell => {
3926
- this.cellmanager.refreshCell(cell);
3950
+ this.cellmanager.refreshCell(cell, true);
3927
3951
  });
3928
3952
  }
3929
3953
 
@@ -4184,7 +4208,8 @@ var DataTable = (function (Sortable) {
4184
4208
  if (props.isFilter) {
4185
4209
  row = row.map(cell => (Object.assign({}, cell, {
4186
4210
  content: this.getFilterInput({
4187
- colIndex: cell.colIndex
4211
+ colIndex: cell.colIndex,
4212
+ name: cell.name
4188
4213
  }),
4189
4214
  isFilter: 1,
4190
4215
  isHeader: undefined,
@@ -4206,8 +4231,10 @@ var DataTable = (function (Sortable) {
4206
4231
  }
4207
4232
 
4208
4233
  getFilterInput(props) {
4234
+ let title = `title="Filter based on ${props.name || 'Index'}"`;
4209
4235
  const dataAttr = makeDataAttributeString(props);
4210
- return `<input class="dt-filter dt-input" type="text" ${dataAttr} tabindex="1" />`;
4236
+ return `<input class="dt-filter dt-input" type="text" ${dataAttr} tabindex="1"
4237
+ ${props.colIndex === 0 ? 'disabled' : title} />`;
4211
4238
  }
4212
4239
 
4213
4240
  selector(rowIndex) {
@@ -5318,7 +5345,7 @@ var DataTable = (function (Sortable) {
5318
5345
  const cells = filteredRows.map(row => row[colIndex]);
5319
5346
 
5320
5347
  let filter = guessFilter(keyword);
5321
- let filterMethod = getFilterMethod(filter);
5348
+ let filterMethod = getFilterMethod(rows, filter);
5322
5349
 
5323
5350
  if (filterMethod) {
5324
5351
  filteredRowIndices = filterMethod(filter.text, cells);
@@ -5329,9 +5356,18 @@ var DataTable = (function (Sortable) {
5329
5356
 
5330
5357
  return filteredRowIndices;
5331
5358
  }
5332
- function getFilterMethod(filter) {
5359
+ function getFilterMethod(rows, filter) {
5360
+ const getFormattedValue = cell => {
5361
+ let formatter = CellManager.getCustomCellFormatter(cell);
5362
+ if (formatter && cell.content) {
5363
+ cell.html = formatter(cell.content, rows[cell.rowIndex], cell.column, rows[cell.rowIndex]);
5364
+ return stripHTML(cell.html);
5365
+ }
5366
+ return cell.content || '';
5367
+ };
5368
+
5333
5369
  const stringCompareValue = cell =>
5334
- String(stripHTML(cell.html || '') || cell.content || '').toLowerCase();
5370
+ String(stripHTML(cell.html || '') || getFormattedValue(cell)).toLowerCase();
5335
5371
 
5336
5372
  const numberCompareValue = cell => parseFloat(cell.content);
5337
5373
 
@@ -5833,10 +5869,10 @@ var DataTable = (function (Sortable) {
5833
5869
  var devDependencies = {"autoprefixer":"^9.0.0","chai":"3.5.0","cypress":"^9.2.0","cz-conventional-changelog":"^2.1.0","deepmerge":"^2.0.1","eslint":"^5.0.1","eslint-config-airbnb":"^16.1.0","eslint-config-airbnb-base":"^12.1.0","eslint-plugin-import":"^2.11.0","http-server":"^0.11.1","mocha":"3.3.0","postcss-custom-properties":"^7.0.0","postcss-nested":"^3.0.0","rollup":"^0.59.4","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-eslint":"^4.0.0","rollup-plugin-json":"^2.3.0","rollup-plugin-node-resolve":"^3.0.3","rollup-plugin-postcss":"^1.2.8","rollup-plugin-uglify-es":"^0.0.1","semantic-release":"^17.1.1","start-server-and-test":"^1.4.1","travis-deploy-once":"^5.0.1"};
5834
5870
  var repository = {"type":"git","url":"https://github.com/amonak/melondtable.git"};
5835
5871
  var keywords = ["datatable","data","grid","table"];
5836
- var author = "Faris Ansari";
5872
+ var author = "Alphamonak Solutions";
5837
5873
  var license = "MIT";
5838
5874
  var bugs = {"url":"https://github.com/amonak/datatable/issues"};
5839
- var homepage = "https://monakerp.com/melondtable";
5875
+ var homepage = "https://devel.monakerp.com/datatable";
5840
5876
  var dependencies = {"hyperlist":"^1.0.0-beta","lodash":"^4.17.5","sortablejs":"^1.7.0"};
5841
5877
  var config = {"commitizen":{"path":"cz-conventional-changelog"}};
5842
5878
  var packageJson = {
@@ -0,0 +1 @@
1
+ var DataTable=function(t){"use strict";function e(t,e){return"string"==typeof t?(e||document).querySelector(t):t||null}function n(){const t=document.createElement("div");e.style(t,{width:"100px",height:"100px",overflow:"scroll",position:"absolute",top:"-9999px"}),document.body.appendChild(t);const n=t.offsetWidth-t.clientWidth;return document.body.removeChild(t),n}function i(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function o(){throw new Error("Dynamic requires are not currently supported by rollup-plugin-commonjs")}function s(t){var e=Tt.call(t,kt),n=t[kt];try{t[kt]=void 0}catch(t){}var i=Et.call(t);return e?t[kt]=n:delete t[kt],i}function r(t){return Lt.call(t)}function l(t){return null==t?void 0===t?Ft:Ot:jt&&jt in Object(t)?Mt(t):$t(t)}function a(t){return null!=t&&"object"==typeof t}function c(t){return"symbol"==typeof t||Dt(t)&&At(t)==Wt}function u(t){if("number"==typeof t)return t;if(zt(t))return Nt;if(Ct(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Ct(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(Pt,"");var n=Vt.test(t);return n||qt.test(t)?Kt(t.slice(2),n?2:8):Bt.test(t)?Nt:+t}function h(t,e,n){function i(e){var n=d,i=f;return d=f=void 0,y=e,p=t.apply(i,n)}function o(t){return y=t,g=setTimeout(l,e),b?i(t):p}function s(t){var n=t-y,i=e-(t-w);return C?Gt(i,m-n):i}function r(t){var n=t-w,i=t-y;return void 0===w||n>=e||n<0||C&&i>=m}function l(){var t=It();if(r(t))return a(t);g=setTimeout(l,s(t))}function a(t){return g=void 0,v&&d?i(t):(d=f=void 0,p)}function c(){void 0!==g&&clearTimeout(g),y=0,d=w=f=g=void 0}function u(){return void 0===g?p:a(It())}function h(){var t=It(),n=r(t);if(d=arguments,f=this,w=t,n){if(void 0===g)return o(w);if(C)return g=setTimeout(l,e),i(w)}return void 0===g&&(g=setTimeout(l,e)),p}var d,f,m,p,g,w,y=0,b=!1,C=!1,v=!0;if("function"!=typeof t)throw new TypeError(Zt);return e=Ut(e)||0,Ct(n)&&(b=!!n.leading,m=(C="maxWait"in n)?Xt(Ut(n.maxWait)||0,e):m,v="trailing"in n?!!n.trailing:v),h.cancel=c,h.flush=u,h}function d(t,e,n){var i=!0,o=!0;if("function"!=typeof t)throw new TypeError(Jt);return Ct(n)&&(i="leading"in n?!!n.leading:i,o="trailing"in n?!!n.trailing:o),Yt(t,e,{leading:i,maxWait:e,trailing:o})}function f(t){if(!Ct(t))return!1;var e=At(t);return e==ee||e==ne||e==te||e==ie}function m(t){return!!re&&re in t}function p(t){if(null!=t){try{return ae.call(t)}catch(t){}try{return t+""}catch(t){}}return""}function g(t){return!(!Ct(t)||le(t))&&(oe(t)?pe:ue).test(ce(t))}function w(t,e){return null==t?void 0:t[e]}function y(t,e){var n=we(t,e);return ge(n)?n:void 0}function b(){this.__data__=be?be(null):{},this.size=0}function C(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}function v(t){var e=this.__data__;if(be){var n=e[t];return n===_e?void 0:n}return xe.call(e,t)?e[t]:void 0}function _(t){var e=this.__data__;return be?void 0!==e[t]:Ie.call(e,t)}function x(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=be&&void 0===e?He:e,this}function R(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}function I(){this.__data__=[],this.size=0}function S(t,e){return t===e||t!==t&&e!==e}function H(t,e){for(var n=t.length;n--;)if(Me(t[n][0],e))return n;return-1}function T(t){var e=this.__data__,n=Le(e,t);return!(n<0)&&(n==e.length-1?e.pop():$e.call(e,n,1),--this.size,!0)}function E(t){var e=this.__data__,n=Le(e,t);return n<0?void 0:e[n][1]}function k(t){return Le(this.__data__,t)>-1}function M(t,e){var n=this.__data__,i=Le(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}function L(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}function $(){this.size=0,this.__data__={hash:new Ee,map:new(We||De),string:new Ee}}function O(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}function F(t,e){var n=t.__data__;return Ne(e)?n["string"==typeof e?"string":"hash"]:n.map}function j(t){var e=Pe(this,t).delete(t);return this.size-=e?1:0,e}function A(t){return Pe(this,t).get(t)}function D(t){return Pe(this,t).has(t)}function W(t,e){var n=Pe(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}function z(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}function N(t){return this.__data__.set(t,Ze),this}function P(t){return this.__data__.has(t)}function B(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new Ue;++e<n;)this.add(t[e])}function V(t,e,n,i){for(var o=t.length,s=n+(i?1:-1);i?s--:++s<o;)if(e(t[s],s,t))return s;return-1}function q(t){return t!==t}function K(t,e,n){for(var i=n-1,o=t.length;++i<o;)if(t[i]===e)return i;return-1}function U(t,e,n){return e===e?tn(t,e,n):Je(t,Qe,n)}function Z(t,e){return!!(null==t?0:t.length)&&en(t,e,0)>-1}function X(t,e,n){for(var i=-1,o=null==t?0:t.length;++i<o;)if(n(e,t[i]))return!0;return!1}function G(t,e){return t.has(e)}function Y(){}function J(t){var e=-1,n=Array(t.size);return t.forEach(function(t){n[++e]=t}),n}function Q(t,e,n){var i=-1,o=nn,s=t.length,r=!0,l=[],a=l;if(n)r=!1,o=on;else if(s>=un){var c=e?null:cn(t);if(c)return an(c);r=!1,o=sn,a=new Ye}else a=e?[]:l;t:for(;++i<s;){var u=t[i],h=e?e(u):u;if(u=n||0!==u?u:0,r&&h===h){for(var d=a.length;d--;)if(a[d]===h)continue t;e&&a.push(h),l.push(u)}else o(a,h,n)||(a!==l&&a.push(h),l.push(u))}return l}function tt(t){return t&&t.length?hn(t):[]}function et(t){return t.replace(/([A-Z])/g,t=>`-${t[0].toLowerCase()}`)}function nt(t){return Object.keys(t).map(e=>{const n=et(e);const i=t[e];if(void 0===i)return"";return`data-${n}="${i}" `}).join("").trim()}function it(t){var e=document.createElement("textarea");e.style.position="fixed",e.style.top=0,e.style.left=0,e.style.width="2em",e.style.height="2em",e.style.padding=0,e.style.border="none",e.style.outline="none",e.style.boxShadow="none",e.style.background="transparent",e.value=t,document.body.appendChild(e),e.select();try{document.execCommand("copy")}catch(t){console.log("Oops, unable to copy")}document.body.removeChild(e)}function ot(t){return!isNaN(t)}function st(t,e=null){return(...n)=>new Promise(i=>{const o=()=>{const o=t.apply(e,n);i(o)};setTimeout(o)})}function rt(t,e,n){const i=n.reduce((t,n)=>{t[n]={get(){return e[n]}};return t},{});Object.defineProperties(t,i)}function lt(t){return void 0!==t||null!==t}function at(t){return!lt(t)}function ct(t){return!isNaN(t)}function ut(t){return Array.isArray(t)?t:[t]}function ht(t){return dn(t)}function dt(t,e){return t-e}function ft(t){return t.replace(/<[^>]*>/g,"")}function mt(t,e){return t?(Object.keys(e).forEach(n=>{let i=new RegExp(`{(${n})}`,"g");t=t.replace(i,e[n])}),t):t}function pt(){return{en:Sn,de:Hn,fr:Tn,it:En}}function gt(t,e){let n=[];if(0===Object.keys(e).length)return t.map(t=>t.meta.rowIndex);for(let i in e){const o=e[i],s=n.length?n.map(e=>t[e]):t,r=s.map(t=>t[i]);let l=yt(o),a=wt(t,l);n=a?a(l.text,r):r.map(t=>t.rowIndex)}return n}function wt(t,e){const n=e=>{let n=yn.getCustomCellFormatter(e);if(n&&e.content)return e.html=n(e.content,t[e.rowIndex],e.column,t[e.rowIndex]),ft(e.html);return e.content||""},i=t=>String(ft(t.html||"")||n(t)).toLowerCase(),o=t=>parseFloat(t.content),s=(t,e)=>{if(t.column.compareValue){const n=t.column.compareValue(t,e);if(n&&Array.isArray(n))return n}const n=o(t);if(!isNaN(n))return[n,e];return[i(t),e]};return{contains(t,e){return e.filter(e=>{const n=i(e);const o=(t||"").toLowerCase();return!o||n.includes(o)}).map(t=>t.rowIndex)},greaterThan(t,e){return e.filter(e=>{const[n,i]=s(e,t);return n>i}).map(t=>t.rowIndex)},lessThan(t,e){return e.filter(e=>{const[n,i]=s(e,t);return n<i}).map(t=>t.rowIndex)},equals(t,e){return e.filter(e=>{const n=parseFloat(e.content);return n===t}).map(t=>t.rowIndex)},notEquals(t,e){return e.filter(e=>{const n=parseFloat(e.content);return n!==t}).map(t=>t.rowIndex)},range(t,e){return e.filter(e=>{const n=s(e,t[0]);const i=s(e,t[1]);const o=n[0];return o>=n[1]&&o<=i[1]}).map(t=>t.rowIndex)},containsNumber(t,e){return e.filter(e=>{let n=parseFloat(t,10);let s=t;let r=o(e);let l=i(e);return n===r||l.includes(s)}).map(t=>t.rowIndex)}}[e.type]}function yt(t=""){if(0===t.length)return{};let e=t;return[">","<","="].includes(e[0])?e=t.slice(1):e.startsWith("!=")&&(e=t.slice(2)),t.startsWith(">")&&e?{type:"greaterThan",text:e.trim()}:t.startsWith("<")&&e?{type:"lessThan",text:e.trim()}:t.startsWith("=")&&ct(e)?{type:"equals",text:Number(t.slice(1).trim())}:ct(e)?{type:"containsNumber",text:e}:t.startsWith("!=")&&ct(e)?{type:"notEquals",text:Number(t.slice(2).trim())}:2===t.split(":").length?(e=t.split(":"),{type:"range",text:e.map(t=>t.trim())}):{type:"contains",text:e.toLowerCase()}}function bt(t){return{columns:[],data:[],dropdownButton:wn.chevronDown,headerDropdown:[{label:t.translate("Sort Ascending"),action:function(t){this.sortColumn(t.colIndex,"asc")}},{label:t.translate("Sort Descending"),action:function(t){this.sortColumn(t.colIndex,"desc")}},{label:t.translate("Reset sorting"),action:function(t){this.sortColumn(t.colIndex,"none")}},{label:t.translate("Remove column"),action:function(t){this.removeColumn(t.colIndex)}}],events:{onRemoveColumn(t){},onSwitchColumn(t,e){},onSortColumn(t){},onCheckRow(t){},onDestroy(){}},hooks:{columnTotal:null},sortIndicator:{asc:"↑",desc:"↓",none:""},overrideComponents:{},filterRows:gt,freezeMessage:"",getEditor:null,serialNoColumn:!0,checkboxColumn:!1,clusterize:!0,logs:!1,layout:"fixed",noDataMessage:t.translate("No Data"),cellHeight:40,minimumColumnWidth:30,inlineFilters:!1,treeView:!1,checkedRowStatus:!0,dynamicRowHeight:!1,pasteFromClipboard:!1,showTotalRow:!1,direction:"ltr",disableReorderColumn:!1}}t=t&&t.hasOwnProperty("default")?t.default:t,e.each=((t,e)=>"string"==typeof t?Array.from((e||document).querySelectorAll(t)):t||null),e.create=((t,n)=>{let i=document.createElement(t);for(let t in n){let o=n[t];if("inside"===t)e(o).appendChild(i);else if("around"===t){let t=e(o);t.parentNode.insertBefore(i,t),i.appendChild(t)}else"styles"===t?"object"==typeof o&&Object.keys(o).map(t=>{i.style[t]=o[t]}):t in i?i[t]=o:i.setAttribute(t,o)}return i}),e.on=((t,n,i,o)=>{o?e.delegate(t,n,i,o):(o=i,e.bind(t,n,o))}),e.off=((t,e,n)=>{t.removeEventListener(e,n)}),e.bind=((t,e,n)=>{e.split(/\s+/).forEach(function(e){t.addEventListener(e,n)})}),e.delegate=((t,e,n,i)=>{t.addEventListener(e,function(t){const e=t.target.closest(n);e&&(t.delegatedTarget=e,i.call(this,t,e))})}),e.unbind=((t,e)=>{if(t)for(let n in e){let i=e[n];n.split(/\s+/).forEach(function(e){t.removeEventListener(e,i)})}}),e.fire=((t,e,n)=>{let i=document.createEvent("HTMLEvents");i.initEvent(e,!0,!0);for(let t in n)i[t]=n[t];return t.dispatchEvent(i)}),e.data=((t,e)=>{if(!e)return t.dataset;for(const n in e)t.dataset[n]=e[n]}),e.style=((t,n)=>{if("string"==typeof n)return e.getStyle(t,n);Array.isArray(t)||(t=[t]);t.map(t=>{for(const e in n)t.style[e]=n[e]})}),e.removeStyle=((t,e)=>{Array.isArray(t)||(t=[t]);Array.isArray(e)||(e=[e]);t.map(t=>{for(const n of e)t.style[n]=""})}),e.getStyle=((t,e)=>{if(!e)return getComputedStyle(t);let n=getComputedStyle(t)[e];["width","height"].includes(e)&&(n=parseFloat(n));return n}),e.closest=((t,n)=>{if(!n)return null;if(n.matches(t))return n;return e.closest(t,n.parentNode)}),e.inViewport=((t,e)=>{const{top:top,left:left,bottom:bottom,right:right}=t.getBoundingClientRect();const{top:pTop,left:pLeft,bottom:pBottom,right:pRight}=e.getBoundingClientRect();return top>=pTop&&left>=pLeft&&bottom<=pBottom&&right<=pRight}),e.scrollTop=function(t,e){requestAnimationFrame(()=>{t.scrollTop=e})},e.scrollbarSize=function(){return e.scrollBarSizeValue||(e.scrollBarSizeValue=n()),e.scrollBarSizeValue},e.hasVerticalOverflow=function(t){return t.scrollHeight>t.offsetHeight+10},e.hasHorizontalOverflow=function(t){return t.scrollWidth>t.offsetWidth+10},e.measureTextWidth=function(t){const e=document.createElement("div");return e.style.position="absolute",e.style.visibility="hidden",e.style.height="auto",e.style.width="auto",e.style.whiteSpace="nowrap",e.innerText=t,document.body.appendChild(e),e.clientWidth+1};var Ct=i,vt="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},_t="object"==typeof vt&&vt&&vt.Object===Object&&vt,xt="object"==typeof self&&self&&self.Object===Object&&self,Rt=_t||xt||Function("return this")(),It=function(){return Rt.Date.now()},St=Rt.Symbol,Ht=Object.prototype,Tt=Ht.hasOwnProperty,Et=Ht.toString,kt=St?St.toStringTag:void 0,Mt=s,Lt=Object.prototype.toString,$t=r,Ot="[object Null]",Ft="[object Undefined]",jt=St?St.toStringTag:void 0,At=l,Dt=a,Wt="[object Symbol]",zt=c,Nt=NaN,Pt=/^\s+|\s+$/g,Bt=/^[-+]0x[0-9a-f]+$/i,Vt=/^0b[01]+$/i,qt=/^0o[0-7]+$/i,Kt=parseInt,Ut=u,Zt="Expected a function",Xt=Math.max,Gt=Math.min,Yt=h,Jt="Expected a function",Qt=d,te="[object AsyncFunction]",ee="[object Function]",ne="[object GeneratorFunction]",ie="[object Proxy]",oe=f,se=Rt["__core-js_shared__"],re=function(){var t=/[^.]+$/.exec(se&&se.keys&&se.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}(),le=m,ae=Function.prototype.toString,ce=p,ue=/^\[object .+?Constructor\]$/,he=Function.prototype,de=Object.prototype,fe=he.toString,me=de.hasOwnProperty,pe=RegExp("^"+fe.call(me).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ge=g,we=w,ye=y,be=ye(Object,"create"),Ce=b,ve=C,_e="__lodash_hash_undefined__",xe=Object.prototype.hasOwnProperty,Re=v,Ie=Object.prototype.hasOwnProperty,Se=_,He="__lodash_hash_undefined__",Te=x;R.prototype.clear=Ce,R.prototype.delete=ve,R.prototype.get=Re,R.prototype.has=Se,R.prototype.set=Te;var Ee=R,ke=I,Me=S,Le=H,$e=Array.prototype.splice,Oe=T,Fe=E,je=k,Ae=M;L.prototype.clear=ke,L.prototype.delete=Oe,L.prototype.get=Fe,L.prototype.has=je,L.prototype.set=Ae;var De=L,We=ye(Rt,"Map"),ze=$,Ne=O,Pe=F,Be=j,Ve=A,qe=D,Ke=W;z.prototype.clear=ze,z.prototype.delete=Be,z.prototype.get=Ve,z.prototype.has=qe,z.prototype.set=Ke;var Ue=z,Ze="__lodash_hash_undefined__",Xe=N,Ge=P;B.prototype.add=B.prototype.push=Xe,B.prototype.has=Ge;var Ye=B,Je=V,Qe=q,tn=K,en=U,nn=Z,on=X,sn=G,rn=ye(Rt,"Set"),ln=Y,an=J,cn=rn&&1/an(new rn([,-0]))[1]==1/0?function(t){return new rn(t)}:ln,un=200,hn=Q,dn=tt;let fn=Qt,mn=Yt;class pn{constructor(t){this.options=t,this.sortRows=st(this.sortRows,this),this.switchColumn=st(this.switchColumn,this),this.removeColumn=st(this.removeColumn,this),this.options.filterRows=st(this.options.filterRows,this)}init(t,e){t||(t=this.options.data),e&&(this.options.columns=e),this.data=t,this.rowCount=0,this.columns=[],this.rows=[],this.prepareColumns(),this.prepareRows(),this.prepareTreeRows(),this.prepareRowView(),this.prepareNumericColumns()}get currentSort(){return this.columns.find(t=>"none"!==t.sortOrder)||{colIndex:-1,sortOrder:"none"}}prepareColumns(){this.columns=[],this.validateColumns(),this.prepareDefaultColumns(),this.prepareHeader()}prepareDefaultColumns(){if(this.options.checkboxColumn&&!this.hasColumnById("_checkbox")){const t={id:"_checkbox",content:this.getCheckboxHTML(),editable:!1,resizable:!1,sortable:!1,focusable:!1,dropdown:!1,width:32};this.columns.push(t)}if(this.options.serialNoColumn&&!this.hasColumnById("_rowIndex")){let t={id:"_rowIndex",content:"",align:"center",editable:!1,resizable:!1,focusable:!1,dropdown:!1};this.columns.push(t)}}prepareHeader(){let t=this.columns.concat(this.options.columns);const e={isHeader:1,editable:!0,sortable:!0,resizable:!0,focusable:!0,dropdown:!0,width:null,format:t=>{if(null===t||void 0===t)return"";return t+""}};this.columns=t.map((t,e)=>this.prepareCell(t,e)).map(t=>Object.assign({},e,t)).map(t=>{t.content=t.content||t.name||"";t.id=t.id||t.content;return t})}prepareCell(t,e){const n={content:"",sortOrder:"none",colIndex:e,column:this.columns[e]};return null!==t&&"object"==typeof t?Object.assign(n,t):n.content=t,n}prepareNumericColumns(){const t=this.getRow(0);t&&(this.columns=this.columns.map((e,n)=>{const i=t[n].content;!e.align&&ot(i)&&(e.align="right");return e}))}prepareRows(){this.validateData(this.data),this.rows=this.data.map((t,e)=>{const n=this._getNextRowCount();let i=[];let o={rowIndex:n};if(Array.isArray(t))for(this.options.checkboxColumn&&i.push(this.getCheckboxHTML()),this.options.serialNoColumn&&i.push(n+1+""),i=i.concat(t);i.length<this.columns.length;)i.push("");else{for(let e of this.columns)"_checkbox"===e.id?i.push(this.getCheckboxHTML()):"_rowIndex"===e.id?i.push(n+1+""):i.push(t[e.id]);o.indent=t.indent||0}return this.prepareRow(i,o)})}prepareTreeRows(){this.rows.forEach((t,e)=>{if(ct(t.meta.indent)){const n=this.getRow(e+1);t.meta.isLeaf=!n||at(n.meta.indent)||n.meta.indent<=t.meta.indent,t.meta.isTreeNodeClose=!1}})}prepareRowView(){this.rowViewOrder=this.rows.map(t=>t.meta.rowIndex)}prepareRow(t,e){const n={rowIndex:e.rowIndex,indent:e.indent};return t=t.map((t,e)=>this.prepareCell(t,e)).map(t=>Object.assign({},n,t)),t.meta=e,t}validateColumns(){const t=this.options.columns;if(!Array.isArray(t))throw new gn("`columns` must be an array");t.forEach((t,e)=>{if("string"!=typeof t&&"object"!=typeof t)throw new gn(`column "${e}" must be a string or an object`)})}validateData(t){if(Array.isArray(t)&&(0===t.length||Array.isArray(t[0])||"object"==typeof t[0]))return!0;throw new gn("`data` must be an array of arrays or objects")}appendRows(t){this.validateData(t),this.rows.push(...this.prepareRows(t))}sortRows(t,e="none"){t=+t,this.getColumns().map(n=>{n.colIndex===t?n.sortOrder=e:n.sortOrder="none"}),this._sortRows(t,e)}_sortRows(t,e){if(this.currentSort.colIndex===t&&("asc"===this.currentSort.sortOrder&&"desc"===e||"desc"===this.currentSort.sortOrder&&"asc"===e))return this.reverseArray(this.rowViewOrder),void(this.currentSort.sortOrder=e);if(this.rowViewOrder.sort((n,i)=>{const o=n;const s=i;let r=this.getCell(t,n).content;let l=this.getCell(t,i).content;r=null==r?"":r;l=null==l?"":l;if("none"===e)return o-s;if("asc"===e){if(r<l)return-1;if(r>l)return 1;if(r===l)return 0}else if("desc"===e){if(r<l)return 1;if(r>l)return-1;if(r===l)return 0}return 0}),this.hasColumnById("_rowIndex")){const t=this.getColumnIndexById("_rowIndex");this.rows.forEach((e,n)=>{const i=this.rowViewOrder.indexOf(n);const o=e[t];o.content=i+1+""})}}reverseArray(t){let e=null,n=null;for(e=0,n=t.length-1;e<n;e+=1,n-=1){const i=t[e];t[e]=t[n],t[n]=i}}switchColumn(t,e){const n=this.columns[t];this.columns[t]=this.columns[e],this.columns[e]=n,this.columns[t].colIndex=t,this.columns[e].colIndex=e,this.rows.forEach(n=>{const i=Object.assign({},n[t],{colIndex:e});const o=Object.assign({},n[e],{colIndex:t});n[e]=i;n[t]=o})}removeColumn(t){t=+t;const e=e=>e.colIndex!==t,n=(t,e)=>Object.assign({},t,{colIndex:e});this.columns=this.columns.filter(e).map(n),this.rows.forEach(e=>{e.splice(t,1);e.forEach((t,e)=>{t.colIndex=e})})}updateRow(t,e){if(t.length<this.columns.length){if(this.hasColumnById("_rowIndex")){const n=e+1+"";t=[n].concat(t)}if(this.hasColumnById("_checkbox")){const e='<input type="checkbox" />';t=[e].concat(t)}}const n=this.prepareRow(t,{rowIndex:e}),i=this.rows.findIndex(t=>t[0].rowIndex===e);return this.rows[i]=n,n}updateCell(t,e,n){let i;"object"==typeof t&&(t=(i=t).colIndex,e=i.rowIndex,n=i),i=this.getCell(t,e);for(let t in n){const e=n[t];void 0!==e&&(i[t]=e)}return i}updateColumn(t,e){const n=this.getColumn(t);for(let t in e){const i=e[t];void 0!==i&&(n[t]=i)}return n}filterRows(t){return this.options.filterRows(this.rows,t).then(t=>{t||(t=this.getAllRowIndices());t.then||(t=Promise.resolve(t));return t.then(t=>{this._filteredRows=t;const e=this.getAllRowIndices().filter(e=>!t.includes(e));return{rowsToHide:e,rowsToShow:t}})})}getFilteredRowIndices(){return this._filteredRows||this.getAllRowIndices()}getAllRowIndices(){return this.rows.map(t=>t.meta.rowIndex)}getRowCount(){return this.rowCount}_getNextRowCount(){const t=this.rowCount;return this.rowCount++,t}getRows(t,e){return this.rows.slice(t,e)}getRowsForView(t,e){return this.rowViewOrder.map(t=>this.rows[t]).slice(t,e)}getColumns(t){let e=this.columns;return t&&(e=e.slice(this.getStandardColumnCount())),e}getStandardColumnCount(){return this.options.checkboxColumn&&this.options.serialNoColumn?2:this.options.checkboxColumn||this.options.serialNoColumn?1:0}getColumnCount(t){let e=this.columns.length;return t&&(e-=this.getStandardColumnCount()),e}getColumn(t){return(t=+t)<0&&(t=this.columns.length+t),this.columns.find(e=>e.colIndex===t)}getColumnById(t){return this.columns.find(e=>e.id===t)}getRow(t){return t=+t,this.rows[t]}getCell(t,e){return e=+e,t=+t,this.getRow(e)[t]}getChildren(t){t=+t;const e=this.getRow(t).meta.indent,n=[];for(let i=t+1;i<this.rowCount;i++){const t=this.getRow(i);if(!isNaN(t.meta.indent)&&(t.meta.indent>e&&n.push(i),t.meta.indent===e))break}return n}getImmediateChildren(t){t=+t;const e=this.getRow(t).meta.indent,n=[],i=e+1;for(let o=t+1;o<this.rowCount;o++){const t=this.getRow(o);if(!(isNaN(t.meta.indent)||t.meta.indent>i)&&(t.meta.indent===i&&n.push(o),t.meta.indent===e))break}return n}get(){return{columns:this.columns,rows:this.rows}}getData(t){return this.data[t]}hasColumn(t){return Boolean(this.columns.find(e=>e.content===t))}hasColumnById(t){return Boolean(this.columns.find(e=>e.id===t))}getColumnIndex(t){return this.columns.findIndex(e=>e.content===t)}getColumnIndexById(t){return this.columns.findIndex(e=>e.id===t)}getCheckboxHTML(){return'<input type="checkbox" />'}}class gn extends TypeError{}let wn={chevronDown:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-down"><polyline points="6 9 12 15 18 9"></polyline></svg>',chevronRight:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right"><polyline points="9 18 15 12 9 6"></polyline></svg>'};class yn{constructor(t){this.instance=t,rt(this,this.instance,["wrapper","options","style","header","bodyScrollable","columnmanager","rowmanager","datamanager","keyboard"]),this.bindEvents()}bindEvents(){this.bindFocusCell(),this.bindEditCell(),this.bindKeyboardSelection(),this.bindCopyCellContents(),this.bindMouseEvents(),this.bindTreeEvents()}bindFocusCell(){this.bindKeyboardNav()}bindEditCell(){this.$editingCell=null,e.on(this.bodyScrollable,"dblclick",".dt-cell",(t,e)=>{this.activateEditing(e)}),this.keyboard.on("enter",()=>{this.$focusedCell&&!this.$editingCell?this.activateEditing(this.$focusedCell):this.$editingCell&&this.deactivateEditing()})}bindKeyboardNav(){const t=t=>{if(!this.$focusedCell||this.$editingCell)return!1;let n=this.$focusedCell;const{rowIndex:rowIndex,colIndex:colIndex}=e.data(n);"left"===t?n=this.getLeftMostCell$(rowIndex):"right"===t?n=this.getRightMostCell$(rowIndex):"up"===t?n=this.getTopMostCell$(colIndex):"down"===t&&(n=this.getBottomMostCell$(colIndex));this.focusCell(n);return!0};["left","right","up","down","tab","shift+tab"].map(t=>this.keyboard.on(t,()=>this.focusCellInDirection(t))),["left","right","up","down"].map(e=>this.keyboard.on(`ctrl+${e}`,()=>t(e))),this.keyboard.on("esc",()=>{this.deactivateEditing(!1);this.columnmanager.toggleFilter(!1)}),this.options.inlineFilters&&(this.keyboard.on("ctrl+f",t=>{const n=e.closest(".dt-cell",t.target);const{colIndex:colIndex}=e.data(n);this.activateFilter(colIndex);return!0}),e.on(this.header,"focusin",".dt-filter",()=>{this.unfocusCell(this.$focusedCell)}))}bindKeyboardSelection(){const t=t=>{let e=this.getSelectionCursor();"left"===t?e=this.getLeftCell$(e):"right"===t?e=this.getRightCell$(e):"up"===t?e=this.getAboveCell$(e):"down"===t&&(e=this.getBelowCell$(e));return e};["left","right","up","down"].map(e=>this.keyboard.on(`shift+${e}`,()=>this.selectArea(t(e))))}bindCopyCellContents(){this.keyboard.on("ctrl+c",()=>{const t=this.copyCellContents(this.$focusedCell,this.$selectionCursor);const e=this.instance.translate("{count} cells copied",{count:t});t&&this.instance.showToastMessage(e,2)}),this.options.pasteFromClipboard&&this.keyboard.on("ctrl+v",t=>{this.instance.pasteTarget.focus();setTimeout(()=>{const t=this.instance.pasteTarget.value;this.instance.pasteTarget.value="";this.pasteContentInCell(t)},10);return!1})}bindMouseEvents(){let t=null;e.on(this.bodyScrollable,"mousedown",".dt-cell",n=>{t=!0;this.focusCell(e(n.delegatedTarget))}),e.on(this.bodyScrollable,"mouseup",()=>{t=!1});const n=n=>{if(!t)return;this.selectArea(e(n.delegatedTarget))};e.on(this.bodyScrollable,"mousemove",".dt-cell",fn(n,50))}bindTreeEvents(){e.on(this.bodyScrollable,"click",".dt-tree-node__toggle",(t,n)=>{const i=e.closest(".dt-cell",n);const{rowIndex:rowIndex}=e.data(i);i.classList.contains("dt-cell--tree-close")?this.rowmanager.openSingleNode(rowIndex):this.rowmanager.closeSingleNode(rowIndex)})}focusCell(t,{skipClearSelection:skipClearSelection=0,skipDOMFocus:skipDOMFocus=0,skipScrollToCell:skipScrollToCell=0}={}){if(t&&t!==this.$editingCell){const{colIndex:colIndex,isHeader:isHeader}=e.data(t);isHeader||!1!==this.columnmanager.getColumn(colIndex).focusable&&(skipScrollToCell||this.scrollToCell(t),this.deactivateEditing(),skipClearSelection||this.clearSelection(),this.$focusedCell&&this.$focusedCell.classList.remove("dt-cell--focus"),this.$focusedCell=t,t.classList.add("dt-cell--focus"),skipDOMFocus||t.focus(),this.highlightRowColumnHeader(t))}}unfocusCell(t){t&&(t.classList.remove("dt-cell--focus"),this.$focusedCell=null,this.lastHeaders&&this.lastHeaders.forEach(t=>t&&t.classList.remove("dt-cell--highlight")))}highlightRowColumnHeader(t){const{colIndex:colIndex,rowIndex:rowIndex}=e.data(t),n=`.dt-cell--header-${colIndex}`,i=`.dt-cell--${this.datamanager.getColumnIndexById("_rowIndex")}-${rowIndex}`;this.lastHeaders&&this.lastHeaders.forEach(t=>t&&t.classList.remove("dt-cell--highlight"));const o=e(n,this.wrapper),s=e(i,this.wrapper);this.lastHeaders=[o,s],this.lastHeaders.forEach(t=>t&&t.classList.add("dt-cell--highlight"))}selectAreaOnClusterChanged(){if(this.$focusedCell&&this.$selectionCursor){const{colIndex:colIndex,rowIndex:rowIndex}=e.data(this.$selectionCursor),t=this.getCell$(colIndex,rowIndex);if(t&&t!==this.$selectionCursor){const n=e.data(this.$focusedCell);this.$focusedCell=this.getCell$(n.colIndex,n.rowIndex),this.selectArea(t)}}}focusCellOnClusterChanged(){if(this.$focusedCell){const{colIndex:colIndex,rowIndex:rowIndex}=e.data(this.$focusedCell),t=this.getCell$(colIndex,rowIndex);t&&this.focusCell(t,{skipClearSelection:1,skipDOMFocus:1,skipScrollToCell:1})}}selectArea(t){this.$focusedCell&&this._selectArea(this.$focusedCell,t)&&(this.$selectionCursor=t)}_selectArea(t,e){if(t===e)return!1;const n=this.getCellsInRange(t,e);return!!n&&(this.clearSelection(),this._selectedCells=n.map(t=>this.getCell$(...t)),requestAnimationFrame(()=>{this._selectedCells.map(t=>t.classList.add("dt-cell--highlight"))}),!0)}getCellsInRange(t,n){let i,o,s,r;if("number"==typeof t)[i,o,s,r]=arguments;else if("object"==typeof t){if(!t||!n)return!1;const l=e.data(t),a=e.data(n);i=+l.colIndex,o=+l.rowIndex,s=+a.colIndex,r=+a.rowIndex}if(o>r&&([o,r]=[r,o]),i>s&&([i,s]=[s,i]),this.isStandardCell(i)||this.isStandardCell(s))return!1;const l=[];let a=i,c=o;const u=[];for(;c<=r;)u.push(c),c+=1;return u.map(t=>{for(;a<=s;)l.push([a,t]),a++;a=i}),l}clearSelection(){(this._selectedCells||[]).forEach(t=>t.classList.remove("dt-cell--highlight")),this._selectedCells=[],this.$selectionCursor=null}getSelectionCursor(){return this.$selectionCursor||this.$focusedCell}activateEditing(t){this.focusCell(t);const{rowIndex:rowIndex,colIndex:colIndex}=e.data(t),n=this.columnmanager.getColumn(colIndex);if(!n||!1!==n.editable&&!1!==n.focusable){const i=this.getCell(colIndex,rowIndex);if(!i||!1!==i.editable){if(this.$editingCell){const{_rowIndex:_rowIndex,_colIndex:_colIndex}=e.data(this.$editingCell);if(rowIndex===_rowIndex&&colIndex===_colIndex)return}this.$editingCell=t,t.classList.add("dt-cell--editing");const o=e(".dt-cell__edit",t);o.innerHTML="";const s=this.getEditor(colIndex,rowIndex,i.content,o);s&&(this.currentCellEditor=s,s.initValue(i.content,rowIndex,n))}}}deactivateEditing(t=!0){t&&this.submitEditing(),this.$focusedCell&&this.$focusedCell.focus(),this.$editingCell&&(this.$editingCell.classList.remove("dt-cell--editing"),this.$editingCell=null)}getEditor(t,e,n,i){const o=this.datamanager.getColumn(t),s=this.datamanager.getRow(e),r=this.datamanager.getData(e);let l=this.options.getEditor?this.options.getEditor(t,e,n,i,o,s,r):this.getDefaultEditor(i);return!1!==l&&(void 0===l&&(l=this.getDefaultEditor(i)),l)}getDefaultEditor(t){const n=e.create("input",{class:"dt-input",type:"text",inside:t});return{initValue(t){n.focus(),n.value=t},getValue(){return n.value},setValue(t){n.value=t}}}submitEditing(){let t=Promise.resolve();if(!this.$editingCell)return t;const n=this.$editingCell,{rowIndex:rowIndex,colIndex:colIndex}=e.data(n),i=this.datamanager.getColumn(colIndex);if(n){const e=this.currentCellEditor;if(e){let o=e.getValue();o.then||(o=Promise.resolve(o)),t=o.then(t=>{const o=this.getCell(colIndex,rowIndex).content;if(o===t)return!1;const s=e.setValue(t,rowIndex,i);this.updateCell(colIndex,rowIndex,t,!0);n.focus();s&&s.then&&s.catch(t=>{console.log(t);this.updateCell(colIndex,rowIndex,o)});return s})}}return this.currentCellEditor=null,t}copyCellContents(t,n){if(!n&&t){const{colIndex:colIndex,rowIndex:rowIndex}=e.data(t),n=this.getCell(colIndex,rowIndex);return it(n.content),1}const i=this.getCellsInRange(t,n);if(!i)return 0;const o=i.map(t=>this.getCell(...t)).reduce((t,e)=>{const n=e.rowIndex;t[n]=t[n]||[];t[n].push(e.content);return t},[]);return it(o.map(t=>t.join("\t")).join("\n")),o.reduce((t,e)=>t+e.length,0)}pasteContentInCell(t){if(this.$focusedCell){const n=t.split("\n").map(t=>t.split("\t")).filter(t=>t.length&&t.every(t=>t));let{colIndex:colIndex,rowIndex:rowIndex}=e.data(this.$focusedCell),i={colIndex:+colIndex,rowIndex:+rowIndex};n.forEach((t,e)=>{let n=e+i.rowIndex;t.forEach((t,e)=>{let o=e+i.colIndex;this.updateCell(o,n,t,!0)})})}}activateFilter(t){this.columnmanager.toggleFilter(),this.columnmanager.focusFilter(t),this.columnmanager.isFilterShown||this.$focusedCell&&this.$focusedCell.focus()}updateCell(t,e,n,i=!1){const o=this.datamanager.updateCell(t,e,{content:n});this.refreshCell(o,i)}refreshCell(t,n=!1){e(this.selector(t.colIndex,t.rowIndex),this.bodyScrollable).innerHTML=this.getCellContent(t,n)}toggleTreeButton(t,e){const n=this.columnmanager.getFirstColumnIndex(),i=this.getCell$(n,t);i&&i.classList[e?"remove":"add"]("dt-cell--tree-close")}isStandardCell(t){return t<this.columnmanager.getFirstColumnIndex()}focusCellInDirection(t){if(!this.$focusedCell||this.$editingCell&&["left","right","up","down"].includes(t))return!1;this.$editingCell&&["tab","shift+tab"].includes(t)&&this.deactivateEditing();let n=this.$focusedCell;if("left"===t||"shift+tab"===t?n=this.getLeftCell$(n):"right"===t||"tab"===t?n=this.getRightCell$(n):"up"===t?n=this.getAboveCell$(n):"down"===t&&(n=this.getBelowCell$(n)),!n)return!1;const{colIndex:colIndex}=e.data(n);if(!this.columnmanager.getColumn(colIndex).focusable){let e=this.$focusedCell;this.unfocusCell(e),this.$focusedCell=n;let i=this.focusCellInDirection(t);return i||this.focusCell(e),i}return this.focusCell(n),!0}getCell$(t,n){return e(this.selector(t,n),this.bodyScrollable)}getAboveCell$(t){const{colIndex:colIndex}=e.data(t);let n=t.parentElement.previousElementSibling;for(;n&&n.classList.contains("dt-row--hide");)n=n.previousElementSibling;return n?e(`.dt-cell--col-${colIndex}`,n):t}getBelowCell$(t){const{colIndex:colIndex}=e.data(t);let n=t.parentElement.nextElementSibling;for(;n&&n.classList.contains("dt-row--hide");)n=n.nextElementSibling;return n?e(`.dt-cell--col-${colIndex}`,n):t}getLeftCell$(t){return t.previousElementSibling}getRightCell$(t){return t.nextElementSibling}getLeftMostCell$(t){return this.getCell$(this.columnmanager.getFirstColumnIndex(),t)}getRightMostCell$(t){return this.getCell$(this.columnmanager.getLastColumnIndex(),t)}getTopMostCell$(t){return this.getCell$(t,this.rowmanager.getFirstRowIndex())}getBottomMostCell$(t){return this.getCell$(t,this.rowmanager.getLastRowIndex())}getCell(t,e){return this.instance.datamanager.getCell(t,e)}getRowHeight(){return e.style(e(".dt-row",this.bodyScrollable),"height")}scrollToCell(t){if(e.inViewport(t,this.bodyScrollable))return!1;const{rowIndex:rowIndex}=e.data(t);return this.rowmanager.scrollToRow(rowIndex),!1}getRowCountPerPage(){return Math.ceil(this.instance.getViewportHeight()/this.getRowHeight())}getCellHTML(t){const{rowIndex:rowIndex,colIndex:colIndex,isHeader:isHeader,isFilter:isFilter,isTotalRow:isTotalRow}=t,e=nt({rowIndex:rowIndex,colIndex:colIndex,isHeader:isHeader,isFilter:isFilter,isTotalRow:isTotalRow}),n=this.datamanager.getRow(rowIndex),i=!(isHeader||isFilter||isTotalRow);return`\n <div class="${["dt-cell","dt-cell--col-"+colIndex,i?`dt-cell--${colIndex}-${rowIndex}`:"",i?"dt-cell--row-"+rowIndex:"",isHeader?"dt-cell--header":"",isHeader?`dt-cell--header-${colIndex}`:"",isFilter?"dt-cell--filter":"",i&&n&&n.meta.isTreeNodeClose?"dt-cell--tree-close":""].join(" ")}" ${e} tabindex="0">\n ${this.getCellContent(t)}\n </div>\n `}getCellContent(t,e=!1){const{isHeader:isHeader,isFilter:isFilter,colIndex:colIndex}=t,n=!isHeader&&!1!==t.editable?this.getEditCellHTML(colIndex):"",i=isHeader&&!1!==t.sortable?`<span class="sort-indicator">\n ${this.options.sortIndicator[t.sortOrder]}\n </span>`:"",o=isHeader&&!1!==t.resizable?'<span class="dt-cell__resize-handle"></span>':"",s=isHeader&&!1!==t.dropdown?this.columnmanager.getDropdownHTML():"";let r,l=yn.getCustomCellFormatter(t);if(isHeader||isFilter||!l)r=t.content;else if(!t.html||e){const e=this.datamanager.getRow(t.rowIndex),n=this.datamanager.getData(t.rowIndex);r=l(t.content,e,t.column,n)}else r=t.html;if(t.html=r,this.options.treeView&&!isHeader&&!isFilter&&void 0!==t.indent){const e=this.datamanager.getRow(t.rowIndex+1),n=e&&e.meta.indent>t.indent,i=this.datamanager.getColumnIndexById("_rowIndex")+1;if(i===t.colIndex){const e=20*(t.indent||0),i=n?`<span class="dt-tree-node__toggle" style="left: ${e-20}px">\n <span class="icon-open">${wn.chevronDown}</span>\n <span class="icon-close">${wn.chevronRight}</span>\n </span>`:"";r=`<span class="dt-tree-node" style="padding-left: ${e}px">\n ${i}\n <span>${r}</span>\n </span>`}}return`\n <div class="${["dt-cell__content",isHeader?`dt-cell__content--header-${colIndex}`:`dt-cell__content--col-${colIndex}`].join(" ")}">\n ${r}\n ${i}\n ${o}\n ${s}\n </div>\n ${n}\n `}getEditCellHTML(t){return`<div class="dt-cell__edit dt-cell__edit--col-${t}"></div>`}selector(t,e){return`.dt-cell--${t}-${e}`}static getCustomCellFormatter(t){return t.format||t.column&&t.column.format||null}}class bn{constructor(t){this.instance=t,rt(this,this.instance,["options","fireEvent","header","datamanager","cellmanager","style","wrapper","rowmanager","bodyScrollable","bodyRenderer"]),this.bindEvents()}renderHeader(){this.header.innerHTML="<div></div>",this.refreshHeader()}refreshHeader(){const t=this.datamanager.getColumns();e("div",this.header).innerHTML=this.getHeaderHTML(t),this.$filterRow=e(".dt-row-filter",this.header),this.$filterRow&&e.style(this.$filterRow,{display:"none"}),this.$columnMap=[],this.bindMoveColumn()}getHeaderHTML(t){let e=this.rowmanager.getRowHTML(t,{isHeader:1});return this.options.inlineFilters&&(e+=this.rowmanager.getRowHTML(t,{isFilter:1})),e}bindEvents(){this.bindDropdown(),this.bindResizeColumn(),this.bindPerfectColumnWidth(),this.bindFilter()}bindDropdown(){function t(t){i.hideDropdown()}this.instance.dropdownContainer.innerHTML=this.getDropdownListHTML(),this.$dropdownList=this.instance.dropdownContainer.firstElementChild,e.on(this.header,"click",".dt-dropdown__toggle",t=>{this.openDropdown(t)});const n=e=>{const n=[".dt-dropdown__toggle",".dt-dropdown__toggle *",".dt-dropdown__list",".dt-dropdown__list *"].join(",");if(e.target.matches(n))return;t()};e.on(document.body,"click",n),document.addEventListener("scroll",t,!0),this.instance.on("onDestroy",()=>{e.off(document.body,"click",n);e.off(document,"scroll",t)}),e.on(this.$dropdownList,"click",".dt-dropdown__list-item",(t,n)=>{if(!this._dropdownActiveColIndex)return;const i=this.options.headerDropdown;const{index:index}=e.data(n);const o=this._dropdownActiveColIndex;let s=i[index].action;s&&s.call(this.instance,this.getColumn(o));this.hideDropdown()});const i=this;this.hideDropdown()}openDropdown(t){this._dropdownWidth||(e.style(this.$dropdownList,{display:""}),this._dropdownWidth=e.style(this.$dropdownList,"width")),e.style(this.$dropdownList,{display:"",left:t.clientX-this._dropdownWidth+4+"px",top:t.clientY+4+"px"});const n=e.closest(".dt-cell",t.target),{colIndex:colIndex}=e.data(n);this._dropdownActiveColIndex=colIndex}hideDropdown(){e.style(this.$dropdownList,{display:"none"}),this._dropdownActiveColIndex=null}bindResizeColumn(){let t,n,i,o=!1;e.on(this.header,"mousedown",".dt-cell .dt-cell__resize-handle",(s,r)=>{document.body.classList.add("dt-resize");const l=r.parentNode.parentNode;t=l;const{colIndex:colIndex}=e.data(t);const a=this.getColumn(colIndex);if(a&&!1===a.resizable)return;o=!0;n=e.style(e(".dt-cell__content",t),"width");i=s.pageX});const s=n=>{document.body.classList.remove("dt-resize");if(!t)return;o=!1;const{colIndex:colIndex}=e.data(t);this.setColumnWidth(colIndex);this.style.setBodyStyle();t=null};e.on(document.body,"mouseup",s),this.instance.on("onDestroy",()=>{e.off(document.body,"mouseup",s)});const r=s=>{if(!o)return;let r=s.pageX-i;"rtl"===this.options.direction&&(r*=-1);const l=n+r;const{colIndex:colIndex}=e.data(t);let a=this.options.minimumColumnWidth;if(a>l)return;this.datamanager.updateColumn(colIndex,{width:l});this.setColumnHeaderWidth(colIndex)};e.on(document.body,"mousemove",r),this.instance.on("onDestroy",()=>{e.off(document.body,"mousemove",r)})}bindPerfectColumnWidth(){e.on(this.header,"dblclick",".dt-cell .dt-cell__resize-handle",(t,n)=>{const i=n.parentNode.parentNode;const{colIndex:colIndex}=e.data(i);let o=this.bodyRenderer.visibleRows.map(t=>t[colIndex]).reduce((t,e)=>t.content.length>e.content.length?t:e);let s=this.cellmanager.getCellHTML(o);let r=document.createElement("div");r.innerHTML=s;let l=r.querySelector(".dt-cell__content").textContent;let{borderLeftWidth:borderLeftWidth,borderRightWidth:borderRightWidth,paddingLeft:paddingLeft,paddingRight:paddingRight}=e.getStyle(this.bodyScrollable.querySelector(".dt-cell__content"));let a=[borderLeftWidth,borderRightWidth,paddingLeft,paddingRight].map(parseFloat).reduce((t,e)=>t+e);let c=e.measureTextWidth(l)+a;this.datamanager.updateColumn(colIndex,{width:c});this.setColumnHeaderWidth(colIndex);this.setColumnWidth(colIndex)})}bindMoveColumn(){if(!this.options.disableReorderColumn){const n=e(".dt-row",this.header);this.sortable=t.create(n,{onEnd:t=>{const{oldIndex:oldIndex,newIndex:newIndex}=t;const n=t.item;const{colIndex:colIndex}=e.data(n);if(+colIndex===newIndex)return;this.switchColumn(oldIndex,newIndex)},preventOnFilter:!1,filter:".dt-cell__resize-handle, .dt-dropdown",chosenClass:"dt-cell--dragging",animation:150})}}sortColumn(t,e){this.instance.freeze(),this.sortRows(t,e).then(()=>{this.refreshHeader();return this.rowmanager.refreshRows()}).then(()=>this.instance.unfreeze()).then(()=>{this.fireEvent("onSortColumn",this.getColumn(t))})}removeColumn(t){const e=this.getColumn(t);this.instance.freeze(),this.datamanager.removeColumn(t).then(()=>{this.refreshHeader();return this.rowmanager.refreshRows()}).then(()=>this.instance.unfreeze()).then(()=>{this.fireEvent("onRemoveColumn",e)})}switchColumn(t,e){this.instance.freeze(),this.datamanager.switchColumn(t,e).then(()=>{this.refreshHeader();return this.rowmanager.refreshRows()}).then(()=>{this.setColumnWidth(t);this.setColumnWidth(e);this.instance.unfreeze()}).then(()=>{this.fireEvent("onSwitchColumn",this.getColumn(t),this.getColumn(e))})}toggleFilter(t){if(this.options.inlineFilters){let n;(n=void 0===t?!this.isFilterShown:t)?e.style(this.$filterRow,{display:""}):e.style(this.$filterRow,{display:"none"}),this.isFilterShown=n,this.style.setBodyStyle()}}focusFilter(t){this.isFilterShown&&e(`.dt-cell--col-${t} .dt-filter`,this.$filterRow).focus()}bindFilter(){if(this.options.inlineFilters){const t=t=>{this.applyFilter(this.getAppliedFilters())};e.on(this.header,"keydown",".dt-filter",mn(t,300))}}applyFilter(t){this.datamanager.filterRows(t).then(({rowsToShow:rowsToShow})=>{this.rowmanager.showRows(rowsToShow)})}getAppliedFilters(){const t={};return e.each(".dt-filter",this.header).map(e=>{const n=e.value;n&&(t[e.dataset.colIndex]=n)}),t}applyDefaultSortOrder(){const t=this.getColumns().filter(t=>"none"!==t.sortOrder);if(1===t.length){const e=t[0];this.sortColumn(e.colIndex,e.sortOrder)}}sortRows(t,e){return this.datamanager.sortRows(t,e)}getColumn(t){return this.datamanager.getColumn(t)}getColumns(){return this.datamanager.getColumns()}setColumnWidth(t,e){t=+t;let n=e||this.getColumn(t).width;const i=[`.dt-cell__content--col-${t}`,`.dt-cell__edit--col-${t}`].join(", "),o={width:n+"px"};this.style.setStyle(i,o)}setColumnHeaderWidth(t){t=+t,this.$columnMap=this.$columnMap||[];const e=`.dt-cell__content--header-${t}`,{width:width}=this.getColumn(t);let n=this.$columnMap[t];n||(n=this.header.querySelector(e),this.$columnMap[t]=n),n.style.width=width+"px"}getColumnMinWidth(t){return t=+t,this.getColumn(t).minWidth||24}getFirstColumnIndex(){return this.datamanager.getColumnIndexById("_rowIndex")+1}getHeaderCell$(t){return e(`.dt-cell--header-${t}`,this.header)}getLastColumnIndex(){return this.datamanager.getColumnCount()-1}getDropdownHTML(){const{dropdownButton:dropdownButton}=this.options;return`\n <div class="dt-dropdown">\n <div class="dt-dropdown__toggle">${dropdownButton}</div>\n </div>\n `}getDropdownListHTML(){const{headerDropdown:dropdownItems}=this.options;return`\n <div class="dt-dropdown__list">\n ${dropdownItems.map((t,e)=>`\n <div class="dt-dropdown__list-item" data-index="${e}">${t.label}</div>\n `).join("")}\n </div>\n `}}class Cn{constructor(t){this.instance=t,rt(this,this.instance,["options","fireEvent","wrapper","bodyScrollable","bodyRenderer","style"]),this.bindEvents(),this.refreshRows=st(this.refreshRows,this)}get datamanager(){return this.instance.datamanager}get cellmanager(){return this.instance.cellmanager}bindEvents(){this.bindCheckbox()}bindCheckbox(){this.options.checkboxColumn&&(this.checkMap=[],e.on(this.wrapper,"click",'.dt-cell--col-0 [type="checkbox"]',(t,n)=>{const i=n.closest(".dt-cell");const{rowIndex:rowIndex,isHeader:isHeader}=e.data(i);const o=n.checked;isHeader?this.checkAll(o):this.checkRow(rowIndex,o)}))}refreshRows(){this.instance.renderBody(),this.instance.setDimensions()}refreshRow(t,e){this.datamanager.updateRow(t,e).forEach(t=>{this.cellmanager.refreshCell(t,!0)})}getCheckedRows(){if(!this.checkMap)return[];let t=[];for(let e in this.checkMap){const n=this.checkMap[e];1===n&&t.push(e)}return t}highlightCheckedRows(){this.getCheckedRows().map(t=>this.checkRow(t,!0))}checkRow(t,n){const i=n?1:0,o=t=>`.dt-cell--0-${t} [type="checkbox"]`;this.checkMap[t]=i,e.each(o(t),this.bodyScrollable).map(t=>{t.checked=n}),this.highlightRow(t,n),this.showCheckStatus(),this.fireEvent("onCheckRow",this.datamanager.getRow(t))}checkAll(t){const n=t?1:0;this.checkMap=t?Array.from(Array(this.getTotalRows())).map(t=>n):[],e.each('.dt-cell--col-0 [type="checkbox"]',this.bodyScrollable).map(e=>{e.checked=t}),this.highlightAll(t),this.showCheckStatus(),this.fireEvent("onCheckRow")}showCheckStatus(){if(this.options.checkedRowStatus){const t=this.getCheckedRows().length;if(t>0){let e=this.instance.translate("{count} rows selected",{count:t});this.bodyRenderer.showToastMessage(e)}else this.bodyRenderer.clearToastMessage()}}highlightRow(t,e=!0){const n=this.getRow$(t);if(n){if(!e&&this.bodyScrollable.classList.contains("dt-scrollable--highlight-all"))return void n.classList.add("dt-row--unhighlight");e&&n.classList.contains("dt-row--unhighlight")&&n.classList.remove("dt-row--unhighlight"),this._highlightedRows=this._highlightedRows||{},e?(n.classList.add("dt-row--highlight"),this._highlightedRows[t]=n):(n.classList.remove("dt-row--highlight"),delete this._highlightedRows[t])}}highlightAll(t=!0){if(t)this.bodyScrollable.classList.add("dt-scrollable--highlight-all");else{this.bodyScrollable.classList.remove("dt-scrollable--highlight-all");for(const t in this._highlightedRows){const e=this._highlightedRows[t];e.classList.remove("dt-row--highlight")}this._highlightedRows={}}}showRows(t){const e=(t=ut(t)).map(t=>this.datamanager.getRow(t));this.bodyRenderer.renderRows(e)}showAllRows(){const t=this.datamanager.getAllRowIndices();this.showRows(t)}getChildrenToShowForNode(t){return this.datamanager.getRow(t).meta.isTreeNodeClose=!1,this.datamanager.getImmediateChildren(t)}openSingleNode(t){const e=ht([...this.getChildrenToShowForNode(t),...this.bodyRenderer.visibleRowIndices]).sort(dt);this.showRows(e)}getChildrenToHideForNode(t){this.datamanager.getRow(t).meta.isTreeNodeClose=!0;const e=this.datamanager.getChildren(t);return e.forEach(t=>{const e=this.datamanager.getRow(t);e.meta.isLeaf||(e.meta.isTreeNodeClose=!0)}),e}closeSingleNode(t){const e=this.getChildrenToHideForNode(t),n=this.bodyRenderer.visibleRowIndices.filter(t=>!e.includes(t)).sort(dt);this.showRows(n)}expandAllNodes(){const t=ht([...this.datamanager.getRows().filter(t=>!t.meta.isLeaf).map(t=>this.getChildrenToShowForNode(t.meta.rowIndex)).flat(),...this.bodyRenderer.visibleRowIndices]).sort(dt);this.showRows(t)}collapseAllNodes(){const t=this.datamanager.getRows().filter(t=>0===t.meta.indent).map(t=>this.getChildrenToHideForNode(t.meta.rowIndex)).flat(),e=this.bodyRenderer.visibleRowIndices.filter(e=>!t.includes(e)).sort(dt);this.showRows(e)}setTreeDepth(t){let e=this.datamanager.getRows();const n=e.filter(e=>e.meta.indent<t),i=e.filter(e=>e.meta.indent>=t),o=i.filter(e=>e.meta.indent>t);i.forEach(t=>{t.meta.isLeaf||(t.meta.isTreeNodeClose=!0)}),n.forEach(t=>{t.meta.isLeaf||(t.meta.isTreeNodeClose=!1)});const s=e.filter(t=>!o.includes(t)).map(t=>t.meta.rowIndex).sort(dt);this.showRows(s)}getRow$(t){return e(this.selector(t),this.bodyScrollable)}getTotalRows(){return this.datamanager.getRowCount()}getFirstRowIndex(){return 0}getLastRowIndex(){return this.datamanager.getRowCount()-1}scrollToRow(t){t=+t,this._lastScrollTo=this._lastScrollTo||0;const n=this.getRow$(t);if(!e.inViewport(n,this.bodyScrollable)){const{height:height}=n.getBoundingClientRect(),{top:top,bottom:bottom}=this.bodyScrollable.getBoundingClientRect(),i=Math.floor((bottom-top)/height);let o=0;o=t>this._lastScrollTo?height*(t+1-i):height*(t+1-1),this._lastScrollTo=t,e.scrollTop(this.bodyScrollable,o)}}getRowHTML(t,e){const n=nt(e);let i=e.rowIndex;return e.isFilter&&(t=t.map(t=>Object.assign({},t,{content:this.getFilterInput({colIndex:t.colIndex,name:t.name}),isFilter:1,isHeader:void 0,editable:!1})),i="filter"),e.isHeader&&(i="header"),`\n <div class="dt-row dt-row-${i}" ${n}>\n ${t.map(t=>this.cellmanager.getCellHTML(t)).join("")}\n </div>\n `}getFilterInput(t){let e=`title="Filter based on ${t.name||"Index"}"`;return`<input class="dt-filter dt-input" type="text" ${nt(t)} tabindex="1"\n ${0===t.colIndex?"disabled":e} />`}selector(t){return`.dt-row-${t}`}}var vn=function(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}(function(t,e){return e={exports:{}},t(e,e.exports),e.exports}(function(t,e){!function(e){t.exports=function(){return function t(e,n,i){function s(l,a){if(!n[l]){if(!e[l]){var c="function"==typeof o&&o;if(!a&&c)return c(l,!0);if(r)return r(l,!0);var u=new Error("Cannot find module '"+l+"'");throw u.code="MODULE_NOT_FOUND",u}var h=n[l]={exports:{}};e[l][0].call(h.exports,function(t){var n=e[l][1][t];return s(n||t)},h,h.exports,t,e,n,i)}return n[l].exports}for(var r="function"==typeof o&&o,l=0;l<i.length;l++)s(i[l]);return s}({1:[function(t,e,n){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),s={width:"100%",height:"100%"},r=function(t){return Number(t)===Number(t)},l=function(){function t(e,n){var o=this;i(this,t),this._config={},this._lastRepaint=null,this._maxElementHeight=t.getMaxBrowserHeight(),this.refresh(e,n);var s=this._config;!function t(){var e=o._getScrollPosition(),n=o._lastRepaint;if(o._renderAnimationFrame=window.requestAnimationFrame(t),e!==n&&(!n||Math.abs(e-n)>o._averageHeight)){var i=o._renderChunk();o._lastRepaint=e,!1!==i&&"function"==typeof s.afterRender&&s.afterRender()}}()}return o(t,null,[{key:"create",value:function(e,n){return new t(e,n)}},{key:"mergeStyle",value:function(t,e){for(var n in e)t.style[n]!==e[n]&&(t.style[n]=e[n])}},{key:"getMaxBrowserHeight",value:function(){var e=document.createElement("div"),n=document.createElement("div");t.mergeStyle(e,{position:"absolute",height:"1px",opacity:0}),t.mergeStyle(n,{height:"1e7px"}),e.appendChild(n),document.body.appendChild(e);var i=n.offsetHeight;return document.body.removeChild(e),i}}]),o(t,[{key:"destroy",value:function(){window.cancelAnimationFrame(this._renderAnimationFrame)}},{key:"refresh",value:function(e,n){var i=this;if(Object.assign(this._config,s,n),!e||1!==e.nodeType)throw new Error("HyperList requires a valid DOM Node container");this._element=e;var o=this._config,l=this._scroller||o.scroller||document.createElement(o.scrollerTagName||"tr");if("boolean"!=typeof o.useFragment&&(this._config.useFragment=!0),!o.generate)throw new Error("Missing required `generate` function");if(!r(o.total))throw new Error("Invalid required `total` value, expected number");if(!Array.isArray(o.itemHeight)&&!r(o.itemHeight))throw new Error("\n Invalid required `itemHeight` value, expected number or array\n ".trim());r(o.itemHeight)?this._itemHeights=Array(o.total).fill(o.itemHeight):this._itemHeights=o.itemHeight,Object.keys(s).filter(function(t){return t in o}).forEach(function(t){var e=o[t],n=r(e),s=!n&&"%"===e.slice(-1);if(e&&"string"!=typeof e&&"number"!=typeof e){var l="Invalid optional `"+t+"`, expected string or number";throw new Error(l)}if(n&&(o[t]=e+"px"),"height"===t){var a=n?e:parseInt(e.replace(/px|%/,""),10);i._containerHeight=s?window.innerHeight*a/100:r(e)?e:a}});var a={width:""+o.width,height:""+o.height,overflow:"auto",position:"relative"};t.mergeStyle(e,a);var c=o.itemHeight*o.total,u=this._maxElementHeight;c>u&&console.warn(["HyperList: The maximum element height",u+"px has","been exceeded; please reduce your item height."].join(" "));var h={opacity:"0",position:"absolute",width:"1px",height:c+"px"};t.mergeStyle(l,h),this._scroller||e.appendChild(l),this._scroller=l,this._scrollHeight=this._computeScrollHeight(),this._itemPositions=this._itemPositions||Array(o.total).fill(0),this._computePositions(0),this._renderChunk(null!==this._lastRepaint),"function"==typeof o.afterRender&&o.afterRender()}},{key:"_getRow",value:function(e){var n=this._config,i=n.generate(e),o=i.height;if(void 0!==o&&r(o)?(i=i.element,o!==this._itemHeights&&(this._itemHeights[e]=o,this._computePositions(e),this._scrollHeight=this._computeScrollHeight(e))):o=this._itemHeights[e],!i||1!==i.nodeType)throw new Error("Generator did not return a DOM Node for index: "+e);var s=i.getAttribute("class")||"";i.setAttribute("class",s+" "+(n.rowClassName||"vrow"));var l=this._itemPositions[e];return t.mergeStyle(i,{position:"absolute",top:l+"px"}),i}},{key:"_getScrollPosition",value:function(){var t=this._config;return"function"==typeof t.overrideScrollPosition?t.overrideScrollPosition():this._element.scrollTop}},{key:"_renderChunk",value:function(t){var e=this._config,n=this._element,i=this._getScrollPosition(),o=e.total,s=e.reverse?this._getReverseFrom(i):this._getFrom(i)-1;if((s<0||s-this._screenItemsLen<0)&&(s=0),!t&&this._lastFrom===s)return!1;this._lastFrom=s;var r=s+this._cachedItemsLen;(r>o||r+this._cachedItemsLen>o)&&(r=o);var l=e.useFragment?document.createDocumentFragment():[],a=this._scroller;l[e.useFragment?"appendChild":"push"](a);for(var c=s;c<r;c++){var u=this._getRow(c);l[e.useFragment?"appendChild":"push"](u)}if(e.applyPatch)return e.applyPatch(n,l);n.innerHTML="",n.appendChild(l)}},{key:"_computePositions",value:function(){var t=arguments.length<=0||void 0===arguments[0]?1:arguments[0],e=this._config,n=e.total,i=e.reverse;t<1&&!i&&(t=1);for(var o=t;o<n;o++)i?0===o?this._itemPositions[0]=this._scrollHeight-this._itemHeights[0]:this._itemPositions[o]=this._itemPositions[o-1]-this._itemHeights[o]:this._itemPositions[o]=this._itemHeights[o-1]+this._itemPositions[o-1]}},{key:"_computeScrollHeight",value:function(){var e=this,n=this._config,i=n.total,o=this._itemHeights.reduce(function(t,e){return t+e},0);t.mergeStyle(this._scroller,{opacity:0,position:"absolute",width:"1px",height:o+"px"});var s=this._itemHeights.slice(0).sort(function(t,e){return t-e}),r=Math.floor(i/2),l=i%2==0?(s[r]+s[r-1])/2:s[r],a=this._element.clientHeight?this._element.clientHeight:this._containerHeight;return this._screenItemsLen=Math.ceil(a/l),this._containerHeight=a,this._cachedItemsLen=Math.max(this._cachedItemsLen||0,3*this._screenItemsLen),this._averageHeight=l,n.reverse&&window.requestAnimationFrame(function(){e._element.scrollTop=o}),o}},{key:"_getFrom",value:function(t){for(var e=0;this._itemPositions[e]<t;)e++;return e}},{key:"_getReverseFrom",value:function(t){for(var e=this._config.total-1;e>0&&this._itemPositions[e]<t+this._containerHeight;)e--;return e}}]),t}();n.default=l,e.exports=n.default},{}]},{},[1])(1)}()}()}));class _n{constructor(t){this.instance=t,this.options=t.options,this.datamanager=t.datamanager,this.rowmanager=t.rowmanager,this.cellmanager=t.cellmanager,this.bodyScrollable=t.bodyScrollable,this.footer=this.instance.footer,this.log=t.log}renderRows(t){if(this.visibleRows=t,this.visibleRowIndices=t.map(t=>t.meta.rowIndex),0===t.length)return void(this.bodyScrollable.innerHTML=this.getNoDataHTML());const e=this.datamanager.rowViewOrder.map(t=>{if(this.visibleRowIndices.includes(t))return t;return null}).filter(t=>null!==t),n=getComputedStyle(this.bodyScrollable);let i={width:n.width,height:n.height,itemHeight:this.options.cellHeight,total:t.length,generate:t=>{const n=document.createElement("div");const i=e[t];const o=this.datamanager.getRow(i);const s=this.rowmanager.getRowHTML(o,o.meta);n.innerHTML=s;return n.children[0]},afterRender:()=>{this.restoreState()}};this.hyperlist?this.hyperlist.refresh(this.bodyScrollable,i):this.hyperlist=new vn(this.bodyScrollable,i),this.renderFooter()}render(){const t=this.datamanager.getRowsForView();this.renderRows(t),this.instance.setDimensions()}renderFooter(){if(this.options.showTotalRow){const t=this.getTotalRow();let e=this.rowmanager.getRowHTML(t,{isTotalRow:1,rowIndex:"totalRow"});this.footer.innerHTML=e}}getTotalRow(){return this.datamanager.getColumns().map(t=>{let e=null;["_rowIndex","_checkbox"].includes(t.id)&&(e="");return{content:e,isTotalRow:1,colIndex:t.colIndex,column:t}}).map((t,e)=>{if(""===t.content)return t;if(this.options.hooks.columnTotal){const n=this.visibleRows.map(t=>t[e].content),i=this.options.hooks.columnTotal.call(this.instance,n,t);if(null!=i)return t.content=i,t}t.content=this.visibleRows.reduce((t,n)=>{const i=n[e];if("number"==typeof i.content)return null==t&&(t=0),t+i.content;return t},t.content);return t})}restoreState(){this.rowmanager.highlightCheckedRows(),this.cellmanager.selectAreaOnClusterChanged(),this.cellmanager.focusCellOnClusterChanged()}showToastMessage(t,e){this.instance.toastMessage.innerHTML=this.getToastMessageHTML(t),e&&setTimeout(()=>{this.clearToastMessage()},1e3*e)}clearToastMessage(){this.instance.toastMessage.innerHTML=""}getNoDataHTML(){return`<div class="dt-scrollable__no-data">${this.options.noDataMessage}</div>`}getToastMessageHTML(t){return`<span class="dt-toast__message">${t}</span>`}}class xn{constructor(t){this.instance=t,rt(this,this.instance,["options","datamanager","columnmanager","header","footer","bodyScrollable","datatableWrapper","getColumn","bodyRenderer"]),this.scopeClass="dt-instance-"+t.constructor.instances,t.datatableWrapper.classList.add(this.scopeClass);const e=document.createElement("style");t.wrapper.insertBefore(e,t.datatableWrapper),this.styleEl=e,this.bindResizeWindow(),this.bindScrollHeader()}get stylesheet(){return this.styleEl.sheet}bindResizeWindow(){this.onWindowResize=this.onWindowResize.bind(this),this.onWindowResize=fn(this.onWindowResize,300),"fluid"===this.options.layout&&e.on(window,"resize",this.onWindowResize)}bindScrollHeader(){this._settingHeaderPosition=!1,e.on(this.bodyScrollable,"scroll",t=>{if(this._settingHeaderPosition)return;this._settingHeaderPosition=!0;requestAnimationFrame(()=>{const n=-t.target.scrollLeft;e.style(this.header,{transform:`translateX(${n}px)`});e.style(this.footer,{transform:`translateX(${n}px)`});this._settingHeaderPosition=!1})})}onWindowResize(){this.distributeRemainingWidth(),this.refreshColumnWidth(),this.setBodyStyle()}destroy(){this.styleEl.remove(),e.off(window,"resize",this.onWindowResize)}setStyle(t,e){if(t.includes(","))return void t.split(",").map(t=>t.trim()).forEach(t=>{this.setStyle(t,e)});if(t=t.trim()){this._styleRulesMap=this._styleRulesMap||{};const n=this._getPrefixedSelector(t);this._styleRulesMap[n]&&(this.removeStyle(t),e=Object.assign({},this._styleRulesMap[n],e));const i=`${n} { ${this._getRuleString(e)} }`;this._styleRulesMap[n]=e,this.stylesheet.insertRule(i)}}removeStyle(t){if(t.includes(","))return void t.split(",").map(t=>t.trim()).forEach(t=>{this.removeStyle(t)});if(t=t.trim()){const e=this._getPrefixedSelector(t),n=Array.from(this.stylesheet.cssRules).findIndex(t=>t.selectorText===e);-1!==n&&this.stylesheet.deleteRule(n)}}_getPrefixedSelector(t){return`.${this.scopeClass} ${t}`}_getRuleString(t){return Object.keys(t).map(e=>{let n=e;e.includes("-")||(n=et(e));return`${n}:${t[e]};`}).join("")}setDimensions(){this.setCellHeight(),this.setupMinWidth(),this.setupNaturalColumnWidth(),this.setupColumnWidth(),this.distributeRemainingWidth(),this.setColumnStyle(),this.setBodyStyle()}setCellHeight(){this.setStyle(".dt-cell",{height:this.options.cellHeight+"px"})}setupMinWidth(){e.each(".dt-cell--header",this.header).map(t=>{const{colIndex:colIndex}=e.data(t);const n=this.getColumn(colIndex);if(!n.minWidth){const i=e.style(e(".dt-cell__content",t),"width");n.minWidth=i}})}setupNaturalColumnWidth(){e(".dt-row")&&(e.each(".dt-row-header .dt-cell",this.header).map(t=>{const{colIndex:colIndex}=e.data(t);const n=this.datamanager.getColumn(colIndex);let i=e.style(e(".dt-cell__content",t),"width");"number"==typeof i&&i>=this.options.minimumColumnWidth?n.naturalWidth=i:n.naturalWidth=this.options.minimumColumnWidth}),e.each(".dt-row-0 .dt-cell",this.bodyScrollable).map(t=>{const{colIndex:colIndex}=e.data(t);const n=this.datamanager.getColumn(colIndex);let i=e.style(e(".dt-cell__content",t),"width");"number"==typeof i&&i>=n.naturalWidth?n.naturalWidth=i:n.naturalWidth=n.naturalWidth}))}setupColumnWidth(){if("ratio"===this.options.layout){let t=e.style(this.datatableWrapper,"width");if(this.options.serialNoColumn){const e=this.datamanager.getColumnById("_rowIndex");t=t-e.width-1}if(this.options.checkboxColumn){const e=this.datamanager.getColumnById("_checkbox");t=t-e.width-1}const n=this.datamanager.getColumns().map(t=>{if("_rowIndex"===t.id||"_checkbox"===t.id)return 0;t.width||(t.width=1);t.ratioWidth=parseInt(t.width,10);return t.ratioWidth}).reduce((t,e)=>t+e),i=t/n;this.datamanager.getColumns().map(t=>{if("_rowIndex"===t.id||"_checkbox"===t.id)return;t.width=Math.floor(i*t.ratioWidth)-1})}else this.datamanager.getColumns().map(t=>{t.width||(t.width=t.naturalWidth);"_rowIndex"===t.id&&(t.width=this.getRowIndexColumnWidth());t.width<this.options.minimumColumnWidth&&(t.width=this.options.minimumColumnWidth)})}distributeRemainingWidth(){if("fluid"===this.options.layout){const t=e.style(this.instance.datatableWrapper,"width");let n=e(".dt-row",this.bodyScrollable),i=t;if(n)i=e.style(n,"width");else{let t=e(".dt-row",this.instance.header),n=Array.from(t.children).map(t=>t.offsetWidth);i=n.reduce((t,e)=>t+e,0)}const o=this.datamanager.getColumns().filter(t=>t.resizable),s=(t-i)/o.length;o.map(t=>{const n=e.style(this.getColumnHeaderElement(t.colIndex),"width");let i=Math.floor(n+s)-2;this.datamanager.updateColumn(t.colIndex,{width:i})})}}setColumnStyle(){this.datamanager.getColumns().map(t=>{t.align||(t.align="left");["left","center","right"].includes(t.align)||(t.align="left");this.setStyle(`.dt-cell--col-${t.colIndex}`,{"text-align":t.align});this.columnmanager.setColumnHeaderWidth(t.colIndex);this.columnmanager.setColumnWidth(t.colIndex)})}refreshColumnWidth(){this.datamanager.getColumns().map(t=>{this.columnmanager.setColumnHeaderWidth(t.colIndex);this.columnmanager.setColumnWidth(t.colIndex)})}setBodyStyle(){const t=e.style(this.datatableWrapper,"width"),n=e(".dt-row",this.bodyScrollable);if(n){const i=e.style(n,"width");let o=t>i?i:t;e.style(this.bodyScrollable,{width:o+"px"}),e.removeStyle(this.bodyScrollable,"height");let s=e.getStyle(this.bodyScrollable,"height");const r=(this.bodyRenderer.hyperlist||{})._scrollHeight||1/0,l=e.hasHorizontalOverflow(this.bodyScrollable);let a;r<s&&(a=r,l&&(a+=e.scrollbarSize()),e.style(this.bodyScrollable,{height:a+"px"})),this.bodyScrollable.scrollHeight-this.bodyScrollable.offsetHeight<e.scrollbarSize()&&e.style(this.bodyScrollable,{overflowY:"hidden"}),"fluid"===this.options.layout&&e.style(this.bodyScrollable,{overflowX:"hidden"})}}getColumnHeaderElement(t){return t=+t,t<0?null:e(`.dt-cell--col-${t}`,this.header)}getRowIndexColumnWidth(){const t=this.datamanager.getRowCount();return e.measureTextWidth(t+"")+22}}const Rn={13:"enter",91:"meta",16:"shift",17:"ctrl",18:"alt",37:"left",38:"up",39:"right",40:"down",9:"tab",27:"esc",67:"c",70:"f",86:"v"};class In{constructor(t){this.listeners={},e.on(t,"keydown",this.handler.bind(this))}handler(t){let e=Rn[t.keyCode];t.shiftKey&&"shift"!==e&&(e="shift+"+e),(t.ctrlKey&&"ctrl"!==e||t.metaKey&&"meta"!==e)&&(e="ctrl+"+e);const n=this.listeners[e];if(n&&n.length>0)for(let e of n){const n=e(t);void 0!==n&&!0!==n||t.preventDefault()}}on(t,e){t.split(",").map(t=>t.trim()).map(t=>{this.listeners[t]=this.listeners[t]||[];this.listeners[t].push(e)})}}var Sn={"Sort Ascending":"Sort Ascending","Sort Descending":"Sort Descending","Reset sorting":"Reset sorting","Remove column":"Remove column","No Data":"No Data","{count} cells copied":{1:"{count} cell copied",default:"{count} cells copied"},"{count} rows selected":{1:"{count} row selected",default:"{count} rows selected"}},Hn={"Sort Ascending":"Aufsteigend sortieren","Sort Descending":"Absteigend sortieren","Reset sorting":"Sortierung zurücksetzen","Remove column":"Spalte entfernen","No Data":"Keine Daten","{count} cells copied":{1:"{count} Zelle kopiert",default:"{count} Zellen kopiert"},"{count} rows selected":{1:"{count} Zeile ausgewählt",default:"{count} Zeilen ausgewählt"}},Tn={"Sort Ascending":"Trier par ordre croissant","Sort Descending":"Trier par ordre décroissant","Reset sorting":"Réinitialiser le tri","Remove column":"Supprimer colonne","No Data":"Pas de données","{count} cells copied":{1:"{count} cellule copiée",default:"{count} cellules copiées"},"{count} rows selected":{1:"{count} ligne sélectionnée",default:"{count} lignes sélectionnées"}},En={"Sort Ascending":"Ordinamento ascendente","Sort Descending":"Ordinamento decrescente","Reset sorting":"Azzeramento ordinamento","Remove column":"Rimuovi colonna","No Data":"Nessun dato","{count} cells copied":{1:"Copiato {count} cella",default:"{count} celle copiate"},"{count} rows selected":{1:"{count} linea selezionata",default:"{count} linee selezionate"}};class kn{constructor(t){this.language=t,this.translations=pt()}addTranslations(t){this.translations=Object.assign(this.translations,t)}translate(t,e){let n=this.translations[this.language]&&this.translations[this.language][t]||t;return"object"==typeof n&&(n=e&&e.count?this.getPluralizedTranslation(n,e.count):t),mt(n,e||{})}getPluralizedTranslation(t,e){return t[e]||t.default}}let Mn={DataManager:pn,CellManager:yn,ColumnManager:bn,RowManager:Cn,BodyRenderer:_n,Style:xn,Keyboard:In};class Ln{constructor(t,e){if(Ln.instances++,"string"==typeof t&&(t=document.querySelector(t)),this.wrapper=t,!(this.wrapper instanceof HTMLElement))throw new Error("Invalid argument given for `wrapper`");this.initializeTranslations(e),this.setDefaultOptions(),this.buildOptions(e),this.prepare(),this.initializeComponents(),this.options.data&&(this.refresh(),this.columnmanager.applyDefaultSortOrder())}initializeTranslations(t){this.language=t.language||"en",this.translationManager=new kn(this.language),t.translations&&this.translationManager.addTranslations(t.translations)}setDefaultOptions(){this.DEFAULT_OPTIONS=bt(this)}buildOptions(t){this.options=this.options||{},this.options=Object.assign({},this.DEFAULT_OPTIONS,this.options||{},t),t.headerDropdown=t.headerDropdown||[],this.options.headerDropdown=[...this.DEFAULT_OPTIONS.headerDropdown,...t.headerDropdown],this.events=Object.assign({},this.DEFAULT_OPTIONS.events,this.options.events||{},t.events||{}),this.fireEvent=this.fireEvent.bind(this)}prepare(){this.prepareDom(),this.unfreeze()}initializeComponents(){let t=Object.assign({},Mn,this.options.overrideComponents),{Style:Style$$1,Keyboard:Keyboard$$1,DataManager:DataManager$$1,RowManager:RowManager$$1,ColumnManager:ColumnManager$$1,CellManager:CellManager$$1,BodyRenderer:BodyRenderer$$1}=t;this.style=new Style$$1(this),this.keyboard=new Keyboard$$1(this.wrapper),this.datamanager=new DataManager$$1(this.options),this.rowmanager=new RowManager$$1(this),this.columnmanager=new ColumnManager$$1(this),this.cellmanager=new CellManager$$1(this),this.bodyRenderer=new BodyRenderer$$1(this)}prepareDom(){this.wrapper.innerHTML=`\n <div class="datatable" dir="${this.options.direction}">\n <div class="dt-header"></div>\n <div class="dt-scrollable"></div>\n <div class="dt-footer"></div>\n <div class="dt-freeze">\n <span class="dt-freeze__message">\n ${this.options.freezeMessage}\n </span>\n </div>\n <div class="dt-toast"></div>\n <div class="dt-dropdown-container"></div>\n <textarea class="dt-paste-target"></textarea>\n </div>\n `,this.datatableWrapper=e(".datatable",this.wrapper),this.header=e(".dt-header",this.wrapper),this.footer=e(".dt-footer",this.wrapper),this.bodyScrollable=e(".dt-scrollable",this.wrapper),this.freezeContainer=e(".dt-freeze",this.wrapper),this.toastMessage=e(".dt-toast",this.wrapper),this.pasteTarget=e(".dt-paste-target",this.wrapper),this.dropdownContainer=e(".dt-dropdown-container",this.wrapper)}refresh(t,e){this.datamanager.init(t,e),this.render(),this.setDimensions()}destroy(){this.wrapper.innerHTML="",this.style.destroy(),this.fireEvent("onDestroy")}appendRows(t){this.datamanager.appendRows(t),this.rowmanager.refreshRows()}refreshRow(t,e){this.rowmanager.refreshRow(t,e)}render(){this.renderHeader(),this.renderBody()}renderHeader(){this.columnmanager.renderHeader()}renderBody(){this.bodyRenderer.render()}setDimensions(){this.style.setDimensions()}showToastMessage(t,e){this.bodyRenderer.showToastMessage(t,e)}clearToastMessage(){this.bodyRenderer.clearToastMessage()}getColumn(t){return this.datamanager.getColumn(t)}getColumns(){return this.datamanager.getColumns()}getRows(){return this.datamanager.getRows()}getCell(t,e){return this.datamanager.getCell(t,e)}getColumnHeaderElement(t){return this.columnmanager.getColumnHeaderElement(t)}getViewportHeight(){return this.viewportHeight||(this.viewportHeight=e.style(this.bodyScrollable,"height")),this.viewportHeight}sortColumn(t,e){this.columnmanager.sortColumn(t,e)}removeColumn(t){this.columnmanager.removeColumn(t)}scrollToLastColumn(){this.datatableWrapper.scrollLeft=9999}freeze(){e.style(this.freezeContainer,{display:""})}unfreeze(){e.style(this.freezeContainer,{display:"none"})}updateOptions(t){this.buildOptions(t)}fireEvent(t,...e){const n=[...this._internalEventHandlers[t]||[],this.events[t]].filter(Boolean);for(let t of n)t.apply(this,e)}on(t,e){this._internalEventHandlers=this._internalEventHandlers||{},this._internalEventHandlers[t]=this._internalEventHandlers[t]||[],this._internalEventHandlers[t].push(e)}log(){this.options.logs&&console.log.apply(console,arguments)}translate(t,e){return this.translationManager.translate(t,e)}}Ln.instances=0;var $n={name:"melondtable",version:"0.0.0-development",description:"A modern datatable library for the web",main:"dist/melondtable.cjs.js",unpkg:"dist/melondtable.min.js",jsdelivr:"dist/melondtable.min.js",scripts:{start:"yarn run dev",build:"rollup -c && NODE_ENV=production rollup -c",dev:"rollup -c -w","cy:server":"http-server -p 8989","cy:open":"cypress open","cy:run":"cypress run",test:"start-server-and-test cy:server http://localhost:8989 cy:run","test-local":"start-server-and-test cy:server http://localhost:8989 cy:open","travis-deploy-once":"travis-deploy-once","semantic-release":"semantic-release",lint:"eslint src","lint-and-build":"yarn lint && yarn build",commit:"npx git-cz"},files:["dist","src"],devDependencies:{autoprefixer:"^9.0.0",chai:"3.5.0",cypress:"^9.2.0","cz-conventional-changelog":"^2.1.0",deepmerge:"^2.0.1",eslint:"^5.0.1","eslint-config-airbnb":"^16.1.0","eslint-config-airbnb-base":"^12.1.0","eslint-plugin-import":"^2.11.0","http-server":"^0.11.1",mocha:"3.3.0","postcss-custom-properties":"^7.0.0","postcss-nested":"^3.0.0",rollup:"^0.59.4","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-eslint":"^4.0.0","rollup-plugin-json":"^2.3.0","rollup-plugin-node-resolve":"^3.0.3","rollup-plugin-postcss":"^1.2.8","rollup-plugin-uglify-es":"^0.0.1","semantic-release":"^17.1.1","start-server-and-test":"^1.4.1","travis-deploy-once":"^5.0.1"},repository:{type:"git",url:"https://github.com/amonak/melondtable.git"},keywords:["datatable","data","grid","table"],author:"Alphamonak Solutions",license:"MIT",bugs:{url:"https://github.com/amonak/datatable/issues"},homepage:"https://devel.monakerp.com/datatable",dependencies:{hyperlist:"^1.0.0-beta",lodash:"^4.17.5",sortablejs:"^1.7.0"},config:{commitizen:{path:"cz-conventional-changelog"}}};return Ln.__version__=$n.version,Ln}(Sortable);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "melondtable",
3
- "version": "1.16.1",
3
+ "version": "1.16.5",
4
4
  "description": "A modern datatable library for the web",
5
5
  "main": "dist/melondtable.cjs.js",
6
6
  "unpkg": "dist/melondtable.min.js",
@@ -59,7 +59,8 @@
59
59
  "grid",
60
60
  "table"
61
61
  ],
62
- "homepage": "https://monakerp.com/melondtable",
62
+ "author": "Alphamonak Solutions",
63
+ "homepage": "https://devel.monakerp.com/datatable",
63
64
  "dependencies": {
64
65
  "hyperlist": "^1.0.0-beta",
65
66
  "lodash": "^4.17.5",
@@ -520,11 +520,14 @@ export default class CellManager {
520
520
  }
521
521
 
522
522
  promise = valuePromise.then((value) => {
523
- const done = editor.setValue(value, rowIndex, col);
524
523
  const oldValue = this.getCell(colIndex, rowIndex).content;
525
524
 
525
+ if (oldValue === value) return false;
526
+
527
+ const done = editor.setValue(value, rowIndex, col);
528
+
526
529
  // update cell immediately
527
- this.updateCell(colIndex, rowIndex, value);
530
+ this.updateCell(colIndex, rowIndex, value, true);
528
531
  $cell.focus();
529
532
 
530
533
  if (done && done.then) {
@@ -602,7 +605,7 @@ export default class CellManager {
602
605
  let rowIndex = i + focusedCell.rowIndex;
603
606
  row.forEach((cell, j) => {
604
607
  let colIndex = j + focusedCell.colIndex;
605
- this.updateCell(colIndex, rowIndex, cell);
608
+ this.updateCell(colIndex, rowIndex, cell, true);
606
609
  });
607
610
  });
608
611
  }
@@ -617,16 +620,16 @@ export default class CellManager {
617
620
  }
618
621
  }
619
622
 
620
- updateCell(colIndex, rowIndex, value) {
623
+ updateCell(colIndex, rowIndex, value, refreshHtml = false) {
621
624
  const cell = this.datamanager.updateCell(colIndex, rowIndex, {
622
625
  content: value
623
626
  });
624
- this.refreshCell(cell);
627
+ this.refreshCell(cell, refreshHtml);
625
628
  }
626
629
 
627
- refreshCell(cell) {
630
+ refreshCell(cell, refreshHtml = false) {
628
631
  const $cell = $(this.selector(cell.colIndex, cell.rowIndex), this.bodyScrollable);
629
- $cell.innerHTML = this.getCellContent(cell);
632
+ $cell.innerHTML = this.getCellContent(cell, refreshHtml);
630
633
  }
631
634
 
632
635
  toggleTreeButton(rowIndex, flag) {
@@ -643,7 +646,7 @@ export default class CellManager {
643
646
  }
644
647
 
645
648
  focusCellInDirection(direction) {
646
- if (!this.$focusedCell) {
649
+ if (!this.$focusedCell || (this.$editingCell && ['left', 'right', 'up', 'down'].includes(direction))) {
647
650
  return false;
648
651
  } else if (this.$editingCell && ['tab', 'shift+tab'].includes(direction)) {
649
652
  this.deactivateEditing();
@@ -801,7 +804,7 @@ export default class CellManager {
801
804
  `;
802
805
  }
803
806
 
804
- getCellContent(cell) {
807
+ getCellContent(cell, refreshHtml = false) {
805
808
  const {
806
809
  isHeader,
807
810
  isFilter,
@@ -824,15 +827,18 @@ export default class CellManager {
824
827
  const hasDropdown = isHeader && cell.dropdown !== false;
825
828
  const dropdown = hasDropdown ? this.columnmanager.getDropdownHTML() : '';
826
829
 
827
- const customFormatter = cell.format || (cell.column && cell.column.format) || null;
828
-
830
+ let customFormatter = CellManager.getCustomCellFormatter(cell);
829
831
  let contentHTML;
830
832
  if (isHeader || isFilter || !customFormatter) {
831
833
  contentHTML = cell.content;
832
834
  } else {
833
- const row = this.datamanager.getRow(cell.rowIndex);
834
- const data = this.datamanager.getData(cell.rowIndex);
835
- contentHTML = customFormatter(cell.content, row, cell.column, data);
835
+ if (!cell.html || refreshHtml) {
836
+ const row = this.datamanager.getRow(cell.rowIndex);
837
+ const data = this.datamanager.getData(cell.rowIndex);
838
+ contentHTML = customFormatter(cell.content, row, cell.column, data);
839
+ } else {
840
+ contentHTML = cell.html;
841
+ }
836
842
  }
837
843
 
838
844
  cell.html = contentHTML;
@@ -882,4 +888,8 @@ export default class CellManager {
882
888
  selector(colIndex, rowIndex) {
883
889
  return `.dt-cell--${colIndex}-${rowIndex}`;
884
890
  }
891
+
892
+ static getCustomCellFormatter(cell) {
893
+ return cell.format || (cell.column && cell.column.format) || null;
894
+ }
885
895
  }
package/src/filterRows.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { isNumber, stripHTML } from './utils';
2
+ import CellManager from './cellmanager';
2
3
 
3
4
  export default function filterRows(rows, filters) {
4
5
  let filteredRowIndices = [];
@@ -17,7 +18,7 @@ export default function filterRows(rows, filters) {
17
18
  const cells = filteredRows.map(row => row[colIndex]);
18
19
 
19
20
  let filter = guessFilter(keyword);
20
- let filterMethod = getFilterMethod(filter);
21
+ let filterMethod = getFilterMethod(rows, filter);
21
22
 
22
23
  if (filterMethod) {
23
24
  filteredRowIndices = filterMethod(filter.text, cells);
@@ -29,9 +30,18 @@ export default function filterRows(rows, filters) {
29
30
  return filteredRowIndices;
30
31
  };
31
32
 
32
- function getFilterMethod(filter) {
33
+ function getFilterMethod(rows, filter) {
34
+ const getFormattedValue = cell => {
35
+ let formatter = CellManager.getCustomCellFormatter(cell);
36
+ if (formatter && cell.content) {
37
+ cell.html = formatter(cell.content, rows[cell.rowIndex], cell.column, rows[cell.rowIndex]);
38
+ return stripHTML(cell.html);
39
+ }
40
+ return cell.content || '';
41
+ };
42
+
33
43
  const stringCompareValue = cell =>
34
- String(stripHTML(cell.html || '') || cell.content || '').toLowerCase();
44
+ String(stripHTML(cell.html || '') || getFormattedValue(cell)).toLowerCase();
35
45
 
36
46
  const numberCompareValue = cell => parseFloat(cell.content);
37
47
 
package/src/rowmanager.js CHANGED
@@ -67,7 +67,7 @@ export default class RowManager {
67
67
  const _row = this.datamanager.updateRow(row, rowIndex);
68
68
 
69
69
  _row.forEach(cell => {
70
- this.cellmanager.refreshCell(cell);
70
+ this.cellmanager.refreshCell(cell, true);
71
71
  });
72
72
  }
73
73
 
@@ -328,7 +328,8 @@ export default class RowManager {
328
328
  if (props.isFilter) {
329
329
  row = row.map(cell => (Object.assign({}, cell, {
330
330
  content: this.getFilterInput({
331
- colIndex: cell.colIndex
331
+ colIndex: cell.colIndex,
332
+ name: cell.name
332
333
  }),
333
334
  isFilter: 1,
334
335
  isHeader: undefined,
@@ -350,8 +351,10 @@ export default class RowManager {
350
351
  }
351
352
 
352
353
  getFilterInput(props) {
354
+ let title = `title="Filter based on ${props.name || 'Index'}"`;
353
355
  const dataAttr = makeDataAttributeString(props);
354
- return `<input class="dt-filter dt-input" type="text" ${dataAttr} tabindex="1" />`;
356
+ return `<input class="dt-filter dt-input" type="text" ${dataAttr} tabindex="1"
357
+ ${props.colIndex === 0 ? 'disabled' : title} />`;
355
358
  }
356
359
 
357
360
  selector(rowIndex) {
@@ -1,13 +1,15 @@
1
1
  import en from './en.json';
2
- import de from './de.json';
3
2
  import fr from './fr.json';
4
- import it from './it.json';
3
+ import fr from './pt.json';
4
+ import fr from './sw.json';
5
+ import fr from './tr.json';
5
6
 
6
7
  export default function getTranslations() {
7
8
  return {
8
9
  en,
9
- de,
10
10
  fr,
11
- it,
11
+ pt,
12
+ sw,
13
+ tr,
12
14
  };
13
15
  };
@@ -0,0 +1,15 @@
1
+ {
2
+ "Sort Ascending": "Ordernar Ascendente",
3
+ "Sort Descending": "Ordenar Descendente",
4
+ "Reset sorting": "Redefinir classificação",
5
+ "Remove column": "Remover coluna",
6
+ "No Data": "Sem Dados",
7
+ "{count} cells copied": {
8
+ "1": "{count} Células Copiadas",
9
+ "default": "{count} Células Copiadas"
10
+ },
11
+ "{count} rows selected": {
12
+ "1": "{count} Linhas Selecionadas",
13
+ "default": "{count} Linhas Selecionadas"
14
+ }
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "Sort Ascending": "Panga kwa Kupanda",
3
+ "Sort Descending": "Panga kwa Kushuka",
4
+ "Reset sorting": "Weka upya Kupanga",
5
+ "Remove column": "Ondoa safu",
6
+ "No Data": "Hakuna Data",
7
+ "{count} cells copied": {
8
+ "1": "{count} Seli Zimenakiliwa",
9
+ "default": "{count} Seli Zimenakiliwa"
10
+ },
11
+ "{count} rows selected": {
12
+ "1": "{count} Safu Silizochaguliwa",
13
+ "default": "{count} Safu Zilizochaguliwa"
14
+ }
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "Sort Ascending": "Artan Sıralama",
3
+ "Sort Descending": "Azalan şekilde sırala",
4
+ "Reset sorting": "Sıralamayı sıfırla",
5
+ "Remove column": "Sütunu kaldır",
6
+ "No Data": "Veri Yok",
7
+ "{count} cells copied": {
8
+ "1": "kopyalanan {count} Hücreler",
9
+ "default": "{count} Kopyalanan Hücreler"
10
+ },
11
+ "{count} rows selected": {
12
+ "1": "{count} Satırlar Seçildi",
13
+ "default": "{count} Satırlar Seçildi"
14
+ }
15
+ }
@@ -1 +0,0 @@
1
- var DataTable=function(t){"use strict";function e(t,e){return"string"==typeof t?(e||document).querySelector(t):t||null}function n(){const t=document.createElement("div");e.style(t,{width:"100px",height:"100px",overflow:"scroll",position:"absolute",top:"-9999px"}),document.body.appendChild(t);const n=t.offsetWidth-t.clientWidth;return document.body.removeChild(t),n}function i(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function o(){throw new Error("Dynamic requires are not currently supported by rollup-plugin-commonjs")}function s(t){var e=Tt.call(t,kt),n=t[kt];try{t[kt]=void 0}catch(t){}var i=Et.call(t);return e?t[kt]=n:delete t[kt],i}function r(t){return Lt.call(t)}function l(t){return null==t?void 0===t?Ft:Ot:jt&&jt in Object(t)?Mt(t):$t(t)}function a(t){return null!=t&&"object"==typeof t}function c(t){return"symbol"==typeof t||Dt(t)&&At(t)==Wt}function u(t){if("number"==typeof t)return t;if(zt(t))return Nt;if(Ct(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Ct(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(Pt,"");var n=Vt.test(t);return n||qt.test(t)?Kt(t.slice(2),n?2:8):Bt.test(t)?Nt:+t}function h(t,e,n){function i(e){var n=d,i=f;return d=f=void 0,y=e,m=t.apply(i,n)}function o(t){return y=t,g=setTimeout(l,e),b?i(t):m}function s(t){var n=t-y,i=e-(t-w);return C?Gt(i,p-n):i}function r(t){var n=t-w,i=t-y;return void 0===w||n>=e||n<0||C&&i>=p}function l(){var t=It();if(r(t))return a(t);g=setTimeout(l,s(t))}function a(t){return g=void 0,v&&d?i(t):(d=f=void 0,m)}function c(){void 0!==g&&clearTimeout(g),y=0,d=w=f=g=void 0}function u(){return void 0===g?m:a(It())}function h(){var t=It(),n=r(t);if(d=arguments,f=this,w=t,n){if(void 0===g)return o(w);if(C)return g=setTimeout(l,e),i(w)}return void 0===g&&(g=setTimeout(l,e)),m}var d,f,p,m,g,w,y=0,b=!1,C=!1,v=!0;if("function"!=typeof t)throw new TypeError(Zt);return e=Ut(e)||0,Ct(n)&&(b=!!n.leading,p=(C="maxWait"in n)?Xt(Ut(n.maxWait)||0,e):p,v="trailing"in n?!!n.trailing:v),h.cancel=c,h.flush=u,h}function d(t,e,n){var i=!0,o=!0;if("function"!=typeof t)throw new TypeError(Jt);return Ct(n)&&(i="leading"in n?!!n.leading:i,o="trailing"in n?!!n.trailing:o),Yt(t,e,{leading:i,maxWait:e,trailing:o})}function f(t){if(!Ct(t))return!1;var e=At(t);return e==ee||e==ne||e==te||e==ie}function p(t){return!!re&&re in t}function m(t){if(null!=t){try{return ae.call(t)}catch(t){}try{return t+""}catch(t){}}return""}function g(t){return!(!Ct(t)||le(t))&&(oe(t)?me:ue).test(ce(t))}function w(t,e){return null==t?void 0:t[e]}function y(t,e){var n=we(t,e);return ge(n)?n:void 0}function b(){this.__data__=be?be(null):{},this.size=0}function C(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}function v(t){var e=this.__data__;if(be){var n=e[t];return n===_e?void 0:n}return xe.call(e,t)?e[t]:void 0}function _(t){var e=this.__data__;return be?void 0!==e[t]:Ie.call(e,t)}function x(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=be&&void 0===e?He:e,this}function R(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}function I(){this.__data__=[],this.size=0}function S(t,e){return t===e||t!==t&&e!==e}function H(t,e){for(var n=t.length;n--;)if(Me(t[n][0],e))return n;return-1}function T(t){var e=this.__data__,n=Le(e,t);return!(n<0)&&(n==e.length-1?e.pop():$e.call(e,n,1),--this.size,!0)}function E(t){var e=this.__data__,n=Le(e,t);return n<0?void 0:e[n][1]}function k(t){return Le(this.__data__,t)>-1}function M(t,e){var n=this.__data__,i=Le(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}function L(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}function $(){this.size=0,this.__data__={hash:new Ee,map:new(Ne||De),string:new Ee}}function O(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}function F(t,e){var n=t.__data__;return Be(e)?n["string"==typeof e?"string":"hash"]:n.map}function j(t){var e=Ve(this,t).delete(t);return this.size-=e?1:0,e}function A(t){return Ve(this,t).get(t)}function D(t){return Ve(this,t).has(t)}function W(t,e){var n=Ve(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}function z(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}function N(t){return this.__data__.set(t,Ge),this}function P(t){return this.__data__.has(t)}function B(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new Xe;++e<n;)this.add(t[e])}function V(t,e,n,i){for(var o=t.length,s=n+(i?1:-1);i?s--:++s<o;)if(e(t[s],s,t))return s;return-1}function q(t){return t!==t}function K(t,e,n){for(var i=n-1,o=t.length;++i<o;)if(t[i]===e)return i;return-1}function U(t,e,n){return e===e?nn(t,e,n):tn(t,en,n)}function Z(t,e){return!!(null==t?0:t.length)&&on(t,e,0)>-1}function X(t,e,n){for(var i=-1,o=null==t?0:t.length;++i<o;)if(n(e,t[i]))return!0;return!1}function G(t,e){return t.has(e)}function Y(){}function J(t){var e=-1,n=Array(t.size);return t.forEach(function(t){n[++e]=t}),n}function Q(t,e,n){var i=-1,o=sn,s=t.length,r=!0,l=[],a=l;if(n)r=!1,o=rn;else if(s>=dn){var c=e?null:hn(t);if(c)return un(c);r=!1,o=ln,a=new Qe}else a=e?[]:l;t:for(;++i<s;){var u=t[i],h=e?e(u):u;if(u=n||0!==u?u:0,r&&h===h){for(var d=a.length;d--;)if(a[d]===h)continue t;e&&a.push(h),l.push(u)}else o(a,h,n)||(a!==l&&a.push(h),l.push(u))}return l}function tt(t){return t&&t.length?fn(t):[]}function et(t){return t.replace(/([A-Z])/g,t=>`-${t[0].toLowerCase()}`)}function nt(t){return Object.keys(t).map(e=>{const n=et(e);const i=t[e];if(void 0===i)return"";return`data-${n}="${i}" `}).join("").trim()}function it(t){var e=document.createElement("textarea");e.style.position="fixed",e.style.top=0,e.style.left=0,e.style.width="2em",e.style.height="2em",e.style.padding=0,e.style.border="none",e.style.outline="none",e.style.boxShadow="none",e.style.background="transparent",e.value=t,document.body.appendChild(e),e.select();try{document.execCommand("copy")}catch(t){console.log("Oops, unable to copy")}document.body.removeChild(e)}function ot(t){return!isNaN(t)}function st(t,e=null){return(...n)=>new Promise(i=>{const o=()=>{const o=t.apply(e,n);i(o)};setTimeout(o)})}function rt(t,e,n){const i=n.reduce((t,n)=>{t[n]={get(){return e[n]}};return t},{});Object.defineProperties(t,i)}function lt(t){return void 0!==t||null!==t}function at(t){return!lt(t)}function ct(t){return!isNaN(t)}function ut(t){return Array.isArray(t)?t:[t]}function ht(t){return pn(t)}function dt(t,e){return t-e}function ft(t){return t.replace(/<[^>]*>/g,"")}function pt(t,e){return t?(Object.keys(e).forEach(n=>{let i=new RegExp(`{(${n})}`,"g");t=t.replace(i,e[n])}),t):t}function mt(){return{en:Tn,de:En,fr:kn,it:Mn}}function gt(t,e){let n=[];if(0===Object.keys(e).length)return t.map(t=>t.meta.rowIndex);for(let i in e){const o=e[i],s=n.length?n.map(e=>t[e]):t,r=s.map(t=>t[i]);let l=yt(o),a=wt(l);n=a?a(l.text,r):r.map(t=>t.rowIndex)}return n}function wt(t){const e=t=>String(ft(t.html||"")||t.content||"").toLowerCase(),n=t=>parseFloat(t.content),i=(t,i)=>{if(t.column.compareValue){const e=t.column.compareValue(t,i);if(e&&Array.isArray(e))return e}const o=n(t);if(!isNaN(o))return[o,i];return[e(t),i]};return{contains(t,n){return n.filter(n=>{const i=e(n);const o=(t||"").toLowerCase();return!o||i.includes(o)}).map(t=>t.rowIndex)},greaterThan(t,e){return e.filter(e=>{const[n,o]=i(e,t);return n>o}).map(t=>t.rowIndex)},lessThan(t,e){return e.filter(e=>{const[n,o]=i(e,t);return n<o}).map(t=>t.rowIndex)},equals(t,e){return e.filter(e=>{const n=parseFloat(e.content);return n===t}).map(t=>t.rowIndex)},notEquals(t,e){return e.filter(e=>{const n=parseFloat(e.content);return n!==t}).map(t=>t.rowIndex)},range(t,e){return e.filter(e=>{const n=i(e,t[0]);const o=i(e,t[1]);const s=n[0];return s>=n[1]&&s<=o[1]}).map(t=>t.rowIndex)},containsNumber(t,i){return i.filter(i=>{let o=parseFloat(t,10);let s=t;let r=n(i);let l=e(i);return o===r||l.includes(s)}).map(t=>t.rowIndex)}}[t.type]}function yt(t=""){if(0===t.length)return{};let e=t;return[">","<","="].includes(e[0])?e=t.slice(1):e.startsWith("!=")&&(e=t.slice(2)),t.startsWith(">")&&e?{type:"greaterThan",text:e.trim()}:t.startsWith("<")&&e?{type:"lessThan",text:e.trim()}:t.startsWith("=")&&ct(e)?{type:"equals",text:Number(t.slice(1).trim())}:ct(e)?{type:"containsNumber",text:e}:t.startsWith("!=")&&ct(e)?{type:"notEquals",text:Number(t.slice(2).trim())}:2===t.split(":").length?(e=t.split(":"),{type:"range",text:e.map(t=>t.trim())}):{type:"contains",text:e.toLowerCase()}}function bt(t){return{columns:[],data:[],dropdownButton:bn.chevronDown,headerDropdown:[{label:t.translate("Sort Ascending"),action:function(t){this.sortColumn(t.colIndex,"asc")}},{label:t.translate("Sort Descending"),action:function(t){this.sortColumn(t.colIndex,"desc")}},{label:t.translate("Reset sorting"),action:function(t){this.sortColumn(t.colIndex,"none")}},{label:t.translate("Remove column"),action:function(t){this.removeColumn(t.colIndex)}}],events:{onRemoveColumn(t){},onSwitchColumn(t,e){},onSortColumn(t){},onCheckRow(t){},onDestroy(){}},hooks:{columnTotal:null},sortIndicator:{asc:"↑",desc:"↓",none:""},overrideComponents:{},filterRows:gt,freezeMessage:"",getEditor:null,serialNoColumn:!0,checkboxColumn:!1,clusterize:!0,logs:!1,layout:"fixed",noDataMessage:t.translate("No Data"),cellHeight:40,minimumColumnWidth:30,inlineFilters:!1,treeView:!1,checkedRowStatus:!0,dynamicRowHeight:!1,pasteFromClipboard:!1,showTotalRow:!1,direction:"ltr",disableReorderColumn:!1}}t=t&&t.hasOwnProperty("default")?t.default:t,e.each=((t,e)=>"string"==typeof t?Array.from((e||document).querySelectorAll(t)):t||null),e.create=((t,n)=>{let i=document.createElement(t);for(let t in n){let o=n[t];if("inside"===t)e(o).appendChild(i);else if("around"===t){let t=e(o);t.parentNode.insertBefore(i,t),i.appendChild(t)}else"styles"===t?"object"==typeof o&&Object.keys(o).map(t=>{i.style[t]=o[t]}):t in i?i[t]=o:i.setAttribute(t,o)}return i}),e.on=((t,n,i,o)=>{o?e.delegate(t,n,i,o):(o=i,e.bind(t,n,o))}),e.off=((t,e,n)=>{t.removeEventListener(e,n)}),e.bind=((t,e,n)=>{e.split(/\s+/).forEach(function(e){t.addEventListener(e,n)})}),e.delegate=((t,e,n,i)=>{t.addEventListener(e,function(t){const e=t.target.closest(n);e&&(t.delegatedTarget=e,i.call(this,t,e))})}),e.unbind=((t,e)=>{if(t)for(let n in e){let i=e[n];n.split(/\s+/).forEach(function(e){t.removeEventListener(e,i)})}}),e.fire=((t,e,n)=>{let i=document.createEvent("HTMLEvents");i.initEvent(e,!0,!0);for(let t in n)i[t]=n[t];return t.dispatchEvent(i)}),e.data=((t,e)=>{if(!e)return t.dataset;for(const n in e)t.dataset[n]=e[n]}),e.style=((t,n)=>{if("string"==typeof n)return e.getStyle(t,n);Array.isArray(t)||(t=[t]);t.map(t=>{for(const e in n)t.style[e]=n[e]})}),e.removeStyle=((t,e)=>{Array.isArray(t)||(t=[t]);Array.isArray(e)||(e=[e]);t.map(t=>{for(const n of e)t.style[n]=""})}),e.getStyle=((t,e)=>{if(!e)return getComputedStyle(t);let n=getComputedStyle(t)[e];["width","height"].includes(e)&&(n=parseFloat(n));return n}),e.closest=((t,n)=>{if(!n)return null;if(n.matches(t))return n;return e.closest(t,n.parentNode)}),e.inViewport=((t,e)=>{const{top:top,left:left,bottom:bottom,right:right}=t.getBoundingClientRect();const{top:pTop,left:pLeft,bottom:pBottom,right:pRight}=e.getBoundingClientRect();return top>=pTop&&left>=pLeft&&bottom<=pBottom&&right<=pRight}),e.scrollTop=function(t,e){requestAnimationFrame(()=>{t.scrollTop=e})},e.scrollbarSize=function(){return e.scrollBarSizeValue||(e.scrollBarSizeValue=n()),e.scrollBarSizeValue},e.hasVerticalOverflow=function(t){return t.scrollHeight>t.offsetHeight+10},e.hasHorizontalOverflow=function(t){return t.scrollWidth>t.offsetWidth+10},e.measureTextWidth=function(t){const e=document.createElement("div");return e.style.position="absolute",e.style.visibility="hidden",e.style.height="auto",e.style.width="auto",e.style.whiteSpace="nowrap",e.innerText=t,document.body.appendChild(e),e.clientWidth+1};var Ct=i,vt="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},_t="object"==typeof vt&&vt&&vt.Object===Object&&vt,xt="object"==typeof self&&self&&self.Object===Object&&self,Rt=_t||xt||Function("return this")(),It=function(){return Rt.Date.now()},St=Rt.Symbol,Ht=Object.prototype,Tt=Ht.hasOwnProperty,Et=Ht.toString,kt=St?St.toStringTag:void 0,Mt=s,Lt=Object.prototype.toString,$t=r,Ot="[object Null]",Ft="[object Undefined]",jt=St?St.toStringTag:void 0,At=l,Dt=a,Wt="[object Symbol]",zt=c,Nt=NaN,Pt=/^\s+|\s+$/g,Bt=/^[-+]0x[0-9a-f]+$/i,Vt=/^0b[01]+$/i,qt=/^0o[0-7]+$/i,Kt=parseInt,Ut=u,Zt="Expected a function",Xt=Math.max,Gt=Math.min,Yt=h,Jt="Expected a function",Qt=d,te="[object AsyncFunction]",ee="[object Function]",ne="[object GeneratorFunction]",ie="[object Proxy]",oe=f,se=Rt["__core-js_shared__"],re=function(){var t=/[^.]+$/.exec(se&&se.keys&&se.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}(),le=p,ae=Function.prototype.toString,ce=m,ue=/^\[object .+?Constructor\]$/,he=Function.prototype,de=Object.prototype,fe=he.toString,pe=de.hasOwnProperty,me=RegExp("^"+fe.call(pe).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ge=g,we=w,ye=y,be=ye(Object,"create"),Ce=b,ve=C,_e="__lodash_hash_undefined__",xe=Object.prototype.hasOwnProperty,Re=v,Ie=Object.prototype.hasOwnProperty,Se=_,He="__lodash_hash_undefined__",Te=x;R.prototype.clear=Ce,R.prototype.delete=ve,R.prototype.get=Re,R.prototype.has=Se,R.prototype.set=Te;var Ee=R,ke=I,Me=S,Le=H,$e=Array.prototype.splice,Oe=T,Fe=E,je=k,Ae=M;L.prototype.clear=ke,L.prototype.delete=Oe,L.prototype.get=Fe,L.prototype.has=je,L.prototype.set=Ae;var De=L,We=ye(Rt,"Map"),ze=Object.freeze({default:We,__moduleExports:We}),Ne=ze&&We||ze,Pe=$,Be=O,Ve=F,qe=j,Ke=A,Ue=D,Ze=W;z.prototype.clear=Pe,z.prototype.delete=qe,z.prototype.get=Ke,z.prototype.has=Ue,z.prototype.set=Ze;var Xe=z,Ge="__lodash_hash_undefined__",Ye=N,Je=P;B.prototype.add=B.prototype.push=Ye,B.prototype.has=Je;var Qe=B,tn=V,en=q,nn=K,on=U,sn=Z,rn=X,ln=G,an=ye(Rt,"Set"),cn=Y,un=J,hn=an&&1/un(new an([,-0]))[1]==1/0?function(t){return new an(t)}:cn,dn=200,fn=Q,pn=tt;let mn=Qt,gn=Yt;class wn{constructor(t){this.options=t,this.sortRows=st(this.sortRows,this),this.switchColumn=st(this.switchColumn,this),this.removeColumn=st(this.removeColumn,this),this.options.filterRows=st(this.options.filterRows,this)}init(t,e){t||(t=this.options.data),e&&(this.options.columns=e),this.data=t,this.rowCount=0,this.columns=[],this.rows=[],this.prepareColumns(),this.prepareRows(),this.prepareTreeRows(),this.prepareRowView(),this.prepareNumericColumns()}get currentSort(){return this.columns.find(t=>"none"!==t.sortOrder)||{colIndex:-1,sortOrder:"none"}}prepareColumns(){this.columns=[],this.validateColumns(),this.prepareDefaultColumns(),this.prepareHeader()}prepareDefaultColumns(){if(this.options.checkboxColumn&&!this.hasColumnById("_checkbox")){const t={id:"_checkbox",content:this.getCheckboxHTML(),editable:!1,resizable:!1,sortable:!1,focusable:!1,dropdown:!1,width:32};this.columns.push(t)}if(this.options.serialNoColumn&&!this.hasColumnById("_rowIndex")){let t={id:"_rowIndex",content:"",align:"center",editable:!1,resizable:!1,focusable:!1,dropdown:!1};this.columns.push(t)}}prepareHeader(){let t=this.columns.concat(this.options.columns);const e={isHeader:1,editable:!0,sortable:!0,resizable:!0,focusable:!0,dropdown:!0,width:null,format:t=>{if(null===t||void 0===t)return"";return t+""}};this.columns=t.map((t,e)=>this.prepareCell(t,e)).map(t=>Object.assign({},e,t)).map(t=>{t.content=t.content||t.name||"";t.id=t.id||t.content;return t})}prepareCell(t,e){const n={content:"",sortOrder:"none",colIndex:e,column:this.columns[e]};return null!==t&&"object"==typeof t?Object.assign(n,t):n.content=t,n}prepareNumericColumns(){const t=this.getRow(0);t&&(this.columns=this.columns.map((e,n)=>{const i=t[n].content;!e.align&&ot(i)&&(e.align="right");return e}))}prepareRows(){this.validateData(this.data),this.rows=this.data.map((t,e)=>{const n=this._getNextRowCount();let i=[];let o={rowIndex:n};if(Array.isArray(t))for(this.options.checkboxColumn&&i.push(this.getCheckboxHTML()),this.options.serialNoColumn&&i.push(n+1+""),i=i.concat(t);i.length<this.columns.length;)i.push("");else{for(let e of this.columns)"_checkbox"===e.id?i.push(this.getCheckboxHTML()):"_rowIndex"===e.id?i.push(n+1+""):i.push(t[e.id]);o.indent=t.indent||0}return this.prepareRow(i,o)})}prepareTreeRows(){this.rows.forEach((t,e)=>{if(ct(t.meta.indent)){const n=this.getRow(e+1);t.meta.isLeaf=!n||at(n.meta.indent)||n.meta.indent<=t.meta.indent,t.meta.isTreeNodeClose=!1}})}prepareRowView(){this.rowViewOrder=this.rows.map(t=>t.meta.rowIndex)}prepareRow(t,e){const n={rowIndex:e.rowIndex,indent:e.indent};return t=t.map((t,e)=>this.prepareCell(t,e)).map(t=>Object.assign({},n,t)),t.meta=e,t}validateColumns(){const t=this.options.columns;if(!Array.isArray(t))throw new yn("`columns` must be an array");t.forEach((t,e)=>{if("string"!=typeof t&&"object"!=typeof t)throw new yn(`column "${e}" must be a string or an object`)})}validateData(t){if(Array.isArray(t)&&(0===t.length||Array.isArray(t[0])||"object"==typeof t[0]))return!0;throw new yn("`data` must be an array of arrays or objects")}appendRows(t){this.validateData(t),this.rows.push(...this.prepareRows(t))}sortRows(t,e="none"){t=+t,this.getColumns().map(n=>{n.colIndex===t?n.sortOrder=e:n.sortOrder="none"}),this._sortRows(t,e)}_sortRows(t,e){if(this.currentSort.colIndex===t&&("asc"===this.currentSort.sortOrder&&"desc"===e||"desc"===this.currentSort.sortOrder&&"asc"===e))return this.reverseArray(this.rowViewOrder),void(this.currentSort.sortOrder=e);if(this.rowViewOrder.sort((n,i)=>{const o=n;const s=i;let r=this.getCell(t,n).content;let l=this.getCell(t,i).content;r=null==r?"":r;l=null==l?"":l;if("none"===e)return o-s;if("asc"===e){if(r<l)return-1;if(r>l)return 1;if(r===l)return 0}else if("desc"===e){if(r<l)return 1;if(r>l)return-1;if(r===l)return 0}return 0}),this.hasColumnById("_rowIndex")){const t=this.getColumnIndexById("_rowIndex");this.rows.forEach((e,n)=>{const i=this.rowViewOrder.indexOf(n);const o=e[t];o.content=i+1+""})}}reverseArray(t){let e=null,n=null;for(e=0,n=t.length-1;e<n;e+=1,n-=1){const i=t[e];t[e]=t[n],t[n]=i}}switchColumn(t,e){const n=this.columns[t];this.columns[t]=this.columns[e],this.columns[e]=n,this.columns[t].colIndex=t,this.columns[e].colIndex=e,this.rows.forEach(n=>{const i=Object.assign({},n[t],{colIndex:e});const o=Object.assign({},n[e],{colIndex:t});n[e]=i;n[t]=o})}removeColumn(t){t=+t;const e=e=>e.colIndex!==t,n=(t,e)=>Object.assign({},t,{colIndex:e});this.columns=this.columns.filter(e).map(n),this.rows.forEach(e=>{e.splice(t,1);e.forEach((t,e)=>{t.colIndex=e})})}updateRow(t,e){if(t.length<this.columns.length){if(this.hasColumnById("_rowIndex")){const n=e+1+"";t=[n].concat(t)}if(this.hasColumnById("_checkbox")){const e='<input type="checkbox" />';t=[e].concat(t)}}const n=this.prepareRow(t,{rowIndex:e}),i=this.rows.findIndex(t=>t[0].rowIndex===e);return this.rows[i]=n,n}updateCell(t,e,n){let i;"object"==typeof t&&(t=(i=t).colIndex,e=i.rowIndex,n=i),i=this.getCell(t,e);for(let t in n){const e=n[t];void 0!==e&&(i[t]=e)}return i}updateColumn(t,e){const n=this.getColumn(t);for(let t in e){const i=e[t];void 0!==i&&(n[t]=i)}return n}filterRows(t){return this.options.filterRows(this.rows,t).then(t=>{t||(t=this.getAllRowIndices());t.then||(t=Promise.resolve(t));return t.then(t=>{this._filteredRows=t;const e=this.getAllRowIndices().filter(e=>!t.includes(e));return{rowsToHide:e,rowsToShow:t}})})}getFilteredRowIndices(){return this._filteredRows||this.getAllRowIndices()}getAllRowIndices(){return this.rows.map(t=>t.meta.rowIndex)}getRowCount(){return this.rowCount}_getNextRowCount(){const t=this.rowCount;return this.rowCount++,t}getRows(t,e){return this.rows.slice(t,e)}getRowsForView(t,e){return this.rowViewOrder.map(t=>this.rows[t]).slice(t,e)}getColumns(t){let e=this.columns;return t&&(e=e.slice(this.getStandardColumnCount())),e}getStandardColumnCount(){return this.options.checkboxColumn&&this.options.serialNoColumn?2:this.options.checkboxColumn||this.options.serialNoColumn?1:0}getColumnCount(t){let e=this.columns.length;return t&&(e-=this.getStandardColumnCount()),e}getColumn(t){return(t=+t)<0&&(t=this.columns.length+t),this.columns.find(e=>e.colIndex===t)}getColumnById(t){return this.columns.find(e=>e.id===t)}getRow(t){return t=+t,this.rows[t]}getCell(t,e){return e=+e,t=+t,this.getRow(e)[t]}getChildren(t){t=+t;const e=this.getRow(t).meta.indent,n=[];for(let i=t+1;i<this.rowCount;i++){const t=this.getRow(i);if(!isNaN(t.meta.indent)&&(t.meta.indent>e&&n.push(i),t.meta.indent===e))break}return n}getImmediateChildren(t){t=+t;const e=this.getRow(t).meta.indent,n=[],i=e+1;for(let o=t+1;o<this.rowCount;o++){const t=this.getRow(o);if(!(isNaN(t.meta.indent)||t.meta.indent>i)&&(t.meta.indent===i&&n.push(o),t.meta.indent===e))break}return n}get(){return{columns:this.columns,rows:this.rows}}getData(t){return this.data[t]}hasColumn(t){return Boolean(this.columns.find(e=>e.content===t))}hasColumnById(t){return Boolean(this.columns.find(e=>e.id===t))}getColumnIndex(t){return this.columns.findIndex(e=>e.content===t)}getColumnIndexById(t){return this.columns.findIndex(e=>e.id===t)}getCheckboxHTML(){return'<input type="checkbox" />'}}class yn extends TypeError{}let bn={chevronDown:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-down"><polyline points="6 9 12 15 18 9"></polyline></svg>',chevronRight:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right"><polyline points="9 18 15 12 9 6"></polyline></svg>'};class Cn{constructor(t){this.instance=t,rt(this,this.instance,["wrapper","options","style","header","bodyScrollable","columnmanager","rowmanager","datamanager","keyboard"]),this.bindEvents()}bindEvents(){this.bindFocusCell(),this.bindEditCell(),this.bindKeyboardSelection(),this.bindCopyCellContents(),this.bindMouseEvents(),this.bindTreeEvents()}bindFocusCell(){this.bindKeyboardNav()}bindEditCell(){this.$editingCell=null,e.on(this.bodyScrollable,"dblclick",".dt-cell",(t,e)=>{this.activateEditing(e)}),this.keyboard.on("enter",()=>{this.$focusedCell&&!this.$editingCell?this.activateEditing(this.$focusedCell):this.$editingCell&&this.deactivateEditing()})}bindKeyboardNav(){const t=t=>{if(!this.$focusedCell||this.$editingCell)return!1;let n=this.$focusedCell;const{rowIndex:rowIndex,colIndex:colIndex}=e.data(n);"left"===t?n=this.getLeftMostCell$(rowIndex):"right"===t?n=this.getRightMostCell$(rowIndex):"up"===t?n=this.getTopMostCell$(colIndex):"down"===t&&(n=this.getBottomMostCell$(colIndex));this.focusCell(n);return!0};["left","right","up","down","tab","shift+tab"].map(t=>this.keyboard.on(t,()=>this.focusCellInDirection(t))),["left","right","up","down"].map(e=>this.keyboard.on(`ctrl+${e}`,()=>t(e))),this.keyboard.on("esc",()=>{this.deactivateEditing(!1);this.columnmanager.toggleFilter(!1)}),this.options.inlineFilters&&(this.keyboard.on("ctrl+f",t=>{const n=e.closest(".dt-cell",t.target);const{colIndex:colIndex}=e.data(n);this.activateFilter(colIndex);return!0}),e.on(this.header,"focusin",".dt-filter",()=>{this.unfocusCell(this.$focusedCell)}))}bindKeyboardSelection(){const t=t=>{let e=this.getSelectionCursor();"left"===t?e=this.getLeftCell$(e):"right"===t?e=this.getRightCell$(e):"up"===t?e=this.getAboveCell$(e):"down"===t&&(e=this.getBelowCell$(e));return e};["left","right","up","down"].map(e=>this.keyboard.on(`shift+${e}`,()=>this.selectArea(t(e))))}bindCopyCellContents(){this.keyboard.on("ctrl+c",()=>{const t=this.copyCellContents(this.$focusedCell,this.$selectionCursor);const e=this.instance.translate("{count} cells copied",{count:t});t&&this.instance.showToastMessage(e,2)}),this.options.pasteFromClipboard&&this.keyboard.on("ctrl+v",t=>{this.instance.pasteTarget.focus();setTimeout(()=>{const t=this.instance.pasteTarget.value;this.instance.pasteTarget.value="";this.pasteContentInCell(t)},10);return!1})}bindMouseEvents(){let t=null;e.on(this.bodyScrollable,"mousedown",".dt-cell",n=>{t=!0;this.focusCell(e(n.delegatedTarget))}),e.on(this.bodyScrollable,"mouseup",()=>{t=!1});const n=n=>{if(!t)return;this.selectArea(e(n.delegatedTarget))};e.on(this.bodyScrollable,"mousemove",".dt-cell",mn(n,50))}bindTreeEvents(){e.on(this.bodyScrollable,"click",".dt-tree-node__toggle",(t,n)=>{const i=e.closest(".dt-cell",n);const{rowIndex:rowIndex}=e.data(i);i.classList.contains("dt-cell--tree-close")?this.rowmanager.openSingleNode(rowIndex):this.rowmanager.closeSingleNode(rowIndex)})}focusCell(t,{skipClearSelection:skipClearSelection=0,skipDOMFocus:skipDOMFocus=0,skipScrollToCell:skipScrollToCell=0}={}){if(t&&t!==this.$editingCell){const{colIndex:colIndex,isHeader:isHeader}=e.data(t);isHeader||!1!==this.columnmanager.getColumn(colIndex).focusable&&(skipScrollToCell||this.scrollToCell(t),this.deactivateEditing(),skipClearSelection||this.clearSelection(),this.$focusedCell&&this.$focusedCell.classList.remove("dt-cell--focus"),this.$focusedCell=t,t.classList.add("dt-cell--focus"),skipDOMFocus||t.focus(),this.highlightRowColumnHeader(t))}}unfocusCell(t){t&&(t.classList.remove("dt-cell--focus"),this.$focusedCell=null,this.lastHeaders&&this.lastHeaders.forEach(t=>t&&t.classList.remove("dt-cell--highlight")))}highlightRowColumnHeader(t){const{colIndex:colIndex,rowIndex:rowIndex}=e.data(t),n=`.dt-cell--header-${colIndex}`,i=`.dt-cell--${this.datamanager.getColumnIndexById("_rowIndex")}-${rowIndex}`;this.lastHeaders&&this.lastHeaders.forEach(t=>t&&t.classList.remove("dt-cell--highlight"));const o=e(n,this.wrapper),s=e(i,this.wrapper);this.lastHeaders=[o,s],this.lastHeaders.forEach(t=>t&&t.classList.add("dt-cell--highlight"))}selectAreaOnClusterChanged(){if(this.$focusedCell&&this.$selectionCursor){const{colIndex:colIndex,rowIndex:rowIndex}=e.data(this.$selectionCursor),t=this.getCell$(colIndex,rowIndex);if(t&&t!==this.$selectionCursor){const n=e.data(this.$focusedCell);this.$focusedCell=this.getCell$(n.colIndex,n.rowIndex),this.selectArea(t)}}}focusCellOnClusterChanged(){if(this.$focusedCell){const{colIndex:colIndex,rowIndex:rowIndex}=e.data(this.$focusedCell),t=this.getCell$(colIndex,rowIndex);t&&this.focusCell(t,{skipClearSelection:1,skipDOMFocus:1,skipScrollToCell:1})}}selectArea(t){this.$focusedCell&&this._selectArea(this.$focusedCell,t)&&(this.$selectionCursor=t)}_selectArea(t,e){if(t===e)return!1;const n=this.getCellsInRange(t,e);return!!n&&(this.clearSelection(),this._selectedCells=n.map(t=>this.getCell$(...t)),requestAnimationFrame(()=>{this._selectedCells.map(t=>t.classList.add("dt-cell--highlight"))}),!0)}getCellsInRange(t,n){let i,o,s,r;if("number"==typeof t)[i,o,s,r]=arguments;else if("object"==typeof t){if(!t||!n)return!1;const l=e.data(t),a=e.data(n);i=+l.colIndex,o=+l.rowIndex,s=+a.colIndex,r=+a.rowIndex}if(o>r&&([o,r]=[r,o]),i>s&&([i,s]=[s,i]),this.isStandardCell(i)||this.isStandardCell(s))return!1;const l=[];let a=i,c=o;const u=[];for(;c<=r;)u.push(c),c+=1;return u.map(t=>{for(;a<=s;)l.push([a,t]),a++;a=i}),l}clearSelection(){(this._selectedCells||[]).forEach(t=>t.classList.remove("dt-cell--highlight")),this._selectedCells=[],this.$selectionCursor=null}getSelectionCursor(){return this.$selectionCursor||this.$focusedCell}activateEditing(t){this.focusCell(t);const{rowIndex:rowIndex,colIndex:colIndex}=e.data(t),n=this.columnmanager.getColumn(colIndex);if(!n||!1!==n.editable&&!1!==n.focusable){const i=this.getCell(colIndex,rowIndex);if(!i||!1!==i.editable){if(this.$editingCell){const{_rowIndex:_rowIndex,_colIndex:_colIndex}=e.data(this.$editingCell);if(rowIndex===_rowIndex&&colIndex===_colIndex)return}this.$editingCell=t,t.classList.add("dt-cell--editing");const o=e(".dt-cell__edit",t);o.innerHTML="";const s=this.getEditor(colIndex,rowIndex,i.content,o);s&&(this.currentCellEditor=s,s.initValue(i.content,rowIndex,n))}}}deactivateEditing(t=!0){t&&this.submitEditing(),this.$focusedCell&&this.$focusedCell.focus(),this.$editingCell&&(this.$editingCell.classList.remove("dt-cell--editing"),this.$editingCell=null)}getEditor(t,e,n,i){const o=this.datamanager.getColumn(t),s=this.datamanager.getRow(e),r=this.datamanager.getData(e);let l=this.options.getEditor?this.options.getEditor(t,e,n,i,o,s,r):this.getDefaultEditor(i);return!1!==l&&(void 0===l&&(l=this.getDefaultEditor(i)),l)}getDefaultEditor(t){const n=e.create("input",{class:"dt-input",type:"text",inside:t});return{initValue(t){n.focus(),n.value=t},getValue(){return n.value},setValue(t){n.value=t}}}submitEditing(){let t=Promise.resolve();if(!this.$editingCell)return t;const n=this.$editingCell,{rowIndex:rowIndex,colIndex:colIndex}=e.data(n),i=this.datamanager.getColumn(colIndex);if(n){const e=this.currentCellEditor;if(e){let o=e.getValue();o.then||(o=Promise.resolve(o)),t=o.then(t=>{const o=e.setValue(t,rowIndex,i);const s=this.getCell(colIndex,rowIndex).content;this.updateCell(colIndex,rowIndex,t);n.focus();o&&o.then&&o.catch(t=>{console.log(t);this.updateCell(colIndex,rowIndex,s)});return o})}}return this.currentCellEditor=null,t}copyCellContents(t,n){if(!n&&t){const{colIndex:colIndex,rowIndex:rowIndex}=e.data(t),n=this.getCell(colIndex,rowIndex);return it(n.content),1}const i=this.getCellsInRange(t,n);if(!i)return 0;const o=i.map(t=>this.getCell(...t)).reduce((t,e)=>{const n=e.rowIndex;t[n]=t[n]||[];t[n].push(e.content);return t},[]);return it(o.map(t=>t.join("\t")).join("\n")),o.reduce((t,e)=>t+e.length,0)}pasteContentInCell(t){if(this.$focusedCell){const n=t.split("\n").map(t=>t.split("\t")).filter(t=>t.length&&t.every(t=>t));let{colIndex:colIndex,rowIndex:rowIndex}=e.data(this.$focusedCell),i={colIndex:+colIndex,rowIndex:+rowIndex};n.forEach((t,e)=>{let n=e+i.rowIndex;t.forEach((t,e)=>{let o=e+i.colIndex;this.updateCell(o,n,t)})})}}activateFilter(t){this.columnmanager.toggleFilter(),this.columnmanager.focusFilter(t),this.columnmanager.isFilterShown||this.$focusedCell&&this.$focusedCell.focus()}updateCell(t,e,n){const i=this.datamanager.updateCell(t,e,{content:n});this.refreshCell(i)}refreshCell(t){e(this.selector(t.colIndex,t.rowIndex),this.bodyScrollable).innerHTML=this.getCellContent(t)}toggleTreeButton(t,e){const n=this.columnmanager.getFirstColumnIndex(),i=this.getCell$(n,t);i&&i.classList[e?"remove":"add"]("dt-cell--tree-close")}isStandardCell(t){return t<this.columnmanager.getFirstColumnIndex()}focusCellInDirection(t){if(!this.$focusedCell)return!1;this.$editingCell&&["tab","shift+tab"].includes(t)&&this.deactivateEditing();let n=this.$focusedCell;if("left"===t||"shift+tab"===t?n=this.getLeftCell$(n):"right"===t||"tab"===t?n=this.getRightCell$(n):"up"===t?n=this.getAboveCell$(n):"down"===t&&(n=this.getBelowCell$(n)),!n)return!1;const{colIndex:colIndex}=e.data(n);if(!this.columnmanager.getColumn(colIndex).focusable){let e=this.$focusedCell;this.unfocusCell(e),this.$focusedCell=n;let i=this.focusCellInDirection(t);return i||this.focusCell(e),i}return this.focusCell(n),!0}getCell$(t,n){return e(this.selector(t,n),this.bodyScrollable)}getAboveCell$(t){const{colIndex:colIndex}=e.data(t);let n=t.parentElement.previousElementSibling;for(;n&&n.classList.contains("dt-row--hide");)n=n.previousElementSibling;return n?e(`.dt-cell--col-${colIndex}`,n):t}getBelowCell$(t){const{colIndex:colIndex}=e.data(t);let n=t.parentElement.nextElementSibling;for(;n&&n.classList.contains("dt-row--hide");)n=n.nextElementSibling;return n?e(`.dt-cell--col-${colIndex}`,n):t}getLeftCell$(t){return t.previousElementSibling}getRightCell$(t){return t.nextElementSibling}getLeftMostCell$(t){return this.getCell$(this.columnmanager.getFirstColumnIndex(),t)}getRightMostCell$(t){return this.getCell$(this.columnmanager.getLastColumnIndex(),t)}getTopMostCell$(t){return this.getCell$(t,this.rowmanager.getFirstRowIndex())}getBottomMostCell$(t){return this.getCell$(t,this.rowmanager.getLastRowIndex())}getCell(t,e){return this.instance.datamanager.getCell(t,e)}getRowHeight(){return e.style(e(".dt-row",this.bodyScrollable),"height")}scrollToCell(t){if(e.inViewport(t,this.bodyScrollable))return!1;const{rowIndex:rowIndex}=e.data(t);return this.rowmanager.scrollToRow(rowIndex),!1}getRowCountPerPage(){return Math.ceil(this.instance.getViewportHeight()/this.getRowHeight())}getCellHTML(t){const{rowIndex:rowIndex,colIndex:colIndex,isHeader:isHeader,isFilter:isFilter,isTotalRow:isTotalRow}=t,e=nt({rowIndex:rowIndex,colIndex:colIndex,isHeader:isHeader,isFilter:isFilter,isTotalRow:isTotalRow}),n=this.datamanager.getRow(rowIndex),i=!(isHeader||isFilter||isTotalRow);return`\n <div class="${["dt-cell","dt-cell--col-"+colIndex,i?`dt-cell--${colIndex}-${rowIndex}`:"",i?"dt-cell--row-"+rowIndex:"",isHeader?"dt-cell--header":"",isHeader?`dt-cell--header-${colIndex}`:"",isFilter?"dt-cell--filter":"",i&&n&&n.meta.isTreeNodeClose?"dt-cell--tree-close":""].join(" ")}" ${e} tabindex="0">\n ${this.getCellContent(t)}\n </div>\n `}getCellContent(t){const{isHeader:isHeader,isFilter:isFilter,colIndex:colIndex}=t,e=!isHeader&&!1!==t.editable?this.getEditCellHTML(colIndex):"",n=isHeader&&!1!==t.sortable?`<span class="sort-indicator">\n ${this.options.sortIndicator[t.sortOrder]}\n </span>`:"",i=isHeader&&!1!==t.resizable?'<span class="dt-cell__resize-handle"></span>':"",o=isHeader&&!1!==t.dropdown?this.columnmanager.getDropdownHTML():"",s=t.format||t.column&&t.column.format||null;let r;if(isHeader||isFilter||!s)r=t.content;else{const e=this.datamanager.getRow(t.rowIndex),n=this.datamanager.getData(t.rowIndex);r=s(t.content,e,t.column,n)}if(t.html=r,this.options.treeView&&!isHeader&&!isFilter&&void 0!==t.indent){const e=this.datamanager.getRow(t.rowIndex+1),n=e&&e.meta.indent>t.indent,i=this.datamanager.getColumnIndexById("_rowIndex")+1;if(i===t.colIndex){const e=20*(t.indent||0),i=n?`<span class="dt-tree-node__toggle" style="left: ${e-20}px">\n <span class="icon-open">${bn.chevronDown}</span>\n <span class="icon-close">${bn.chevronRight}</span>\n </span>`:"";r=`<span class="dt-tree-node" style="padding-left: ${e}px">\n ${i}\n <span>${r}</span>\n </span>`}}return`\n <div class="${["dt-cell__content",isHeader?`dt-cell__content--header-${colIndex}`:`dt-cell__content--col-${colIndex}`].join(" ")}">\n ${r}\n ${n}\n ${i}\n ${o}\n </div>\n ${e}\n `}getEditCellHTML(t){return`<div class="dt-cell__edit dt-cell__edit--col-${t}"></div>`}selector(t,e){return`.dt-cell--${t}-${e}`}}class vn{constructor(t){this.instance=t,rt(this,this.instance,["options","fireEvent","header","datamanager","cellmanager","style","wrapper","rowmanager","bodyScrollable","bodyRenderer"]),this.bindEvents()}renderHeader(){this.header.innerHTML="<div></div>",this.refreshHeader()}refreshHeader(){const t=this.datamanager.getColumns();e("div",this.header).innerHTML=this.getHeaderHTML(t),this.$filterRow=e(".dt-row-filter",this.header),this.$filterRow&&e.style(this.$filterRow,{display:"none"}),this.$columnMap=[],this.bindMoveColumn()}getHeaderHTML(t){let e=this.rowmanager.getRowHTML(t,{isHeader:1});return this.options.inlineFilters&&(e+=this.rowmanager.getRowHTML(t,{isFilter:1})),e}bindEvents(){this.bindDropdown(),this.bindResizeColumn(),this.bindPerfectColumnWidth(),this.bindFilter()}bindDropdown(){function t(t){i.hideDropdown()}this.instance.dropdownContainer.innerHTML=this.getDropdownListHTML(),this.$dropdownList=this.instance.dropdownContainer.firstElementChild,e.on(this.header,"click",".dt-dropdown__toggle",t=>{this.openDropdown(t)});const n=e=>{const n=[".dt-dropdown__toggle",".dt-dropdown__toggle *",".dt-dropdown__list",".dt-dropdown__list *"].join(",");if(e.target.matches(n))return;t()};e.on(document.body,"click",n),document.addEventListener("scroll",t,!0),this.instance.on("onDestroy",()=>{e.off(document.body,"click",n);e.off(document,"scroll",t)}),e.on(this.$dropdownList,"click",".dt-dropdown__list-item",(t,n)=>{if(!this._dropdownActiveColIndex)return;const i=this.options.headerDropdown;const{index:index}=e.data(n);const o=this._dropdownActiveColIndex;let s=i[index].action;s&&s.call(this.instance,this.getColumn(o));this.hideDropdown()});const i=this;this.hideDropdown()}openDropdown(t){this._dropdownWidth||(e.style(this.$dropdownList,{display:""}),this._dropdownWidth=e.style(this.$dropdownList,"width")),e.style(this.$dropdownList,{display:"",left:t.clientX-this._dropdownWidth+4+"px",top:t.clientY+4+"px"});const n=e.closest(".dt-cell",t.target),{colIndex:colIndex}=e.data(n);this._dropdownActiveColIndex=colIndex}hideDropdown(){e.style(this.$dropdownList,{display:"none"}),this._dropdownActiveColIndex=null}bindResizeColumn(){let t,n,i,o=!1;e.on(this.header,"mousedown",".dt-cell .dt-cell__resize-handle",(s,r)=>{document.body.classList.add("dt-resize");const l=r.parentNode.parentNode;t=l;const{colIndex:colIndex}=e.data(t);const a=this.getColumn(colIndex);if(a&&!1===a.resizable)return;o=!0;n=e.style(e(".dt-cell__content",t),"width");i=s.pageX});const s=n=>{document.body.classList.remove("dt-resize");if(!t)return;o=!1;const{colIndex:colIndex}=e.data(t);this.setColumnWidth(colIndex);this.style.setBodyStyle();t=null};e.on(document.body,"mouseup",s),this.instance.on("onDestroy",()=>{e.off(document.body,"mouseup",s)});const r=s=>{if(!o)return;let r=s.pageX-i;"rtl"===this.options.direction&&(r*=-1);const l=n+r;const{colIndex:colIndex}=e.data(t);let a=this.options.minimumColumnWidth;if(a>l)return;this.datamanager.updateColumn(colIndex,{width:l});this.setColumnHeaderWidth(colIndex)};e.on(document.body,"mousemove",r),this.instance.on("onDestroy",()=>{e.off(document.body,"mousemove",r)})}bindPerfectColumnWidth(){e.on(this.header,"dblclick",".dt-cell .dt-cell__resize-handle",(t,n)=>{const i=n.parentNode.parentNode;const{colIndex:colIndex}=e.data(i);let o=this.bodyRenderer.visibleRows.map(t=>t[colIndex]).reduce((t,e)=>t.content.length>e.content.length?t:e);let s=this.cellmanager.getCellHTML(o);let r=document.createElement("div");r.innerHTML=s;let l=r.querySelector(".dt-cell__content").textContent;let{borderLeftWidth:borderLeftWidth,borderRightWidth:borderRightWidth,paddingLeft:paddingLeft,paddingRight:paddingRight}=e.getStyle(this.bodyScrollable.querySelector(".dt-cell__content"));let a=[borderLeftWidth,borderRightWidth,paddingLeft,paddingRight].map(parseFloat).reduce((t,e)=>t+e);let c=e.measureTextWidth(l)+a;this.datamanager.updateColumn(colIndex,{width:c});this.setColumnHeaderWidth(colIndex);this.setColumnWidth(colIndex)})}bindMoveColumn(){if(!this.options.disableReorderColumn){const n=e(".dt-row",this.header);this.sortable=t.create(n,{onEnd:t=>{const{oldIndex:oldIndex,newIndex:newIndex}=t;const n=t.item;const{colIndex:colIndex}=e.data(n);if(+colIndex===newIndex)return;this.switchColumn(oldIndex,newIndex)},preventOnFilter:!1,filter:".dt-cell__resize-handle, .dt-dropdown",chosenClass:"dt-cell--dragging",animation:150})}}sortColumn(t,e){this.instance.freeze(),this.sortRows(t,e).then(()=>{this.refreshHeader();return this.rowmanager.refreshRows()}).then(()=>this.instance.unfreeze()).then(()=>{this.fireEvent("onSortColumn",this.getColumn(t))})}removeColumn(t){const e=this.getColumn(t);this.instance.freeze(),this.datamanager.removeColumn(t).then(()=>{this.refreshHeader();return this.rowmanager.refreshRows()}).then(()=>this.instance.unfreeze()).then(()=>{this.fireEvent("onRemoveColumn",e)})}switchColumn(t,e){this.instance.freeze(),this.datamanager.switchColumn(t,e).then(()=>{this.refreshHeader();return this.rowmanager.refreshRows()}).then(()=>{this.setColumnWidth(t);this.setColumnWidth(e);this.instance.unfreeze()}).then(()=>{this.fireEvent("onSwitchColumn",this.getColumn(t),this.getColumn(e))})}toggleFilter(t){if(this.options.inlineFilters){let n;(n=void 0===t?!this.isFilterShown:t)?e.style(this.$filterRow,{display:""}):e.style(this.$filterRow,{display:"none"}),this.isFilterShown=n,this.style.setBodyStyle()}}focusFilter(t){this.isFilterShown&&e(`.dt-cell--col-${t} .dt-filter`,this.$filterRow).focus()}bindFilter(){if(this.options.inlineFilters){const t=t=>{this.applyFilter(this.getAppliedFilters())};e.on(this.header,"keydown",".dt-filter",gn(t,300))}}applyFilter(t){this.datamanager.filterRows(t).then(({rowsToShow:rowsToShow})=>{this.rowmanager.showRows(rowsToShow)})}getAppliedFilters(){const t={};return e.each(".dt-filter",this.header).map(e=>{const n=e.value;n&&(t[e.dataset.colIndex]=n)}),t}applyDefaultSortOrder(){const t=this.getColumns().filter(t=>"none"!==t.sortOrder);if(1===t.length){const e=t[0];this.sortColumn(e.colIndex,e.sortOrder)}}sortRows(t,e){return this.datamanager.sortRows(t,e)}getColumn(t){return this.datamanager.getColumn(t)}getColumns(){return this.datamanager.getColumns()}setColumnWidth(t,e){t=+t;let n=e||this.getColumn(t).width;const i=[`.dt-cell__content--col-${t}`,`.dt-cell__edit--col-${t}`].join(", "),o={width:n+"px"};this.style.setStyle(i,o)}setColumnHeaderWidth(t){t=+t,this.$columnMap=this.$columnMap||[];const e=`.dt-cell__content--header-${t}`,{width:width}=this.getColumn(t);let n=this.$columnMap[t];n||(n=this.header.querySelector(e),this.$columnMap[t]=n),n.style.width=width+"px"}getColumnMinWidth(t){return t=+t,this.getColumn(t).minWidth||24}getFirstColumnIndex(){return this.datamanager.getColumnIndexById("_rowIndex")+1}getHeaderCell$(t){return e(`.dt-cell--header-${t}`,this.header)}getLastColumnIndex(){return this.datamanager.getColumnCount()-1}getDropdownHTML(){const{dropdownButton:dropdownButton}=this.options;return`\n <div class="dt-dropdown">\n <div class="dt-dropdown__toggle">${dropdownButton}</div>\n </div>\n `}getDropdownListHTML(){const{headerDropdown:dropdownItems}=this.options;return`\n <div class="dt-dropdown__list">\n ${dropdownItems.map((t,e)=>`\n <div class="dt-dropdown__list-item" data-index="${e}">${t.label}</div>\n `).join("")}\n </div>\n `}}class _n{constructor(t){this.instance=t,rt(this,this.instance,["options","fireEvent","wrapper","bodyScrollable","bodyRenderer","style"]),this.bindEvents(),this.refreshRows=st(this.refreshRows,this)}get datamanager(){return this.instance.datamanager}get cellmanager(){return this.instance.cellmanager}bindEvents(){this.bindCheckbox()}bindCheckbox(){this.options.checkboxColumn&&(this.checkMap=[],e.on(this.wrapper,"click",'.dt-cell--col-0 [type="checkbox"]',(t,n)=>{const i=n.closest(".dt-cell");const{rowIndex:rowIndex,isHeader:isHeader}=e.data(i);const o=n.checked;isHeader?this.checkAll(o):this.checkRow(rowIndex,o)}))}refreshRows(){this.instance.renderBody(),this.instance.setDimensions()}refreshRow(t,e){this.datamanager.updateRow(t,e).forEach(t=>{this.cellmanager.refreshCell(t)})}getCheckedRows(){if(!this.checkMap)return[];let t=[];for(let e in this.checkMap){const n=this.checkMap[e];1===n&&t.push(e)}return t}highlightCheckedRows(){this.getCheckedRows().map(t=>this.checkRow(t,!0))}checkRow(t,n){const i=n?1:0,o=t=>`.dt-cell--0-${t} [type="checkbox"]`;this.checkMap[t]=i,e.each(o(t),this.bodyScrollable).map(t=>{t.checked=n}),this.highlightRow(t,n),this.showCheckStatus(),this.fireEvent("onCheckRow",this.datamanager.getRow(t))}checkAll(t){const n=t?1:0;this.checkMap=t?Array.from(Array(this.getTotalRows())).map(t=>n):[],e.each('.dt-cell--col-0 [type="checkbox"]',this.bodyScrollable).map(e=>{e.checked=t}),this.highlightAll(t),this.showCheckStatus(),this.fireEvent("onCheckRow")}showCheckStatus(){if(this.options.checkedRowStatus){const t=this.getCheckedRows().length;if(t>0){let e=this.instance.translate("{count} rows selected",{count:t});this.bodyRenderer.showToastMessage(e)}else this.bodyRenderer.clearToastMessage()}}highlightRow(t,e=!0){const n=this.getRow$(t);if(n){if(!e&&this.bodyScrollable.classList.contains("dt-scrollable--highlight-all"))return void n.classList.add("dt-row--unhighlight");e&&n.classList.contains("dt-row--unhighlight")&&n.classList.remove("dt-row--unhighlight"),this._highlightedRows=this._highlightedRows||{},e?(n.classList.add("dt-row--highlight"),this._highlightedRows[t]=n):(n.classList.remove("dt-row--highlight"),delete this._highlightedRows[t])}}highlightAll(t=!0){if(t)this.bodyScrollable.classList.add("dt-scrollable--highlight-all");else{this.bodyScrollable.classList.remove("dt-scrollable--highlight-all");for(const t in this._highlightedRows){const e=this._highlightedRows[t];e.classList.remove("dt-row--highlight")}this._highlightedRows={}}}showRows(t){const e=(t=ut(t)).map(t=>this.datamanager.getRow(t));this.bodyRenderer.renderRows(e)}showAllRows(){const t=this.datamanager.getAllRowIndices();this.showRows(t)}getChildrenToShowForNode(t){return this.datamanager.getRow(t).meta.isTreeNodeClose=!1,this.datamanager.getImmediateChildren(t)}openSingleNode(t){const e=ht([...this.getChildrenToShowForNode(t),...this.bodyRenderer.visibleRowIndices]).sort(dt);this.showRows(e)}getChildrenToHideForNode(t){this.datamanager.getRow(t).meta.isTreeNodeClose=!0;const e=this.datamanager.getChildren(t);return e.forEach(t=>{const e=this.datamanager.getRow(t);e.meta.isLeaf||(e.meta.isTreeNodeClose=!0)}),e}closeSingleNode(t){const e=this.getChildrenToHideForNode(t),n=this.bodyRenderer.visibleRowIndices.filter(t=>!e.includes(t)).sort(dt);this.showRows(n)}expandAllNodes(){const t=ht([...this.datamanager.getRows().filter(t=>!t.meta.isLeaf).map(t=>this.getChildrenToShowForNode(t.meta.rowIndex)).flat(),...this.bodyRenderer.visibleRowIndices]).sort(dt);this.showRows(t)}collapseAllNodes(){const t=this.datamanager.getRows().filter(t=>0===t.meta.indent).map(t=>this.getChildrenToHideForNode(t.meta.rowIndex)).flat(),e=this.bodyRenderer.visibleRowIndices.filter(e=>!t.includes(e)).sort(dt);this.showRows(e)}setTreeDepth(t){let e=this.datamanager.getRows();const n=e.filter(e=>e.meta.indent<t),i=e.filter(e=>e.meta.indent>=t),o=i.filter(e=>e.meta.indent>t);i.forEach(t=>{t.meta.isLeaf||(t.meta.isTreeNodeClose=!0)}),n.forEach(t=>{t.meta.isLeaf||(t.meta.isTreeNodeClose=!1)});const s=e.filter(t=>!o.includes(t)).map(t=>t.meta.rowIndex).sort(dt);this.showRows(s)}getRow$(t){return e(this.selector(t),this.bodyScrollable)}getTotalRows(){return this.datamanager.getRowCount()}getFirstRowIndex(){return 0}getLastRowIndex(){return this.datamanager.getRowCount()-1}scrollToRow(t){t=+t,this._lastScrollTo=this._lastScrollTo||0;const n=this.getRow$(t);if(!e.inViewport(n,this.bodyScrollable)){const{height:height}=n.getBoundingClientRect(),{top:top,bottom:bottom}=this.bodyScrollable.getBoundingClientRect(),i=Math.floor((bottom-top)/height);let o=0;o=t>this._lastScrollTo?height*(t+1-i):height*(t+1-1),this._lastScrollTo=t,e.scrollTop(this.bodyScrollable,o)}}getRowHTML(t,e){const n=nt(e);let i=e.rowIndex;return e.isFilter&&(t=t.map(t=>Object.assign({},t,{content:this.getFilterInput({colIndex:t.colIndex}),isFilter:1,isHeader:void 0,editable:!1})),i="filter"),e.isHeader&&(i="header"),`\n <div class="dt-row dt-row-${i}" ${n}>\n ${t.map(t=>this.cellmanager.getCellHTML(t)).join("")}\n </div>\n `}getFilterInput(t){return`<input class="dt-filter dt-input" type="text" ${nt(t)} tabindex="1" />`}selector(t){return`.dt-row-${t}`}}var xn=function(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}(function(t,e){return e={exports:{}},t(e,e.exports),e.exports}(function(t,e){!function(e){t.exports=function(){return function t(e,n,i){function s(l,a){if(!n[l]){if(!e[l]){var c="function"==typeof o&&o;if(!a&&c)return c(l,!0);if(r)return r(l,!0);var u=new Error("Cannot find module '"+l+"'");throw u.code="MODULE_NOT_FOUND",u}var h=n[l]={exports:{}};e[l][0].call(h.exports,function(t){var n=e[l][1][t];return s(n||t)},h,h.exports,t,e,n,i)}return n[l].exports}for(var r="function"==typeof o&&o,l=0;l<i.length;l++)s(i[l]);return s}({1:[function(t,e,n){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),s={width:"100%",height:"100%"},r=function(t){return Number(t)===Number(t)},l=function(){function t(e,n){var o=this;i(this,t),this._config={},this._lastRepaint=null,this._maxElementHeight=t.getMaxBrowserHeight(),this.refresh(e,n);var s=this._config;!function t(){var e=o._getScrollPosition(),n=o._lastRepaint;if(o._renderAnimationFrame=window.requestAnimationFrame(t),e!==n&&(!n||Math.abs(e-n)>o._averageHeight)){var i=o._renderChunk();o._lastRepaint=e,!1!==i&&"function"==typeof s.afterRender&&s.afterRender()}}()}return o(t,null,[{key:"create",value:function(e,n){return new t(e,n)}},{key:"mergeStyle",value:function(t,e){for(var n in e)t.style[n]!==e[n]&&(t.style[n]=e[n])}},{key:"getMaxBrowserHeight",value:function(){var e=document.createElement("div"),n=document.createElement("div");t.mergeStyle(e,{position:"absolute",height:"1px",opacity:0}),t.mergeStyle(n,{height:"1e7px"}),e.appendChild(n),document.body.appendChild(e);var i=n.offsetHeight;return document.body.removeChild(e),i}}]),o(t,[{key:"destroy",value:function(){window.cancelAnimationFrame(this._renderAnimationFrame)}},{key:"refresh",value:function(e,n){var i=this;if(Object.assign(this._config,s,n),!e||1!==e.nodeType)throw new Error("HyperList requires a valid DOM Node container");this._element=e;var o=this._config,l=this._scroller||o.scroller||document.createElement(o.scrollerTagName||"tr");if("boolean"!=typeof o.useFragment&&(this._config.useFragment=!0),!o.generate)throw new Error("Missing required `generate` function");if(!r(o.total))throw new Error("Invalid required `total` value, expected number");if(!Array.isArray(o.itemHeight)&&!r(o.itemHeight))throw new Error("\n Invalid required `itemHeight` value, expected number or array\n ".trim());r(o.itemHeight)?this._itemHeights=Array(o.total).fill(o.itemHeight):this._itemHeights=o.itemHeight,Object.keys(s).filter(function(t){return t in o}).forEach(function(t){var e=o[t],n=r(e),s=!n&&"%"===e.slice(-1);if(e&&"string"!=typeof e&&"number"!=typeof e){var l="Invalid optional `"+t+"`, expected string or number";throw new Error(l)}if(n&&(o[t]=e+"px"),"height"===t){var a=n?e:parseInt(e.replace(/px|%/,""),10);i._containerHeight=s?window.innerHeight*a/100:r(e)?e:a}});var a={width:""+o.width,height:""+o.height,overflow:"auto",position:"relative"};t.mergeStyle(e,a);var c=o.itemHeight*o.total,u=this._maxElementHeight;c>u&&console.warn(["HyperList: The maximum element height",u+"px has","been exceeded; please reduce your item height."].join(" "));var h={opacity:"0",position:"absolute",width:"1px",height:c+"px"};t.mergeStyle(l,h),this._scroller||e.appendChild(l),this._scroller=l,this._scrollHeight=this._computeScrollHeight(),this._itemPositions=this._itemPositions||Array(o.total).fill(0),this._computePositions(0),this._renderChunk(null!==this._lastRepaint),"function"==typeof o.afterRender&&o.afterRender()}},{key:"_getRow",value:function(e){var n=this._config,i=n.generate(e),o=i.height;if(void 0!==o&&r(o)?(i=i.element,o!==this._itemHeights&&(this._itemHeights[e]=o,this._computePositions(e),this._scrollHeight=this._computeScrollHeight(e))):o=this._itemHeights[e],!i||1!==i.nodeType)throw new Error("Generator did not return a DOM Node for index: "+e);var s=i.getAttribute("class")||"";i.setAttribute("class",s+" "+(n.rowClassName||"vrow"));var l=this._itemPositions[e];return t.mergeStyle(i,{position:"absolute",top:l+"px"}),i}},{key:"_getScrollPosition",value:function(){var t=this._config;return"function"==typeof t.overrideScrollPosition?t.overrideScrollPosition():this._element.scrollTop}},{key:"_renderChunk",value:function(t){var e=this._config,n=this._element,i=this._getScrollPosition(),o=e.total,s=e.reverse?this._getReverseFrom(i):this._getFrom(i)-1;if((s<0||s-this._screenItemsLen<0)&&(s=0),!t&&this._lastFrom===s)return!1;this._lastFrom=s;var r=s+this._cachedItemsLen;(r>o||r+this._cachedItemsLen>o)&&(r=o);var l=e.useFragment?document.createDocumentFragment():[],a=this._scroller;l[e.useFragment?"appendChild":"push"](a);for(var c=s;c<r;c++){var u=this._getRow(c);l[e.useFragment?"appendChild":"push"](u)}if(e.applyPatch)return e.applyPatch(n,l);n.innerHTML="",n.appendChild(l)}},{key:"_computePositions",value:function(){var t=arguments.length<=0||void 0===arguments[0]?1:arguments[0],e=this._config,n=e.total,i=e.reverse;t<1&&!i&&(t=1);for(var o=t;o<n;o++)i?0===o?this._itemPositions[0]=this._scrollHeight-this._itemHeights[0]:this._itemPositions[o]=this._itemPositions[o-1]-this._itemHeights[o]:this._itemPositions[o]=this._itemHeights[o-1]+this._itemPositions[o-1]}},{key:"_computeScrollHeight",value:function(){var e=this,n=this._config,i=n.total,o=this._itemHeights.reduce(function(t,e){return t+e},0);t.mergeStyle(this._scroller,{opacity:0,position:"absolute",width:"1px",height:o+"px"});var s=this._itemHeights.slice(0).sort(function(t,e){return t-e}),r=Math.floor(i/2),l=i%2==0?(s[r]+s[r-1])/2:s[r],a=this._element.clientHeight?this._element.clientHeight:this._containerHeight;return this._screenItemsLen=Math.ceil(a/l),this._containerHeight=a,this._cachedItemsLen=Math.max(this._cachedItemsLen||0,3*this._screenItemsLen),this._averageHeight=l,n.reverse&&window.requestAnimationFrame(function(){e._element.scrollTop=o}),o}},{key:"_getFrom",value:function(t){for(var e=0;this._itemPositions[e]<t;)e++;return e}},{key:"_getReverseFrom",value:function(t){for(var e=this._config.total-1;e>0&&this._itemPositions[e]<t+this._containerHeight;)e--;return e}}]),t}();n.default=l,e.exports=n.default},{}]},{},[1])(1)}()}()}));class Rn{constructor(t){this.instance=t,this.options=t.options,this.datamanager=t.datamanager,this.rowmanager=t.rowmanager,this.cellmanager=t.cellmanager,this.bodyScrollable=t.bodyScrollable,this.footer=this.instance.footer,this.log=t.log}renderRows(t){if(this.visibleRows=t,this.visibleRowIndices=t.map(t=>t.meta.rowIndex),0===t.length)return void(this.bodyScrollable.innerHTML=this.getNoDataHTML());const e=this.datamanager.rowViewOrder.map(t=>{if(this.visibleRowIndices.includes(t))return t;return null}).filter(t=>null!==t),n=getComputedStyle(this.bodyScrollable);let i={width:n.width,height:n.height,itemHeight:this.options.cellHeight,total:t.length,generate:t=>{const n=document.createElement("div");const i=e[t];const o=this.datamanager.getRow(i);const s=this.rowmanager.getRowHTML(o,o.meta);n.innerHTML=s;return n.children[0]},afterRender:()=>{this.restoreState()}};this.hyperlist?this.hyperlist.refresh(this.bodyScrollable,i):this.hyperlist=new xn(this.bodyScrollable,i),this.renderFooter()}render(){const t=this.datamanager.getRowsForView();this.renderRows(t),this.instance.setDimensions()}renderFooter(){if(this.options.showTotalRow){const t=this.getTotalRow();let e=this.rowmanager.getRowHTML(t,{isTotalRow:1,rowIndex:"totalRow"});this.footer.innerHTML=e}}getTotalRow(){return this.datamanager.getColumns().map(t=>{let e=null;["_rowIndex","_checkbox"].includes(t.id)&&(e="");return{content:e,isTotalRow:1,colIndex:t.colIndex,column:t}}).map((t,e)=>{if(""===t.content)return t;if(this.options.hooks.columnTotal){const n=this.visibleRows.map(t=>t[e].content),i=this.options.hooks.columnTotal.call(this.instance,n,t);if(null!=i)return t.content=i,t}t.content=this.visibleRows.reduce((t,n)=>{const i=n[e];if("number"==typeof i.content)return null==t&&(t=0),t+i.content;return t},t.content);return t})}restoreState(){this.rowmanager.highlightCheckedRows(),this.cellmanager.selectAreaOnClusterChanged(),this.cellmanager.focusCellOnClusterChanged()}showToastMessage(t,e){this.instance.toastMessage.innerHTML=this.getToastMessageHTML(t),e&&setTimeout(()=>{this.clearToastMessage()},1e3*e)}clearToastMessage(){this.instance.toastMessage.innerHTML=""}getNoDataHTML(){return`<div class="dt-scrollable__no-data">${this.options.noDataMessage}</div>`}getToastMessageHTML(t){return`<span class="dt-toast__message">${t}</span>`}}class In{constructor(t){this.instance=t,rt(this,this.instance,["options","datamanager","columnmanager","header","footer","bodyScrollable","datatableWrapper","getColumn","bodyRenderer"]),this.scopeClass="dt-instance-"+t.constructor.instances,t.datatableWrapper.classList.add(this.scopeClass);const e=document.createElement("style");t.wrapper.insertBefore(e,t.datatableWrapper),this.styleEl=e,this.bindResizeWindow(),this.bindScrollHeader()}get stylesheet(){return this.styleEl.sheet}bindResizeWindow(){this.onWindowResize=this.onWindowResize.bind(this),this.onWindowResize=mn(this.onWindowResize,300),"fluid"===this.options.layout&&e.on(window,"resize",this.onWindowResize)}bindScrollHeader(){this._settingHeaderPosition=!1,e.on(this.bodyScrollable,"scroll",t=>{if(this._settingHeaderPosition)return;this._settingHeaderPosition=!0;requestAnimationFrame(()=>{const n=-t.target.scrollLeft;e.style(this.header,{transform:`translateX(${n}px)`});e.style(this.footer,{transform:`translateX(${n}px)`});this._settingHeaderPosition=!1})})}onWindowResize(){this.distributeRemainingWidth(),this.refreshColumnWidth(),this.setBodyStyle()}destroy(){this.styleEl.remove(),e.off(window,"resize",this.onWindowResize)}setStyle(t,e){if(t.includes(","))return void t.split(",").map(t=>t.trim()).forEach(t=>{this.setStyle(t,e)});if(t=t.trim()){this._styleRulesMap=this._styleRulesMap||{};const n=this._getPrefixedSelector(t);this._styleRulesMap[n]&&(this.removeStyle(t),e=Object.assign({},this._styleRulesMap[n],e));const i=`${n} { ${this._getRuleString(e)} }`;this._styleRulesMap[n]=e,this.stylesheet.insertRule(i)}}removeStyle(t){if(t.includes(","))return void t.split(",").map(t=>t.trim()).forEach(t=>{this.removeStyle(t)});if(t=t.trim()){const e=this._getPrefixedSelector(t),n=Array.from(this.stylesheet.cssRules).findIndex(t=>t.selectorText===e);-1!==n&&this.stylesheet.deleteRule(n)}}_getPrefixedSelector(t){return`.${this.scopeClass} ${t}`}_getRuleString(t){return Object.keys(t).map(e=>{let n=e;e.includes("-")||(n=et(e));return`${n}:${t[e]};`}).join("")}setDimensions(){this.setCellHeight(),this.setupMinWidth(),this.setupNaturalColumnWidth(),this.setupColumnWidth(),this.distributeRemainingWidth(),this.setColumnStyle(),this.setBodyStyle()}setCellHeight(){this.setStyle(".dt-cell",{height:this.options.cellHeight+"px"})}setupMinWidth(){e.each(".dt-cell--header",this.header).map(t=>{const{colIndex:colIndex}=e.data(t);const n=this.getColumn(colIndex);if(!n.minWidth){const i=e.style(e(".dt-cell__content",t),"width");n.minWidth=i}})}setupNaturalColumnWidth(){e(".dt-row")&&(e.each(".dt-row-header .dt-cell",this.header).map(t=>{const{colIndex:colIndex}=e.data(t);const n=this.datamanager.getColumn(colIndex);let i=e.style(e(".dt-cell__content",t),"width");"number"==typeof i&&i>=this.options.minimumColumnWidth?n.naturalWidth=i:n.naturalWidth=this.options.minimumColumnWidth}),e.each(".dt-row-0 .dt-cell",this.bodyScrollable).map(t=>{const{colIndex:colIndex}=e.data(t);const n=this.datamanager.getColumn(colIndex);let i=e.style(e(".dt-cell__content",t),"width");"number"==typeof i&&i>=n.naturalWidth?n.naturalWidth=i:n.naturalWidth=n.naturalWidth}))}setupColumnWidth(){if("ratio"===this.options.layout){let t=e.style(this.datatableWrapper,"width");if(this.options.serialNoColumn){const e=this.datamanager.getColumnById("_rowIndex");t=t-e.width-1}if(this.options.checkboxColumn){const e=this.datamanager.getColumnById("_checkbox");t=t-e.width-1}const n=this.datamanager.getColumns().map(t=>{if("_rowIndex"===t.id||"_checkbox"===t.id)return 0;t.width||(t.width=1);t.ratioWidth=parseInt(t.width,10);return t.ratioWidth}).reduce((t,e)=>t+e),i=t/n;this.datamanager.getColumns().map(t=>{if("_rowIndex"===t.id||"_checkbox"===t.id)return;t.width=Math.floor(i*t.ratioWidth)-1})}else this.datamanager.getColumns().map(t=>{t.width||(t.width=t.naturalWidth);"_rowIndex"===t.id&&(t.width=this.getRowIndexColumnWidth());t.width<this.options.minimumColumnWidth&&(t.width=this.options.minimumColumnWidth)})}distributeRemainingWidth(){if("fluid"===this.options.layout){const t=e.style(this.instance.datatableWrapper,"width");let n=e(".dt-row",this.bodyScrollable),i=t;if(n)i=e.style(n,"width");else{let t=e(".dt-row",this.instance.header),n=Array.from(t.children).map(t=>t.offsetWidth);i=n.reduce((t,e)=>t+e,0)}const o=this.datamanager.getColumns().filter(t=>t.resizable),s=(t-i)/o.length;o.map(t=>{const n=e.style(this.getColumnHeaderElement(t.colIndex),"width");let i=Math.floor(n+s)-2;this.datamanager.updateColumn(t.colIndex,{width:i})})}}setColumnStyle(){this.datamanager.getColumns().map(t=>{t.align||(t.align="left");["left","center","right"].includes(t.align)||(t.align="left");this.setStyle(`.dt-cell--col-${t.colIndex}`,{"text-align":t.align});this.columnmanager.setColumnHeaderWidth(t.colIndex);this.columnmanager.setColumnWidth(t.colIndex)})}refreshColumnWidth(){this.datamanager.getColumns().map(t=>{this.columnmanager.setColumnHeaderWidth(t.colIndex);this.columnmanager.setColumnWidth(t.colIndex)})}setBodyStyle(){const t=e.style(this.datatableWrapper,"width"),n=e(".dt-row",this.bodyScrollable);if(n){const i=e.style(n,"width");let o=t>i?i:t;e.style(this.bodyScrollable,{width:o+"px"}),e.removeStyle(this.bodyScrollable,"height");let s=e.getStyle(this.bodyScrollable,"height");const r=(this.bodyRenderer.hyperlist||{})._scrollHeight||1/0,l=e.hasHorizontalOverflow(this.bodyScrollable);let a;r<s&&(a=r,l&&(a+=e.scrollbarSize()),e.style(this.bodyScrollable,{height:a+"px"})),this.bodyScrollable.scrollHeight-this.bodyScrollable.offsetHeight<e.scrollbarSize()&&e.style(this.bodyScrollable,{overflowY:"hidden"}),"fluid"===this.options.layout&&e.style(this.bodyScrollable,{overflowX:"hidden"})}}getColumnHeaderElement(t){return t=+t,t<0?null:e(`.dt-cell--col-${t}`,this.header)}getRowIndexColumnWidth(){const t=this.datamanager.getRowCount();return e.measureTextWidth(t+"")+22}}const Sn={13:"enter",91:"meta",16:"shift",17:"ctrl",18:"alt",37:"left",38:"up",39:"right",40:"down",9:"tab",27:"esc",67:"c",70:"f",86:"v"};class Hn{constructor(t){this.listeners={},e.on(t,"keydown",this.handler.bind(this))}handler(t){let e=Sn[t.keyCode];t.shiftKey&&"shift"!==e&&(e="shift+"+e),(t.ctrlKey&&"ctrl"!==e||t.metaKey&&"meta"!==e)&&(e="ctrl+"+e);const n=this.listeners[e];if(n&&n.length>0)for(let e of n){const n=e(t);void 0!==n&&!0!==n||t.preventDefault()}}on(t,e){t.split(",").map(t=>t.trim()).map(t=>{this.listeners[t]=this.listeners[t]||[];this.listeners[t].push(e)})}}var Tn={"Sort Ascending":"Sort Ascending","Sort Descending":"Sort Descending","Reset sorting":"Reset sorting","Remove column":"Remove column","No Data":"No Data","{count} cells copied":{1:"{count} cell copied",default:"{count} cells copied"},"{count} rows selected":{1:"{count} row selected",default:"{count} rows selected"}},En={"Sort Ascending":"Aufsteigend sortieren","Sort Descending":"Absteigend sortieren","Reset sorting":"Sortierung zurücksetzen","Remove column":"Spalte entfernen","No Data":"Keine Daten","{count} cells copied":{1:"{count} Zelle kopiert",default:"{count} Zellen kopiert"},"{count} rows selected":{1:"{count} Zeile ausgewählt",default:"{count} Zeilen ausgewählt"}},kn={"Sort Ascending":"Trier par ordre croissant","Sort Descending":"Trier par ordre décroissant","Reset sorting":"Réinitialiser le tri","Remove column":"Supprimer colonne","No Data":"Pas de données","{count} cells copied":{1:"{count} cellule copiée",default:"{count} cellules copiées"},"{count} rows selected":{1:"{count} ligne sélectionnée",default:"{count} lignes sélectionnées"}},Mn={"Sort Ascending":"Ordinamento ascendente","Sort Descending":"Ordinamento decrescente","Reset sorting":"Azzeramento ordinamento","Remove column":"Rimuovi colonna","No Data":"Nessun dato","{count} cells copied":{1:"Copiato {count} cella",default:"{count} celle copiate"},"{count} rows selected":{1:"{count} linea selezionata",default:"{count} linee selezionate"}};class Ln{constructor(t){this.language=t,this.translations=mt()}addTranslations(t){this.translations=Object.assign(this.translations,t)}translate(t,e){let n=this.translations[this.language]&&this.translations[this.language][t]||t;return"object"==typeof n&&(n=e&&e.count?this.getPluralizedTranslation(n,e.count):t),pt(n,e||{})}getPluralizedTranslation(t,e){return t[e]||t.default}}let $n={DataManager:wn,CellManager:Cn,ColumnManager:vn,RowManager:_n,BodyRenderer:Rn,Style:In,Keyboard:Hn};class On{constructor(t,e){if(On.instances++,"string"==typeof t&&(t=document.querySelector(t)),this.wrapper=t,!(this.wrapper instanceof HTMLElement))throw new Error("Invalid argument given for `wrapper`");this.initializeTranslations(e),this.setDefaultOptions(),this.buildOptions(e),this.prepare(),this.initializeComponents(),this.options.data&&(this.refresh(),this.columnmanager.applyDefaultSortOrder())}initializeTranslations(t){this.language=t.language||"en",this.translationManager=new Ln(this.language),t.translations&&this.translationManager.addTranslations(t.translations)}setDefaultOptions(){this.DEFAULT_OPTIONS=bt(this)}buildOptions(t){this.options=this.options||{},this.options=Object.assign({},this.DEFAULT_OPTIONS,this.options||{},t),t.headerDropdown=t.headerDropdown||[],this.options.headerDropdown=[...this.DEFAULT_OPTIONS.headerDropdown,...t.headerDropdown],this.events=Object.assign({},this.DEFAULT_OPTIONS.events,this.options.events||{},t.events||{}),this.fireEvent=this.fireEvent.bind(this)}prepare(){this.prepareDom(),this.unfreeze()}initializeComponents(){let t=Object.assign({},$n,this.options.overrideComponents),{Style:Style$$1,Keyboard:Keyboard$$1,DataManager:DataManager$$1,RowManager:RowManager$$1,ColumnManager:ColumnManager$$1,CellManager:CellManager$$1,BodyRenderer:BodyRenderer$$1}=t;this.style=new Style$$1(this),this.keyboard=new Keyboard$$1(this.wrapper),this.datamanager=new DataManager$$1(this.options),this.rowmanager=new RowManager$$1(this),this.columnmanager=new ColumnManager$$1(this),this.cellmanager=new CellManager$$1(this),this.bodyRenderer=new BodyRenderer$$1(this)}prepareDom(){this.wrapper.innerHTML=`\n <div class="datatable" dir="${this.options.direction}">\n <div class="dt-header"></div>\n <div class="dt-scrollable"></div>\n <div class="dt-footer"></div>\n <div class="dt-freeze">\n <span class="dt-freeze__message">\n ${this.options.freezeMessage}\n </span>\n </div>\n <div class="dt-toast"></div>\n <div class="dt-dropdown-container"></div>\n <textarea class="dt-paste-target"></textarea>\n </div>\n `,this.datatableWrapper=e(".datatable",this.wrapper),this.header=e(".dt-header",this.wrapper),this.footer=e(".dt-footer",this.wrapper),this.bodyScrollable=e(".dt-scrollable",this.wrapper),this.freezeContainer=e(".dt-freeze",this.wrapper),this.toastMessage=e(".dt-toast",this.wrapper),this.pasteTarget=e(".dt-paste-target",this.wrapper),this.dropdownContainer=e(".dt-dropdown-container",this.wrapper)}refresh(t,e){this.datamanager.init(t,e),this.render(),this.setDimensions()}destroy(){this.wrapper.innerHTML="",this.style.destroy(),this.fireEvent("onDestroy")}appendRows(t){this.datamanager.appendRows(t),this.rowmanager.refreshRows()}refreshRow(t,e){this.rowmanager.refreshRow(t,e)}render(){this.renderHeader(),this.renderBody()}renderHeader(){this.columnmanager.renderHeader()}renderBody(){this.bodyRenderer.render()}setDimensions(){this.style.setDimensions()}showToastMessage(t,e){this.bodyRenderer.showToastMessage(t,e)}clearToastMessage(){this.bodyRenderer.clearToastMessage()}getColumn(t){return this.datamanager.getColumn(t)}getColumns(){return this.datamanager.getColumns()}getRows(){return this.datamanager.getRows()}getCell(t,e){return this.datamanager.getCell(t,e)}getColumnHeaderElement(t){return this.columnmanager.getColumnHeaderElement(t)}getViewportHeight(){return this.viewportHeight||(this.viewportHeight=e.style(this.bodyScrollable,"height")),this.viewportHeight}sortColumn(t,e){this.columnmanager.sortColumn(t,e)}removeColumn(t){this.columnmanager.removeColumn(t)}scrollToLastColumn(){this.datatableWrapper.scrollLeft=9999}freeze(){e.style(this.freezeContainer,{display:""})}unfreeze(){e.style(this.freezeContainer,{display:"none"})}updateOptions(t){this.buildOptions(t)}fireEvent(t,...e){const n=[...this._internalEventHandlers[t]||[],this.events[t]].filter(Boolean);for(let t of n)t.apply(this,e)}on(t,e){this._internalEventHandlers=this._internalEventHandlers||{},this._internalEventHandlers[t]=this._internalEventHandlers[t]||[],this._internalEventHandlers[t].push(e)}log(){this.options.logs&&console.log.apply(console,arguments)}translate(t,e){return this.translationManager.translate(t,e)}}On.instances=0;var Fn={name:"melondtable",version:"0.0.0-development",description:"A modern datatable library for the web",main:"dist/melondtable.cjs.js",unpkg:"dist/melondtable.min.js",jsdelivr:"dist/melondtable.min.js",scripts:{start:"yarn run dev",build:"rollup -c && NODE_ENV=production rollup -c",dev:"rollup -c -w","cy:server":"http-server -p 8989","cy:open":"cypress open","cy:run":"cypress run",test:"start-server-and-test cy:server http://localhost:8989 cy:run","test-local":"start-server-and-test cy:server http://localhost:8989 cy:open","travis-deploy-once":"travis-deploy-once","semantic-release":"semantic-release",lint:"eslint src","lint-and-build":"yarn lint && yarn build",commit:"npx git-cz"},files:["dist","src"],devDependencies:{autoprefixer:"^9.0.0",chai:"3.5.0",cypress:"^9.2.0","cz-conventional-changelog":"^2.1.0",deepmerge:"^2.0.1",eslint:"^5.0.1","eslint-config-airbnb":"^16.1.0","eslint-config-airbnb-base":"^12.1.0","eslint-plugin-import":"^2.11.0","http-server":"^0.11.1",mocha:"3.3.0","postcss-custom-properties":"^7.0.0","postcss-nested":"^3.0.0",rollup:"^0.59.4","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-eslint":"^4.0.0","rollup-plugin-json":"^2.3.0","rollup-plugin-node-resolve":"^3.0.3","rollup-plugin-postcss":"^1.2.8","rollup-plugin-uglify-es":"^0.0.1","semantic-release":"^17.1.1","start-server-and-test":"^1.4.1","travis-deploy-once":"^5.0.1"},repository:{type:"git",url:"https://github.com/amonak/melondtable.git"},keywords:["datatable","data","grid","table"],author:"Faris Ansari",license:"MIT",bugs:{url:"https://github.com/amonak/datatable/issues"},homepage:"https://monakerp.com/melondtable",dependencies:{hyperlist:"^1.0.0-beta",lodash:"^4.17.5",sortablejs:"^1.7.0"},config:{commitizen:{path:"cz-conventional-changelog"}}};return On.__version__=Fn.version,On}(Sortable);
@@ -1,15 +0,0 @@
1
- {
2
- "Sort Ascending": "Aufsteigend sortieren",
3
- "Sort Descending": "Absteigend sortieren",
4
- "Reset sorting": "Sortierung zurücksetzen",
5
- "Remove column": "Spalte entfernen",
6
- "No Data": "Keine Daten",
7
- "{count} cells copied": {
8
- "1": "{count} Zelle kopiert",
9
- "default": "{count} Zellen kopiert"
10
- },
11
- "{count} rows selected": {
12
- "1": "{count} Zeile ausgewählt",
13
- "default": "{count} Zeilen ausgewählt"
14
- }
15
- }
@@ -1,15 +0,0 @@
1
- {
2
- "Sort Ascending": "Ordinamento ascendente",
3
- "Sort Descending": "Ordinamento decrescente",
4
- "Reset sorting": "Azzeramento ordinamento",
5
- "Remove column": "Rimuovi colonna",
6
- "No Data": "Nessun dato",
7
- "{count} cells copied": {
8
- "1": "Copiato {count} cella",
9
- "default": "{count} celle copiate"
10
- },
11
- "{count} rows selected": {
12
- "1": "{count} linea selezionata",
13
- "default": "{count} linee selezionate"
14
- }
15
- }