@annalib/anna-core 30.3.3 → 30.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (20) hide show
  1. package/esm2022/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.mjs +5 -5
  2. package/esm2022/lib/anna-core-shared-lib/constants/shared.constant.mjs +2 -1
  3. package/esm2022/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.mjs +2 -1
  4. package/esm2022/lib/anna-core-shared-lib/services/anna-filter.service.mjs +8 -3
  5. package/esm2022/lib/anna-core-shared-lib/services/anna-global-config.service.mjs +16 -57
  6. package/esm2022/lib/anna-core-shared-lib/services/anna-sort.service.mjs +2 -1
  7. package/esm2022/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.mjs +4 -4
  8. package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-checkbox-filter/anna-column-checkbox-filter.component.mjs +3 -3
  9. package/esm2022/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.mjs +56 -25
  10. package/esm2022/lib/anna-generic-table-lib/services/gt-table-related-common-functions.service.mjs +4 -2
  11. package/fesm2022/annalib-anna-core.mjs +92 -92
  12. package/fesm2022/annalib-anna-core.mjs.map +1 -1
  13. package/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.d.ts +1 -1
  14. package/lib/anna-core-shared-lib/constants/shared.constant.d.ts +1 -0
  15. package/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.d.ts +3 -2
  16. package/lib/anna-core-shared-lib/services/anna-global-config.service.d.ts +3 -7
  17. package/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.d.ts +2 -2
  18. package/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.d.ts +1 -1
  19. package/lib/anna-generic-table-lib/services/gt-table-related-common-functions.service.d.ts +1 -1
  20. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import { Injectable } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  export class GTTableRelatedCommonFunctionsService {
4
- static GetRoundedValueWithUnitsWithMathRound(inputValue, digitsToRoundDecimalPoint = 2) {
4
+ static GetDollarRoundedValue(inputValue, digitsToRoundDecimalPoint = 2) {
5
5
  const dollarSign = inputValue < 0 ? "-$" : "$";
6
6
  const valueUnitArr = this.GetValueInUnits(Math.abs(inputValue));
7
7
  let value = valueUnitArr[0];
@@ -65,6 +65,8 @@ export class GTTableRelatedCommonFunctionsService {
65
65
  return result.join(", ");
66
66
  }
67
67
  static convertToCommaSeperatedString(arrList) {
68
+ if (!arrList || !arrList?.length)
69
+ return null;
68
70
  let nameList = "";
69
71
  for (let i = 0; i < arrList.length; i++) {
70
72
  if (i !== arrList.length - 1) {
@@ -85,4 +87,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
85
87
  providedIn: "root",
86
88
  }]
87
89
  }] });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3QtdGFibGUtcmVsYXRlZC1jb21tb24tZnVuY3Rpb25zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWdlbmVyaWMtdGFibGUtbGliL3NlcnZpY2VzL2d0LXRhYmxlLXJlbGF0ZWQtY29tbW9uLWZ1bmN0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxvQ0FBb0M7SUFDN0MsTUFBTSxDQUFDLHFDQUFxQyxDQUFDLFVBQWtCLEVBQUUseUJBQXlCLEdBQUcsQ0FBQztRQUMxRixNQUFNLFVBQVUsR0FBRyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUMvQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUNoRSxJQUFJLEtBQUssR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsSUFBSSx5QkFBeUIsQ0FBQyxHQUFHLEVBQUUsSUFBSSx5QkFBeUIsQ0FBQztRQUMvRixPQUFPLFVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBQ2hELENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLFVBQWtCO1FBQzVDLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNkLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQztRQUN0QixNQUFNLE9BQU8sR0FBRyxPQUFP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QUMsT0FBYztRQUMvQyxJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLEtBQUssT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQzFCLFFBQVEsR0FBRyxHQUFHLFFBQVEsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQzthQUM5QztpQkFBTTtnQkFDSCxRQUFRLEdBQUcsR0FBRyxRQUFRLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7YUFDN0M7U0FDSjtRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7K0dBOUVRLG9DQUFvQzttSEFBcEMsb0NBQW9DLGNBRmpDLE1BQU07OzRGQUVULG9DQUFvQztrQkFIaEQsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgR1RUYWJsZVJlbGF0ZWRDb21tb25GdW5jdGlvbnNTZXJ2aWNlIHtcclxuICAgIHN0YXRpYyBHZXRSb3VuZGVkVmFsdWVXaXRoVW5pdHNXaXRoTWF0aFJvdW5kKGlucHV0VmFsdWU6IG51bWJlciwgZGlnaXRzVG9Sb3VuZERlY2ltYWxQb2ludCA9IDIpIHtcclxuICAgICAgICBjb25zdCBkb2xsYXJTaWduID0gaW5wdXRWYWx1ZSA8IDAgPyBcIi0kXCIgOiBcIiRcIjtcclxuICAgICAgICBjb25zdCB2YWx1ZVVuaXRBcnIgPSB0aGlzLkdldFZhbHVlSW5Vbml0cyhNYXRoLmFicyhpbnB1dFZhbHVlKSk7XHJcbiAgICAgICAgbGV0IHZhbHVlID0gdmFsdWVVbml0QXJyWzBdO1xyXG4gICAgICAgIGNvbnN0IHVuaXQgPSB2YWx1ZVVuaXRBcnJbMV07XHJcbiAgICAgICAgdmFsdWUgPSBNYXRoLnJvdW5kKCt2YWx1ZSAqIDEwICoqIGRpZ2l0c1RvUm91bmREZWNpbWFsUG9pbnQpIC8gMTAgKiogZGlnaXRzVG9Sb3VuZERlY2ltYWxQb2ludDtcclxuICAgICAgICByZXR1cm4gZG9sbGFyU2lnbiArIHZhbHVlLnRvU3RyaW5nKCkgKyB1bml0O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0VmFsdWVJblVuaXRzKGlucHV0VmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIGxldCB1bml0ID0gXCJcIjtcclxuICAgICAgICBjb25zdCB0aG91c2FuZCA9IDEwMDA7XHJcbiAgICAgICAgY29uc3QgbWlsbGlvbiA9IDEwMDAwMDA7XHJcbiAgICAgICAgY29uc3QgYmlsbGlvbiA9IDEwMDAwMDAwMDA7XHJcblxyXG4gICAgICAgIGxldCB1cGRhdGVkSW5wdXRWYWx1ZSA9IGlucHV0VmFsdWU7XHJcbiAgICAgICAgaWYgKGlucHV0VmFsdWUgPj0gdGhvdXNhbmQgJiYgaW5wdXRWYWx1ZSA8IG1pbGxpb24pIHtcclxuICAgICAgICAgICAgdXBkYXRlZElucHV0VmFsdWUgPSBpbnB1dFZhbHVlIC8gdGhvdXNhbmQ7XHJcbiAgICAgICAgICAgIHVuaXQgPSBcIktcIjtcclxuICAgICAgICB9IGVsc2UgaWYgKGlucHV0VmFsdWUgPj0gbWlsbGlvbiAmJiBpbnB1dFZhbHVlIDwgYmlsbGlvbikge1xyXG4gICAgICAgICAgICB1cGRhdGVkSW5wdXRWYWx1ZSA9IGlucHV0VmFsdWUgLyBtaWxsaW9uO1xyXG4gICAgICAgICAgICB1bml0ID0gXCJNXCI7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpbnB1dFZhbHVlID49IGJpbGxpb24pIHtcclxuICAgICAgICAgICAgdXBkYXRlZElucHV0VmFsdWUgPSBpbnB1dFZhbHVlIC8gYmlsbGlvbjtcclxuICAgICAgICAgICAgdW5pdCA9IFwiQlwiO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIFt1cGRhdGVkSW5wdXRWYWx1ZSwgdW5pdF07XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHJldHVyblRvb2x0aXBzQXNIdG1sTGlUYWdMaXN0KHN2Z09ySWNvblRvb2x0aXBNc2dzOiBzdHJpbmdbXSk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKCFzdmdPckljb25Ub29sdGlwTXNncyB8fCAhc3ZnT3JJY29uVG9vbHRpcE1zZ3M/Lmxlbmd0aCkgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgaWYgKHN2Z09ySWNvblRvb2x0aXBNc2dzLmxlbmd0aCA9PT0gMSkgcmV0dXJuIHN2Z09ySWNvblRvb2x0aXBNc2dzWzBdO1xyXG5cclxuICAgICAgICBsZXQgbGlzdEl0ZW1zOiBzdHJpbmcgPSBgPHVsPmA7XHJcbiAgICAgICAgc3ZnT3JJY29uVG9vbHRpcE1zZ3MuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICBsaXN0SXRlbXMgKz0gYDxsaT4ke2l0ZW19PC9saT5gO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGxpc3RJdGVtcyArPSBgPC91bD5gO1xyXG4gICAgICAgIHJldHVybiBsaXN0SXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZ2VuZXJpYyBmdW5jdGlvbiB0byBmb3JtYXQgYW4gYXJyYXkgb2YgbnVtYmVycyBhcyByYW5nZXNcclxuICAgIC8vICBpbnB1dCBbMSwyLDMsNCw5XSA9PiBvdXRwdXQgWzEtNCwgOV1cclxuICAgIHN0YXRpYyBmb3JtYXRBcnJheUFzUmFuZ2VzV2l0aEh5cGhlblZhbHVlKGFycjogbnVtYmVyW10pOiBzdHJpbmcge1xyXG4gICAgICAgIGlmIChhcnIubGVuZ3RoID09PSAwKSByZXR1cm4gXCItXCI7XHJcblxyXG4gICAgICAgIGFyci5zb3J0KChhLCBiKSA9PiBhIC0gYik7IC8vIEVuc3VyZSB0aGUgYXJyYXkgaXMgc29ydGVkXHJcbiAgICAgICAgY29uc3QgcmVzdWx0OiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgIGxldCBzdGFydCA9IGFyclswXTtcclxuICAgICAgICBsZXQgZW5kID0gYXJyWzBdO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoYXJyW2ldID09PSBlbmQgKyAxKSB7XHJcbiAgICAgICAgICAgICAgICBlbmQgPSBhcnJbaV07IC8vIEV4dGVuZCB0aGUgcmFuZ2VcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHN0YXJ0ID09PSBlbmQgPyBgJHtzdGFydH1gIDogYCR7c3RhcnR9LSR7ZW5kfWApO1xyXG4gICAgICAgICAgICAgICAgc3RhcnQgPSBhcnJbaV07XHJcbiAgICAgICAgICAgICAgICBlbmQgPSBhcnJbaV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gUHVzaCB0aGUgbGFzdCByYW5nZVxyXG4gICAgICAgIHJlc3VsdC5wdXNoKHN0YXJ0ID09PSBlbmQgPyBgJHtzdGFydH1gIDogYCR7c3RhcnR9LSR7ZW5kfWApO1xyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0LmpvaW4oXCIsIFwiKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgY29udmVydFRvQ29tbWFTZXBlcmF0ZWRTdHJpbmcoYXJyTGlzdDogYW55W10pOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCBuYW1lTGlzdCA9IFwiXCI7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChpICE9PSBhcnJMaXN0Lmxlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgICAgIG5hbWVMaXN0ID0gYCR7bmFtZUxpc3R9IOKAmCR7YXJyTGlzdFtpXX3igJksIGA7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBuYW1lTGlzdCA9IGAke25hbWVMaXN0fSDigJgke2Fyckxpc3RbaV194oCZIGA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5hbWVMaXN0O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3QtdGFibGUtcmVsYXRlZC1jb21tb24tZnVuY3Rpb25zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWdlbmVyaWMtdGFibGUtbGliL3NlcnZpY2VzL2d0LXRhYmxlLXJlbGF0ZWQtY29tbW9uLWZ1bmN0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxvQ0FBb0M7SUFDN0MsTUFBTSxDQUFDLHFCQUFxQixDQUFDLFVBQWtCLEVBQUUseUJBQXlCLEdBQUcsQ0FBQztRQUMxRSxNQUFNLFVBQVUsR0FBRyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUMvQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUNoRSxJQUFJLEtBQUssR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsSUFBSSx5QkFBeUIsQ0FBQyxHQUFHLEVBQUUsSUFBSSx5QkFBeUIsQ0FBQztRQUMvRixPQUFPLFVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBQ2hELENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLFVBQWtCO1FBQzVDLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNkLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQztRQUN0QixNQUFNLE9BQU8sR0FBRyxPQUFP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QUMsT0FBYztRQUMvQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQztRQUM5QyxJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLEtBQUssT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQzFCLFFBQVEsR0FBRyxHQUFHLFFBQVEsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQzthQUM5QztpQkFBTTtnQkFDSCxRQUFRLEdBQUcsR0FBRyxRQUFRLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7YUFDN0M7U0FDSjtRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7K0dBL0VRLG9DQUFvQzttSEFBcEMsb0NBQW9DLGNBRmpDLE1BQU07OzRGQUVULG9DQUFvQztrQkFIaEQsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgR1RUYWJsZVJlbGF0ZWRDb21tb25GdW5jdGlvbnNTZXJ2aWNlIHtcclxuICAgIHN0YXRpYyBHZXREb2xsYXJSb3VuZGVkVmFsdWUoaW5wdXRWYWx1ZTogbnVtYmVyLCBkaWdpdHNUb1JvdW5kRGVjaW1hbFBvaW50ID0gMikge1xyXG4gICAgICAgIGNvbnN0IGRvbGxhclNpZ24gPSBpbnB1dFZhbHVlIDwgMCA/IFwiLSRcIiA6IFwiJFwiO1xyXG4gICAgICAgIGNvbnN0IHZhbHVlVW5pdEFyciA9IHRoaXMuR2V0VmFsdWVJblVuaXRzKE1hdGguYWJzKGlucHV0VmFsdWUpKTtcclxuICAgICAgICBsZXQgdmFsdWUgPSB2YWx1ZVVuaXRBcnJbMF07XHJcbiAgICAgICAgY29uc3QgdW5pdCA9IHZhbHVlVW5pdEFyclsxXTtcclxuICAgICAgICB2YWx1ZSA9IE1hdGgucm91bmQoK3ZhbHVlICogMTAgKiogZGlnaXRzVG9Sb3VuZERlY2ltYWxQb2ludCkgLyAxMCAqKiBkaWdpdHNUb1JvdW5kRGVjaW1hbFBvaW50O1xyXG4gICAgICAgIHJldHVybiBkb2xsYXJTaWduICsgdmFsdWUudG9TdHJpbmcoKSArIHVuaXQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBHZXRWYWx1ZUluVW5pdHMoaW5wdXRWYWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgbGV0IHVuaXQgPSBcIlwiO1xyXG4gICAgICAgIGNvbnN0IHRob3VzYW5kID0gMTAwMDtcclxuICAgICAgICBjb25zdCBtaWxsaW9uID0gMTAwMDAwMDtcclxuICAgICAgICBjb25zdCBiaWxsaW9uID0gMTAwMDAwMDAwMDtcclxuXHJcbiAgICAgICAgbGV0IHVwZGF0ZWRJbnB1dFZhbHVlID0gaW5wdXRWYWx1ZTtcclxuICAgICAgICBpZiAoaW5wdXRWYWx1ZSA+PSB0aG91c2FuZCAmJiBpbnB1dFZhbHVlIDwgbWlsbGlvbikge1xyXG4gICAgICAgICAgICB1cGRhdGVkSW5wdXRWYWx1ZSA9IGlucHV0VmFsdWUgLyB0aG91c2FuZDtcclxuICAgICAgICAgICAgdW5pdCA9IFwiS1wiO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaW5wdXRWYWx1ZSA+PSBtaWxsaW9uICYmIGlucHV0VmFsdWUgPCBiaWxsaW9uKSB7XHJcbiAgICAgICAgICAgIHVwZGF0ZWRJbnB1dFZhbHVlID0gaW5wdXRWYWx1ZSAvIG1pbGxpb247XHJcbiAgICAgICAgICAgIHVuaXQgPSBcIk1cIjtcclxuICAgICAgICB9IGVsc2UgaWYgKGlucHV0VmFsdWUgPj0gYmlsbGlvbikge1xyXG4gICAgICAgICAgICB1cGRhdGVkSW5wdXRWYWx1ZSA9IGlucHV0VmFsdWUgLyBiaWxsaW9uO1xyXG4gICAgICAgICAgICB1bml0ID0gXCJCXCI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gW3VwZGF0ZWRJbnB1dFZhbHVlLCB1bml0XTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgcmV0dXJuVG9vbHRpcHNBc0h0bWxMaVRhZ0xpc3Qoc3ZnT3JJY29uVG9vbHRpcE1zZ3M6IHN0cmluZ1tdKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIXN2Z09ySWNvblRvb2x0aXBNc2dzIHx8ICFzdmdPckljb25Ub29sdGlwTXNncz8ubGVuZ3RoKSByZXR1cm4gbnVsbDtcclxuICAgICAgICBpZiAoc3ZnT3JJY29uVG9vbHRpcE1zZ3MubGVuZ3RoID09PSAxKSByZXR1cm4gc3ZnT3JJY29uVG9vbHRpcE1zZ3NbMF07XHJcblxyXG4gICAgICAgIGxldCBsaXN0SXRlbXM6IHN0cmluZyA9IGA8dWw+YDtcclxuICAgICAgICBzdmdPckljb25Ub29sdGlwTXNncy5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIGxpc3RJdGVtcyArPSBgPGxpPiR7aXRlbX08L2xpPmA7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbGlzdEl0ZW1zICs9IGA8L3VsPmA7XHJcbiAgICAgICAgcmV0dXJuIGxpc3RJdGVtcztcclxuICAgIH1cclxuXHJcbiAgICAvLyBnZW5lcmljIGZ1bmN0aW9uIHRvIGZvcm1hdCBhbiBhcnJheSBvZiBudW1iZXJzIGFzIHJhbmdlc1xyXG4gICAgLy8gIGlucHV0IFsxLDIsMyw0LDldID0+IG91dHB1dCBbMS00LCA5XVxyXG4gICAgc3RhdGljIGZvcm1hdEFycmF5QXNSYW5nZXNXaXRoSHlwaGVuVmFsdWUoYXJyOiBudW1iZXJbXSk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKGFyci5sZW5ndGggPT09IDApIHJldHVybiBcIi1cIjtcclxuXHJcbiAgICAgICAgYXJyLnNvcnQoKGEsIGIpID0+IGEgLSBiKTsgLy8gRW5zdXJlIHRoZSBhcnJheSBpcyBzb3J0ZWRcclxuICAgICAgICBjb25zdCByZXN1bHQ6IHN0cmluZ1tdID0gW107XHJcbiAgICAgICAgbGV0IHN0YXJ0ID0gYXJyWzBdO1xyXG4gICAgICAgIGxldCBlbmQgPSBhcnJbMF07XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChhcnJbaV0gPT09IGVuZCArIDEpIHtcclxuICAgICAgICAgICAgICAgIGVuZCA9IGFycltpXTsgLy8gRXh0ZW5kIHRoZSByYW5nZVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goc3RhcnQgPT09IGVuZCA/IGAke3N0YXJ0fWAgOiBgJHtzdGFydH0tJHtlbmR9YCk7XHJcbiAgICAgICAgICAgICAgICBzdGFydCA9IGFycltpXTtcclxuICAgICAgICAgICAgICAgIGVuZCA9IGFycltpXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBQdXNoIHRoZSBsYXN0IHJhbmdlXHJcbiAgICAgICAgcmVzdWx0LnB1c2goc3RhcnQgPT09IGVuZCA/IGAke3N0YXJ0fWAgOiBgJHtzdGFydH0tJHtlbmR9YCk7XHJcblxyXG4gICAgICAgIHJldHVybiByZXN1bHQuam9pbihcIiwgXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBjb252ZXJ0VG9Db21tYVNlcGVyYXRlZFN0cmluZyhhcnJMaXN0OiBhbnlbXSk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKCFhcnJMaXN0IHx8ICFhcnJMaXN0Py5sZW5ndGgpIHJldHVybiBudWxsO1xyXG4gICAgICAgIGxldCBuYW1lTGlzdCA9IFwiXCI7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChpICE9PSBhcnJMaXN0Lmxlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgICAgIG5hbWVMaXN0ID0gYCR7bmFtZUxpc3R9IOKAmCR7YXJyTGlzdFtpXX3igJksIGA7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBuYW1lTGlzdCA9IGAke25hbWVMaXN0fSDigJgke2Fyckxpc3RbaV194oCZIGA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5hbWVMaXN0O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==