@firestitch/list 12.20.1 → 13.0.1

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 (117) hide show
  1. package/app/classes/list-controller.d.ts +33 -28
  2. package/app/components/body/row/row.component.d.ts +2 -0
  3. package/app/components/list/list.component.d.ts +2 -0
  4. package/app/interfaces/listconfig.interface.d.ts +2 -1
  5. package/app/models/row.d.ts +7 -3
  6. package/esm2020/app/classes/data-controller.mjs +367 -0
  7. package/esm2020/app/classes/external-params-controller.mjs +147 -0
  8. package/esm2020/app/classes/list-controller.mjs +752 -0
  9. package/{esm2015/app/classes/pagination-controller.js → esm2020/app/classes/pagination-controller.mjs} +2 -3
  10. package/{esm2015/app/classes/persistance-controller.js → esm2020/app/classes/persistance-controller.mjs} +4 -4
  11. package/esm2020/app/classes/reorder-controller.mjs +182 -0
  12. package/esm2020/app/classes/selection-controller.mjs +468 -0
  13. package/esm2020/app/components/body/body.component.mjs +64 -0
  14. package/esm2020/app/components/body/row/actions/actions.component.mjs +97 -0
  15. package/esm2020/app/components/body/row/cell/cell.component.mjs +107 -0
  16. package/esm2020/app/components/body/row/inline-action/inline-action.component.mjs +33 -0
  17. package/esm2020/app/components/body/row/menu-action/menu-action.component.mjs +46 -0
  18. package/esm2020/app/components/body/row/row.component.mjs +321 -0
  19. package/esm2020/app/components/customize-cols/customize-cols.component.mjs +68 -0
  20. package/esm2020/app/components/footer/footer-row/footer-cell/footer-cell.component.mjs +16 -0
  21. package/esm2020/app/components/footer/footer-row/footer-row.component.mjs +28 -0
  22. package/esm2020/app/components/footer/footer.component.mjs +31 -0
  23. package/esm2020/app/components/head/head-cell/head-cell.component.mjs +29 -0
  24. package/esm2020/app/components/head/head.component.mjs +103 -0
  25. package/esm2020/app/components/list/list.component.mjs +388 -0
  26. package/esm2020/app/components/loader/loader.component.mjs +40 -0
  27. package/esm2020/app/components/manage-saved-filters/manage-saved-filters.component.mjs +76 -0
  28. package/esm2020/app/components/pagination/pagination.component.mjs +37 -0
  29. package/esm2020/app/components/saved-filters/saved-filters.component.mjs +29 -0
  30. package/esm2020/app/components/status/status.component.mjs +66 -0
  31. package/{esm2015/app/directives/cell/cell.directive.js → esm2020/app/directives/cell/cell.directive.mjs} +4 -4
  32. package/{esm2015/app/directives/column/column.directive.js → esm2020/app/directives/column/column.directive.mjs} +4 -4
  33. package/{esm2015/app/directives/content/content.directive.js → esm2020/app/directives/content/content.directive.mjs} +4 -4
  34. package/{esm2015/app/directives/content-init/content-init.directive.js → esm2020/app/directives/content-init/content-init.directive.mjs} +4 -4
  35. package/esm2020/app/directives/draggable-list/draggable-list.directive.mjs +328 -0
  36. package/esm2020/app/directives/draggable-row/draggable-row.directive.mjs +78 -0
  37. package/{esm2015/app/directives/empty-state/empty-state.directive.js → esm2020/app/directives/empty-state/empty-state.directive.mjs} +4 -4
  38. package/{esm2015/app/directives/footer/footer.directive.js → esm2020/app/directives/footer/footer.directive.mjs} +4 -4
  39. package/{esm2015/app/directives/group-expand-trigger/group-expand-trigger.directive.js → esm2020/app/directives/group-expand-trigger/group-expand-trigger.directive.mjs} +4 -4
  40. package/{esm2015/app/directives/group-footer/group-footer.directive.js → esm2020/app/directives/group-footer/group-footer.directive.mjs} +4 -4
  41. package/{esm2015/app/directives/group-header/group-header.directive.js → esm2020/app/directives/group-header/group-header.directive.mjs} +4 -4
  42. package/{esm2015/app/directives/header/header.directive.js → esm2020/app/directives/header/header.directive.mjs} +4 -4
  43. package/{esm2015/app/directives/heading/heading.directive.js → esm2020/app/directives/heading/heading.directive.mjs} +4 -4
  44. package/{esm2015/app/directives/heading-container/heading-container.directive.js → esm2020/app/directives/heading-container/heading-container.directive.mjs} +4 -4
  45. package/{esm2015/app/directives/subheading/subheading.directive.js → esm2020/app/directives/subheading/subheading.directive.mjs} +4 -4
  46. package/{esm2015/app/fs-list.module.js → esm2020/app/fs-list.module.mjs} +5 -5
  47. package/esm2020/app/interfaces/listconfig.interface.mjs +2 -0
  48. package/{esm2015/app/interfaces/pagination.interface.js → esm2020/app/interfaces/pagination.interface.mjs} +1 -1
  49. package/esm2020/app/models/row-action.model.mjs +90 -0
  50. package/esm2020/app/models/row.mjs +89 -0
  51. package/{esm2015/app/pipes/action-label.js → esm2020/app/pipes/action-label.mjs} +4 -4
  52. package/{esm2015/app/services/group-expand-notifier.service.js → esm2020/app/services/group-expand-notifier.service.mjs} +4 -4
  53. package/fesm2015/{firestitch-list.js → firestitch-list.mjs} +2716 -2755
  54. package/fesm2015/firestitch-list.mjs.map +1 -0
  55. package/fesm2020/firestitch-list.mjs +5844 -0
  56. package/fesm2020/firestitch-list.mjs.map +1 -0
  57. package/package.json +20 -7
  58. package/bundles/firestitch-list.umd.js +0 -7147
  59. package/bundles/firestitch-list.umd.js.map +0 -1
  60. package/esm2015/app/classes/data-controller.js +0 -365
  61. package/esm2015/app/classes/external-params-controller.js +0 -147
  62. package/esm2015/app/classes/list-controller.js +0 -743
  63. package/esm2015/app/classes/reorder-controller.js +0 -183
  64. package/esm2015/app/classes/selection-controller.js +0 -468
  65. package/esm2015/app/components/body/body.component.js +0 -69
  66. package/esm2015/app/components/body/row/actions/actions.component.js +0 -99
  67. package/esm2015/app/components/body/row/cell/cell.component.js +0 -113
  68. package/esm2015/app/components/body/row/inline-action/inline-action.component.js +0 -37
  69. package/esm2015/app/components/body/row/menu-action/menu-action.component.js +0 -50
  70. package/esm2015/app/components/body/row/row.component.js +0 -315
  71. package/esm2015/app/components/customize-cols/customize-cols.component.js +0 -72
  72. package/esm2015/app/components/footer/footer-row/footer-cell/footer-cell.component.js +0 -20
  73. package/esm2015/app/components/footer/footer-row/footer-row.component.js +0 -33
  74. package/esm2015/app/components/footer/footer.component.js +0 -36
  75. package/esm2015/app/components/head/head-cell/head-cell.component.js +0 -34
  76. package/esm2015/app/components/head/head.component.js +0 -108
  77. package/esm2015/app/components/list/list.component.js +0 -388
  78. package/esm2015/app/components/loader/loader.component.js +0 -45
  79. package/esm2015/app/components/manage-saved-filters/manage-saved-filters.component.js +0 -79
  80. package/esm2015/app/components/pagination/pagination.component.js +0 -42
  81. package/esm2015/app/components/saved-filters/saved-filters.component.js +0 -32
  82. package/esm2015/app/components/status/status.component.js +0 -72
  83. package/esm2015/app/directives/draggable-list/draggable-list.directive.js +0 -330
  84. package/esm2015/app/directives/draggable-row/draggable-row.directive.js +0 -79
  85. package/esm2015/app/interfaces/listconfig.interface.js +0 -2
  86. package/esm2015/app/models/row-action.model.js +0 -90
  87. package/esm2015/app/models/row.js +0 -81
  88. package/fesm2015/firestitch-list.js.map +0 -1
  89. /package/{esm2015/app/classes/actions-controller.js → esm2020/app/classes/actions-controller.mjs} +0 -0
  90. /package/{esm2015/app/classes/columns-controller.js → esm2020/app/classes/columns-controller.mjs} +0 -0
  91. /package/{esm2015/app/classes/index.js → esm2020/app/classes/index.mjs} +0 -0
  92. /package/{esm2015/app/classes/sorting-controller.js → esm2020/app/classes/sorting-controller.mjs} +0 -0
  93. /package/{esm2015/app/directives/index.js → esm2020/app/directives/index.mjs} +0 -0
  94. /package/{esm2015/app/enums/button-type.enum.js → esm2020/app/enums/button-type.enum.mjs} +0 -0
  95. /package/{esm2015/app/enums/page-change-type.enum.js → esm2020/app/enums/page-change-type.enum.mjs} +0 -0
  96. /package/{esm2015/app/enums/pagination-strategy.enum.js → esm2020/app/enums/pagination-strategy.enum.mjs} +0 -0
  97. /package/{esm2015/app/enums/row-type.enum.js → esm2020/app/enums/row-type.enum.mjs} +0 -0
  98. /package/{esm2015/app/enums/state.enum.js → esm2020/app/enums/state.enum.mjs} +0 -0
  99. /package/{esm2015/app/fs-list.providers.js → esm2020/app/fs-list.providers.mjs} +0 -0
  100. /package/{esm2015/app/interfaces/cellconfig.interface.js → esm2020/app/interfaces/cellconfig.interface.mjs} +0 -0
  101. /package/{esm2015/app/interfaces/column-config.interface.js → esm2020/app/interfaces/column-config.interface.mjs} +0 -0
  102. /package/{esm2015/app/interfaces/draggable-list.interface.js → esm2020/app/interfaces/draggable-list.interface.mjs} +0 -0
  103. /package/{esm2015/app/interfaces/external-params.interface.js → esm2020/app/interfaces/external-params.interface.mjs} +0 -0
  104. /package/{esm2015/app/interfaces/index.js → esm2020/app/interfaces/index.mjs} +0 -0
  105. /package/{esm2015/app/interfaces/sorting-change-event.interface.js → esm2020/app/interfaces/sorting-change-event.interface.mjs} +0 -0
  106. /package/{esm2015/app/models/column-async-attribute.js → esm2020/app/models/column-async-attribute.mjs} +0 -0
  107. /package/{esm2015/app/models/column-attributes.js → esm2020/app/models/column-attributes.mjs} +0 -0
  108. /package/{esm2015/app/models/column.model.js → esm2020/app/models/column.model.mjs} +0 -0
  109. /package/{esm2015/app/models/row/base-row.js → esm2020/app/models/row/base-row.mjs} +0 -0
  110. /package/{esm2015/app/models/row/child-row.js → esm2020/app/models/row/child-row.mjs} +0 -0
  111. /package/{esm2015/app/models/row/group-footer-row.js → esm2020/app/models/row/group-footer-row.mjs} +0 -0
  112. /package/{esm2015/app/models/row/group-row.js → esm2020/app/models/row/group-row.mjs} +0 -0
  113. /package/{esm2015/app/models/row/simple-row.js → esm2020/app/models/row/simple-row.mjs} +0 -0
  114. /package/{esm2015/app/models/styleConfig.model.js → esm2020/app/models/styleConfig.model.mjs} +0 -0
  115. /package/{esm2015/app/pipes/index.js → esm2020/app/pipes/index.mjs} +0 -0
  116. /package/{esm2015/firestitch-list.js → esm2020/firestitch-list.mjs} +0 -0
  117. /package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
