@ai-table/grid 0.0.44 → 0.0.45

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 (72) hide show
  1. package/components/cell-editors/date/date-editor.component.d.ts +1 -0
  2. package/components/cell-editors/date/date-editor.component.d.ts.map +1 -1
  3. package/components/cell-editors/link/edit-link/edit-link.component.d.ts +13 -3
  4. package/components/cell-editors/link/edit-link/edit-link.component.d.ts.map +1 -1
  5. package/components/cell-editors/link/link-editor.component.d.ts +1 -0
  6. package/components/cell-editors/link/link-editor.component.d.ts.map +1 -1
  7. package/components/drag/drag.component.d.ts +10 -1
  8. package/components/drag/drag.component.d.ts.map +1 -1
  9. package/components/drag/drag.component.scss +1 -1
  10. package/components/field-setting/field-setting.component.d.ts +17 -3
  11. package/components/field-setting/field-setting.component.d.ts.map +1 -1
  12. package/core/constants/field.d.ts +2 -2
  13. package/core/constants/field.d.ts.map +1 -1
  14. package/core/types/ai-table.d.ts +2 -0
  15. package/core/types/ai-table.d.ts.map +1 -1
  16. package/core/types/core.d.ts +4 -4
  17. package/core/types/core.d.ts.map +1 -1
  18. package/core/utils/common.d.ts +1 -0
  19. package/core/utils/common.d.ts.map +1 -1
  20. package/core/utils/field.d.ts +1 -1
  21. package/core/utils/field.d.ts.map +1 -1
  22. package/core/utils/{shoft-id.d.ts → short-id.d.ts} +1 -1
  23. package/core/utils/{shoft-id.d.ts.map → short-id.d.ts.map} +1 -1
  24. package/esm2022/components/cell-editors/date/date-editor.component.mjs +9 -3
  25. package/esm2022/components/cell-editors/link/edit-link/edit-link.component.mjs +27 -12
  26. package/esm2022/components/cell-editors/link/link-editor.component.mjs +12 -8
  27. package/esm2022/components/drag/drag.component.mjs +107 -79
  28. package/esm2022/components/field-setting/field-setting.component.mjs +28 -14
  29. package/esm2022/core/constants/field.mjs +95 -95
  30. package/esm2022/core/types/ai-table.mjs +1 -1
  31. package/esm2022/core/types/core.mjs +1 -2
  32. package/esm2022/core/utils/common.mjs +13 -1
  33. package/esm2022/core/utils/field.mjs +13 -8
  34. package/esm2022/core/utils/id-creator.mjs +2 -2
  35. package/esm2022/core/utils/{shoft-id.mjs → short-id.mjs} +1 -1
  36. package/esm2022/grid-base.component.mjs +12 -4
  37. package/esm2022/grid.component.mjs +17 -8
  38. package/esm2022/renderer/components/cells/link.component.mjs +2 -2
  39. package/esm2022/renderer/creations/create-active-cell-border.mjs +1 -2
  40. package/esm2022/renderer/creations/create-heads.mjs +3 -2
  41. package/esm2022/types/grid.mjs +1 -1
  42. package/esm2022/utils/build.mjs +5 -4
  43. package/esm2022/utils/cell.mjs +3 -3
  44. package/esm2022/utils/clipboard/paste.mjs +4 -3
  45. package/esm2022/utils/i18n.mjs +85 -0
  46. package/esm2022/utils/index.mjs +2 -1
  47. package/esm2022/utils/position.mjs +3 -3
  48. package/esm2022/utils/visible-range.mjs +3 -3
  49. package/fesm2022/ai-table-grid.mjs +445 -263
  50. package/fesm2022/ai-table-grid.mjs.map +1 -1
  51. package/grid-base.component.d.ts +4 -2
  52. package/grid-base.component.d.ts.map +1 -1
  53. package/grid.component.d.ts.map +1 -1
  54. package/package.json +1 -1
  55. package/renderer/creations/create-active-cell-border.d.ts.map +1 -1
  56. package/renderer/creations/create-heads.d.ts.map +1 -1
  57. package/types/grid.d.ts +1 -1
  58. package/types/grid.d.ts.map +1 -1
  59. package/utils/build.d.ts +2 -2
  60. package/utils/build.d.ts.map +1 -1
  61. package/utils/cell.d.ts +1 -1
  62. package/utils/cell.d.ts.map +1 -1
  63. package/utils/clipboard/paste.d.ts +2 -2
  64. package/utils/clipboard/paste.d.ts.map +1 -1
  65. package/utils/i18n.d.ts +39 -0
  66. package/utils/i18n.d.ts.map +1 -0
  67. package/utils/index.d.ts +1 -0
  68. package/utils/index.d.ts.map +1 -1
  69. package/utils/position.d.ts +2 -2
  70. package/utils/position.d.ts.map +1 -1
  71. package/utils/visible-range.d.ts +2 -2
  72. package/utils/visible-range.d.ts.map +1 -1
@@ -1,5 +1,6 @@
1
- import { FieldOptions, AI_TABLE_FIELD_MIDDLE_WIDTH } from '../constants/field';
1
+ import { AI_TABLE_FIELD_MIDDLE_WIDTH, getFieldOptions } from '../constants/field';
2
2
  import { AITableFieldType } from '../types';
3
+ import { generateNewName } from './common';
3
4
  import { idCreator } from './id-creator';
