@esfaenza/es-table 11.2.37 → 11.2.41

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 (127) hide show
  1. package/bundles/esfaenza-es-table.umd.js +884 -1146
  2. package/bundles/esfaenza-es-table.umd.js.map +1 -1
  3. package/bundles/esfaenza-es-table.umd.min.js +1 -1
  4. package/bundles/esfaenza-es-table.umd.min.js.map +1 -1
  5. package/esfaenza-es-table.d.ts +5 -6
  6. package/esfaenza-es-table.metadata.json +1 -1
  7. package/esm2015/esfaenza-es-table.js +6 -7
  8. package/esm2015/lib/components/es-table/es_table.component.js +55 -174
  9. package/esm2015/lib/components/es-td/es_td.component.js +1 -35
  10. package/esm2015/lib/core/handlers/ColumnMetadataHandler.js +669 -0
  11. package/esm2015/lib/core/handlers/DynamicModeHandler.js +63 -0
  12. package/esm2015/lib/core/handlers/ExportHandler.js +106 -0
  13. package/esm2015/lib/core/handlers/HierarchyModeHandler.js +136 -0
  14. package/esm2015/lib/core/handlers/ItemsHandler.js +112 -0
  15. package/esm2015/lib/core/handlers/ReportModeHandler.js +70 -0
  16. package/esm2015/lib/core/handlers/RowGroupingHandler.js +481 -0
  17. package/esm2015/lib/core/handlers/SelectionHandler.js +526 -0
  18. package/esm2015/lib/core/handlers/UtilitiesHandler.js +155 -0
  19. package/esm2015/lib/directives/es_th.directive.js +4 -1
  20. package/esm2015/lib/domain/configuration/EsTableDefaultable.js +1 -1
  21. package/esm2015/lib/domain/externals/CornerMenuOption.js +4 -0
  22. package/esm2015/lib/domain/externals/EsTableColumnsDefinition.js +31 -0
  23. package/esm2015/lib/domain/externals/EsTableOperationDefinition.js +22 -0
  24. package/esm2015/lib/domain/externals/appsearch/AppOrdering.js +16 -0
  25. package/esm2015/lib/domain/externals/appsearch/AppSearch.js +35 -0
  26. package/esm2015/lib/domain/externals/appsearch/GenericItem.js +11 -0
  27. package/esm2015/lib/domain/externals/appsearch/Group.js +17 -0
  28. package/esm2015/lib/domain/externals/appsearch/GroupAggregation.js +16 -0
  29. package/esm2015/lib/domain/externals/appsearch/GroupFilter.js +14 -0
  30. package/esm2015/lib/domain/externals/appsearch/GroupOrAggregation.js +16 -0
  31. package/esm2015/lib/domain/externals/appsearch/ItemsSelection.js +23 -0
  32. package/esm2015/lib/domain/externals/report/ReportColumn.js +4 -0
  33. package/esm2015/lib/domain/externals/report/ReportDefinition.js +4 -0
  34. package/esm2015/lib/domain/externals/report/ReportOrder.js +4 -0
  35. package/esm2015/lib/domain/externals/report/ReportParam.js +4 -0
  36. package/esm2015/lib/domain/externals/report/ReportResult.js +4 -0
  37. package/esm2015/lib/domain/externals/report/ReportRow.js +4 -0
  38. package/esm2015/lib/domain/internals/CacheTriptic.js +16 -0
  39. package/esm2015/lib/domain/internals/EsTableColumn.js +27 -0
  40. package/esm2015/lib/domain/internals/GroupPager.js +22 -0
  41. package/esm2015/lib/domain/internals/GroupRouteFragment.js +17 -0
  42. package/esm2015/lib/domain/internals/TdElement.js +2 -0
  43. package/esm2015/lib/domain/internals/ThAggregation.js +16 -0
  44. package/esm2015/lib/domain/internals/ThElement.js +2 -0
  45. package/esm2015/lib/es-table.module.js +2 -2
  46. package/esm2015/public-api.js +21 -7
  47. package/fesm2015/esfaenza-es-table.js +832 -1093
  48. package/fesm2015/esfaenza-es-table.js.map +1 -1
  49. package/lib/components/es-table/es_table.component.d.ts +32 -68
  50. package/lib/components/es-td/es_td.component.d.ts +0 -2
  51. package/lib/core/handlers/{classes/ColumnMetadataHandler.d.ts → ColumnMetadataHandler.d.ts} +24 -23
  52. package/lib/core/handlers/{classes/DynamicModeHandler.d.ts → DynamicModeHandler.d.ts} +2 -2
  53. package/lib/core/handlers/{classes/ExportHandler.d.ts → ExportHandler.d.ts} +1 -1
  54. package/lib/core/handlers/{classes/HierarchyModeHandler.d.ts → HierarchyModeHandler.d.ts} +1 -1
  55. package/lib/core/handlers/{classes/ItemsHandler.d.ts → ItemsHandler.d.ts} +1 -7
  56. package/lib/core/handlers/{classes/ReportModeHandler.d.ts → ReportModeHandler.d.ts} +2 -2
  57. package/lib/core/handlers/{classes/RowGroupingHandler.d.ts → RowGroupingHandler.d.ts} +10 -6
  58. package/lib/core/handlers/{classes/SelectionHandler.d.ts → SelectionHandler.d.ts} +3 -3
  59. package/lib/core/handlers/{classes/UtilitiesHandler.d.ts → UtilitiesHandler.d.ts} +0 -16
  60. package/lib/directives/es_th.directive.d.ts +3 -1
  61. package/lib/domain/configuration/EsTableDefaultable.d.ts +1 -0
  62. package/lib/domain/externals/{classes/CornerMenuOption.d.ts → CornerMenuOption.d.ts} +0 -0
  63. package/lib/domain/externals/{classes/EsTableColumnsDefinition.d.ts → EsTableColumnsDefinition.d.ts} +0 -0
  64. package/lib/domain/externals/{classes/EsTableOperationDefinition.d.ts → EsTableOperationDefinition.d.ts} +0 -0
  65. package/lib/domain/externals/{classes/appsearch → appsearch}/AppOrdering.d.ts +0 -0
  66. package/lib/domain/externals/{classes/appsearch → appsearch}/AppSearch.d.ts +0 -0
  67. package/lib/domain/externals/{classes/appsearch → appsearch}/GenericItem.d.ts +0 -0
  68. package/lib/domain/externals/{classes/appsearch → appsearch}/Group.d.ts +0 -0
  69. package/lib/domain/externals/{classes/appsearch → appsearch}/GroupAggregation.d.ts +0 -0
  70. package/lib/domain/externals/{classes/appsearch → appsearch}/GroupFilter.d.ts +0 -0
  71. package/lib/domain/externals/{classes/appsearch → appsearch}/GroupOrAggregation.d.ts +0 -0
  72. package/lib/domain/externals/{classes/appsearch → appsearch}/ItemsSelection.d.ts +1 -1
  73. package/lib/domain/externals/{classes/report → report}/ReportColumn.d.ts +0 -0
  74. package/lib/domain/externals/{classes/report → report}/ReportDefinition.d.ts +3 -1
  75. package/lib/domain/externals/{classes/report → report}/ReportOrder.d.ts +0 -0
  76. package/lib/domain/externals/{classes/report → report}/ReportParam.d.ts +0 -0
  77. package/lib/domain/externals/{classes/report → report}/ReportResult.d.ts +2 -1
  78. package/lib/domain/externals/{classes/report → report}/ReportRow.d.ts +0 -0
  79. package/lib/domain/internals/{classes/CacheTriptic.d.ts → CacheTriptic.d.ts} +0 -0
  80. package/lib/domain/internals/{classes/EsTableColumn.d.ts → EsTableColumn.d.ts} +2 -1
  81. package/lib/domain/internals/{classes/GroupPager.d.ts → GroupPager.d.ts} +4 -1
  82. package/lib/domain/internals/{classes/GroupRouteFragment.d.ts → GroupRouteFragment.d.ts} +0 -0
  83. package/lib/domain/internals/TdElement.d.ts +35 -0
  84. package/lib/domain/internals/{classes/ThAggregation.d.ts → ThAggregation.d.ts} +0 -0
  85. package/lib/domain/internals/{classes/ThElement.d.ts → ThElement.d.ts} +0 -0
  86. package/package.json +1 -1
  87. package/public-api.d.ts +20 -3
  88. package/esm2015/lib/core/handlers/classes/ColumnMetadataHandler.js +0 -719
  89. package/esm2015/lib/core/handlers/classes/DynamicModeHandler.js +0 -64
  90. package/esm2015/lib/core/handlers/classes/ExportHandler.js +0 -106
  91. package/esm2015/lib/core/handlers/classes/HierarchyModeHandler.js +0 -136
  92. package/esm2015/lib/core/handlers/classes/ItemsHandler.js +0 -130
  93. package/esm2015/lib/core/handlers/classes/ReportModeHandler.js +0 -70
  94. package/esm2015/lib/core/handlers/classes/RowGroupingHandler.js +0 -475
  95. package/esm2015/lib/core/handlers/classes/SelectionHandler.js +0 -527
  96. package/esm2015/lib/core/handlers/classes/UtilitiesHandler.js +0 -169
  97. package/esm2015/lib/core/handlers/index.js +0 -10
  98. package/esm2015/lib/domain/externals/classes/CornerMenuOption.js +0 -4
  99. package/esm2015/lib/domain/externals/classes/EsTableColumnsDefinition.js +0 -31
  100. package/esm2015/lib/domain/externals/classes/EsTableOperationDefinition.js +0 -22
  101. package/esm2015/lib/domain/externals/classes/appsearch/AppOrdering.js +0 -16
  102. package/esm2015/lib/domain/externals/classes/appsearch/AppSearch.js +0 -35
  103. package/esm2015/lib/domain/externals/classes/appsearch/GenericItem.js +0 -11
  104. package/esm2015/lib/domain/externals/classes/appsearch/Group.js +0 -17
  105. package/esm2015/lib/domain/externals/classes/appsearch/GroupAggregation.js +0 -16
  106. package/esm2015/lib/domain/externals/classes/appsearch/GroupFilter.js +0 -14
  107. package/esm2015/lib/domain/externals/classes/appsearch/GroupOrAggregation.js +0 -16
  108. package/esm2015/lib/domain/externals/classes/appsearch/ItemsSelection.js +0 -23
  109. package/esm2015/lib/domain/externals/classes/report/ReportColumn.js +0 -4
  110. package/esm2015/lib/domain/externals/classes/report/ReportDefinition.js +0 -4
  111. package/esm2015/lib/domain/externals/classes/report/ReportOrder.js +0 -4
  112. package/esm2015/lib/domain/externals/classes/report/ReportParam.js +0 -4
  113. package/esm2015/lib/domain/externals/classes/report/ReportResult.js +0 -4
  114. package/esm2015/lib/domain/externals/classes/report/ReportRow.js +0 -4
  115. package/esm2015/lib/domain/externals/index.js +0 -18
  116. package/esm2015/lib/domain/index.js +0 -3
  117. package/esm2015/lib/domain/internals/classes/CacheTriptic.js +0 -16
  118. package/esm2015/lib/domain/internals/classes/EsTableColumn.js +0 -26
  119. package/esm2015/lib/domain/internals/classes/GroupPager.js +0 -21
  120. package/esm2015/lib/domain/internals/classes/GroupRouteFragment.js +0 -17
  121. package/esm2015/lib/domain/internals/classes/ThAggregation.js +0 -16
  122. package/esm2015/lib/domain/internals/classes/ThElement.js +0 -2
  123. package/esm2015/lib/domain/internals/index.js +0 -7
  124. package/lib/core/handlers/index.d.ts +0 -9
  125. package/lib/domain/externals/index.d.ts +0 -17
  126. package/lib/domain/index.d.ts +0 -2
  127. package/lib/domain/internals/index.d.ts +0 -6