@@ -1,81 +0,0 @@
1
- import { RowType } from '../enums/row-type.enum';
2
- import { ChildRow } from './row/child-row';
3
- import { GroupRow } from './row/group-row';
4
- import { SimpleRow } from './row/simple-row';
5
- import { GroupFooterRow } from './row/group-footer-row';
6
- export class Row {
7
- constructor(data = {}, rowType = RowType.Simple, { parent, initialExpand } = {}) {
8
- switch (rowType) {
9
- case RowType.Simple:
10
- {
11
- this._row = new SimpleRow(data);
12
- }
13
- break;
14
- case RowType.Group:
15
- {
16
- this._row = new GroupRow(data, initialExpand);
17
- }
18
- break;
19
- case RowType.GroupChild:
20
- {
21
- this._row = new ChildRow(data, parent);
22
- }
23
- break;
24
- }
25
- }
26
- get index() {
27
- return this._row.index;
28
- }
29
- set index(value) {
30
- this._row.index = value;
31
- }
32
- get readyToSwap() {
33
- return this._row.readyToSwap;
34
- }
35
- get visible() {
36
- return this._row.visible;
37
- }
38
- set readyToSwap(value) {
39
- this._row.readyToSwap = value;
40
- }
41
- get data() {
42
- return this._row.data;
43
- }
44
- get type() {
45
- return this._row.type;
46
- }
47
- get isGroup() {
48
- return this._row instanceof GroupRow;
49
- }
50
- get isGroupChild() {
51
- return this._row instanceof ChildRow;
52
- }
53
- get isGroupFooter() {
54
- return this._row instanceof GroupFooterRow;
55
- }
56
- get parent() {
57
- return this._row.parent;
58
- }
59
- get children() {
60
- return this._row.children;
61
- }
62
- get expanded() {
63
- return this._row.expanded;
64
- }
65
- get expanded$() {
66
- return this._row.expanded$;
67
- }
68
- updateChildrenIndexes() {
69
- this._row.updateChildrenIndexes();
70
- }
71
- toggleRowExpandStatus() {
72
- this._row.toggleRowExpandStatus();
73
- }
74
- getReorderData() {
75
- return this._row.getReorderData();
76
- }
77
- destroy() {
78
- this._row.destroy();
79
- }
80
- }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2RlbHMvcm93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFeEQsTUFBTSxPQUFPLEdBQUc7SUFJZCxZQUNFLE9BQVksRUFBRSxFQUNkLFVBQW1CLE9BQU8sQ0FBQyxNQUFNLEVBQ2pDLEVBQUUsTUFBTSxFQUFFLGFBQWEsS0FBcUQsRUFBRTtRQUU5RSxRQUFRLE9BQU8sRUFBRTtZQUNmLEtBQUssT0FBTyxDQUFDLE1BQU07Z0JBQUU7b0JBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ2pDO2dCQUFDLE1BQU07WUFFUixLQUFLLE9BQU8sQ0FBQyxLQUFLO2dCQUFFO29CQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztpQkFDL0M7Z0JBQUMsTUFBTTtZQUVSLEtBQUssT0FBTyxDQUFDLFVBQVU7Z0JBQUU7b0JBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2lCQUN4QztnQkFBQyxNQUFNO1NBQ1Q7SUFDSCxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBVyxLQUFLLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBUSxJQUFJLENBQUMsSUFBaUIsQ0FBQyxPQUFPLENBQUM7SUFDekMsQ0FBQztJQUVELElBQVcsV0FBVyxDQUFDLEtBQWM7UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxZQUFZLFFBQVEsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUksWUFBWSxRQUFRLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLFlBQVksY0FBYyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFRLElBQUksQ0FBQyxJQUFpQixDQUFDLE1BQU0sQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQVEsSUFBSSxDQUFDLElBQWlCLENBQUMsUUFBUSxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBUSxJQUFJLENBQUMsSUFBaUIsQ0FBQyxRQUFRLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFRLElBQUksQ0FBQyxJQUFpQixDQUFDLFNBQVMsQ0FBQztJQUMzQyxDQUFDO0lBRU0scUJBQXFCO1FBQ3pCLElBQUksQ0FBQyxJQUFpQixDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVNLHFCQUFxQjtRQUN6QixJQUFJLENBQUMsSUFBaUIsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFTSxjQUFjO1FBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm93VHlwZSB9IGZyb20gJy4uL2VudW1zL3Jvdy10eXBlLmVudW0nO1xuaW1wb3J0IHsgQ2hpbGRSb3cgfSBmcm9tICcuL3Jvdy9jaGlsZC1yb3cnO1xuaW1wb3J0IHsgR3JvdXBSb3cgfSBmcm9tICcuL3Jvdy9ncm91cC1yb3cnO1xuaW1wb3J0IHsgU2ltcGxlUm93IH0gZnJvbSAnLi9yb3cvc2ltcGxlLXJvdyc7XG5pbXBvcnQgeyBGc0xpc3RSZW9yZGVyRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgR3JvdXBGb290ZXJSb3cgfSBmcm9tICcuL3Jvdy9ncm91cC1mb290ZXItcm93JztcblxuZXhwb3J0IGNsYXNzIFJvdyB7XG5cbiAgcHJpdmF0ZSBfcm93OiAoU2ltcGxlUm93IHwgQ2hpbGRSb3cgfCBHcm91cFJvdyk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZGF0YTogYW55ID0ge30sXG4gICAgcm93VHlwZTogUm93VHlwZSA9IFJvd1R5cGUuU2ltcGxlLFxuICAgIHsgcGFyZW50LCBpbml0aWFsRXhwYW5kIH06IHsgcGFyZW50PzogR3JvdXBSb3csIGluaXRpYWxFeHBhbmQ/OiBib29sZWFuIH0gPSB7fSxcbiAgKSB7XG4gICAgc3dpdGNoIChyb3dUeXBlKSB7XG4gICAgICBjYXNlIFJvd1R5cGUuU2ltcGxlOiB7XG4gICAgICAgIHRoaXMuX3JvdyA9IG5ldyBTaW1wbGVSb3coZGF0YSk7XG4gICAgICB9IGJyZWFrO1xuXG4gICAgICBjYXNlIFJvd1R5cGUuR3JvdXA6IHtcbiAgICAgICAgdGhpcy5fcm93ID0gbmV3IEdyb3VwUm93KGRhdGEsIGluaXRpYWxFeHBhbmQpO1xuICAgICAgfSBicmVhaztcblxuICAgICAgY2FzZSBSb3dUeXBlLkdyb3VwQ2hpbGQ6IHtcbiAgICAgICAgdGhpcy5fcm93ID0gbmV3IENoaWxkUm93KGRhdGEsIHBhcmVudCk7XG4gICAgICB9IGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcm93LmluZGV4O1xuICB9XG5cbiAgcHVibGljIHNldCBpbmRleCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fcm93LmluZGV4ID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlYWR5VG9Td2FwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yb3cucmVhZHlUb1N3YXA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLl9yb3cgYXMgQ2hpbGRSb3cpLnZpc2libGU7XG4gIH1cblxuICBwdWJsaWMgc2V0IHJlYWR5VG9Td2FwKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcm93LnJlYWR5VG9Td2FwID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRhdGEoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fcm93LmRhdGE7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHR5cGUoKTogUm93VHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuX3Jvdy50eXBlO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0dyb3VwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yb3cgaW5zdGFuY2VvZiBHcm91cFJvdztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNHcm91cENoaWxkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yb3cgaW5zdGFuY2VvZiBDaGlsZFJvdztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNHcm91cEZvb3RlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcm93IGluc3RhbmNlb2YgR3JvdXBGb290ZXJSb3c7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBhcmVudCgpOiBHcm91cFJvdyB7XG4gICAgcmV0dXJuICh0aGlzLl9yb3cgYXMgQ2hpbGRSb3cpLnBhcmVudDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hpbGRyZW4oKTogKENoaWxkUm93IHwgR3JvdXBGb290ZXJSb3cpW10ge1xuICAgIHJldHVybiAodGhpcy5fcm93IGFzIEdyb3VwUm93KS5jaGlsZHJlbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZXhwYW5kZWQoKSB7XG4gICAgcmV0dXJuICh0aGlzLl9yb3cgYXMgR3JvdXBSb3cpLmV4cGFuZGVkO1xuICB9XG5cbiAgcHVibGljIGdldCBleHBhbmRlZCQoKSB7XG4gICAgcmV0dXJuICh0aGlzLl9yb3cgYXMgR3JvdXBSb3cpLmV4cGFuZGVkJDtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVDaGlsZHJlbkluZGV4ZXMoKSB7XG4gICAgKHRoaXMuX3JvdyBhcyBHcm91cFJvdykudXBkYXRlQ2hpbGRyZW5JbmRleGVzKCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlUm93RXhwYW5kU3RhdHVzKCkge1xuICAgICh0aGlzLl9yb3cgYXMgR3JvdXBSb3cpLnRvZ2dsZVJvd0V4cGFuZFN0YXR1cygpO1xuICB9XG5cbiAgcHVibGljIGdldFJlb3JkZXJEYXRhKCk6IEZzTGlzdFJlb3JkZXJEYXRhIHtcbiAgICByZXR1cm4gdGhpcy5fcm93LmdldFJlb3JkZXJEYXRhKCk7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpIHtcbiAgICB0aGlzLl9yb3cuZGVzdHJveSgpO1xuICB9XG59XG4iXX0=