ax-common-ui-lib 1.0.0-qa.0

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 (1016) hide show
  1. package/README.md +24 -0
  2. package/ax-common-ui-lib.d.ts +5 -0
  3. package/esm2020/ax-common-ui-lib.mjs +5 -0
  4. package/esm2020/lib/app-list/app-list-dto.mjs +29 -0
  5. package/esm2020/lib/app-list/app-list.component.mjs +421 -0
  6. package/esm2020/lib/app-list/my-app-list.service.mjs +142 -0
  7. package/esm2020/lib/app-list/organization-list-dto.mjs +29 -0
  8. package/esm2020/lib/ax-app-common-lib.component.mjs +26 -0
  9. package/esm2020/lib/ax-app-common-lib.module.mjs +147 -0
  10. package/esm2020/lib/ax-app-common-lib.service.mjs +14 -0
  11. package/esm2020/lib/axo-filters/axo-filters.component.mjs +422 -0
  12. package/esm2020/lib/axo-filters/axo-filters.module.mjs +59 -0
  13. package/esm2020/lib/axo-filters/axo-filters.service.mjs +85 -0
  14. package/esm2020/lib/axo-map/axo-map.component.mjs +40 -0
  15. package/esm2020/lib/axo-map/axo-map.mjs +37 -0
  16. package/esm2020/lib/axo-map/axo-map.module.mjs +41 -0
  17. package/esm2020/lib/axo-map/public-api.mjs +7 -0
  18. package/esm2020/lib/axo-search-bar/axo-search-bar.component.mjs +84 -0
  19. package/esm2020/lib/axo-search-bar/axo-search-bar.module.mjs +38 -0
  20. package/esm2020/lib/axo-search-bar/public.api.mjs +3 -0
  21. package/esm2020/lib/axo-snack-bar/axo-snack-bar.component.mjs +155 -0
  22. package/esm2020/lib/axo-snack-bar/axo-snack-bar.module.mjs +34 -0
  23. package/esm2020/lib/axo-snack-bar/axo-snack-bar.service.mjs +29 -0
  24. package/esm2020/lib/axo-snack-bar/public-api.mjs +3 -0
  25. package/esm2020/lib/axo-state-manager/axo-state-manager.module.mjs +27 -0
  26. package/esm2020/lib/axo-state-manager/axo-state-manager.service.mjs +37 -0
  27. package/esm2020/lib/axo-state-manager/public-api.mjs +3 -0
  28. package/esm2020/lib/axo-utils/axo-utils.mjs +149 -0
  29. package/esm2020/lib/axo-utils/axo-utils.module.mjs +25 -0
  30. package/esm2020/lib/axo-utils/constants.mjs +3 -0
  31. package/esm2020/lib/axo-utils/data-source-types.mjs +12 -0
  32. package/esm2020/lib/axo-utils/field-list-search-pipe.mjs +32 -0
  33. package/esm2020/lib/axo-utils/filter-search-pipe.mjs +16 -0
  34. package/esm2020/lib/axo-utils/public-api.mjs +2 -0
  35. package/esm2020/lib/axo-utils/search-pipe/choice-search.pipe.mjs +33 -0
  36. package/esm2020/lib/axo-utils/search-pipe.mjs +36 -0
  37. package/esm2020/lib/bread-crumbs/bread-crumbs.component.mjs +196 -0
  38. package/esm2020/lib/bread-crumbs/bread-crumbs.module.mjs +29 -0
  39. package/esm2020/lib/bread-crumbs/bread-crumbs.service.mjs +122 -0
  40. package/esm2020/lib/code-editor/code-editor-modes.mjs +11 -0
  41. package/esm2020/lib/code-editor/code-editor-themes.mjs +8 -0
  42. package/esm2020/lib/code-editor/code-editor.component.mjs +60 -0
  43. package/esm2020/lib/code-editor/code-editor.module.mjs +36 -0
  44. package/esm2020/lib/code-editor/icode-editor-options.mjs +2 -0
  45. package/esm2020/lib/code-editor/public-api.mjs +3 -0
  46. package/esm2020/lib/common-dto/attributes-dto.mjs +39 -0
  47. package/esm2020/lib/common-dto/dashboard-dto.mjs +12 -0
  48. package/esm2020/lib/common-dto/dataListFilter-dto.mjs +13 -0
  49. package/esm2020/lib/common-dto/elements-dto.mjs +61 -0
  50. package/esm2020/lib/common-dto/form-dto.mjs +48 -0
  51. package/esm2020/lib/common-lib-configuration.service.mjs +21 -0
  52. package/esm2020/lib/common-property-panel/properties/properties.service.mjs +30 -0
  53. package/esm2020/lib/common-utils/entity-base.mjs +12 -0
  54. package/esm2020/lib/common-utils/iFlatten.mjs +2 -0
  55. package/esm2020/lib/common-utils/report.mjs +45 -0
  56. package/esm2020/lib/common.service.mjs +78 -0
  57. package/esm2020/lib/converters/convert-to-new-service.mjs +11 -0
  58. package/esm2020/lib/converters/convert-to-old-service.mjs +168 -0
  59. package/esm2020/lib/core/auth/auth.service.mjs +146 -0
  60. package/esm2020/lib/core/core.module.mjs +37 -0
  61. package/esm2020/lib/core/icons/icons.module.mjs +255 -0
  62. package/esm2020/lib/core/transloco/transloco.http-loader.mjs +32 -0
  63. package/esm2020/lib/core/transloco/transloco.module.mjs +94 -0
  64. package/esm2020/lib/core/user/axo-user.mjs +46 -0
  65. package/esm2020/lib/core/user/user-data.service.mjs +46 -0
  66. package/esm2020/lib/core/user/user.service.mjs +87 -0
  67. package/esm2020/lib/core/user/user.types.mjs +2 -0
  68. package/esm2020/lib/dashboard-lib/dashboard-builder.service.mjs +56 -0
  69. package/esm2020/lib/dashboard-lib/dashboard-control.service.mjs +92 -0
  70. package/esm2020/lib/dashboard-lib/dashboard-element/dashboard-element.mjs +11 -0
  71. package/esm2020/lib/dashboard-lib/dashboard-element-property/dashboard-property/dashboard-element-property.mjs +9 -0
  72. package/esm2020/lib/dashboard-lib/dashboard-filter/dashboard-filter.component.mjs +107 -0
  73. package/esm2020/lib/dashboard-lib/dashboard-lib.module.mjs +111 -0
  74. package/esm2020/lib/dashboard-lib/dashboard-list.service.mjs +73 -0
  75. package/esm2020/lib/dashboard-lib/dashboard.mjs +15 -0
  76. package/esm2020/lib/dashboard-lib/send-to-dashboard.service.mjs +96 -0
  77. package/esm2020/lib/dashboard-lib/show-dashboards/show-dashboards.component.mjs +241 -0
  78. package/esm2020/lib/dashboard-lib/show-dashboards/show-dashboards.service.mjs +32 -0
  79. package/esm2020/lib/data-view-lib/data-view/axo-card.mjs +26 -0
  80. package/esm2020/lib/data-view-lib/data-view/axo-tag.mjs +48 -0
  81. package/esm2020/lib/data-view-lib/data-view/board-column.mjs +24 -0
  82. package/esm2020/lib/data-view-lib/data-view/board-view.mjs +45 -0
  83. package/esm2020/lib/data-view-lib/data-view/cardConfig.mjs +26 -0
  84. package/esm2020/lib/data-view-lib/data-view/conditional-formatting.mjs +25 -0
  85. package/esm2020/lib/data-view-lib/data-view/coordinate.mjs +21 -0
  86. package/esm2020/lib/data-view-lib/data-view/data-view-enums.mjs +68 -0
  87. package/esm2020/lib/data-view-lib/data-view/data-view-filter.mjs +47 -0
  88. package/esm2020/lib/data-view-lib/data-view/data-view.mjs +66 -0
  89. package/esm2020/lib/data-view-lib/data-view/idata-view.mjs +2 -0
  90. package/esm2020/lib/data-view-lib/data-view/image-style.mjs +21 -0
  91. package/esm2020/lib/data-view-lib/data-view/info-window.mjs +23 -0
  92. package/esm2020/lib/data-view-lib/data-view/location.mjs +21 -0
  93. package/esm2020/lib/data-view-lib/data-view/map-view.mjs +41 -0
  94. package/esm2020/lib/data-view-lib/data-view/prefix-style.mjs +28 -0
  95. package/esm2020/lib/data-view-lib/data-view/tag-style.mjs +28 -0
  96. package/esm2020/lib/data-view-lib/data-view/tagConfig.mjs +63 -0
  97. package/esm2020/lib/data-view-lib/data-view/task-asset-form-object-dto.mjs +72 -0
  98. package/esm2020/lib/data-view-lib/data-view/task-column-value.mjs +43 -0
  99. package/esm2020/lib/data-view-lib/data-view/task-view.mjs +31 -0
  100. package/esm2020/lib/data-view-lib/data-view/task.mjs +199 -0
  101. package/esm2020/lib/data-view-lib/data-view/value-style.mjs +25 -0
  102. package/esm2020/lib/data-view-lib/data-view-filters/data-view-filters.component.mjs +661 -0
  103. package/esm2020/lib/data-view-lib/data-view-filters/data-view-filters.service.mjs +102 -0
  104. package/esm2020/lib/data-view-lib/data-view-header/data-view-header.component.mjs +536 -0
  105. package/esm2020/lib/data-view-lib/data-view-lib.module.mjs +88 -0
  106. package/esm2020/lib/data-view-lib/data-view.service.mjs +211 -0
  107. package/esm2020/lib/data-view-lib/public-api.mjs +28 -0
  108. package/esm2020/lib/directive/adjust-font-size.mjs +49 -0
  109. package/esm2020/lib/drill-through/drill-through.component.mjs +153 -0
  110. package/esm2020/lib/drill-through/drill-through.module.mjs +33 -0
  111. package/esm2020/lib/drill-through/drill-through.resolver.mjs +80 -0
  112. package/esm2020/lib/drill-through/drill-through.service.mjs +218 -0
  113. package/esm2020/lib/enlighten-lib/ax-expression/ax-exp-column.mjs +37 -0
  114. package/esm2020/lib/enlighten-lib/ax-expression/ax-exp-date-list.mjs +37 -0
  115. package/esm2020/lib/enlighten-lib/ax-expression/ax-exp-date-range-value.mjs +37 -0
  116. package/esm2020/lib/enlighten-lib/ax-expression/ax-exp-date-range.mjs +34 -0
  117. package/esm2020/lib/enlighten-lib/ax-expression/ax-exp-date-time-list.mjs +36 -0
  118. package/esm2020/lib/enlighten-lib/ax-expression/ax-exp-date-time-range-value.mjs +37 -0
  119. package/esm2020/lib/enlighten-lib/ax-expression/ax-exp-date-time-range.mjs +34 -0
  120. package/esm2020/lib/enlighten-lib/ax-expression/ax-exp-date-time.mjs +36 -0
  121. package/esm2020/lib/enlighten-lib/ax-expression/ax-exp-date-value.mjs +36 -0
  122. package/esm2020/lib/enlighten-lib/ax-expression/ax-exp-number-list.mjs +36 -0
  123. package/esm2020/lib/enlighten-lib/ax-expression/ax-exp-number-range-value.mjs +37 -0
  124. package/esm2020/lib/enlighten-lib/ax-expression/ax-exp-number-value.mjs +36 -0
  125. package/esm2020/lib/enlighten-lib/ax-expression/ax-exp-text-list.mjs +36 -0
  126. package/esm2020/lib/enlighten-lib/ax-expression/ax-exp-text.mjs +36 -0
  127. package/esm2020/lib/enlighten-lib/ax-expression/ax-exp-time-list.mjs +36 -0
  128. package/esm2020/lib/enlighten-lib/ax-expression/ax-exp-time-range-value.mjs +37 -0
  129. package/esm2020/lib/enlighten-lib/ax-expression/ax-exp-time-range.mjs +38 -0
  130. package/esm2020/lib/enlighten-lib/ax-expression/ax-exp-time.mjs +36 -0
  131. package/esm2020/lib/enlighten-lib/ax-expression/ax-exp-toggle.mjs +36 -0
  132. package/esm2020/lib/enlighten-lib/ax-expression/ax-expression-value.mjs +32 -0
  133. package/esm2020/lib/enlighten-lib/ax-expression/ax-expression.mjs +415 -0
  134. package/esm2020/lib/enlighten-lib/ax-expression/ax-number-range.mjs +34 -0
  135. package/esm2020/lib/enlighten-lib/ax-expression/exp-sub-type.mjs +29 -0
  136. package/esm2020/lib/enlighten-lib/ax-expression/public-api.mjs +24 -0
  137. package/esm2020/lib/enlighten-lib/data-model/attribute.mjs +247 -0
  138. package/esm2020/lib/enlighten-lib/data-model/data-model.mjs +52 -0
  139. package/esm2020/lib/enlighten-lib/data-model/dependee.mjs +24 -0
  140. package/esm2020/lib/enlighten-lib/data-model/dependent.mjs +24 -0
  141. package/esm2020/lib/enlighten-lib/data-model/entity.mjs +71 -0
  142. package/esm2020/lib/enlighten-lib/data-model-tree/attributes-dragdrop-layout/attributes-dragdrop-layout.component.mjs +100 -0
  143. package/esm2020/lib/enlighten-lib/data-model-tree/attributes-selection-layout/attributes-selection-layout.component.mjs +100 -0
  144. package/esm2020/lib/enlighten-lib/data-model-tree/categories-tree/categories-tree.component.mjs +113 -0
  145. package/esm2020/lib/enlighten-lib/data-model-tree/data-model-tree-enums.mjs +6 -0
  146. package/esm2020/lib/enlighten-lib/data-model-tree/data-model-tree.component.mjs +301 -0
  147. package/esm2020/lib/enlighten-lib/data-model-tree/data-model-tree.module.mjs +67 -0
  148. package/esm2020/lib/enlighten-lib/elements/Property.mjs +3 -0
  149. package/esm2020/lib/enlighten-lib/elements/ax-element.mjs +55 -0
  150. package/esm2020/lib/enlighten-lib/elements/element-factory.mjs +38 -0
  151. package/esm2020/lib/enlighten-lib/enlighten-lib.module.mjs +308 -0
  152. package/esm2020/lib/enlighten-lib/enums/bread-crumbs-style.mjs +6 -0
  153. package/esm2020/lib/enlighten-lib/enums/operator-text-enum.mjs +11 -0
  154. package/esm2020/lib/enlighten-lib/fields/attribute-data.mjs +167 -0
  155. package/esm2020/lib/enlighten-lib/fields/entity.mjs +16 -0
  156. package/esm2020/lib/enlighten-lib/fields/types/ax-audio.mjs +6 -0
  157. package/esm2020/lib/enlighten-lib/fields/types/ax-barcode.mjs +6 -0
  158. package/esm2020/lib/enlighten-lib/fields/types/ax-childrecord.mjs +6 -0
  159. package/esm2020/lib/enlighten-lib/fields/types/ax-counter.mjs +6 -0
  160. package/esm2020/lib/enlighten-lib/fields/types/ax-date.mjs +6 -0
  161. package/esm2020/lib/enlighten-lib/fields/types/ax-decimal.mjs +6 -0
  162. package/esm2020/lib/enlighten-lib/fields/types/ax-document.mjs +6 -0
  163. package/esm2020/lib/enlighten-lib/fields/types/ax-file.mjs +6 -0
  164. package/esm2020/lib/enlighten-lib/fields/types/ax-image.mjs +6 -0
  165. package/esm2020/lib/enlighten-lib/fields/types/ax-location.mjs +6 -0
  166. package/esm2020/lib/enlighten-lib/fields/types/ax-number.mjs +6 -0
  167. package/esm2020/lib/enlighten-lib/fields/types/ax-qrcode.mjs +6 -0
  168. package/esm2020/lib/enlighten-lib/fields/types/ax-signature.mjs +6 -0
  169. package/esm2020/lib/enlighten-lib/fields/types/ax-staticmedia.mjs +6 -0
  170. package/esm2020/lib/enlighten-lib/fields/types/ax-text.mjs +6 -0
  171. package/esm2020/lib/enlighten-lib/fields/types/ax-time.mjs +6 -0
  172. package/esm2020/lib/enlighten-lib/fields/types/ax-uniqueid.mjs +6 -0
  173. package/esm2020/lib/enlighten-lib/fields/types/axo-timestamp.mjs +6 -0
  174. package/esm2020/lib/enlighten-lib/fields/types/choicelist.mjs +6 -0
  175. package/esm2020/lib/enlighten-lib/fields/types/datetime.mjs +6 -0
  176. package/esm2020/lib/enlighten-lib/fields/types/hyperlink.mjs +6 -0
  177. package/esm2020/lib/enlighten-lib/fields/types/ienlighten-type.mjs +2 -0
  178. package/esm2020/lib/enlighten-lib/fields/types/toggle.mjs +6 -0
  179. package/esm2020/lib/enlighten-lib/fields/types/video.mjs +6 -0
  180. package/esm2020/lib/enlighten-lib/filters/ax-filter.mjs +74 -0
  181. package/esm2020/lib/enlighten-lib/filters/ax-operator.mjs +88 -0
  182. package/esm2020/lib/enlighten-lib/filters/chart-filter-type.mjs +7 -0
  183. package/esm2020/lib/enlighten-lib/filters/condition-type.mjs +49 -0
  184. package/esm2020/lib/enlighten-lib/filters/dataList-searchNode.mjs +48 -0
  185. package/esm2020/lib/enlighten-lib/filters/dataListFilterExpression.mjs +32 -0
  186. package/esm2020/lib/enlighten-lib/filters/dataListFilterOperator.mjs +43 -0
  187. package/esm2020/lib/enlighten-lib/filters/dataListSeachQueryTree.mjs +25 -0
  188. package/esm2020/lib/enlighten-lib/filters/filter-category.mjs +78 -0
  189. package/esm2020/lib/enlighten-lib/filters/general-filter-type.mjs +13 -0
  190. package/esm2020/lib/enlighten-lib/filters/gridster-properties.mjs +31 -0
  191. package/esm2020/lib/enlighten-lib/filters/iax-filter.mjs +2 -0
  192. package/esm2020/lib/enlighten-lib/filters/search-node.mjs +50 -0
  193. package/esm2020/lib/enlighten-lib/filters/static-widget.mjs +24 -0
  194. package/esm2020/lib/enlighten-lib/property/element-property.mjs +11 -0
  195. package/esm2020/lib/enlighten-lib/property/filter-category-property.mjs +9 -0
  196. package/esm2020/lib/enlighten-lib/property/filter-property.mjs +9 -0
  197. package/esm2020/lib/enlighten-lib/report/chart-filter/chart-filter.component.mjs +393 -0
  198. package/esm2020/lib/enlighten-lib/report/element.service.mjs +115 -0
  199. package/esm2020/lib/enlighten-lib/report/graphical-report/bar-chart/bar-chart.component.mjs +1002 -0
  200. package/esm2020/lib/enlighten-lib/report/graphical-report/bar-chart/bar-chart.mjs +144 -0
  201. package/esm2020/lib/enlighten-lib/report/graphical-report/bar-chart/bar-chart.service.mjs +15 -0
  202. package/esm2020/lib/enlighten-lib/report/graphical-report/card-chart/card-chart.component.mjs +576 -0
  203. package/esm2020/lib/enlighten-lib/report/graphical-report/card-chart/card-chart.mjs +66 -0
  204. package/esm2020/lib/enlighten-lib/report/graphical-report/card-chart/card-chart.service.mjs +15 -0
  205. package/esm2020/lib/enlighten-lib/report/graphical-report/chart/border.mjs +18 -0
  206. package/esm2020/lib/enlighten-lib/report/graphical-report/chart/chart-factory.mjs +80 -0
  207. package/esm2020/lib/enlighten-lib/report/graphical-report/chart/chart-property.mjs +4 -0
  208. package/esm2020/lib/enlighten-lib/report/graphical-report/chart/chart-type.mjs +15 -0
  209. package/esm2020/lib/enlighten-lib/report/graphical-report/chart/chart.mjs +123 -0
  210. package/esm2020/lib/enlighten-lib/report/graphical-report/chart/common-chart.service.mjs +32 -0
  211. package/esm2020/lib/enlighten-lib/report/graphical-report/chart/conditional-formatting.mjs +8 -0
  212. package/esm2020/lib/enlighten-lib/report/graphical-report/chart/dimension.mjs +8 -0
  213. package/esm2020/lib/enlighten-lib/report/graphical-report/chart/font.mjs +32 -0
  214. package/esm2020/lib/enlighten-lib/report/graphical-report/chart/fontStyle.mjs +28 -0
  215. package/esm2020/lib/enlighten-lib/report/graphical-report/chart/label.mjs +6 -0
  216. package/esm2020/lib/enlighten-lib/report/graphical-report/chart/legend.mjs +28 -0
  217. package/esm2020/lib/enlighten-lib/report/graphical-report/chart/matrix.mjs +26 -0
  218. package/esm2020/lib/enlighten-lib/report/graphical-report/chart/shadow.mjs +7 -0
  219. package/esm2020/lib/enlighten-lib/report/graphical-report/chart/style.mjs +14 -0
  220. package/esm2020/lib/enlighten-lib/report/graphical-report/chart/text-style.mjs +34 -0
  221. package/esm2020/lib/enlighten-lib/report/graphical-report/chart/title.mjs +12 -0
  222. package/esm2020/lib/enlighten-lib/report/graphical-report/graphical-report.component.mjs +357 -0
  223. package/esm2020/lib/enlighten-lib/report/graphical-report/graphical-report.directive.mjs +16 -0
  224. package/esm2020/lib/enlighten-lib/report/graphical-report/ichart-component.mjs +2 -0
  225. package/esm2020/lib/enlighten-lib/report/graphical-report/igraphical-report.component.mjs +2 -0
  226. package/esm2020/lib/enlighten-lib/report/graphical-report/line-chart/line-chart.component.mjs +856 -0
  227. package/esm2020/lib/enlighten-lib/report/graphical-report/line-chart/line-chart.mjs +97 -0
  228. package/esm2020/lib/enlighten-lib/report/graphical-report/line-chart/line-chart.service.mjs +15 -0
  229. package/esm2020/lib/enlighten-lib/report/graphical-report/page/page.mjs +48 -0
  230. package/esm2020/lib/enlighten-lib/report/graphical-report/pie-chart/pie-chart.component.mjs +934 -0
  231. package/esm2020/lib/enlighten-lib/report/graphical-report/pie-chart/pie-chart.mjs +103 -0
  232. package/esm2020/lib/enlighten-lib/report/graphical-report/pie-chart/pie-chart.service.mjs +15 -0
  233. package/esm2020/lib/enlighten-lib/report/graphical-report/text/text-chart.mjs +56 -0
  234. package/esm2020/lib/enlighten-lib/report/graphical-report/text/text.component.mjs +302 -0
  235. package/esm2020/lib/enlighten-lib/report/graphical-report/text/text.service.mjs +15 -0
  236. package/esm2020/lib/enlighten-lib/report/iproperty.component.mjs +8 -0
  237. package/esm2020/lib/enlighten-lib/report/ireport.mjs +14 -0
  238. package/esm2020/lib/enlighten-lib/report/report-builder-master.service.mjs +83 -0
  239. package/esm2020/lib/enlighten-lib/report/report-filter/report-filter.component.mjs +313 -0
  240. package/esm2020/lib/enlighten-lib/report/report-filter/report-filter.module.mjs +71 -0
  241. package/esm2020/lib/enlighten-lib/report/report-filter/report-filter.service.mjs +246 -0
  242. package/esm2020/lib/enlighten-lib/report/tabular-report/aggregate.mjs +10 -0
  243. package/esm2020/lib/enlighten-lib/report/tabular-report/axo-percentage.pipe.mjs +26 -0
  244. package/esm2020/lib/enlighten-lib/report/tabular-report/column-style.mjs +7 -0
  245. package/esm2020/lib/enlighten-lib/report/tabular-report/itabular-report.component.mjs +2 -0
  246. package/esm2020/lib/enlighten-lib/report/tabular-report/orderby-type.mjs +7 -0
  247. package/esm2020/lib/enlighten-lib/report/tabular-report/row-style.mjs +7 -0
  248. package/esm2020/lib/enlighten-lib/report/tabular-report/table-style.mjs +47 -0
  249. package/esm2020/lib/enlighten-lib/report/tabular-report/tabular/column-group-view/column-group-view.component.mjs +4464 -0
  250. package/esm2020/lib/enlighten-lib/report/tabular-report/tabular/detail-group-view/detail-group-view.component.mjs +1583 -0
  251. package/esm2020/lib/enlighten-lib/report/tabular-report/tabular/resize-column-directive.mjs +70 -0
  252. package/esm2020/lib/enlighten-lib/report/tabular-report/tabular/row-group-view/row-group-view.component.mjs +1837 -0
  253. package/esm2020/lib/enlighten-lib/report/tabular-report/tabular/tabular.component.mjs +756 -0
  254. package/esm2020/lib/enlighten-lib/report/tabular-report/tabular-report.component.mjs +156 -0
  255. package/esm2020/lib/enlighten-lib/report/tabular-report/tabular-report.mjs +245 -0
  256. package/esm2020/lib/enlighten-lib/report/tabular-report/tabular-report.service.mjs +960 -0
  257. package/esm2020/lib/enlighten-lib/report/tabular-report/tabular.mjs +196 -0
  258. package/esm2020/lib/enlighten-lib/report/tabular-report/value-formatting.mjs +9 -0
  259. package/esm2020/lib/enlighten-lib/report-control.service.mjs +41 -0
  260. package/esm2020/lib/enlighten-lib/utils/utils.mjs +26 -0
  261. package/esm2020/lib/field-list-lib/fields-list.service.mjs +299 -0
  262. package/esm2020/lib/filters/calender-filter/calender-filter.component.mjs +351 -0
  263. package/esm2020/lib/filters/category-filter/category-filter.component.mjs +207 -0
  264. package/esm2020/lib/filters/category-filter/category-filter.service.mjs +31 -0
  265. package/esm2020/lib/filters/category-filter/category.service.mjs +45 -0
  266. package/esm2020/lib/filters/choice-list-filter/choice-list-filter.component.mjs +178 -0
  267. package/esm2020/lib/filters/choice-list-filter/choice-list-filter.service.mjs +53 -0
  268. package/esm2020/lib/filters/common-filter/common-filter.component.mjs +310 -0
  269. package/esm2020/lib/filters/common-filter/common-filter.service.mjs +106 -0
  270. package/esm2020/lib/filters/custom-scroll-directives.mjs +45 -0
  271. package/esm2020/lib/filters/date-time-filter/date-time-filter.component.mjs +345 -0
  272. package/esm2020/lib/filters/filter-footer/filter-footer.component.mjs +62 -0
  273. package/esm2020/lib/filters/filters.component.mjs +688 -0
  274. package/esm2020/lib/filters/filters.module.mjs +196 -0
  275. package/esm2020/lib/filters/filters.service.mjs +147 -0
  276. package/esm2020/lib/filters/meta-column-filter-builder/meta-column-filter-builder.service.mjs +202 -0
  277. package/esm2020/lib/filters/metaColumnTypes.mjs +36 -0
  278. package/esm2020/lib/filters/multi-select-filter/multi-select-filter.component.mjs +211 -0
  279. package/esm2020/lib/filters/multi-select-filter/multi-select-filter.service.mjs +214 -0
  280. package/esm2020/lib/filters/number-filter/number-filter.component.mjs +321 -0
  281. package/esm2020/lib/filters/public-api.mjs +15 -0
  282. package/esm2020/lib/filters/reference-list-filter/reference-list-filter.component.mjs +180 -0
  283. package/esm2020/lib/filters/reference-list-filter/reference-list-filter.service.mjs +151 -0
  284. package/esm2020/lib/filters/single-select-filter/single-select-filter.component.mjs +177 -0
  285. package/esm2020/lib/filters/time-filter/time-filter.component.mjs +301 -0
  286. package/esm2020/lib/filters/user-filter/user-filter.component.mjs +178 -0
  287. package/esm2020/lib/filters/user-filter/user-filter.service.mjs +62 -0
  288. package/esm2020/lib/form-object/form-object-list/form-object-list-filter/form-object-list-filter.component.mjs +346 -0
  289. package/esm2020/lib/form-object/form-object-list/form-object-list-filter/form-object-list-filter.service.mjs +105 -0
  290. package/esm2020/lib/form-object/form-object-list/form-object-list-header/form-object-list-header.component.mjs +41 -0
  291. package/esm2020/lib/form-object/form-object-list/form-object-list-header/widget-header-type-handler.mjs +10 -0
  292. package/esm2020/lib/form-object/form-object-list/form-object-list-header/widgets/text-box-header/text-box-header.component.mjs +21 -0
  293. package/esm2020/lib/form-object/form-object-list/form-object-list-header/widgets-header.directive.mjs +16 -0
  294. package/esm2020/lib/form-object/form-object-list/form-object-list.component.mjs +823 -0
  295. package/esm2020/lib/form-object/form-object-list/form-object-list.mjs +211 -0
  296. package/esm2020/lib/form-object/form-object-list/form-object-list.module.mjs +224 -0
  297. package/esm2020/lib/form-object/form-object-list/form-object-list.service.mjs +171 -0
  298. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/form-object-value-handler.mjs +94 -0
  299. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/form-object-value.directive.mjs +16 -0
  300. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/form-object-widget-value.component.mjs +60 -0
  301. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-apply-geo-fence-value/formobject-apply-geo-fence-value.component.mjs +33 -0
  302. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-audio-value/formobject-audio-value.component.mjs +40 -0
  303. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-auto-number-value/formobject-auto-number-value.component.mjs +31 -0
  304. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-bar-code-value/formobject-bar-code-value.component.mjs +98 -0
  305. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-child-records-value/formobject-child-records-value.component.mjs +86 -0
  306. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-choicelist-value/formobject-choicelist-value.component.mjs +180 -0
  307. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-counter-value/formobject-counter-value.component.mjs +45 -0
  308. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-date-time-value/formobject-date-time-value.component.mjs +54 -0
  309. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-document-value/formobject-document-value.component.mjs +163 -0
  310. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-formula-value/formobject-formula-value.component.mjs +45 -0
  311. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-geo-fence-value/formobject-geo-fence-value.component.mjs +61 -0
  312. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-gps-value/formobject-gps-value.component.mjs +64 -0
  313. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-group-header-value/formobject-group-header-value.component.mjs +21 -0
  314. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-image-value/formobject-image-value.component.mjs +119 -0
  315. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-languages-value/formobject-languages-value.component.mjs +37 -0
  316. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-payment-value/formobject-payment-value.component.mjs +21 -0
  317. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-qr-code-value/formobject-qr-code-value.component.mjs +98 -0
  318. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-signature-value/formobject-signature-value.component.mjs +60 -0
  319. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-static-media-value/formobject-static-media-value.component.mjs +62 -0
  320. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-stop-watch-value/formobject-stop-watch-value.component.mjs +24 -0
  321. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-sub-form-value/formobject-sub-form-value.component.mjs +19 -0
  322. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-textbox-value/formobject-textbox-value.component.mjs +49 -0
  323. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-time-stamp-value/formobject-time-stamp-value.component.mjs +50 -0
  324. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-toggle-value/formobject-toggle-value.component.mjs +25 -0
  325. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-unique-id-value/formobject-unique-id-value.component.mjs +33 -0
  326. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-verification-value/formobject-verification-value.component.mjs +60 -0
  327. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-video-value/formobject-video-value.component.mjs +65 -0
  328. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-web-link-value/formobject-web-link-value.component.mjs +28 -0
  329. package/esm2020/lib/form-object/form-object-list/formObjectWidgetValue/formobject-widget-mat-dialog/formobject-widget-mat-dialog.component.mjs +89 -0
  330. package/esm2020/lib/form-object/form-object-view/data-detail-view-dto.mjs +55 -0
  331. package/esm2020/lib/form-object/form-object-view/dynamic-view/dynamic-view.component.mjs +85 -0
  332. package/esm2020/lib/form-object/form-object-view/dynamic-view/dynamic-view.directive.mjs +16 -0
  333. package/esm2020/lib/form-object/form-object-view/form-object-view.component.mjs +209 -0
  334. package/esm2020/lib/form-object/form-object-view/form-object-view.module.mjs +273 -0
  335. package/esm2020/lib/form-object/form-object-view/form-object-view.service.mjs +268 -0
  336. package/esm2020/lib/form-object/form-object-view/form-object-widgets/apply-geo-fence-widget-view/apply-geo-fence-widget-view.component.mjs +83 -0
  337. package/esm2020/lib/form-object/form-object-view/form-object-widgets/audio-widget-view/audio-widget-view.component.mjs +92 -0
  338. package/esm2020/lib/form-object/form-object-view/form-object-widgets/auto-number-widget-view/auto-number-widget-view.component.mjs +68 -0
  339. package/esm2020/lib/form-object/form-object-view/form-object-widgets/bar-code-widget-view/bar-code-widget-view.component.mjs +155 -0
  340. package/esm2020/lib/form-object/form-object-view/form-object-widgets/child-records-widget-view/child-records-widget-view.component.mjs +158 -0
  341. package/esm2020/lib/form-object/form-object-view/form-object-widgets/choice-list-widget-view/choice-list-widget-view.component.mjs +248 -0
  342. package/esm2020/lib/form-object/form-object-view/form-object-widgets/counter-widget-view/counter-widget-view.component.mjs +93 -0
  343. package/esm2020/lib/form-object/form-object-view/form-object-widgets/date-time-widget-view/date-time-widget-view.component.mjs +179 -0
  344. package/esm2020/lib/form-object/form-object-view/form-object-widgets/document-widget-view/document-widget-view.component.mjs +210 -0
  345. package/esm2020/lib/form-object/form-object-view/form-object-widgets/form-object-widget-type-handler.mjs +93 -0
  346. package/esm2020/lib/form-object/form-object-view/form-object-widgets/form-object-widgets-view.component.mjs +58 -0
  347. package/esm2020/lib/form-object/form-object-view/form-object-widgets/form-object-widgets-view.directive.mjs +16 -0
  348. package/esm2020/lib/form-object/form-object-view/form-object-widgets/formula-widget-view/formula-widget-view.component.mjs +76 -0
  349. package/esm2020/lib/form-object/form-object-view/form-object-widgets/geo-fence-widget-view/geo-fence-widget-view.component.mjs +89 -0
  350. package/esm2020/lib/form-object/form-object-view/form-object-widgets/gps-widget-view/gps-widget-view.component.mjs +263 -0
  351. package/esm2020/lib/form-object/form-object-view/form-object-widgets/group-header-widget-view/group-header-widget-view.component.mjs +17 -0
  352. package/esm2020/lib/form-object/form-object-view/form-object-widgets/image-widget-view/image-annotation-data-dto.mjs +335 -0
  353. package/esm2020/lib/form-object/form-object-view/form-object-widgets/image-widget-view/image-map-view/image-map-view.component.mjs +270 -0
  354. package/esm2020/lib/form-object/form-object-view/form-object-widgets/image-widget-view/image-widget-lightbox-view/image-widget-lightbox-view.component.mjs +498 -0
  355. package/esm2020/lib/form-object/form-object-view/form-object-widgets/image-widget-view/image-widget-view.component.mjs +203 -0
  356. package/esm2020/lib/form-object/form-object-view/form-object-widgets/language-widget-view/language-widget-view.component.mjs +70 -0
  357. package/esm2020/lib/form-object/form-object-view/form-object-widgets/payment-widget-view/payment-widget-view.component.mjs +21 -0
  358. package/esm2020/lib/form-object/form-object-view/form-object-widgets/qr-code-widget-view/qr-code-widget-view.component.mjs +146 -0
  359. package/esm2020/lib/form-object/form-object-view/form-object-widgets/signature-widget-view/signature-widget-view.component.mjs +92 -0
  360. package/esm2020/lib/form-object/form-object-view/form-object-widgets/static-media-widget-view/static-media-widget-view.component.mjs +84 -0
  361. package/esm2020/lib/form-object/form-object-view/form-object-widgets/stop-watch-widget-view/stop-watch-widget-view.component.mjs +82 -0
  362. package/esm2020/lib/form-object/form-object-view/form-object-widgets/sub-form-widget-view/sub-form-widget-view.component.mjs +93 -0
  363. package/esm2020/lib/form-object/form-object-view/form-object-widgets/text-box-widget-view/text-box-widget-view.component.mjs +144 -0
  364. package/esm2020/lib/form-object/form-object-view/form-object-widgets/time-stamp-widget-view/time-stamp-widget-view.component.mjs +95 -0
  365. package/esm2020/lib/form-object/form-object-view/form-object-widgets/toggle-widget-view/toggle-widget-view.component.mjs +83 -0
  366. package/esm2020/lib/form-object/form-object-view/form-object-widgets/unique-id-widget-view/unique-id-widget-view.component.mjs +82 -0
  367. package/esm2020/lib/form-object/form-object-view/form-object-widgets/verification-widget-view/verification-widget-view.component.mjs +79 -0
  368. package/esm2020/lib/form-object/form-object-view/form-object-widgets/video-widget-view/video-widget-view.component.mjs +113 -0
  369. package/esm2020/lib/form-object/form-object-view/form-object-widgets/web-link-widget-view/web-link-widget-view.component.mjs +89 -0
  370. package/esm2020/lib/form-object/form-object-view/meta-section/meta-section.component.mjs +157 -0
  371. package/esm2020/lib/form-object/form-object-view/section/section.component.mjs +75 -0
  372. package/esm2020/lib/form-object/form-object-view/section-field/section-field.component.mjs +30 -0
  373. package/esm2020/lib/form-object/form-object-view/section-view/section-view.component.mjs +110 -0
  374. package/esm2020/lib/form-object/public-api.mjs +3 -0
  375. package/esm2020/lib/form-permission.service.mjs +106 -0
  376. package/esm2020/lib/forms/ax-form.mjs +212 -0
  377. package/esm2020/lib/forms/iform.mjs +2 -0
  378. package/esm2020/lib/forms/page/common/axo-response-status.mjs +6 -0
  379. package/esm2020/lib/forms/page/common/constants.mjs +399 -0
  380. package/esm2020/lib/forms/page/common/detail-view-enums.mjs +8 -0
  381. package/esm2020/lib/forms/page/common/flatten-status-enum.mjs +10 -0
  382. package/esm2020/lib/forms/page/common/form.constant.mjs +87 -0
  383. package/esm2020/lib/forms/page/common/property-panel-field.mjs +5 -0
  384. package/esm2020/lib/forms/page/common/widget-enums.mjs +269 -0
  385. package/esm2020/lib/forms/page/common/widget-value-handler.mjs +321 -0
  386. package/esm2020/lib/forms/page/data-detail-view/ax-section.mjs +51 -0
  387. package/esm2020/lib/forms/page/data-detail-view/collection-view.mjs +30 -0
  388. package/esm2020/lib/forms/page/data-detail-view/data-details.mjs +60 -0
  389. package/esm2020/lib/forms/page/data-detail-view/section-field.mjs +32 -0
  390. package/esm2020/lib/forms/page/data-detail-view/section.mjs +33 -0
  391. package/esm2020/lib/forms/page/data-list/data-list-column.mjs +45 -0
  392. package/esm2020/lib/forms/page/data-list/data-list.mjs +64 -0
  393. package/esm2020/lib/forms/page/form-object.mjs +17 -0
  394. package/esm2020/lib/forms/page/form-page.mjs +28 -0
  395. package/esm2020/lib/forms/page/value-converters/displayMode-to-bool.mjs +16 -0
  396. package/esm2020/lib/forms/page/value-converters/form-type-converter.mjs +23 -0
  397. package/esm2020/lib/forms/page/value-converters/geo-fence-value-converter.mjs +24 -0
  398. package/esm2020/lib/forms/page/value-converters/image-annotation-value-converter.mjs +20 -0
  399. package/esm2020/lib/forms/page/value-converters/language-source-value-converter.mjs +24 -0
  400. package/esm2020/lib/forms/page/value-converters/list-view-title-converter.mjs +20 -0
  401. package/esm2020/lib/forms/page/value-converters/parse-float-converter.mjs +15 -0
  402. package/esm2020/lib/forms/page/value-converters/parse-int-converter.mjs +20 -0
  403. package/esm2020/lib/forms/page/value-converters/parse-string-converter.mjs +20 -0
  404. package/esm2020/lib/forms/page/value-converters/publicUrls-string-to-array.mjs +20 -0
  405. package/esm2020/lib/forms/page/value-converters/record-limit-type-converter.mjs +23 -0
  406. package/esm2020/lib/forms/page/value-converters/restriction-mode-converter.mjs +23 -0
  407. package/esm2020/lib/forms/page/value-converters/string-to-bool-converter.mjs +16 -0
  408. package/esm2020/lib/forms/page/value-converters/string-to-bool-value-converter.mjs +16 -0
  409. package/esm2020/lib/forms/page/value-converters/string-to-date-time-converter.mjs +19 -0
  410. package/esm2020/lib/forms/page/value-converters/string-to-number -converter.mjs +20 -0
  411. package/esm2020/lib/forms/page/value-converters/textBox-mask-converter.mjs +16 -0
  412. package/esm2020/lib/forms/page/value-converters/validate-converter.mjs +20 -0
  413. package/esm2020/lib/forms/page/value-converters/value-without-mask-converter.mjs +20 -0
  414. package/esm2020/lib/forms/page/value-converters/widget-concrete-class-converter.mjs +22 -0
  415. package/esm2020/lib/forms/page/value-converters/widget-deserializer.mjs +149 -0
  416. package/esm2020/lib/forms/page/widgets/apply-geofences.mjs +65 -0
  417. package/esm2020/lib/forms/page/widgets/auto-number.mjs +87 -0
  418. package/esm2020/lib/forms/page/widgets/ax-audio.mjs +154 -0
  419. package/esm2020/lib/forms/page/widgets/ax-document.mjs +149 -0
  420. package/esm2020/lib/forms/page/widgets/ax-image.mjs +183 -0
  421. package/esm2020/lib/forms/page/widgets/bar-code.mjs +212 -0
  422. package/esm2020/lib/forms/page/widgets/child-record.mjs +193 -0
  423. package/esm2020/lib/forms/page/widgets/choicelist.mjs +375 -0
  424. package/esm2020/lib/forms/page/widgets/counter.mjs +69 -0
  425. package/esm2020/lib/forms/page/widgets/datetime.mjs +247 -0
  426. package/esm2020/lib/forms/page/widgets/formula.mjs +106 -0
  427. package/esm2020/lib/forms/page/widgets/geofence.mjs +127 -0
  428. package/esm2020/lib/forms/page/widgets/gps.mjs +192 -0
  429. package/esm2020/lib/forms/page/widgets/group-header.mjs +200 -0
  430. package/esm2020/lib/forms/page/widgets/languages.mjs +129 -0
  431. package/esm2020/lib/forms/page/widgets/link.mjs +107 -0
  432. package/esm2020/lib/forms/page/widgets/payment.mjs +104 -0
  433. package/esm2020/lib/forms/page/widgets/qr-code.mjs +129 -0
  434. package/esm2020/lib/forms/page/widgets/script-condition.mjs +115 -0
  435. package/esm2020/lib/forms/page/widgets/signature.mjs +81 -0
  436. package/esm2020/lib/forms/page/widgets/static-media.mjs +130 -0
  437. package/esm2020/lib/forms/page/widgets/stopwatch.mjs +117 -0
  438. package/esm2020/lib/forms/page/widgets/sub-form.mjs +114 -0
  439. package/esm2020/lib/forms/page/widgets/textbox.mjs +338 -0
  440. package/esm2020/lib/forms/page/widgets/timestamp.mjs +155 -0
  441. package/esm2020/lib/forms/page/widgets/toggle.mjs +115 -0
  442. package/esm2020/lib/forms/page/widgets/unique-id.mjs +75 -0
  443. package/esm2020/lib/forms/page/widgets/verification.mjs +207 -0
  444. package/esm2020/lib/forms/page/widgets/video.mjs +151 -0
  445. package/esm2020/lib/forms/page/widgets/widget-value/apply-geo-fence-widget-value.mjs +74 -0
  446. package/esm2020/lib/forms/page/widgets/widget-value/audio-video-widget-value.mjs +36 -0
  447. package/esm2020/lib/forms/page/widgets/widget-value/child-record-value.mjs +114 -0
  448. package/esm2020/lib/forms/page/widgets/widget-value/choice-list-options.mjs +84 -0
  449. package/esm2020/lib/forms/page/widgets/widget-value/choices-ml.mjs +107 -0
  450. package/esm2020/lib/forms/page/widgets/widget-value/dateRangeValue.mjs +38 -0
  451. package/esm2020/lib/forms/page/widgets/widget-value/deviceProfileParams.mjs +9 -0
  452. package/esm2020/lib/forms/page/widgets/widget-value/deviceProfilesTemp.mjs +72 -0
  453. package/esm2020/lib/forms/page/widgets/widget-value/document-widget-value.mjs +56 -0
  454. package/esm2020/lib/forms/page/widgets/widget-value/geo-fence-location-value.mjs +54 -0
  455. package/esm2020/lib/forms/page/widgets/widget-value/geo-fence-widget-value.mjs +50 -0
  456. package/esm2020/lib/forms/page/widgets/widget-value/gps-widget-value.mjs +58 -0
  457. package/esm2020/lib/forms/page/widgets/widget-value/image-widget-value.mjs +99 -0
  458. package/esm2020/lib/forms/page/widgets/widget-value/language-widget-value.mjs +43 -0
  459. package/esm2020/lib/forms/page/widgets/widget-value/location-object-value.mjs +44 -0
  460. package/esm2020/lib/forms/page/widgets/widget-value/multiple-languages.mjs +106 -0
  461. package/esm2020/lib/forms/page/widgets/widget-value/reference-list-object-value.mjs +72 -0
  462. package/esm2020/lib/forms/page/widgets/widget-value/verification-widget-value.mjs +126 -0
  463. package/esm2020/lib/forms/page/widgets/widget.mjs +429 -0
  464. package/esm2020/lib/ghost-loader/ghost-loader.component.mjs +708 -0
  465. package/esm2020/lib/ghost-loader/ghost-loader.module.mjs +27 -0
  466. package/esm2020/lib/ghost-loader/public-api.mjs +3 -0
  467. package/esm2020/lib/map-dialog/map-dialog.component.mjs +46 -0
  468. package/esm2020/lib/map-dialog/map-dialog.module.mjs +39 -0
  469. package/esm2020/lib/map-dialog/public-api.mjs +6 -0
  470. package/esm2020/lib/reports-container/public-api.mjs +8 -0
  471. package/esm2020/lib/reports-container/report-group/report-group.component.mjs +77 -0
  472. package/esm2020/lib/reports-container/reports-container-models/report-group.mjs +42 -0
  473. package/esm2020/lib/reports-container/reports-container-models/report-property.mjs +30 -0
  474. package/esm2020/lib/reports-container/reports-container-models/reports-container-enums.mjs +16 -0
  475. package/esm2020/lib/reports-container/reports-container-models/reports-container.mjs +29 -0
  476. package/esm2020/lib/reports-container/reports-container.component.mjs +60 -0
  477. package/esm2020/lib/reports-container/reports-container.module.mjs +52 -0
  478. package/esm2020/lib/reports-container/reports-container.service.mjs +29 -0
  479. package/esm2020/lib/scrollbar/index.mjs +3 -0
  480. package/esm2020/lib/scrollbar/public-api.mjs +3 -0
  481. package/esm2020/lib/scrollbar/scrollbar.directive.mjs +351 -0
  482. package/esm2020/lib/scrollbar/scrollbar.module.mjs +21 -0
  483. package/esm2020/lib/scrollbar/scrollbar.types.mjs +15 -0
  484. package/esm2020/lib/sculptor-lib/widgets/audio/audio.component.mjs +115 -0
  485. package/esm2020/lib/sculptor-lib/widgets/barcode/barcode.component.mjs +118 -0
  486. package/esm2020/lib/sculptor-lib/widgets/child-record/child-record.component.mjs +115 -0
  487. package/esm2020/lib/sculptor-lib/widgets/choice-list/choice-list.component.mjs +105 -0
  488. package/esm2020/lib/sculptor-lib/widgets/date-time/date-time.component.mjs +136 -0
  489. package/esm2020/lib/sculptor-lib/widgets/document/document.component.mjs +118 -0
  490. package/esm2020/lib/sculptor-lib/widgets/geofence/geofence.component.mjs +115 -0
  491. package/esm2020/lib/sculptor-lib/widgets/gps/gps.component.mjs +115 -0
  492. package/esm2020/lib/sculptor-lib/widgets/group-header/group-header.component.mjs +109 -0
  493. package/esm2020/lib/sculptor-lib/widgets/image/image.component.mjs +131 -0
  494. package/esm2020/lib/sculptor-lib/widgets/language/language.component.mjs +105 -0
  495. package/esm2020/lib/sculptor-lib/widgets/link/link.component.mjs +115 -0
  496. package/esm2020/lib/sculptor-lib/widgets/qr-code/qr-code.component.mjs +118 -0
  497. package/esm2020/lib/sculptor-lib/widgets/stopwatch/stopwatch.component.mjs +105 -0
  498. package/esm2020/lib/sculptor-lib/widgets/subform/subform.component.mjs +109 -0
  499. package/esm2020/lib/sculptor-lib/widgets/textbox/textbox.component.mjs +177 -0
  500. package/esm2020/lib/sculptor-lib/widgets/timestamp/timestamp.component.mjs +115 -0
  501. package/esm2020/lib/sculptor-lib/widgets/toggle/toggle.component.mjs +112 -0
  502. package/esm2020/lib/sculptor-lib/widgets/video/video.component.mjs +118 -0
  503. package/esm2020/lib/sculptor-lib/widgets/widgets.service.mjs +58 -0
  504. package/esm2020/lib/shared/comfirmation-modal/confirmation-modal.component.mjs +63 -0
  505. package/esm2020/lib/shared/conditional-formatting/conditional-formatting/conditional-formatting.component.mjs +83 -0
  506. package/esm2020/lib/shared/shared.module.mjs +51 -0
  507. package/esm2020/public-api.mjs +138 -0
  508. package/fesm2015/ax-common-ui-lib.mjs +56598 -0
  509. package/fesm2015/ax-common-ui-lib.mjs.map +1 -0
  510. package/fesm2020/ax-common-ui-lib.mjs +52373 -0
  511. package/fesm2020/ax-common-ui-lib.mjs.map +1 -0
  512. package/lib/app-list/app-list-dto.d.ts +15 -0
  513. package/lib/app-list/app-list.component.d.ts +62 -0
  514. package/lib/app-list/my-app-list.service.d.ts +69 -0
  515. package/lib/app-list/organization-list-dto.d.ts +15 -0
  516. package/lib/ax-app-common-lib.component.d.ts +8 -0
  517. package/lib/ax-app-common-lib.module.d.ts +24 -0
  518. package/lib/ax-app-common-lib.service.d.ts +6 -0
  519. package/lib/axo-filters/axo-filters.component.d.ts +86 -0
  520. package/lib/axo-filters/axo-filters.module.d.ts +16 -0
  521. package/lib/axo-filters/axo-filters.service.d.ts +36 -0
  522. package/lib/axo-map/axo-map.component.d.ts +9 -0
  523. package/lib/axo-map/axo-map.d.ts +14 -0
  524. package/lib/axo-map/axo-map.module.d.ts +10 -0
  525. package/lib/axo-map/public-api.d.ts +6 -0
  526. package/lib/axo-search-bar/axo-search-bar.component.d.ts +21 -0
  527. package/lib/axo-search-bar/axo-search-bar.module.d.ts +10 -0
  528. package/lib/axo-search-bar/public.api.d.ts +2 -0
  529. package/lib/axo-snack-bar/axo-snack-bar.component.d.ts +20 -0
  530. package/lib/axo-snack-bar/axo-snack-bar.module.d.ts +9 -0
  531. package/lib/axo-snack-bar/axo-snack-bar.service.d.ts +16 -0
  532. package/lib/axo-snack-bar/public-api.d.ts +2 -0
  533. package/lib/axo-state-manager/axo-state-manager.module.d.ts +7 -0
  534. package/lib/axo-state-manager/axo-state-manager.service.d.ts +15 -0
  535. package/lib/axo-state-manager/public-api.d.ts +2 -0
  536. package/lib/axo-utils/axo-utils.d.ts +72 -0
  537. package/lib/axo-utils/axo-utils.module.d.ts +10 -0
  538. package/lib/axo-utils/constants.d.ts +2 -0
  539. package/lib/axo-utils/data-source-types.d.ts +10 -0
  540. package/lib/axo-utils/field-list-search-pipe.d.ts +7 -0
  541. package/lib/axo-utils/filter-search-pipe.d.ts +7 -0
  542. package/lib/axo-utils/public-api.d.ts +1 -0
  543. package/lib/axo-utils/search-pipe/choice-search.pipe.d.ts +7 -0
  544. package/lib/axo-utils/search-pipe.d.ts +7 -0
  545. package/lib/bread-crumbs/bread-crumbs.component.d.ts +48 -0
  546. package/lib/bread-crumbs/bread-crumbs.module.d.ts +9 -0
  547. package/lib/bread-crumbs/bread-crumbs.service.d.ts +76 -0
  548. package/lib/code-editor/code-editor-modes.d.ts +9 -0
  549. package/lib/code-editor/code-editor-themes.d.ts +6 -0
  550. package/lib/code-editor/code-editor.component.d.ts +20 -0
  551. package/lib/code-editor/code-editor.module.d.ts +10 -0
  552. package/lib/code-editor/icode-editor-options.d.ts +51 -0
  553. package/lib/code-editor/public-api.d.ts +2 -0
  554. package/lib/common-dto/attributes-dto.d.ts +24 -0
  555. package/lib/common-dto/dashboard-dto.d.ts +10 -0
  556. package/lib/common-dto/dataListFilter-dto.d.ts +10 -0
  557. package/lib/common-dto/elements-dto.d.ts +51 -0
  558. package/lib/common-dto/form-dto.d.ts +17 -0
  559. package/lib/common-lib-configuration.service.d.ts +13 -0
  560. package/lib/common-property-panel/properties/properties.service.d.ts +18 -0
  561. package/lib/common-utils/entity-base.d.ts +10 -0
  562. package/lib/common-utils/iFlatten.d.ts +13 -0
  563. package/lib/common-utils/report.d.ts +26 -0
  564. package/lib/common.service.d.ts +50 -0
  565. package/lib/converters/convert-to-new-service.d.ts +6 -0
  566. package/lib/converters/convert-to-old-service.d.ts +26 -0
  567. package/lib/core/auth/auth.service.d.ts +75 -0
  568. package/lib/core/core.module.d.ts +12 -0
  569. package/lib/core/icons/icons.module.d.ts +14 -0
  570. package/lib/core/transloco/transloco.http-loader.d.ts +19 -0
  571. package/lib/core/transloco/transloco.module.d.ts +7 -0
  572. package/lib/core/user/axo-user.d.ts +9 -0
  573. package/lib/core/user/user-data.service.d.ts +25 -0
  574. package/lib/core/user/user.service.d.ts +45 -0
  575. package/lib/core/user/user.types.d.ts +9 -0
  576. package/lib/dashboard-lib/dashboard-builder.service.d.ts +27 -0
  577. package/lib/dashboard-lib/dashboard-control.service.d.ts +31 -0
  578. package/lib/dashboard-lib/dashboard-element/dashboard-element.d.ts +9 -0
  579. package/lib/dashboard-lib/dashboard-element-property/dashboard-property/dashboard-element-property.d.ts +7 -0
  580. package/lib/dashboard-lib/dashboard-filter/dashboard-filter.component.d.ts +37 -0
  581. package/lib/dashboard-lib/dashboard-lib.module.d.ts +26 -0
  582. package/lib/dashboard-lib/dashboard-list.service.d.ts +24 -0
  583. package/lib/dashboard-lib/dashboard.d.ts +14 -0
  584. package/lib/dashboard-lib/send-to-dashboard.service.d.ts +39 -0
  585. package/lib/dashboard-lib/show-dashboards/show-dashboards.component.d.ts +53 -0
  586. package/lib/dashboard-lib/show-dashboards/show-dashboards.service.d.ts +11 -0
  587. package/lib/data-view-lib/data-view/axo-card.d.ts +11 -0
  588. package/lib/data-view-lib/data-view/axo-tag.d.ts +26 -0
  589. package/lib/data-view-lib/data-view/board-column.d.ts +12 -0
  590. package/lib/data-view-lib/data-view/board-view.d.ts +23 -0
  591. package/lib/data-view-lib/data-view/cardConfig.d.ts +11 -0
  592. package/lib/data-view-lib/data-view/conditional-formatting.d.ts +11 -0
  593. package/lib/data-view-lib/data-view/coordinate.d.ts +8 -0
  594. package/lib/data-view-lib/data-view/data-view-enums.d.ts +58 -0
  595. package/lib/data-view-lib/data-view/data-view-filter.d.ts +25 -0
  596. package/lib/data-view-lib/data-view/data-view.d.ts +33 -0
  597. package/lib/data-view-lib/data-view/idata-view.d.ts +7 -0
  598. package/lib/data-view-lib/data-view/image-style.d.ts +8 -0
  599. package/lib/data-view-lib/data-view/info-window.d.ts +10 -0
  600. package/lib/data-view-lib/data-view/location.d.ts +8 -0
  601. package/lib/data-view-lib/data-view/map-view.d.ts +21 -0
  602. package/lib/data-view-lib/data-view/prefix-style.d.ts +12 -0
  603. package/lib/data-view-lib/data-view/tag-style.d.ts +12 -0
  604. package/lib/data-view-lib/data-view/tagConfig.d.ts +34 -0
  605. package/lib/data-view-lib/data-view/task-asset-form-object-dto.d.ts +19 -0
  606. package/lib/data-view-lib/data-view/task-column-value.d.ts +48 -0
  607. package/lib/data-view-lib/data-view/task-view.d.ts +15 -0
  608. package/lib/data-view-lib/data-view/task.d.ts +57 -0
  609. package/lib/data-view-lib/data-view/value-style.d.ts +10 -0
  610. package/lib/data-view-lib/data-view-filters/data-view-filters.component.d.ts +142 -0
  611. package/lib/data-view-lib/data-view-filters/data-view-filters.service.d.ts +28 -0
  612. package/lib/data-view-lib/data-view-header/data-view-header.component.d.ts +85 -0
  613. package/lib/data-view-lib/data-view-lib.module.d.ts +19 -0
  614. package/lib/data-view-lib/data-view.service.d.ts +94 -0
  615. package/lib/data-view-lib/public-api.d.ts +27 -0
  616. package/lib/directive/adjust-font-size.d.ts +13 -0
  617. package/lib/drill-through/drill-through.component.d.ts +53 -0
  618. package/lib/drill-through/drill-through.module.d.ts +10 -0
  619. package/lib/drill-through/drill-through.resolver.d.ts +30 -0
  620. package/lib/drill-through/drill-through.service.d.ts +100 -0
  621. package/lib/enlighten-lib/ax-expression/ax-exp-column.d.ts +17 -0
  622. package/lib/enlighten-lib/ax-expression/ax-exp-date-list.d.ts +16 -0
  623. package/lib/enlighten-lib/ax-expression/ax-exp-date-range-value.d.ts +17 -0
  624. package/lib/enlighten-lib/ax-expression/ax-exp-date-range.d.ts +16 -0
  625. package/lib/enlighten-lib/ax-expression/ax-exp-date-time-list.d.ts +16 -0
  626. package/lib/enlighten-lib/ax-expression/ax-exp-date-time-range-value.d.ts +17 -0
  627. package/lib/enlighten-lib/ax-expression/ax-exp-date-time-range.d.ts +16 -0
  628. package/lib/enlighten-lib/ax-expression/ax-exp-date-time.d.ts +16 -0
  629. package/lib/enlighten-lib/ax-expression/ax-exp-date-value.d.ts +16 -0
  630. package/lib/enlighten-lib/ax-expression/ax-exp-number-list.d.ts +16 -0
  631. package/lib/enlighten-lib/ax-expression/ax-exp-number-range-value.d.ts +17 -0
  632. package/lib/enlighten-lib/ax-expression/ax-exp-number-value.d.ts +16 -0
  633. package/lib/enlighten-lib/ax-expression/ax-exp-text-list.d.ts +16 -0
  634. package/lib/enlighten-lib/ax-expression/ax-exp-text.d.ts +16 -0
  635. package/lib/enlighten-lib/ax-expression/ax-exp-time-list.d.ts +16 -0
  636. package/lib/enlighten-lib/ax-expression/ax-exp-time-range-value.d.ts +17 -0
  637. package/lib/enlighten-lib/ax-expression/ax-exp-time-range.d.ts +17 -0
  638. package/lib/enlighten-lib/ax-expression/ax-exp-time.d.ts +16 -0
  639. package/lib/enlighten-lib/ax-expression/ax-exp-toggle.d.ts +16 -0
  640. package/lib/enlighten-lib/ax-expression/ax-expression-value.d.ts +19 -0
  641. package/lib/enlighten-lib/ax-expression/ax-expression.d.ts +66 -0
  642. package/lib/enlighten-lib/ax-expression/ax-number-range.d.ts +16 -0
  643. package/lib/enlighten-lib/ax-expression/exp-sub-type.d.ts +26 -0
  644. package/lib/enlighten-lib/ax-expression/public-api.d.ts +23 -0
  645. package/lib/enlighten-lib/data-model/attribute.d.ts +60 -0
  646. package/lib/enlighten-lib/data-model/data-model.d.ts +32 -0
  647. package/lib/enlighten-lib/data-model/dependee.d.ts +11 -0
  648. package/lib/enlighten-lib/data-model/dependent.d.ts +11 -0
  649. package/lib/enlighten-lib/data-model/entity.d.ts +31 -0
  650. package/lib/enlighten-lib/data-model-tree/attributes-dragdrop-layout/attributes-dragdrop-layout.component.d.ts +23 -0
  651. package/lib/enlighten-lib/data-model-tree/attributes-selection-layout/attributes-selection-layout.component.d.ts +24 -0
  652. package/lib/enlighten-lib/data-model-tree/categories-tree/categories-tree.component.d.ts +25 -0
  653. package/lib/enlighten-lib/data-model-tree/data-model-tree-enums.d.ts +4 -0
  654. package/lib/enlighten-lib/data-model-tree/data-model-tree.component.d.ts +67 -0
  655. package/lib/enlighten-lib/data-model-tree/data-model-tree.module.d.ts +18 -0
  656. package/lib/enlighten-lib/elements/Property.d.ts +3 -0
  657. package/lib/enlighten-lib/elements/ax-element.d.ts +31 -0
  658. package/lib/enlighten-lib/elements/element-factory.d.ts +13 -0
  659. package/lib/enlighten-lib/enlighten-lib.module.d.ts +53 -0
  660. package/lib/enlighten-lib/enums/bread-crumbs-style.d.ts +4 -0
  661. package/lib/enlighten-lib/enums/operator-text-enum.d.ts +9 -0
  662. package/lib/enlighten-lib/fields/attribute-data.d.ts +55 -0
  663. package/lib/enlighten-lib/fields/entity.d.ts +15 -0
  664. package/lib/enlighten-lib/fields/types/ax-audio.d.ts +4 -0
  665. package/lib/enlighten-lib/fields/types/ax-barcode.d.ts +4 -0
  666. package/lib/enlighten-lib/fields/types/ax-childrecord.d.ts +4 -0
  667. package/lib/enlighten-lib/fields/types/ax-counter.d.ts +4 -0
  668. package/lib/enlighten-lib/fields/types/ax-date.d.ts +4 -0
  669. package/lib/enlighten-lib/fields/types/ax-decimal.d.ts +4 -0
  670. package/lib/enlighten-lib/fields/types/ax-document.d.ts +4 -0
  671. package/lib/enlighten-lib/fields/types/ax-file.d.ts +4 -0
  672. package/lib/enlighten-lib/fields/types/ax-image.d.ts +4 -0
  673. package/lib/enlighten-lib/fields/types/ax-location.d.ts +4 -0
  674. package/lib/enlighten-lib/fields/types/ax-number.d.ts +4 -0
  675. package/lib/enlighten-lib/fields/types/ax-qrcode.d.ts +4 -0
  676. package/lib/enlighten-lib/fields/types/ax-signature.d.ts +4 -0
  677. package/lib/enlighten-lib/fields/types/ax-staticmedia.d.ts +4 -0
  678. package/lib/enlighten-lib/fields/types/ax-text.d.ts +4 -0
  679. package/lib/enlighten-lib/fields/types/ax-time.d.ts +4 -0
  680. package/lib/enlighten-lib/fields/types/ax-uniqueid.d.ts +4 -0
  681. package/lib/enlighten-lib/fields/types/axo-timestamp.d.ts +4 -0
  682. package/lib/enlighten-lib/fields/types/choicelist.d.ts +4 -0
  683. package/lib/enlighten-lib/fields/types/datetime.d.ts +4 -0
  684. package/lib/enlighten-lib/fields/types/hyperlink.d.ts +4 -0
  685. package/lib/enlighten-lib/fields/types/ienlighten-type.d.ts +3 -0
  686. package/lib/enlighten-lib/fields/types/toggle.d.ts +4 -0
  687. package/lib/enlighten-lib/fields/types/video.d.ts +4 -0
  688. package/lib/enlighten-lib/filters/ax-filter.d.ts +38 -0
  689. package/lib/enlighten-lib/filters/ax-operator.d.ts +40 -0
  690. package/lib/enlighten-lib/filters/chart-filter-type.d.ts +5 -0
  691. package/lib/enlighten-lib/filters/condition-type.d.ts +43 -0
  692. package/lib/enlighten-lib/filters/dataList-searchNode.d.ts +27 -0
  693. package/lib/enlighten-lib/filters/dataListFilterExpression.d.ts +20 -0
  694. package/lib/enlighten-lib/filters/dataListFilterOperator.d.ts +29 -0
  695. package/lib/enlighten-lib/filters/dataListSeachQueryTree.d.ts +15 -0
  696. package/lib/enlighten-lib/filters/filter-category.d.ts +43 -0
  697. package/lib/enlighten-lib/filters/general-filter-type.d.ts +10 -0
  698. package/lib/enlighten-lib/filters/gridster-properties.d.ts +17 -0
  699. package/lib/enlighten-lib/filters/iax-filter.d.ts +7 -0
  700. package/lib/enlighten-lib/filters/search-node.d.ts +27 -0
  701. package/lib/enlighten-lib/filters/static-widget.d.ts +2 -0
  702. package/lib/enlighten-lib/property/element-property.d.ts +8 -0
  703. package/lib/enlighten-lib/property/filter-category-property.d.ts +6 -0
  704. package/lib/enlighten-lib/property/filter-property.d.ts +6 -0
  705. package/lib/enlighten-lib/report/chart-filter/chart-filter.component.d.ts +78 -0
  706. package/lib/enlighten-lib/report/element.service.d.ts +61 -0
  707. package/lib/enlighten-lib/report/graphical-report/bar-chart/bar-chart.component.d.ts +259 -0
  708. package/lib/enlighten-lib/report/graphical-report/bar-chart/bar-chart.d.ts +52 -0
  709. package/lib/enlighten-lib/report/graphical-report/bar-chart/bar-chart.service.d.ts +9 -0
  710. package/lib/enlighten-lib/report/graphical-report/card-chart/card-chart.component.d.ts +177 -0
  711. package/lib/enlighten-lib/report/graphical-report/card-chart/card-chart.d.ts +29 -0
  712. package/lib/enlighten-lib/report/graphical-report/card-chart/card-chart.service.d.ts +9 -0
  713. package/lib/enlighten-lib/report/graphical-report/chart/border.d.ts +13 -0
  714. package/lib/enlighten-lib/report/graphical-report/chart/chart-factory.d.ts +7 -0
  715. package/lib/enlighten-lib/report/graphical-report/chart/chart-property.d.ts +5 -0
  716. package/lib/enlighten-lib/report/graphical-report/chart/chart-type.d.ts +16 -0
  717. package/lib/enlighten-lib/report/graphical-report/chart/chart.d.ts +41 -0
  718. package/lib/enlighten-lib/report/graphical-report/chart/common-chart.service.d.ts +13 -0
  719. package/lib/enlighten-lib/report/graphical-report/chart/conditional-formatting.d.ts +6 -0
  720. package/lib/enlighten-lib/report/graphical-report/chart/dimension.d.ts +6 -0
  721. package/lib/enlighten-lib/report/graphical-report/chart/font.d.ts +13 -0
  722. package/lib/enlighten-lib/report/graphical-report/chart/fontStyle.d.ts +13 -0
  723. package/lib/enlighten-lib/report/graphical-report/chart/label.d.ts +6 -0
  724. package/lib/enlighten-lib/report/graphical-report/chart/legend.d.ts +13 -0
  725. package/lib/enlighten-lib/report/graphical-report/chart/matrix.d.ts +11 -0
  726. package/lib/enlighten-lib/report/graphical-report/chart/shadow.d.ts +5 -0
  727. package/lib/enlighten-lib/report/graphical-report/chart/style.d.ts +12 -0
  728. package/lib/enlighten-lib/report/graphical-report/chart/text-style.d.ts +17 -0
  729. package/lib/enlighten-lib/report/graphical-report/chart/title.d.ts +11 -0
  730. package/lib/enlighten-lib/report/graphical-report/graphical-report.component.d.ts +130 -0
  731. package/lib/enlighten-lib/report/graphical-report/graphical-report.directive.d.ts +8 -0
  732. package/lib/enlighten-lib/report/graphical-report/ichart-component.d.ts +6 -0
  733. package/lib/enlighten-lib/report/graphical-report/igraphical-report.component.d.ts +21 -0
  734. package/lib/enlighten-lib/report/graphical-report/line-chart/line-chart.component.d.ts +215 -0
  735. package/lib/enlighten-lib/report/graphical-report/line-chart/line-chart.d.ts +34 -0
  736. package/lib/enlighten-lib/report/graphical-report/line-chart/line-chart.service.d.ts +9 -0
  737. package/lib/enlighten-lib/report/graphical-report/page/page.d.ts +25 -0
  738. package/lib/enlighten-lib/report/graphical-report/pie-chart/pie-chart.component.d.ts +220 -0
  739. package/lib/enlighten-lib/report/graphical-report/pie-chart/pie-chart.d.ts +38 -0
  740. package/lib/enlighten-lib/report/graphical-report/pie-chart/pie-chart.service.d.ts +9 -0
  741. package/lib/enlighten-lib/report/graphical-report/text/text-chart.d.ts +19 -0
  742. package/lib/enlighten-lib/report/graphical-report/text/text.component.d.ts +72 -0
  743. package/lib/enlighten-lib/report/graphical-report/text/text.service.d.ts +9 -0
  744. package/lib/enlighten-lib/report/iproperty.component.d.ts +14 -0
  745. package/lib/enlighten-lib/report/ireport.d.ts +14 -0
  746. package/lib/enlighten-lib/report/report-builder-master.service.d.ts +42 -0
  747. package/lib/enlighten-lib/report/report-filter/report-filter.component.d.ts +117 -0
  748. package/lib/enlighten-lib/report/report-filter/report-filter.module.d.ts +19 -0
  749. package/lib/enlighten-lib/report/report-filter/report-filter.service.d.ts +102 -0
  750. package/lib/enlighten-lib/report/tabular-report/aggregate.d.ts +8 -0
  751. package/lib/enlighten-lib/report/tabular-report/axo-percentage.pipe.d.ts +7 -0
  752. package/lib/enlighten-lib/report/tabular-report/column-style.d.ts +5 -0
  753. package/lib/enlighten-lib/report/tabular-report/itabular-report.component.d.ts +16 -0
  754. package/lib/enlighten-lib/report/tabular-report/orderby-type.d.ts +5 -0
  755. package/lib/enlighten-lib/report/tabular-report/row-style.d.ts +5 -0
  756. package/lib/enlighten-lib/report/tabular-report/table-style.d.ts +21 -0
  757. package/lib/enlighten-lib/report/tabular-report/tabular/column-group-view/column-group-view.component.d.ts +124 -0
  758. package/lib/enlighten-lib/report/tabular-report/tabular/detail-group-view/detail-group-view.component.d.ts +242 -0
  759. package/lib/enlighten-lib/report/tabular-report/tabular/resize-column-directive.d.ts +21 -0
  760. package/lib/enlighten-lib/report/tabular-report/tabular/row-group-view/row-group-view.component.d.ts +190 -0
  761. package/lib/enlighten-lib/report/tabular-report/tabular/tabular.component.d.ts +177 -0
  762. package/lib/enlighten-lib/report/tabular-report/tabular-report.component.d.ts +53 -0
  763. package/lib/enlighten-lib/report/tabular-report/tabular-report.d.ts +102 -0
  764. package/lib/enlighten-lib/report/tabular-report/tabular-report.service.d.ts +173 -0
  765. package/lib/enlighten-lib/report/tabular-report/tabular.d.ts +92 -0
  766. package/lib/enlighten-lib/report/tabular-report/value-formatting.d.ts +7 -0
  767. package/lib/enlighten-lib/report-control.service.d.ts +15 -0
  768. package/lib/enlighten-lib/utils/utils.d.ts +16 -0
  769. package/lib/field-list-lib/fields-list.service.d.ts +71 -0
  770. package/lib/filters/calender-filter/calender-filter.component.d.ts +70 -0
  771. package/lib/filters/category-filter/category-filter.component.d.ts +65 -0
  772. package/lib/filters/category-filter/category-filter.service.d.ts +16 -0
  773. package/lib/filters/category-filter/category.service.d.ts +23 -0
  774. package/lib/filters/choice-list-filter/choice-list-filter.component.d.ts +64 -0
  775. package/lib/filters/choice-list-filter/choice-list-filter.service.d.ts +36 -0
  776. package/lib/filters/common-filter/common-filter.component.d.ts +135 -0
  777. package/lib/filters/common-filter/common-filter.service.d.ts +42 -0
  778. package/lib/filters/custom-scroll-directives.d.ts +14 -0
  779. package/lib/filters/date-time-filter/date-time-filter.component.d.ts +83 -0
  780. package/lib/filters/filter-footer/filter-footer.component.d.ts +12 -0
  781. package/lib/filters/filters.component.d.ts +139 -0
  782. package/lib/filters/filters.module.d.ts +43 -0
  783. package/lib/filters/filters.service.d.ts +83 -0
  784. package/lib/filters/meta-column-filter-builder/meta-column-filter-builder.service.d.ts +70 -0
  785. package/lib/filters/metaColumnTypes.d.ts +18 -0
  786. package/lib/filters/multi-select-filter/multi-select-filter.component.d.ts +68 -0
  787. package/lib/filters/multi-select-filter/multi-select-filter.service.d.ts +77 -0
  788. package/lib/filters/number-filter/number-filter.component.d.ts +70 -0
  789. package/lib/filters/public-api.d.ts +14 -0
  790. package/lib/filters/reference-list-filter/reference-list-filter.component.d.ts +59 -0
  791. package/lib/filters/reference-list-filter/reference-list-filter.service.d.ts +62 -0
  792. package/lib/filters/single-select-filter/single-select-filter.component.d.ts +59 -0
  793. package/lib/filters/time-filter/time-filter.component.d.ts +62 -0
  794. package/lib/filters/user-filter/user-filter.component.d.ts +61 -0
  795. package/lib/filters/user-filter/user-filter.service.d.ts +26 -0
  796. package/lib/form-object/form-object-list/form-object-list-filter/form-object-list-filter.component.d.ts +87 -0
  797. package/lib/form-object/form-object-list/form-object-list-filter/form-object-list-filter.service.d.ts +33 -0
  798. package/lib/form-object/form-object-list/form-object-list-header/form-object-list-header.component.d.ts +13 -0
  799. package/lib/form-object/form-object-list/form-object-list-header/widget-header-type-handler.d.ts +3 -0
  800. package/lib/form-object/form-object-list/form-object-list-header/widgets/text-box-header/text-box-header.component.d.ts +10 -0
  801. package/lib/form-object/form-object-list/form-object-list-header/widgets-header.directive.d.ts +8 -0
  802. package/lib/form-object/form-object-list/form-object-list.component.d.ts +200 -0
  803. package/lib/form-object/form-object-list/form-object-list.d.ts +42 -0
  804. package/lib/form-object/form-object-list/form-object-list.module.d.ts +59 -0
  805. package/lib/form-object/form-object-list/form-object-list.service.d.ts +69 -0
  806. package/lib/form-object/form-object-list/formObjectWidgetValue/form-object-value-handler.d.ts +3 -0
  807. package/lib/form-object/form-object-list/formObjectWidgetValue/form-object-value.directive.d.ts +8 -0
  808. package/lib/form-object/form-object-list/formObjectWidgetValue/form-object-widget-value.component.d.ts +22 -0
  809. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-apply-geo-fence-value/formobject-apply-geo-fence-value.component.d.ts +10 -0
  810. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-audio-value/formobject-audio-value.component.d.ts +12 -0
  811. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-auto-number-value/formobject-auto-number-value.component.d.ts +10 -0
  812. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-bar-code-value/formobject-bar-code-value.component.d.ts +27 -0
  813. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-child-records-value/formobject-child-records-value.component.d.ts +13 -0
  814. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-choicelist-value/formobject-choicelist-value.component.d.ts +20 -0
  815. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-counter-value/formobject-counter-value.component.d.ts +10 -0
  816. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-date-time-value/formobject-date-time-value.component.d.ts +13 -0
  817. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-document-value/formobject-document-value.component.d.ts +15 -0
  818. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-formula-value/formobject-formula-value.component.d.ts +11 -0
  819. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-geo-fence-value/formobject-geo-fence-value.component.d.ts +21 -0
  820. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-gps-value/formobject-gps-value.component.d.ts +23 -0
  821. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-group-header-value/formobject-group-header-value.component.d.ts +10 -0
  822. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-image-value/formobject-image-value.component.d.ts +34 -0
  823. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-languages-value/formobject-languages-value.component.d.ts +12 -0
  824. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-payment-value/formobject-payment-value.component.d.ts +10 -0
  825. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-qr-code-value/formobject-qr-code-value.component.d.ts +27 -0
  826. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-signature-value/formobject-signature-value.component.d.ts +17 -0
  827. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-static-media-value/formobject-static-media-value.component.d.ts +15 -0
  828. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-stop-watch-value/formobject-stop-watch-value.component.d.ts +10 -0
  829. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-sub-form-value/formobject-sub-form-value.component.d.ts +10 -0
  830. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-textbox-value/formobject-textbox-value.component.d.ts +12 -0
  831. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-time-stamp-value/formobject-time-stamp-value.component.d.ts +16 -0
  832. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-toggle-value/formobject-toggle-value.component.d.ts +11 -0
  833. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-unique-id-value/formobject-unique-id-value.component.d.ts +10 -0
  834. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-verification-value/formobject-verification-value.component.d.ts +14 -0
  835. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-video-value/formobject-video-value.component.d.ts +16 -0
  836. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-web-link-value/formobject-web-link-value.component.d.ts +10 -0
  837. package/lib/form-object/form-object-list/formObjectWidgetValue/formobject-widget-mat-dialog/formobject-widget-mat-dialog.component.d.ts +13 -0
  838. package/lib/form-object/form-object-view/data-detail-view-dto.d.ts +16 -0
  839. package/lib/form-object/form-object-view/dynamic-view/dynamic-view.component.d.ts +32 -0
  840. package/lib/form-object/form-object-view/dynamic-view/dynamic-view.directive.d.ts +8 -0
  841. package/lib/form-object/form-object-view/form-object-view.component.d.ts +45 -0
  842. package/lib/form-object/form-object-view/form-object-view.module.d.ts +70 -0
  843. package/lib/form-object/form-object-view/form-object-view.service.d.ts +49 -0
  844. package/lib/form-object/form-object-view/form-object-widgets/apply-geo-fence-widget-view/apply-geo-fence-widget-view.component.d.ts +10 -0
  845. package/lib/form-object/form-object-view/form-object-widgets/audio-widget-view/audio-widget-view.component.d.ts +12 -0
  846. package/lib/form-object/form-object-view/form-object-widgets/auto-number-widget-view/auto-number-widget-view.component.d.ts +10 -0
  847. package/lib/form-object/form-object-view/form-object-widgets/bar-code-widget-view/bar-code-widget-view.component.d.ts +31 -0
  848. package/lib/form-object/form-object-view/form-object-widgets/child-records-widget-view/child-records-widget-view.component.d.ts +22 -0
  849. package/lib/form-object/form-object-view/form-object-widgets/choice-list-widget-view/choice-list-widget-view.component.d.ts +25 -0
  850. package/lib/form-object/form-object-view/form-object-widgets/counter-widget-view/counter-widget-view.component.d.ts +10 -0
  851. package/lib/form-object/form-object-view/form-object-widgets/date-time-widget-view/date-time-widget-view.component.d.ts +12 -0
  852. package/lib/form-object/form-object-view/form-object-widgets/document-widget-view/document-widget-view.component.d.ts +15 -0
  853. package/lib/form-object/form-object-view/form-object-widgets/form-object-widget-type-handler.d.ts +3 -0
  854. package/lib/form-object/form-object-view/form-object-widgets/form-object-widgets-view.component.d.ts +25 -0
  855. package/lib/form-object/form-object-view/form-object-widgets/form-object-widgets-view.directive.d.ts +8 -0
  856. package/lib/form-object/form-object-view/form-object-widgets/formula-widget-view/formula-widget-view.component.d.ts +10 -0
  857. package/lib/form-object/form-object-view/form-object-widgets/geo-fence-widget-view/geo-fence-widget-view.component.d.ts +14 -0
  858. package/lib/form-object/form-object-view/form-object-widgets/gps-widget-view/gps-widget-view.component.d.ts +37 -0
  859. package/lib/form-object/form-object-view/form-object-widgets/group-header-widget-view/group-header-widget-view.component.d.ts +10 -0
  860. package/lib/form-object/form-object-view/form-object-widgets/image-widget-view/image-annotation-data-dto.d.ts +91 -0
  861. package/lib/form-object/form-object-view/form-object-widgets/image-widget-view/image-map-view/image-map-view.component.d.ts +32 -0
  862. package/lib/form-object/form-object-view/form-object-widgets/image-widget-view/image-widget-lightbox-view/image-widget-lightbox-view.component.d.ts +71 -0
  863. package/lib/form-object/form-object-view/form-object-widgets/image-widget-view/image-widget-view.component.d.ts +40 -0
  864. package/lib/form-object/form-object-view/form-object-widgets/language-widget-view/language-widget-view.component.d.ts +12 -0
  865. package/lib/form-object/form-object-view/form-object-widgets/payment-widget-view/payment-widget-view.component.d.ts +10 -0
  866. package/lib/form-object/form-object-view/form-object-widgets/qr-code-widget-view/qr-code-widget-view.component.d.ts +26 -0
  867. package/lib/form-object/form-object-view/form-object-widgets/signature-widget-view/signature-widget-view.component.d.ts +13 -0
  868. package/lib/form-object/form-object-view/form-object-widgets/static-media-widget-view/static-media-widget-view.component.d.ts +13 -0
  869. package/lib/form-object/form-object-view/form-object-widgets/stop-watch-widget-view/stop-watch-widget-view.component.d.ts +10 -0
  870. package/lib/form-object/form-object-view/form-object-widgets/sub-form-widget-view/sub-form-widget-view.component.d.ts +16 -0
  871. package/lib/form-object/form-object-view/form-object-widgets/text-box-widget-view/text-box-widget-view.component.d.ts +14 -0
  872. package/lib/form-object/form-object-view/form-object-widgets/time-stamp-widget-view/time-stamp-widget-view.component.d.ts +15 -0
  873. package/lib/form-object/form-object-view/form-object-widgets/toggle-widget-view/toggle-widget-view.component.d.ts +11 -0
  874. package/lib/form-object/form-object-view/form-object-widgets/unique-id-widget-view/unique-id-widget-view.component.d.ts +10 -0
  875. package/lib/form-object/form-object-view/form-object-widgets/verification-widget-view/verification-widget-view.component.d.ts +14 -0
  876. package/lib/form-object/form-object-view/form-object-widgets/video-widget-view/video-widget-view.component.d.ts +16 -0
  877. package/lib/form-object/form-object-view/form-object-widgets/web-link-widget-view/web-link-widget-view.component.d.ts +10 -0
  878. package/lib/form-object/form-object-view/meta-section/meta-section.component.d.ts +31 -0
  879. package/lib/form-object/form-object-view/section/section.component.d.ts +16 -0
  880. package/lib/form-object/form-object-view/section-field/section-field.component.d.ts +13 -0
  881. package/lib/form-object/form-object-view/section-view/section-view.component.d.ts +16 -0
  882. package/lib/form-object/public-api.d.ts +2 -0
  883. package/lib/form-permission.service.d.ts +51 -0
  884. package/lib/forms/ax-form.d.ts +47 -0
  885. package/lib/forms/iform.d.ts +18 -0
  886. package/lib/forms/page/common/axo-response-status.d.ts +4 -0
  887. package/lib/forms/page/common/constants.d.ts +371 -0
  888. package/lib/forms/page/common/detail-view-enums.d.ts +5 -0
  889. package/lib/forms/page/common/flatten-status-enum.d.ts +7 -0
  890. package/lib/forms/page/common/form.constant.d.ts +85 -0
  891. package/lib/forms/page/common/property-panel-field.d.ts +21 -0
  892. package/lib/forms/page/common/widget-enums.d.ts +236 -0
  893. package/lib/forms/page/common/widget-value-handler.d.ts +4 -0
  894. package/lib/forms/page/data-detail-view/ax-section.d.ts +22 -0
  895. package/lib/forms/page/data-detail-view/collection-view.d.ts +11 -0
  896. package/lib/forms/page/data-detail-view/data-details.d.ts +17 -0
  897. package/lib/forms/page/data-detail-view/section-field.d.ts +13 -0
  898. package/lib/forms/page/data-detail-view/section.d.ts +13 -0
  899. package/lib/forms/page/data-list/data-list-column.d.ts +24 -0
  900. package/lib/forms/page/data-list/data-list.d.ts +24 -0
  901. package/lib/forms/page/form-object.d.ts +6 -0
  902. package/lib/forms/page/form-page.d.ts +19 -0
  903. package/lib/forms/page/value-converters/displayMode-to-bool.d.ts +5 -0
  904. package/lib/forms/page/value-converters/form-type-converter.d.ts +5 -0
  905. package/lib/forms/page/value-converters/geo-fence-value-converter.d.ts +5 -0
  906. package/lib/forms/page/value-converters/image-annotation-value-converter.d.ts +5 -0
  907. package/lib/forms/page/value-converters/language-source-value-converter.d.ts +6 -0
  908. package/lib/forms/page/value-converters/list-view-title-converter.d.ts +5 -0
  909. package/lib/forms/page/value-converters/parse-float-converter.d.ts +5 -0
  910. package/lib/forms/page/value-converters/parse-int-converter.d.ts +5 -0
  911. package/lib/forms/page/value-converters/parse-string-converter.d.ts +5 -0
  912. package/lib/forms/page/value-converters/publicUrls-string-to-array.d.ts +5 -0
  913. package/lib/forms/page/value-converters/record-limit-type-converter.d.ts +5 -0
  914. package/lib/forms/page/value-converters/restriction-mode-converter.d.ts +5 -0
  915. package/lib/forms/page/value-converters/string-to-bool-converter.d.ts +5 -0
  916. package/lib/forms/page/value-converters/string-to-bool-value-converter.d.ts +5 -0
  917. package/lib/forms/page/value-converters/string-to-date-time-converter.d.ts +5 -0
  918. package/lib/forms/page/value-converters/string-to-number -converter.d.ts +5 -0
  919. package/lib/forms/page/value-converters/textBox-mask-converter.d.ts +5 -0
  920. package/lib/forms/page/value-converters/validate-converter.d.ts +5 -0
  921. package/lib/forms/page/value-converters/value-without-mask-converter.d.ts +5 -0
  922. package/lib/forms/page/value-converters/widget-concrete-class-converter.d.ts +6 -0
  923. package/lib/forms/page/value-converters/widget-deserializer.d.ts +3 -0
  924. package/lib/forms/page/widgets/apply-geofences.d.ts +25 -0
  925. package/lib/forms/page/widgets/auto-number.d.ts +28 -0
  926. package/lib/forms/page/widgets/ax-audio.d.ts +43 -0
  927. package/lib/forms/page/widgets/ax-document.d.ts +44 -0
  928. package/lib/forms/page/widgets/ax-image.d.ts +46 -0
  929. package/lib/forms/page/widgets/bar-code.d.ts +52 -0
  930. package/lib/forms/page/widgets/child-record.d.ts +50 -0
  931. package/lib/forms/page/widgets/choicelist.d.ts +70 -0
  932. package/lib/forms/page/widgets/counter.d.ts +36 -0
  933. package/lib/forms/page/widgets/datetime.d.ts +53 -0
  934. package/lib/forms/page/widgets/formula.d.ts +38 -0
  935. package/lib/forms/page/widgets/geofence.d.ts +41 -0
  936. package/lib/forms/page/widgets/gps.d.ts +49 -0
  937. package/lib/forms/page/widgets/group-header.d.ts +51 -0
  938. package/lib/forms/page/widgets/languages.d.ts +41 -0
  939. package/lib/forms/page/widgets/link.d.ts +36 -0
  940. package/lib/forms/page/widgets/payment.d.ts +37 -0
  941. package/lib/forms/page/widgets/qr-code.d.ts +39 -0
  942. package/lib/forms/page/widgets/script-condition.d.ts +33 -0
  943. package/lib/forms/page/widgets/signature.d.ts +34 -0
  944. package/lib/forms/page/widgets/static-media.d.ts +40 -0
  945. package/lib/forms/page/widgets/stopwatch.d.ts +37 -0
  946. package/lib/forms/page/widgets/sub-form.d.ts +39 -0
  947. package/lib/forms/page/widgets/textbox.d.ts +63 -0
  948. package/lib/forms/page/widgets/timestamp.d.ts +42 -0
  949. package/lib/forms/page/widgets/toggle.d.ts +36 -0
  950. package/lib/forms/page/widgets/unique-id.d.ts +33 -0
  951. package/lib/forms/page/widgets/verification.d.ts +55 -0
  952. package/lib/forms/page/widgets/video.d.ts +44 -0
  953. package/lib/forms/page/widgets/widget-value/apply-geo-fence-widget-value.d.ts +18 -0
  954. package/lib/forms/page/widgets/widget-value/audio-video-widget-value.d.ts +11 -0
  955. package/lib/forms/page/widgets/widget-value/child-record-value.d.ts +26 -0
  956. package/lib/forms/page/widgets/widget-value/choice-list-options.d.ts +27 -0
  957. package/lib/forms/page/widgets/widget-value/choices-ml.d.ts +22 -0
  958. package/lib/forms/page/widgets/widget-value/dateRangeValue.d.ts +12 -0
  959. package/lib/forms/page/widgets/widget-value/deviceProfileParams.d.ts +4 -0
  960. package/lib/forms/page/widgets/widget-value/deviceProfilesTemp.d.ts +19 -0
  961. package/lib/forms/page/widgets/widget-value/document-widget-value.d.ts +15 -0
  962. package/lib/forms/page/widgets/widget-value/geo-fence-location-value.d.ts +14 -0
  963. package/lib/forms/page/widgets/widget-value/geo-fence-widget-value.d.ts +14 -0
  964. package/lib/forms/page/widgets/widget-value/gps-widget-value.d.ts +21 -0
  965. package/lib/forms/page/widgets/widget-value/image-widget-value.d.ts +19 -0
  966. package/lib/forms/page/widgets/widget-value/language-widget-value.d.ts +12 -0
  967. package/lib/forms/page/widgets/widget-value/location-object-value.d.ts +12 -0
  968. package/lib/forms/page/widgets/widget-value/multiple-languages.d.ts +21 -0
  969. package/lib/forms/page/widgets/widget-value/reference-list-object-value.d.ts +17 -0
  970. package/lib/forms/page/widgets/widget-value/verification-widget-value.d.ts +31 -0
  971. package/lib/forms/page/widgets/widget.d.ts +75 -0
  972. package/lib/ghost-loader/ghost-loader.component.d.ts +41 -0
  973. package/lib/ghost-loader/ghost-loader.module.d.ts +8 -0
  974. package/lib/ghost-loader/public-api.d.ts +2 -0
  975. package/lib/map-dialog/map-dialog.component.d.ts +16 -0
  976. package/lib/map-dialog/map-dialog.module.d.ts +11 -0
  977. package/lib/map-dialog/public-api.d.ts +5 -0
  978. package/lib/reports-container/public-api.d.ts +7 -0
  979. package/lib/reports-container/report-group/report-group.component.d.ts +17 -0
  980. package/lib/reports-container/reports-container-models/report-group.d.ts +20 -0
  981. package/lib/reports-container/reports-container-models/report-property.d.ts +19 -0
  982. package/lib/reports-container/reports-container-models/reports-container-enums.d.ts +13 -0
  983. package/lib/reports-container/reports-container-models/reports-container.d.ts +16 -0
  984. package/lib/reports-container/reports-container.component.d.ts +16 -0
  985. package/lib/reports-container/reports-container.module.d.ts +13 -0
  986. package/lib/reports-container/reports-container.service.d.ts +18 -0
  987. package/lib/scrollbar/index.d.ts +2 -0
  988. package/lib/scrollbar/public-api.d.ts +2 -0
  989. package/lib/scrollbar/scrollbar.directive.d.ts +153 -0
  990. package/lib/scrollbar/scrollbar.module.d.ts +7 -0
  991. package/lib/scrollbar/scrollbar.types.d.ts +12 -0
  992. package/lib/sculptor-lib/widgets/audio/audio.component.d.ts +32 -0
  993. package/lib/sculptor-lib/widgets/barcode/barcode.component.d.ts +32 -0
  994. package/lib/sculptor-lib/widgets/child-record/child-record.component.d.ts +32 -0
  995. package/lib/sculptor-lib/widgets/choice-list/choice-list.component.d.ts +32 -0
  996. package/lib/sculptor-lib/widgets/date-time/date-time.component.d.ts +32 -0
  997. package/lib/sculptor-lib/widgets/document/document.component.d.ts +32 -0
  998. package/lib/sculptor-lib/widgets/geofence/geofence.component.d.ts +32 -0
  999. package/lib/sculptor-lib/widgets/gps/gps.component.d.ts +32 -0
  1000. package/lib/sculptor-lib/widgets/group-header/group-header.component.d.ts +32 -0
  1001. package/lib/sculptor-lib/widgets/image/image.component.d.ts +32 -0
  1002. package/lib/sculptor-lib/widgets/language/language.component.d.ts +32 -0
  1003. package/lib/sculptor-lib/widgets/link/link.component.d.ts +32 -0
  1004. package/lib/sculptor-lib/widgets/qr-code/qr-code.component.d.ts +32 -0
  1005. package/lib/sculptor-lib/widgets/stopwatch/stopwatch.component.d.ts +32 -0
  1006. package/lib/sculptor-lib/widgets/subform/subform.component.d.ts +32 -0
  1007. package/lib/sculptor-lib/widgets/textbox/textbox.component.d.ts +32 -0
  1008. package/lib/sculptor-lib/widgets/timestamp/timestamp.component.d.ts +32 -0
  1009. package/lib/sculptor-lib/widgets/toggle/toggle.component.d.ts +32 -0
  1010. package/lib/sculptor-lib/widgets/video/video.component.d.ts +32 -0
  1011. package/lib/sculptor-lib/widgets/widgets.service.d.ts +30 -0
  1012. package/lib/shared/comfirmation-modal/confirmation-modal.component.d.ts +18 -0
  1013. package/lib/shared/conditional-formatting/conditional-formatting/conditional-formatting.component.d.ts +29 -0
  1014. package/lib/shared/shared.module.d.ts +13 -0
  1015. package/package.json +64 -0
  1016. package/public-api.d.ts +130 -0