@@ -43,43 +43,9 @@ export class EsTd {
43
43
  // Se è Internal significa che è gestita internamente da ES-TABLE quindi evito di fare sti due passaggi di lettura del DOM
44
44
  if (this.Internal)
45
45
  return;
46
- // L'hash è calcolato dalla ES-table in fase di binding
47
- this.Context = this.Context || this.getTemplateContext()._hash;
48
46
  this.Content = this.Display === null || this.Display === "" ? this.sanitizer.bypassSecurityTrustHtml(this.myself.nativeElement.innerHTML) : this.sanitizer.bypassSecurityTrustHtml(this.Display);
49
47
  this.Class = this.myself.nativeElement.className.replace("app-display-none", "");
50
48
  }
51
- /** Ottiene il contesto della view su cui è istanziato il componente */
52
- getTemplateContext() {
53
- // NGBUG: (<any>this._viewContainer)._view non esiste più in IVY: https://stackoverflow.com/questions/60398827/getting-the-context-of-the-template-inside-of-which-my-component-has-been-render
54
- let vc = this._viewContainer;
55
- let context;
56
- // Primo giro di recupero del contesto, supponendo di non avere a che fare col compilatore IVY
57
- if (vc._view == null)
58
- context = null;
59
- else if (vc._view.parent && !vc._view.context.$implicit && vc._view.parent.context && vc._view.parent.context.$implicit)
60
- context = vc._view.parent.context.$implicit;
61
- else if (vc._view.context && vc._view.context.ngIf)
62
- context = vc._view.viewContainerParent.context.$implicit;
63
- else
64
- context = vc._view.context.$implicit;
65
- if (context)
66
- return context;
67
- // Se non ho ancora trovato il contesto probabilmente sono in IVY e devo fare dei lookup un po' incasinati per beccarlo
68
- var array = this._viewContainer._hostLView;
69
- for (let i = 0; i < array.length; i++) {
70
- let item = array[i];
71
- if (item && item.$implicit && !item.ngIf)
72
- return item.$implicit;
73
- // Second level search for the real context in case the first one we find is an ngIf
74
- if (item && item.length && item.length > 0) {
75
- for (let ii = 0; ii < item.length; ii++) {
76
- let iitem = item[ii];
77
- if (iitem && iitem.$implicit && !iitem.ngIf)
78
- return iitem.$implicit;
79
- }
80
- }
81
- }
82
- }
83
49
  }
