igniteui-angular 13.0.2 → 13.0.3

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.
@@ -4,6 +4,7 @@ import { DefaultSortingStrategy } from '../../data-operations/sorting-strategy';
4
4
  const DATE_TYPE = 'date';
5
5
  const TIME_TYPE = 'time';
6
6
  const DATE_TIME_TYPE = 'dateTime';
7
+ const STRING_TYPE = 'string';
7
8
  export class IgxSorting {
8
9
  sort(data, expressions, grid) {
9
10
  return this.sortDataRecursive(data, expressions, 0, grid);
@@ -17,7 +18,8 @@ export class IgxSorting {
17
18
  const column = grid ? grid.getColumnByName(expressions[level].fieldName) : null;
18
19
  const isDate = column?.dataType === DATE_TYPE || column?.dataType === DATE_TIME_TYPE;
19
20
  const isTime = column?.dataType === TIME_TYPE;
20
- const group = this.groupedRecordsByExpression(data, i, expressions[level], isDate);
21
+ const isString = column?.dataType === STRING_TYPE;
22
+ const group = this.groupedRecordsByExpression(data, i, expressions[level], isDate, isString);
21
23
  const groupRow = {
22
24
  expression: expressions[level],
23
25
  level,
@@ -71,16 +73,22 @@ export class IgxSorting {
71
73
  }
72
74
  return resolvedValue;
73
75
  }
74
- groupedRecordsByExpression(data, index, expression, isDate = false) {
76
+ groupedRecordsByExpression(data, index, expression, isDate = false, isString) {
75
77
  const res = [];
76
78
  const key = expression.fieldName;
77
79
  const len = data.length;
78
- const groupval = this.getFieldValue(data[index], key, isDate);
80
+ let groupval = this.getFieldValue(data[index], key, isDate);
79
81
  res.push(data[index]);
80
82
  index++;
81
83
  const comparer = expression.groupingComparer || DefaultSortingStrategy.instance().compareValues;
82
84
  for (let i = index; i < len; i++) {
83
- if (comparer(this.getFieldValue(data[i], key, isDate), groupval) === 0) {
85
+ let fieldValue = this.getFieldValue(data[i], key, isDate);
86
+ if (expression.ignoreCase && isString) {
87
+ // when column's dataType is string but the value is number
88
+ fieldValue = fieldValue?.toString().toLowerCase();
89
+ groupval = groupval?.toString().toLowerCase();
90
+ }
91
+ if (comparer(fieldValue, groupval) === 0) {
84
92
  res.push(data[i]);
85
93
  }
86
94
  else {
@@ -107,13 +115,14 @@ export class IgxSorting {
107
115
  const column = grid?.getColumnByName(expr.fieldName);
108
116
  const isDate = column?.dataType === DATE_TYPE || column?.dataType === DATE_TIME_TYPE;
109
117
  const isTime = column?.dataType === TIME_TYPE;
118
+ const isString = column?.dataType === STRING_TYPE;
110
119
  data = expr.strategy.sort(data, expr.fieldName, expr.dir, expr.ignoreCase, this.getFieldValue, isDate, isTime);
111
120
  if (expressionIndex === exprsLen - 1) {
112
121
  return data;
113
122
  }
114
123
  // in case of multiple sorting
115
124
  for (i = 0; i < dataLen; i++) {
116
- gbData = this.groupedRecordsByExpression(data, i, expr, isDate);
125
+ gbData = this.groupedRecordsByExpression(data, i, expr, isDate, isString);
117
126
  gbDataLen = gbData.length;
118
127
  if (gbDataLen > 1) {
119
128
  gbData = this.sortDataRecursive(gbData, expressions, expressionIndex + 1, grid);
@@ -151,4 +160,4 @@ export class IgxDataRecordSorting extends IgxSorting {
151
160
  return super.getFieldValue(obj.data, key, isDate, isTime);
152
161
  }
153
162
  }
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvY29tbW9uL3N0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFNNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxzQkFBc0IsRUFBc0IsTUFBTSx3Q0FBd0MsQ0FBQztBQUdwRyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUM7QUFDekIsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDO0FBQ3pCLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQztBQVVsQyxNQUFNLE9BQU8sVUFBVTtJQUNaLElBQUksQ0FBQyxJQUFXLEVBQUUsV0FBaUMsRUFBRSxJQUFlO1FBQ3ZFLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFUyxrQkFBa0IsQ0FDeEIsSUFBVyxFQUNYLEtBQXFCLEVBQ3JCLEtBQWEsRUFDYixNQUFzQixFQUN0QixRQUEwQixFQUMxQixPQUFpQixJQUFJLEVBQ3JCLGdCQUF1QixFQUFFLEVBQ3pCLGFBQTZCLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO1FBRXZELE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDdEMsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsT0FBTyxDQUFDLEdBQUcsSUFB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QztJQUNoQixDQUFDOztBQVZjLDZCQUFTLEdBQXdCLElBQUksQ0FBQztBQWF6RCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsVUFBVTtJQUV0QyxhQUFhLENBQUMsR0FBUSxFQUFFLEdBQVcsRUFBRSxTQUFrQixLQUFLLEVBQUUsU0FBa0IsS0FBSztRQUMzRixPQUFPLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsb25lQXJyYXksIHBhcnNlRGF0ZSwgcmVzb2x2ZU5lc3RlZFBhdGggfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IElHcm91cEJ5RXhwYW5kU3RhdGUgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZ3JvdXBieS1leHBhbmQtc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IElHcm91cEJ5UmVjb3JkIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2dyb3VwYnktcmVjb3JkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJR3JvdXBpbmdTdGF0ZSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGJ5LXN0YXRlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJR3JvdXBpbmdFeHByZXNzaW9uIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2dyb3VwaW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElHcm91cEJ5UmVzdWx0IH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2dyb3VwaW5nLXJlc3VsdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgZ2V0SGllcmFyY2h5LCBpc0hpZXJhcmNoeU1hdGNoIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL29wZXJhdGlvbnMnO1xuaW1wb3J0IHsgRGVmYXVsdFNvcnRpbmdTdHJhdGVneSwgSVNvcnRpbmdFeHByZXNzaW9uIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL3NvcnRpbmctc3RyYXRlZ3knO1xuaW1wb3J0IHsgR3JpZFR5cGUgfSBmcm9tICcuL2dyaWQuaW50ZXJmYWNlJztcblxuY29uc3QgREFURV9UWVBFID0gJ2RhdGUnO1xuY29uc3QgVElNRV9UWVBFID0gJ3RpbWUnO1xuY29uc3QgREFURV9USU1FX1RZUEUgPSAnZGF0ZVRpbWUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElHcmlkU29ydGluZ1N0cmF0ZWd5IHtcbiAgICBzb3J0KGRhdGE6IGFueVtdLCBleHByZXNzaW9uczogSVNvcnRpbmdFeHByZXNzaW9uW10sIGdyaWQ/OiBHcmlkVHlwZSk6IGFueVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHcmlkR3JvdXBpbmdTdHJhdGVneSBleHRlbmRzIElHcmlkU29ydGluZ1N0cmF0ZWd5IHtcbiAgICBncm91cEJ5KGRhdGE6IGFueVtdLCBzdGF0ZTogSUdyb3VwaW5nU3RhdGUsIGdyaWQ/OiBhbnksIGdyb3Vwc1JlY29yZHM/OiBhbnlbXSwgZnVsbFJlc3VsdD86IElHcm91cEJ5UmVzdWx0KTogSUdyb3VwQnlSZXN1bHQ7XG59XG5cbmV4cG9ydCBjbGFzcyBJZ3hTb3J0aW5nIGltcGxlbWVudHMgSUdyaWRTb3J0aW5nU3RyYXRlZ3kge1xuICAgIHB1YmxpYyBzb3J0KGRhdGE6IGFueVtdLCBleHByZXNzaW9uczogSVNvcnRpbmdFeHByZXNzaW9uW10sIGdyaWQ/OiBHcmlkVHlwZSk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc29ydERhdGFSZWN1cnNpdmUoZGF0YSwgZXhwcmVzc2lvbnMsIDAsIGdyaWQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBncm91cERhdGFSZWN1cnNpdmUoXG4gICAgICAgIGRhdGE6IGFueVtdLFxuICAgICAgICBzdGF0ZTogSUdyb3VwaW5nU3RhdGUsXG4gICAgICAgIGxldmVsOiBudW1iZXIsXG4gICAgICAgIHBhcmVudDogSUdyb3VwQnlSZWNvcmQsXG4gICAgICAgIG1ldGFkYXRhOiBJR3JvdXBCeVJlY29yZFtdLFxuICAgICAgICBncmlkOiBHcmlkVHlwZSA9IG51bGwsXG4gICAgICAgIGdyb3Vwc1JlY29yZHM6IGFueVtdID0gW10sXG4gICAgICAgIGZ1bGxSZXN1bHQ6IElHcm91cEJ5UmVzdWx0ID0geyBkYXRhOiBbXSwgbWV0YWRhdGE6IFtdIH1cbiAgICApOiBhbnlbXSB7XG4gICAgICAgIGNvbnN0IGV4cHJlc3Npb25zID0gc3RhdGUuZXhwcmVzc2lvbnM7XG4gICAgICAgIGNvbnN0IGV4cGFuc2lvbiA9IHN0YXRlLmV4cGFuc2lvbjtcbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICBsZXQgcmVzdWx0ID0gW107XG4gICAgICAgIHdoaWxlIChpIDwgZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IGdyaWQgPyBncmlkLmdldENvbHVtbkJ5TmFtZShleHByZXNzaW9uc1tsZXZlbF0uZmllbGROYW1lKSA6IG51bGw7XG4gICAgICAgICAgICBjb25zdCBpc0RhdGUgPSBjb2x1bW4/LmRhdGFUeXBlID09PSBEQVRFX1RZUEUgfHwgY29sdW1uPy5kYXRhVHlwZSA9PT0gREFURV9USU1FX1RZUEU7XG4gICAgICAgICAgICBjb25zdCBpc1RpbWUgPSBjb2x1bW4/LmRhdGFUeXBlID09PSBUSU1FX1RZUEU7XG4gICAgICAgICAgICBjb25zdCBncm91cCA9IHRoaXMuZ3JvdXBlZFJlY29yZHNCeUV4cHJlc3Npb24oZGF0YSwgaSwgZXhwcmVzc2lvbnNbbGV2ZWxdLCBpc0RhdGUpO1xuICAgICAgICAgICAgY29uc3QgZ3JvdXBSb3c6IElHcm91cEJ5UmVjb3JkID0ge1xuICAgICAgICAgICAgICAgIGV4cHJlc3Npb246IGV4cHJlc3Npb25zW2xldmVsXSxcbiAgICAgICAgICAgICAgICBsZXZlbCxcbiAgICAgICAgICAgICAgICByZWNvcmRzOiBjbG9uZUFycmF5KGdyb3VwKSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5nZXRGaWVsZFZhbHVlKGdyb3VwWzBdLCBleHByZXNzaW9uc1tsZXZlbF0uZmllbGROYW1lLCBpc0RhdGUsIGlzVGltZSksXG4gICAgICAgICAgICAgICAgZ3JvdXBQYXJlbnQ6IHBhcmVudCxcbiAgICAgICAgICAgICAgICBncm91cHM6IFtdLFxuICAgICAgICAgICAgICAgIGhlaWdodDogZ3JpZCA/IGdyaWQucmVuZGVyZWRSb3dIZWlnaHQgOiBudWxsLFxuICAgICAgICAgICAgICAgIGNvbHVtblxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnQuZ3JvdXBzLnB1c2goZ3JvdXBSb3cpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBncm91cHNSZWNvcmRzLnB1c2goZ3JvdXBSb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgaGllcmFyY2h5ID0gZ2V0SGllcmFyY2h5KGdyb3VwUm93KTtcbiAgICAgICAgICAgIGNvbnN0IGV4cGFuZFN0YXRlOiBJR3JvdXBCeUV4cGFuZFN0YXRlID0gZXhwYW5zaW9uLmZpbmQoKHMpID0+XG4gICAgICAgICAgICAgICAgaXNIaWVyYXJjaHlNYXRjaChzLmhpZXJhcmNoeSB8fCBbeyBmaWVsZE5hbWU6IGdyb3VwUm93LmV4cHJlc3Npb24uZmllbGROYW1lLCB2YWx1ZTogZ3JvdXBSb3cudmFsdWUgfV0sIGhpZXJhcmNoeSkpO1xuICAgICAgICAgICAgY29uc3QgZXhwYW5kZWQgPSBleHBhbmRTdGF0ZSA/IGV4cGFuZFN0YXRlLmV4cGFuZGVkIDogc3RhdGUuZGVmYXVsdEV4cGFuZGVkO1xuICAgICAgICAgICAgbGV0IHJlY3Vyc2l2ZVJlc3VsdDtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKGdyb3VwUm93KTtcbiAgICAgICAgICAgIG1ldGFkYXRhLnB1c2gobnVsbCk7XG4gICAgICAgICAgICBmdWxsUmVzdWx0LmRhdGEucHVzaChncm91cFJvdyk7XG4gICAgICAgICAgICBmdWxsUmVzdWx0Lm1ldGFkYXRhLnB1c2gobnVsbCk7XG4gICAgICAgICAgICBpZiAobGV2ZWwgPCBleHByZXNzaW9ucy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgcmVjdXJzaXZlUmVzdWx0ID0gdGhpcy5ncm91cERhdGFSZWN1cnNpdmUoZ3JvdXAsIHN0YXRlLCBsZXZlbCArIDEsIGdyb3VwUm93LFxuICAgICAgICAgICAgICAgICAgICBleHBhbmRlZCA/IG1ldGFkYXRhIDogW10sIGdyaWQsIGdyb3Vwc1JlY29yZHMsIGZ1bGxSZXN1bHQpO1xuICAgICAgICAgICAgICAgIGlmIChleHBhbmRlZCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KHJlY3Vyc2l2ZVJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGdyb3VwSXRlbSBvZiBncm91cCkge1xuICAgICAgICAgICAgICAgICAgICBmdWxsUmVzdWx0Lm1ldGFkYXRhLnB1c2goZ3JvdXBSb3cpO1xuICAgICAgICAgICAgICAgICAgICBmdWxsUmVzdWx0LmRhdGEucHVzaChncm91cEl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoZXhwYW5kZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEucHVzaCguLi5mdWxsUmVzdWx0Lm1ldGFkYXRhLnNsaWNlKGZ1bGxSZXN1bHQubWV0YWRhdGEubGVuZ3RoIC0gZ3JvdXAubGVuZ3RoKSk7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLmZ1bGxSZXN1bHQuZGF0YS5zbGljZShmdWxsUmVzdWx0LmRhdGEubGVuZ3RoIC0gZ3JvdXAubGVuZ3RoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaSArPSBncm91cC5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmllbGRWYWx1ZTxUPihvYmo6IFQsIGtleTogc3RyaW5nLCBpc0RhdGU6IGJvb2xlYW4gPSBmYWxzZSwgaXNUaW1lOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAgICAgbGV0IHJlc29sdmVkVmFsdWUgPSByZXNvbHZlTmVzdGVkUGF0aChvYmosIGtleSk7XG4gICAgICAgIGlmIChpc0RhdGUgfHwgaXNUaW1lKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRlID0gcGFyc2VEYXRlKHJlc29sdmVkVmFsdWUpO1xuICAgICAgICAgICAgcmVzb2x2ZWRWYWx1ZSA9IGlzVGltZSAmJiBkYXRlID9cbiAgICAgICAgICAgICAgICBuZXcgRGF0ZSgpLnNldEhvdXJzKGRhdGUuZ2V0SG91cnMoKSwgZGF0ZS5nZXRNaW51dGVzKCksIGRhdGUuZ2V0U2Vjb25kcygpLCBkYXRlLmdldE1pbGxpc2Vjb25kcygpKSA6IGRhdGU7XG5cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzb2x2ZWRWYWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdyb3VwZWRSZWNvcmRzQnlFeHByZXNzaW9uPFQ+KFxuICAgICAgICBkYXRhOiBUW10sXG4gICAgICAgIGluZGV4OiBudW1iZXIsXG4gICAgICAgIGV4cHJlc3Npb246IElHcm91cGluZ0V4cHJlc3Npb24sXG4gICAgICAgIGlzRGF0ZTogYm9vbGVhbiA9IGZhbHNlXG4gICAgKTogVFtdIHtcbiAgICAgICAgY29uc3QgcmVzID0gW107XG4gICAgICAgIGNvbnN0IGtleSA9IGV4cHJlc3Npb24uZmllbGROYW1lO1xuICAgICAgICBjb25zdCBsZW4gPSBkYXRhLmxlbmd0aDtcbiAgICAgICAgY29uc3QgZ3JvdXB2YWwgPSB0aGlzLmdldEZpZWxkVmFsdWUoZGF0YVtpbmRleF0sIGtleSwgaXNEYXRlKTtcbiAgICAgICAgcmVzLnB1c2goZGF0YVtpbmRleF0pO1xuICAgICAgICBpbmRleCsrO1xuICAgICAgICBjb25zdCBjb21wYXJlciA9IGV4cHJlc3Npb24uZ3JvdXBpbmdDb21wYXJlciB8fCBEZWZhdWx0U29ydGluZ1N0cmF0ZWd5Lmluc3RhbmNlKCkuY29tcGFyZVZhbHVlcztcbiAgICAgICAgZm9yIChsZXQgaSA9IGluZGV4OyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChjb21wYXJlcih0aGlzLmdldEZpZWxkVmFsdWUoZGF0YVtpXSwga2V5LCBpc0RhdGUpLCBncm91cHZhbCkgPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXMucHVzaChkYXRhW2ldKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHNvcnREYXRhUmVjdXJzaXZlPFQ+KFxuICAgICAgICBkYXRhOiBUW10sXG4gICAgICAgIGV4cHJlc3Npb25zOiBJU29ydGluZ0V4cHJlc3Npb25bXSxcbiAgICAgICAgZXhwcmVzc2lvbkluZGV4OiBudW1iZXIgPSAwLFxuICAgICAgICBncmlkOiBHcmlkVHlwZVxuICAgICk6IFRbXSB7XG4gICAgICAgIGxldCBpOiBudW1iZXI7XG4gICAgICAgIGxldCBqOiBudW1iZXI7XG4gICAgICAgIGxldCBnYkRhdGE6IFRbXTtcbiAgICAgICAgbGV0IGdiRGF0YUxlbjogbnVtYmVyO1xuICAgICAgICBjb25zdCBleHByc0xlbiA9IGV4cHJlc3Npb25zLmxlbmd0aDtcbiAgICAgICAgY29uc3QgZGF0YUxlbiA9IGRhdGEubGVuZ3RoO1xuXG4gICAgICAgIGV4cHJlc3Npb25JbmRleCA9IGV4cHJlc3Npb25JbmRleCB8fCAwO1xuICAgICAgICBpZiAoZXhwcmVzc2lvbkluZGV4ID49IGV4cHJzTGVuIHx8IGRhdGFMZW4gPD0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXhwciA9IGV4cHJlc3Npb25zW2V4cHJlc3Npb25JbmRleF07XG4gICAgICAgIGlmICghZXhwci5zdHJhdGVneSkge1xuICAgICAgICAgICAgZXhwci5zdHJhdGVneSA9IERlZmF1bHRTb3J0aW5nU3RyYXRlZ3kuaW5zdGFuY2UoKSBhcyBhbnk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29sdW1uID0gZ3JpZD8uZ2V0Q29sdW1uQnlOYW1lKGV4cHIuZmllbGROYW1lKTtcbiAgICAgICAgY29uc3QgaXNEYXRlID0gY29sdW1uPy5kYXRhVHlwZSA9PT0gREFURV9UWVBFIHx8IGNvbHVtbj8uZGF0YVR5cGUgPT09IERBVEVfVElNRV9UWVBFO1xuICAgICAgICBjb25zdCBpc1RpbWUgPSBjb2x1bW4/LmRhdGFUeXBlID09PSBUSU1FX1RZUEU7XG4gICAgICAgIGRhdGEgPSBleHByLnN0cmF0ZWd5LnNvcnQoZGF0YSwgZXhwci5maWVsZE5hbWUsIGV4cHIuZGlyLCBleHByLmlnbm9yZUNhc2UsIHRoaXMuZ2V0RmllbGRWYWx1ZSwgaXNEYXRlLCBpc1RpbWUpO1xuICAgICAgICBpZiAoZXhwcmVzc2lvbkluZGV4ID09PSBleHByc0xlbiAtIDEpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9XG4gICAgICAgIC8vIGluIGNhc2Ugb2YgbXVsdGlwbGUgc29ydGluZ1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZGF0YUxlbjsgaSsrKSB7XG4gICAgICAgICAgICBnYkRhdGEgPSB0aGlzLmdyb3VwZWRSZWNvcmRzQnlFeHByZXNzaW9uKGRhdGEsIGksIGV4cHIsIGlzRGF0ZSk7XG4gICAgICAgICAgICBnYkRhdGFMZW4gPSBnYkRhdGEubGVuZ3RoO1xuICAgICAgICAgICAgaWYgKGdiRGF0YUxlbiA+IDEpIHtcbiAgICAgICAgICAgICAgICBnYkRhdGEgPSB0aGlzLnNvcnREYXRhUmVjdXJzaXZlKGdiRGF0YSwgZXhwcmVzc2lvbnMsIGV4cHJlc3Npb25JbmRleCArIDEsIGdyaWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IGdiRGF0YUxlbjsgaisrKSB7XG4gICAgICAgICAgICAgICAgZGF0YVtpICsgal0gPSBnYkRhdGFbal07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpICs9IGdiRGF0YUxlbiAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgSWd4R3JvdXBpbmcgZXh0ZW5kcyBJZ3hTb3J0aW5nIGltcGxlbWVudHMgSUdyaWRHcm91cGluZ1N0cmF0ZWd5IHtcbiAgICBwdWJsaWMgZ3JvdXBCeShkYXRhOiBhbnlbXSwgc3RhdGU6IElHcm91cGluZ1N0YXRlLCBncmlkPzogYW55LFxuICAgICAgICBncm91cHNSZWNvcmRzPzogYW55W10sIGZ1bGxSZXN1bHQ6IElHcm91cEJ5UmVzdWx0ID0geyBkYXRhOiBbXSwgbWV0YWRhdGE6IFtdIH0pOiBJR3JvdXBCeVJlc3VsdCB7XG4gICAgICAgIGNvbnN0IG1ldGFkYXRhOiBJR3JvdXBCeVJlY29yZFtdID0gW107XG4gICAgICAgIGNvbnN0IGdyb3VwaW5nID0gdGhpcy5ncm91cERhdGFSZWN1cnNpdmUoZGF0YSwgc3RhdGUsIDAsIG51bGwsIG1ldGFkYXRhLCBncmlkLCBncm91cHNSZWNvcmRzLCBmdWxsUmVzdWx0KTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRhdGE6IGdyb3VwaW5nLFxuICAgICAgICAgICAgbWV0YWRhdGFcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOb29wU29ydGluZ1N0cmF0ZWd5IGltcGxlbWVudHMgSUdyaWRTb3J0aW5nU3RyYXRlZ3kge1xuICAgIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogTm9vcFNvcnRpbmdTdHJhdGVneSA9IG51bGw7XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGluc3RhbmNlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5zdGFuY2UgfHwgKHRoaXMuX2luc3RhbmNlID0gbmV3IE5vb3BTb3J0aW5nU3RyYXRlZ3koKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNvcnQoZGF0YTogYW55W10pOiBhbnlbXSB7XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIElneERhdGFSZWNvcmRTb3J0aW5nIGV4dGVuZHMgSWd4U29ydGluZyB7XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmllbGRWYWx1ZShvYmo6IGFueSwga2V5OiBzdHJpbmcsIGlzRGF0ZTogYm9vbGVhbiA9IGZhbHNlLCBpc1RpbWU6IGJvb2xlYW4gPSBmYWxzZSk6IGFueSB7XG4gICAgICAgIHJldHVybiBzdXBlci5nZXRGaWVsZFZhbHVlKG9iai5kYXRhLCBrZXksIGlzRGF0ZSwgaXNUaW1lKTtcbiAgICB9XG59XG4iXX0=
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvY29tbW9uL3N0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFNNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxzQkFBc0IsRUFBc0IsTUFBTSx3Q0FBd0MsQ0FBQztBQUdwRyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUM7QUFDekIsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDO0FBQ3pCLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQztBQUNsQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUM7QUFVN0IsTUFBTSxPQUFPLFVBQVU7SUFDWixJQUFJLENBQUMsSUFBVyxFQUFFLFdBQWlDLEVBQUUsSUFBZTtRQUN2RSxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRVMsa0JBQWtCLENBQ3hCLElBQVcsRUFDWCxLQUFxQixFQUNyQixLQUFhLEVBQ2IsTUFBc0IsRUFDdEIsUUFBMEIsRUFDMUIsT0FBaUIsSUFBSSxFQUNyQixnQkFBdUIsRUFBRSxFQUN6QixhQUE2QixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtRQUV2RCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3RDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsSUFBSSxNQUFNLEdBQUcsRUFB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QUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMxRyxPQUFPO1lBQ0gsSUFBSSxFQUFFLFFBQVE7WUFDZCxRQUFRO1NBQ1gsQ0FBQztJQUNOLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxtQkFBbUI7SUFHNUIsZ0JBQXdCLENBQUM7SUFFbEIsTUFBTSxDQUFDLFFBQVE7UUFDbEIsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLG1CQUFtQixFQUFFLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRU0sSUFBSSxDQUFDLElBQVc7UUFDbkIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs7QUFWYyw2QkFBUyxHQUF3QixJQUFJLENBQUM7QUFhekQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFVBQVU7SUFFdEMsYUFBYSxDQUFDLEdBQVEsRUFBRSxHQUFXLEVBQUUsU0FBa0IsS0FBSyxFQUFFLFNBQWtCLEtBQUs7UUFDM0YsT0FBTyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5RCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjbG9uZUFycmF5LCBwYXJzZURhdGUsIHJlc29sdmVOZXN0ZWRQYXRoIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBJR3JvdXBCeUV4cGFuZFN0YXRlIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2dyb3VwYnktZXhwYW5kLXN0YXRlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJR3JvdXBCeVJlY29yZCB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGJ5LXJlY29yZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUdyb3VwaW5nU3RhdGUgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZ3JvdXBieS1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUdyb3VwaW5nRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGluZy1leHByZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJR3JvdXBCeVJlc3VsdCB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGluZy1yZXN1bHQuaW50ZXJmYWNlJztcbmltcG9ydCB7IGdldEhpZXJhcmNoeSwgaXNIaWVyYXJjaHlNYXRjaCB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9vcGVyYXRpb25zJztcbmltcG9ydCB7IERlZmF1bHRTb3J0aW5nU3RyYXRlZ3ksIElTb3J0aW5nRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9zb3J0aW5nLXN0cmF0ZWd5JztcbmltcG9ydCB7IEdyaWRUeXBlIH0gZnJvbSAnLi9ncmlkLmludGVyZmFjZSc7XG5cbmNvbnN0IERBVEVfVFlQRSA9ICdkYXRlJztcbmNvbnN0IFRJTUVfVFlQRSA9ICd0aW1lJztcbmNvbnN0IERBVEVfVElNRV9UWVBFID0gJ2RhdGVUaW1lJztcbmNvbnN0IFNUUklOR19UWVBFID0gJ3N0cmluZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWRTb3J0aW5nU3RyYXRlZ3kge1xuICAgIHNvcnQoZGF0YTogYW55W10sIGV4cHJlc3Npb25zOiBJU29ydGluZ0V4cHJlc3Npb25bXSwgZ3JpZD86IEdyaWRUeXBlKTogYW55W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWRHcm91cGluZ1N0cmF0ZWd5IGV4dGVuZHMgSUdyaWRTb3J0aW5nU3RyYXRlZ3kge1xuICAgIGdyb3VwQnkoZGF0YTogYW55W10sIHN0YXRlOiBJR3JvdXBpbmdTdGF0ZSwgZ3JpZD86IGFueSwgZ3JvdXBzUmVjb3Jkcz86IGFueVtdLCBmdWxsUmVzdWx0PzogSUdyb3VwQnlSZXN1bHQpOiBJR3JvdXBCeVJlc3VsdDtcbn1cblxuZXhwb3J0IGNsYXNzIElneFNvcnRpbmcgaW1wbGVtZW50cyBJR3JpZFNvcnRpbmdTdHJhdGVneSB7XG4gICAgcHVibGljIHNvcnQoZGF0YTogYW55W10sIGV4cHJlc3Npb25zOiBJU29ydGluZ0V4cHJlc3Npb25bXSwgZ3JpZD86IEdyaWRUeXBlKTogYW55W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5zb3J0RGF0YVJlY3Vyc2l2ZShkYXRhLCBleHByZXNzaW9ucywgMCwgZ3JpZCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdyb3VwRGF0YVJlY3Vyc2l2ZShcbiAgICAgICAgZGF0YTogYW55W10sXG4gICAgICAgIHN0YXRlOiBJR3JvdXBpbmdTdGF0ZSxcbiAgICAgICAgbGV2ZWw6IG51bWJlcixcbiAgICAgICAgcGFyZW50OiBJR3JvdXBCeVJlY29yZCxcbiAgICAgICAgbWV0YWRhdGE6IElHcm91cEJ5UmVjb3JkW10sXG4gICAgICAgIGdyaWQ6IEdyaWRUeXBlID0gbnVsbCxcbiAgICAgICAgZ3JvdXBzUmVjb3JkczogYW55W10gPSBbXSxcbiAgICAgICAgZnVsbFJlc3VsdDogSUdyb3VwQnlSZXN1bHQgPSB7IGRhdGE6IFtdLCBtZXRhZGF0YTogW10gfVxuICAgICk6IGFueVtdIHtcbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbnMgPSBzdGF0ZS5leHByZXNzaW9ucztcbiAgICAgICAgY29uc3QgZXhwYW5zaW9uID0gc3RhdGUuZXhwYW5zaW9uO1xuICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgIGxldCByZXN1bHQgPSBbXTtcbiAgICAgICAgd2hpbGUgKGkgPCBkYXRhLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgY29sdW1uID0gZ3JpZCA/IGdyaWQuZ2V0Q29sdW1uQnlOYW1lKGV4cHJlc3Npb25zW2xldmVsXS5maWVsZE5hbWUpIDogbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IGlzRGF0ZSA9IGNvbHVtbj8uZGF0YVR5cGUgPT09IERBVEVfVFlQRSB8fCBjb2x1bW4/LmRhdGFUeXBlID09PSBEQVRFX1RJTUVfVFlQRTtcbiAgICAgICAgICAgIGNvbnN0IGlzVGltZSA9IGNvbHVtbj8uZGF0YVR5cGUgPT09IFRJTUVfVFlQRTtcbiAgICAgICAgICAgIGNvbnN0IGlzU3RyaW5nID0gY29sdW1uPy5kYXRhVHlwZSA9PT0gU1RSSU5HX1RZUEU7XG4gICAgICAgICAgICBjb25zdCBncm91cCA9IHRoaXMuZ3JvdXBlZFJlY29yZHNCeUV4cHJlc3Npb24oZGF0YSwgaSwgZXhwcmVzc2lvbnNbbGV2ZWxdLCBpc0RhdGUsIGlzU3RyaW5nKTtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwUm93OiBJR3JvdXBCeVJlY29yZCA9IHtcbiAgICAgICAgICAgICAgICBleHByZXNzaW9uOiBleHByZXNzaW9uc1tsZXZlbF0sXG4gICAgICAgICAgICAgICAgbGV2ZWwsXG4gICAgICAgICAgICAgICAgcmVjb3JkczogY2xvbmVBcnJheShncm91cCksXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuZ2V0RmllbGRWYWx1ZShncm91cFswXSwgZXhwcmVzc2lvbnNbbGV2ZWxdLmZpZWxkTmFtZSwgaXNEYXRlLCBpc1RpbWUpLFxuICAgICAgICAgICAgICAgIGdyb3VwUGFyZW50OiBwYXJlbnQsXG4gICAgICAgICAgICAgICAgZ3JvdXBzOiBbXSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGdyaWQgPyBncmlkLnJlbmRlcmVkUm93SGVpZ2h0IDogbnVsbCxcbiAgICAgICAgICAgICAgICBjb2x1bW5cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgICAgICAgcGFyZW50Lmdyb3Vwcy5wdXNoKGdyb3VwUm93KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBzUmVjb3Jkcy5wdXNoKGdyb3VwUm93KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGhpZXJhcmNoeSA9IGdldEhpZXJhcmNoeShncm91cFJvdyk7XG4gICAgICAgICAgICBjb25zdCBleHBhbmRTdGF0ZTogSUdyb3VwQnlFeHBhbmRTdGF0ZSA9IGV4cGFuc2lvbi5maW5kKChzKSA9PlxuICAgICAgICAgICAgICAgIGlzSGllcmFyY2h5TWF0Y2gocy5oaWVyYXJjaHkgfHwgW3sgZmllbGROYW1lOiBncm91cFJvdy5leHByZXNzaW9uLmZpZWxkTmFtZSwgdmFsdWU6IGdyb3VwUm93LnZhbHVlIH1dLCBoaWVyYXJjaHkpKTtcbiAgICAgICAgICAgIGNvbnN0IGV4cGFuZGVkID0gZXhwYW5kU3RhdGUgPyBleHBhbmRTdGF0ZS5leHBhbmRlZCA6IHN0YXRlLmRlZmF1bHRFeHBhbmRlZDtcbiAgICAgICAgICAgIGxldCByZWN1cnNpdmVSZXN1bHQ7XG4gICAgICAgICAgICByZXN1bHQucHVzaChncm91cFJvdyk7XG4gICAgICAgICAgICBtZXRhZGF0YS5wdXNoKG51bGwpO1xuICAgICAgICAgICAgZnVsbFJlc3VsdC5kYXRhLnB1c2goZ3JvdXBSb3cpO1xuICAgICAgICAgICAgZnVsbFJlc3VsdC5tZXRhZGF0YS5wdXNoKG51bGwpO1xuICAgICAgICAgICAgaWYgKGxldmVsIDwgZXhwcmVzc2lvbnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIHJlY3Vyc2l2ZVJlc3VsdCA9IHRoaXMuZ3JvdXBEYXRhUmVjdXJzaXZlKGdyb3VwLCBzdGF0ZSwgbGV2ZWwgKyAxLCBncm91cFJvdyxcbiAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWQgPyBtZXRhZGF0YSA6IFtdLCBncmlkLCBncm91cHNSZWNvcmRzLCBmdWxsUmVzdWx0KTtcbiAgICAgICAgICAgICAgICBpZiAoZXhwYW5kZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmNvbmNhdChyZWN1cnNpdmVSZXN1bHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBncm91cEl0ZW0gb2YgZ3JvdXApIHtcbiAgICAgICAgICAgICAgICAgICAgZnVsbFJlc3VsdC5tZXRhZGF0YS5wdXNoKGdyb3VwUm93KTtcbiAgICAgICAgICAgICAgICAgICAgZnVsbFJlc3VsdC5kYXRhLnB1c2goZ3JvdXBJdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGV4cGFuZGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLnB1c2goLi4uZnVsbFJlc3VsdC5tZXRhZGF0YS5zbGljZShmdWxsUmVzdWx0Lm1ldGFkYXRhLmxlbmd0aCAtIGdyb3VwLmxlbmd0aCkpO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCguLi5mdWxsUmVzdWx0LmRhdGEuc2xpY2UoZnVsbFJlc3VsdC5kYXRhLmxlbmd0aCAtIGdyb3VwLmxlbmd0aCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGkgKz0gZ3JvdXAubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZpZWxkVmFsdWU8VD4ob2JqOiBULCBrZXk6IHN0cmluZywgaXNEYXRlOiBib29sZWFuID0gZmFsc2UsIGlzVGltZTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgICAgIGxldCByZXNvbHZlZFZhbHVlID0gcmVzb2x2ZU5lc3RlZFBhdGgob2JqLCBrZXkpO1xuICAgICAgICBpZiAoaXNEYXRlIHx8IGlzVGltZSkge1xuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IHBhcnNlRGF0ZShyZXNvbHZlZFZhbHVlKTtcbiAgICAgICAgICAgIHJlc29sdmVkVmFsdWUgPSBpc1RpbWUgJiYgZGF0ZSA/XG4gICAgICAgICAgICAgICAgbmV3IERhdGUoKS5zZXRIb3VycyhkYXRlLmdldEhvdXJzKCksIGRhdGUuZ2V0TWludXRlcygpLCBkYXRlLmdldFNlY29uZHMoKSwgZGF0ZS5nZXRNaWxsaXNlY29uZHMoKSkgOiBkYXRlO1xuXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc29sdmVkVmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBncm91cGVkUmVjb3Jkc0J5RXhwcmVzc2lvbjxUPihcbiAgICAgICAgZGF0YTogVFtdLFxuICAgICAgICBpbmRleDogbnVtYmVyLFxuICAgICAgICBleHByZXNzaW9uOiBJR3JvdXBpbmdFeHByZXNzaW9uLFxuICAgICAgICBpc0RhdGU6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICAgICAgaXNTdHJpbmc6IGJvb2xlYW5cbiAgICApOiBUW10ge1xuICAgICAgICBjb25zdCByZXMgPSBbXTtcbiAgICAgICAgY29uc3Qga2V5ID0gZXhwcmVzc2lvbi5maWVsZE5hbWU7XG4gICAgICAgIGNvbnN0IGxlbiA9IGRhdGEubGVuZ3RoO1xuICAgICAgICBsZXQgZ3JvdXB2YWwgPSB0aGlzLmdldEZpZWxkVmFsdWUoZGF0YVtpbmRleF0sIGtleSwgaXNEYXRlKTtcbiAgICAgICAgcmVzLnB1c2goZGF0YVtpbmRleF0pO1xuICAgICAgICBpbmRleCsrO1xuICAgICAgICBjb25zdCBjb21wYXJlciA9IGV4cHJlc3Npb24uZ3JvdXBpbmdDb21wYXJlciB8fCBEZWZhdWx0U29ydGluZ1N0cmF0ZWd5Lmluc3RhbmNlKCkuY29tcGFyZVZhbHVlcztcbiAgICAgICAgZm9yIChsZXQgaSA9IGluZGV4OyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgIGxldCBmaWVsZFZhbHVlID0gdGhpcy5nZXRGaWVsZFZhbHVlKGRhdGFbaV0sIGtleSwgaXNEYXRlKTtcbiAgICAgICAgICAgIGlmIChleHByZXNzaW9uLmlnbm9yZUNhc2UgJiYgaXNTdHJpbmcpIHtcbiAgICAgICAgICAgICAgICAvLyB3aGVuIGNvbHVtbidzIGRhdGFUeXBlIGlzIHN0cmluZyBidXQgdGhlIHZhbHVlIGlzIG51bWJlclxuICAgICAgICAgICAgICAgIGZpZWxkVmFsdWUgPSBmaWVsZFZhbHVlPy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgZ3JvdXB2YWwgPSBncm91cHZhbD8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNvbXBhcmVyKGZpZWxkVmFsdWUsIGdyb3VwdmFsKSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJlcy5wdXNoKGRhdGFbaV0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgc29ydERhdGFSZWN1cnNpdmU8VD4oXG4gICAgICAgIGRhdGE6IFRbXSxcbiAgICAgICAgZXhwcmVzc2lvbnM6IElTb3J0aW5nRXhwcmVzc2lvbltdLFxuICAgICAgICBleHByZXNzaW9uSW5kZXg6IG51bWJlciA9IDAsXG4gICAgICAgIGdyaWQ6IEdyaWRUeXBlXG4gICAgKTogVFtdIHtcbiAgICAgICAgbGV0IGk6IG51bWJlcjtcbiAgICAgICAgbGV0IGo6IG51bWJlcjtcbiAgICAgICAgbGV0IGdiRGF0YTogVFtdO1xuICAgICAgICBsZXQgZ2JEYXRhTGVuOiBudW1iZXI7XG4gICAgICAgIGNvbnN0IGV4cHJzTGVuID0gZXhwcmVzc2lvbnMubGVuZ3RoO1xuICAgICAgICBjb25zdCBkYXRhTGVuID0gZGF0YS5sZW5ndGg7XG5cbiAgICAgICAgZXhwcmVzc2lvbkluZGV4ID0gZXhwcmVzc2lvbkluZGV4IHx8IDA7XG4gICAgICAgIGlmIChleHByZXNzaW9uSW5kZXggPj0gZXhwcnNMZW4gfHwgZGF0YUxlbiA8PSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBleHByID0gZXhwcmVzc2lvbnNbZXhwcmVzc2lvbkluZGV4XTtcbiAgICAgICAgaWYgKCFleHByLnN0cmF0ZWd5KSB7XG4gICAgICAgICAgICBleHByLnN0cmF0ZWd5ID0gRGVmYXVsdFNvcnRpbmdTdHJhdGVneS5pbnN0YW5jZSgpIGFzIGFueTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb2x1bW4gPSBncmlkPy5nZXRDb2x1bW5CeU5hbWUoZXhwci5maWVsZE5hbWUpO1xuICAgICAgICBjb25zdCBpc0RhdGUgPSBjb2x1bW4/LmRhdGFUeXBlID09PSBEQVRFX1RZUEUgfHwgY29sdW1uPy5kYXRhVHlwZSA9PT0gREFURV9USU1FX1RZUEU7XG4gICAgICAgIGNvbnN0IGlzVGltZSA9IGNvbHVtbj8uZGF0YVR5cGUgPT09IFRJTUVfVFlQRTtcbiAgICAgICAgY29uc3QgaXNTdHJpbmcgPSBjb2x1bW4/LmRhdGFUeXBlID09PSBTVFJJTkdfVFlQRTtcbiAgICAgICAgZGF0YSA9IGV4cHIuc3RyYXRlZ3kuc29ydChkYXRhLCBleHByLmZpZWxkTmFtZSwgZXhwci5kaXIsIGV4cHIuaWdub3JlQ2FzZSwgdGhpcy5nZXRGaWVsZFZhbHVlLCBpc0RhdGUsIGlzVGltZSk7XG4gICAgICAgIGlmIChleHByZXNzaW9uSW5kZXggPT09IGV4cHJzTGVuIC0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaW4gY2FzZSBvZiBtdWx0aXBsZSBzb3J0aW5nXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBkYXRhTGVuOyBpKyspIHtcbiAgICAgICAgICAgIGdiRGF0YSA9IHRoaXMuZ3JvdXBlZFJlY29yZHNCeUV4cHJlc3Npb24oZGF0YSwgaSwgZXhwciwgaXNEYXRlLCBpc1N0cmluZyk7XG4gICAgICAgICAgICBnYkRhdGFMZW4gPSBnYkRhdGEubGVuZ3RoO1xuICAgICAgICAgICAgaWYgKGdiRGF0YUxlbiA+IDEpIHtcbiAgICAgICAgICAgICAgICBnYkRhdGEgPSB0aGlzLnNvcnREYXRhUmVjdXJzaXZlKGdiRGF0YSwgZXhwcmVzc2lvbnMsIGV4cHJlc3Npb25JbmRleCArIDEsIGdyaWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IGdiRGF0YUxlbjsgaisrKSB7XG4gICAgICAgICAgICAgICAgZGF0YVtpICsgal0gPSBnYkRhdGFbal07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpICs9IGdiRGF0YUxlbiAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgSWd4R3JvdXBpbmcgZXh0ZW5kcyBJZ3hTb3J0aW5nIGltcGxlbWVudHMgSUdyaWRHcm91cGluZ1N0cmF0ZWd5IHtcbiAgICBwdWJsaWMgZ3JvdXBCeShkYXRhOiBhbnlbXSwgc3RhdGU6IElHcm91cGluZ1N0YXRlLCBncmlkPzogYW55LFxuICAgICAgICBncm91cHNSZWNvcmRzPzogYW55W10sIGZ1bGxSZXN1bHQ6IElHcm91cEJ5UmVzdWx0ID0geyBkYXRhOiBbXSwgbWV0YWRhdGE6IFtdIH0pOiBJR3JvdXBCeVJlc3VsdCB7XG4gICAgICAgIGNvbnN0IG1ldGFkYXRhOiBJR3JvdXBCeVJlY29yZFtdID0gW107XG4gICAgICAgIGNvbnN0IGdyb3VwaW5nID0gdGhpcy5ncm91cERhdGFSZWN1cnNpdmUoZGF0YSwgc3RhdGUsIDAsIG51bGwsIG1ldGFkYXRhLCBncmlkLCBncm91cHNSZWNvcmRzLCBmdWxsUmVzdWx0KTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRhdGE6IGdyb3VwaW5nLFxuICAgICAgICAgICAgbWV0YWRhdGFcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOb29wU29ydGluZ1N0cmF0ZWd5IGltcGxlbWVudHMgSUdyaWRTb3J0aW5nU3RyYXRlZ3kge1xuICAgIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogTm9vcFNvcnRpbmdTdHJhdGVneSA9IG51bGw7XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGluc3RhbmNlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5zdGFuY2UgfHwgKHRoaXMuX2luc3RhbmNlID0gbmV3IE5vb3BTb3J0aW5nU3RyYXRlZ3koKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNvcnQoZGF0YTogYW55W10pOiBhbnlbXSB7XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIElneERhdGFSZWNvcmRTb3J0aW5nIGV4dGVuZHMgSWd4U29ydGluZyB7XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmllbGRWYWx1ZShvYmo6IGFueSwga2V5OiBzdHJpbmcsIGlzRGF0ZTogYm9vbGVhbiA9IGZhbHNlLCBpc1RpbWU6IGJvb2xlYW4gPSBmYWxzZSk6IGFueSB7XG4gICAgICAgIHJldHVybiBzdXBlci5nZXRGaWVsZFZhbHVlKG9iai5kYXRhLCBrZXksIGlzRGF0ZSwgaXNUaW1lKTtcbiAgICB9XG59XG4iXX0=
@@ -1894,6 +1894,7 @@ DefaultSortingStrategy._instance = null;
1894
1894
  const DATE_TYPE = 'date';
1895
1895
  const TIME_TYPE = 'time';
1896
1896
  const DATE_TIME_TYPE = 'dateTime';
1897
+ const STRING_TYPE = 'string';
1897
1898
  class IgxSorting {
1898
1899
  sort(data, expressions, grid) {
1899
1900
  return this.sortDataRecursive(data, expressions, 0, grid);
@@ -1907,7 +1908,8 @@ class IgxSorting {
1907
1908
  const column = grid ? grid.getColumnByName(expressions[level].fieldName) : null;
1908
1909
  const isDate = (column === null || column === void 0 ? void 0 : column.dataType) === DATE_TYPE || (column === null || column === void 0 ? void 0 : column.dataType) === DATE_TIME_TYPE;
1909
1910
  const isTime = (column === null || column === void 0 ? void 0 : column.dataType) === TIME_TYPE;
1910
- const group = this.groupedRecordsByExpression(data, i, expressions[level], isDate);
1911
+ const isString = (column === null || column === void 0 ? void 0 : column.dataType) === STRING_TYPE;
1912
+ const group = this.groupedRecordsByExpression(data, i, expressions[level], isDate, isString);
1911
1913
  const groupRow = {
1912
1914
  expression: expressions[level],
1913
1915
  level,
@@ -1961,16 +1963,22 @@ class IgxSorting {
1961
1963
  }
1962
1964
  return resolvedValue;
1963
1965
  }
1964
- groupedRecordsByExpression(data, index, expression, isDate = false) {
1966
+ groupedRecordsByExpression(data, index, expression, isDate = false, isString) {
1965
1967
  const res = [];
1966
1968
  const key = expression.fieldName;
1967
1969
  const len = data.length;
1968
- const groupval = this.getFieldValue(data[index], key, isDate);
1970
+ let groupval = this.getFieldValue(data[index], key, isDate);
1969
1971
  res.push(data[index]);
1970
1972
  index++;
1971
1973
  const comparer = expression.groupingComparer || DefaultSortingStrategy.instance().compareValues;
1972
1974
  for (let i = index; i < len; i++) {
1973
- if (comparer(this.getFieldValue(data[i], key, isDate), groupval) === 0) {
1975
+ let fieldValue = this.getFieldValue(data[i], key, isDate);
1976
+ if (expression.ignoreCase && isString) {
1977
+ // when column's dataType is string but the value is number
1978
+ fieldValue = fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.toString().toLowerCase();
1979
+ groupval = groupval === null || groupval === void 0 ? void 0 : groupval.toString().toLowerCase();
1980
+ }
1981
+ if (comparer(fieldValue, groupval) === 0) {
1974
1982
  res.push(data[i]);
1975
1983
  }
1976
1984
  else {
@@ -1997,13 +2005,14 @@ class IgxSorting {
1997
2005
  const column = grid === null || grid === void 0 ? void 0 : grid.getColumnByName(expr.fieldName);
1998
2006
  const isDate = (column === null || column === void 0 ? void 0 : column.dataType) === DATE_TYPE || (column === null || column === void 0 ? void 0 : column.dataType) === DATE_TIME_TYPE;
1999
2007
  const isTime = (column === null || column === void 0 ? void 0 : column.dataType) === TIME_TYPE;
2008
+ const isString = (column === null || column === void 0 ? void 0 : column.dataType) === STRING_TYPE;
2000
2009
  data = expr.strategy.sort(data, expr.fieldName, expr.dir, expr.ignoreCase, this.getFieldValue, isDate, isTime);
2001
2010
  if (expressionIndex === exprsLen - 1) {
2002
2011
  return data;
2003
2012
  }
2004
2013
  // in case of multiple sorting
2005
2014
  for (i = 0; i < dataLen; i++) {
2006
- gbData = this.groupedRecordsByExpression(data, i, expr, isDate);
2015
+ gbData = this.groupedRecordsByExpression(data, i, expr, isDate, isString);
2007
2016
  gbDataLen = gbData.length;
2008
2017
  if (gbDataLen > 1) {
2009
2018
  gbData = this.sortDataRecursive(gbData, expressions, expressionIndex + 1, grid);