@@ -0,0 +1,756 @@
1
+ import { ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { MatMenuTrigger } from '@angular/material/menu';
3
+ import { Router } from '@angular/router';
4
+ import { ElementFilters, ElementsDto } from '../../../../common-dto/elements-dto';
5
+ import { FieldsListService } from '../../../../field-list-lib/fields-list.service';
6
+ import { Page } from '../../graphical-report/page/page';
7
+ import { ReportBuilderMasterService } from '../../report-builder-master.service';
8
+ import { TabularReport } from '../tabular-report';
9
+ import { ElementService } from '../../element.service';
10
+ import { CommonService } from '../../../../common.service';
11
+ import { FilterSourceElementType } from '../../../filters/chart-filter-type';
12
+ import { takeUntil } from 'rxjs/operators';
13
+ import { Subject } from 'rxjs';
14
+ import { TabularReportService } from '../tabular-report.service';
15
+ import { Validators, FormBuilder } from '@angular/forms';
16
+ import { ScopeType, ScreenType } from '../../../filters/condition-type';
17
+ import { AxExpression } from '../../../ax-expression/ax-expression';
18
+ import { Attribute } from '../../../data-model/attribute';
19
+ import { AxExpTextList } from '../../../ax-expression/ax-exp-text-list';
20
+ import { SearchNode } from '../../../filters/search-node';
21
+ import { AxFilter } from '../../../filters/ax-filter';
22
+ import { DashboardBuilderService } from '../../../../dashboard-lib/dashboard-builder.service';
23
+ import { DrillThroughService } from '../../../../drill-through/drill-through.service';
24
+ import { UserDataService } from '../../../../core/user/user-data.service';
25
+ import { GhostLoaderType } from '../../../../ghost-loader/ghost-loader.component';
26
+ import * as i0 from "@angular/core";
27
+ import * as i1 from "../../../../field-list-lib/fields-list.service";
28
+ import * as i2 from "../../report-builder-master.service";
29
+ import * as i3 from "../../element.service";
30
+ import * as i4 from "../../../../common.service";
31
+ import * as i5 from "../tabular-report.service";
32
+ import * as i6 from "@angular/forms";
33
+ import * as i7 from "../../../../core/user/user-data.service";
34
+ import * as i8 from "../../../../dashboard-lib/dashboard-builder.service";
35
+ import * as i9 from "../../../../drill-through/drill-through.service";
36
+ import * as i10 from "@angular/router";
37
+ const _c0 = ["removeFromDashboardMenu"];
38
+ const _c1 = ["drillThorughMenuTrigger"];
39
+ const _c2 = function (a0) { return { "dashboard-tabular-filter": a0 }; };
40
+ function TabularComponent_div_1_div_1_Template(rf, ctx) { if (rf & 1) {
41
+ const _r21 = i0.ɵɵgetCurrentView();
42
+ i0.ɵɵelementStart(0, "div", 27);
43
+ i0.ɵɵelementStart(1, "lib-report-filter", 28);
44
+ i0.ɵɵlistener("applyFilterEvent", function TabularComponent_div_1_div_1_Template_lib_report_filter_applyFilterEvent_1_listener() { i0.ɵɵrestoreView(_r21); const ctx_r20 = i0.ɵɵnextContext(2); return ctx_r20.applyLocalFilter(); });
45
+ i0.ɵɵelementEnd();
46
+ i0.ɵɵelementEnd();
47
+ } if (rf & 2) {
48
+ const ctx_r15 = i0.ɵɵnextContext(2);
49
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(9, _c2, !ctx_r15.isEditable));
50
+ i0.ɵɵadvance(1);
51
+ i0.ɵɵproperty("filters", ctx_r15.tabularReport.filters)("categories", ctx_r15.tabularReport.categories)("reportId", ctx_r15.reportId)("screenType", ctx_r15.screenType)("dataModel", ctx_r15.dataModel)("isEditable", ctx_r15.isEditable)("appVersion", ctx_r15.appVersionId)("filterSourceElementType", ctx_r15.filterSourceElementTypes.tabular);
52
+ } }
53
+ function TabularComponent_div_1_button_3_Template(rf, ctx) { if (rf & 1) {
54
+ const _r23 = i0.ɵɵgetCurrentView();
55
+ i0.ɵɵelementStart(0, "button", 29);
56
+ i0.ɵɵlistener("click", function TabularComponent_div_1_button_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r23); const ctx_r22 = i0.ɵɵnextContext(2); return ctx_r22.displayNotification = false; });
57
+ i0.ɵɵelement(1, "mat-icon", 30);
58
+ i0.ɵɵelementEnd();
59
+ } if (rf & 2) {
60
+ i0.ɵɵnextContext();
61
+ const _r17 = i0.ɵɵreference(5);
62
+ i0.ɵɵproperty("matMenuTriggerFor", _r17);
63
+ } }
64
+ function TabularComponent_div_1_p_11_Template(rf, ctx) { if (rf & 1) {
65
+ i0.ɵɵelementStart(0, "p", 31);
66
+ i0.ɵɵtext(1, "Please provide a valid email ID");
67
+ i0.ɵɵelementEnd();
68
+ } }
69
+ function TabularComponent_div_1_p_12_Template(rf, ctx) { if (rf & 1) {
70
+ i0.ɵɵelementStart(0, "p", 32);
71
+ i0.ɵɵtext(1, "Export is in progress. You will receive the report on your email once completed.");
72
+ i0.ɵɵelementEnd();
73
+ } }
74
+ const _c3 = function (a0) { return { "justify-end": a0 }; };
75
+ function TabularComponent_div_1_Template(rf, ctx) { if (rf & 1) {
76
+ const _r26 = i0.ɵɵgetCurrentView();
77
+ i0.ɵɵelementStart(0, "div", 14);
78
+ i0.ɵɵtemplate(1, TabularComponent_div_1_div_1_Template, 2, 11, "div", 15);
79
+ i0.ɵɵelementContainerStart(2);
80
+ i0.ɵɵtemplate(3, TabularComponent_div_1_button_3_Template, 2, 1, "button", 16);
81
+ i0.ɵɵelementStart(4, "mat-menu", 17, 18);
82
+ i0.ɵɵelementStart(6, "div", 19);
83
+ i0.ɵɵlistener("click", function TabularComponent_div_1_Template_div_click_6_listener($event) { return $event.stopPropagation(); });
84
+ i0.ɵɵelementStart(7, "form", 20);
85
+ i0.ɵɵelementStart(8, "div");
86
+ i0.ɵɵtext(9, "XLSX");
87
+ i0.ɵɵelementEnd();
88
+ i0.ɵɵelementStart(10, "input", 21);
89
+ i0.ɵɵlistener("ngModelChange", function TabularComponent_div_1_Template_input_ngModelChange_10_listener() { i0.ɵɵrestoreView(_r26); const ctx_r25 = i0.ɵɵnextContext(); return ctx_r25.emailValidate(); });
90
+ i0.ɵɵelementEnd();
91
+ i0.ɵɵtemplate(11, TabularComponent_div_1_p_11_Template, 2, 0, "p", 22);
92
+ i0.ɵɵtemplate(12, TabularComponent_div_1_p_12_Template, 2, 0, "p", 23);
93
+ i0.ɵɵelementStart(13, "div", 24);
94
+ i0.ɵɵelementStart(14, "button", 25);
95
+ i0.ɵɵlistener("click", function TabularComponent_div_1_Template_button_click_14_listener() { i0.ɵɵrestoreView(_r26); const ctx_r27 = i0.ɵɵnextContext(); return ctx_r27.closeExportMenu(); });
96
+ i0.ɵɵtext(15, "Cancel");
97
+ i0.ɵɵelementEnd();
98
+ i0.ɵɵelementStart(16, "button", 26);
99
+ i0.ɵɵlistener("click", function TabularComponent_div_1_Template_button_click_16_listener() { i0.ɵɵrestoreView(_r26); const ctx_r28 = i0.ɵɵnextContext(); return ctx_r28.sendEmail(); });
100
+ i0.ɵɵtext(17, "Export ");
101
+ i0.ɵɵelementStart(18, "mat-icon");
102
+ i0.ɵɵtext(19, "send");
103
+ i0.ɵɵelementEnd();
104
+ i0.ɵɵelementEnd();
105
+ i0.ɵɵelementEnd();
106
+ i0.ɵɵelementEnd();
107
+ i0.ɵɵelementEnd();
108
+ i0.ɵɵelementEnd();
109
+ i0.ɵɵelementContainerEnd();
110
+ i0.ɵɵelementEnd();
111
+ } if (rf & 2) {
112
+ const ctx_r0 = i0.ɵɵnextContext();
113
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c3, ctx_r0.tabularReport.filters.length < 1));
114
+ i0.ɵɵadvance(1);
115
+ i0.ɵɵproperty("ngIf", ctx_r0.isEditable || ctx_r0.tabularReport.filters.length > 0 || ctx_r0.tabularReport.categories.length > 0);
116
+ i0.ɵɵadvance(2);
117
+ i0.ɵɵproperty("ngIf", ctx_r0.tabularReport.matrix.attributes.length > 0);
118
+ i0.ɵɵadvance(4);
119
+ i0.ɵɵproperty("formGroup", ctx_r0.exportFormBuilder);
120
+ i0.ɵɵadvance(4);
121
+ i0.ɵɵproperty("ngIf", ctx_r0.displayEmailValidationError);
122
+ i0.ɵɵadvance(1);
123
+ i0.ɵɵproperty("ngIf", ctx_r0.displayNotification);
124
+ i0.ɵɵadvance(4);
125
+ i0.ɵɵproperty("disabled", ctx_r0.displayEmailValidationError);
126
+ } }
127
+ function TabularComponent_div_2_Template(rf, ctx) { if (rf & 1) {
128
+ i0.ɵɵelementStart(0, "div", 33);
129
+ i0.ɵɵelementStart(1, "div", 34);
130
+ i0.ɵɵelementStart(2, "mat-icon", 35);
131
+ i0.ɵɵtext(3, "table_view");
132
+ i0.ɵɵelementEnd();
133
+ i0.ɵɵelementStart(4, "p", 36);
134
+ i0.ɵɵtext(5, "No columns have been dropped yet !");
135
+ i0.ɵɵelementEnd();
136
+ i0.ɵɵelementEnd();
137
+ i0.ɵɵelementEnd();
138
+ } }
139
+ function TabularComponent_div_3_Template(rf, ctx) { if (rf & 1) {
140
+ i0.ɵɵelement(0, "div", 10, 37);
141
+ } if (rf & 2) {
142
+ const ctx_r2 = i0.ɵɵnextContext();
143
+ const _r3 = i0.ɵɵreference(5);
144
+ i0.ɵɵstyleProp("left", ctx_r2.contextMenuPosition.x)("top", ctx_r2.contextMenuPosition.y);
145
+ i0.ɵɵproperty("matMenuTriggerFor", _r3);
146
+ } }
147
+ function TabularComponent_ng_template_7_Template(rf, ctx) { if (rf & 1) {
148
+ const _r31 = i0.ɵɵgetCurrentView();
149
+ i0.ɵɵelementStart(0, "button", 38);
150
+ i0.ɵɵlistener("click", function TabularComponent_ng_template_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r31); const ctx_r30 = i0.ɵɵnextContext(); return ctx_r30.removeFromDashboard(); });
151
+ i0.ɵɵtext(1, "Remove From Dashboard");
152
+ i0.ɵɵelementEnd();
153
+ } }
154
+ function TabularComponent_lib_detail_view_8_Template(rf, ctx) { if (rf & 1) {
155
+ i0.ɵɵelement(0, "lib-detail-view", 39);
156
+ } if (rf & 2) {
157
+ const ctx_r5 = i0.ɵɵnextContext();
158
+ i0.ɵɵproperty("x1ImageMediaUrl", ctx_r5.x1ImageMediaUrl)("tabularReport", ctx_r5.tabularReport)("isEditable", ctx_r5.isEditable)("elementGuid", ctx_r5.elementGuid)("screenType", ctx_r5.screenType)("drillThroughFilterInput", ctx_r5.drillThroughFilterInput)("drillThroughParentType", ctx_r5.drillThroughParentType)("parentRef", ctx_r5.componentRef)("reportId", ctx_r5.reportId)("appVersionId", ctx_r5.appVersionId)("x1MediaUrl", ctx_r5.x1MediaUrl);
159
+ } }
160
+ function TabularComponent_lib_row_group_view_9_Template(rf, ctx) { if (rf & 1) {
161
+ i0.ɵɵelement(0, "lib-row-group-view", 40);
162
+ } if (rf & 2) {
163
+ const ctx_r6 = i0.ɵɵnextContext();
164
+ i0.ɵɵproperty("x1ImageMediaUrl", ctx_r6.x1ImageMediaUrl)("tabularReport", ctx_r6.tabularReport)("isEditable", ctx_r6.isEditable)("elementGuid", ctx_r6.elementGuid)("screenType", ctx_r6.screenType)("drillThroughFilterInput", ctx_r6.drillThroughFilterInput)("drillThroughParentType", ctx_r6.drillThroughParentType)("reportId", ctx_r6.reportId)("parentRef", ctx_r6.componentRef);
165
+ } }
166
+ function TabularComponent_lib_column_group_view_10_Template(rf, ctx) { if (rf & 1) {
167
+ i0.ɵɵelement(0, "lib-column-group-view", 40);
168
+ } if (rf & 2) {
169
+ const ctx_r7 = i0.ɵɵnextContext();
170
+ i0.ɵɵproperty("x1ImageMediaUrl", ctx_r7.x1ImageMediaUrl)("tabularReport", ctx_r7.tabularReport)("isEditable", ctx_r7.isEditable)("elementGuid", ctx_r7.elementGuid)("screenType", ctx_r7.screenType)("drillThroughFilterInput", ctx_r7.drillThroughFilterInput)("drillThroughParentType", ctx_r7.drillThroughParentType)("reportId", ctx_r7.reportId)("parentRef", ctx_r7.componentRef);
171
+ } }
172
+ const _c4 = function () { return [10, 25, 50, 100]; };
173
+ function TabularComponent_ng_container_11_div_1_Template(rf, ctx) { if (rf & 1) {
174
+ const _r34 = i0.ɵɵgetCurrentView();
175
+ i0.ɵɵelementStart(0, "div", 42);
176
+ i0.ɵɵelementStart(1, "mat-paginator", 43);
177
+ i0.ɵɵlistener("page", function TabularComponent_ng_container_11_div_1_Template_mat_paginator_page_1_listener($event) { i0.ɵɵrestoreView(_r34); const ctx_r33 = i0.ɵɵnextContext(2); return ctx_r33.handlePageEvent($event); });
178
+ i0.ɵɵelementEnd();
179
+ i0.ɵɵelementEnd();
180
+ } if (rf & 2) {
181
+ const ctx_r32 = i0.ɵɵnextContext(2);
182
+ i0.ɵɵadvance(1);
183
+ i0.ɵɵproperty("disabled", ctx_r32.isDataLoading)("length", ctx_r32.tabularReport.pageLength)("pageSize", ctx_r32.tabularReport.pageSize)("pageIndex", ctx_r32.tabularReport.pageIndex)("pageSizeOptions", i0.ɵɵpureFunction0(5, _c4));
184
+ } }
185
+ function TabularComponent_ng_container_11_Template(rf, ctx) { if (rf & 1) {
186
+ i0.ɵɵelementContainerStart(0);
187
+ i0.ɵɵtemplate(1, TabularComponent_ng_container_11_div_1_Template, 2, 6, "div", 41);
188
+ i0.ɵɵelementContainerEnd();
189
+ } if (rf & 2) {
190
+ const ctx_r8 = i0.ɵɵnextContext();
191
+ i0.ɵɵadvance(1);
192
+ i0.ɵɵproperty("ngIf", ctx_r8.tabularReport.colGrouping.length === 0);
193
+ } }
194
+ function TabularComponent_ng_container_12_Template(rf, ctx) { if (rf & 1) {
195
+ i0.ɵɵelementContainerStart(0);
196
+ i0.ɵɵelement(1, "app-ghost-loader", 44);
197
+ i0.ɵɵelementContainerEnd();
198
+ } if (rf & 2) {
199
+ const ctx_r9 = i0.ɵɵnextContext();
200
+ i0.ɵɵadvance(1);
201
+ i0.ɵɵproperty("elementType", ctx_r9.GhostLoaderType.PaginationViewLoader);
202
+ } }
203
+ function TabularComponent_ng_template_18_button_2_Template(rf, ctx) { if (rf & 1) {
204
+ const _r38 = i0.ɵɵgetCurrentView();
205
+ i0.ɵɵelementStart(0, "button", 38);
206
+ i0.ɵɵlistener("click", function TabularComponent_ng_template_18_button_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r38); const ctx_r37 = i0.ɵɵnextContext(2); return ctx_r37.removeFromDashboard(); });
207
+ i0.ɵɵtext(1, "Remove From Dashboard");
208
+ i0.ɵɵelementEnd();
209
+ } }
210
+ function TabularComponent_ng_template_18_Template(rf, ctx) { if (rf & 1) {
211
+ i0.ɵɵelementStart(0, "button", 45);
212
+ i0.ɵɵtext(1, "Drill Through");
213
+ i0.ɵɵelementEnd();
214
+ i0.ɵɵtemplate(2, TabularComponent_ng_template_18_button_2_Template, 2, 0, "button", 46);
215
+ } if (rf & 2) {
216
+ const ctx_r12 = i0.ɵɵnextContext();
217
+ const _r13 = i0.ɵɵreference(20);
218
+ i0.ɵɵproperty("matMenuTriggerFor", _r13);
219
+ i0.ɵɵadvance(2);
220
+ i0.ɵɵproperty("ngIf", ctx_r12.screenTypes.dashboardBuilder === ctx_r12.screenType);
221
+ } }
222
+ function TabularComponent_ng_template_22_ng_container_0_Template(rf, ctx) { if (rf & 1) {
223
+ const _r43 = i0.ɵɵgetCurrentView();
224
+ i0.ɵɵelementContainerStart(0);
225
+ i0.ɵɵelementStart(1, "button", 38);
226
+ i0.ɵɵlistener("click", function TabularComponent_ng_template_22_ng_container_0_Template_button_click_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r43); const page_r41 = restoredCtx.$implicit; const ctx_r42 = i0.ɵɵnextContext(2); return ctx_r42.pageClick(page_r41); });
227
+ i0.ɵɵtext(2);
228
+ i0.ɵɵelementEnd();
229
+ i0.ɵɵelementContainerEnd();
230
+ } if (rf & 2) {
231
+ const page_r41 = ctx.$implicit;
232
+ i0.ɵɵadvance(2);
233
+ i0.ɵɵtextInterpolate1(" ", page_r41.name, "");
234
+ } }
235
+ function TabularComponent_ng_template_22_Template(rf, ctx) { if (rf & 1) {
236
+ i0.ɵɵtemplate(0, TabularComponent_ng_template_22_ng_container_0_Template, 3, 1, "ng-container", 47);
237
+ } if (rf & 2) {
238
+ const ctx_r14 = i0.ɵɵnextContext();
239
+ i0.ɵɵproperty("ngForOf", ctx_r14.pages);
240
+ } }
241
+ export class TabularComponent {
242
+ constructor(_fieldsListService, _reportBuilderMasterService, _elementService, _commonService, _tabularReportService, _formBuilder, _userDataService, _changeDetectorRef, _dashboardBuilderService, _drillThroughService, _router) {
243
+ this._fieldsListService = _fieldsListService;
244
+ this._reportBuilderMasterService = _reportBuilderMasterService;
245
+ this._elementService = _elementService;
246
+ this._commonService = _commonService;
247
+ this._tabularReportService = _tabularReportService;
248
+ this._formBuilder = _formBuilder;
249
+ this._userDataService = _userDataService;
250
+ this._changeDetectorRef = _changeDetectorRef;
251
+ this._dashboardBuilderService = _dashboardBuilderService;
252
+ this._drillThroughService = _drillThroughService;
253
+ this._router = _router;
254
+ this.sendExcelReportEvent = new EventEmitter();
255
+ this.GhostLoaderType = GhostLoaderType;
256
+ this.showGhostLoader = true;
257
+ this.contextMenuPosition = { x: '0px', y: '0px' };
258
+ this._isColumnExist = false;
259
+ this.displayNotification = false;
260
+ this.emailPattern = '^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$';
261
+ this.displayEmailValidationError = false;
262
+ this.selectedDataPoints = []; // Holds the all selected points.
263
+ this.pages = [];
264
+ /*
265
+ * Subject object which helps unsubscribe all the subscribed objects in the component
266
+ */
267
+ this._unsubscribeAll = new Subject();
268
+ }
269
+ get filterSourceElementTypes() {
270
+ return FilterSourceElementType;
271
+ }
272
+ get screenTypes() {
273
+ return ScreenType;
274
+ }
275
+ ngOnChanges(changes) {
276
+ // this.tabularReport = this.page.elements[0] as TabularReport;
277
+ }
278
+ ngOnInit() {
279
+ this.subscribers();
280
+ this.isEditable = (this.screenType !== ScreenType.drillThrough) && (this.screenType !== ScreenType.dashboardBuilder) && (this.screenType !== ScreenType.containerDashboard);
281
+ this.componentRef = this;
282
+ this.report = this._reportBuilderMasterService.report;
283
+ this.reportId = this.report?.id;
284
+ }
285
+ /**
286
+ * On destroy
287
+ */
288
+ ngOnDestroy() {
289
+ // Unsubscribe from all subscriptions
290
+ this._unsubscribeAll.next();
291
+ this._unsubscribeAll.complete();
292
+ }
293
+ /**
294
+ * Subscribers for the component
295
+ */
296
+ subscribers() {
297
+ // Subscribe to user changes
298
+ this._userDataService.userDetails$
299
+ .pipe(takeUntil(this._unsubscribeAll))
300
+ .subscribe((user) => {
301
+ this.user = user;
302
+ // Mark for check
303
+ this._changeDetectorRef.markForCheck();
304
+ });
305
+ this.exportFormBuilder = this._formBuilder.group({
306
+ email: [this.userEmail, [Validators.required, Validators.email]]
307
+ });
308
+ this.componentRef = this;
309
+ this.report = this._reportBuilderMasterService.report;
310
+ /*whenever we change the filters we got call back from this subscribe */
311
+ this._elementService.refreshDataEvent$
312
+ .pipe(takeUntil(this._unsubscribeAll))
313
+ .subscribe((val) => {
314
+ if (val && this.tabularReport.colGrouping.length === 0) {
315
+ if (this.tabularReport.colGrouping.length > 0) {
316
+ this.tabularReport = this._tabularReportService.columnData(this.tabularReport);
317
+ }
318
+ this.tabularReport.isDataLoaded = false;
319
+ this.tabularReport.pageIndex = 0;
320
+ this.tabularReport.pageLength = 0;
321
+ this.tabularReport.isDataLoaded = false;
322
+ this.getMatrixDimension();
323
+ }
324
+ });
325
+ /*when we click on bar chart event will be emitted from this subscriber*/
326
+ this._elementService.crossFilterEvent.subscribe((crossFilter) => {
327
+ if (this.tabularReport.guid !== crossFilter.elementGuid) {
328
+ if (crossFilter.resetFilter) {
329
+ this.getMatrixDimension();
330
+ }
331
+ else {
332
+ this.createCrossFilter(crossFilter);
333
+ }
334
+ }
335
+ });
336
+ }
337
+ getPageList() {
338
+ // Get pageslist
339
+ this._commonService.getPageList(this.appVersionId);
340
+ }
341
+ filterDrillThroughPages(attribute) {
342
+ this._commonService.pageList$.subscribe((pages) => {
343
+ this.pages = [];
344
+ pages?.forEach((_page) => {
345
+ _page?.drillData?.forEach((drillData) => {
346
+ if (drillData.columnName === attribute.columnName && drillData.tableName === attribute.tableName) {
347
+ this.pages.push(_page);
348
+ }
349
+ });
350
+ });
351
+ if ((this.screenType === ScreenType.reportBuilder) || (this.screenType === ScreenType.drillThrough)) {
352
+ this.pages = this.pages.filter(p => p.id !== this.page.id);
353
+ }
354
+ });
355
+ }
356
+ getMatrixDimension() {
357
+ if (this.tabularReport.matrix.attributes.length > 0) {
358
+ const data = new ElementsDto(this.tabularReport);
359
+ data.filters.localFilters.basic = this._elementService.getValidFilter(this.tabularReport.filters);
360
+ data.filters.localFilters.category = this._elementService.getValidFilterCategory(this.tabularReport.categories);
361
+ data.filters.globalFilters.basic = this._elementService.getValidFilter(this._elementService.filtersDto.basic, ScopeType.global);
362
+ data.filters.globalFilters.category = this._elementService.getValidFilterCategory(this._elementService.filtersDto.category, ScopeType.global);
363
+ data.reportId = this.reportId;
364
+ data.type = 'tabular-report'; // use enum
365
+ data.pageIndex = this.tabularReport.colGrouping.length > 0 ? 0 : this.tabularReport.pageIndex;
366
+ data.pageSize = this.tabularReport.colGrouping.length > 0 ? 0 : this.tabularReport.pageSize;
367
+ data.pageLength = this.tabularReport.colGrouping.length > 0 ? 0 : this.tabularReport.pageLength;
368
+ data.orderBy = this.tabularReport.matrix.attributes;
369
+ this.isDataLoading = true;
370
+ this._fieldsListService.getMatrixData(data).then((entitiesAttribute) => {
371
+ this.isDataLoading = false;
372
+ if (entitiesAttribute != null) {
373
+ entitiesAttribute.matrix.attributes.showSum = true;
374
+ this.tabularReport.matrix.attributes = entitiesAttribute.matrix.attributes;
375
+ if (this.tabularReport.matrix.attributes[0].series.length === 0) {
376
+ this.tabularReport.showGrandTotal = false;
377
+ this.tabularReport.subTotal = false;
378
+ }
379
+ this.tabularReport = this._tabularReportService.groupData(this.tabularReport);
380
+ if (this.tabularReport.colGrouping.length > 0) {
381
+ this.tabularReport.colGrouping.forEach((attribute) => {
382
+ this.tabularReport = this._tabularReportService.newData(this.tabularReport, attribute);
383
+ });
384
+ this.tabularReport = this._tabularReportService.dataFactory(this.tabularReport);
385
+ if (this.tabularReport.rowCount && this.tabularReport.integerArray.length > 0) {
386
+ this.tabularReport = this._tabularReportService.rowCountData(this.tabularReport);
387
+ }
388
+ }
389
+ this.tabularReport.isDataLoaded = true;
390
+ this.tabularReport.pageLength = entitiesAttribute.totalRecords;
391
+ }
392
+ this.tabularReport.pageIndex = entitiesAttribute.pageIndex;
393
+ this.tabularReport.pageLength = entitiesAttribute.totalRecords;
394
+ this.tabularReport.pageSize = entitiesAttribute.pageSize;
395
+ }).catch(() => {
396
+ this.isDataLoading = false;
397
+ });
398
+ }
399
+ this.tabularReport.isDataLoaded = true;
400
+ }
401
+ /**
402
+ * Created filter object for cross filtering.
403
+ *
404
+ * @param CrossFilterDto
405
+ */
406
+ createCrossFilter(crossFilterData) {
407
+ const axExpression = new AxExpression();
408
+ axExpression.comparisonOperator.text = 'In';
409
+ axExpression.comparisonOperator.value = 'IN';
410
+ axExpression.valueType = 2;
411
+ axExpression.field = new Attribute(crossFilterData.attributeData);
412
+ const axExpTextList = new AxExpTextList();
413
+ if (crossFilterData.values) {
414
+ crossFilterData.values.forEach((value) => {
415
+ axExpTextList.value.push(value);
416
+ });
417
+ }
418
+ axExpression.value = axExpTextList;
419
+ const _searchNodes = new SearchNode();
420
+ _searchNodes.expression = axExpression;
421
+ const _filter = new AxFilter();
422
+ _filter.searchNodes.push(_searchNodes);
423
+ _filter.appVersionId = 0;
424
+ this.getCrossFilterData(_filter, crossFilterData);
425
+ }
426
+ /**
427
+ * pushed the filter object into basic filter and applied the filter on the data
428
+ *
429
+ * @param CrossFilterDto
430
+ * @param AxFilter
431
+ */
432
+ getCrossFilterData(_filter, crossFilterData) {
433
+ if (this.tabularReport.matrix.attributes.length) {
434
+ const elementDto = new ElementsDto(this.tabularReport);
435
+ elementDto.filters.localFilters.basic = this._elementService.getValidFilter(this.tabularReport.filters);
436
+ elementDto.filters.localFilters.basic.push(_filter);
437
+ elementDto.filters.localFilters.category = this._elementService.getValidFilterCategory(this.tabularReport.categories);
438
+ elementDto.filters.globalFilters.basic = this._elementService.getValidFilter(this._elementService.filtersDto.basic);
439
+ elementDto.filters.globalFilters.category = this._elementService.getValidFilterCategory(this._elementService.filtersDto.category);
440
+ elementDto.reportId = this.reportId;
441
+ this._fieldsListService.getMatrixData(elementDto)
442
+ .then((entitiesAttribute) => {
443
+ if (entitiesAttribute != null || entitiesAttribute.dimension.attribute.series.length > 0) {
444
+ // entitiesAttribute.matrix.attributes.showSum=true;
445
+ this.tabularReport.matrix.attributes = entitiesAttribute.matrix.attributes;
446
+ this.tabularReport = this._tabularReportService.groupData(this.tabularReport);
447
+ }
448
+ });
449
+ }
450
+ }
451
+ /**
452
+ * to add column into tabular report
453
+ *
454
+ * @param AttributeData
455
+ *
456
+ */
457
+ addColumn(attributeData) {
458
+ this.isColumnExist(attributeData);
459
+ if (!this._isColumnExist) {
460
+ this.tabularReport.matrix.attributes.push(attributeData);
461
+ this._commonService.isReportBuilderDirty = true;
462
+ this.getMatrixDimension();
463
+ }
464
+ this._isColumnExist = false;
465
+ }
466
+ /**
467
+ * to check dropped column is already exist in table or not
468
+ *
469
+ * @param AttributeData
470
+ *
471
+ */
472
+ isColumnExist(attributeData) {
473
+ this.tabularReport.matrix.attributes.forEach((attribute) => {
474
+ if (attribute.name === attributeData.name && attribute.tableName === attributeData.tableName) {
475
+ this._isColumnExist = true;
476
+ }
477
+ });
478
+ }
479
+ /**
480
+ * call this function when apply filter
481
+ */
482
+ getChartData() {
483
+ if (this.tabularReport.colGrouping.length > 0) {
484
+ this.tabularReport = this._tabularReportService.columnData(this.tabularReport);
485
+ }
486
+ this.tabularReport.isDataLoaded = false;
487
+ this.getMatrixDimension();
488
+ }
489
+ /**
490
+ * call this function for send email with excel report as attachment
491
+ */
492
+ sendEmail() {
493
+ this.displayNotification = false;
494
+ if (!this.displayEmailValidationError) {
495
+ const elementFilterAndCategory = new ElementFilters();
496
+ elementFilterAndCategory.globalFilters.basic = this._elementService.getValidFilter(this._elementService.filtersDto.basic, ScopeType.global);
497
+ elementFilterAndCategory.globalFilters.category = this._elementService.getValidFilterCategory(this._elementService.filtersDto.category, ScopeType.global);
498
+ elementFilterAndCategory.localFilters.basic = this._elementService.getValidFilter(this.tabularReport.filters);
499
+ elementFilterAndCategory.localFilters.category = this._elementService.getValidFilterCategory(this.tabularReport.categories);
500
+ const sendEmailDto = {
501
+ emailId: this.exportFormBuilder.value['email'],
502
+ elementId: this.tabularReport.id,
503
+ Filters: elementFilterAndCategory
504
+ };
505
+ if (this.isEditable && this._commonService.isReportBuilderDirty) {
506
+ this.sendExcelReportEvent.emit({ sendEmailDto: sendEmailDto, component: this });
507
+ }
508
+ else {
509
+ this._tabularReportService.sendEmail(sendEmailDto).then(() => {
510
+ this.displayNotification = true;
511
+ });
512
+ }
513
+ }
514
+ }
515
+ /**
516
+ * close the export to email menu on click of cancel
517
+ */
518
+ closeExportMenu() {
519
+ this.contextMenu.closeMenu();
520
+ this.displayNotification = false;
521
+ }
522
+ /**
523
+ * Validation of email id for export of tabular report
524
+ */
525
+ emailValidate() {
526
+ const regex = new RegExp(this.emailPattern);
527
+ this.displayEmailValidationError = !regex.test(this.exportFormBuilder.value['email']);
528
+ if (this.displayEmailValidationError) {
529
+ this.displayNotification = false;
530
+ }
531
+ }
532
+ /**
533
+ *
534
+ * @param MouseEvent
535
+ * @param number
536
+ * @param AttributeData
537
+ */
538
+ onContextMenu(event) {
539
+ if (!this.isEditable && ([this.screenTypes.containerDashboard, this.screenTypes.drillThrough].includes(this.screenType))) {
540
+ event.preventDefault();
541
+ return;
542
+ }
543
+ event.preventDefault();
544
+ const dashboardElement = document.getElementById(this.elementGuid);
545
+ const elementClientRect = dashboardElement.getBoundingClientRect();
546
+ this.contextMenuPosition.x = (event.clientX - elementClientRect.x) + 'px';
547
+ this.contextMenuPosition.y = (event.clientY - elementClientRect.y) + 'px';
548
+ this.removeFromDashboardMenu.menu.focusFirstItem('mouse');
549
+ this.removeFromDashboardMenu.openMenu();
550
+ }
551
+ removeFromDashboard() {
552
+ this._dashboardBuilderService.deleteElement.emit(this.tabularReport);
553
+ }
554
+ drillThroughContext(event, attribute, i) {
555
+ this.filterDrillThroughPages(attribute);
556
+ if (!this.pages.length) {
557
+ return;
558
+ }
559
+ this.currentAttribute = attribute;
560
+ this.createDrillThroughFilter(attribute.series[i]);
561
+ if (this.screenType === ScreenType.drillThrough && !this.pages.length) {
562
+ event.stopPropagation();
563
+ event.preventDefault();
564
+ }
565
+ else if (!this.isEditable && (this.screenType !== ScreenType.drillThrough)) {
566
+ event.stopPropagation();
567
+ event.preventDefault();
568
+ const dashboardElement = document.getElementById(this.elementGuid);
569
+ const elementBounds = dashboardElement.getBoundingClientRect();
570
+ this.contextMenuPosition.x = (event.clientX - elementBounds.x) + 'px';
571
+ this.contextMenuPosition.y = (event.clientY - elementBounds.y) + 'px';
572
+ this.drillThroughTrigger.menu.focusFirstItem('mouse');
573
+ this.drillThroughTrigger.openMenu();
574
+ }
575
+ else {
576
+ event.stopPropagation();
577
+ event.preventDefault();
578
+ this.contextMenuPosition.x = event.clientX + 'px';
579
+ this.contextMenuPosition.y = event.clientY + 'px';
580
+ this.drillThroughTrigger.menu.focusFirstItem('mouse');
581
+ this.drillThroughTrigger.openMenu();
582
+ }
583
+ }
584
+ /**
585
+ * Created filter object for cross filtering.
586
+ *
587
+ * @param CrossFilterDto
588
+ */
589
+ createDrillThroughFilter(series) {
590
+ const axExpression = new AxExpression();
591
+ axExpression.comparisonOperator.text = 'In';
592
+ axExpression.comparisonOperator.value = 'IN';
593
+ axExpression.valueType = 2;
594
+ axExpression.field = new Attribute(this.currentAttribute);
595
+ const axExpTextList = new AxExpTextList();
596
+ axExpTextList.value.push(series);
597
+ axExpTextList.isSearchable = true;
598
+ axExpression.value = axExpTextList;
599
+ const _searchNodes = new SearchNode();
600
+ _searchNodes.expression = axExpression;
601
+ this.drillThroughFilter = new AxFilter();
602
+ this.drillThroughFilter.searchNodes.push(_searchNodes);
603
+ this.drillThroughFilter.appVersionId = 0;
604
+ }
605
+ /**
606
+ * Called on page name clicked on dropdown options of drill through pages
607
+ *
608
+ * @param page
609
+ */
610
+ pageClick(page) {
611
+ if (this.screenType !== ScreenType.drillThrough) {
612
+ if (this.drillThroughParentType ? this.drillThroughParentType === ScreenType.reportBuilder : this.isEditable) {
613
+ this._drillThroughService.setParentData(this.reportId, this._reportBuilderMasterService.report.name, this._router.url);
614
+ this.navigateToDrillThrough(page);
615
+ }
616
+ else {
617
+ this._dashboardBuilderService.dashboard$.pipe(takeUntil(this._unsubscribeAll)).subscribe((dashboard) => {
618
+ this._drillThroughService.setParentData(this.reportId, dashboard.name, this._router.url);
619
+ this.navigateToDrillThrough(page);
620
+ });
621
+ }
622
+ }
623
+ else {
624
+ this.navigateToDrillThrough(page);
625
+ }
626
+ }
627
+ /**
628
+ * Navigate to drill through component with page id as route params
629
+ * Checks the parent URL if it is already exists or not
630
+ *
631
+ * @param page
632
+ */
633
+ navigateToDrillThrough(page) {
634
+ const parentUrl = this._drillThroughService.getParentData().url;
635
+ this._drillThroughService.drillPage(page, this.drillThroughFilter);
636
+ if (!parentUrl) {
637
+ this._router.navigate([this._router.url + '/drill-through/' + page.id]);
638
+ }
639
+ else {
640
+ this._router.navigate([parentUrl, 'drill-through', page.id]);
641
+ }
642
+ }
643
+ /**
644
+ * handle paginator event to change data as per page index and pagesize
645
+ *
646
+ * @param event
647
+ */
648
+ handlePageEvent(event) {
649
+ this.tabularReport.pageIndex = event.pageIndex;
650
+ this.tabularReport.pageSize = event.pageSize;
651
+ this.tabularReport.isDataLoaded = false;
652
+ this.getMatrixDimension();
653
+ }
654
+ /**
655
+ * Apply local filter.
656
+ */
657
+ applyLocalFilter() {
658
+ this.getChartData();
659
+ }
660
+ }
661
+ TabularComponent.ɵfac = function TabularComponent_Factory(t) { return new (t || TabularComponent)(i0.ɵɵdirectiveInject(i1.FieldsListService), i0.ɵɵdirectiveInject(i2.ReportBuilderMasterService), i0.ɵɵdirectiveInject(i3.ElementService), i0.ɵɵdirectiveInject(i4.CommonService), i0.ɵɵdirectiveInject(i5.TabularReportService), i0.ɵɵdirectiveInject(i6.FormBuilder), i0.ɵɵdirectiveInject(i7.UserDataService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i8.DashboardBuilderService), i0.ɵɵdirectiveInject(i9.DrillThroughService), i0.ɵɵdirectiveInject(i10.Router)); };
662
+ TabularComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TabularComponent, selectors: [["tabular"]], viewQuery: function TabularComponent_Query(rf, ctx) { if (rf & 1) {
663
+ i0.ɵɵviewQuery(MatMenuTrigger, 5);
664
+ i0.ɵɵviewQuery(_c0, 5, MatMenuTrigger);
665
+ i0.ɵɵviewQuery(_c1, 5, MatMenuTrigger);
666
+ } if (rf & 2) {
667
+ let _t;
668
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contextMenu = _t.first);
669
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.removeFromDashboardMenu = _t.first);
670
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.drillThroughTrigger = _t.first);
671
+ } }, inputs: { page: "page", tabularReport: "tabularReport", isEditable: "isEditable", userEmail: "userEmail", x1ImageMediaUrl: "x1ImageMediaUrl", screenType: "screenType", drillThroughParentType: "drillThroughParentType", drillThroughFilterInput: "drillThroughFilterInput", x1MediaUrl: "x1MediaUrl", appVersionId: "appVersionId" }, outputs: { sendExcelReportEvent: "sendExcelReportEvent" }, features: [i0.ɵɵNgOnChangesFeature], decls: 23, vars: 13, consts: [[1, "h-full", "min-h-full", "max-h-full", 3, "contextmenu"], ["class", "filter-div px-3 h-11", 3, "ngClass", 4, "ngIf"], ["class", "no-column-drop-here", 4, "ngIf"], ["class", "drillthrough-menu-trigger", 3, "left", "top", "matMenuTriggerFor", 4, "ngIf"], ["contextMenu", "matMenu"], ["id", "table-menu"], ["matMenuContent", ""], [3, "x1ImageMediaUrl", "tabularReport", "isEditable", "elementGuid", "screenType", "drillThroughFilterInput", "drillThroughParentType", "parentRef", "reportId", "appVersionId", "x1MediaUrl", 4, "ngIf"], [3, "x1ImageMediaUrl", "tabularReport", "isEditable", "elementGuid", "screenType", "drillThroughFilterInput", "drillThroughParentType", "reportId", "parentRef", 4, "ngIf"], [4, "ngIf"], [1, "drillthrough-menu-trigger", 3, "matMenuTriggerFor"], ["drillThorughMenuTrigger", ""], ["drillThroughMenu", "matMenu"], ["drillThroughPages", "matMenu"], [1, "filter-div", "px-3", "h-11", 3, "ngClass"], ["class", "tabular-chart-filter", 3, "ngClass", 4, "ngIf"], ["class", "export-btn icon-btn", "mat-button", "", 3, "matMenuTriggerFor", "click", 4, "ngIf"], ["xPosition", "before"], ["beforeMenu", "matMenu"], [1, "send-excel-report-form", 3, "click"], [3, "formGroup"], ["mat-menu-item", "", "type", "text", "formControlName", "email", 1, "report-xslx-email", 3, "ngModelChange"], ["class", "email-send-email-error", 4, "ngIf"], ["class", "email-send-notification", 4, "ngIf"], [1, "send-excel-report-form-btn"], ["mat-menu-item", "", 1, "cancel-btn", "btn", 3, "click"], ["mat-menu-item", "", 1, "send-btn", "btn", 3, "disabled", "click"], [1, "tabular-chart-filter", 3, "ngClass"], [3, "filters", "categories", "reportId", "screenType", "dataModel", "isEditable", "appVersion", "filterSourceElementType", "applyFilterEvent"], ["mat-button", "", 1, "export-btn", "icon-btn", 3, "matMenuTriggerFor", "click"], ["matTooltip", "Export Data", "svgIcon", "axo_export"], [1, "email-send-email-error"], [1, "email-send-notification"], [1, "no-column-drop-here"], [1, "text-center"], [1, "table-view-icon"], [1, "font-size", "m-0", "no-column-text"], ["removeFromDashboardMenu", ""], ["mat-menu-item", "", 3, "click"], [3, "x1ImageMediaUrl", "tabularReport", "isEditable", "elementGuid", "screenType", "drillThroughFilterInput", "drillThroughParentType", "parentRef", "reportId", "appVersionId", "x1MediaUrl"], [3, "x1ImageMediaUrl", "tabularReport", "isEditable", "elementGuid", "screenType", "drillThroughFilterInput", "drillThroughParentType", "reportId", "parentRef"], ["class", "flex align-items deatil-group-table-paginator", 4, "ngIf"], [1, "flex", "align-items", "deatil-group-table-paginator"], ["aria-label", "Select page", 1, "mat-paginator", "flex", "justify-end", "w-full", 3, "disabled", "length", "pageSize", "pageIndex", "pageSizeOptions", "page"], [1, "tabular-pagination-ghost-loader", 3, "elementType"], ["mat-menu-item", "", 3, "matMenuTriggerFor"], ["mat-menu-item", "", 3, "click", 4, "ngIf"], [4, "ngFor", "ngForOf"]], template: function TabularComponent_Template(rf, ctx) { if (rf & 1) {
672
+ i0.ɵɵelementStart(0, "div", 0);
673
+ i0.ɵɵlistener("contextmenu", function TabularComponent_Template_div_contextmenu_0_listener($event) { return ctx.onContextMenu($event); });
674
+ i0.ɵɵtemplate(1, TabularComponent_div_1_Template, 20, 9, "div", 1);
675
+ i0.ɵɵtemplate(2, TabularComponent_div_2_Template, 6, 0, "div", 2);
676
+ i0.ɵɵtemplate(3, TabularComponent_div_3_Template, 2, 5, "div", 3);
677
+ i0.ɵɵelementStart(4, "mat-menu", null, 4);
678
+ i0.ɵɵelementStart(6, "div", 5);
679
+ i0.ɵɵtemplate(7, TabularComponent_ng_template_7_Template, 2, 0, "ng-template", 6);
680
+ i0.ɵɵelementEnd();
681
+ i0.ɵɵelementEnd();
682
+ i0.ɵɵtemplate(8, TabularComponent_lib_detail_view_8_Template, 1, 11, "lib-detail-view", 7);
683
+ i0.ɵɵtemplate(9, TabularComponent_lib_row_group_view_9_Template, 1, 9, "lib-row-group-view", 8);
684
+ i0.ɵɵtemplate(10, TabularComponent_lib_column_group_view_10_Template, 1, 9, "lib-column-group-view", 8);
685
+ i0.ɵɵelementEnd();
686
+ i0.ɵɵtemplate(11, TabularComponent_ng_container_11_Template, 2, 1, "ng-container", 9);
687
+ i0.ɵɵtemplate(12, TabularComponent_ng_container_12_Template, 2, 1, "ng-container", 9);
688
+ i0.ɵɵelement(13, "div", 10, 11);
689
+ i0.ɵɵelementStart(15, "mat-menu", null, 12);
690
+ i0.ɵɵelementStart(17, "div", 5);
691
+ i0.ɵɵtemplate(18, TabularComponent_ng_template_18_Template, 3, 2, "ng-template", 6);
692
+ i0.ɵɵelementEnd();
693
+ i0.ɵɵelementEnd();
694
+ i0.ɵɵelementStart(19, "mat-menu", null, 13);
695
+ i0.ɵɵelementStart(21, "div", 5);
696
+ i0.ɵɵtemplate(22, TabularComponent_ng_template_22_Template, 1, 1, "ng-template", 6);
697
+ i0.ɵɵelementEnd();
698
+ i0.ɵɵelementEnd();
699
+ } if (rf & 2) {
700
+ const _r11 = i0.ɵɵreference(16);
701
+ i0.ɵɵadvance(1);
702
+ i0.ɵɵproperty("ngIf", ctx.tabularReport.matrix.attributes.length > 0);
703
+ i0.ɵɵadvance(1);
704
+ i0.ɵɵproperty("ngIf", ctx.tabularReport.matrix.attributes.length === 0);
705
+ i0.ɵɵadvance(1);
706
+ i0.ɵɵproperty("ngIf", ctx.screenTypes.dashboardBuilder === ctx.screenType);
707
+ i0.ɵɵadvance(5);
708
+ i0.ɵɵproperty("ngIf", ctx.tabularReport.colGrouping.length === 0 && ctx.tabularReport.rowGrouping.length === 0);
709
+ i0.ɵɵadvance(1);
710
+ i0.ɵɵproperty("ngIf", ctx.tabularReport.rowGrouping.length > 0 && ctx.tabularReport.colGrouping.length === 0);
711
+ i0.ɵɵadvance(1);
712
+ i0.ɵɵproperty("ngIf", ctx.tabularReport.colGrouping.length > 0);
713
+ i0.ɵɵadvance(1);
714
+ i0.ɵɵproperty("ngIf", ctx.tabularReport.isDataLoaded);
715
+ i0.ɵɵadvance(1);
716
+ i0.ɵɵproperty("ngIf", !ctx.tabularReport.isDataLoaded && ctx.tabularReport.matrix.attributes.length !== 0);
717
+ i0.ɵɵadvance(1);
718
+ i0.ɵɵstyleProp("left", ctx.contextMenuPosition.x)("top", ctx.contextMenuPosition.y);
719
+ i0.ɵɵproperty("matMenuTriggerFor", _r11);
720
+ } }, styles: ["tabular[_ngcontent-%COMP%]{display:block;height:100%}table[_ngcontent-%COMP%]{width:auto;height:auto}shadow[_ngcontent-%COMP%] .tbody[_ngcontent-%COMP%]{box-shadow:2px 2px}th[_ngcontent-%COMP%]{background-color:#f2f8ff}.down-arrow[_ngcontent-%COMP%]{top:3px;min-height:13px;max-height:14px;position:relative}.aggregate-fun[_ngcontent-%COMP%]{padding-left:10px;font-size:12px}.mat-menu-item[_ngcontent-%COMP%]{background:transparent;color:#1e293b;font-size:12px}.export-btn[_ngcontent-%COMP%]{right:1rem;cursor:pointer;float:right;top:.2rem;position:sticky;left:0;display:flex;align-items:center;justify-content:center}.export-btn[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{min-height:21px!important}.filter-div[_ngcontent-%COMP%]{position:sticky;top:0;left:0;right:0;background:#ffffff;height:3.7rem!important;display:flex;width:100%;min-width:100%;max-width:100%;align-items:center;padding-top:5px}.filter-div[_ngcontent-%COMP%] .tabular-chart-filter[_ngcontent-%COMP%]{display:inline-block;width:calc(100% - 40px);max-width:calc(100% - 40px);min-width:calc(100% - 40px)}.filter-div[_ngcontent-%COMP%] .dashboard-tabular-filter[_ngcontent-%COMP%]{width:calc(100% - 40px)}.send-excel-report-form[_ngcontent-%COMP%]{padding:8px 18px;height:auto;background-color:#fff!important}.send-excel-report-form[_ngcontent-%COMP%] form[_ngcontent-%COMP%]{display:flex;flex-direction:column;row-gap:1rem}.send-excel-report-form[_ngcontent-%COMP%] .email-send-notification[_ngcontent-%COMP%]{font-size:10px;color:green;text-align:center;width:200px;margin:0 auto}.send-excel-report-form[_ngcontent-%COMP%] .email-send-email-error[_ngcontent-%COMP%]{font-size:10px;color:red;text-align:left;width:200px}.send-excel-report-form[_ngcontent-%COMP%] .report-xslx-email[_ngcontent-%COMP%]{border:1px solid #8080802e;height:34px;width:100%}.send-excel-report-form[_ngcontent-%COMP%] .report-xslx-email[_ngcontent-%COMP%]:hover{background:rgba(0,0,0,.04)!important;color:#172b4d!important}.send-excel-report-form[_ngcontent-%COMP%] .send-excel-report-form-btn[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;column-gap:1rem}.send-excel-report-form[_ngcontent-%COMP%] .send-excel-report-form-btn[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%]{height:34px;line-height:34px;flex:50;border-radius:5px}.send-excel-report-form[_ngcontent-%COMP%] .send-excel-report-form-btn[_ngcontent-%COMP%] .cancel-btn[_ngcontent-%COMP%]{border:1px solid #80808059;display:flex;justify-content:center;align-items:center;color:#172b4d!important}.send-excel-report-form[_ngcontent-%COMP%] .send-excel-report-form-btn[_ngcontent-%COMP%] .cancel-btn[_ngcontent-%COMP%]:hover{background:rgba(0,0,0,.04)!important}.send-excel-report-form[_ngcontent-%COMP%] .send-excel-report-form-btn[_ngcontent-%COMP%] .send-btn[_ngcontent-%COMP%]{border:1px solid #7963ED;background-color:#7963ed!important;color:#fff;display:flex;align-items:center;justify-content:center;column-gap:.5rem}.send-excel-report-form[_ngcontent-%COMP%] .send-excel-report-form-btn[_ngcontent-%COMP%] .send-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:#fff;font-size:19px;height:1.188rem;min-height:1.188rem;width:1.188rem;min-width:1.188rem}.drillthrough-menu-trigger[_ngcontent-%COMP%]{visibility:hidden;position:fixed}.deatil-group-table-paginator[_ngcontent-%COMP%]{position:absolute;bottom:0;right:0;display:flex;width:100%;height:2.75rem;align-items:center}.deatil-group-table-paginator[_ngcontent-%COMP%] .mat-paginator[_ngcontent-%COMP%]{margin:0;padding:0;max-height:2rem;white-space:nowrap}.deatil-group-table-paginator[_ngcontent-%COMP%] .mat-paginator[_ngcontent-%COMP%] .mat-paginator-outer-container{margin:0;padding:0;max-height:2rem;white-space:nowrap;align-items:center;min-width:100%}.deatil-group-table-paginator[_ngcontent-%COMP%] .mat-paginator[_ngcontent-%COMP%] .mat-paginator-outer-container .mat-paginator-container{padding:0 1rem!important;column-gap:1.2rem;justify-content:end;flex-wrap:wrap;border:1px solid #80808047;max-height:auto;margin:0;width:100%;background-color:#fff}.deatil-group-table-paginator[_ngcontent-%COMP%] .mat-paginator[_ngcontent-%COMP%] .mat-paginator-outer-container .mat-paginator-container .mat-paginator-page-size{column-gap:1.2rem;row-gap:.5rem;justify-content:end;margin:0;padding:0;max-height:2rem;white-space:nowrap}.deatil-group-table-paginator[_ngcontent-%COMP%] .mat-paginator[_ngcontent-%COMP%] .mat-paginator-outer-container .mat-paginator-container .mat-paginator-page-size .mat-paginator-page-size-label{margin:0;padding:0;max-height:2rem;white-space:nowrap}.deatil-group-table-paginator[_ngcontent-%COMP%] .mat-paginator[_ngcontent-%COMP%] .mat-paginator-outer-container .mat-paginator-container .mat-paginator-range-actions{margin:0;padding:0;max-height:2rem;white-space:nowrap}.deatil-group-table-paginator[_ngcontent-%COMP%] .mat-paginator[_ngcontent-%COMP%] .mat-paginator-outer-container .mat-paginator-container .mat-paginator-range-actions .mat-paginator-range-label{margin:0 8px 0 0!important;margin:0;padding:0;max-height:2rem;white-space:nowrap}.deatil-group-table-paginator[_ngcontent-%COMP%] .mat-paginator[_ngcontent-%COMP%] .mat-paginator-outer-container .mat-paginator-container .mat-paginator-range-actions button{width:.6rem;max-width:.6rem;width:2rem;max-width:2rem;height:2rem;max-height:2rem;min-height:2rem;border-radius:4px}.deatil-group-table-paginator[_ngcontent-%COMP%] .mat-paginator[_ngcontent-%COMP%] .mat-paginator-outer-container .mat-paginator-container .mat-paginator-range-actions .mat-button-base:hover{background-color:#eee}.deatil-group-table-paginator[_ngcontent-%COMP%] .mat-paginator[_ngcontent-%COMP%] .mat-paginator-outer-container .mat-paginator-container .mat-paginator-range-actions .mat-icon-button.mat-button-disabled.mat-button-disabled:hover{background-color:transparent!important}.tabular-pagination-ghost-loader[_ngcontent-%COMP%]{position:absolute;bottom:0;height:4.8rem;background:#fff;padding-right:1rem}.no-column-drop-here[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;height:calc(100% - 4.2rem);min-height:calc(100% - 4.2rem);max-height:calc(100% - 4.2rem)}.no-column-text[_ngcontent-%COMP%], .table-view-icon[_ngcontent-%COMP%]{color:#a39f9f!important}"] });
721
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TabularComponent, [{
722
+ type: Component,
723
+ args: [{ selector: 'tabular', template: "<div (contextmenu)=\"onContextMenu($event);\" class=\"h-full min-h-full max-h-full\">\n <!-- Filter Container -->\n <div *ngIf='(tabularReport.matrix.attributes.length>0)' [ngClass]=\"{'justify-end' : tabularReport.filters.length<1}\" class=\"filter-div px-3 h-11\">\n <div class=\"tabular-chart-filter\" [ngClass]=\"{'dashboard-tabular-filter' : !isEditable}\" *ngIf=\"isEditable || tabularReport.filters.length>0 || tabularReport.categories.length>0\">\n <!-- <chart-filter\n class=\"flex\"\n [filters]=\"tabularReport.filters\"\n [categories]=\"tabularReport.categories\"\n [isEditable] = \"isEditable\"\n [filterSourceElementType]= \"filterSourceElementTypes.tabular\"\n [chartRef]=\"componentRef\">\n </chart-filter> -->\n <lib-report-filter\n [filters]=\"tabularReport.filters\"\n [categories]=\"tabularReport.categories\"\n [reportId]=\"reportId\"\n [screenType]=\"screenType\"\n [dataModel]=\"dataModel\"\n [isEditable]=\"isEditable\"\n [appVersion]=\"appVersionId\"\n [filterSourceElementType]= \"filterSourceElementTypes.tabular\"\n (applyFilterEvent)=\"applyLocalFilter()\"\n >\n </lib-report-filter>\n </div>\n <ng-container>\n <button *ngIf=\"tabularReport.matrix.attributes.length>0\" class=\"export-btn icon-btn\" mat-button (click)=\"displayNotification=false\" [matMenuTriggerFor]=\"beforeMenu\"><mat-icon matTooltip=\"Export Data\" svgIcon=\"axo_export\"></mat-icon></button>\n\n <mat-menu #beforeMenu=\"matMenu\" xPosition=\"before\">\n <div (click)=\"$event.stopPropagation();\" class=\"send-excel-report-form\">\n <form [formGroup]=\"exportFormBuilder\">\n <div >XLSX</div>\n <input mat-menu-item type=\"text\" class=\"report-xslx-email\" formControlName=\"email\" (ngModelChange)=\"emailValidate()\">\n <p *ngIf=\"displayEmailValidationError\" class=\"email-send-email-error\">Please provide a valid email ID</p>\n <p *ngIf=\"displayNotification\" class=\"email-send-notification\">Export is in progress. You will receive the report on your email once completed.</p>\n <div class=\"send-excel-report-form-btn\">\n <button mat-menu-item class=\"cancel-btn btn\"(click)=\"closeExportMenu()\" >Cancel</button>\n <button mat-menu-item class=\"send-btn btn\" (click)=\"sendEmail()\" [disabled]=\"displayEmailValidationError\">Export <mat-icon>send</mat-icon></button>\n </div>\n </form>\n </div>\n </mat-menu>\n </ng-container>\n </div>\n\n <div class=\"no-column-drop-here\" *ngIf='tabularReport.matrix.attributes.length===0'>\n <div class=\"text-center\">\n <mat-icon class=\"table-view-icon\">table_view</mat-icon>\n <p class=\"font-size m-0 no-column-text\">No columns have been dropped yet !</p>\n </div>\n </div>\n\n <div #removeFromDashboardMenu [style.left]=\"contextMenuPosition.x\"\n [style.top]=\"contextMenuPosition.y\" [matMenuTriggerFor]=\"contextMenu\" *ngIf=\"screenTypes.dashboardBuilder === screenType\" class=\"drillthrough-menu-trigger\">\n </div>\n <!-- Mat Menu trigger for table columns-->\n <mat-menu #contextMenu=\"matMenu\" >\n <div id=\"table-menu\">\n <ng-template matMenuContent>\n <button mat-menu-item (click)=\"removeFromDashboard()\">Remove From Dashboard</button>\n </ng-template>\n </div>\n </mat-menu>\n\n <lib-detail-view\n *ngIf='tabularReport.colGrouping.length===0 && tabularReport.rowGrouping.length===0 '\n [x1ImageMediaUrl]=\"x1ImageMediaUrl\"\n [tabularReport]=\"tabularReport\"\n [isEditable]=\"isEditable\"\n [elementGuid]=\"elementGuid\"\n [screenType]=\"screenType\"\n [drillThroughFilterInput]=\"drillThroughFilterInput\"\n [drillThroughParentType]=\"drillThroughParentType\"\n [parentRef]=\"componentRef\"\n [reportId]=\"reportId\"\n [appVersionId]=\"appVersionId\"\n [x1MediaUrl]=\"x1MediaUrl\"\n >\n </lib-detail-view>\n <lib-row-group-view *ngIf='tabularReport.rowGrouping.length>0 && tabularReport.colGrouping.length===0 '\n [x1ImageMediaUrl]=\"x1ImageMediaUrl\"\n [tabularReport]=\"tabularReport\"\n [isEditable]=\"isEditable\"\n [elementGuid]=\"elementGuid\"\n [screenType]=\"screenType\"\n [drillThroughFilterInput]=\"drillThroughFilterInput\"\n [drillThroughParentType]=\"drillThroughParentType\"\n [reportId]=\"reportId\"\n [parentRef]=\"componentRef\">\n </lib-row-group-view>\n\n <lib-column-group-view *ngIf='tabularReport.colGrouping.length>0 '\n [x1ImageMediaUrl]=\"x1ImageMediaUrl\"\n [tabularReport]=\"tabularReport\"\n [isEditable]=\"isEditable\"\n [elementGuid]=\"elementGuid\"\n [screenType]=\"screenType\"\n [drillThroughFilterInput]=\"drillThroughFilterInput\"\n [drillThroughParentType]=\"drillThroughParentType\"\n [reportId]=\"reportId\"\n [parentRef]=\"componentRef\">\n </lib-column-group-view>\n\n</div>\n<ng-container *ngIf=\"tabularReport.isDataLoaded \">\n<div class=\"flex align-items deatil-group-table-paginator\" *ngIf='tabularReport.colGrouping.length===0'>\n <mat-paginator [disabled]=\"isDataLoading\" (page)=\"handlePageEvent($event)\" [length]=\"tabularReport.pageLength\" [pageSize]=\"tabularReport.pageSize\"\n [pageIndex]=\"tabularReport.pageIndex\" [pageSizeOptions]=\"[10, 25, 50, 100]\" aria-label=\"Select page\" class=\"mat-paginator flex justify-end w-full\">\n </mat-paginator>\n</div>\n</ng-container>\n<ng-container *ngIf=\"!tabularReport.isDataLoaded && tabularReport.matrix.attributes.length!==0\">\n <app-ghost-loader [elementType]=\"GhostLoaderType.PaginationViewLoader\" class=\"tabular-pagination-ghost-loader\"></app-ghost-loader>\n</ng-container>\n<div #drillThorughMenuTrigger [style.left]=\"contextMenuPosition.x\"\n [style.top]=\"contextMenuPosition.y\" [matMenuTriggerFor]=\"drillThroughMenu\" class=\"drillthrough-menu-trigger\"></div>\n<!-- Mat Menu trigger for table cells-->\n<mat-menu #drillThroughMenu=\"matMenu\">\n <div id=\"table-menu\">\n <ng-template matMenuContent let-item=\"reportData\">\n <button mat-menu-item [matMenuTriggerFor]=\"drillThroughPages\">Drill Through</button>\n <button mat-menu-item *ngIf=\"screenTypes.dashboardBuilder === screenType\" (click)=\"removeFromDashboard()\">Remove From Dashboard</button>\n </ng-template>\n </div>\n</mat-menu>\n<mat-menu #drillThroughPages=\"matMenu\">\n <div id=\"table-menu\">\n <ng-template matMenuContent let-item=\"reportData\">\n <ng-container *ngFor=\" let page of pages\">\n <button mat-menu-item (click)='pageClick(page)'> {{page.name}}</button>\n </ng-container>\n </ng-template>\n </div>\n</mat-menu>\n", styles: ["tabular{display:block;height:100%}table{width:auto;height:auto}shadow .tbody{box-shadow:2px 2px}th{background-color:#f2f8ff}.down-arrow{top:3px;min-height:13px;max-height:14px;position:relative}.aggregate-fun{padding-left:10px;font-size:12px}.mat-menu-item{background:transparent;color:#1e293b;font-size:12px}.export-btn{right:1rem;cursor:pointer;float:right;top:.2rem;position:sticky;left:0;display:flex;align-items:center;justify-content:center}.export-btn .mat-icon{min-height:21px!important}.filter-div{position:sticky;top:0;left:0;right:0;background:#ffffff;height:3.7rem!important;display:flex;width:100%;min-width:100%;max-width:100%;align-items:center;padding-top:5px}.filter-div .tabular-chart-filter{display:inline-block;width:calc(100% - 40px);max-width:calc(100% - 40px);min-width:calc(100% - 40px)}.filter-div .dashboard-tabular-filter{width:calc(100% - 40px)}.send-excel-report-form{padding:8px 18px;height:auto;background-color:#fff!important}.send-excel-report-form form{display:flex;flex-direction:column;row-gap:1rem}.send-excel-report-form .email-send-notification{font-size:10px;color:green;text-align:center;width:200px;margin:0 auto}.send-excel-report-form .email-send-email-error{font-size:10px;color:red;text-align:left;width:200px}.send-excel-report-form .report-xslx-email{border:1px solid #8080802e;height:34px;width:100%}.send-excel-report-form .report-xslx-email:hover{background:rgba(0,0,0,.04)!important;color:#172b4d!important}.send-excel-report-form .send-excel-report-form-btn{display:flex;justify-content:center;align-items:center;column-gap:1rem}.send-excel-report-form .send-excel-report-form-btn .btn{height:34px;line-height:34px;flex:50;border-radius:5px}.send-excel-report-form .send-excel-report-form-btn .cancel-btn{border:1px solid #80808059;display:flex;justify-content:center;align-items:center;color:#172b4d!important}.send-excel-report-form .send-excel-report-form-btn .cancel-btn:hover{background:rgba(0,0,0,.04)!important}.send-excel-report-form .send-excel-report-form-btn .send-btn{border:1px solid #7963ED;background-color:#7963ed!important;color:#fff;display:flex;align-items:center;justify-content:center;column-gap:.5rem}.send-excel-report-form .send-excel-report-form-btn .send-btn mat-icon{color:#fff;font-size:19px;height:1.188rem;min-height:1.188rem;width:1.188rem;min-width:1.188rem}.drillthrough-menu-trigger{visibility:hidden;position:fixed}.deatil-group-table-paginator{position:absolute;bottom:0;right:0;display:flex;width:100%;height:2.75rem;align-items:center}.deatil-group-table-paginator .mat-paginator{margin:0;padding:0;max-height:2rem;white-space:nowrap}.deatil-group-table-paginator .mat-paginator ::ng-deep .mat-paginator-outer-container{margin:0;padding:0;max-height:2rem;white-space:nowrap;align-items:center;min-width:100%}.deatil-group-table-paginator .mat-paginator ::ng-deep .mat-paginator-outer-container .mat-paginator-container{padding:0 1rem!important;column-gap:1.2rem;justify-content:end;flex-wrap:wrap;border:1px solid #80808047;max-height:auto;margin:0;width:100%;background-color:#fff}.deatil-group-table-paginator .mat-paginator ::ng-deep .mat-paginator-outer-container .mat-paginator-container .mat-paginator-page-size{column-gap:1.2rem;row-gap:.5rem;justify-content:end;margin:0;padding:0;max-height:2rem;white-space:nowrap}.deatil-group-table-paginator .mat-paginator ::ng-deep .mat-paginator-outer-container .mat-paginator-container .mat-paginator-page-size .mat-paginator-page-size-label{margin:0;padding:0;max-height:2rem;white-space:nowrap}.deatil-group-table-paginator .mat-paginator ::ng-deep .mat-paginator-outer-container .mat-paginator-container .mat-paginator-range-actions{margin:0;padding:0;max-height:2rem;white-space:nowrap}.deatil-group-table-paginator .mat-paginator ::ng-deep .mat-paginator-outer-container .mat-paginator-container .mat-paginator-range-actions .mat-paginator-range-label{margin:0 8px 0 0!important;margin:0;padding:0;max-height:2rem;white-space:nowrap}.deatil-group-table-paginator .mat-paginator ::ng-deep .mat-paginator-outer-container .mat-paginator-container .mat-paginator-range-actions button{width:.6rem;max-width:.6rem;width:2rem;max-width:2rem;height:2rem;max-height:2rem;min-height:2rem;border-radius:4px}.deatil-group-table-paginator .mat-paginator ::ng-deep .mat-paginator-outer-container .mat-paginator-container .mat-paginator-range-actions .mat-button-base:hover{background-color:#eee}.deatil-group-table-paginator .mat-paginator ::ng-deep .mat-paginator-outer-container .mat-paginator-container .mat-paginator-range-actions .mat-icon-button.mat-button-disabled.mat-button-disabled:hover{background-color:transparent!important}.tabular-pagination-ghost-loader{position:absolute;bottom:0;height:4.8rem;background:#fff;padding-right:1rem}.no-column-drop-here{display:flex;align-items:center;justify-content:center;height:calc(100% - 4.2rem);min-height:calc(100% - 4.2rem);max-height:calc(100% - 4.2rem)}.no-column-text,.table-view-icon{color:#a39f9f!important}\n"] }]
724
+ }], function () { return [{ type: i1.FieldsListService }, { type: i2.ReportBuilderMasterService }, { type: i3.ElementService }, { type: i4.CommonService }, { type: i5.TabularReportService }, { type: i6.FormBuilder }, { type: i7.UserDataService }, { type: i0.ChangeDetectorRef }, { type: i8.DashboardBuilderService }, { type: i9.DrillThroughService }, { type: i10.Router }]; }, { page: [{
725
+ type: Input
726
+ }], tabularReport: [{
727
+ type: Input
728
+ }], isEditable: [{
729
+ type: Input
730
+ }], userEmail: [{
731
+ type: Input
732
+ }], sendExcelReportEvent: [{
733
+ type: Output
734
+ }], x1ImageMediaUrl: [{
735
+ type: Input
736
+ }], screenType: [{
737
+ type: Input
738
+ }], drillThroughParentType: [{
739
+ type: Input
740
+ }], drillThroughFilterInput: [{
741
+ type: Input
742
+ }], contextMenu: [{
743
+ type: ViewChild,
744
+ args: [MatMenuTrigger]
745
+ }], removeFromDashboardMenu: [{
746
+ type: ViewChild,
747
+ args: ['removeFromDashboardMenu', { read: MatMenuTrigger, static: false }]
748
+ }], drillThroughTrigger: [{
749
+ type: ViewChild,
750
+ args: ['drillThorughMenuTrigger', { read: MatMenuTrigger, static: false }]
751
+ }], x1MediaUrl: [{
752
+ type: Input
753
+ }], appVersionId: [{
754
+ type: Input
755
+ }] }); })();
756
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFidWxhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXgtYXBwLWNvbW1vbi1saWIvc3JjL2xpYi9lbmxpZ2h0ZW4tbGliL3JlcG9ydC90YWJ1bGFyLXJlcG9ydC90YWJ1bGFyL3RhYnVsYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2F4LWFwcC1jb21tb24tbGliL3NyYy9saWIvZW5saWdodGVuLWxpYi9yZXBvcnQvdGFidWxhci1yZXBvcnQvdGFidWxhci90YWJ1bGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3JLLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQWtCLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELE9BQU8sRUFBa0IsY0FBYyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRW5GLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN4RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFhLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUV0RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztJQzNCOUUsK0JBQW1MO0lBU2pMLDZDQVVHO0lBREcsdU1BQW9CLDBCQUFrQixJQUFDO0lBRTNDLGlCQUFvQjtJQUN4QixpQkFBTTs7O0lBckI0Qix5RUFBc0Q7SUFVaEYsZUFBaUM7SUFBakMsdURBQWlDLGdEQUFBLDhCQUFBLGtDQUFBLGdDQUFBLGtDQUFBLG9DQUFBLHFFQUFBOzs7O0lBYXZDLGtDQUFxSztJQUFyRSx1TUFBNkIsS0FBSyxJQUFDO0lBQWtDLCtCQUFtRTtJQUFBLGlCQUFTOzs7O0lBQTdHLHdDQUFnQzs7O0lBTzlKLDZCQUFzRTtJQUFBLCtDQUErQjtJQUFBLGlCQUFJOzs7SUFDekcsNkJBQStEO0lBQUEsZ0dBQWdGO0lBQUEsaUJBQUk7Ozs7O0lBaEM3SiwrQkFBa0o7SUFDaEoseUVBcUJNO0lBQ04sNkJBQWM7SUFDWiw4RUFBaVA7SUFFalAsd0NBQW1EO0lBQ2pELCtCQUF3RTtJQUFuRSxzR0FBUyx3QkFBd0IsSUFBRTtJQUN0QyxnQ0FBc0M7SUFDcEMsMkJBQU07SUFBQSxvQkFBSTtJQUFBLGlCQUFNO0lBQ2hCLGtDQUF1SDtJQUFsQywrS0FBaUIsdUJBQWUsSUFBQztJQUF0SCxpQkFBdUg7SUFDdkgsc0VBQXlHO0lBQ3pHLHNFQUFtSjtJQUNuSixnQ0FBd0M7SUFDdEMsbUNBQTBFO0lBQTdCLGdLQUFTLHlCQUFpQixJQUFDO0lBQUUsdUJBQU07SUFBQSxpQkFBUztJQUN6RixtQ0FBMkc7SUFBL0QsZ0tBQVMsbUJBQVcsSUFBQztJQUEwQyx3QkFBTztJQUFBLGlDQUFVO0lBQUEscUJBQUk7SUFBQSxpQkFBVztJQUFBLGlCQUFTO0lBQ3RKLGlCQUFNO0lBQ1IsaUJBQU87SUFDVCxpQkFBTTtJQUNSLGlCQUFXO0lBQ2IsMEJBQWU7SUFDakIsaUJBQU07OztJQXpDa0QsNkZBQTREO0lBQ3hCLGVBQXVGO0lBQXZGLGlJQUF1RjtJQXVCdEssZUFBOEM7SUFBOUMsd0VBQThDO0lBSTdDLGVBQStCO0lBQS9CLG9EQUErQjtJQUcvQixlQUFpQztJQUFqQyx5REFBaUM7SUFDakMsZUFBeUI7SUFBekIsaURBQXlCO0lBR3VDLGVBQXdDO0lBQXhDLDZEQUF3Qzs7O0lBUXRILCtCQUFvRjtJQUNsRiwrQkFBeUI7SUFDdkIsb0NBQWtDO0lBQUEsMEJBQVU7SUFBQSxpQkFBVztJQUN2RCw2QkFBd0M7SUFBQSxrREFBa0M7SUFBQSxpQkFBSTtJQUNoRixpQkFBTTtJQUNSLGlCQUFNOzs7SUFFTiw4QkFFTTs7OztJQUZ3QixvREFBb0MscUNBQUE7SUFDNUIsdUNBQWlDOzs7O0lBTWpFLGtDQUF1RDtJQUFoQyx1S0FBUyw2QkFBcUIsSUFBQztJQUFDLHFDQUFxQjtJQUFBLGlCQUFTOzs7SUFLM0Ysc0NBY2tCOzs7SUFabEIsd0RBQW1DLHVDQUFBLGlDQUFBLG1DQUFBLGlDQUFBLDJEQUFBLHlEQUFBLGtDQUFBLDZCQUFBLHFDQUFBLGlDQUFBOzs7SUFhbkMseUNBVXFCOzs7SUFUbkIsd0RBQW1DLHVDQUFBLGlDQUFBLG1DQUFBLGlDQUFBLDJEQUFBLHlEQUFBLDZCQUFBLGtDQUFBOzs7SUFXckMsNENBVXdCOzs7SUFUdEIsd0RBQW1DLHVDQUFBLGlDQUFBLG1DQUFBLGlDQUFBLDJEQUFBLHlEQUFBLDZCQUFBLGtDQUFBOzs7OztJQWF2QywrQkFBd0c7SUFDdEcseUNBQ21KO0lBRHpHLDJMQUFRLCtCQUF1QixJQUFDO0lBRTFFLGlCQUFnQjtJQUNsQixpQkFBTTs7O0lBSFcsZUFBMEI7SUFBMUIsZ0RBQTBCLDRDQUFBLDRDQUFBLDhDQUFBLCtDQUFBOzs7SUFGM0MsNkJBQWtEO0lBQ2xELGtGQUlNO0lBQ04sMEJBQWU7OztJQUw2QyxlQUEwQztJQUExQyxvRUFBMEM7OztJQU10Ryw2QkFBZ0c7SUFDOUYsdUNBQWtJO0lBQ3BJLDBCQUFlOzs7SUFESyxlQUFvRDtJQUFwRCx5RUFBb0Q7Ozs7SUFTbEUsa0NBQTBHO0lBQWhDLGtMQUFTLDZCQUFxQixJQUFDO0lBQUMscUNBQXFCO0lBQUEsaUJBQVM7OztJQUR4SSxrQ0FBOEQ7SUFBQSw2QkFBYTtJQUFBLGlCQUFTO0lBQ3BGLHVGQUF3STs7OztJQURsSCx3Q0FBdUM7SUFDdEMsZUFBaUQ7SUFBakQsa0ZBQWlEOzs7O0lBT3hFLDZCQUEwQztJQUN4QyxrQ0FBZ0Q7SUFBMUIsb1BBQVMsMkJBQWUsSUFBQztJQUFFLFlBQWE7SUFBQSxpQkFBUztJQUN6RSwwQkFBZTs7O0lBRG9DLGVBQWE7SUFBYiw2Q0FBYTs7O0lBRGhFLG1HQUVlOzs7SUFGa0IsdUNBQVE7O0FEMUYvQyxNQUFNLE9BQU8sZ0JBQWdCO0lBMkMzQixZQUNVLGtCQUFxQyxFQUNyQywyQkFBdUQsRUFDdkQsZUFBK0IsRUFDL0IsY0FBNkIsRUFDN0IscUJBQTJDLEVBQzNDLFlBQXlCLEVBQ3pCLGdCQUFpQyxFQUNqQyxrQkFBcUMsRUFDckMsd0JBQWlELEVBQ2pELG9CQUF5QyxFQUN6QyxPQUFlO1FBVmYsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyxnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQTRCO1FBQ3ZELG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBQzNDLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3pCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQXlCO1FBQ2pELHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQWpEZix5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBVXpELG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBQ2xDLG9CQUFlLEdBQVksSUFBSSxDQUFDO1FBSWhDLHdCQUFtQixHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFLN0MsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFHaEMsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBQ3JDLGlCQUFZLEdBQVcsMENBQTBDLENBQUM7UUFDbEUsZ0NBQTJCLEdBQVksS0FBSyxDQUFDO1FBQzdDLHVCQUFrQixHQUFrQixFQUFFLENBQUMsQ0FBQSxpQ0FBaUM7UUFHeEUsVUFBSyxHQUFnQixFQUFFLENBQUM7UUFJeEI7O1dBRUc7UUFDSyxvQkFBZSxHQUFpQixJQUFJLE9BQU8sRUFBTyxDQUFDO0lBZXZELENBQUM7SUFFTCxJQUFXLHdCQUF3QjtRQUNqQyxPQUFPLHVCQUF1QixDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUNELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQywrREFBK0Q7SUFDakUsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDNUssSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsTUFBTSxDQUFDO1FBQ3RELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULHFDQUFxQztRQUNyQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULDRCQUE0QjtRQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWTthQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQzthQUNyQyxTQUFTLENBQUMsQ0FBQyxJQUFVLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUNqQixpQkFBaUI7WUFDakIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO1lBQy9DLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNqRSxDQUFDLENBQUM7UUFHSCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLENBQUM7UUFDdEQsd0VBQXdFO1FBQ3hFLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCO2FBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2FBQ3JDLFNBQVMsQ0FBQyxDQUFDLEdBQVksRUFBRSxFQUFFO1lBQzFCLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQ3RELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDN0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztpQkFDaEY7Z0JBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO2dCQUN4QyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUMsS0FBSyxDQUFDO2dCQUN0QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzthQUMzQjtRQUVILENBQUMsQ0FBQyxDQUFDO1FBRUwseUVBQXlFO1FBQ3pFLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBMkIsRUFBRSxFQUFFO1lBQzlFLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLFdBQVcsRUFBRTtnQkFDdkQsSUFBSSxXQUFXLENBQUMsV0FBVyxFQUFFO29CQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2lCQUFFO3FCQUN0RDtvQkFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7aUJBQUU7YUFDOUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7SUFFRCxXQUFXO1FBQ1QsZ0JBQWdCO1FBQ2hCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsdUJBQXVCLENBQUMsU0FBd0I7UUFDOUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBYSxFQUFFLEVBQUU7WUFDeEQsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDaEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUN2QixLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO29CQUN0QyxJQUFJLFNBQVMsQ0FBQyxVQUFVLEtBQUssU0FBUyxDQUFDLFVBQVUsSUFBSSxTQUFTLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxTQUFTLEVBQUU7d0JBQ2hHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUN4QjtnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQUU7Z0JBQ25HLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDNUQ7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNuRCxNQUFNLElBQUksR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbEcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNoSCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlJLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFDLENBQUMsV0FBVztZQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7WUFDeEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1lBQ3RGLElBQUksQ0FBQyxVQUFVLEdBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztZQUN4RixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUNwRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztZQUMxQixJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLGlCQUFpQixFQUFFLEVBQUU7Z0JBQ3JFLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO2dCQUMzQixJQUFJLGlCQUFpQixJQUFJLElBQUksRUFBRTtvQkFDN0IsaUJBQWlCLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO29CQUNuRCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztvQkFDM0UsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7d0JBQy9ELElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQzt3QkFDMUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO3FCQUNyQztvQkFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUM5RSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7d0JBQzdDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFOzRCQUNuRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQzt3QkFDekYsQ0FBQyxDQUFDLENBQUM7d0JBQ0gsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzt3QkFDaEYsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFOzRCQUFFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7eUJBQUU7cUJBQ3JLO29CQUNELElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztvQkFDdkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEdBQUcsaUJBQWlCLENBQUMsWUFBWSxDQUFDO2lCQUNoRTtnQkFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLENBQUM7Z0JBQzNELElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLGlCQUFpQixDQUFDLFlBQVksQ0FBQztnQkFDL0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDO1lBQzNELENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUN6QyxDQUFDO0lBR0Q7Ozs7T0FJRztJQUNILGlCQUFpQixDQUFDLGVBQStCO1FBQy9DLE1BQU0sWUFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDNUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDN0MsWUFBWSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDM0IsWUFBWSxDQUFDLEtBQUssR0FBRyxJQUFJLFNBQVMsQ0FBQyxlQUFlLENBQUMsYUFBcUMsQ0FBQyxDQUFDO1FBQzFGLE1BQU0sYUFBYSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7UUFDMUMsSUFBSSxlQUFlLENBQUMsTUFBTSxFQUFFO1lBQzFCLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ3ZDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxZQUFZLENBQUMsS0FBSyxHQUFHLGFBQWEsQ0FBQztRQUNuQyxNQUFNLFlBQVksR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3RDLFlBQVksQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDO1FBQ3ZDLE1BQU0sT0FBTyxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDL0IsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkMsT0FBTyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxrQkFBa0IsQ0FBQyxPQUFpQixFQUFFLGVBQStCO1FBQ25FLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRTtZQUMvQyxNQUFNLFVBQVUsR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDdkQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDeEcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwRCxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3RILFVBQVUsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwSCxVQUFVLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsSSxVQUFVLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDcEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7aUJBQzlDLElBQUksQ0FBQyxDQUFDLGlCQUE4QixFQUFFLEVBQUU7Z0JBQ3ZDLElBQUksaUJBQWlCLElBQUksSUFBSSxJQUFJLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ3hGLG9EQUFvRDtvQkFDcEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7b0JBQzNFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7aUJBQy9FO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7SUFDRDs7Ozs7T0FLRztJQUNILFNBQVMsQ0FBQyxhQUE0QjtRQUNwQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7WUFDaEQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7U0FDM0I7UUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUU5QixDQUFDO0lBQ0Q7Ozs7O09BS0c7SUFDSCxhQUFhLENBQUMsYUFBNEI7UUFDeEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3pELElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQyxTQUFTLEtBQUssYUFBYSxDQUFDLFNBQVMsRUFBRTtnQkFDNUYsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7YUFDNUI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDN0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNoRjtRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUV4QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFFSCxTQUFTO1FBQ1AsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFFO1lBQ3JDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUN0RCx3QkFBd0IsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDM0ksd0JBQXdCLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekosd0JBQXdCLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlHLHdCQUF3QixDQUFDLFlBQVksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzVILE1BQU0sWUFBWSxHQUFHO2dCQUNuQixPQUFPLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7Z0JBQzlDLFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7Z0JBQ2hDLE9BQU8sRUFBRSx3QkFBd0I7YUFDbEMsQ0FBQztZQUNGLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixFQUFFO2dCQUMvRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUNqRjtpQkFBTTtnQkFDTCxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7b0JBQzNELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxDQUFDO2FBQ0o7U0FDRjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILGVBQWU7UUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUVEOztPQUVHO0lBRUgsYUFBYTtRQUNYLE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsMkJBQTJCLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN0RixJQUFJLElBQUksQ0FBQywyQkFBMkIsRUFBRTtZQUNwQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsYUFBYSxDQUFDLEtBQWlCO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFO1lBQ3hILEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixPQUFPO1NBQ1I7UUFFRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsTUFBTSxnQkFBZ0IsR0FBZ0IsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEYsTUFBTSxpQkFBaUIsR0FBWSxnQkFBZ0IsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzVFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUMxRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDMUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFpQixFQUFFLFNBQXdCLEVBQUUsQ0FBUztRQUN4RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ3RCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUM7UUFDbEMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ3JFLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDeEI7YUFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQzFFLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsTUFBTSxnQkFBZ0IsR0FBZ0IsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDaEYsTUFBTSxhQUFhLEdBQVksZ0JBQWdCLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUN4RSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ3RFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDdEUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3JDO2FBQ0k7WUFDSCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDbEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNsRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDckM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILHdCQUF3QixDQUFDLE1BQVc7UUFDbEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4QyxZQUFZLENBQUMsa0JBQWtCLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUM1QyxZQUFZLENBQUMsa0JBQWtCLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUM3QyxZQUFZLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUMzQixZQUFZLENBQUMsS0FBSyxHQUFHLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBd0MsQ0FBQyxDQUFDO1FBQ2xGLE1BQU0sYUFBYSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7UUFDMUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakMsYUFBYSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDbEMsWUFBWSxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUM7UUFDbkMsTUFBTSxZQUFZLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUN0QyxZQUFZLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFNBQVMsQ0FBQyxJQUFVO1FBQ2xCLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsWUFBWSxFQUFFO1lBQy9DLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEtBQUssVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDNUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZILElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNuQztpQkFDSTtnQkFDSCxJQUFJLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7b0JBQ3JHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3pGLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEMsQ0FBQyxDQUFDLENBQUM7YUFDSjtTQUNGO2FBQU07WUFDTCxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbkM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxzQkFBc0IsQ0FBQyxJQUFVO1FBQy9CLE1BQU0sU0FBUyxHQUFXLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDeEUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDekU7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUM5RDtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0QsZUFBZSxDQUFDLEtBQWdCO1FBQ2hDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDN0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUMzQyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksR0FBQyxLQUFLLENBQUM7UUFDdEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUNDOztPQUVHO0lBQ0gsZ0JBQWdCO1FBQ1osSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7O2dGQXJkUSxnQkFBZ0I7bUVBQWhCLGdCQUFnQjt1QkFVaEIsY0FBYzsrQkFDcUIsY0FBYzsrQkFDZCxjQUFjOzs7Ozs7O1FDbEQ5RCw4QkFBaUY7UUFBNUUsNEdBQWUseUJBQXFCLElBQUU7UUFFekMsa0VBeUNNO1FBRU4saUVBS007UUFFTixpRUFFTTtRQUVOLHlDQUFrQztRQUNoQyw4QkFBcUI7UUFDbkIsaUZBRWM7UUFDaEIsaUJBQU07UUFDUixpQkFBVztRQUVYLDBGQWNrQjtRQUNsQiwrRkFVcUI7UUFFckIsdUdBVXdCO1FBRTFCLGlCQUFNO1FBQ04scUZBTWU7UUFDZixxRkFFZTtRQUNmLCtCQUN1SDtRQUV2SCwyQ0FBc0M7UUFDcEMsK0JBQXFCO1FBQ25CLG1GQUdjO1FBQ2hCLGlCQUFNO1FBQ1IsaUJBQVc7UUFDWCwyQ0FBdUM7UUFDckMsK0JBQXFCO1FBQ25CLG1GQUljO1FBQ2hCLGlCQUFNO1FBQ1IsaUJBQVc7OztRQW5JSCxlQUFnRDtRQUFoRCxxRUFBZ0Q7UUEyQ3BCLGVBQWdEO1FBQWhELHVFQUFnRDtRQVFULGVBQWlEO1FBQWpELDBFQUFpRDtRQVl6SCxlQUFrRjtRQUFsRiwrR0FBa0Y7UUFjOUQsZUFBZ0Y7UUFBaEYsNkdBQWdGO1FBWTdFLGVBQXdDO1FBQXhDLCtEQUF3QztRQWFuRCxlQUFnQztRQUFoQyxxREFBZ0M7UUFPaEMsZUFBK0U7UUFBL0UsMEdBQStFO1FBR2hFLGVBQW9DO1FBQXBDLGlEQUFvQyxrQ0FBQTtRQUMxQix3Q0FBc0M7O3VGRDdFakUsZ0JBQWdCO2NBUDVCLFNBQVM7MkJBRUUsU0FBUzsrWEFNVixJQUFJO2tCQUFaLEtBQUs7WUFDRyxhQUFhO2tCQUFyQixLQUFLO1lBQ0csVUFBVTtrQkFBbEIsS0FBSztZQUNHLFNBQVM7a0JBQWpCLEtBQUs7WUFDSSxvQkFBb0I7a0JBQTdCLE1BQU07WUFDRSxlQUFlO2tCQUF2QixLQUFLO1lBQ0csVUFBVTtrQkFBbEIsS0FBSztZQUNHLHNCQUFzQjtrQkFBOUIsS0FBSztZQUNHLHVCQUF1QjtrQkFBL0IsS0FBSztZQUNxQixXQUFXO2tCQUFyQyxTQUFTO21CQUFDLGNBQWM7WUFDc0QsdUJBQXVCO2tCQUFyRyxTQUFTO21CQUFDLHlCQUF5QixFQUFFLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBQ0UsbUJBQW1CO2tCQUFqRyxTQUFTO21CQUFDLHlCQUF5QixFQUFFLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBQ3BFLFVBQVU7a0JBQWxCLEtBQUs7WUFDRyxZQUFZO2tCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRNZW51VHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBSZXBvcnQgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24tdXRpbHMvcmVwb3J0JztcbmltcG9ydCB7IENyb3NzRmlsdGVyRHRvLCBFbGVtZW50RmlsdGVycywgRWxlbWVudHNEdG8gfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24tZHRvL2VsZW1lbnRzLWR0byc7XG5pbXBvcnQgeyBGaWVsZHNMaXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2ZpZWxkLWxpc3QtbGliL2ZpZWxkcy1saXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQXR0cmlidXRlRGF0YSB9IGZyb20gJy4uLy4uLy4uL2ZpZWxkcy9hdHRyaWJ1dGUtZGF0YSc7XG5pbXBvcnQgeyBQYWdlIH0gZnJvbSAnLi4vLi4vZ3JhcGhpY2FsLXJlcG9ydC9wYWdlL3BhZ2UnO1xuaW1wb3J0IHsgUmVwb3J0QnVpbGRlck1hc3RlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9yZXBvcnQtYnVpbGRlci1tYXN0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBJVGFidWxhclJlcG9ydENvbXBvbmVudCB9IGZyb20gJy4uL2l0YWJ1bGFyLXJlcG9ydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFidWxhclJlcG9ydCB9IGZyb20gJy4uL3RhYnVsYXItcmVwb3J0JztcbmltcG9ydCB7IEVsZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWxlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24uc2VydmljZSc7XG5pbXBvcnQgeyBGaWx0ZXJTb3VyY2VFbGVtZW50VHlwZSB9IGZyb20gJy4uLy4uLy4uL2ZpbHRlcnMvY2hhcnQtZmlsdGVyLXR5cGUnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGFidWxhclJlcG9ydFNlcnZpY2UgfSBmcm9tICcuLi90YWJ1bGFyLXJlcG9ydC5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbGlkYXRvcnMsIEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvdXNlci91c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NvcGVUeXBlLCBTY3JlZW5UeXBlIH0gZnJvbSAnLi4vLi4vLi4vZmlsdGVycy9jb25kaXRpb24tdHlwZSc7XG5pbXBvcnQgeyBBeEV4cHJlc3Npb24gfSBmcm9tICcuLi8uLi8uLi9heC1leHByZXNzaW9uL2F4LWV4cHJlc3Npb24nO1xuaW1wb3J0IHsgQXR0cmlidXRlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YS1tb2RlbC9hdHRyaWJ1dGUnO1xuaW1wb3J0IHsgQXhFeHBUZXh0TGlzdCB9IGZyb20gJy4uLy4uLy4uL2F4LWV4cHJlc3Npb24vYXgtZXhwLXRleHQtbGlzdCc7XG5pbXBvcnQgeyBTZWFyY2hOb2RlIH0gZnJvbSAnLi4vLi4vLi4vZmlsdGVycy9zZWFyY2gtbm9kZSc7XG5pbXBvcnQgeyBBeEZpbHRlciB9IGZyb20gJy4uLy4uLy4uL2ZpbHRlcnMvYXgtZmlsdGVyJztcbmltcG9ydCB7IERhc2hib2FyZEJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGFzaGJvYXJkLWxpYi9kYXNoYm9hcmQtYnVpbGRlci5zZXJ2aWNlJztcbmltcG9ydCB7IERyaWxsVGhyb3VnaFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9kcmlsbC10aHJvdWdoL2RyaWxsLXRocm91Z2guc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS91c2VyL3VzZXIudHlwZXMnO1xuaW1wb3J0IHsgVXNlckRhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS91c2VyL3VzZXItZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBHaG9zdExvYWRlclR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9naG9zdC1sb2FkZXIvZ2hvc3QtbG9hZGVyLmNvbXBvbmVudCc7XG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICd0YWJ1bGFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYnVsYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJ1bGFyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5cbmV4cG9ydCBjbGFzcyBUYWJ1bGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBJVGFidWxhclJlcG9ydENvbXBvbmVudCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwYWdlOiBQYWdlO1xuICBASW5wdXQoKSB0YWJ1bGFyUmVwb3J0OiBUYWJ1bGFyUmVwb3J0O1xuICBASW5wdXQoKSBpc0VkaXRhYmxlOiBib29sZWFuO1xuICBASW5wdXQoKSB1c2VyRW1haWw6IHN0cmluZztcbiAgQE91dHB1dCgpIHNlbmRFeGNlbFJlcG9ydEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIHgxSW1hZ2VNZWRpYVVybDogc3RyaW5nO1xuICBASW5wdXQoKSBzY3JlZW5UeXBlOiBTY3JlZW5UeXBlO1xuICBASW5wdXQoKSBkcmlsbFRocm91Z2hQYXJlbnRUeXBlOiBTY3JlZW5UeXBlO1xuICBASW5wdXQoKSBkcmlsbFRocm91Z2hGaWx0ZXJJbnB1dDogQXhGaWx0ZXI7XG4gIEBWaWV3Q2hpbGQoTWF0TWVudVRyaWdnZXIpIGNvbnRleHRNZW51OiBNYXRNZW51VHJpZ2dlcjtcbiAgQFZpZXdDaGlsZCgncmVtb3ZlRnJvbURhc2hib2FyZE1lbnUnLCB7IHJlYWQ6IE1hdE1lbnVUcmlnZ2VyLCBzdGF0aWM6IGZhbHNlIH0pIHJlbW92ZUZyb21EYXNoYm9hcmRNZW51OiBNYXRNZW51VHJpZ2dlcjtcbiAgQFZpZXdDaGlsZCgnZHJpbGxUaG9ydWdoTWVudVRyaWdnZXInLCB7IHJlYWQ6IE1hdE1lbnVUcmlnZ2VyLCBzdGF0aWM6IGZhbHNlIH0pIGRyaWxsVGhyb3VnaFRyaWdnZXI6IE1hdE1lbnVUcmlnZ2VyO1xuICBASW5wdXQoKSB4MU1lZGlhVXJsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFwcFZlcnNpb25JZDogbnVtYmVyO1xuICBHaG9zdExvYWRlclR5cGUgPSBHaG9zdExvYWRlclR5cGU7XG4gIHNob3dHaG9zdExvYWRlcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgY29sdW1uRGF0YTogYW55O1xuICByZXBvcnRJZDogbnVtYmVyO1xuICBjb250ZXh0TWVudVBvc2l0aW9uID0geyB4OiAnMHB4JywgeTogJzBweCcgfTtcbiAgY3VycmVudEluZGV4OiBudW1iZXI7XG4gIGlzRGlydHk6IGJvb2xlYW47XG4gIHJlcG9ydERpcnR5OiBhbnk7XG4gIHJlcG9ydDogUmVwb3J0O1xuICBfaXNDb2x1bW5FeGlzdDogYm9vbGVhbiA9IGZhbHNlO1xuICBjb21wb25lbnRSZWY6IGFueTtcbiAgZXhwb3J0Rm9ybUJ1aWxkZXI6IEZvcm1Hcm91cDtcbiAgZGlzcGxheU5vdGlmaWNhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBlbWFpbFBhdHRlcm46IHN0cmluZyA9ICdeW2EtejAtOS5fJSstXStAW2EtejAtOS4tXStcXC5bYS16XXsyLDR9JCc7XG4gIGRpc3BsYXlFbWFpbFZhbGlkYXRpb25FcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBzZWxlY3RlZERhdGFQb2ludHM6IEFycmF5PG51bWJlcj4gPSBbXTsvLyBIb2xkcyB0aGUgYWxsIHNlbGVjdGVkIHBvaW50cy5cbiAgZWxlbWVudEd1aWQ6IHN0cmluZztcbiAgZHJpbGxUaHJvdWdoRmlsdGVyOiBBeEZpbHRlcjtcbiAgcGFnZXM6IEFycmF5PFBhZ2U+ID0gW107XG4gIGN1cnJlbnRBdHRyaWJ1dGU6IEF0dHJpYnV0ZURhdGE7XG4gIHVzZXI6IFVzZXI7XG4gIGlzRGF0YUxvYWRpbmc6IGJvb2xlYW47XG4gIC8qXG4gICAqIFN1YmplY3Qgb2JqZWN0IHdoaWNoIGhlbHBzIHVuc3Vic2NyaWJlIGFsbCB0aGUgc3Vic2NyaWJlZCBvYmplY3RzIGluIHRoZSBjb21wb25lbnRcbiAgICovXG4gIHByaXZhdGUgX3Vuc3Vic2NyaWJlQWxsOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZmllbGRzTGlzdFNlcnZpY2U6IEZpZWxkc0xpc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgX3JlcG9ydEJ1aWxkZXJNYXN0ZXJTZXJ2aWNlOiBSZXBvcnRCdWlsZGVyTWFzdGVyU2VydmljZSxcbiAgICBwcml2YXRlIF9lbGVtZW50U2VydmljZTogRWxlbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfY29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZSxcbiAgICBwcml2YXRlIF90YWJ1bGFyUmVwb3J0U2VydmljZTogVGFidWxhclJlcG9ydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgX3VzZXJEYXRhU2VydmljZTogVXNlckRhdGFTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF9kYXNoYm9hcmRCdWlsZGVyU2VydmljZTogRGFzaGJvYXJkQnVpbGRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfZHJpbGxUaHJvdWdoU2VydmljZTogRHJpbGxUaHJvdWdoU2VydmljZSxcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlclxuXG4gICkgeyB9XG5cbiAgcHVibGljIGdldCBmaWx0ZXJTb3VyY2VFbGVtZW50VHlwZXMoKTogdHlwZW9mIEZpbHRlclNvdXJjZUVsZW1lbnRUeXBlIHtcbiAgICByZXR1cm4gRmlsdGVyU291cmNlRWxlbWVudFR5cGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNjcmVlblR5cGVzKCk6IHR5cGVvZiBTY3JlZW5UeXBlIHtcbiAgICByZXR1cm4gU2NyZWVuVHlwZTtcbiAgfVxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLy8gdGhpcy50YWJ1bGFyUmVwb3J0ID0gdGhpcy5wYWdlLmVsZW1lbnRzWzBdIGFzIFRhYnVsYXJSZXBvcnQ7XG4gIH1cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpYmVycygpO1xuICAgIHRoaXMuaXNFZGl0YWJsZSA9ICh0aGlzLnNjcmVlblR5cGUgIT09IFNjcmVlblR5cGUuZHJpbGxUaHJvdWdoKSAmJiAodGhpcy5zY3JlZW5UeXBlICE9PSBTY3JlZW5UeXBlLmRhc2hib2FyZEJ1aWxkZXIpICYmICh0aGlzLnNjcmVlblR5cGUgIT09IFNjcmVlblR5cGUuY29udGFpbmVyRGFzaGJvYXJkKTtcbiAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXM7XG4gICAgdGhpcy5yZXBvcnQgPSB0aGlzLl9yZXBvcnRCdWlsZGVyTWFzdGVyU2VydmljZS5yZXBvcnQ7XG4gICAgdGhpcy5yZXBvcnRJZCA9IHRoaXMucmVwb3J0Py5pZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBkZXN0cm95XG4gICAqL1xuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAvLyBVbnN1YnNjcmliZSBmcm9tIGFsbCBzdWJzY3JpcHRpb25zXG4gICAgdGhpcy5fdW5zdWJzY3JpYmVBbGwubmV4dCgpO1xuICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogU3Vic2NyaWJlcnMgZm9yIHRoZSBjb21wb25lbnRcbiAgICovXG4gIHN1YnNjcmliZXJzKCk6IHZvaWQge1xuICAgIC8vIFN1YnNjcmliZSB0byB1c2VyIGNoYW5nZXNcbiAgICB0aGlzLl91c2VyRGF0YVNlcnZpY2UudXNlckRldGFpbHMkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmVBbGwpKVxuICAgICAgLnN1YnNjcmliZSgodXNlcjogVXNlcikgPT4ge1xuICAgICAgICB0aGlzLnVzZXIgPSB1c2VyO1xuICAgICAgICAvLyBNYXJrIGZvciBjaGVja1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICAgIHRoaXMuZXhwb3J0Rm9ybUJ1aWxkZXIgPSB0aGlzLl9mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBlbWFpbDogW3RoaXMudXNlckVtYWlsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbF1dXG4gICAgfSk7XG5cblxuICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcztcbiAgICB0aGlzLnJlcG9ydCA9IHRoaXMuX3JlcG9ydEJ1aWxkZXJNYXN0ZXJTZXJ2aWNlLnJlcG9ydDtcbiAgICAvKndoZW5ldmVyIHdlIGNoYW5nZSB0aGUgZmlsdGVycyB3ZSBnb3QgY2FsbCBiYWNrIGZyb20gdGhpcyBzdWJzY3JpYmUgKi9cbiAgICB0aGlzLl9lbGVtZW50U2VydmljZS5yZWZyZXNoRGF0YUV2ZW50JFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbDogYm9vbGVhbikgPT4ge1xuICAgICAgICBpZiAodmFsICYmIHRoaXMudGFidWxhclJlcG9ydC5jb2xHcm91cGluZy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBpZiAodGhpcy50YWJ1bGFyUmVwb3J0LmNvbEdyb3VwaW5nLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMudGFidWxhclJlcG9ydCA9IHRoaXMuX3RhYnVsYXJSZXBvcnRTZXJ2aWNlLmNvbHVtbkRhdGEodGhpcy50YWJ1bGFyUmVwb3J0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy50YWJ1bGFyUmVwb3J0LmlzRGF0YUxvYWRlZCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMudGFidWxhclJlcG9ydC5wYWdlSW5kZXg9MDtcbiAgICAgICAgICB0aGlzLnRhYnVsYXJSZXBvcnQucGFnZUxlbmd0aD0wO1xuICAgICAgICAgIHRoaXMudGFidWxhclJlcG9ydC5pc0RhdGFMb2FkZWQ9ZmFsc2U7XG4gICAgICAgICAgdGhpcy5nZXRNYXRyaXhEaW1lbnNpb24oKTtcbiAgICAgICAgfVxuXG4gICAgICB9KTtcblxuICAgIC8qd2hlbiB3ZSBjbGljayBvbiBiYXIgY2hhcnQgZXZlbnQgd2lsbCBiZSBlbWl0dGVkIGZyb20gdGhpcyBzdWJzY3JpYmVyKi9cbiAgICB0aGlzLl9lbGVtZW50U2VydmljZS5jcm9zc0ZpbHRlckV2ZW50LnN1YnNjcmliZSgoY3Jvc3NGaWx0ZXI6IENyb3NzRmlsdGVyRHRvKSA9PiB7XG4gICAgICBpZiAodGhpcy50YWJ1bGFyUmVwb3J0Lmd1aWQgIT09IGNyb3NzRmlsdGVyLmVsZW1lbnRHdWlkKSB7XG4gICAgICAgIGlmIChjcm9zc0ZpbHRlci5yZXNldEZpbHRlcikgeyB0aGlzLmdldE1hdHJpeERpbWVuc2lvbigpOyB9XG4gICAgICAgIGVsc2UgeyB0aGlzLmNyZWF0ZUNyb3NzRmlsdGVyKGNyb3NzRmlsdGVyKTsgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gIH1cblxuICBnZXRQYWdlTGlzdCgpOiB2b2lkIHtcbiAgICAvLyBHZXQgcGFnZXNsaXN0XG4gICAgdGhpcy5fY29tbW9uU2VydmljZS5nZXRQYWdlTGlzdCh0aGlzLmFwcFZlcnNpb25JZCk7XG4gIH1cblxuICBmaWx0ZXJEcmlsbFRocm91Z2hQYWdlcyhhdHRyaWJ1dGU6IEF0dHJpYnV0ZURhdGEpOiB2b2lkIHtcbiAgICB0aGlzLl9jb21tb25TZXJ2aWNlLnBhZ2VMaXN0JC5zdWJzY3JpYmUoKHBhZ2VzOiBQYWdlW10pID0+IHtcbiAgICAgIHRoaXMucGFnZXMgPSBbXTtcbiAgICAgIHBhZ2VzPy5mb3JFYWNoKChfcGFnZSkgPT4ge1xuICAgICAgICBfcGFnZT8uZHJpbGxEYXRhPy5mb3JFYWNoKChkcmlsbERhdGEpID0+IHtcbiAgICAgICAgICBpZiAoZHJpbGxEYXRhLmNvbHVtbk5hbWUgPT09IGF0dHJpYnV0ZS5jb2x1bW5OYW1lICYmIGRyaWxsRGF0YS50YWJsZU5hbWUgPT09IGF0dHJpYnV0ZS50YWJsZU5hbWUpIHtcbiAgICAgICAgICAgIHRoaXMucGFnZXMucHVzaChfcGFnZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgaWYgKCh0aGlzLnNjcmVlblR5cGUgPT09IFNjcmVlblR5cGUucmVwb3J0QnVpbGRlcikgfHwgKHRoaXMuc2NyZWVuVHlwZSA9PT0gU2NyZWVuVHlwZS5kcmlsbFRocm91Z2gpKSB7XG4gICAgICAgIHRoaXMucGFnZXMgPSB0aGlzLnBhZ2VzLmZpbHRlcihwID0+IHAuaWQgIT09IHRoaXMucGFnZS5pZCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXRNYXRyaXhEaW1lbnNpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGFidWxhclJlcG9ydC5tYXRyaXguYXR0cmlidXRlcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBkYXRhID0gbmV3IEVsZW1lbnRzRHRvKHRoaXMudGFidWxhclJlcG9ydCk7XG4gICAgICBkYXRhLmZpbHRlcnMubG9jYWxGaWx0ZXJzLmJhc2ljID0gdGhpcy5fZWxlbWVudFNlcnZpY2UuZ2V0VmFsaWRGaWx0ZXIodGhpcy50YWJ1bGFyUmVwb3J0LmZpbHRlcnMpO1xuICAgICAgZGF0YS5maWx0ZXJzLmxvY2FsRmlsdGVycy5jYXRlZ29yeSA9IHRoaXMuX2VsZW1lbnRTZXJ2aWNlLmdldFZhbGlkRmlsdGVyQ2F0ZWdvcnkodGhpcy50YWJ1bGFyUmVwb3J0LmNhdGVnb3JpZXMpO1xuICAgICAgZGF0YS5maWx0ZXJzLmdsb2JhbEZpbHRlcnMuYmFzaWMgPSB0aGlzLl9lbGVtZW50U2VydmljZS5nZXRWYWxpZEZpbHRlcih0aGlzLl9lbGVtZW50U2VydmljZS5maWx0ZXJzRHRvLmJhc2ljLCBTY29wZVR5cGUuZ2xvYmFsKTtcbiAgICAgIGRhdGEuZmlsdGVycy5nbG9iYWxGaWx0ZXJzLmNhdGVnb3J5ID0gdGhpcy5fZWxlbWVudFNlcnZpY2UuZ2V0VmFsaWRGaWx0ZXJDYXRlZ29yeSh0aGlzLl9lbGVtZW50U2VydmljZS5maWx0ZXJzRHRvLmNhdGVnb3J5LCBTY29wZVR5cGUuZ2xvYmFsKTtcbiAgICAgIGRhdGEucmVwb3J0SWQgPSB0aGlzLnJlcG9ydElkO1xuICAgICAgZGF0YS50eXBlID0gJ3RhYnVsYXItcmVwb3J0JzsgLy8gdXNlIGVudW1cbiAgICAgIGRhdGEucGFnZUluZGV4ID0gdGhpcy50YWJ1bGFyUmVwb3J0LmNvbEdyb3VwaW5nLmxlbmd0aD4wPzA6dGhpcy50YWJ1bGFyUmVwb3J0LnBhZ2VJbmRleDtcbiAgICAgIGRhdGEucGFnZVNpemUgPSB0aGlzLnRhYnVsYXJSZXBvcnQuY29sR3JvdXBpbmcubGVuZ3RoPjA/MDp0aGlzLnRhYnVsYXJSZXBvcnQucGFnZVNpemU7XG4gICAgICBkYXRhLnBhZ2VMZW5ndGg9dGhpcy50YWJ1bGFyUmVwb3J0LmNvbEdyb3VwaW5nLmxlbmd0aD4wPzA6dGhpcy50YWJ1bGFyUmVwb3J0LnBhZ2VMZW5ndGg7XG4gICAgICBkYXRhLm9yZGVyQnkgPSB0aGlzLnRhYnVsYXJSZXBvcnQubWF0cml4LmF0dHJpYnV0ZXM7XG4gICAgICB0aGlzLmlzRGF0YUxvYWRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5fZmllbGRzTGlzdFNlcnZpY2UuZ2V0TWF0cml4RGF0YShkYXRhKS50aGVuKChlbnRpdGllc0F0dHJpYnV0ZSkgPT4ge1xuICAgICAgICB0aGlzLmlzRGF0YUxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgaWYgKGVudGl0aWVzQXR0cmlidXRlICE9IG51bGwpIHtcbiAgICAgICAgICBlbnRpdGllc0F0dHJpYnV0ZS5tYXRyaXguYXR0cmlidXRlcy5zaG93U3VtID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnRhYnVsYXJSZXBvcnQubWF0cml4LmF0dHJpYnV0ZXMgPSBlbnRpdGllc0F0dHJpYnV0ZS5tYXRyaXguYXR0cmlidXRlcztcbiAgICAgICAgICBpZiAodGhpcy50YWJ1bGFyUmVwb3J0Lm1hdHJpeC5hdHRyaWJ1dGVzWzBdLnNlcmllcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMudGFidWxhclJlcG9ydC5zaG93R3JhbmRUb3RhbCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy50YWJ1bGFyUmVwb3J0LnN1YlRvdGFsID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMudGFidWxhclJlcG9ydCA9IHRoaXMuX3RhYnVsYXJSZXBvcnRTZXJ2aWNlLmdyb3VwRGF0YSh0aGlzLnRhYnVsYXJSZXBvcnQpO1xuICAgICAgICAgIGlmICh0aGlzLnRhYnVsYXJSZXBvcnQuY29sR3JvdXBpbmcubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy50YWJ1bGFyUmVwb3J0LmNvbEdyb3VwaW5nLmZvckVhY2goKGF0dHJpYnV0ZSkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnRhYnVsYXJSZXBvcnQgPSB0aGlzLl90YWJ1bGFyUmVwb3J0U2VydmljZS5uZXdEYXRhKHRoaXMudGFidWxhclJlcG9ydCwgYXR0cmlidXRlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy50YWJ1bGFyUmVwb3J0ID0gdGhpcy5fdGFidWxhclJlcG9ydFNlcnZpY2UuZGF0YUZhY3RvcnkodGhpcy50YWJ1bGFyUmVwb3J0KTtcbiAgICAgICAgICAgIGlmICh0aGlzLnRhYnVsYXJSZXBvcnQucm93Q291bnQgJiYgdGhpcy50YWJ1bGFyUmVwb3J0LmludGVnZXJBcnJheS5sZW5ndGggPiAwKSB7IHRoaXMudGFidWxhclJlcG9ydCA9IHRoaXMuX3RhYnVsYXJSZXBvcnRTZXJ2aWNlLnJvd0NvdW50RGF0YSh0aGlzLnRhYnVsYXJSZXBvcnQpOyB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMudGFidWxhclJlcG9ydC5pc0RhdGFMb2FkZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMudGFidWxhclJlcG9ydC5wYWdlTGVuZ3RoID0gZW50aXRpZXNBdHRyaWJ1dGUudG90YWxSZWNvcmRzO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGFidWxhclJlcG9ydC5wYWdlSW5kZXggPSBlbnRpdGllc0F0dHJpYnV0ZS5wYWdlSW5kZXg7XG4gICAgICAgIHRoaXMudGFidWxhclJlcG9ydC5wYWdlTGVuZ3RoID0gZW50aXRpZXNBdHRyaWJ1dGUudG90YWxSZWNvcmRzO1xuICAgICAgICB0aGlzLnRhYnVsYXJSZXBvcnQucGFnZVNpemUgPSBlbnRpdGllc0F0dHJpYnV0ZS5wYWdlU2l6ZTtcbiAgICAgIH0pLmNhdGNoKCgpID0+IHtcbiAgICAgICAgdGhpcy5pc0RhdGFMb2FkaW5nID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy50YWJ1bGFyUmVwb3J0LmlzRGF0YUxvYWRlZCA9IHRydWU7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBDcmVhdGVkIGZpbHRlciBvYmplY3QgZm9yIGNyb3NzIGZpbHRlcmluZy5cbiAgICpcbiAgICogIEBwYXJhbSBDcm9zc0ZpbHRlckR0b1xuICAgKi9cbiAgY3JlYXRlQ3Jvc3NGaWx0ZXIoY3Jvc3NGaWx0ZXJEYXRhOiBDcm9zc0ZpbHRlckR0byk6IHZvaWQge1xuICAgIGNvbnN0IGF4RXhwcmVzc2lvbiA9IG5ldyBBeEV4cHJlc3Npb24oKTtcbiAgICBheEV4cHJlc3Npb24uY29tcGFyaXNvbk9wZXJhdG9yLnRleHQgPSAnSW4nO1xuICAgIGF4RXhwcmVzc2lvbi5jb21wYXJpc29uT3BlcmF0b3IudmFsdWUgPSAnSU4nO1xuICAgIGF4RXhwcmVzc2lvbi52YWx1ZVR5cGUgPSAyO1xuICAgIGF4RXhwcmVzc2lvbi5maWVsZCA9IG5ldyBBdHRyaWJ1dGUoY3Jvc3NGaWx0ZXJEYXRhLmF0dHJpYnV0ZURhdGEgYXMgdW5rbm93biBhcyBBdHRyaWJ1dGUpO1xuICAgIGNvbnN0IGF4RXhwVGV4dExpc3QgPSBuZXcgQXhFeHBUZXh0TGlzdCgpO1xuICAgIGlmIChjcm9zc0ZpbHRlckRhdGEudmFsdWVzKSB7XG4gICAgICBjcm9zc0ZpbHRlckRhdGEudmFsdWVzLmZvckVhY2goKHZhbHVlKSA9PiB7XG4gICAgICAgIGF4RXhwVGV4dExpc3QudmFsdWUucHVzaCh2YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgYXhFeHByZXNzaW9uLnZhbHVlID0gYXhFeHBUZXh0TGlzdDtcbiAgICBjb25zdCBfc2VhcmNoTm9kZXMgPSBuZXcgU2VhcmNoTm9kZSgpO1xuICAgIF9zZWFyY2hOb2Rlcy5leHByZXNzaW9uID0gYXhFeHByZXNzaW9uO1xuICAgIGNvbnN0IF9maWx0ZXIgPSBuZXcgQXhGaWx0ZXIoKTtcbiAgICBfZmlsdGVyLnNlYXJjaE5vZGVzLnB1c2goX3NlYXJjaE5vZGVzKTtcbiAgICBfZmlsdGVyLmFwcFZlcnNpb25JZCA9IDA7XG4gICAgdGhpcy5nZXRDcm9zc0ZpbHRlckRhdGEoX2ZpbHRlciwgY3Jvc3NGaWx0ZXJEYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBwdXNoZWQgdGhlIGZpbHRlciBvYmplY3QgaW50byBiYXNpYyBmaWx0ZXIgYW5kIGFwcGxpZWQgdGhlIGZpbHRlciBvbiB0aGUgZGF0YVxuICAgKlxuICAgKiAgQHBhcmFtIENyb3NzRmlsdGVyRHRvXG4gICAqICBAcGFyYW0gQXhGaWx0ZXJcbiAgICovXG4gIGdldENyb3NzRmlsdGVyRGF0YShfZmlsdGVyOiBBeEZpbHRlciwgY3Jvc3NGaWx0ZXJEYXRhOiBDcm9zc0ZpbHRlckR0byk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRhYnVsYXJSZXBvcnQubWF0cml4LmF0dHJpYnV0ZXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBlbGVtZW50RHRvID0gbmV3IEVsZW1lbnRzRHRvKHRoaXMudGFidWxhclJlcG9ydCk7XG4gICAgICBlbGVtZW50RHRvLmZpbHRlcnMubG9jYWxGaWx0ZXJzLmJhc2ljID0gdGhpcy5fZWxlbWVudFNlcnZpY2UuZ2V0VmFsaWRGaWx0ZXIodGhpcy50YWJ1bGFyUmVwb3J0LmZpbHRlcnMpO1xuICAgICAgZWxlbWVudER0by5maWx0ZXJzLmxvY2FsRmlsdGVycy5iYXNpYy5wdXNoKF9maWx0ZXIpO1xuICAgICAgZWxlbWVudER0by5maWx0ZXJzLmxvY2FsRmlsdGVycy5jYXRlZ29yeSA9IHRoaXMuX2VsZW1lbnRTZXJ2aWNlLmdldFZhbGlkRmlsdGVyQ2F0ZWdvcnkodGhpcy50YWJ1bGFyUmVwb3J0LmNhdGVnb3JpZXMpO1xuICAgICAgZWxlbWVudER0by5maWx0ZXJzLmdsb2JhbEZpbHRlcnMuYmFzaWMgPSB0aGlzLl9lbGVtZW50U2VydmljZS5nZXRWYWxpZEZpbHRlcih0aGlzLl9lbGVtZW50U2VydmljZS5maWx0ZXJzRHRvLmJhc2ljKTtcbiAgICAgIGVsZW1lbnREdG8uZmlsdGVycy5nbG9iYWxGaWx0ZXJzLmNhdGVnb3J5ID0gdGhpcy5fZWxlbWVudFNlcnZpY2UuZ2V0VmFsaWRGaWx0ZXJDYXRlZ29yeSh0aGlzLl9lbGVtZW50U2VydmljZS5maWx0ZXJzRHRvLmNhdGVnb3J5KTtcbiAgICAgIGVsZW1lbnREdG8ucmVwb3J0SWQgPSB0aGlzLnJlcG9ydElkO1xuICAgICAgdGhpcy5fZmllbGRzTGlzdFNlcnZpY2UuZ2V0TWF0cml4RGF0YShlbGVtZW50RHRvKVxuICAgICAgICAudGhlbigoZW50aXRpZXNBdHRyaWJ1dGU6IEVsZW1lbnRzRHRvKSA9PiB7XG4gICAgICAgICAgaWYgKGVudGl0aWVzQXR0cmlidXRlICE9IG51bGwgfHwgZW50aXRpZXNBdHRyaWJ1dGUuZGltZW5zaW9uLmF0dHJpYnV0ZS5zZXJpZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgLy8gZW50aXRpZXNBdHRyaWJ1dGUubWF0cml4LmF0dHJpYnV0ZXMuc2hvd1N1bT10cnVlO1xuICAgICAgICAgICAgdGhpcy50YWJ1bGFyUmVwb3J0Lm1hdHJpeC5hdHRyaWJ1dGVzID0gZW50aXRpZXNBdHRyaWJ1dGUubWF0cml4LmF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB0aGlzLnRhYnVsYXJSZXBvcnQgPSB0aGlzLl90YWJ1bGFyUmVwb3J0U2VydmljZS5ncm91cERhdGEodGhpcy50YWJ1bGFyUmVwb3J0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogdG8gYWRkIGNvbHVtbiBpbnRvIHRhYnVsYXIgcmVwb3J0XG4gICAqXG4gICAqIEBwYXJhbSBBdHRyaWJ1dGVEYXRhXG4gICAqXG4gICAqL1xuICBhZGRDb2x1bW4oYXR0cmlidXRlRGF0YTogQXR0cmlidXRlRGF0YSk6IHZvaWQge1xuICAgIHRoaXMuaXNDb2x1bW5FeGlzdChhdHRyaWJ1dGVEYXRhKTtcbiAgICBpZiAoIXRoaXMuX2lzQ29sdW1uRXhpc3QpIHtcbiAgICAgIHRoaXMudGFidWxhclJlcG9ydC5tYXRyaXguYXR0cmlidXRlcy5wdXNoKGF0dHJpYnV0ZURhdGEpO1xuICAgICAgdGhpcy5fY29tbW9uU2VydmljZS5pc1JlcG9ydEJ1aWxkZXJEaXJ0eSA9IHRydWU7XG4gICAgICB0aGlzLmdldE1hdHJpeERpbWVuc2lvbigpO1xuICAgIH1cbiAgICB0aGlzLl9pc0NvbHVtbkV4aXN0ID0gZmFsc2U7XG5cbiAgfVxuICAvKipcbiAgICogdG8gY2hlY2sgZHJvcHBlZCBjb2x1bW4gaXMgYWxyZWFkeSBleGlzdCBpbiB0YWJsZSBvciBub3RcbiAgICpcbiAgICogQHBhcmFtIEF0dHJpYnV0ZURhdGFcbiAgICpcbiAgICovXG4gIGlzQ29sdW1uRXhpc3QoYXR0cmlidXRlRGF0YTogQXR0cmlidXRlRGF0YSk6IHZvaWQge1xuICAgIHRoaXMudGFidWxhclJlcG9ydC5tYXRyaXguYXR0cmlidXRlcy5mb3JFYWNoKChhdHRyaWJ1dGUpID0+IHtcbiAgICAgIGlmIChhdHRyaWJ1dGUubmFtZSA9PT0gYXR0cmlidXRlRGF0YS5uYW1lICYmIGF0dHJpYnV0ZS50YWJsZU5hbWUgPT09IGF0dHJpYnV0ZURhdGEudGFibGVOYW1lKSB7XG4gICAgICAgIHRoaXMuX2lzQ29sdW1uRXhpc3QgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqICBjYWxsIHRoaXMgZnVuY3Rpb24gd2hlbiBhcHBseSBmaWx0ZXJcbiAgICovXG4gIGdldENoYXJ0RGF0YSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50YWJ1bGFyUmVwb3J0LmNvbEdyb3VwaW5nLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudGFidWxhclJlcG9ydCA9IHRoaXMuX3RhYnVsYXJSZXBvcnRTZXJ2aWNlLmNvbHVtbkRhdGEodGhpcy50YWJ1bGFyUmVwb3J0KTtcbiAgICB9XG4gICAgdGhpcy50YWJ1bGFyUmVwb3J0LmlzRGF0YUxvYWRlZCA9IGZhbHNlO1xuXG4gICAgdGhpcy5nZXRNYXRyaXhEaW1lbnNpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgY2FsbCB0aGlzIGZ1bmN0aW9uIGZvciBzZW5kIGVtYWlsIHdpdGggZXhjZWwgcmVwb3J0IGFzIGF0dGFjaG1lbnRcbiAgICovXG5cbiAgc2VuZEVtYWlsKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheU5vdGlmaWNhdGlvbiA9IGZhbHNlO1xuICAgIGlmICghdGhpcy5kaXNwbGF5RW1haWxWYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgIGNvbnN0IGVsZW1lbnRGaWx0ZXJBbmRDYXRlZ29yeSA9IG5ldyBFbGVtZW50RmlsdGVycygpO1xuICAgICAgZWxlbWVudEZpbHRlckFuZENhdGVnb3J5Lmdsb2JhbEZpbHRlcnMuYmFzaWMgPSB0aGlzLl9lbGVtZW50U2VydmljZS5nZXRWYWxpZEZpbHRlcih0aGlzLl9lbGVtZW50U2VydmljZS5maWx0ZXJzRHRvLmJhc2ljLFNjb3BlVHlwZS5nbG9iYWwpO1xuICAgICAgZWxlbWVudEZpbHRlckFuZENhdGVnb3J5Lmdsb2JhbEZpbHRlcnMuY2F0ZWdvcnkgPSB0aGlzLl9lbGVtZW50U2VydmljZS5nZXRWYWxpZEZpbHRlckNhdGVnb3J5KHRoaXMuX2VsZW1lbnRTZXJ2aWNlLmZpbHRlcnNEdG8uY2F0ZWdvcnksU2NvcGVUeXBlLmdsb2JhbCk7XG4gICAgICBlbGVtZW50RmlsdGVyQW5kQ2F0ZWdvcnkubG9jYWxGaWx0ZXJzLmJhc2ljID0gdGhpcy5fZWxlbWVudFNlcnZpY2UuZ2V0VmFsaWRGaWx0ZXIodGhpcy50YWJ1bGFyUmVwb3J0LmZpbHRlcnMpO1xuICAgICAgZWxlbWVudEZpbHRlckFuZENhdGVnb3J5LmxvY2FsRmlsdGVycy5jYXRlZ29yeSA9IHRoaXMuX2VsZW1lbnRTZXJ2aWNlLmdldFZhbGlkRmlsdGVyQ2F0ZWdvcnkodGhpcy50YWJ1bGFyUmVwb3J0LmNhdGVnb3JpZXMpO1xuICAgICAgY29uc3Qgc2VuZEVtYWlsRHRvID0ge1xuICAgICAgICBlbWFpbElkOiB0aGlzLmV4cG9ydEZvcm1CdWlsZGVyLnZhbHVlWydlbWFpbCddLFxuICAgICAgICBlbGVtZW50SWQ6IHRoaXMudGFidWxhclJlcG9ydC5pZCxcbiAgICAgICAgRmlsdGVyczogZWxlbWVudEZpbHRlckFuZENhdGVnb3J5XG4gICAgICB9O1xuICAgICAgaWYgKHRoaXMuaXNFZGl0YWJsZSAmJiB0aGlzLl9jb21tb25TZXJ2aWNlLmlzUmVwb3J0QnVpbGRlckRpcnR5KSB7XG4gICAgICAgIHRoaXMuc2VuZEV4Y2VsUmVwb3J0RXZlbnQuZW1pdCh7IHNlbmRFbWFpbER0bzogc2VuZEVtYWlsRHRvLCBjb21wb25lbnQ6IHRoaXMgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl90YWJ1bGFyUmVwb3J0U2VydmljZS5zZW5kRW1haWwoc2VuZEVtYWlsRHRvKS50aGVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmRpc3BsYXlOb3RpZmljYXRpb24gPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIGNsb3NlIHRoZSBleHBvcnQgdG8gZW1haWwgbWVudSBvbiBjbGljayBvZiBjYW5jZWxcbiAgICovXG4gIGNsb3NlRXhwb3J0TWVudSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHRNZW51LmNsb3NlTWVudSgpO1xuICAgIHRoaXMuZGlzcGxheU5vdGlmaWNhdGlvbiA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqICBWYWxpZGF0aW9uIG9mIGVtYWlsIGlkIGZvciBleHBvcnQgb2YgdGFidWxhciByZXBvcnRcbiAgICovXG5cbiAgZW1haWxWYWxpZGF0ZSgpOiB2b2lkIHtcbiAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAodGhpcy5lbWFpbFBhdHRlcm4pO1xuICAgIHRoaXMuZGlzcGxheUVtYWlsVmFsaWRhdGlvbkVycm9yID0gIXJlZ2V4LnRlc3QodGhpcy5leHBvcnRGb3JtQnVpbGRlci52YWx1ZVsnZW1haWwnXSk7XG4gICAgaWYgKHRoaXMuZGlzcGxheUVtYWlsVmFsaWRhdGlvbkVycm9yKSB7XG4gICAgICB0aGlzLmRpc3BsYXlOb3RpZmljYXRpb24gPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIE1vdXNlRXZlbnRcbiAgICogQHBhcmFtIG51bWJlclxuICAgKiBAcGFyYW0gQXR0cmlidXRlRGF0YVxuICAgKi9cbiAgb25Db250ZXh0TWVudShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0VkaXRhYmxlICYmIChbdGhpcy5zY3JlZW5UeXBlcy5jb250YWluZXJEYXNoYm9hcmQsIHRoaXMuc2NyZWVuVHlwZXMuZHJpbGxUaHJvdWdoXS5pbmNsdWRlcyh0aGlzLnNjcmVlblR5cGUpKSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IGRhc2hib2FyZEVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5lbGVtZW50R3VpZCk7XG4gICAgY29uc3QgZWxlbWVudENsaWVudFJlY3Q6IERPTVJlY3QgPSBkYXNoYm9hcmRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHRoaXMuY29udGV4dE1lbnVQb3NpdGlvbi54ID0gKGV2ZW50LmNsaWVudFggLSBlbGVtZW50Q2xpZW50UmVjdC54KSArICdweCc7XG4gICAgdGhpcy5jb250ZXh0TWVudVBvc2l0aW9uLnkgPSAoZXZlbnQuY2xpZW50WSAtIGVsZW1lbnRDbGllbnRSZWN0LnkpICsgJ3B4JztcbiAgICB0aGlzLnJlbW92ZUZyb21EYXNoYm9hcmRNZW51Lm1lbnUuZm9jdXNGaXJzdEl0ZW0oJ21vdXNlJyk7XG4gICAgdGhpcy5yZW1vdmVGcm9tRGFzaGJvYXJkTWVudS5vcGVuTWVudSgpO1xuICB9XG5cbiAgcmVtb3ZlRnJvbURhc2hib2FyZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9kYXNoYm9hcmRCdWlsZGVyU2VydmljZS5kZWxldGVFbGVtZW50LmVtaXQodGhpcy50YWJ1bGFyUmVwb3J0KTtcbiAgfVxuXG4gIGRyaWxsVGhyb3VnaENvbnRleHQoZXZlbnQ6IE1vdXNlRXZlbnQsIGF0dHJpYnV0ZTogQXR0cmlidXRlRGF0YSwgaTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJEcmlsbFRocm91Z2hQYWdlcyhhdHRyaWJ1dGUpO1xuICAgIGlmICghdGhpcy5wYWdlcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jdXJyZW50QXR0cmlidXRlID0gYXR0cmlidXRlO1xuICAgIHRoaXMuY3JlYXRlRHJpbGxUaHJvdWdoRmlsdGVyKGF0dHJpYnV0ZS5zZXJpZXNbaV0pO1xuICAgIGlmICh0aGlzLnNjcmVlblR5cGUgPT09IFNjcmVlblR5cGUuZHJpbGxUaHJvdWdoICYmICF0aGlzLnBhZ2VzLmxlbmd0aCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBlbHNlIGlmICghdGhpcy5pc0VkaXRhYmxlICYmICh0aGlzLnNjcmVlblR5cGUgIT09IFNjcmVlblR5cGUuZHJpbGxUaHJvdWdoKSkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgY29uc3QgZGFzaGJvYXJkRWxlbWVudDogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmVsZW1lbnRHdWlkKTtcbiAgICAgIGNvbnN0IGVsZW1lbnRCb3VuZHM6IERPTVJlY3QgPSBkYXNoYm9hcmRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgdGhpcy5jb250ZXh0TWVudVBvc2l0aW9uLnggPSAoZXZlbnQuY2xpZW50WCAtIGVsZW1lbnRCb3VuZHMueCkgKyAncHgnO1xuICAgICAgdGhpcy5jb250ZXh0TWVudVBvc2l0aW9uLnkgPSAoZXZlbnQuY2xpZW50WSAtIGVsZW1lbnRCb3VuZHMueSkgKyAncHgnO1xuICAgICAgdGhpcy5kcmlsbFRocm91Z2hUcmlnZ2VyLm1lbnUuZm9jdXNGaXJzdEl0ZW0oJ21vdXNlJyk7XG4gICAgICB0aGlzLmRyaWxsVGhyb3VnaFRyaWdnZXIub3Blbk1lbnUoKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLmNvbnRleHRNZW51UG9zaXRpb24ueCA9IGV2ZW50LmNsaWVudFggKyAncHgnO1xuICAgICAgdGhpcy5jb250ZXh0TWVudVBvc2l0aW9uLnkgPSBldmVudC5jbGllbnRZICsgJ3B4JztcbiAgICAgIHRoaXMuZHJpbGxUaHJvdWdoVHJpZ2dlci5tZW51LmZvY3VzRmlyc3RJdGVtKCdtb3VzZScpO1xuICAgICAgdGhpcy5kcmlsbFRocm91Z2hUcmlnZ2VyLm9wZW5NZW51KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZWQgZmlsdGVyIG9iamVjdCBmb3IgY3Jvc3MgZmlsdGVyaW5nLlxuICAgKlxuICAgKiAgQHBhcmFtIENyb3NzRmlsdGVyRHRvXG4gICAqL1xuICBjcmVhdGVEcmlsbFRocm91Z2hGaWx0ZXIoc2VyaWVzOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBheEV4cHJlc3Npb24gPSBuZXcgQXhFeHByZXNzaW9uKCk7XG4gICAgYXhFeHByZXNzaW9uLmNvbXBhcmlzb25PcGVyYXRvci50ZXh0ID0gJ0luJztcbiAgICBheEV4cHJlc3Npb24uY29tcGFyaXNvbk9wZXJhdG9yLnZhbHVlID0gJ0lOJztcbiAgICBheEV4cHJlc3Npb24udmFsdWVUeXBlID0gMjtcbiAgICBheEV4cHJlc3Npb24uZmllbGQgPSBuZXcgQXR0cmlidXRlKHRoaXMuY3VycmVudEF0dHJpYnV0ZSBhcyB1bmtub3duIGFzIEF0dHJpYnV0ZSk7XG4gICAgY29uc3QgYXhFeHBUZXh0TGlzdCA9IG5ldyBBeEV4cFRleHRMaXN0KCk7XG4gICAgYXhFeHBUZXh0TGlzdC52YWx1ZS5wdXNoKHNlcmllcyk7XG4gICAgYXhFeHBUZXh0TGlzdC5pc1NlYXJjaGFibGUgPSB0cnVlO1xuICAgIGF4RXhwcmVzc2lvbi52YWx1ZSA9IGF4RXhwVGV4dExpc3Q7XG4gICAgY29uc3QgX3NlYXJjaE5vZGVzID0gbmV3IFNlYXJjaE5vZGUoKTtcbiAgICBfc2VhcmNoTm9kZXMuZXhwcmVzc2lvbiA9IGF4RXhwcmVzc2lvbjtcbiAgICB0aGlzLmRyaWxsVGhyb3VnaEZpbHRlciA9IG5ldyBBeEZpbHRlcigpO1xuICAgIHRoaXMuZHJpbGxUaHJvdWdoRmlsdGVyLnNlYXJjaE5vZGVzLnB1c2goX3NlYXJjaE5vZGVzKTtcbiAgICB0aGlzLmRyaWxsVGhyb3VnaEZpbHRlci5hcHBWZXJzaW9uSWQgPSAwO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBvbiBwYWdlIG5hbWUgY2xpY2tlZCBvbiBkcm9wZG93biBvcHRpb25zIG9mIGRyaWxsIHRocm91Z2ggcGFnZXNcbiAgICpcbiAgICogQHBhcmFtIHBhZ2VcbiAgICovXG4gIHBhZ2VDbGljayhwYWdlOiBQYWdlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2NyZWVuVHlwZSAhPT0gU2NyZWVuVHlwZS5kcmlsbFRocm91Z2gpIHtcbiAgICAgIGlmICh0aGlzLmRyaWxsVGhyb3VnaFBhcmVudFR5cGUgPyB0aGlzLmRyaWxsVGhyb3VnaFBhcmVudFR5cGUgPT09IFNjcmVlblR5cGUucmVwb3J0QnVpbGRlciA6IHRoaXMuaXNFZGl0YWJsZSkge1xuICAgICAgICB0aGlzLl9kcmlsbFRocm91Z2hTZXJ2aWNlLnNldFBhcmVudERhdGEodGhpcy5yZXBvcnRJZCwgdGhpcy5fcmVwb3J0QnVpbGRlck1hc3RlclNlcnZpY2UucmVwb3J0Lm5hbWUsIHRoaXMuX3JvdXRlci51cmwpO1xuICAgICAgICB0aGlzLm5hdmlnYXRlVG9EcmlsbFRocm91Z2gocGFnZSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5fZGFzaGJvYXJkQnVpbGRlclNlcnZpY2UuZGFzaGJvYXJkJC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZUFsbCkpLnN1YnNjcmliZSgoZGFzaGJvYXJkKSA9PiB7XG4gICAgICAgICAgdGhpcy5fZHJpbGxUaHJvdWdoU2VydmljZS5zZXRQYXJlbnREYXRhKHRoaXMucmVwb3J0SWQsIGRhc2hib2FyZC5uYW1lLCB0aGlzLl9yb3V0ZXIudXJsKTtcbiAgICAgICAgICB0aGlzLm5hdmlnYXRlVG9EcmlsbFRocm91Z2gocGFnZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5hdmlnYXRlVG9EcmlsbFRocm91Z2gocGFnZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE5hdmlnYXRlIHRvIGRyaWxsIHRocm91Z2ggY29tcG9uZW50IHdpdGggcGFnZSBpZCBhcyByb3V0ZSBwYXJhbXNcbiAgICogQ2hlY2tzIHRoZSBwYXJlbnQgVVJMIGlmIGl0IGlzIGFscmVhZHkgZXhpc3RzIG9yIG5vdFxuICAgKlxuICAgKiBAcGFyYW0gcGFnZVxuICAgKi9cbiAgbmF2aWdhdGVUb0RyaWxsVGhyb3VnaChwYWdlOiBQYWdlKTogdm9pZCB7XG4gICAgY29uc3QgcGFyZW50VXJsOiBzdHJpbmcgPSB0aGlzLl9kcmlsbFRocm91Z2hTZXJ2aWNlLmdldFBhcmVudERhdGEoKS51cmw7XG4gICAgdGhpcy5fZHJpbGxUaHJvdWdoU2VydmljZS5kcmlsbFBhZ2UocGFnZSwgdGhpcy5kcmlsbFRocm91Z2hGaWx0ZXIpO1xuICAgIGlmICghcGFyZW50VXJsKSB7XG4gICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoW3RoaXMuX3JvdXRlci51cmwgKyAnL2RyaWxsLXRocm91Z2gvJyArIHBhZ2UuaWRdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFtwYXJlbnRVcmwsICdkcmlsbC10aHJvdWdoJywgcGFnZS5pZF0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBoYW5kbGUgcGFnaW5hdG9yIGV2ZW50IHRvIGNoYW5nZSBkYXRhIGFzIHBlciBwYWdlIGluZGV4IGFuZCBwYWdlc2l6ZVxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnRcbiAgICovXG4gICAgaGFuZGxlUGFnZUV2ZW50KGV2ZW50OiBQYWdlRXZlbnQpOiB2b2lke1xuICAgIHRoaXMudGFidWxhclJlcG9ydC5wYWdlSW5kZXg9ZXZlbnQucGFnZUluZGV4O1xuICAgIHRoaXMudGFidWxhclJlcG9ydC5wYWdlU2l6ZT1ldmVudC5wYWdlU2l6ZTtcbiAgICB0aGlzLnRhYnVsYXJSZXBvcnQuaXNEYXRhTG9hZGVkPWZhbHNlO1xuICAgIHRoaXMuZ2V0TWF0cml4RGltZW5zaW9uKCk7XG4gIH1cbiAgICAvKipcbiAgICAgKiBBcHBseSBsb2NhbCBmaWx0ZXIuXG4gICAgICovXG4gICAgYXBwbHlMb2NhbEZpbHRlcigpOiB2b2lke1xuICAgICAgICB0aGlzLmdldENoYXJ0RGF0YSgpO1xuICAgIH1cblxufVxuIiwiPGRpdiAoY29udGV4dG1lbnUpPVwib25Db250ZXh0TWVudSgkZXZlbnQpO1wiIGNsYXNzPVwiaC1mdWxsIG1pbi1oLWZ1bGwgbWF4LWgtZnVsbFwiPlxuICA8IS0tIEZpbHRlciBDb250YWluZXIgLS0+XG4gIDxkaXYgKm5nSWY9Jyh0YWJ1bGFyUmVwb3J0Lm1hdHJpeC5hdHRyaWJ1dGVzLmxlbmd0aD4wKScgW25nQ2xhc3NdPVwieydqdXN0aWZ5LWVuZCcgOiB0YWJ1bGFyUmVwb3J0LmZpbHRlcnMubGVuZ3RoPDF9XCIgY2xhc3M9XCJmaWx0ZXItZGl2IHB4LTMgaC0xMVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0YWJ1bGFyLWNoYXJ0LWZpbHRlclwiIFtuZ0NsYXNzXT1cInsnZGFzaGJvYXJkLXRhYnVsYXItZmlsdGVyJyA6ICFpc0VkaXRhYmxlfVwiICpuZ0lmPVwiaXNFZGl0YWJsZSB8fCB0YWJ1bGFyUmVwb3J0LmZpbHRlcnMubGVuZ3RoPjAgfHwgdGFidWxhclJlcG9ydC5jYXRlZ29yaWVzLmxlbmd0aD4wXCI+XG4gICAgICA8IS0tIDxjaGFydC1maWx0ZXJcbiAgICAgICAgY2xhc3M9XCJmbGV4XCJcbiAgICAgICAgW2ZpbHRlcnNdPVwidGFidWxhclJlcG9ydC5maWx0ZXJzXCJcbiAgICAgICAgW2NhdGVnb3JpZXNdPVwidGFidWxhclJlcG9ydC5jYXRlZ29yaWVzXCJcbiAgICAgICAgW2lzRWRpdGFibGVdID0gXCJpc0VkaXRhYmxlXCJcbiAgICAgICAgW2ZpbHRlclNvdXJjZUVsZW1lbnRUeXBlXT0gIFwiZmlsdGVyU291cmNlRWxlbWVudFR5cGVzLnRhYnVsYXJcIlxuICAgICAgICBbY2hhcnRSZWZdPVwiY29tcG9uZW50UmVmXCI+XG4gICAgICA8L2NoYXJ0LWZpbHRlcj4gLS0+XG4gICAgICA8bGliLXJlcG9ydC1maWx0ZXJcbiAgICAgICAgICAgIFtmaWx0ZXJzXT1cInRhYnVsYXJSZXBvcnQuZmlsdGVyc1wiXG4gICAgICAgICAgICBbY2F0ZWdvcmllc109XCJ0YWJ1bGFyUmVwb3J0LmNhdGVnb3JpZXNcIlxuICAgICAgICAgICAgW3JlcG9ydElkXT1cInJlcG9ydElkXCJcbiAgICAgICAgICAgIFtzY3JlZW5UeXBlXT1cInNjcmVlblR5cGVcIlxuICAgICAgICAgICAgW2RhdGFNb2RlbF09XCJkYXRhTW9kZWxcIlxuICAgICAgICAgICAgW2lzRWRpdGFibGVdPVwiaXNFZGl0YWJsZVwiXG4gICAgICAgICAgICBbYXBwVmVyc2lvbl09XCJhcHBWZXJzaW9uSWRcIlxuICAgICAgICAgICAgW2ZpbHRlclNvdXJjZUVsZW1lbnRUeXBlXT0gIFwiZmlsdGVyU291cmNlRWxlbWVudFR5cGVzLnRhYnVsYXJcIlxuICAgICAgICAgICAgKGFwcGx5RmlsdGVyRXZlbnQpPVwiYXBwbHlMb2NhbEZpbHRlcigpXCJcbiAgICAgICAgPlxuICAgICAgICA8L2xpYi1yZXBvcnQtZmlsdGVyPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXI+XG4gICAgICA8YnV0dG9uICpuZ0lmPVwidGFidWxhclJlcG9ydC5tYXRyaXguYXR0cmlidXRlcy5sZW5ndGg+MFwiIGNsYXNzPVwiZXhwb3J0LWJ0biBpY29uLWJ0blwiIG1hdC1idXR0b24gKGNsaWNrKT1cImRpc3BsYXlOb3RpZmljYXRpb249ZmFsc2VcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiYmVmb3JlTWVudVwiPjxtYXQtaWNvbiBtYXRUb29sdGlwPVwiRXhwb3J0IERhdGFcIiBzdmdJY29uPVwiYXhvX2V4cG9ydFwiPjwvbWF0LWljb24+PC9idXR0b24+XG5cbiAgICAgIDxtYXQtbWVudSAjYmVmb3JlTWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgICAgICAgPGRpdiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1wiIGNsYXNzPVwic2VuZC1leGNlbC1yZXBvcnQtZm9ybVwiPlxuICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZXhwb3J0Rm9ybUJ1aWxkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgPlhMU1g8L2Rpdj5cbiAgICAgICAgICAgIDxpbnB1dCBtYXQtbWVudS1pdGVtICB0eXBlPVwidGV4dFwiIGNsYXNzPVwicmVwb3J0LXhzbHgtZW1haWxcIiBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiICAobmdNb2RlbENoYW5nZSk9XCJlbWFpbFZhbGlkYXRlKClcIj5cbiAgICAgICAgICAgIDxwICpuZ0lmPVwiZGlzcGxheUVtYWlsVmFsaWRhdGlvbkVycm9yXCIgY2xhc3M9XCJlbWFpbC1zZW5kLWVtYWlsLWVycm9yXCI+UGxlYXNlIHByb3ZpZGUgYSB2YWxpZCBlbWFpbCBJRDwvcD5cbiAgICAgICAgICAgIDxwICpuZ0lmPVwiZGlzcGxheU5vdGlmaWNhdGlvblwiIGNsYXNzPVwiZW1haWwtc2VuZC1ub3RpZmljYXRpb25cIj5FeHBvcnQgaXMgaW4gcHJvZ3Jlc3MuIFlvdSB3aWxsIHJlY2VpdmUgdGhlIHJlcG9ydCBvbiB5b3VyIGVtYWlsIG9uY2UgY29tcGxldGVkLjwvcD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZW5kLWV4Y2VsLXJlcG9ydC1mb3JtLWJ0blwiPlxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gIGNsYXNzPVwiY2FuY2VsLWJ0biBidG5cIihjbGljayk9XCJjbG9zZUV4cG9ydE1lbnUoKVwiID5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICBjbGFzcz1cInNlbmQtYnRuIGJ0blwiIChjbGljayk9XCJzZW5kRW1haWwoKVwiIFtkaXNhYmxlZF09XCJkaXNwbGF5RW1haWxWYWxpZGF0aW9uRXJyb3JcIj5FeHBvcnQgPG1hdC1pY29uPnNlbmQ8L21hdC1pY29uPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9mb3JtPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LW1lbnU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJuby1jb2x1bW4tZHJvcC1oZXJlXCIgKm5nSWY9J3RhYnVsYXJSZXBvcnQubWF0cml4LmF0dHJpYnV0ZXMubGVuZ3RoPT09MCc+XG4gICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJ0YWJsZS12aWV3LWljb25cIj50YWJsZV92aWV3PC9tYXQtaWNvbj5cbiAgICAgIDxwIGNsYXNzPVwiZm9udC1zaXplIG0tMCBuby1jb2x1bW4tdGV4dFwiPk5vIGNvbHVtbnMgaGF2ZSBiZWVuIGRyb3BwZWQgeWV0ICE8L3A+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgI3JlbW92ZUZyb21EYXNoYm9hcmRNZW51IFtzdHlsZS5sZWZ0XT1cImNvbnRleHRNZW51UG9zaXRpb24ueFwiXG4gICAgW3N0eWxlLnRvcF09XCJjb250ZXh0TWVudVBvc2l0aW9uLnlcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiY29udGV4dE1lbnVcIiAqbmdJZj1cInNjcmVlblR5cGVzLmRhc2hib2FyZEJ1aWxkZXIgPT09IHNjcmVlblR5cGVcIiBjbGFzcz1cImRyaWxsdGhyb3VnaC1tZW51LXRyaWdnZXJcIj5cbiAgPC9kaXY+XG4gIDwhLS0gTWF0IE1lbnUgdHJpZ2dlciBmb3IgdGFibGUgY29sdW1ucy0tPlxuICA8bWF0LW1lbnUgI2NvbnRleHRNZW51PVwibWF0TWVudVwiID5cbiAgICA8ZGl2IGlkPVwidGFibGUtbWVudVwiPlxuICAgICAgPG5nLXRlbXBsYXRlIG1hdE1lbnVDb250ZW50PlxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gIChjbGljayk9XCJyZW1vdmVGcm9tRGFzaGJvYXJkKClcIj5SZW1vdmUgRnJvbSBEYXNoYm9hcmQ8L2J1dHRvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvbWF0LW1lbnU+XG5cbiAgPGxpYi1kZXRhaWwtdmlld1xuICAqbmdJZj0ndGFidWxhclJlcG9ydC5jb2xHcm91cGluZy5sZW5ndGg9PT0wICYmIHRhYnVsYXJSZXBvcnQucm93R3JvdXBpbmcubGVuZ3RoPT09MCAnXG4gIFt4MUltYWdlTWVkaWFVcmxdPVwieDFJbWFnZU1lZGlhVXJsXCJcbiAgW3RhYnVsYXJSZXBvcnRdPVwidGFidWxhclJlcG9ydFwiXG4gIFtpc0VkaXRhYmxlXT1cImlzRWRpdGFibGVcIlxuICBbZWxlbWVudEd1aWRdPVwiZWxlbWVudEd1aWRcIlxuICBbc2NyZWVuVHlwZV09XCJzY3JlZW5UeXBlXCJcbiAgW2RyaWxsVGhyb3VnaEZpbHRlcklucHV0XT1cImRyaWxsVGhyb3VnaEZpbHRlcklucHV0XCJcbiAgW2RyaWxsVGhyb3VnaFBhcmVudFR5cGVdPVwiZHJpbGxUaHJvdWdoUGFyZW50VHlwZVwiXG4gIFtwYXJlbnRSZWZdPVwiY29tcG9uZW50UmVmXCJcbiAgW3JlcG9ydElkXT1cInJlcG9ydElkXCJcbiAgW2FwcFZlcnNpb25JZF09XCJhcHBWZXJzaW9uSWRcIlxuICBbeDFNZWRpYVVybF09XCJ4MU1lZGlhVXJsXCJcbiAgPlxuICA8L2xpYi1kZXRhaWwtdmlldz5cbiAgPGxpYi1yb3ctZ3JvdXAtdmlldyAqbmdJZj0ndGFidWxhclJlcG9ydC5yb3dHcm91cGluZy5sZW5ndGg+MCAmJiB0YWJ1bGFyUmVwb3J0LmNvbEdyb3VwaW5nLmxlbmd0aD09PTAgJ1xuICAgIFt4MUltYWdlTWVkaWFVcmxdPVwieDFJbWFnZU1lZGlhVXJsXCJcbiAgICBbdGFidWxhclJlcG9ydF09XCJ0YWJ1bGFyUmVwb3J0XCJcbiAgICBbaXNFZGl0YWJsZV09XCJpc0VkaXRhYmxlXCJcbiAgICBbZWxlbWVudEd1aWRdPVwiZWxlbWVudEd1aWRcIlxuICAgIFtzY3JlZW5UeXBlXT1cInNjcmVlblR5cGVcIlxuICAgIFtkcmlsbFRocm91Z2hGaWx0ZXJJbnB1dF09XCJkcmlsbFRocm91Z2hGaWx0ZXJJbnB1dFwiXG4gICAgW2RyaWxsVGhyb3VnaFBhcmVudFR5cGVdPVwiZHJpbGxUaHJvdWdoUGFyZW50VHlwZVwiXG4gICAgW3JlcG9ydElkXT1cInJlcG9ydElkXCJcbiAgICBbcGFyZW50UmVmXT1cImNvbXBvbmVudFJlZlwiPlxuICA8L2xpYi1yb3ctZ3JvdXAtdmlldz5cblxuICA8bGliLWNvbHVtbi1ncm91cC12aWV3ICpuZ0lmPSd0YWJ1bGFyUmVwb3J0LmNvbEdyb3VwaW5nLmxlbmd0aD4wICdcbiAgICBbeDFJbWFnZU1lZGlhVXJsXT1cIngxSW1hZ2VNZWRpYVVybFwiXG4gICAgW3RhYnVsYXJSZXBvcnRdPVwidGFidWxhclJlcG9ydFwiXG4gICAgW2lzRWRpdGFibGVdPVwiaXNFZGl0YWJsZVwiXG4gICAgW2VsZW1lbnRHdWlkXT1cImVsZW1lbnRHdWlkXCJcbiAgICBbc2NyZWVuVHlwZV09XCJzY3JlZW5UeXBlXCJcbiAgICBbZHJpbGxUaHJvdWdoRmlsdGVySW5wdXRdPVwiZHJpbGxUaHJvdWdoRmlsdGVySW5wdXRcIlxuICAgIFtkcmlsbFRocm91Z2hQYXJlbnRUeXBlXT1cImRyaWxsVGhyb3VnaFBhcmVudFR5cGVcIlxuICAgIFtyZXBvcnRJZF09XCJyZXBvcnRJZFwiXG4gICAgW3BhcmVudFJlZl09XCJjb21wb25lbnRSZWZcIj5cbiAgPC9saWItY29sdW1uLWdyb3VwLXZpZXc+XG5cbjwvZGl2PlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYnVsYXJSZXBvcnQuaXNEYXRhTG9hZGVkIFwiPlxuPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMgZGVhdGlsLWdyb3VwLXRhYmxlLXBhZ2luYXRvclwiICpuZ0lmPSd0YWJ1bGFyUmVwb3J0LmNvbEdyb3VwaW5nLmxlbmd0aD09PTAnPlxuICA8bWF0LXBhZ2luYXRvciBbZGlzYWJsZWRdPVwiaXNEYXRhTG9hZGluZ1wiIChwYWdlKT1cImhhbmRsZVBhZ2VFdmVudCgkZXZlbnQpXCIgW2xlbmd0aF09XCJ0YWJ1bGFyUmVwb3J0LnBhZ2VMZW5ndGhcIiBbcGFnZVNpemVdPVwidGFidWxhclJlcG9ydC5wYWdlU2l6ZVwiXG4gIFtwYWdlSW5kZXhdPVwidGFidWxhclJlcG9ydC5wYWdlSW5kZXhcIiBbcGFnZVNpemVPcHRpb25zXT1cIlsxMCwgMjUsIDUwLCAxMDBdXCIgYXJpYS1sYWJlbD1cIlNlbGVjdCBwYWdlXCIgY2xhc3M9XCJtYXQtcGFnaW5hdG9yIGZsZXgganVzdGlmeS1lbmQgdy1mdWxsXCI+XG4gIDwvbWF0LXBhZ2luYXRvcj5cbjwvZGl2PlxuPC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwiIXRhYnVsYXJSZXBvcnQuaXNEYXRhTG9hZGVkICYmIHRhYnVsYXJSZXBvcnQubWF0cml4LmF0dHJpYnV0ZXMubGVuZ3RoIT09MFwiPlxuICA8YXBwLWdob3N0LWxvYWRlciBbZWxlbWVudFR5cGVdPVwiR2hvc3RMb2FkZXJUeXBlLlBhZ2luYXRpb25WaWV3TG9hZGVyXCIgY2xhc3M9XCJ0YWJ1bGFyLXBhZ2luYXRpb24tZ2hvc3QtbG9hZGVyXCI+PC9hcHAtZ2hvc3QtbG9hZGVyPlxuPC9uZy1jb250YWluZXI+XG48ZGl2ICNkcmlsbFRob3J1Z2hNZW51VHJpZ2dlciBbc3R5bGUubGVmdF09XCJjb250ZXh0TWVudVBvc2l0aW9uLnhcIlxuICAgIFtzdHlsZS50b3BdPVwiY29udGV4dE1lbnVQb3NpdGlvbi55XCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImRyaWxsVGhyb3VnaE1lbnVcIiBjbGFzcz1cImRyaWxsdGhyb3VnaC1tZW51LXRyaWdnZXJcIj48L2Rpdj5cbjwhLS0gTWF0IE1lbnUgdHJpZ2dlciBmb3IgdGFibGUgY2VsbHMtLT5cbjxtYXQtbWVudSAjZHJpbGxUaHJvdWdoTWVudT1cIm1hdE1lbnVcIj5cbiAgPGRpdiBpZD1cInRhYmxlLW1lbnVcIj5cbiAgICA8bmctdGVtcGxhdGUgbWF0TWVudUNvbnRlbnQgbGV0LWl0ZW09XCJyZXBvcnREYXRhXCI+XG4gICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gW21hdE1lbnVUcmlnZ2VyRm9yXT1cImRyaWxsVGhyb3VnaFBhZ2VzXCI+RHJpbGwgVGhyb3VnaDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0lmPVwic2NyZWVuVHlwZXMuZGFzaGJvYXJkQnVpbGRlciA9PT0gc2NyZWVuVHlwZVwiIChjbGljayk9XCJyZW1vdmVGcm9tRGFzaGJvYXJkKClcIj5SZW1vdmUgRnJvbSBEYXNoYm9hcmQ8L2J1dHRvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvbWF0LW1lbnU+XG48bWF0LW1lbnUgI2RyaWxsVGhyb3VnaFBhZ2VzPVwibWF0TWVudVwiPlxuICA8ZGl2IGlkPVwidGFibGUtbWVudVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBtYXRNZW51Q29udGVudCBsZXQtaXRlbT1cInJlcG9ydERhdGFcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwiIGxldCBwYWdlIG9mIHBhZ2VzXCI+XG4gICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPSdwYWdlQ2xpY2socGFnZSknPiB7e3BhZ2UubmFtZX19PC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvbWF0LW1lbnU+XG4iXX0=