4
5
  export const isArrayField = (field) => {
5
6
  return [
@@ -26,17 +27,20 @@ export function getDefaultFieldValue(field) {
26
27
  return '';
27
28
  }
28
29
  export function createDefaultFieldName(aiTable, field) {
29
- const fieldOption = getFieldOptionByField(field);
30
+ const fieldOption = getFieldOptionByField(aiTable, field);
30
31
  if (fieldOption) {
32
+ const allNames = aiTable.fields().map((item) => item.name);
31
33
  const count = aiTable.fields().filter((item) => {
32
34
  return isSameFieldOption(field, item);
33
35
  }).length;
34
- return count === 0 ? fieldOption.name : fieldOption.name + ' ' + count;
36
+ return generateNewName(allNames, count, fieldOption.name);
35
37
  }
36
- return FieldOptions[0].name;
38
+ const fieldOptions = getFieldOptions(aiTable);
39
+ return fieldOptions[0].name;
37
40
  }
38
- export function getFieldOptionByField(field) {
39
- let fieldOption = FieldOptions.find((item) => isSameFieldOption(item, field));
41
+ export function getFieldOptionByField(aiTable, field) {
42
+ const fieldOptions = getFieldOptions(aiTable);
43
+ let fieldOption = fieldOptions.find((item) => isSameFieldOption(item, field));
40
44
  if (fieldOption && field.type === AITableFieldType.member && field.settings?.is_multiple) {
41
45
  fieldOption.width = AI_TABLE_FIELD_MIDDLE_WIDTH;
42
46
  }
@@ -49,7 +53,8 @@ export function isSameFieldOption(fieldOption, field) {
49
53
  : true));
50
54
  }
51
55
  export function createDefaultField(aiTable, type = AITableFieldType.text) {
52
- const fieldOption = FieldOptions.find((item) => item.type === type);
56
+ const fieldOptions = getFieldOptions(aiTable);
57
+ const fieldOption = fieldOptions.find((item) => item.type === type);
53
58
  return { _id: idCreator(), type, name: createDefaultFieldName(aiTable, fieldOption) };
54
59
  }
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb3JlL3V0aWxzL2ZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRSxPQUFPLEVBQTZDLGdCQUFnQixFQUE4QixNQUFNLFVBQVUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLEtBQW1CLEVBQUUsRUFBRTtJQUNoRCxPQUFPO1FBQ0gsZ0JBQWdCLENBQUMsTUFBTTtRQUN2QixnQkFBZ0IsQ0FBQyxTQUFTO1FBQzFCLGdCQUFnQixDQUFDLFNBQVM7UUFDMUIsZ0JBQWdCLENBQUMsTUFBTTtRQUN2QixnQkFBZ0IsQ0FBQyxVQUFVO0tBQzlCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMzQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFtQixFQUFFLEVBQUU7SUFDakQsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FDNUgsS0FBSyxDQUFDLElBQUksQ0FDYixDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBbUIsRUFBRSxFQUFFO0lBQ2pELE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDNUcsQ0FBQyxDQUFDO0FBRUYsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEtBQW1CO0lBQ3BELElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdEIsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBQ0QsSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLE9BQWdCLEVBQUUsS0FBeUI7SUFDOUUsTUFBTSxXQUFXLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakQsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNkLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMzQyxPQUFPLGlCQUFpQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDVixPQUFPLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQztJQUMzRSxDQUFDO0lBQ0QsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ2hDLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsS0FBNEI7SUFDOUQsSUFBSSxXQUFXLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDOUUsSUFBSSxXQUFXLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyxNQUFNLElBQUssS0FBSyxDQUFDLFFBQTJCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDM0csV0FBVyxDQUFDLEtBQUssR0FBRywyQkFBMkIsQ0FBQztJQUNwRCxDQUFDO0lBQ0QsT0FBTyxXQUFXLENBQUM7QUFDdkIsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxXQUErQixFQUFFLEtBQTRCO0lBQzNGLE9BQU8sQ0FDSCxXQUFXLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJO1FBQy9CLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyxNQUFNO1lBQ3pDLENBQUMsQ0FBQyxDQUFDLENBQUUsV0FBVyxDQUFDLFFBQXVCLEVBQUUsV0FBVyxLQUFLLENBQUMsQ0FBRSxLQUFLLENBQUMsUUFBdUIsRUFBRSxXQUFXO1lBQ3ZHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FDZCxDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxPQUFnQixFQUFFLE9BQXlCLGdCQUFnQixDQUFDLElBQUk7SUFDL0YsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUUsQ0FBQztJQUNyRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsc0JBQXNCLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUM7QUFDMUYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkT3B0aW9ucywgQUlfVEFCTEVfRklFTERfTUlERExFX1dJRFRIIH0gZnJvbSAnLi4vY29uc3RhbnRzL2ZpZWxkJztcbmltcG9ydCB7IEFJVGFibGUsIEFJVGFibGVGaWVsZCwgQUlUYWJsZUZpZWxkT3B0aW9uLCBBSVRhYmxlRmllbGRUeXBlLCBJc011bHRpcGxlLCBNZW1iZXJTZXR0aW5ncyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGlkQ3JlYXRvciB9IGZyb20gJy4vaWQtY3JlYXRvcic7XG5cbmV4cG9ydCBjb25zdCBpc0FycmF5RmllbGQgPSAoZmllbGQ6IEFJVGFibGVGaWVsZCkgPT4ge1xuICAgIHJldHVybiBbXG4gICAgICAgIEFJVGFibGVGaWVsZFR5cGUubWVtYmVyLFxuICAgICAgICBBSVRhYmxlRmllbGRUeXBlLmNyZWF0ZWRCeSxcbiAgICAgICAgQUlUYWJsZUZpZWxkVHlwZS51cGRhdGVkQnksXG4gICAgICAgIEFJVGFibGVGaWVsZFR5cGUuc2VsZWN0LFxuICAgICAgICBBSVRhYmxlRmllbGRUeXBlLmF0dGFjaG1lbnRcbiAgICBdLmluY2x1ZGVzKGZpZWxkLnR5cGUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzU3lzdGVtRmllbGQgPSAoZmllbGQ6IEFJVGFibGVGaWVsZCkgPT4ge1xuICAgIHJldHVybiBbQUlUYWJsZUZpZWxkVHlwZS5jcmVhdGVkQXQsIEFJVGFibGVGaWVsZFR5cGUuY3JlYXRlZEJ5LCBBSVRhYmxlRmllbGRUeXBlLnVwZGF0ZWRBdCwgQUlUYWJsZUZpZWxkVHlwZS51cGRhdGVkQnldLmluY2x1ZGVzKFxuICAgICAgICBmaWVsZC50eXBlXG4gICAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc051bWJlckZpbGVkID0gKGZpZWxkOiBBSVRhYmxlRmllbGQpID0+IHtcbiAgICByZXR1cm4gW0FJVGFibGVGaWVsZFR5cGUubnVtYmVyLCBBSVRhYmxlRmllbGRUeXBlLnByb2dyZXNzLCBBSVRhYmxlRmllbGRUeXBlLnJhdGVdLmluY2x1ZGVzKGZpZWxkLnR5cGUpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRGaWVsZFZhbHVlKGZpZWxkOiBBSVRhYmxlRmllbGQpIHtcbiAgICBpZiAoaXNBcnJheUZpZWxkKGZpZWxkKSkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGlmIChpc051bWJlckZpbGVkKGZpZWxkKSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGVmYXVsdEZpZWxkTmFtZShhaVRhYmxlOiBBSVRhYmxlLCBmaWVsZDogQUlUYWJsZUZpZWxkT3B0aW9uKSB7XG4gICAgY29uc3QgZmllbGRPcHRpb24gPSBnZXRGaWVsZE9wdGlvbkJ5RmllbGQoZmllbGQpO1xuICAgIGlmIChmaWVsZE9wdGlvbikge1xuICAgICAgICBjb25zdCBjb3VudCA9IGFpVGFibGUuZmllbGRzKCkuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaXNTYW1lRmllbGRPcHRpb24oZmllbGQsIGl0ZW0pO1xuICAgICAgICB9KS5sZW5ndGg7XG4gICAgICAgIHJldHVybiBjb3VudCA9PT0gMCA/IGZpZWxkT3B0aW9uLm5hbWUgOiBmaWVsZE9wdGlvbi5uYW1lICsgJyAnICsgY291bnQ7XG4gICAgfVxuICAgIHJldHVybiBGaWVsZE9wdGlvbnNbMF0ubmFtZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpZWxkT3B0aW9uQnlGaWVsZChmaWVsZDogUGFydGlhbDxBSVRhYmxlRmllbGQ+KSB7XG4gICAgbGV0IGZpZWxkT3B0aW9uID0gRmllbGRPcHRpb25zLmZpbmQoKGl0ZW0pID0+IGlzU2FtZUZpZWxkT3B0aW9uKGl0ZW0sIGZpZWxkKSk7XG4gICAgaWYgKGZpZWxkT3B0aW9uICYmIGZpZWxkLnR5cGUgPT09IEFJVGFibGVGaWVsZFR5cGUubWVtYmVyICYmIChmaWVsZC5zZXR0aW5ncyBhcyBNZW1iZXJTZXR0aW5ncyk/LmlzX211bHRpcGxlKSB7XG4gICAgICAgIGZpZWxkT3B0aW9uLndpZHRoID0gQUlfVEFCTEVfRklFTERfTUlERExFX1dJRFRIO1xuICAgIH1cbiAgICByZXR1cm4gZmllbGRPcHRpb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NhbWVGaWVsZE9wdGlvbihmaWVsZE9wdGlvbjogQUlUYWJsZUZpZWxkT3B0aW9uLCBmaWVsZDogUGFydGlhbDxBSVRhYmxlRmllbGQ+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgZmllbGRPcHRpb24udHlwZSA9PT0gZmllbGQudHlwZSAmJlxuICAgICAgICAoZmllbGRPcHRpb24udHlwZSA9PT0gQUlUYWJsZUZpZWxkVHlwZS5zZWxlY3RcbiAgICAgICAgICAgID8gISEoZmllbGRPcHRpb24uc2V0dGluZ3MgYXMgSXNNdWx0aXBsZSk/LmlzX211bHRpcGxlID09PSAhIShmaWVsZC5zZXR0aW5ncyBhcyBJc011bHRpcGxlKT8uaXNfbXVsdGlwbGVcbiAgICAgICAgICAgIDogdHJ1ZSlcbiAgICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGVmYXVsdEZpZWxkKGFpVGFibGU6IEFJVGFibGUsIHR5cGU6IEFJVGFibGVGaWVsZFR5cGUgPSBBSVRhYmxlRmllbGRUeXBlLnRleHQpIHtcbiAgICBjb25zdCBmaWVsZE9wdGlvbiA9IEZpZWxkT3B0aW9ucy5maW5kKChpdGVtKSA9PiBpdGVtLnR5cGUgPT09IHR5cGUpITtcbiAgICByZXR1cm4geyBfaWQ6IGlkQ3JlYXRvcigpLCB0eXBlLCBuYW1lOiBjcmVhdGVEZWZhdWx0RmllbGROYW1lKGFpVGFibGUsIGZpZWxkT3B0aW9uKSB9O1xufVxuIl19
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb3JlL3V0aWxzL2ZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRixPQUFPLEVBQTZDLGdCQUFnQixFQUE4QixNQUFNLFVBQVUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFekMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBbUIsRUFBRSxFQUFFO0lBQ2hELE9BQU87UUFDSCxnQkFBZ0IsQ0FBQyxNQUFNO1FBQ3ZCLGdCQUFnQixDQUFDLFNBQVM7UUFDMUIsZ0JBQWdCLENBQUMsU0FBUztRQUMxQixnQkFBZ0IsQ0FBQyxNQUFNO1FBQ3ZCLGdCQUFnQixDQUFDLFVBQVU7S0FDOUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzNCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQW1CLEVBQUUsRUFBRTtJQUNqRCxPQUFPLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUM1SCxLQUFLLENBQUMsSUFBSSxDQUNiLENBQUM7QUFDTixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFtQixFQUFFLEVBQUU7SUFDakQsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFD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QUFDMUYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFJX1RBQkxFX0ZJRUxEX01JRERMRV9XSURUSCwgZ2V0RmllbGRPcHRpb25zIH0gZnJvbSAnLi4vY29uc3RhbnRzL2ZpZWxkJztcbmltcG9ydCB7IEFJVGFibGUsIEFJVGFibGVGaWVsZCwgQUlUYWJsZUZpZWxkT3B0aW9uLCBBSVRhYmxlRmllbGRUeXBlLCBJc011bHRpcGxlLCBNZW1iZXJTZXR0aW5ncyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGdlbmVyYXRlTmV3TmFtZSB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IGlkQ3JlYXRvciB9IGZyb20gJy4vaWQtY3JlYXRvcic7XG5cbmV4cG9ydCBjb25zdCBpc0FycmF5RmllbGQgPSAoZmllbGQ6IEFJVGFibGVGaWVsZCkgPT4ge1xuICAgIHJldHVybiBbXG4gICAgICAgIEFJVGFibGVGaWVsZFR5cGUubWVtYmVyLFxuICAgICAgICBBSVRhYmxlRmllbGRUeXBlLmNyZWF0ZWRCeSxcbiAgICAgICAgQUlUYWJsZUZpZWxkVHlwZS51cGRhdGVkQnksXG4gICAgICAgIEFJVGFibGVGaWVsZFR5cGUuc2VsZWN0LFxuICAgICAgICBBSVRhYmxlRmllbGRUeXBlLmF0dGFjaG1lbnRcbiAgICBdLmluY2x1ZGVzKGZpZWxkLnR5cGUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzU3lzdGVtRmllbGQgPSAoZmllbGQ6IEFJVGFibGVGaWVsZCkgPT4ge1xuICAgIHJldHVybiBbQUlUYWJsZUZpZWxkVHlwZS5jcmVhdGVkQXQsIEFJVGFibGVGaWVsZFR5cGUuY3JlYXRlZEJ5LCBBSVRhYmxlRmllbGRUeXBlLnVwZGF0ZWRBdCwgQUlUYWJsZUZpZWxkVHlwZS51cGRhdGVkQnldLmluY2x1ZGVzKFxuICAgICAgICBmaWVsZC50eXBlXG4gICAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc051bWJlckZpbGVkID0gKGZpZWxkOiBBSVRhYmxlRmllbGQpID0+IHtcbiAgICByZXR1cm4gW0FJVGFibGVGaWVsZFR5cGUubnVtYmVyLCBBSVRhYmxlRmllbGRUeXBlLnByb2dyZXNzLCBBSVRhYmxlRmllbGRUeXBlLnJhdGVdLmluY2x1ZGVzKGZpZWxkLnR5cGUpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRGaWVsZFZhbHVlKGZpZWxkOiBBSVRhYmxlRmllbGQpIHtcbiAgICBpZiAoaXNBcnJheUZpZWxkKGZpZWxkKSkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGlmIChpc051bWJlckZpbGVkKGZpZWxkKSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGVmYXVsdEZpZWxkTmFtZShhaVRhYmxlOiBBSVRhYmxlLCBmaWVsZDogQUlUYWJsZUZpZWxkT3B0aW9uKSB7XG4gICAgY29uc3QgZmllbGRPcHRpb24gPSBnZXRGaWVsZE9wdGlvbkJ5RmllbGQoYWlUYWJsZSwgZmllbGQpO1xuICAgIGlmIChmaWVsZE9wdGlvbikge1xuICAgICAgICBjb25zdCBhbGxOYW1lcyA9IGFpVGFibGUuZmllbGRzKCkubWFwKChpdGVtKSA9PiBpdGVtLm5hbWUpO1xuICAgICAgICBjb25zdCBjb3VudCA9IGFpVGFibGUuZmllbGRzKCkuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaXNTYW1lRmllbGRPcHRpb24oZmllbGQsIGl0ZW0pO1xuICAgICAgICB9KS5sZW5ndGg7XG4gICAgICAgIHJldHVybiBnZW5lcmF0ZU5ld05hbWUoYWxsTmFtZXMsIGNvdW50LCBmaWVsZE9wdGlvbi5uYW1lKTtcbiAgICB9XG4gICAgY29uc3QgZmllbGRPcHRpb25zID0gZ2V0RmllbGRPcHRpb25zKGFpVGFibGUpO1xuICAgIHJldHVybiBmaWVsZE9wdGlvbnNbMF0ubmFtZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpZWxkT3B0aW9uQnlGaWVsZChhaVRhYmxlOiBBSVRhYmxlLCBmaWVsZDogUGFydGlhbDxBSVRhYmxlRmllbGQ+KSB7XG4gICAgY29uc3QgZmllbGRPcHRpb25zID0gZ2V0RmllbGRPcHRpb25zKGFpVGFibGUpO1xuICAgIGxldCBmaWVsZE9wdGlvbiA9IGZpZWxkT3B0aW9ucy5maW5kKChpdGVtKSA9PiBpc1NhbWVGaWVsZE9wdGlvbihpdGVtLCBmaWVsZCkpO1xuICAgIGlmIChmaWVsZE9wdGlvbiAmJiBmaWVsZC50eXBlID09PSBBSVRhYmxlRmllbGRUeXBlLm1lbWJlciAmJiAoZmllbGQuc2V0dGluZ3MgYXMgTWVtYmVyU2V0dGluZ3MpPy5pc19tdWx0aXBsZSkge1xuICAgICAgICBmaWVsZE9wdGlvbi53aWR0aCA9IEFJX1RBQkxFX0ZJRUxEX01JRERMRV9XSURUSDtcbiAgICB9XG4gICAgcmV0dXJuIGZpZWxkT3B0aW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTYW1lRmllbGRPcHRpb24oZmllbGRPcHRpb246IEFJVGFibGVGaWVsZE9wdGlvbiwgZmllbGQ6IFBhcnRpYWw8QUlUYWJsZUZpZWxkPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAgIGZpZWxkT3B0aW9uLnR5cGUgPT09IGZpZWxkLnR5cGUgJiZcbiAgICAgICAgKGZpZWxkT3B0aW9uLnR5cGUgPT09IEFJVGFibGVGaWVsZFR5cGUuc2VsZWN0XG4gICAgICAgICAgICA/ICEhKGZpZWxkT3B0aW9uLnNldHRpbmdzIGFzIElzTXVsdGlwbGUpPy5pc19tdWx0aXBsZSA9PT0gISEoZmllbGQuc2V0dGluZ3MgYXMgSXNNdWx0aXBsZSk/LmlzX211bHRpcGxlXG4gICAgICAgICAgICA6IHRydWUpXG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRGaWVsZChhaVRhYmxlOiBBSVRhYmxlLCB0eXBlOiBBSVRhYmxlRmllbGRUeXBlID0gQUlUYWJsZUZpZWxkVHlwZS50ZXh0KSB7XG4gICAgY29uc3QgZmllbGRPcHRpb25zID0gZ2V0RmllbGRPcHRpb25zKGFpVGFibGUpO1xuICAgIGNvbnN0IGZpZWxkT3B0aW9uID0gZmllbGRPcHRpb25zLmZpbmQoKGl0ZW0pID0+IGl0ZW0udHlwZSA9PT0gdHlwZSkhO1xuICAgIHJldHVybiB7IF9pZDogaWRDcmVhdG9yKCksIHR5cGUsIG5hbWU6IGNyZWF0ZURlZmF1bHRGaWVsZE5hbWUoYWlUYWJsZSwgZmllbGRPcHRpb24pIH07XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import ObjectID from 'bson-objectid';
2
- import { shortId } from './shoft-id';
2
+ import { shortId } from './short-id';
3
3
  export function idCreator() {
4
4
  return ObjectID().toHexString();
5
5
  }
@@ -18,4 +18,4 @@ export function shortIdCreator() {
18
18
  export function shortIdsCreator(count) {
19
19
  return shortId(undefined, 8, count);
20
20
  }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQtY3JlYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2NvcmUvdXRpbHMvaWQtY3JlYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFFBQVEsTUFBTSxlQUFlLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVyQyxNQUFNLFVBQVUsU0FBUztJQUNyQixPQUFPLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3BDLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQWE7SUFDcEMsSUFBSSxLQUFLLElBQUksQ0FBQztRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzFCLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUM1QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWM7SUFDMUIsT0FBTyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLEtBQWE7SUFDekMsT0FBTyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE9iamVjdElEIGZyb20gJ2Jzb24tb2JqZWN0aWQnO1xuaW1wb3J0IHsgc2hvcnRJZCB9IGZyb20gJy4vc2hvZnQtaWQnO1xuXG5leHBvcnQgZnVuY3Rpb24gaWRDcmVhdG9yKCkge1xuICAgIHJldHVybiBPYmplY3RJRCgpLnRvSGV4U3RyaW5nKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpZHNDcmVhdG9yKGNvdW50OiBudW1iZXIpIHtcbiAgICBpZiAoY291bnQgPD0gMCkgcmV0dXJuIFtdO1xuICAgIGNvbnN0IG5ld0lkczogc3RyaW5nW10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICAgICAgbmV3SWRzLnB1c2goaWRDcmVhdG9yKCkpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3SWRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvcnRJZENyZWF0b3IoKSB7XG4gICAgcmV0dXJuIHNob3J0SWQodW5kZWZpbmVkLCA4KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3J0SWRzQ3JlYXRvcihjb3VudDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHNob3J0SWQodW5kZWZpbmVkLCA4LCBjb3VudCk7XG59XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQtY3JlYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2NvcmUvdXRpbHMvaWQtY3JlYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFFBQVEsTUFBTSxlQUFlLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVyQyxNQUFNLFVBQVUsU0FBUztJQUNyQixPQUFPLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3BDLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQWE7SUFDcEMsSUFBSSxLQUFLLElBQUksQ0FBQztRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzFCLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUM1QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWM7SUFDMUIsT0FBTyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLEtBQWE7SUFDekMsT0FBTyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE9iamVjdElEIGZyb20gJ2Jzb24tb2JqZWN0aWQnO1xuaW1wb3J0IHsgc2hvcnRJZCB9IGZyb20gJy4vc2hvcnQtaWQnO1xuXG5leHBvcnQgZnVuY3Rpb24gaWRDcmVhdG9yKCkge1xuICAgIHJldHVybiBPYmplY3RJRCgpLnRvSGV4U3RyaW5nKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpZHNDcmVhdG9yKGNvdW50OiBudW1iZXIpIHtcbiAgICBpZiAoY291bnQgPD0gMCkgcmV0dXJuIFtdO1xuICAgIGNvbnN0IG5ld0lkczogc3RyaW5nW10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICAgICAgbmV3SWRzLnB1c2goaWRDcmVhdG9yKCkpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3SWRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvcnRJZENyZWF0b3IoKSB7XG4gICAgcmV0dXJuIHNob3J0SWQodW5kZWZpbmVkLCA4KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3J0SWRzQ3JlYXRvcihjb3VudDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHNob3J0SWQodW5kZWZpbmVkLCA4LCBjb3VudCk7XG59XG4iXX0=
@@ -50,4 +50,4 @@ export function shortId(alphabet = AlphabetType.url, size = 6, quantity) {
50
50
  }
51
51
  return idGenerator(size);
52
52
  }
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvZnQtaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb3JlL3V0aWxzL3Nob2Z0LWlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDeEMsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFckUsTUFBTSxDQUFOLElBQVksWUFNWDtBQU5ELFdBQVksWUFBWTtJQUNwQiw2Q0FBTyxDQUFBO0lBQ1AscURBQVcsQ0FBQTtJQUNYLHlEQUFhLENBQUE7SUFDYix5REFBYSxDQUFBO0lBQ2IsK0RBQWdCLENBQUE7QUFDcEIsQ0FBQyxFQU5XLFlBQVksS0FBWixZQUFZLFFBTXZCO0FBRUQsTUFBTSxDQUFOLElBQVksa0JBTVg7QUFORCxXQUFZLGtCQUFrQjtJQUMxQiw4RkFBd0UsQ0FBQTtJQUN4RSw0Q0FBc0IsQ0FBQTtJQUN0Qiw4REFBd0MsQ0FBQTtJQUN4Qyw4REFBd0MsQ0FBQTtJQUN4QyxxR0FBK0UsQ0FBQTtBQUNuRixDQUFDLEVBTlcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQU03QjtBQUVELE1BQU0sZ0JBQWdCLEdBQUc7SUFDckIsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsY0FBYyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztJQUMxRCxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxjQUFjLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDO0lBQ2xFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUM7SUFDdEUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUUsY0FBYyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQztJQUN0RSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsRUFBRSxjQUFjLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDO0NBQy9FLENBQUM7QUFpQkYsTUFBTSxVQUFVLE9BQU8sQ0FBQyxXQUFrQyxZQUFZLENBQUMsR0FBRyxFQUFFLE9BQWUsQ0FBQyxFQUFFLFFBQWlCO0lBQzNHLElBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUM7UUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxzQkFBc0IsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFDRCxJQUFJLFdBQXNDLENBQUM7SUFDM0MsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzVDLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLFFBQVEsMkJBQTJCLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNySCxDQUFDO1FBQ0QsV0FBVyxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7U0FBTSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzVCLFdBQVcsR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0MsQ0FBQztTQUFNLENBQUM7UUFDSixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixRQUFRLGlEQUFpRCxDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUNELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsUUFBUSxpQ0FBaUMsQ0FBQyxDQUFDO1FBQ3BGLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQztRQUNwQixPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFDRCxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3VzdG9tQWxwaGFiZXQgfSBmcm9tICduYW5vaWQnO1xuaW1wb3J0IHsgaXNOaWwsIGlzTnVtYmVyLCBpc1N0cmluZywgaW5jbHVkZXMsIHZhbHVlcyB9IGZyb20gJ2xvZGFzaCc7XG5cbmV4cG9ydCBlbnVtIEFscGhhYmV0VHlwZSB7XG4gICAgdXJsID0gMSxcbiAgICBudW1iZXJzID0gMixcbiAgICBsb3dlcmNhc2UgPSAzLFxuICAgIHVwcGVyY2FzZSA9IDQsXG4gICAgYWxwaGFudW1lcmljID0gNVxufVxuXG5leHBvcnQgZW51bSBBbHBoYWJldERpY3Rpb25hcnkge1xuICAgIHVybCA9ICcwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWl8tJyxcbiAgICBudW1iZXJzID0gJzAxMjM0NTY3ODknLFxuICAgIGxvd2VyY2FzZSA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicsXG4gICAgdXBwZXJjYXNlID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyxcbiAgICBhbHBoYW51bWVyaWMgPSAnMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonXG59XG5cbmNvbnN0IGJ1aWxkSW5BbHBoYWJldHMgPSB7XG4gICAgW0FscGhhYmV0VHlwZS51cmxdOiBjdXN0b21BbHBoYWJldChBbHBoYWJldERpY3Rpb25hcnkudXJsKSxcbiAgICBbQWxwaGFiZXRUeXBlLm51bWJlcnNdOiBjdXN0b21BbHBoYWJldChBbHBoYWJldERpY3Rpb25hcnkubnVtYmVycyksXG4gICAgW0FscGhhYmV0VHlwZS5sb3dlcmNhc2VdOiBjdXN0b21BbHBoYWJldChBbHBoYWJldERpY3Rpb25hcnkubG93ZXJjYXNlKSxcbiAgICBbQWxwaGFiZXRUeXBlLnVwcGVyY2FzZV06IGN1c3RvbUFscGhhYmV0KEFscGhhYmV0RGljdGlvbmFyeS51cHBlcmNhc2UpLFxuICAgIFtBbHBoYWJldFR5cGUuYWxwaGFudW1lcmljXTogY3VzdG9tQWxwaGFiZXQoQWxwaGFiZXREaWN0aW9uYXJ5LmFscGhhbnVtZXJpYylcbn07XG5cbi8qKlxuICog5L2/55SobmFub2lk5a6e546wXG4gKiBAcGFyYW0gYWxwaGFiZXRcbiAqIEBwYXJhbSBzaXplIFtudW1iZXJdIGlkIOmVv+W6piAgWzYsMzJd5LmL6Ze0IOm7mOiupOS4ujZcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNob3J0SWQoYWxwaGFiZXQ/OiBBbHBoYWJldFR5cGUgfCBzdHJpbmcsIHNpemU/OiBudW1iZXIpOiBzdHJpbmc7XG5cbi8qKlxuICog5L2/55SobmFub2lk5a6e546wXG4gKiBAcGFyYW0gYWxwaGFiZXQgW3N0cmluZyB8IEFscGhhYmV0VHlwZV0g6buY6K6k5Li6IEFscGhhYmV0VHlwZS51cmxcbiAqIEBwYXJhbSBzaXplIFtudW1iZXJdIGlkIOmVv+W6piAgWzYsMzJd5LmL6Ze0IOm7mOiupOS4ujZcbiAqIEBwYXJhbSBxdWFudGl0eSBbbnVtYmVyXSAgIGlkIOS4quaVsFxuICovXG5leHBvcnQgZnVuY3Rpb24gc2hvcnRJZChhbHBoYWJldD86IEFscGhhYmV0VHlwZSB8IHN0cmluZywgc2l6ZT86IG51bWJlciwgcXVhbnRpdHk/OiBudW1iZXIpOiBzdHJpbmdbXTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNob3J0SWQoYWxwaGFiZXQ6IEFscGhhYmV0VHlwZSB8IHN0cmluZyA9IEFscGhhYmV0VHlwZS51cmwsIHNpemU6IG51bWJlciA9IDYsIHF1YW50aXR5PzogbnVtYmVyKTogc3RyaW5nIHwgc3RyaW5nW10ge1xuICAgIGlmIChzaXplIDwgNiB8fCBzaXplID4gMzIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNpemUgXCIke3NpemV9XCIsIHNpemUgbXVzdCBpbiA2LTMyYCk7XG4gICAgfVxuICAgIGxldCBpZEdlbmVyYXRvcjogKHNpemU/OiBudW1iZXIpID0+IHN0cmluZztcbiAgICBpZiAoaXNOdW1iZXIoYWxwaGFiZXQpKSB7XG4gICAgICAgIGlmICghaW5jbHVkZXModmFsdWVzKEFscGhhYmV0VHlwZSksIGFscGhhYmV0KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFscGhhYmV0IFwiJHthbHBoYWJldH1cIiwgYWxwaGFiZXQgbXVzdCBvbmUgb2YgJHtPYmplY3QudmFsdWVzKEFscGhhYmV0VHlwZSkuam9pbignICcpfWApO1xuICAgICAgICB9XG4gICAgICAgIGlkR2VuZXJhdG9yID0gYnVpbGRJbkFscGhhYmV0c1thbHBoYWJldF07XG4gICAgfSBlbHNlIGlmIChpc1N0cmluZyhhbHBoYWJldCkpIHtcbiAgICAgICAgaWRHZW5lcmF0b3IgPSBjdXN0b21BbHBoYWJldChhbHBoYWJldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFscGhhYmV0IFwiJHthbHBoYWJldH1cIiwgYWxwaGFiZXQgdHlwZSBtdXN0IGJlIEFscGhhYmV0VHlwZSBvciBzdHJpbmdgKTtcbiAgICB9XG4gICAgaWYgKCFpc05pbChxdWFudGl0eSkpIHtcbiAgICAgICAgaWYgKCFpc051bWJlcihxdWFudGl0eSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBxdWFudGl0eSBcIiR7cXVhbnRpdHl9XCIsIHF1YW50aXR5IHR5cGUgbXVzdCBiZSBudW1iZXJgKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpZFRhc2tzID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogcXVhbnRpdHkgfSwgKCkgPT4gaWRHZW5lcmF0b3Ioc2l6ZSkpO1xuICAgICAgICBjb25zdCBpZHMgPSBpZFRhc2tzO1xuICAgICAgICByZXR1cm4gaWRzO1xuICAgIH1cbiAgICByZXR1cm4gaWRHZW5lcmF0b3Ioc2l6ZSk7XG59XG4iXX0=
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcnQtaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb3JlL3V0aWxzL3Nob3J0LWlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDeEMsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFckUsTUFBTSxDQUFOLElBQVksWUFNWDtBQU5ELFdBQVksWUFBWTtJQUNwQiw2Q0FBTyxDQUFBO0lBQ1AscURBQVcsQ0FBQTtJQUNYLHlEQUFhLENBQUE7SUFDYix5REFBYSxDQUFBO0lBQ2IsK0RBQWdCLENBQUE7QUFDcEIsQ0FBQyxFQU5XLFlBQVksS0FBWixZQUFZLFFBTXZCO0FBRUQsTUFBTSxDQUFOLElBQVksa0JBTVg7QUFORCxXQUFZLGtCQUFrQjtJQUMxQiw4RkFBd0UsQ0FBQTtJQUN4RSw0Q0FBc0IsQ0FBQTtJQUN0Qiw4REFBd0MsQ0FBQTtJQUN4Qyw4REFBd0MsQ0FBQTtJQUN4QyxxR0FBK0UsQ0FBQTtBQUNuRixDQUFDLEVBTlcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQU03QjtBQUVELE1BQU0sZ0JBQWdCLEdBQUc7SUFDckIsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsY0FBYyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztJQUMxRCxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxjQUFjLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDO0lBQ2xFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUM7SUFDdEUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUUsY0FBYyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQztJQUN0RSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsRUFBRSxjQUFjLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDO0NBQy9FLENBQUM7QUFpQkYsTUFBTSxVQUFVLE9BQU8sQ0FBQyxXQUFrQyxZQUFZLENBQUMsR0FBRyxFQUFFLE9BQWUsQ0FBQyxFQUFFLFFBQWlCO0lBQzNHLElBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUM7UUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxzQkFBc0IsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFDRCxJQUFJLFdBQXNDLENBQUM7SUFDM0MsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzVDLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLFFBQVEsMkJBQTJCLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNySCxDQUFDO1FBQ0QsV0FBVyxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7U0FBTSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzVCLFdBQVcsR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0MsQ0FBQztTQUFNLENBQUM7UUFDSixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixRQUFRLGlEQUFpRCxDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUNELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsUUFBUSxpQ0FBaUMsQ0FBQyxDQUFDO1FBQ3BGLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQztRQUNwQixPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFDRCxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3VzdG9tQWxwaGFiZXQgfSBmcm9tICduYW5vaWQnO1xuaW1wb3J0IHsgaXNOaWwsIGlzTnVtYmVyLCBpc1N0cmluZywgaW5jbHVkZXMsIHZhbHVlcyB9IGZyb20gJ2xvZGFzaCc7XG5cbmV4cG9ydCBlbnVtIEFscGhhYmV0VHlwZSB7XG4gICAgdXJsID0gMSxcbiAgICBudW1iZXJzID0gMixcbiAgICBsb3dlcmNhc2UgPSAzLFxuICAgIHVwcGVyY2FzZSA9IDQsXG4gICAgYWxwaGFudW1lcmljID0gNVxufVxuXG5leHBvcnQgZW51bSBBbHBoYWJldERpY3Rpb25hcnkge1xuICAgIHVybCA9ICcwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWl8tJyxcbiAgICBudW1iZXJzID0gJzAxMjM0NTY3ODknLFxuICAgIGxvd2VyY2FzZSA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicsXG4gICAgdXBwZXJjYXNlID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyxcbiAgICBhbHBoYW51bWVyaWMgPSAnMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonXG59XG5cbmNvbnN0IGJ1aWxkSW5BbHBoYWJldHMgPSB7XG4gICAgW0FscGhhYmV0VHlwZS51cmxdOiBjdXN0b21BbHBoYWJldChBbHBoYWJldERpY3Rpb25hcnkudXJsKSxcbiAgICBbQWxwaGFiZXRUeXBlLm51bWJlcnNdOiBjdXN0b21BbHBoYWJldChBbHBoYWJldERpY3Rpb25hcnkubnVtYmVycyksXG4gICAgW0FscGhhYmV0VHlwZS5sb3dlcmNhc2VdOiBjdXN0b21BbHBoYWJldChBbHBoYWJldERpY3Rpb25hcnkubG93ZXJjYXNlKSxcbiAgICBbQWxwaGFiZXRUeXBlLnVwcGVyY2FzZV06IGN1c3RvbUFscGhhYmV0KEFscGhhYmV0RGljdGlvbmFyeS51cHBlcmNhc2UpLFxuICAgIFtBbHBoYWJldFR5cGUuYWxwaGFudW1lcmljXTogY3VzdG9tQWxwaGFiZXQoQWxwaGFiZXREaWN0aW9uYXJ5LmFscGhhbnVtZXJpYylcbn07XG5cbi8qKlxuICog5L2/55SobmFub2lk5a6e546wXG4gKiBAcGFyYW0gYWxwaGFiZXRcbiAqIEBwYXJhbSBzaXplIFtudW1iZXJdIGlkIOmVv+W6piAgWzYsMzJd5LmL6Ze0IOm7mOiupOS4ujZcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNob3J0SWQoYWxwaGFiZXQ/OiBBbHBoYWJldFR5cGUgfCBzdHJpbmcsIHNpemU/OiBudW1iZXIpOiBzdHJpbmc7XG5cbi8qKlxuICog5L2/55SobmFub2lk5a6e546wXG4gKiBAcGFyYW0gYWxwaGFiZXQgW3N0cmluZyB8IEFscGhhYmV0VHlwZV0g6buY6K6k5Li6IEFscGhhYmV0VHlwZS51cmxcbiAqIEBwYXJhbSBzaXplIFtudW1iZXJdIGlkIOmVv+W6piAgWzYsMzJd5LmL6Ze0IOm7mOiupOS4ujZcbiAqIEBwYXJhbSBxdWFudGl0eSBbbnVtYmVyXSAgIGlkIOS4quaVsFxuICovXG5leHBvcnQgZnVuY3Rpb24gc2hvcnRJZChhbHBoYWJldD86IEFscGhhYmV0VHlwZSB8IHN0cmluZywgc2l6ZT86IG51bWJlciwgcXVhbnRpdHk/OiBudW1iZXIpOiBzdHJpbmdbXTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNob3J0SWQoYWxwaGFiZXQ6IEFscGhhYmV0VHlwZSB8IHN0cmluZyA9IEFscGhhYmV0VHlwZS51cmwsIHNpemU6IG51bWJlciA9IDYsIHF1YW50aXR5PzogbnVtYmVyKTogc3RyaW5nIHwgc3RyaW5nW10ge1xuICAgIGlmIChzaXplIDwgNiB8fCBzaXplID4gMzIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNpemUgXCIke3NpemV9XCIsIHNpemUgbXVzdCBpbiA2LTMyYCk7XG4gICAgfVxuICAgIGxldCBpZEdlbmVyYXRvcjogKHNpemU/OiBudW1iZXIpID0+IHN0cmluZztcbiAgICBpZiAoaXNOdW1iZXIoYWxwaGFiZXQpKSB7XG4gICAgICAgIGlmICghaW5jbHVkZXModmFsdWVzKEFscGhhYmV0VHlwZSksIGFscGhhYmV0KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFscGhhYmV0IFwiJHthbHBoYWJldH1cIiwgYWxwaGFiZXQgbXVzdCBvbmUgb2YgJHtPYmplY3QudmFsdWVzKEFscGhhYmV0VHlwZSkuam9pbignICcpfWApO1xuICAgICAgICB9XG4gICAgICAgIGlkR2VuZXJhdG9yID0gYnVpbGRJbkFscGhhYmV0c1thbHBoYWJldF07XG4gICAgfSBlbHNlIGlmIChpc1N0cmluZyhhbHBoYWJldCkpIHtcbiAgICAgICAgaWRHZW5lcmF0b3IgPSBjdXN0b21BbHBoYWJldChhbHBoYWJldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFscGhhYmV0IFwiJHthbHBoYWJldH1cIiwgYWxwaGFiZXQgdHlwZSBtdXN0IGJlIEFscGhhYmV0VHlwZSBvciBzdHJpbmdgKTtcbiAgICB9XG4gICAgaWYgKCFpc05pbChxdWFudGl0eSkpIHtcbiAgICAgICAgaWYgKCFpc051bWJlcihxdWFudGl0eSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBxdWFudGl0eSBcIiR7cXVhbnRpdHl9XCIsIHF1YW50aXR5IHR5cGUgbXVzdCBiZSBudW1iZXJgKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpZFRhc2tzID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogcXVhbnRpdHkgfSwgKCkgPT4gaWRHZW5lcmF0b3Ioc2l6ZSkpO1xuICAgICAgICBjb25zdCBpZHMgPSBpZFRhc2tzO1xuICAgICAgICByZXR1cm4gaWRzO1xuICAgIH1cbiAgICByZXR1cm4gaWRHZW5lcmF0b3Ioc2l6ZSk7XG59XG4iXX0=
@@ -11,12 +11,13 @@ export class AITableGridBase {
11
11
  constructor() {
12
12
  this.aiRecords = model.required();
13
13
  this.aiFields = model.required();
14
- this.aiContextMenuItems = input([]);
14
+ this.aiContextMenuItems = input();
15
15
  this.aiFieldConfig = input();
16
16
  this.aiReadonly = input();
17
17
  this.aiPlugins = input();
18
18
  this.aiReferences = input.required();
19
19
  this.aiBuildRenderDataFn = input();
20
+ this.aiGetI18nTextByKey = input();
20
21
  this.aiKeywords = input();
21
22
  this.AITableFieldType = AITableFieldType;
22
23
  this.AITableSelectOptionStyle = AITableSelectOptionStyle;
@@ -32,7 +33,11 @@ export class AITableGridBase {
32
33
  this.aiClick = output();
33
34
  this.aiDbClick = output();
34
35
  this.fieldMenus = computed(() => {
35
- return this.aiFieldConfig()?.fieldMenus || [];
36
+ const fieldMenusFn = this.aiFieldConfig()?.fieldMenus;
37
+ if (fieldMenusFn && this.aiTable) {
38
+ return fieldMenusFn(this.aiTable);
39
+ }
40
+ return [];
36
41
  });
37
42
  this.gridData = computed(() => {
38
43
  if (this.aiBuildRenderDataFn && this.aiBuildRenderDataFn() && this.aiTable) {
@@ -56,6 +61,9 @@ export class AITableGridBase {
56
61
  }
57
62
  initAITable() {
58
63
  this.aiTable = createAITable(this.aiRecords, this.aiFields, this.gridData);
64
+ if (this.aiGetI18nTextByKey()) {
65
+ this.aiTable.getI18nTextByKey = this.aiGetI18nTextByKey();
66
+ }
59
67
  this.aiPlugins()?.forEach((plugin) => {
60
68
  this.aiTable = plugin(this.aiTable);
61
69
  });
@@ -145,7 +153,7 @@ export class AITableGridBase {
145
153
  }
146
154
  }
147
155
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AITableGridBase, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
148
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: AITableGridBase, isStandalone: true, selector: "ai-table-grid-base", inputs: { aiRecords: { classPropertyName: "aiRecords", publicName: "aiRecords", isSignal: true, isRequired: true, transformFunction: null }, aiFields: { classPropertyName: "aiFields", publicName: "aiFields", isSignal: true, isRequired: true, transformFunction: null }, aiContextMenuItems: { classPropertyName: "aiContextMenuItems", publicName: "aiContextMenuItems", isSignal: true, isRequired: false, transformFunction: null }, aiFieldConfig: { classPropertyName: "aiFieldConfig", publicName: "aiFieldConfig", isSignal: true, isRequired: false, transformFunction: null }, aiReadonly: { classPropertyName: "aiReadonly", publicName: "aiReadonly", isSignal: true, isRequired: false, transformFunction: null }, aiPlugins: { classPropertyName: "aiPlugins", publicName: "aiPlugins", isSignal: true, isRequired: false, transformFunction: null }, aiReferences: { classPropertyName: "aiReferences", publicName: "aiReferences", isSignal: true, isRequired: true, transformFunction: null }, aiBuildRenderDataFn: { classPropertyName: "aiBuildRenderDataFn", publicName: "aiBuildRenderDataFn", isSignal: true, isRequired: false, transformFunction: null }, aiKeywords: { classPropertyName: "aiKeywords", publicName: "aiKeywords", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { aiRecords: "aiRecordsChange", aiFields: "aiFieldsChange", aiTableInitialized: "aiTableInitialized", aiAddRecord: "aiAddRecord", aiAddField: "aiAddField", aiMoveField: "aiMoveField", aiUpdateFieldValue: "aiUpdateFieldValue", aiSetField: "aiSetField", aiClick: "aiClick", aiDbClick: "aiDbClick" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
156
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: AITableGridBase, isStandalone: true, selector: "ai-table-grid-base", inputs: { aiRecords: { classPropertyName: "aiRecords", publicName: "aiRecords", isSignal: true, isRequired: true, transformFunction: null }, aiFields: { classPropertyName: "aiFields", publicName: "aiFields", isSignal: true, isRequired: true, transformFunction: null }, aiContextMenuItems: { classPropertyName: "aiContextMenuItems", publicName: "aiContextMenuItems", isSignal: true, isRequired: false, transformFunction: null }, aiFieldConfig: { classPropertyName: "aiFieldConfig", publicName: "aiFieldConfig", isSignal: true, isRequired: false, transformFunction: null }, aiReadonly: { classPropertyName: "aiReadonly", publicName: "aiReadonly", isSignal: true, isRequired: false, transformFunction: null }, aiPlugins: { classPropertyName: "aiPlugins", publicName: "aiPlugins", isSignal: true, isRequired: false, transformFunction: null }, aiReferences: { classPropertyName: "aiReferences", publicName: "aiReferences", isSignal: true, isRequired: true, transformFunction: null }, aiBuildRenderDataFn: { classPropertyName: "aiBuildRenderDataFn", publicName: "aiBuildRenderDataFn", isSignal: true, isRequired: false, transformFunction: null }, aiGetI18nTextByKey: { classPropertyName: "aiGetI18nTextByKey", publicName: "aiGetI18nTextByKey", isSignal: true, isRequired: false, transformFunction: null }, aiKeywords: { classPropertyName: "aiKeywords", publicName: "aiKeywords", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { aiRecords: "aiRecordsChange", aiFields: "aiFieldsChange", aiTableInitialized: "aiTableInitialized", aiAddRecord: "aiAddRecord", aiAddField: "aiAddField", aiMoveField: "aiMoveField", aiUpdateFieldValue: "aiUpdateFieldValue", aiSetField: "aiSetField", aiClick: "aiClick", aiDbClick: "aiDbClick" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
149
157
  }
150
158
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AITableGridBase, decorators: [{
151
159
  type: Component,
@@ -156,4 +164,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
156
164
  changeDetection: ChangeDetectionStrategy.OnPush
157
165
  }]
158
166
  }] });
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2dyaWQtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUVOLE1BQU0sRUFFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2RSxPQUFPLEVBT0gsZ0JBQWdCLEVBRWhCLHdCQUF3QixFQUV4QixhQUFhLEVBQ2Isa0JBQWtCLEVBR3JCLE1BQU0sUUFBUSxDQUFDO0FBQ2hCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQVczRSxNQUFNLE9BQU8sZUFBZTtJQU41QjtRQU9JLGNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFrQixDQUFDO1FBRTdDLGFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFpQixDQUFDO1FBRTNDLHVCQUFrQixHQUFHLEtBQUssQ0FBMkIsRUFBRSxDQUFDLENBQUM7UUFFekQsa0JBQWEsR0FBRyxLQUFLLEVBQWlCLENBQUM7UUFFdkMsZUFBVSxHQUFHLEtBQUssRUFBVyxDQUFDO1FBRTlCLGNBQVMsR0FBRyxLQUFLLEVBQWMsQ0FBQztR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blN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBEZXN0cm95UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIG1vZGVsLFxuICAgIE5nWm9uZSxcbiAgICBPbkluaXQsXG4gICAgb3V0cHV0LFxuICAgIFNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFRoeVBvcG92ZXJSZWYgfSBmcm9tICduZ3gtdGV0aHlzL3BvcG92ZXInO1xuaW1wb3J0IHsgbWVyZ2VXaXRoIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEQkxfQ0xJQ0tfRURJVF9UWVBFLCBNT1VTRU9WRVJfRURJVF9UWVBFIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgICBBZGRGaWVsZE9wdGlvbnMsXG4gICAgQWRkUmVjb3JkT3B0aW9ucyxcbiAgICBBSVBsdWdpbixcbiAgICBBSVRhYmxlLFxuICAgIEFJVGFibGVGaWVsZCxcbiAgICBBSVRhYmxlRmllbGRzLFxuICAgIEFJVGFibGVGaWVsZFR5cGUsXG4gICAgQUlUYWJsZVJlY29yZHMsXG4gICAgQUlUYWJsZVNlbGVjdE9wdGlvblN0eWxlLFxuICAgIEFJVGFibGVWYWx1ZSxcbiAgICBjcmVhdGVBSVRhYmxlLFxuICAgIGNyZWF0ZURlZmF1bHRGaWVsZCxcbiAgICBNb3ZlRmllbGRPcHRpb25zLFxuICAgIFVwZGF0ZUZpZWxkVmFsdWVPcHRpb25zXG59IGZyb20gJy4vY29yZSc7XG5pbXBvcnQgeyBBSVRhYmxlR3JpZEV2ZW50U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBBSV9UQUJMRV9HUklEX0ZJRUxEX1NFUlZJQ0VfTUFQLCBBSVRhYmxlR3JpZEZpZWxkU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZmllbGQuc2VydmljZSc7XG5pbXBvcnQgeyBBSVRhYmxlR3JpZFNlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3NlbGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFJRmllbGRDb25maWcsIEFJVGFibGVGaWVsZE1lbnVJdGVtLCBBSVRhYmxlQ29udGV4dE1lbnVJdGVtLCBBSVRhYmxlUmVmZXJlbmNlcyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgQUlUYWJsZUZpZWxkU2V0dGluZyB9IGZyb20gJy4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBLb0V2ZW50T2JqZWN0T3V0cHV0IH0gZnJvbSAnLi9hbmd1bGFyLWtvbnZhJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhaS10YWJsZS1ncmlkLWJhc2UnLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEFJVGFibGVHcmlkQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgYWlSZWNvcmRzID0gbW9kZWwucmVxdWlyZWQ8QUlUYWJsZVJlY29yZHM+KCk7XG5cbiAgICBhaUZpZWxkcyA9IG1vZGVsLnJlcXVpcmVkPEFJVGFibGVGaWVsZHM+KCk7XG5cbiAgICBhaUNvbnRleHRNZW51SXRlbXMgPSBpbnB1dDxBSVRhYmxlQ29udGV4dE1lbnVJdGVtW10+KFtdKTtcblxuICAgIGFpRmllbGRDb25maWcgPSBpbnB1dDxBSUZpZWxkQ29uZmlnPigpO1xuXG4gICAgYWlSZWFkb25seSA9IGlucHV0PGJvb2xlYW4+KCk7XG5cbiAgICBhaVBsdWdpbnMgPSBpbnB1dDxBSVBsdWdpbltdPigpO1xuXG4gICAgYWlSZWZlcmVuY2VzID0gaW5wdXQucmVxdWlyZWQ8QUlUYWJsZVJlZmVyZW5jZXM+KCk7XG5cbiAgICBhaUJ1aWxkUmVuZGVyRGF0YUZuID0gaW5wdXQ8KGFpVGFibGU6IEFJVGFibGUpID0+IEFJVGFibGVWYWx1ZT4oKTtcblxuICAgIGFpS2V5d29yZHMgPSBpbnB1dDxzdHJpbmc+KCk7XG5cbiAgICBBSVRhYmxlRmllbGRUeXBlID0gQUlUYWJsZUZpZWxkVHlwZTtcblxuICAgIEFJVGFibGVTZWxlY3RPcHRpb25TdHlsZSA9IEFJVGFibGVTZWxlY3RPcHRpb25TdHlsZTtcblxuICAgIGFpVGFibGUhOiBBSVRhYmxlO1xuXG4gICAgaXNTZWxlY3RlZEFsbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWlUYWJsZS5zZWxlY3Rpb24oKS5zZWxlY3RlZFJlY29yZHMuc2l6ZSA9PT0gdGhpcy5haVJlY29yZHMoKS5sZW5ndGg7XG4gICAgfSk7XG5cbiAgICBhaVRhYmxlSW5pdGlhbGl6ZWQgPSBvdXRwdXQ8QUlUYWJsZT4oKTtcblxuICAgIGFpQWRkUmVjb3JkID0gb3V0cHV0PEFkZFJlY29yZE9wdGlvbnM+KCk7XG5cbiAgICBhaUFkZEZpZWxkID0gb3V0cHV0PEFkZEZpZWxkT3B0aW9ucz4oKTtcblxuICAgIGFpTW92ZUZpZWxkID0gb3V0cHV0PE1vdmVGaWVsZE9wdGlvbnM+KCk7XG5cbiAgICBhaVVwZGF0ZUZpZWxkVmFsdWUgPSBvdXRwdXQ8VXBkYXRlRmllbGRWYWx1ZU9wdGlvbnM+KCk7XG5cbiAgICBhaVNldEZpZWxkID0gb3V0cHV0PEFJVGFibGVGaWVsZD4oKTtcblxuICAgIGFpQ2xpY2sgPSBvdXRwdXQ8S29FdmVudE9iamVjdE91dHB1dDxNb3VzZUV2ZW50Pj4oKTtcblxuICAgIGFpRGJDbGljayA9IG91dHB1dDxLb0V2ZW50T2JqZWN0T3V0cHV0PE1vdXNlRXZlbnQ+PigpO1xuXG4gICAgZmllbGRNZW51czogU2lnbmFsPEFJVGFibGVGaWVsZE1lbnVJdGVtW10+ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5haUZpZWxkQ29uZmlnKCk/LmZpZWxkTWVudXMgfHwgW107XG4gICAgfSk7XG5cbiAgICBtb3VzZW92ZXJSZWYhOiBUaHlQb3BvdmVyUmVmPGFueT47XG5cbiAgICBncmlkRGF0YSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuYWlCdWlsZFJlbmRlckRhdGFGbiAmJiB0aGlzLmFpQnVpbGRSZW5kZXJEYXRhRm4oKSAmJiB0aGlzLmFpVGFibGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFpQnVpbGRSZW5kZXJEYXRhRm4oKSEodGhpcy5haVRhYmxlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVjb3JkczogdGhpcy5haVJlY29yZHMoKSxcbiAgICAgICAgICAgIGZpZWxkczogdGhpcy5haUZpZWxkcygpXG4gICAgICAgIH07XG4gICAgfSk7XG5cbiAgICBwcm90ZWN0ZWQgbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG4gICAgcHJvdGVjdGVkIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gICAgcHJvdGVjdGVkIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gICAgcHJvdGVjdGVkIGFpVGFibGVHcmlkRmllbGRTZXJ2aWNlID0gaW5qZWN0KEFJVGFibGVHcmlkRmllbGRTZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgYWlUYWJsZUdyaWRFdmVudFNlcnZpY2UgPSBpbmplY3QoQUlUYWJsZUdyaWRFdmVudFNlcnZpY2UpO1xuICAgIHByb3RlY3RlZCBhaVRhYmxlR3JpZFNlbGVjdGlvblNlcnZpY2UgPSBpbmplY3QoQUlUYWJsZUdyaWRTZWxlY3Rpb25TZXJ2aWNlKTtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRBSVRhYmxlKCk7XG4gICAgICAgIHRoaXMuaW5pdFNlcnZpY2UoKTtcbiAgICB9XG5cbiAgICBpbml0QUlUYWJsZSgpIHtcbiAgICAgICAgdGhpcy5haVRhYmxlID0gY3JlYXRlQUlUYWJsZSh0aGlzLmFpUmVjb3JkcywgdGhpcy5haUZpZWxkcywgdGhpcy5ncmlkRGF0YSk7XG4gICAgICAgIHRoaXMuYWlQbHVnaW5zKCk/LmZvckVhY2goKHBsdWdpbikgPT4ge1xuICAgICAgICAgICAgdGhpcy5haVRhYmxlID0gcGx1Z2luKHRoaXMuYWlUYWJsZSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFpVGFibGVJbml0aWFsaXplZC5lbWl0KHRoaXMuYWlUYWJsZSk7XG4gICAgfVxuXG4gICAgaW5pdFNlcnZpY2UoKSB7XG4gICAgICAgIHRoaXMuYWlUYWJsZUdyaWRFdmVudFNlcnZpY2UuaW5pdGlhbGl6ZSh0aGlzLmFpVGFibGUsIHRoaXMuYWlGaWVsZENvbmZpZygpPy5maWVsZFJlbmRlcmVycyk7XG4gICAgICAgIHRoaXMuYWlUYWJsZUdyaWRTZWxlY3Rpb25TZXJ2aWNlLmluaXRpYWxpemUodGhpcy5haVRhYmxlKTtcbiAgICAgICAgdGhpcy5haVRhYmxlR3JpZEV2ZW50U2VydmljZS5yZWdpc3RlckV2ZW50cyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIHRoaXMuYWlUYWJsZUdyaWRGaWVsZFNlcnZpY2UuaW5pdEFJRmllbGRDb25maWcodGhpcy5haUZpZWxkQ29uZmlnKCkpO1xuICAgICAgICBBSV9UQUJMRV9HUklEX0ZJRUxEX1NFUlZJQ0VfTUFQLnNldCh0aGlzLmFpVGFibGUsIHRoaXMuYWlUYWJsZUdyaWRGaWVsZFNlcnZpY2UpO1xuICAgIH1cblxuICAgIGFkZFJlY29yZCgpIHtcbiAgICAgICAgY29uc3QgcmVjb3JkcyA9IHRoaXMuYWlSZWNvcmRzKCk7XG4gICAgICAgIGNvbnN0IHJlY29yZENvdW50ID0gcmVjb3Jkcy5sZW5ndGg7XG4gICAgICAgIHRoaXMuYWlBZGRSZWNvcmQuZW1pdCh7XG4gICAgICAgICAgICBvcmlnaW5JZDogcmVjb3JkQ291bnQgPiAwID8gcmVjb3Jkc1tyZWNvcmRzLmxlbmd0aCAtIDFdLl9pZCA6ICcnXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNlbGVjdFJlY29yZChyZWNvcmRJZDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuYWlUYWJsZUdyaWRTZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdFJlY29yZChyZWNvcmRJZCk7XG4gICAgfVxuXG4gICAgdG9nZ2xlU2VsZWN0QWxsKGNoZWNrZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5haVRhYmxlR3JpZFNlbGVjdGlvblNlcnZpY2UudG9nZ2xlU2VsZWN0QWxsKGNoZWNrZWQpO1xuICAgIH1cblxuICAgIGFkZEZpZWxkKGdyaWRDb2x1bW5CbGFuaz86IEhUTUxFbGVtZW50LCBwb3NpdGlvbj86IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSkge1xuICAgICAgICBjb25zdCBmaWVsZCA9IGNyZWF0ZURlZmF1bHRGaWVsZCh0aGlzLmFpVGFibGUsIEFJVGFibGVGaWVsZFR5cGUudGV4dCk7XG4gICAgICAgIGNvbnN0IHBvcG92ZXJSZWYgPSB0aGlzLmFpVGFibGVHcmlkRmllbGRTZXJ2aWNlLmVkaXRGaWVsZFByb3BlcnR5KHRoaXMuYWlUYWJsZSwge1xuICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICBpc1VwZGF0ZTogZmFsc2UsXG4gICAgICAgICAgICBvcmlnaW46IGdyaWRDb2x1bW5CbGFuayEsXG4gICAgICAgICAgICBwb3NpdGlvblxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHBvcG92ZXJSZWYgJiYgIXRoaXMuYWlGaWVsZENvbmZpZygpPy5maWVsZFNldHRpbmdDb21wb25lbnQpIHtcbiAgICAgICAgICAgIChwb3BvdmVyUmVmLmNvbXBvbmVudEluc3RhbmNlIGFzIEFJVGFibGVGaWVsZFNldHRpbmcpLmFkZEZpZWxkLnN1YnNjcmliZSgoZGVmYXVsdFZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGRzID0gdGhpcy5ncmlkRGF0YSgpLmZpZWxkcztcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZENvdW50ID0gZmllbGRzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICB0aGlzLmFpQWRkRmllbGQuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgIG9yaWdpbklkOiBmaWVsZENvdW50ID4gMCA/IGZpZWxkc1tmaWVsZHMubGVuZ3RoIC0gMV0uX2lkIDogJycsXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc3Vic2NyaWJlRXZlbnRzKCkge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFpVGFibGVHcmlkRXZlbnRTZXJ2aWNlLmRibENsaWNrRXZlbnQkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRibENsaWNrKGV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5haVRhYmxlR3JpZEV2ZW50U2VydmljZS5tb3VzZWRvd25FdmVudCRcbiAgICAgICAgICAgICAgICAucGlwZShtZXJnZVdpdGgodGhpcy5haVRhYmxlR3JpZEV2ZW50U2VydmljZS5nbG9iYWxNb3VzZWRvd25FdmVudCQpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFpVGFibGVHcmlkU2VsZWN0aW9uU2VydmljZS51cGRhdGVTZWxlY3QoZXZlbnQpO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLmFpVGFibGVHcmlkRXZlbnRTZXJ2aWNlLm1vdXNlb3ZlckV2ZW50JC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb3VzZW92ZXJIYW5kbGUoZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmFpVGFibGVHcmlkRXZlbnRTZXJ2aWNlLmdsb2JhbE1vdXNlb3ZlckV2ZW50JC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZUhvdmVyQ2VsbEVkaXRvcihldmVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkYmxDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBjb25zdCBjZWxsRG9tID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdCgnLmdyaWQtY2VsbCcpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCB0eXBlID0gY2VsbERvbSAmJiAoY2VsbERvbS5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSEgYXMgQUlUYWJsZUZpZWxkVHlwZSk7XG4gICAgICAgIGlmICh0eXBlICYmIERCTF9DTElDS19FRElUX1RZUEUuaW5jbHVkZXModHlwZSkpIHtcbiAgICAgICAgICAgIHRoaXMuYWlUYWJsZUdyaWRFdmVudFNlcnZpY2Uub3BlbkVkaXQoY2VsbERvbSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdXNlb3ZlckhhbmRsZShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5tb3VzZW92ZXJSZWYpIHtcbiAgICAgICAgICAgIHRoaXMubW91c2VvdmVyUmVmPy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNlbGxEb20gPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jbG9zZXN0KCcuZ3JpZC1jZWxsJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBjZWxsRG9tICYmIChjZWxsRG9tLmdldEF0dHJpYnV0ZSgndHlwZScpISBhcyBBSVRhYmxlRmllbGRUeXBlKTtcbiAgICAgICAgaWYgKHR5cGUgJiYgTU9VU0VPVkVSX0VESVRfVFlQRS5pbmNsdWRlcyh0eXBlKSkge1xuICAgICAgICAgICAgdGhpcy5tb3VzZW92ZXJSZWYgPSB0aGlzLmFpVGFibGVHcmlkRXZlbnRTZXJ2aWNlLm9wZW5FZGl0KGNlbGxEb20pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZUhvdmVyQ2VsbEVkaXRvcihlOiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLm1vdXNlb3ZlclJlZikge1xuICAgICAgICAgICAgY29uc3QgaGFzR3JpZCA9IGUudGFyZ2V0ICYmIChlLnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdCgnLmFpLXRhYmxlLWdyaWQnKTtcbiAgICAgICAgICAgIGNvbnN0IGhhc0NlbGxFZGl0b3IgPSBlLnRhcmdldCAmJiAoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJy5ncmlkLWNlbGwtZWRpdG9yJyk7XG4gICAgICAgICAgICBpZiAoIWhhc0dyaWQgJiYgIWhhc0NlbGxFZGl0b3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1vdXNlb3ZlclJlZi5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2dyaWQtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUVOLE1BQU0sRUFFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2RSxPQUFPLEVBT0gsZ0JBQWdCLEVBRWhCLHdCQUF3QixFQUV4QixhQUFhLEVBQ2Isa0JBQWtCLEVBR3JCLE1BQU0sUUFBUSxDQUFDO0FBQ2hCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQVkzRSxNQUFNLE9BQU8sZUFBZTtJQU41QjtRQU9JLGNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFrQixDQUFDO1FBRTdDLGFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFpQixDQUFDO1FBRTNDLHVCQUFrQixHQUFHLEtBQUssRUFBa0QsQ0FBQztRQUU3RSxrQkFBYSxHQUFHLEtBQUssRUFBaUIsQ0FBQztRQUV2QyxlQUFVLEdBQUcsS0FBSyxFQUFXLENBQUM7UUFFOUIsY0FBUyxHQUFHLEtBQUssRUFBYyxDQUFDO1FBRWhDLGlCQUFZ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S0FBSyxFQUFFLENBQUM7WUFDOUIsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDOytHQXJMUSxlQUFlO21HQUFmLGVBQWUsOHhEQUpkLEVBQUU7OzRGQUlILGVBQWU7a0JBTjNCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgbW9kZWwsXG4gICAgTmdab25lLFxuICAgIE9uSW5pdCxcbiAgICBvdXRwdXQsXG4gICAgU2lnbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgVGh5UG9wb3ZlclJlZiB9IGZyb20gJ25neC10ZXRoeXMvcG9wb3Zlcic7XG5pbXBvcnQgeyBtZXJnZVdpdGggfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERCTF9DTElDS19FRElUX1RZUEUsIE1PVVNFT1ZFUl9FRElUX1RZUEUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICAgIEFkZEZpZWxkT3B0aW9ucyxcbiAgICBBZGRSZWNvcmRPcHRpb25zLFxuICAgIEFJUGx1Z2luLFxuICAgIEFJVGFibGUsXG4gICAgQUlUYWJsZUZpZWxkLFxuICAgIEFJVGFibGVGaWVsZHMsXG4gICAgQUlUYWJsZUZpZWxkVHlwZSxcbiAgICBBSVRhYmxlUmVjb3JkcyxcbiAgICBBSVRhYmxlU2VsZWN0T3B0aW9uU3R5bGUsXG4gICAgQUlUYWJsZVZhbHVlLFxuICAgIGNyZWF0ZUFJVGFibGUsXG4gICAgY3JlYXRlRGVmYXVsdEZpZWxkLFxuICAgIE1vdmVGaWVsZE9wdGlvbnMsXG4gICAgVXBkYXRlRmllbGRWYWx1ZU9wdGlvbnNcbn0gZnJvbSAnLi9jb3JlJztcbmltcG9ydCB7IEFJVGFibGVHcmlkRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEFJX1RBQkxFX0dSSURfRklFTERfU0VSVklDRV9NQVAsIEFJVGFibGVHcmlkRmllbGRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9maWVsZC5zZXJ2aWNlJztcbmltcG9ydCB7IEFJVGFibGVHcmlkU2VsZWN0aW9uU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvc2VsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQUlGaWVsZENvbmZpZywgQUlUYWJsZUZpZWxkTWVudUl0ZW0sIEFJVGFibGVDb250ZXh0TWVudUl0ZW0sIEFJVGFibGVSZWZlcmVuY2VzIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBBSVRhYmxlRmllbGRTZXR0aW5nIH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7IEtvRXZlbnRPYmplY3RPdXRwdXQgfSBmcm9tICcuL2FuZ3VsYXIta29udmEnO1xuaW1wb3J0IHsgQUlUYWJsZUdyaWRJMThuS2V5IH0gZnJvbSAnLi91dGlscy9pMThuJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhaS10YWJsZS1ncmlkLWJhc2UnLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEFJVGFibGVHcmlkQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgYWlSZWNvcmRzID0gbW9kZWwucmVxdWlyZWQ8QUlUYWJsZVJlY29yZHM+KCk7XG5cbiAgICBhaUZpZWxkcyA9IG1vZGVsLnJlcXVpcmVkPEFJVGFibGVGaWVsZHM+KCk7XG5cbiAgICBhaUNvbnRleHRNZW51SXRlbXMgPSBpbnB1dDwoYWlUYWJsZTogQUlUYWJsZSkgPT4gQUlUYWJsZUNvbnRleHRNZW51SXRlbVtdPigpO1xuXG4gICAgYWlGaWVsZENvbmZpZyA9IGlucHV0PEFJRmllbGRDb25maWc+KCk7XG5cbiAgICBhaVJlYWRvbmx5ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcblxuICAgIGFpUGx1Z2lucyA9IGlucHV0PEFJUGx1Z2luW10+KCk7XG5cbiAgICBhaVJlZmVyZW5jZXMgPSBpbnB1dC5yZXF1aXJlZDxBSVRhYmxlUmVmZXJlbmNlcz4oKTtcblxuICAgIGFpQnVpbGRSZW5kZXJEYXRhRm4gPSBpbnB1dDwoYWlUYWJsZTogQUlUYWJsZSkgPT4gQUlUYWJsZVZhbHVlPigpO1xuXG4gICAgYWlHZXRJMThuVGV4dEJ5S2V5ID0gaW5wdXQ8KGtleTogQUlUYWJsZUdyaWRJMThuS2V5IHwgc3RyaW5nKSA9PiBzdHJpbmcgfCB1bmRlZmluZWQ+KCk7XG5cbiAgICBhaUtleXdvcmRzID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gICAgQUlUYWJsZUZpZWxkVHlwZSA9IEFJVGFibGVGaWVsZFR5cGU7XG5cbiAgICBBSVRhYmxlU2VsZWN0T3B0aW9uU3R5bGUgPSBBSVRhYmxlU2VsZWN0T3B0aW9uU3R5bGU7XG5cbiAgICBhaVRhYmxlITogQUlUYWJsZTtcblxuICAgIGlzU2VsZWN0ZWRBbGwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRSZWNvcmRzLnNpemUgPT09IHRoaXMuYWlSZWNvcmRzKCkubGVuZ3RoO1xuICAgIH0pO1xuXG4gICAgYWlUYWJsZUluaXRpYWxpemVkID0gb3V0cHV0PEFJVGFibGU+KCk7XG5cbiAgICBhaUFkZFJlY29yZCA9IG91dHB1dDxBZGRSZWNvcmRPcHRpb25zPigpO1xuXG4gICAgYWlBZGRGaWVsZCA9IG91dHB1dDxBZGRGaWVsZE9wdGlvbnM+KCk7XG5cbiAgICBhaU1vdmVGaWVsZCA9IG91dHB1dDxNb3ZlRmllbGRPcHRpb25zPigpO1xuXG4gICAgYWlVcGRhdGVGaWVsZFZhbHVlID0gb3V0cHV0PFVwZGF0ZUZpZWxkVmFsdWVPcHRpb25zPigpO1xuXG4gICAgYWlTZXRGaWVsZCA9IG91dHB1dDxBSVRhYmxlRmllbGQ+KCk7XG5cbiAgICBhaUNsaWNrID0gb3V0cHV0PEtvRXZlbnRPYmplY3RPdXRwdXQ8TW91c2VFdmVudD4+KCk7XG5cbiAgICBhaURiQ2xpY2sgPSBvdXRwdXQ8S29FdmVudE9iamVjdE91dHB1dDxNb3VzZUV2ZW50Pj4oKTtcblxuICAgIGZpZWxkTWVudXM6IFNpZ25hbDxBSVRhYmxlRmllbGRNZW51SXRlbVtdPiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgZmllbGRNZW51c0ZuID0gdGhpcy5haUZpZWxkQ29uZmlnKCk/LmZpZWxkTWVudXM7XG4gICAgICAgIGlmIChmaWVsZE1lbnVzRm4gJiYgdGhpcy5haVRhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmllbGRNZW51c0ZuKHRoaXMuYWlUYWJsZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH0pO1xuXG4gICAgbW91c2VvdmVyUmVmITogVGh5UG9wb3ZlclJlZjxhbnk+O1xuXG4gICAgZ3JpZERhdGEgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmFpQnVpbGRSZW5kZXJEYXRhRm4gJiYgdGhpcy5haUJ1aWxkUmVuZGVyRGF0YUZuKCkgJiYgdGhpcy5haVRhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5haUJ1aWxkUmVuZGVyRGF0YUZuKCkhKHRoaXMuYWlUYWJsZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJlY29yZHM6IHRoaXMuYWlSZWNvcmRzKCksXG4gICAgICAgICAgICBmaWVsZHM6IHRoaXMuYWlGaWVsZHMoKVxuICAgICAgICB9O1xuICAgIH0pO1xuXG4gICAgcHJvdGVjdGVkIG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuICAgIHByb3RlY3RlZCBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICAgIHByb3RlY3RlZCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIHByb3RlY3RlZCBhaVRhYmxlR3JpZEZpZWxkU2VydmljZSA9IGluamVjdChBSVRhYmxlR3JpZEZpZWxkU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIGFpVGFibGVHcmlkRXZlbnRTZXJ2aWNlID0gaW5qZWN0KEFJVGFibGVHcmlkRXZlbnRTZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgYWlUYWJsZUdyaWRTZWxlY3Rpb25TZXJ2aWNlID0gaW5qZWN0KEFJVGFibGVHcmlkU2VsZWN0aW9uU2VydmljZSk7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0QUlUYWJsZSgpO1xuICAgICAgICB0aGlzLmluaXRTZXJ2aWNlKCk7XG4gICAgfVxuXG4gICAgaW5pdEFJVGFibGUoKSB7XG4gICAgICAgIHRoaXMuYWlUYWJsZSA9IGNyZWF0ZUFJVGFibGUodGhpcy5haVJlY29yZHMsIHRoaXMuYWlGaWVsZHMsIHRoaXMuZ3JpZERhdGEpO1xuICAgICAgICBpZiAodGhpcy5haUdldEkxOG5UZXh0QnlLZXkoKSkge1xuICAgICAgICAgICAgdGhpcy5haVRhYmxlLmdldEkxOG5UZXh0QnlLZXkgPSB0aGlzLmFpR2V0STE4blRleHRCeUtleSgpIGFzIChrZXk6IEFJVGFibGVHcmlkSTE4bktleSB8IHN0cmluZykgPT4gc3RyaW5nO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYWlQbHVnaW5zKCk/LmZvckVhY2goKHBsdWdpbikgPT4ge1xuICAgICAgICAgICAgdGhpcy5haVRhYmxlID0gcGx1Z2luKHRoaXMuYWlUYWJsZSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFpVGFibGVJbml0aWFsaXplZC5lbWl0KHRoaXMuYWlUYWJsZSk7XG4gICAgfVxuXG4gICAgaW5pdFNlcnZpY2UoKSB7XG4gICAgICAgIHRoaXMuYWlUYWJsZUdyaWRFdmVudFNlcnZpY2UuaW5pdGlhbGl6ZSh0aGlzLmFpVGFibGUsIHRoaXMuYWlGaWVsZENvbmZpZygpPy5maWVsZFJlbmRlcmVycyk7XG4gICAgICAgIHRoaXMuYWlUYWJsZUdyaWRTZWxlY3Rpb25TZXJ2aWNlLmluaXRpYWxpemUodGhpcy5haVRhYmxlKTtcbiAgICAgICAgdGhpcy5haVRhYmxlR3JpZEV2ZW50U2VydmljZS5yZWdpc3RlckV2ZW50cyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIHRoaXMuYWlUYWJsZUdyaWRGaWVsZFNlcnZpY2UuaW5pdEFJRmllbGRDb25maWcodGhpcy5haUZpZWxkQ29uZmlnKCkpO1xuICAgICAgICBBSV9UQUJMRV9HUklEX0ZJRUxEX1NFUlZJQ0VfTUFQLnNldCh0aGlzLmFpVGFibGUsIHRoaXMuYWlUYWJsZUdyaWRGaWVsZFNlcnZpY2UpO1xuICAgIH1cblxuICAgIGFkZFJlY29yZCgpIHtcbiAgICAgICAgY29uc3QgcmVjb3JkcyA9IHRoaXMuYWlSZWNvcmRzKCk7XG4gICAgICAgIGNvbnN0IHJlY29yZENvdW50ID0gcmVjb3Jkcy5sZW5ndGg7XG4gICAgICAgIHRoaXMuYWlBZGRSZWNvcmQuZW1pdCh7XG4gICAgICAgICAgICBvcmlnaW5JZDogcmVjb3JkQ291bnQgPiAwID8gcmVjb3Jkc1tyZWNvcmRzLmxlbmd0aCAtIDFdLl9pZCA6ICcnXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNlbGVjdFJlY29yZChyZWNvcmRJZDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuYWlUYWJsZUdyaWRTZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdFJlY29yZChyZWNvcmRJZCk7XG4gICAgfVxuXG4gICAgdG9nZ2xlU2VsZWN0QWxsKGNoZWNrZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5haVRhYmxlR3JpZFNlbGVjdGlvblNlcnZpY2UudG9nZ2xlU2VsZWN0QWxsKGNoZWNrZWQpO1xuICAgIH1cblxuICAgIGFkZEZpZWxkKGdyaWRDb2x1bW5CbGFuaz86IEhUTUxFbGVtZW50LCBwb3NpdGlvbj86IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSkge1xuICAgICAgICBjb25zdCBmaWVsZCA9IGNyZWF0ZURlZmF1bHRGaWVsZCh0aGlzLmFpVGFibGUsIEFJVGFibGVGaWVsZFR5cGUudGV4dCk7XG4gICAgICAgIGNvbnN0IHBvcG92ZXJSZWYgPSB0aGlzLmFpVGFibGVHcmlkRmllbGRTZXJ2aWNlLmVkaXRGaWVsZFByb3BlcnR5KHRoaXMuYWlUYWJsZSwge1xuICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICBpc1VwZGF0ZTogZmFsc2UsXG4gICAgICAgICAgICBvcmlnaW46IGdyaWRDb2x1bW5CbGFuayEsXG4gICAgICAgICAgICBwb3NpdGlvblxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHBvcG92ZXJSZWYgJiYgIXRoaXMuYWlGaWVsZENvbmZpZygpPy5maWVsZFNldHRpbmdDb21wb25lbnQpIHtcbiAgICAgICAgICAgIChwb3BvdmVyUmVmLmNvbXBvbmVudEluc3RhbmNlIGFzIEFJVGFibGVGaWVsZFNldHRpbmcpLmFkZEZpZWxkLnN1YnNjcmliZSgoZGVmYXVsdFZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGRzID0gdGhpcy5ncmlkRGF0YSgpLmZpZWxkcztcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZENvdW50ID0gZmllbGRzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICB0aGlzLmFpQWRkRmllbGQuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgIG9yaWdpbklkOiBmaWVsZENvdW50ID4gMCA/IGZpZWxkc1tmaWVsZHMubGVuZ3RoIC0gMV0uX2lkIDogJycsXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc3Vic2NyaWJlRXZlbnRzKCkge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFpVGFibGVHcmlkRXZlbnRTZXJ2aWNlLmRibENsaWNrRXZlbnQkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRibENsaWNrKGV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5haVRhYmxlR3JpZEV2ZW50U2VydmljZS5tb3VzZWRvd25FdmVudCRcbiAgICAgICAgICAgICAgICAucGlwZShtZXJnZVdpdGgodGhpcy5haVRhYmxlR3JpZEV2ZW50U2VydmljZS5nbG9iYWxNb3VzZWRvd25FdmVudCQpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFpVGFibGVHcmlkU2VsZWN0aW9uU2VydmljZS51cGRhdGVTZWxlY3QoZXZlbnQpO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLmFpVGFibGVHcmlkRXZlbnRTZXJ2aWNlLm1vdXNlb3ZlckV2ZW50JC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb3VzZW92ZXJIYW5kbGUoZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmFpVGFibGVHcmlkRXZlbnRTZXJ2aWNlLmdsb2JhbE1vdXNlb3ZlckV2ZW50JC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZUhvdmVyQ2VsbEVkaXRvcihldmVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkYmxDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBjb25zdCBjZWxsRG9tID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdCgnLmdyaWQtY2VsbCcpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCB0eXBlID0gY2VsbERvbSAmJiAoY2VsbERvbS5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSEgYXMgQUlUYWJsZUZpZWxkVHlwZSk7XG4gICAgICAgIGlmICh0eXBlICYmIERCTF9DTElDS19FRElUX1RZUEUuaW5jbHVkZXModHlwZSkpIHtcbiAgICAgICAgICAgIHRoaXMuYWlUYWJsZUdyaWRFdmVudFNlcnZpY2Uub3BlbkVkaXQoY2VsbERvbSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdXNlb3ZlckhhbmRsZShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5tb3VzZW92ZXJSZWYpIHtcbiAgICAgICAgICAgIHRoaXMubW91c2VvdmVyUmVmPy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNlbGxEb20gPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jbG9zZXN0KCcuZ3JpZC1jZWxsJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBjZWxsRG9tICYmIChjZWxsRG9tLmdldEF0dHJpYnV0ZSgndHlwZScpISBhcyBBSVRhYmxlRmllbGRUeXBlKTtcbiAgICAgICAgaWYgKHR5cGUgJiYgTU9VU0VPVkVSX0VESVRfVFlQRS5pbmNsdWRlcyh0eXBlKSkge1xuICAgICAgICAgICAgdGhpcy5tb3VzZW92ZXJSZWYgPSB0aGlzLmFpVGFibGVHcmlkRXZlbnRTZXJ2aWNlLm9wZW5FZGl0KGNlbGxEb20pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZUhvdmVyQ2VsbEVkaXRvcihlOiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLm1vdXNlb3ZlclJlZikge1xuICAgICAgICAgICAgY29uc3QgaGFzR3JpZCA9IGUudGFyZ2V0ICYmIChlLnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdCgnLmFpLXRhYmxlLWdyaWQnKTtcbiAgICAgICAgICAgIGNvbnN0IGhhc0NlbGxFZGl0b3IgPSBlLnRhcmdldCAmJiAoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJy5ncmlkLWNlbGwtZWRpdG9yJyk7XG4gICAgICAgICAgICBpZiAoIWhhc0dyaWQgJiYgIWhhc0NlbGxFZGl0b3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1vdXNlb3ZlclJlZi5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19