84
50
  EsTd.decorators = [
85
51
  { type: Component, args: [{
@@ -103,4 +69,4 @@ EsTd.propDecorators = {
103
69
  Context: [{ type: Input }],
104
70
  Visible: [{ type: Input }]
105
71
  };
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNfdGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9jb21wb25lbnRzL2VzLXRkL2VzX3RkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFTO0FBQ1QsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sMkJBQTJCLENBQUM7QUFFbkUseUVBQXlFO0FBTXpFLE1BQU0sT0FBTyxJQUFJO0lBNkJiLGNBQWM7SUFDZCxZQUFvQixNQUFrQixFQUFVLFFBQW1CLEVBQVUsY0FBZ0MsRUFBWSxTQUF1QjtRQUE1SCxXQUFNLEdBQU4sTUFBTSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUFZLGNBQVMsR0FBVCxTQUFTLENBQWM7UUE1QmhKLDJFQUEyRTtRQUMzRCxPQUFFLEdBQVcsRUFBRSxDQUFDO1FBUWhDLDRIQUE0SDtRQUNuSCxZQUFPLEdBQVksSUFBSSxDQUFDO1FBRWpDLG1EQUFtRDtRQUMxQyxhQUFRLEdBQVMsSUFBSSxDQUFDO0lBZXFILENBQUM7SUFFcko7Ozs7T0FJRztJQUNILElBQWEsT0FBTyxDQUFDLFVBQW1CO1FBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBRTNCLElBQUksVUFBVTtZQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLGtCQUFrQixDQUFDLENBQUM7O1lBRXpFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLGtCQUFrQixDQUFD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QUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNyQixJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUk7d0JBQ3ZDLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQztpQkFDOUI7YUFDSjtTQUNKO0lBQ0wsQ0FBQzs7O1lBN0dKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsU0FBUztnQkFDbkIsOERBQXFDO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNsRDs7O1lBUnFDLFVBQVU7WUFBckIsU0FBUztZQUFjLGdCQUFnQjtZQUN6RCxZQUFZOzs7aUJBV2hCLEtBQUssU0FBQyxPQUFPO3VCQUdiLEtBQUs7eUJBR0wsS0FBSztzQkFHTCxLQUFLO3VCQUdMLEtBQUs7c0JBU0wsS0FBSztzQkFhTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy9Bbmd1bGFyXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFJlbmRlcmVyMiwgRWxlbWVudFJlZiwgVmlld0NvbnRhaW5lclJlZiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcblxyXG4vKiogQ29tcG9uZW50ZSByYXBwcmVzZW50YW50ZSB1bmEgc2luZ29sYSBjZWxsYSBkZWwgYm9keSBkZWxsYSB0YWJlbGxhICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiW2VzLXRkXVwiLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9lc190ZC5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzVGQge1xyXG5cclxuICAgIC8qKiBJZCBkZWxsYSBjZWxsYSwgZGV2J2Vzc2VyZSBsbyBzdGVzc28gZGVsbGEgY29sb25uYSAqKkVzVGgqKiByZWxhdGl2YSAqL1xyXG4gICAgQElucHV0KCdlcy10ZCcpIElEOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIC8qKiBJbmRpY2Egc2Ugw6ggdW5hIGNlbGxhIGludGVybmEgKHJpZ2VuZXJhdGEgcHJvZ3JhbW1hdGljYW1lbnRlKSBvIG5vICovXHJcbiAgICBASW5wdXQoKSBJbnRlcm5hbD86IGJvb2xlYW47XHJcblxyXG4gICAgLyoqIFJvdXRlckxpbmsgcXVhbG9yYSBpbCBjbGljayBzdSBxdWVzdGEgY2VsbGEgZGViYmEgbmF2aWdhcmUgZGEgcXVhbGNoZSBwYXJ0ZSAqL1xyXG4gICAgQElucHV0KCkgUm91dGVyTGluaz86IGFueTtcclxuXHJcbiAgICAvKiogVmFsb3JlIGRhIG1vc3RyYXJlIGFsbCdpbnRlcm5vIGRlbGxhIGNlbGxhLiBTZSBvbWVzc28gdmVycsOgIHByb2lldHRhdG8gaWwgY29udGVudXRvIGRhbCB0ZW1wbGF0ZSBpbiBjdWkgw6ggc3RhdGEgdXNhdGEgKi9cclxuICAgIEBJbnB1dCgpIERpc3BsYXk/OiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAgIC8qKiBUZW1wbGF0ZSBBbmd1bGFyIGRhIGlzdGFuemlhcmUgcGVyIHF1ZXN0byBURCAqL1xyXG4gICAgQElucHV0KCkgVGVtcGxhdGU/OiBhbnkgPSBudWxsO1xyXG5cclxuICAgIC8qKiBDbGFzc2kgZGEgYXBwbGljYXJlIGFsbGEgY2VsbGEgKi9cclxuICAgIHB1YmxpYyBDbGFzcz86IHN0cmluZztcclxuXHJcbiAgICAvKiogQ29udGVudXRvIGRhIG1vc3RyYXJlIHByb2lldHRhdG8gZGFsIGNvbXBvbmVudGUgcGFkcmUgKi9cclxuICAgIHB1YmxpYyBDb250ZW50PzogU2FmZUh0bWw7XHJcblxyXG4gICAgLyoqIENvbnRlc3RvIGRlbGwnb2dnZXR0byBhIGN1aSBzaSByaWZlcmlzY2UgaWwgZGF0byB2aXN1YWxpenphdG8uIENvbnRpZW5lIGwnaGFzaCBkZWxsJ29nZ2V0dG8gaW4gcXVlc3Rpb25lICovXHJcbiAgICBASW5wdXQoKSBDb250ZXh0OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIEluZGljYXppb25pIHN1bGxhIHZpc2liaWxpdMOgIGRlbGxhIGNlbGxhICovXHJcbiAgICBwcml2YXRlIF9WaXNpYmxlPzogYm9vbGVhbjtcclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBteXNlbGY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBfdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZiwgcHJvdGVjdGVkIHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEltcG9zdGEgbGEgdmlzaWJpbGl0w6AgbyBtZW5vIGRlbGxhIGNlbGxhLCBzaSB0cmFkdWNlIG5lbGwnYXBwbGljYXppb25lIG8gcmltb3ppb25lIGRlbGxhIGNsYXNzZSAqKmFwcC1kaXNwbGF5LW5vbmUqKlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGV4cHJlc3Npb24gSW5kaWNhemlvbmUgZGVsbGEgdmlzaWJpbGl0w6BcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgc2V0IFZpc2libGUoZXhwcmVzc2lvbjogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX1Zpc2libGUgPSBleHByZXNzaW9uO1xyXG5cclxuICAgICAgICBpZiAoZXhwcmVzc2lvbilcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLm15c2VsZi5uYXRpdmVFbGVtZW50LCBcImFwcC1kaXNwbGF5LW5vbmVcIik7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMubXlzZWxmLm5hdGl2ZUVsZW1lbnQsIFwiYXBwLWRpc3BsYXktbm9uZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc3RpdHVpc2NlIGxvIHN0YXRvIGRpIFZpc2liaWxpdMOgIGRlbGxhIGNlbGxhIGluIG9nZ2V0dG9cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59ICoqdHJ1ZSoqIHNlIHZpc2liaWxlLCAqKmZhbHNlKiogYWx0cmltZW50aVxyXG4gICAgICovXHJcbiAgICBnZXQgVmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5fVmlzaWJsZSA9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgIHRoaXMuX1Zpc2libGUgPSB0cnVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5fVmlzaWJsZTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIC8vIFNlIMOoIEludGVybmFsIHNpZ25pZmljYSBjaGUgw6ggZ2VzdGl0YSBpbnRlcm5hbWVudGUgZGEgRVMtVEFCTEUgcXVpbmRpIGV2aXRvIGRpIGZhcmUgc3RpIGR1ZSBwYXNzYWdnaSBkaSBsZXR0dXJhIGRlbCBET01cclxuICAgICAgICBpZiAodGhpcy5JbnRlcm5hbClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICAvLyBMJ2hhc2ggw6ggY2FsY29sYXRvIGRhbGxhIEVTLXRhYmxlIGluIGZhc2UgZGkgYmluZGluZ1xyXG4gICAgICAgIHRoaXMuQ29udGV4dCA9IHRoaXMuQ29udGV4dCB8fCB0aGlzLmdldFRlbXBsYXRlQ29udGV4dCgpLl9oYXNoO1xyXG4gICAgICAgIHRoaXMuQ29udGVudCA9IHRoaXMuRGlzcGxheSA9PT0gbnVsbCB8fCB0aGlzLkRpc3BsYXkgPT09IFwiXCIgPyB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCh0aGlzLm15c2VsZi5uYXRpdmVFbGVtZW50LmlubmVySFRNTCkgOiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCh0aGlzLkRpc3BsYXkpO1xyXG4gICAgICAgIHRoaXMuQ2xhc3MgPSB0aGlzLm15c2VsZi5uYXRpdmVFbGVtZW50LmNsYXNzTmFtZS5yZXBsYWNlKFwiYXBwLWRpc3BsYXktbm9uZVwiLCBcIlwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogT3R0aWVuZSBpbCBjb250ZXN0byBkZWxsYSB2aWV3IHN1IGN1aSDDqCBpc3RhbnppYXRvIGlsIGNvbXBvbmVudGUgKi9cclxuICAgIHByaXZhdGUgZ2V0VGVtcGxhdGVDb250ZXh0KCkge1xyXG4gICAgICAgIC8vIE5HQlVHOiAoPGFueT50aGlzLl92aWV3Q29udGFpbmVyKS5fdmlldyBub24gZXNpc3RlIHBpw7kgaW4gSVZZOiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy82MDM5ODgyNy9nZXR0aW5nLXRoZS1jb250ZXh0LW9mLXRoZS10ZW1wbGF0ZS1pbnNpZGUtb2Ytd2hpY2gtbXktY29tcG9uZW50LWhhcy1iZWVuLXJlbmRlclxyXG4gICAgICAgIGxldCB2YyA9ICg8YW55PnRoaXMuX3ZpZXdDb250YWluZXIpO1xyXG4gICAgICAgIGxldCBjb250ZXh0O1xyXG4gICAgICAgIC8vIFByaW1vIGdpcm8gZGkgcmVjdXBlcm8gZGVsIGNvbnRlc3RvLCBzdXBwb25lbmRvIGRpIG5vbiBhdmVyZSBhIGNoZSBmYXJlIGNvbCBjb21waWxhdG9yZSBJVllcclxuICAgICAgICBpZiAodmMuX3ZpZXcgPT0gbnVsbClcclxuICAgICAgICAgICAgY29udGV4dCA9IG51bGw7XHJcbiAgICAgICAgZWxzZSBpZiAodmMuX3ZpZXcucGFyZW50ICYmICF2Yy5fdmlldy5jb250ZXh0LiRpbXBsaWNpdCAmJiB2Yy5fdmlldy5wYXJlbnQuY29udGV4dCAmJiB2Yy5fdmlldy5wYXJlbnQuY29udGV4dC4kaW1wbGljaXQpXHJcbiAgICAgICAgICAgIGNvbnRleHQgPSB2Yy5fdmlldy5wYXJlbnQuY29udGV4dC4kaW1wbGljaXQ7XHJcbiAgICAgICAgZWxzZSBpZiAodmMuX3ZpZXcuY29udGV4dCAmJiB2Yy5fdmlldy5jb250ZXh0Lm5nSWYpXHJcbiAgICAgICAgICAgIGNvbnRleHQgPSB2Yy5fdmlldy52aWV3Q29udGFpbmVyUGFyZW50LmNvbnRleHQuJGltcGxpY2l0O1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgY29udGV4dCA9IHZjLl92aWV3LmNvbnRleHQuJGltcGxpY2l0O1xyXG5cclxuICAgICAgICBpZiAoY29udGV4dClcclxuICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQ7XHJcblxyXG4gICAgICAgIC8vIFNlIG5vbiBobyBhbmNvcmEgdHJvdmF0byBpbCBjb250ZXN0byBwcm9iYWJpbG1lbnRlIHNvbm8gaW4gSVZZIGUgZGV2byBmYXJlIGRlaSBsb29rdXAgdW4gcG8nIGluY2FzaW5hdGkgcGVyIGJlY2NhcmxvXHJcbiAgICAgICAgdmFyIGFycmF5ID0gKDxhbnk+dGhpcy5fdmlld0NvbnRhaW5lcikuX2hvc3RMVmlldztcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0gYXJyYXlbaV07XHJcbiAgICAgICAgICAgIGlmIChpdGVtICYmIGl0ZW0uJGltcGxpY2l0ICYmICFpdGVtLm5nSWYpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS4kaW1wbGljaXQ7XHJcblxyXG4gICAgICAgICAgICAvLyBTZWNvbmQgbGV2ZWwgc2VhcmNoIGZvciB0aGUgcmVhbCBjb250ZXh0IGluIGNhc2UgdGhlIGZpcnN0IG9uZSB3ZSBmaW5kIGlzIGFuIG5nSWZcclxuICAgICAgICAgICAgaWYgKGl0ZW0gJiYgaXRlbS5sZW5ndGggJiYgaXRlbS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpaSA9IDA7IGlpIDwgaXRlbS5sZW5ndGg7IGlpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaWl0ZW0gPSBpdGVtW2lpXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaWl0ZW0gJiYgaWl0ZW0uJGltcGxpY2l0ICYmICFpaXRlbS5uZ0lmKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWl0ZW0uJGltcGxpY2l0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNfdGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9jb21wb25lbnRzL2VzLXRkL2VzX3RkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFTO0FBQ1QsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sMkJBQTJCLENBQUM7QUFFbkUseUVBQXlFO0FBTXpFLE1BQU0sT0FBTyxJQUFJO0lBNkJiLGNBQWM7SUFDZCxZQUFvQixNQUFrQixFQUFVLFFBQW1CLEVBQVUsY0FBZ0MsRUFBWSxTQUF1QjtRQUE1SCxXQUFNLEdBQU4sTUFBTSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUFZLGNBQVMsR0FBVCxTQUFTLENBQWM7UUE1QmhKLDJFQUEyRTtRQUMzRCxPQUFFLEdBQVcsRUFBRSxDQUFDO1FBUWhDLDRIQUE0SDtRQUNuSCxZQUFPLEdBQVksSUFBSSxDQUFDO1FBRWpDLG1EQUFtRDtRQUMxQyxhQUFRLEdBQVMsSUFBSSxDQUFDO0lBZXFILENBQUM7SUFFcko7Ozs7T0FJRztJQUNILElBQWEsT0FBTyxDQUFDLFVBQW1CO1FBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBRTNCLElBQUksVUFBVTtZQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLGtCQUFrQixDQUFDLENBQUM7O1lBRXpFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLE9BQU87UUFDUCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksU0FBUztZQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUV6QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELGNBQWM7SUFDZCxlQUFlO1FBQ1gsMEhBQTBIO1FBQzFILElBQUksSUFBSSxDQUFDLFFBQVE7WUFDYixPQUFPO1FBRVgsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDak0sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7OztZQXZFSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLDhEQUFxQztnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDbEQ7OztZQVJxQyxVQUFVO1lBQXJCLFNBQVM7WUFBYyxnQkFBZ0I7WUFDekQsWUFBWTs7O2lCQVdoQixLQUFLLFNBQUMsT0FBTzt1QkFHYixLQUFLO3lCQUdMLEtBQUs7c0JBR0wsS0FBSzt1QkFHTCxLQUFLO3NCQVNMLEtBQUs7c0JBYUwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vQW5ndWxhclxyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBSZW5kZXJlcjIsIEVsZW1lbnRSZWYsIFZpZXdDb250YWluZXJSZWYsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5cclxuLyoqIENvbXBvbmVudGUgcmFwcHJlc2VudGFudGUgdW5hIHNpbmdvbGEgY2VsbGEgZGVsIGJvZHkgZGVsbGEgdGFiZWxsYSAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcIltlcy10ZF1cIixcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vZXNfdGQuY29tcG9uZW50Lmh0bWxcIixcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc1RkIHtcclxuXHJcbiAgICAvKiogSWQgZGVsbGEgY2VsbGEsIGRldidlc3NlcmUgbG8gc3Rlc3NvIGRlbGxhIGNvbG9ubmEgKipFc1RoKiogcmVsYXRpdmEgKi9cclxuICAgIEBJbnB1dCgnZXMtdGQnKSBJRDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICAvKiogSW5kaWNhIHNlIMOoIHVuYSBjZWxsYSBpbnRlcm5hIChyaWdlbmVyYXRhIHByb2dyYW1tYXRpY2FtZW50ZSkgbyBubyAqL1xyXG4gICAgQElucHV0KCkgSW50ZXJuYWw/OiBib29sZWFuO1xyXG5cclxuICAgIC8qKiBSb3V0ZXJMaW5rIHF1YWxvcmEgaWwgY2xpY2sgc3UgcXVlc3RhIGNlbGxhIGRlYmJhIG5hdmlnYXJlIGRhIHF1YWxjaGUgcGFydGUgKi9cclxuICAgIEBJbnB1dCgpIFJvdXRlckxpbms/OiBhbnk7XHJcblxyXG4gICAgLyoqIFZhbG9yZSBkYSBtb3N0cmFyZSBhbGwnaW50ZXJubyBkZWxsYSBjZWxsYS4gU2Ugb21lc3NvIHZlcnLDoCBwcm9pZXR0YXRvIGlsIGNvbnRlbnV0byBkYWwgdGVtcGxhdGUgaW4gY3VpIMOoIHN0YXRhIHVzYXRhICovXHJcbiAgICBASW5wdXQoKSBEaXNwbGF5Pzogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgICAvKiogVGVtcGxhdGUgQW5ndWxhciBkYSBpc3RhbnppYXJlIHBlciBxdWVzdG8gVEQgKi9cclxuICAgIEBJbnB1dCgpIFRlbXBsYXRlPzogYW55ID0gbnVsbDtcclxuXHJcbiAgICAvKiogQ2xhc3NpIGRhIGFwcGxpY2FyZSBhbGxhIGNlbGxhICovXHJcbiAgICBwdWJsaWMgQ2xhc3M/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIENvbnRlbnV0byBkYSBtb3N0cmFyZSBwcm9pZXR0YXRvIGRhbCBjb21wb25lbnRlIHBhZHJlICovXHJcbiAgICBwdWJsaWMgQ29udGVudD86IFNhZmVIdG1sO1xyXG5cclxuICAgIC8qKiBDb250ZXN0byBkZWxsJ29nZ2V0dG8gYSBjdWkgc2kgcmlmZXJpc2NlIGlsIGRhdG8gdmlzdWFsaXp6YXRvLiBDb250aWVuZSBsJ2hhc2ggZGVsbCdvZ2dldHRvIGluIHF1ZXN0aW9uZSAqL1xyXG4gICAgQElucHV0KCkgQ29udGV4dDogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBJbmRpY2F6aW9uaSBzdWxsYSB2aXNpYmlsaXTDoCBkZWxsYSBjZWxsYSAqL1xyXG4gICAgcHJpdmF0ZSBfVmlzaWJsZT86IGJvb2xlYW47XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbXlzZWxmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgX3ZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsIHByb3RlY3RlZCBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbXBvc3RhIGxhIHZpc2liaWxpdMOgIG8gbWVubyBkZWxsYSBjZWxsYSwgc2kgdHJhZHVjZSBuZWxsJ2FwcGxpY2F6aW9uZSBvIHJpbW96aW9uZSBkZWxsYSBjbGFzc2UgKiphcHAtZGlzcGxheS1ub25lKipcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBleHByZXNzaW9uIEluZGljYXppb25lIGRlbGxhIHZpc2liaWxpdMOgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHNldCBWaXNpYmxlKGV4cHJlc3Npb246IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9WaXNpYmxlID0gZXhwcmVzc2lvbjtcclxuXHJcbiAgICAgICAgaWYgKGV4cHJlc3Npb24pXHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5teXNlbGYubmF0aXZlRWxlbWVudCwgXCJhcHAtZGlzcGxheS1ub25lXCIpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLm15c2VsZi5uYXRpdmVFbGVtZW50LCBcImFwcC1kaXNwbGF5LW5vbmVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXN0aXR1aXNjZSBsbyBzdGF0byBkaSBWaXNpYmlsaXTDoCBkZWxsYSBjZWxsYSBpbiBvZ2dldHRvXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSAqKnRydWUqKiBzZSB2aXNpYmlsZSwgKipmYWxzZSoqIGFsdHJpbWVudGlcclxuICAgICAqL1xyXG4gICAgZ2V0IFZpc2libGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHRoaXMuX1Zpc2libGUgPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICB0aGlzLl9WaXNpYmxlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX1Zpc2libGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICAvLyBTZSDDqCBJbnRlcm5hbCBzaWduaWZpY2EgY2hlIMOoIGdlc3RpdGEgaW50ZXJuYW1lbnRlIGRhIEVTLVRBQkxFIHF1aW5kaSBldml0byBkaSBmYXJlIHN0aSBkdWUgcGFzc2FnZ2kgZGkgbGV0dHVyYSBkZWwgRE9NXHJcbiAgICAgICAgaWYgKHRoaXMuSW50ZXJuYWwpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5Db250ZW50ID0gdGhpcy5EaXNwbGF5ID09PSBudWxsIHx8IHRoaXMuRGlzcGxheSA9PT0gXCJcIiA/IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHRoaXMubXlzZWxmLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MKSA6IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHRoaXMuRGlzcGxheSk7XHJcbiAgICAgICAgdGhpcy5DbGFzcyA9IHRoaXMubXlzZWxmLm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lLnJlcGxhY2UoXCJhcHAtZGlzcGxheS1ub25lXCIsIFwiXCIpO1xyXG4gICAgfVxyXG59Il19