ontimize-web-ngx 15.5.1 → 15.6.0-next.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 (457) hide show
  1. package/esm2020/lib/components/app-header/o-app-header.component.mjs +4 -4
  2. package/esm2020/lib/components/app-header/o-app-header.module.mjs +5 -5
  3. package/esm2020/lib/components/app-sidenav/image/o-app-sidenav-image.component.mjs +4 -4
  4. package/esm2020/lib/components/app-sidenav/menu-group/o-app-sidenav-menu-group.component.mjs +4 -4
  5. package/esm2020/lib/components/app-sidenav/menu-item/o-app-sidenav-menu-item.component.mjs +4 -4
  6. package/esm2020/lib/components/app-sidenav/o-app-sidenav.component.mjs +4 -4
  7. package/esm2020/lib/components/app-sidenav/o-app-sidenav.module.mjs +5 -5
  8. package/esm2020/lib/components/bar-menu/locale-menu-item/o-locale-bar-menu-item.component.mjs +4 -4
  9. package/esm2020/lib/components/bar-menu/menu-group/o-bar-menu-group.component.mjs +4 -4
  10. package/esm2020/lib/components/bar-menu/menu-item/o-bar-menu-item.component.mjs +4 -4
  11. package/esm2020/lib/components/bar-menu/menu-nested/o-bar-menu-nested.component.mjs +4 -4
  12. package/esm2020/lib/components/bar-menu/menu-separator/o-bar-menu-separator.component.mjs +4 -4
  13. package/esm2020/lib/components/bar-menu/o-bar-menu-base.class.mjs +4 -4
  14. package/esm2020/lib/components/bar-menu/o-bar-menu.component.mjs +4 -4
  15. package/esm2020/lib/components/bar-menu/o-bar-menu.module.mjs +5 -5
  16. package/esm2020/lib/components/bar-menu/o-base-menu-item.class.mjs +4 -4
  17. package/esm2020/lib/components/breadcrumb/o-breadcrumb.component.mjs +4 -4
  18. package/esm2020/lib/components/breadcrumb/o-breadcrumb.module.mjs +5 -5
  19. package/esm2020/lib/components/button/o-button.component.mjs +4 -4
  20. package/esm2020/lib/components/button/o-button.module.mjs +5 -5
  21. package/esm2020/lib/components/button-toggle/o-button-toggle-group/o-button-toggle-group.component.mjs +4 -4
  22. package/esm2020/lib/components/button-toggle/o-button-toggle.component.mjs +4 -4
  23. package/esm2020/lib/components/button-toggle/o-button-toggle.module.mjs +5 -5
  24. package/esm2020/lib/components/card-menu-item/o-card-menu-item.component.mjs +4 -4
  25. package/esm2020/lib/components/card-menu-item/o-card-menu-item.module.mjs +5 -5
  26. package/esm2020/lib/components/container/column/o-column.component.mjs +4 -4
  27. package/esm2020/lib/components/container/column/o-column.module.mjs +5 -5
  28. package/esm2020/lib/components/container/column-collapsible/o-column-collapsible.component.mjs +4 -4
  29. package/esm2020/lib/components/container/column-collapsible/o-column-collapsible.module.mjs +5 -5
  30. package/esm2020/lib/components/container/o-container-collapsible-component.class.mjs +4 -4
  31. package/esm2020/lib/components/container/o-container-component.class.mjs +4 -4
  32. package/esm2020/lib/components/container/row/o-row.component.mjs +4 -4
  33. package/esm2020/lib/components/container/row/o-row.module.mjs +5 -5
  34. package/esm2020/lib/components/container/row-collapsible/o-row-collapsible.component.mjs +4 -4
  35. package/esm2020/lib/components/container/row-collapsible/o-row-collapsible.module.mjs +5 -5
  36. package/esm2020/lib/components/contextmenu/context-menu/o-context-menu-content.component.mjs +4 -4
  37. package/esm2020/lib/components/contextmenu/context-menu/o-wrapper-content-menu/o-wrapper-content-menu.component.mjs +4 -4
  38. package/esm2020/lib/components/contextmenu/context-menu-group/o-context-menu-group.component.mjs +4 -4
  39. package/esm2020/lib/components/contextmenu/context-menu-item/o-context-menu-item.component.mjs +4 -4
  40. package/esm2020/lib/components/contextmenu/context-menu-separator/o-context-menu-separator.component.mjs +4 -4
  41. package/esm2020/lib/components/contextmenu/o-content-menu-base-item.class.mjs +4 -4
  42. package/esm2020/lib/components/contextmenu/o-context-menu-overlay.service.mjs +4 -4
  43. package/esm2020/lib/components/contextmenu/o-context-menu.component.mjs +4 -4
  44. package/esm2020/lib/components/contextmenu/o-context-menu.directive.mjs +4 -4
  45. package/esm2020/lib/components/contextmenu/o-context-menu.module.mjs +5 -5
  46. package/esm2020/lib/components/contextmenu/o-context-menu.service.mjs +4 -4
  47. package/esm2020/lib/components/dual-list-selector/dual-list-selector-item/date/o-dual-list-selector-date-item.component.mjs +4 -4
  48. package/esm2020/lib/components/dual-list-selector/o-dual-list-selector.component.mjs +4 -4
  49. package/esm2020/lib/components/dual-list-selector/o-dual-list-selector.module.mjs +5 -5
  50. package/esm2020/lib/components/expandable-container/o-expandable-container.component.mjs +4 -4
  51. package/esm2020/lib/components/expandable-container/o-expandable-container.module.mjs +5 -5
  52. package/esm2020/lib/components/filter-builder/filter-builder-menu/filter-builder-menu.component.mjs +4 -4
  53. package/esm2020/lib/components/filter-builder/o-filter-builder-clear.directive.mjs +4 -4
  54. package/esm2020/lib/components/filter-builder/o-filter-builder-query.directive.mjs +4 -4
  55. package/esm2020/lib/components/filter-builder/o-filter-builder.component.mjs +4 -4
  56. package/esm2020/lib/components/filter-builder/o-filter-builder.module.mjs +5 -5
  57. package/esm2020/lib/components/form/guards/o-form-can-deactivate.guard.mjs +4 -4
  58. package/esm2020/lib/components/form/navigation/o-form-confirm-exit.service.mjs +4 -4
  59. package/esm2020/lib/components/form/navigation/o-form-navigation.component.mjs +6 -5
  60. package/esm2020/lib/components/form/o-form.component.mjs +27 -13
  61. package/esm2020/lib/components/form/o-form.module.mjs +5 -5
  62. package/esm2020/lib/components/form/services/o-form-message.service.mjs +4 -4
  63. package/esm2020/lib/components/form/toolbar/o-form-toolbar.component.mjs +4 -4
  64. package/esm2020/lib/components/form/toolbar/o-form-toolbar.module.mjs +5 -5
  65. package/esm2020/lib/components/form-container/o-form-container.component.mjs +4 -4
  66. package/esm2020/lib/components/form-container/o-form-container.module.mjs +5 -5
  67. package/esm2020/lib/components/grid/grid-item/o-grid-item.component.mjs +4 -4
  68. package/esm2020/lib/components/grid/grid-item/o-grid-item.directive.mjs +4 -4
  69. package/esm2020/lib/components/grid/o-grid.component.mjs +5 -5
  70. package/esm2020/lib/components/grid/o-grid.module.mjs +5 -5
  71. package/esm2020/lib/components/grid/skeketon/o-grid-skeleton.component.mjs +4 -4
  72. package/esm2020/lib/components/image/fullscreen/fullscreen-dialog.component.mjs +4 -4
  73. package/esm2020/lib/components/image/o-image.component.mjs +6 -6
  74. package/esm2020/lib/components/image/o-image.module.mjs +5 -5
  75. package/esm2020/lib/components/input/checkbox/o-checkbox.component.mjs +4 -4
  76. package/esm2020/lib/components/input/checkbox/o-checkbox.module.mjs +5 -5
  77. package/esm2020/lib/components/input/combo/combo-renderer/boolean/o-combo-renderer-boolean.component.mjs +4 -4
  78. package/esm2020/lib/components/input/combo/combo-renderer/currency/o-combo-renderer-currency.component.mjs +4 -4
  79. package/esm2020/lib/components/input/combo/combo-renderer/date/o-combo-renderer-date.component.mjs +4 -4
  80. package/esm2020/lib/components/input/combo/combo-renderer/icon/o-combo-renderer-icon.component.mjs +4 -4
  81. package/esm2020/lib/components/input/combo/combo-renderer/integer/o-combo-renderer-integer.component.mjs +4 -4
  82. package/esm2020/lib/components/input/combo/combo-renderer/o-combo-renderer.class.mjs +4 -4
  83. package/esm2020/lib/components/input/combo/combo-renderer/percentage/o-combo-renderer-percentage.component.mjs +4 -4
  84. package/esm2020/lib/components/input/combo/combo-renderer/real/o-combo-renderer-real.component.mjs +4 -4
  85. package/esm2020/lib/components/input/combo/combo-search/o-combo-search.component.mjs +4 -4
  86. package/esm2020/lib/components/input/combo/o-combo.component.mjs +4 -4
  87. package/esm2020/lib/components/input/combo/o-combo.module.mjs +5 -5
  88. package/esm2020/lib/components/input/currency-input/o-currency-input.component.mjs +5 -5
  89. package/esm2020/lib/components/input/currency-input/o-currency-input.module.mjs +5 -5
  90. package/esm2020/lib/components/input/date-input/o-date-input.component.mjs +4 -4
  91. package/esm2020/lib/components/input/date-input/o-date-input.module.mjs +5 -5
  92. package/esm2020/lib/components/input/date-range/o-daterange-input.component.mjs +4 -4
  93. package/esm2020/lib/components/input/date-range/o-daterange-input.module.mjs +5 -5
  94. package/esm2020/lib/components/input/date-range-legacy/o-daterange-input.component.mjs +4 -4
  95. package/esm2020/lib/components/input/date-range-legacy/o-daterange-input.directive.mjs +4 -4
  96. package/esm2020/lib/components/input/date-range-legacy/o-daterange-input.module.mjs +5 -5
  97. package/esm2020/lib/components/input/date-range-legacy/o-daterange-picker.component.mjs +4 -4
  98. package/esm2020/lib/components/input/email-input/o-email-input.component.mjs +4 -4
  99. package/esm2020/lib/components/input/email-input/o-email-input.module.mjs +5 -5
  100. package/esm2020/lib/components/input/file-input/o-file-input.component.mjs +9 -5
  101. package/esm2020/lib/components/input/file-input/o-file-input.module.mjs +5 -5
  102. package/esm2020/lib/components/input/hour-input/o-hour-input.component.mjs +4 -4
  103. package/esm2020/lib/components/input/hour-input/o-hour-input.module.mjs +5 -5
  104. package/esm2020/lib/components/input/html-input/o-html-input.component.mjs +4 -4
  105. package/esm2020/lib/components/input/html-input/o-html-input.module.mjs +5 -5
  106. package/esm2020/lib/components/input/integer-input/o-integer-input.component.mjs +4 -4
  107. package/esm2020/lib/components/input/integer-input/o-integer-input.module.mjs +5 -5
  108. package/esm2020/lib/components/input/listpicker/listpicker-renderer/currency/o-list-picker-renderer-currency.component.mjs +4 -4
  109. package/esm2020/lib/components/input/listpicker/listpicker-renderer/date/o-list-picker-renderer-date.component.mjs +4 -4
  110. package/esm2020/lib/components/input/listpicker/listpicker-renderer/integer/o-list-picker-renderer-integer.component.mjs +4 -4
  111. package/esm2020/lib/components/input/listpicker/listpicker-renderer/o-list-picker-renderer.class.mjs +4 -4
  112. package/esm2020/lib/components/input/listpicker/listpicker-renderer/percentage/o-list-picker-renderer-percentage.component.mjs +4 -4
  113. package/esm2020/lib/components/input/listpicker/listpicker-renderer/real/o-list-picker-renderer-real.component.mjs +4 -4
  114. package/esm2020/lib/components/input/listpicker/o-list-picker-dialog.component.mjs +4 -4
  115. package/esm2020/lib/components/input/listpicker/o-list-picker.component.mjs +4 -4
  116. package/esm2020/lib/components/input/listpicker/o-list-picker.module.mjs +5 -5
  117. package/esm2020/lib/components/input/nif-input/o-nif-input.component.mjs +4 -4
  118. package/esm2020/lib/components/input/nif-input/o-nif-input.module.mjs +5 -5
  119. package/esm2020/lib/components/input/o-boolean-form-data-component.class.mjs +4 -4
  120. package/esm2020/lib/components/input/o-form-service-component.class.mjs +20 -11
  121. package/esm2020/lib/components/input/password-input/o-password-input.component.mjs +4 -4
  122. package/esm2020/lib/components/input/password-input/o-password-input.module.mjs +5 -5
  123. package/esm2020/lib/components/input/percent-input/o-percent-input.component.mjs +4 -4
  124. package/esm2020/lib/components/input/percent-input/o-percent-input.module.mjs +5 -5
  125. package/esm2020/lib/components/input/phone-input/data/country-code.mjs +4 -4
  126. package/esm2020/lib/components/input/phone-input/o-phone-input.component.mjs +4 -4
  127. package/esm2020/lib/components/input/phone-input/o-phone-input.module.mjs +5 -5
  128. package/esm2020/lib/components/input/radio/o-radio.component.mjs +4 -4
  129. package/esm2020/lib/components/input/radio/o-radio.module.mjs +5 -5
  130. package/esm2020/lib/components/input/real-input/o-real-input.component.mjs +4 -4
  131. package/esm2020/lib/components/input/real-input/o-real-input.module.mjs +5 -5
  132. package/esm2020/lib/components/input/search-input/o-search-input.component.mjs +4 -4
  133. package/esm2020/lib/components/input/search-input/o-search-input.module.mjs +5 -5
  134. package/esm2020/lib/components/input/slide-toggle/o-slide-toggle.component.mjs +4 -4
  135. package/esm2020/lib/components/input/slide-toggle/o-slide-toggle.module.mjs +5 -5
  136. package/esm2020/lib/components/input/slider/o-slider.component.mjs +4 -4
  137. package/esm2020/lib/components/input/slider/o-slider.module.mjs +5 -5
  138. package/esm2020/lib/components/input/text-input/o-text-input.component.mjs +4 -4
  139. package/esm2020/lib/components/input/text-input/o-text-input.module.mjs +5 -5
  140. package/esm2020/lib/components/input/textarea-input/o-textarea-input.component.mjs +4 -4
  141. package/esm2020/lib/components/input/textarea-input/o-textarea-input.module.mjs +5 -5
  142. package/esm2020/lib/components/input/time-input/o-time-input.component.mjs +4 -4
  143. package/esm2020/lib/components/input/time-input/o-time-input.module.mjs +5 -5
  144. package/esm2020/lib/components/language-selector/o-language-selector.component.mjs +4 -4
  145. package/esm2020/lib/components/language-selector/o-language-selector.module.mjs +5 -5
  146. package/esm2020/lib/components/list/list-item/o-list-item.component.mjs +4 -4
  147. package/esm2020/lib/components/list/list-item/o-list-item.directive.mjs +4 -4
  148. package/esm2020/lib/components/list/o-list.component.mjs +5 -5
  149. package/esm2020/lib/components/list/o-list.module.mjs +5 -5
  150. package/esm2020/lib/components/list/renderers/avatar/o-list-item-avatar.component.mjs +4 -4
  151. package/esm2020/lib/components/list/renderers/card/o-list-item-card.component.mjs +4 -4
  152. package/esm2020/lib/components/list/renderers/card-image/o-list-item-card-image.component.mjs +4 -4
  153. package/esm2020/lib/components/list/renderers/o-list-item-card-renderer.class.mjs +4 -4
  154. package/esm2020/lib/components/list/renderers/o-list-item-text-renderer.class.mjs +4 -4
  155. package/esm2020/lib/components/list/renderers/text/o-list-item-text.component.mjs +4 -4
  156. package/esm2020/lib/components/list/skeleton/o-list-skeleton.component.mjs +4 -4
  157. package/esm2020/lib/components/material/ckeditor/ck-editor.component.mjs +4 -4
  158. package/esm2020/lib/components/material/ckeditor/ck-editor.module.mjs +5 -5
  159. package/esm2020/lib/components/o-data-toolbar/o-data-toolbar.component.mjs +4 -4
  160. package/esm2020/lib/components/o-data-toolbar/o-data-toolbar.module.mjs +5 -5
  161. package/esm2020/lib/components/o-form-data-component.class.mjs +4 -4
  162. package/esm2020/lib/components/o-service-base-component.class.mjs +35 -24
  163. package/esm2020/lib/components/o-service-component.class.mjs +8 -8
  164. package/esm2020/lib/components/o-skeleton.component.mjs +4 -4
  165. package/esm2020/lib/components/table/column/calculated/o-table-column-calculated.component.mjs +4 -4
  166. package/esm2020/lib/components/table/column/cell-editor/boolean/o-table-cell-editor-boolean.component.mjs +4 -4
  167. package/esm2020/lib/components/table/column/cell-editor/date/o-table-cell-editor-date.component.mjs +4 -4
  168. package/esm2020/lib/components/table/column/cell-editor/email/o-table-cell-editor-email.component.mjs +4 -4
  169. package/esm2020/lib/components/table/column/cell-editor/integer/o-table-cell-editor-integer.component.mjs +4 -4
  170. package/esm2020/lib/components/table/column/cell-editor/o-base-table-cell-editor.class.mjs +4 -4
  171. package/esm2020/lib/components/table/column/cell-editor/real/o-table-cell-editor-real.component.mjs +4 -4
  172. package/esm2020/lib/components/table/column/cell-editor/text/o-table-cell-editor-text.component.mjs +4 -4
  173. package/esm2020/lib/components/table/column/cell-editor/time/o-table-cell-editor-time.component.mjs +4 -4
  174. package/esm2020/lib/components/table/column/cell-renderer/action/o-table-cell-renderer-action.component.mjs +4 -4
  175. package/esm2020/lib/components/table/column/cell-renderer/boolean/o-table-cell-renderer-boolean.component.mjs +4 -4
  176. package/esm2020/lib/components/table/column/cell-renderer/currency/o-table-cell-renderer-currency.component.mjs +4 -4
  177. package/esm2020/lib/components/table/column/cell-renderer/date/o-table-cell-renderer-date.component.mjs +4 -4
  178. package/esm2020/lib/components/table/column/cell-renderer/image/o-table-cell-renderer-image.component.mjs +4 -4
  179. package/esm2020/lib/components/table/column/cell-renderer/integer/o-table-cell-renderer-integer.component.mjs +4 -4
  180. package/esm2020/lib/components/table/column/cell-renderer/o-base-table-cell-renderer.class.mjs +4 -4
  181. package/esm2020/lib/components/table/column/cell-renderer/percentage/o-table-cell-renderer-percentage.component.mjs +4 -4
  182. package/esm2020/lib/components/table/column/cell-renderer/real/o-table-cell-renderer-real.component.mjs +4 -4
  183. package/esm2020/lib/components/table/column/cell-renderer/service/o-table-cell-renderer-service.component.mjs +23 -9
  184. package/esm2020/lib/components/table/column/cell-renderer/time/o-table-cell-renderer-time.component.mjs +4 -4
  185. package/esm2020/lib/components/table/column/cell-renderer/translate/o-table-cell-renderer-translate.component.mjs +4 -4
  186. package/esm2020/lib/components/table/column/o-table-column.component.mjs +4 -4
  187. package/esm2020/lib/components/table/extensions/contextmenu/o-table-context-menu.component.mjs +4 -4
  188. package/esm2020/lib/components/table/extensions/dialog/apply-configuration/o-table-apply-configuration-dialog.component.mjs +4 -4
  189. package/esm2020/lib/components/table/extensions/dialog/export/o-table-export-dialog.component.mjs +4 -4
  190. package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.mjs +4 -4
  191. package/esm2020/lib/components/table/extensions/dialog/group-by-columns/o-table-group-by-columns-dialog.component.mjs +4 -4
  192. package/esm2020/lib/components/table/extensions/dialog/o-table-base-dialog.class.mjs +4 -4
  193. package/esm2020/lib/components/table/extensions/dialog/store-configuration/o-table-store-configuration-dialog.component.mjs +4 -4
  194. package/esm2020/lib/components/table/extensions/dialog/visible-columns/o-table-visible-columns-dialog.component.mjs +4 -4
  195. package/esm2020/lib/components/table/extensions/export-button/o-table-export-button.component.mjs +4 -4
  196. package/esm2020/lib/components/table/extensions/export-button/o-table-export-button.service.mjs +4 -4
  197. package/esm2020/lib/components/table/extensions/footer/aggregate/o-table-column-aggregate.component.mjs +4 -4
  198. package/esm2020/lib/components/table/extensions/footer/expanded/o-table-expanded-footer.directive.mjs +4 -4
  199. package/esm2020/lib/components/table/extensions/footer/paginator/o-table-mat-paginator-intl.mjs +4 -4
  200. package/esm2020/lib/components/table/extensions/footer/paginator/o-table-paginator.component.mjs +4 -4
  201. package/esm2020/lib/components/table/extensions/header/o-table-header-components.mjs +3 -2
  202. package/esm2020/lib/components/table/extensions/header/table-button/o-table-button.component.mjs +4 -4
  203. package/esm2020/lib/components/table/extensions/header/table-buttons/o-table-buttons.component.mjs +4 -4
  204. package/esm2020/lib/components/table/extensions/header/table-column-resizer/o-table-column-resizer.component.mjs +4 -4
  205. package/esm2020/lib/components/table/extensions/header/table-column-select-all/o-table-column-select-all.directive.mjs +4 -4
  206. package/esm2020/lib/components/table/extensions/header/table-columns-filter/columns/o-table-columns-filter-column.component.mjs +4 -4
  207. package/esm2020/lib/components/table/extensions/header/table-columns-filter/o-table-columns-filter.component.mjs +4 -4
  208. package/esm2020/lib/components/table/extensions/header/table-columns-grouping/columns/o-table-columns-grouping-column.component.mjs +4 -4
  209. package/esm2020/lib/components/table/extensions/header/table-columns-grouping/o-table-columns-grouping.component.mjs +4 -4
  210. package/esm2020/lib/components/table/extensions/header/table-header/o-table-header.component.mjs +4 -4
  211. package/esm2020/lib/components/table/extensions/header/table-header-column-filter-icon/o-table-header-column-filter-icon.component.mjs +4 -4
  212. package/esm2020/lib/components/table/extensions/header/table-header-select-all/o-table-header-select-all.component.mjs +4 -4
  213. package/esm2020/lib/components/table/extensions/header/table-insertable-row/o-table-insertable-row.component.mjs +4 -4
  214. package/esm2020/lib/components/table/extensions/header/table-menu/o-table-menu.component.mjs +4 -4
  215. package/esm2020/lib/components/table/extensions/header/table-option/o-table-option.component.mjs +4 -4
  216. package/esm2020/lib/components/table/extensions/header/table-quickfilter/o-table-quickfilter.component.mjs +4 -4
  217. package/esm2020/lib/components/table/extensions/o-table-datasource.service.mjs +4 -4
  218. package/esm2020/lib/components/table/extensions/o-table-strategy.service.mjs +4 -4
  219. package/esm2020/lib/components/table/extensions/o-table.dao.mjs +2 -2
  220. package/esm2020/lib/components/table/extensions/pipes/o-table-row-class.pipe.mjs +4 -4
  221. package/esm2020/lib/components/table/extensions/row/o-table-row.directive.mjs +4 -4
  222. package/esm2020/lib/components/table/extensions/row/table-row-expandable/o-table-row-expandable.component.mjs +4 -4
  223. package/esm2020/lib/components/table/extensions/skeleton/o-table-skeleton.component.mjs +4 -4
  224. package/esm2020/lib/components/table/extensions/sort/o-mat-sort-header.mjs +4 -4
  225. package/esm2020/lib/components/table/extensions/sort/o-mat-sort-module.mjs +5 -5
  226. package/esm2020/lib/components/table/extensions/sort/o-mat-sort.mjs +4 -4
  227. package/esm2020/lib/components/table/o-table.component.mjs +20 -15
  228. package/esm2020/lib/components/table/o-table.module.mjs +6 -6
  229. package/esm2020/lib/components/tree/header/tree-menu/o-tree-menu.component.mjs +4 -4
  230. package/esm2020/lib/components/tree/o-tree-dao.service.mjs +4 -4
  231. package/esm2020/lib/components/tree/o-tree.component.mjs +6 -6
  232. package/esm2020/lib/components/tree/o-tree.module.mjs +5 -5
  233. package/esm2020/lib/components/tree/tree-node/tree-node.component.mjs +4 -4
  234. package/esm2020/lib/components/user-info/o-user-info.component.mjs +4 -4
  235. package/esm2020/lib/components/user-info/o-user-info.module.mjs +5 -5
  236. package/esm2020/lib/components/user-info/user-info-configuration/o-user-info-configuration.directive.mjs +4 -4
  237. package/esm2020/lib/components/user-info/user-info-configuration-item/o-user-info-configuration-item.directive.mjs +4 -4
  238. package/esm2020/lib/config/app-config.mjs +4 -1
  239. package/esm2020/lib/config/o-modules.mjs +5 -5
  240. package/esm2020/lib/config/o-providers.mjs +9 -4
  241. package/esm2020/lib/directives/input-regulate.directive.mjs +4 -4
  242. package/esm2020/lib/directives/keyboard-listener.directive.mjs +4 -4
  243. package/esm2020/lib/directives/locker.directive.mjs +4 -4
  244. package/esm2020/lib/directives/o-file-drag-and-drop.directive.mjs +4 -4
  245. package/esm2020/lib/directives/o-hidden.directive.mjs +4 -4
  246. package/esm2020/lib/directives/o-mat-error.directive.mjs +4 -4
  247. package/esm2020/lib/directives/o-mat-prefix.directive.mjs +4 -4
  248. package/esm2020/lib/directives/o-mat-suffix.directive.mjs +4 -4
  249. package/esm2020/lib/directives/o-tab-group.directive.mjs +4 -4
  250. package/esm2020/lib/interfaces/base-response.interface.mjs +2 -0
  251. package/esm2020/lib/interfaces/data-service.interface.mjs +1 -1
  252. package/esm2020/lib/interfaces/form-data-component.interface.mjs +1 -1
  253. package/esm2020/lib/interfaces/index.mjs +4 -1
  254. package/esm2020/lib/interfaces/jsonapi-response.interface.mjs +2 -0
  255. package/esm2020/lib/interfaces/name-convention.interface.mjs +2 -0
  256. package/esm2020/lib/interfaces/prefereces-service.interface.mjs +2 -0
  257. package/esm2020/lib/interfaces/service-response-adapter.interface.mjs +1 -1
  258. package/esm2020/lib/interfaces/service-response.interface.mjs +1 -1
  259. package/esm2020/lib/layouts/app-layout/app-layout-header/o-app-layout-header.component.mjs +4 -4
  260. package/esm2020/lib/layouts/app-layout/app-layout-sidenav/o-app-layout-sidenav.component.mjs +4 -4
  261. package/esm2020/lib/layouts/app-layout/o-app-layout.component.mjs +4 -4
  262. package/esm2020/lib/layouts/app-layout/o-app-layout.module.mjs +5 -5
  263. package/esm2020/lib/layouts/card-menu-layout/o-card-menu-layout.component.mjs +4 -4
  264. package/esm2020/lib/layouts/card-menu-layout/o-card-menu-layout.module.mjs +5 -5
  265. package/esm2020/lib/layouts/form-layout/dialog/o-form-layout-dialog.component.mjs +4 -4
  266. package/esm2020/lib/layouts/form-layout/dialog/options/o-form-layout-dialog-options.directive.mjs +4 -4
  267. package/esm2020/lib/layouts/form-layout/directives/o-form-layout-manager-content.directive.mjs +4 -4
  268. package/esm2020/lib/layouts/form-layout/guards/o-form-layout-can-activate-child.guard.mjs +4 -4
  269. package/esm2020/lib/layouts/form-layout/o-form-layout-manager.component.mjs +4 -4
  270. package/esm2020/lib/layouts/form-layout/o-form-layout-manager.module.mjs +5 -5
  271. package/esm2020/lib/layouts/form-layout/split-pane/o-form-layout-split-pane.component.mjs +4 -4
  272. package/esm2020/lib/layouts/form-layout/split-pane/options/o-form-layout-split-pane-options.directive.mjs +4 -4
  273. package/esm2020/lib/layouts/form-layout/tabgroup/o-form-layout-tabgroup.component.mjs +4 -4
  274. package/esm2020/lib/layouts/form-layout/tabgroup/options/o-form-layout-tabgroup-options.directive.mjs +4 -4
  275. package/esm2020/lib/ontimize-web-ngx.module.mjs +5 -5
  276. package/esm2020/lib/pipes/columns-filter.pipe.mjs +4 -4
  277. package/esm2020/lib/pipes/is-empty-value.pipe.mjs +4 -4
  278. package/esm2020/lib/pipes/o-currency.pipe.mjs +4 -4
  279. package/esm2020/lib/pipes/o-icon.pipe.mjs +4 -4
  280. package/esm2020/lib/pipes/o-integer.pipe.mjs +4 -4
  281. package/esm2020/lib/pipes/o-moment.pipe.mjs +4 -4
  282. package/esm2020/lib/pipes/o-percentage.pipe.mjs +4 -4
  283. package/esm2020/lib/pipes/o-real.pipe.mjs +4 -4
  284. package/esm2020/lib/pipes/o-safe.pipe.mjs +4 -4
  285. package/esm2020/lib/pipes/o-translate.pipe.mjs +8 -8
  286. package/esm2020/lib/pipes/order-by.pipe.mjs +4 -4
  287. package/esm2020/lib/services/app-menu.service.mjs +4 -4
  288. package/esm2020/lib/services/appearance.service.mjs +4 -4
  289. package/esm2020/lib/services/auth-guard.service.mjs +4 -4
  290. package/esm2020/lib/services/auth.service.mjs +4 -4
  291. package/esm2020/lib/services/base-data-service.class.mjs +19 -0
  292. package/esm2020/lib/services/base-service.class.mjs +36 -9
  293. package/esm2020/lib/services/currency.service.mjs +4 -4
  294. package/esm2020/lib/services/dialog.service.mjs +4 -4
  295. package/esm2020/lib/services/factories.mjs +73 -4
  296. package/esm2020/lib/services/icon.service.mjs +4 -4
  297. package/esm2020/lib/services/index.mjs +4 -1
  298. package/esm2020/lib/services/jsonapi/index.mjs +5 -0
  299. package/esm2020/lib/services/jsonapi/jsonapi-preferences.service.mjs +45 -0
  300. package/esm2020/lib/services/jsonapi/jsonapi-service-response.adapter.mjs +31 -0
  301. package/esm2020/lib/services/jsonapi/jsonapi-service-response.class.mjs +45 -0
  302. package/esm2020/lib/services/jsonapi/jsonapi.service.mjs +166 -0
  303. package/esm2020/lib/services/local-storage.service.mjs +4 -4
  304. package/esm2020/lib/services/login-storage.service.mjs +4 -4
  305. package/esm2020/lib/services/moment.service.mjs +4 -4
  306. package/esm2020/lib/services/name-convention/base-name-convention.service.mjs +59 -0
  307. package/esm2020/lib/services/name-convention/index.mjs +4 -0
  308. package/esm2020/lib/services/name-convention/name-convention-lower.service.mjs +11 -0
  309. package/esm2020/lib/services/name-convention/name-convention-upper.service.mjs +11 -0
  310. package/esm2020/lib/services/name-convention/name-convention.service.mjs +24 -0
  311. package/esm2020/lib/services/navigation.service.mjs +4 -4
  312. package/esm2020/lib/services/number.service.mjs +4 -4
  313. package/esm2020/lib/services/o-auth.service.mjs +4 -4
  314. package/esm2020/lib/services/o-breadcrumb.service.mjs +4 -4
  315. package/esm2020/lib/services/o-error-dialog-manager.service.mjs +4 -4
  316. package/esm2020/lib/services/o-form-layout-manager.service.mjs +4 -4
  317. package/esm2020/lib/services/o-modules-info.service.mjs +4 -4
  318. package/esm2020/lib/services/o-user-info.service.mjs +4 -4
  319. package/esm2020/lib/services/ontimize/index.mjs +4 -1
  320. package/esm2020/lib/services/ontimize/o-preference-query-argument.adapter.mjs +17 -0
  321. package/esm2020/lib/services/ontimize/o-preference-response.adapter.mjs +22 -0
  322. package/esm2020/lib/services/ontimize/ontimize-base-service.class.mjs +7 -12
  323. package/esm2020/lib/services/ontimize/ontimize-ee.service.mjs +33 -12
  324. package/esm2020/lib/services/ontimize/ontimize-export-3xx.service.mjs +6 -6
  325. package/esm2020/lib/services/ontimize/ontimize-export.service.mjs +6 -6
  326. package/esm2020/lib/services/ontimize/ontimize-file.service.mjs +6 -6
  327. package/esm2020/lib/services/ontimize/ontimize-preferences.service.mjs +58 -0
  328. package/esm2020/lib/services/ontimize/ontimize-service-response.adapter.mjs +7 -4
  329. package/esm2020/lib/services/ontimize/ontimize.service.mjs +32 -23
  330. package/esm2020/lib/services/ontimize-export-data-base-provider.service.mjs +4 -4
  331. package/esm2020/lib/services/ontimize-export-data-provider-3x.service.mjs +4 -4
  332. package/esm2020/lib/services/ontimize-export-data-provider.service.mjs +4 -4
  333. package/esm2020/lib/services/ontimize-icon-registry.service.mjs +4 -4
  334. package/esm2020/lib/services/pagination-context.service.mjs +4 -4
  335. package/esm2020/lib/services/parser/o-service-response.parser.mjs +21 -4
  336. package/esm2020/lib/services/permissions/o-permissions.module.mjs +5 -5
  337. package/esm2020/lib/services/permissions/ontimize-ee-permissions.service.mjs +4 -4
  338. package/esm2020/lib/services/permissions/ontimize-permissions.service.mjs +4 -4
  339. package/esm2020/lib/services/permissions/permissions-can-activate.guard.mjs +4 -4
  340. package/esm2020/lib/services/permissions/permissions.service.mjs +4 -4
  341. package/esm2020/lib/services/query-arguments/base-query-argument.adapter.mjs +9 -0
  342. package/esm2020/lib/services/query-arguments/base-query-argument.interface.mjs +2 -0
  343. package/esm2020/lib/services/query-arguments/index.mjs +5 -0
  344. package/esm2020/lib/services/query-arguments/jsonapi-query-arguments.adapter.mjs +63 -0
  345. package/esm2020/lib/services/query-arguments/ontimize-query-arguments.adapter.mjs +19 -0
  346. package/esm2020/lib/services/remote-config.service.mjs +5 -5
  347. package/esm2020/lib/services/share-can-activate-child.service.mjs +4 -4
  348. package/esm2020/lib/services/snackbar.service.mjs +4 -4
  349. package/esm2020/lib/services/state/o-app-menu-component-state.service.mjs +4 -4
  350. package/esm2020/lib/services/state/o-component-state.service.mjs +10 -10
  351. package/esm2020/lib/services/state/o-filter-builder-component-state.service.mjs +4 -4
  352. package/esm2020/lib/services/state/o-form-layout-manager-component-state.service.mjs +4 -4
  353. package/esm2020/lib/services/state/o-grid-component-state.service.mjs +4 -4
  354. package/esm2020/lib/services/state/o-list-component-state.service.mjs +4 -4
  355. package/esm2020/lib/services/state/o-table-component-state.service.mjs +4 -4
  356. package/esm2020/lib/services/state/o-tree-component-state.service.mjs +4 -4
  357. package/esm2020/lib/services/translate/o-translate.parser.mjs +4 -4
  358. package/esm2020/lib/services/translate/o-translate.service.mjs +4 -4
  359. package/esm2020/lib/shared/components/dialog/o-dialog-internal.component.mjs +4 -4
  360. package/esm2020/lib/shared/components/dialog/o-dialog.component.mjs +4 -4
  361. package/esm2020/lib/shared/components/error403/o-error-403.component.mjs +4 -4
  362. package/esm2020/lib/shared/components/filter/load-filter/o-load-filter-dialog.component.mjs +4 -4
  363. package/esm2020/lib/shared/components/filter/store-filter/o-store-filter-dialog.component.mjs +4 -4
  364. package/esm2020/lib/shared/components/snackbar/o-snackbar-base.class.mjs +4 -4
  365. package/esm2020/lib/shared/components/snackbar/o-snackbar.component.mjs +4 -4
  366. package/esm2020/lib/shared/components/validation/o-error.component.mjs +4 -4
  367. package/esm2020/lib/shared/components/validation/o-validator.component.mjs +4 -4
  368. package/esm2020/lib/shared/material/custom.material.module.mjs +5 -5
  369. package/esm2020/lib/shared/material/date/ontimize-moment-date-adapter.mjs +4 -4
  370. package/esm2020/lib/shared/shared.module.mjs +5 -5
  371. package/esm2020/lib/types/config.type.mjs +1 -1
  372. package/esm2020/lib/types/configure-service-args.type.mjs +1 -1
  373. package/esm2020/lib/types/index.mjs +5 -1
  374. package/esm2020/lib/types/json-query-parameter.type.mjs +2 -0
  375. package/esm2020/lib/types/preferences.type.mjs +2 -0
  376. package/esm2020/lib/types/query-params.type.mjs +2 -0
  377. package/esm2020/lib/types/service-configuration.type.mjs +2 -0
  378. package/esm2020/lib/types/service-request-param.type.mjs +1 -1
  379. package/esm2020/lib/types/service-type.type.mjs +8 -0
  380. package/esm2020/lib/util/codes.mjs +2 -1
  381. package/esm2020/lib/util/index.mjs +2 -1
  382. package/esm2020/lib/util/preference-mapping-util.mjs +80 -0
  383. package/esm2020/lib/util/sqltypes.mjs +5 -1
  384. package/esm2020/lib/util/util.mjs +103 -12
  385. package/fesm2015/ontimize-web-ngx.mjs +3564 -2637
  386. package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
  387. package/fesm2020/ontimize-web-ngx.mjs +3560 -2636
  388. package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
  389. package/lib/components/form/navigation/o-form-navigation.component.d.ts +3 -1
  390. package/lib/components/form/o-form.component.d.ts +12 -7
  391. package/lib/components/grid/o-grid.component.d.ts +2 -1
  392. package/lib/components/input/file-input/o-file-input.component.d.ts +3 -1
  393. package/lib/components/input/o-form-service-component.class.d.ts +11 -4
  394. package/lib/components/list/o-list.component.d.ts +2 -1
  395. package/lib/components/o-service-base-component.class.d.ts +8 -4
  396. package/lib/components/o-service-component.class.d.ts +1 -1
  397. package/lib/components/table/column/cell-renderer/service/o-table-cell-renderer-service.component.d.ts +7 -2
  398. package/lib/components/table/column/o-table-column.component.d.ts +1 -1
  399. package/lib/components/table/extensions/o-table.dao.d.ts +4 -2
  400. package/lib/components/table/o-table.component.d.ts +4 -2
  401. package/lib/components/table/o-table.module.d.ts +1 -1
  402. package/lib/config/app-config.d.ts +1 -0
  403. package/lib/config/o-directives.d.ts +1 -1
  404. package/lib/interfaces/base-response.interface.d.ts +7 -0
  405. package/lib/interfaces/data-service.interface.d.ts +1 -0
  406. package/lib/interfaces/form-data-component.interface.d.ts +1 -0
  407. package/lib/interfaces/index.d.ts +3 -0
  408. package/lib/interfaces/jsonapi-response.interface.d.ts +9 -0
  409. package/lib/interfaces/name-convention.interface.d.ts +9 -0
  410. package/lib/interfaces/prefereces-service.interface.d.ts +7 -0
  411. package/lib/interfaces/service-response-adapter.interface.d.ts +4 -2
  412. package/lib/interfaces/service-response.interface.d.ts +2 -6
  413. package/lib/services/base-data-service.class.d.ts +17 -0
  414. package/lib/services/base-service.class.d.ts +27 -20
  415. package/lib/services/factories.d.ts +30 -0
  416. package/lib/services/index.d.ts +3 -0
  417. package/lib/services/jsonapi/index.d.ts +4 -0
  418. package/lib/services/jsonapi/jsonapi-preferences.service.d.ts +13 -0
  419. package/lib/services/jsonapi/jsonapi-service-response.adapter.d.ts +12 -0
  420. package/lib/services/jsonapi/jsonapi-service-response.class.d.ts +23 -0
  421. package/lib/services/jsonapi/jsonapi.service.d.ts +31 -0
  422. package/lib/services/name-convention/base-name-convention.service.d.ts +12 -0
  423. package/lib/services/name-convention/index.d.ts +3 -0
  424. package/lib/services/name-convention/name-convention-lower.service.d.ts +5 -0
  425. package/lib/services/name-convention/name-convention-upper.service.d.ts +5 -0
  426. package/lib/services/name-convention/name-convention.service.d.ts +10 -0
  427. package/lib/services/ontimize/index.d.ts +3 -0
  428. package/lib/services/ontimize/o-preference-query-argument.adapter.d.ts +7 -0
  429. package/lib/services/ontimize/o-preference-response.adapter.d.ts +9 -0
  430. package/lib/services/ontimize/ontimize-base-service.class.d.ts +3 -3
  431. package/lib/services/ontimize/ontimize-ee.service.d.ts +1 -0
  432. package/lib/services/ontimize/ontimize-export-3xx.service.d.ts +3 -2
  433. package/lib/services/ontimize/ontimize-export.service.d.ts +2 -2
  434. package/lib/services/ontimize/ontimize-file.service.d.ts +3 -2
  435. package/lib/services/ontimize/ontimize-preferences.service.d.ts +16 -0
  436. package/lib/services/ontimize/ontimize-service-response.adapter.d.ts +6 -5
  437. package/lib/services/ontimize/ontimize.service.d.ts +2 -0
  438. package/lib/services/parser/o-service-response.parser.d.ts +11 -5
  439. package/lib/services/query-arguments/base-query-argument.adapter.d.ts +6 -0
  440. package/lib/services/query-arguments/base-query-argument.interface.d.ts +3 -0
  441. package/lib/services/query-arguments/index.d.ts +4 -0
  442. package/lib/services/query-arguments/jsonapi-query-arguments.adapter.d.ts +12 -0
  443. package/lib/services/query-arguments/ontimize-query-arguments.adapter.d.ts +8 -0
  444. package/lib/types/config.type.d.ts +3 -1
  445. package/lib/types/configure-service-args.type.d.ts +5 -5
  446. package/lib/types/index.d.ts +4 -0
  447. package/lib/types/json-query-parameter.type.d.ts +15 -0
  448. package/lib/types/preferences.type.d.ts +7 -0
  449. package/lib/types/query-params.type.d.ts +11 -0
  450. package/lib/types/service-configuration.type.d.ts +7 -0
  451. package/lib/types/service-request-param.type.d.ts +5 -5
  452. package/lib/types/service-type.type.d.ts +5 -0
  453. package/lib/util/codes.d.ts +6 -5
  454. package/lib/util/index.d.ts +1 -0
  455. package/lib/util/preference-mapping-util.d.ts +74 -0
  456. package/lib/util/util.d.ts +10 -2
  457. package/package.json +1 -1
@@ -34,8 +34,8 @@ export class OTableCellEditorRealComponent extends OTableCellEditorIntegerCompon
34
34
  return validators;
35
35
  }
36
36
  }
37
- OTableCellEditorRealComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableCellEditorRealComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
38
- OTableCellEditorRealComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OTableCellEditorRealComponent, selector: "o-table-cell-editor-real", viewQueries: [{ propertyName: "templateref", first: true, predicate: ["templateref"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #templateref let-cellvalue=\"cellvalue\" let-rowvalue=\"rowvalue\">\n <div class=\"o-table-cell-editor-real o-table-cell-editor\" [formGroup]=\"formGroup\"\n [matTooltip]=\"tooltip\"\n [matTooltipClass]=\"tooltipClass\"\n [matTooltipPosition]=\"tooltipPosition\"\n [matTooltipShowDelay]=\"tooltipShowDelay\"\n [matTooltipHideDelay]=\"tooltipHideDelay\">\n <mat-form-field cdkFocusInitial>\n\n <input #input matInput type=\"number\" [placeholder]=\"getPlaceholder()\" [formControl]=\"formControl\"\n [required]=\"orequired\" [min]=\"min\" [max]=\"max\" [step]=\"step\" [id]=\"cellEditorId\">\n\n <mat-error *oMatError=\"hasError('required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n <mat-error *oMatError=\"hasError('min')\">\n {{ 'FORM_VALIDATION.MIN_VALUE' | oTranslate }}: {{ getErrorValue('min', 'min') }}\n </mat-error>\n <mat-error *oMatError=\"hasError('max')\">\n {{ 'FORM_VALIDATION.MAX_VALUE' | oTranslate }}: {{ getErrorValue('max', 'max') }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ getErrorText(oError) }}\n </mat-error>\n </mat-form-field>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.OMatErrorDirective, selector: "[oMatError]", inputs: ["oMatError"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: i7.OTranslatePipe, name: "oTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
37
+ OTableCellEditorRealComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTableCellEditorRealComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
38
+ OTableCellEditorRealComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OTableCellEditorRealComponent, selector: "o-table-cell-editor-real", viewQueries: [{ propertyName: "templateref", first: true, predicate: ["templateref"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #templateref let-cellvalue=\"cellvalue\" let-rowvalue=\"rowvalue\">\n <div class=\"o-table-cell-editor-real o-table-cell-editor\" [formGroup]=\"formGroup\"\n [matTooltip]=\"tooltip\"\n [matTooltipClass]=\"tooltipClass\"\n [matTooltipPosition]=\"tooltipPosition\"\n [matTooltipShowDelay]=\"tooltipShowDelay\"\n [matTooltipHideDelay]=\"tooltipHideDelay\">\n <mat-form-field cdkFocusInitial>\n\n <input #input matInput type=\"number\" [placeholder]=\"getPlaceholder()\" [formControl]=\"formControl\"\n [required]=\"orequired\" [min]=\"min\" [max]=\"max\" [step]=\"step\" [id]=\"cellEditorId\">\n\n <mat-error *oMatError=\"hasError('required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n <mat-error *oMatError=\"hasError('min')\">\n {{ 'FORM_VALIDATION.MIN_VALUE' | oTranslate }}: {{ getErrorValue('min', 'min') }}\n </mat-error>\n <mat-error *oMatError=\"hasError('max')\">\n {{ 'FORM_VALIDATION.MAX_VALUE' | oTranslate }}: {{ getErrorValue('max', 'max') }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ getErrorText(oError) }}\n </mat-error>\n </mat-form-field>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.OMatErrorDirective, selector: "[oMatError]", inputs: ["oMatError"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: i7.OTranslatePipe, name: "oTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
39
39
  __decorate([
40
40
  NumberInputConverter(),
41
41
  __metadata("design:type", Number)
@@ -48,11 +48,11 @@ __decorate([
48
48
  NumberInputConverter(),
49
49
  __metadata("design:type", Number)
50
50
  ], OTableCellEditorRealComponent.prototype, "step", void 0);
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableCellEditorRealComponent, decorators: [{
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTableCellEditorRealComponent, decorators: [{
52
52
  type: Component,
53
53
  args: [{ selector: 'o-table-cell-editor-real', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #templateref let-cellvalue=\"cellvalue\" let-rowvalue=\"rowvalue\">\n <div class=\"o-table-cell-editor-real o-table-cell-editor\" [formGroup]=\"formGroup\"\n [matTooltip]=\"tooltip\"\n [matTooltipClass]=\"tooltipClass\"\n [matTooltipPosition]=\"tooltipPosition\"\n [matTooltipShowDelay]=\"tooltipShowDelay\"\n [matTooltipHideDelay]=\"tooltipHideDelay\">\n <mat-form-field cdkFocusInitial>\n\n <input #input matInput type=\"number\" [placeholder]=\"getPlaceholder()\" [formControl]=\"formControl\"\n [required]=\"orequired\" [min]=\"min\" [max]=\"max\" [step]=\"step\" [id]=\"cellEditorId\">\n\n <mat-error *oMatError=\"hasError('required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n <mat-error *oMatError=\"hasError('min')\">\n {{ 'FORM_VALIDATION.MIN_VALUE' | oTranslate }}: {{ getErrorValue('min', 'min') }}\n </mat-error>\n <mat-error *oMatError=\"hasError('max')\">\n {{ 'FORM_VALIDATION.MAX_VALUE' | oTranslate }}: {{ getErrorValue('max', 'max') }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ getErrorText(oError) }}\n </mat-error>\n </mat-form-field>\n </div>\n</ng-template>\n" }]
54
54
  }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { templateref: [{
55
55
  type: ViewChild,
56
56
  args: ['templateref', { read: TemplateRef, static: true }]
57
57
  }], min: [], max: [], step: [] } });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jZWxsLWVkaXRvci1yZWFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL2NvbHVtbi9jZWxsLWVkaXRvci9yZWFsL28tdGFibGUtY2VsbC1lZGl0b3ItcmVhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9jb2x1bW4vY2VsbC1lZGl0b3IvcmVhbC9vLXRhYmxlLWNlbGwtZWRpdG9yLXJlYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7Ozs7Ozs7O0FBUXBHLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxnQ0FBZ0M7SUFXakYsWUFBc0IsUUFBa0I7UUFDdEMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBREksYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUZ4QyxTQUFJLEdBQVcsSUFBSSxDQUFDO0lBSXBCLENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNwRCxPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDcEQsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE1BQU0sVUFBVSxHQUFrQixLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM1RCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzVCLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMzQztRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDNUIsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQzs7MkhBOUJVLDZCQUE2QjsrR0FBN0IsNkJBQTZCLHVKQUVOLFdBQVcsa0VDZi9DLDR1Q0EyQkE7QURWRTtJQUFDLG9CQUFvQixFQUFFOzswREFDWDtBQUNaO0lBQUMsb0JBQW9CLEVBQUU7OzBEQUNYO0FBQ1o7SUFBQyxvQkFBb0IsRUFBRTs7MkRBQ0g7NEZBVFQsNkJBQTZCO2tCQU56QyxTQUFTOytCQUNFLDBCQUEwQixtQkFFbkIsdUJBQXVCLENBQUMsTUFBTTsrRkFLdUIsV0FBVztzQkFBaEYsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRzdELEdBQUcsTUFFSCxHQUFHLE1BRUgsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdG9yLCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTnVtYmVySW5wdXRDb252ZXJ0ZXIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kZWNvcmF0b3JzL2lucHV0LWNvbnZlcnRlcic7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IE9UYWJsZUNlbGxFZGl0b3JJbnRlZ2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vaW50ZWdlci9vLXRhYmxlLWNlbGwtZWRpdG9yLWludGVnZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnby10YWJsZS1jZWxsLWVkaXRvci1yZWFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tdGFibGUtY2VsbC1lZGl0b3ItcmVhbC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuXG5leHBvcnQgY2xhc3MgT1RhYmxlQ2VsbEVkaXRvclJlYWxDb21wb25lbnQgZXh0ZW5kcyBPVGFibGVDZWxsRWRpdG9ySW50ZWdlckNvbXBvbmVudCB7XG5cbiAgQFZpZXdDaGlsZCgndGVtcGxhdGVyZWYnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSkgcHVibGljIHRlbXBsYXRlcmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBOdW1iZXJJbnB1dENvbnZlcnRlcigpXG4gIG1pbjogbnVtYmVyO1xuICBATnVtYmVySW5wdXRDb252ZXJ0ZXIoKVxuICBtYXg6IG51bWJlcjtcbiAgQE51bWJlcklucHV0Q29udmVydGVyKClcbiAgc3RlcDogbnVtYmVyID0gMC4wMTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IpO1xuICB9XG5cbiAgZ2V0Q2VsbERhdGEoKSB7XG4gICAgY29uc3QgY2VsbERhdGEgPSBzdXBlci5nZXRDZWxsRGF0YSgpO1xuICAgIGNvbnN0IGZsb2F0VmFsdWUgPSBwYXJzZUZsb2F0KGNlbGxEYXRhPy50b1N0cmluZygpKTtcbiAgICByZXR1cm4gaXNOYU4oZmxvYXRWYWx1ZSkgPyB1bmRlZmluZWQgOiBmbG9hdFZhbHVlO1xuICB9XG5cbiAgcmVzb2x2ZVZhbGlkYXRvcnMoKTogVmFsaWRhdG9yRm5bXSB7XG4gICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IHN1cGVyLnJlc29sdmVWYWxpZGF0b3JzKCk7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHRoaXMubWluKSkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluKHRoaXMubWluKSk7XG4gICAgfVxuICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLm1heCkpIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heCh0aGlzLm1heCkpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsaWRhdG9ycztcbiAgfVxuXG5cblxufVxuIiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZXJlZiBsZXQtY2VsbHZhbHVlPVwiY2VsbHZhbHVlXCIgbGV0LXJvd3ZhbHVlPVwicm93dmFsdWVcIj5cbiAgPGRpdiBjbGFzcz1cIm8tdGFibGUtY2VsbC1lZGl0b3ItcmVhbCBvLXRhYmxlLWNlbGwtZWRpdG9yXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxuICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXBcIlxuICAgIFttYXRUb29sdGlwQ2xhc3NdPVwidG9vbHRpcENsYXNzXCJcbiAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cInRvb2x0aXBQb3NpdGlvblwiXG4gICAgW21hdFRvb2x0aXBTaG93RGVsYXldPVwidG9vbHRpcFNob3dEZWxheVwiXG4gICAgW21hdFRvb2x0aXBIaWRlRGVsYXldPVwidG9vbHRpcEhpZGVEZWxheVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBjZGtGb2N1c0luaXRpYWw+XG5cbiAgICAgIDxpbnB1dCAjaW5wdXQgbWF0SW5wdXQgdHlwZT1cIm51bWJlclwiIFtwbGFjZWhvbGRlcl09XCJnZXRQbGFjZWhvbGRlcigpXCIgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cIm9yZXF1aXJlZFwiIFttaW5dPVwibWluXCIgW21heF09XCJtYXhcIiBbc3RlcF09XCJzdGVwXCIgW2lkXT1cImNlbGxFZGl0b3JJZFwiPlxuXG4gICAgICA8bWF0LWVycm9yICpvTWF0RXJyb3I9XCJoYXNFcnJvcigncmVxdWlyZWQnKVwiPlxuICAgICAgICB7eyAnRk9STV9WQUxJREFUSU9OLlJFUVVJUkVEJyB8IG9UcmFuc2xhdGUgfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPG1hdC1lcnJvciAqb01hdEVycm9yPVwiaGFzRXJyb3IoJ21pbicpXCI+XG4gICAgICAgIHt7ICdGT1JNX1ZBTElEQVRJT04uTUlOX1ZBTFVFJyB8IG9UcmFuc2xhdGUgfX06IHt7IGdldEVycm9yVmFsdWUoJ21pbicsICdtaW4nKSB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICA8bWF0LWVycm9yICpvTWF0RXJyb3I9XCJoYXNFcnJvcignbWF4JylcIj5cbiAgICAgICAge3sgJ0ZPUk1fVkFMSURBVElPTi5NQVhfVkFMVUUnIHwgb1RyYW5zbGF0ZSB9fToge3sgZ2V0RXJyb3JWYWx1ZSgnbWF4JywgJ21heCcpIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nRm9yPVwibGV0IG9FcnJvciBvZiBnZXRBY3RpdmVPRXJyb3JzKClcIj5cbiAgICAgICAge3sgZ2V0RXJyb3JUZXh0KG9FcnJvcikgfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jZWxsLWVkaXRvci1yZWFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL2NvbHVtbi9jZWxsLWVkaXRvci9yZWFsL28tdGFibGUtY2VsbC1lZGl0b3ItcmVhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9jb2x1bW4vY2VsbC1lZGl0b3IvcmVhbC9vLXRhYmxlLWNlbGwtZWRpdG9yLXJlYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7Ozs7Ozs7O0FBUXBHLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxnQ0FBZ0M7SUFXakYsWUFBc0IsUUFBa0I7UUFDdEMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBREksYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUZ4QyxTQUFJLEdBQVcsSUFBSSxDQUFDO0lBSXBCLENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNwRCxPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDcEQsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE1BQU0sVUFBVSxHQUFrQixLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM1RCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzVCLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMzQztRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDNUIsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQzs7MEhBOUJVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLHVKQUVOLFdBQVcsa0VDZi9DLDR1Q0EyQkE7QURWRTtJQUFDLG9CQUFvQixFQUFFOzswREFDWDtBQUNaO0lBQUMsb0JBQW9CLEVBQUU7OzBEQUNYO0FBQ1o7SUFBQyxvQkFBb0IsRUFBRTs7MkRBQ0g7MkZBVFQsNkJBQTZCO2tCQU56QyxTQUFTOytCQUNFLDBCQUEwQixtQkFFbkIsdUJBQXVCLENBQUMsTUFBTTsrRkFLdUIsV0FBVztzQkFBaEYsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRzdELEdBQUcsTUFFSCxHQUFHLE1BRUgsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdG9yLCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTnVtYmVySW5wdXRDb252ZXJ0ZXIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kZWNvcmF0b3JzL2lucHV0LWNvbnZlcnRlcic7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IE9UYWJsZUNlbGxFZGl0b3JJbnRlZ2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vaW50ZWdlci9vLXRhYmxlLWNlbGwtZWRpdG9yLWludGVnZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnby10YWJsZS1jZWxsLWVkaXRvci1yZWFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tdGFibGUtY2VsbC1lZGl0b3ItcmVhbC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuXG5leHBvcnQgY2xhc3MgT1RhYmxlQ2VsbEVkaXRvclJlYWxDb21wb25lbnQgZXh0ZW5kcyBPVGFibGVDZWxsRWRpdG9ySW50ZWdlckNvbXBvbmVudCB7XG5cbiAgQFZpZXdDaGlsZCgndGVtcGxhdGVyZWYnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSkgcHVibGljIHRlbXBsYXRlcmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBOdW1iZXJJbnB1dENvbnZlcnRlcigpXG4gIG1pbjogbnVtYmVyO1xuICBATnVtYmVySW5wdXRDb252ZXJ0ZXIoKVxuICBtYXg6IG51bWJlcjtcbiAgQE51bWJlcklucHV0Q29udmVydGVyKClcbiAgc3RlcDogbnVtYmVyID0gMC4wMTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IpO1xuICB9XG5cbiAgZ2V0Q2VsbERhdGEoKSB7XG4gICAgY29uc3QgY2VsbERhdGEgPSBzdXBlci5nZXRDZWxsRGF0YSgpO1xuICAgIGNvbnN0IGZsb2F0VmFsdWUgPSBwYXJzZUZsb2F0KGNlbGxEYXRhPy50b1N0cmluZygpKTtcbiAgICByZXR1cm4gaXNOYU4oZmxvYXRWYWx1ZSkgPyB1bmRlZmluZWQgOiBmbG9hdFZhbHVlO1xuICB9XG5cbiAgcmVzb2x2ZVZhbGlkYXRvcnMoKTogVmFsaWRhdG9yRm5bXSB7XG4gICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IHN1cGVyLnJlc29sdmVWYWxpZGF0b3JzKCk7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHRoaXMubWluKSkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluKHRoaXMubWluKSk7XG4gICAgfVxuICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLm1heCkpIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heCh0aGlzLm1heCkpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsaWRhdG9ycztcbiAgfVxuXG5cblxufVxuIiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZXJlZiBsZXQtY2VsbHZhbHVlPVwiY2VsbHZhbHVlXCIgbGV0LXJvd3ZhbHVlPVwicm93dmFsdWVcIj5cbiAgPGRpdiBjbGFzcz1cIm8tdGFibGUtY2VsbC1lZGl0b3ItcmVhbCBvLXRhYmxlLWNlbGwtZWRpdG9yXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxuICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXBcIlxuICAgIFttYXRUb29sdGlwQ2xhc3NdPVwidG9vbHRpcENsYXNzXCJcbiAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cInRvb2x0aXBQb3NpdGlvblwiXG4gICAgW21hdFRvb2x0aXBTaG93RGVsYXldPVwidG9vbHRpcFNob3dEZWxheVwiXG4gICAgW21hdFRvb2x0aXBIaWRlRGVsYXldPVwidG9vbHRpcEhpZGVEZWxheVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBjZGtGb2N1c0luaXRpYWw+XG5cbiAgICAgIDxpbnB1dCAjaW5wdXQgbWF0SW5wdXQgdHlwZT1cIm51bWJlclwiIFtwbGFjZWhvbGRlcl09XCJnZXRQbGFjZWhvbGRlcigpXCIgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cIm9yZXF1aXJlZFwiIFttaW5dPVwibWluXCIgW21heF09XCJtYXhcIiBbc3RlcF09XCJzdGVwXCIgW2lkXT1cImNlbGxFZGl0b3JJZFwiPlxuXG4gICAgICA8bWF0LWVycm9yICpvTWF0RXJyb3I9XCJoYXNFcnJvcigncmVxdWlyZWQnKVwiPlxuICAgICAgICB7eyAnRk9STV9WQUxJREFUSU9OLlJFUVVJUkVEJyB8IG9UcmFuc2xhdGUgfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPG1hdC1lcnJvciAqb01hdEVycm9yPVwiaGFzRXJyb3IoJ21pbicpXCI+XG4gICAgICAgIHt7ICdGT1JNX1ZBTElEQVRJT04uTUlOX1ZBTFVFJyB8IG9UcmFuc2xhdGUgfX06IHt7IGdldEVycm9yVmFsdWUoJ21pbicsICdtaW4nKSB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICA8bWF0LWVycm9yICpvTWF0RXJyb3I9XCJoYXNFcnJvcignbWF4JylcIj5cbiAgICAgICAge3sgJ0ZPUk1fVkFMSURBVElPTi5NQVhfVkFMVUUnIHwgb1RyYW5zbGF0ZSB9fToge3sgZ2V0RXJyb3JWYWx1ZSgnbWF4JywgJ21heCcpIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nRm9yPVwibGV0IG9FcnJvciBvZiBnZXRBY3RpdmVPRXJyb3JzKClcIj5cbiAgICAgICAge3sgZ2V0RXJyb3JUZXh0KG9FcnJvcikgfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -14,13 +14,13 @@ export class OTableCellEditorTextComponent extends OBaseTableCellEditor {
14
14
  this.injector = injector;
15
15
  }
16
16
  }
17
- OTableCellEditorTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableCellEditorTextComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
18
- OTableCellEditorTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OTableCellEditorTextComponent, selector: "o-table-cell-editor-text", viewQueries: [{ propertyName: "templateref", first: true, predicate: ["templateref"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #templateref let-cellvalue=\"cellvalue\" let-rowvalue=\"rowvalue\">\n <div class=\"o-table-cell-editor-text o-table-cell-editor\" [formGroup]=\"formGroup\"\n [matTooltip]=\"tooltip\"\n [matTooltipClass]=\"tooltipClass\"\n [matTooltipPosition]=\"tooltipPosition\"\n [matTooltipShowDelay]=\"tooltipShowDelay\"\n [matTooltipHideDelay]=\"tooltipHideDelay\">\n\n <mat-form-field cdkFocusInitial>\n <input #input matInput type=\"text\" [placeholder]=\"getPlaceholder()\" [formControl]=\"formControl\" [id]=\"cellEditorId\"\n [required]=\"orequired\">\n <mat-error *oMatError=\"hasError('required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n <mat-error *oMatError=\"hasError('minlength')\">\n {{ 'FORM_VALIDATION.MIN_LENGTH' | oTranslate }}: {{ getErrorValue('minlength', 'requiredLength') }}\n </mat-error>\n <mat-error *oMatError=\"hasError('maxlength')\">\n {{ 'FORM_VALIDATION.MAX_LENGTH' | oTranslate }}: {{ getErrorValue('maxlength', 'requiredLength') }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ getErrorText(oError) }}\n </mat-error>\n </mat-form-field>\n </div>\n</ng-template>\n", styles: [".o-table-cell-editor-text .mat-mdc-form-field{width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.OMatErrorDirective, selector: "[oMatError]", inputs: ["oMatError"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: i7.OTranslatePipe, name: "oTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableCellEditorTextComponent, decorators: [{
17
+ OTableCellEditorTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTableCellEditorTextComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
18
+ OTableCellEditorTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OTableCellEditorTextComponent, selector: "o-table-cell-editor-text", viewQueries: [{ propertyName: "templateref", first: true, predicate: ["templateref"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #templateref let-cellvalue=\"cellvalue\" let-rowvalue=\"rowvalue\">\n <div class=\"o-table-cell-editor-text o-table-cell-editor\" [formGroup]=\"formGroup\"\n [matTooltip]=\"tooltip\"\n [matTooltipClass]=\"tooltipClass\"\n [matTooltipPosition]=\"tooltipPosition\"\n [matTooltipShowDelay]=\"tooltipShowDelay\"\n [matTooltipHideDelay]=\"tooltipHideDelay\">\n\n <mat-form-field cdkFocusInitial>\n <input #input matInput type=\"text\" [placeholder]=\"getPlaceholder()\" [formControl]=\"formControl\" [id]=\"cellEditorId\"\n [required]=\"orequired\">\n <mat-error *oMatError=\"hasError('required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n <mat-error *oMatError=\"hasError('minlength')\">\n {{ 'FORM_VALIDATION.MIN_LENGTH' | oTranslate }}: {{ getErrorValue('minlength', 'requiredLength') }}\n </mat-error>\n <mat-error *oMatError=\"hasError('maxlength')\">\n {{ 'FORM_VALIDATION.MAX_LENGTH' | oTranslate }}: {{ getErrorValue('maxlength', 'requiredLength') }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ getErrorText(oError) }}\n </mat-error>\n </mat-form-field>\n </div>\n</ng-template>\n", styles: [".o-table-cell-editor-text .mat-mdc-form-field{width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.OMatErrorDirective, selector: "[oMatError]", inputs: ["oMatError"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: i7.OTranslatePipe, name: "oTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTableCellEditorTextComponent, decorators: [{
20
20
  type: Component,
21
21
  args: [{ selector: 'o-table-cell-editor-text', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-template #templateref let-cellvalue=\"cellvalue\" let-rowvalue=\"rowvalue\">\n <div class=\"o-table-cell-editor-text o-table-cell-editor\" [formGroup]=\"formGroup\"\n [matTooltip]=\"tooltip\"\n [matTooltipClass]=\"tooltipClass\"\n [matTooltipPosition]=\"tooltipPosition\"\n [matTooltipShowDelay]=\"tooltipShowDelay\"\n [matTooltipHideDelay]=\"tooltipHideDelay\">\n\n <mat-form-field cdkFocusInitial>\n <input #input matInput type=\"text\" [placeholder]=\"getPlaceholder()\" [formControl]=\"formControl\" [id]=\"cellEditorId\"\n [required]=\"orequired\">\n <mat-error *oMatError=\"hasError('required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n <mat-error *oMatError=\"hasError('minlength')\">\n {{ 'FORM_VALIDATION.MIN_LENGTH' | oTranslate }}: {{ getErrorValue('minlength', 'requiredLength') }}\n </mat-error>\n <mat-error *oMatError=\"hasError('maxlength')\">\n {{ 'FORM_VALIDATION.MAX_LENGTH' | oTranslate }}: {{ getErrorValue('maxlength', 'requiredLength') }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ getErrorText(oError) }}\n </mat-error>\n </mat-form-field>\n </div>\n</ng-template>\n", styles: [".o-table-cell-editor-text .mat-mdc-form-field{width:100%}\n"] }]
22
22
  }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { templateref: [{
23
23
  type: ViewChild,
24
24
  args: ['templateref', { read: TemplateRef, static: true }]
25
25
  }] } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jZWxsLWVkaXRvci10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL2NvbHVtbi9jZWxsLWVkaXRvci90ZXh0L28tdGFibGUtY2VsbC1lZGl0b3ItdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9jb2x1bW4vY2VsbC1lZGl0b3IvdGV4dC9vLXRhYmxlLWNlbGwtZWRpdG9yLXRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4SCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3JCLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7OztBQVUzQyxNQUFNLE9BQU8sNkJBQThCLFNBQVEsb0JBQW9CO0lBSXJFLFlBQXNCLFFBQWtCO1FBQ3RDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQURJLGFBQVEsR0FBUixRQUFRLENBQVU7SUFFeEMsQ0FBQzs7MkhBTlUsNkJBQTZCOytHQUE3Qiw2QkFBNkIsdUpBRU4sV0FBVyxrRUNoQi9DLDR1Q0EwQkE7NEZEWmEsNkJBQTZCO2tCQVJ6QyxTQUFTOytCQUNFLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTsrRkFLaUMsV0FBVztzQkFBaEYsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3RvciwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgT0Jhc2VUYWJsZUNlbGxFZGl0b3Jcbn0gZnJvbSAnLi4vby1iYXNlLXRhYmxlLWNlbGwtZWRpdG9yLmNsYXNzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnby10YWJsZS1jZWxsLWVkaXRvci10ZXh0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tdGFibGUtY2VsbC1lZGl0b3ItdGV4dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL28tdGFibGUtY2VsbC1lZGl0b3ItdGV4dC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcblxuZXhwb3J0IGNsYXNzIE9UYWJsZUNlbGxFZGl0b3JUZXh0Q29tcG9uZW50IGV4dGVuZHMgT0Jhc2VUYWJsZUNlbGxFZGl0b3Ige1xuXG4gIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlcmVmJywgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyB0ZW1wbGF0ZXJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IpO1xuICB9XG5cblxufVxuIiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZXJlZiBsZXQtY2VsbHZhbHVlPVwiY2VsbHZhbHVlXCIgbGV0LXJvd3ZhbHVlPVwicm93dmFsdWVcIj5cbiAgPGRpdiBjbGFzcz1cIm8tdGFibGUtY2VsbC1lZGl0b3ItdGV4dCBvLXRhYmxlLWNlbGwtZWRpdG9yXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxuICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXBcIlxuICAgIFttYXRUb29sdGlwQ2xhc3NdPVwidG9vbHRpcENsYXNzXCJcbiAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cInRvb2x0aXBQb3NpdGlvblwiXG4gICAgW21hdFRvb2x0aXBTaG93RGVsYXldPVwidG9vbHRpcFNob3dEZWxheVwiXG4gICAgW21hdFRvb2x0aXBIaWRlRGVsYXldPVwidG9vbHRpcEhpZGVEZWxheVwiPlxuXG4gICAgPG1hdC1mb3JtLWZpZWxkIGNka0ZvY3VzSW5pdGlhbD5cbiAgICAgIDxpbnB1dCAjaW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbcGxhY2Vob2xkZXJdPVwiZ2V0UGxhY2Vob2xkZXIoKVwiIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiIFtpZF09XCJjZWxsRWRpdG9ySWRcIlxuICAgICAgICBbcmVxdWlyZWRdPVwib3JlcXVpcmVkXCI+XG4gICAgICA8bWF0LWVycm9yICpvTWF0RXJyb3I9XCJoYXNFcnJvcigncmVxdWlyZWQnKVwiPlxuICAgICAgICB7eyAnRk9STV9WQUxJREFUSU9OLlJFUVVJUkVEJyB8IG9UcmFuc2xhdGUgfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPG1hdC1lcnJvciAqb01hdEVycm9yPVwiaGFzRXJyb3IoJ21pbmxlbmd0aCcpXCI+XG4gICAgICAgIHt7ICdGT1JNX1ZBTElEQVRJT04uTUlOX0xFTkdUSCcgfCBvVHJhbnNsYXRlIH19OiB7eyBnZXRFcnJvclZhbHVlKCdtaW5sZW5ndGgnLCAncmVxdWlyZWRMZW5ndGgnKSB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICA8bWF0LWVycm9yICpvTWF0RXJyb3I9XCJoYXNFcnJvcignbWF4bGVuZ3RoJylcIj5cbiAgICAgICAge3sgJ0ZPUk1fVkFMSURBVElPTi5NQVhfTEVOR1RIJyB8IG9UcmFuc2xhdGUgfX06IHt7IGdldEVycm9yVmFsdWUoJ21heGxlbmd0aCcsICdyZXF1aXJlZExlbmd0aCcpIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nRm9yPVwibGV0IG9FcnJvciBvZiBnZXRBY3RpdmVPRXJyb3JzKClcIj5cbiAgICAgICAge3sgZ2V0RXJyb3JUZXh0KG9FcnJvcikgfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jZWxsLWVkaXRvci10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL2NvbHVtbi9jZWxsLWVkaXRvci90ZXh0L28tdGFibGUtY2VsbC1lZGl0b3ItdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9jb2x1bW4vY2VsbC1lZGl0b3IvdGV4dC9vLXRhYmxlLWNlbGwtZWRpdG9yLXRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4SCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3JCLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7OztBQVUzQyxNQUFNLE9BQU8sNkJBQThCLFNBQVEsb0JBQW9CO0lBSXJFLFlBQXNCLFFBQWtCO1FBQ3RDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQURJLGFBQVEsR0FBUixRQUFRLENBQVU7SUFFeEMsQ0FBQzs7MEhBTlUsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsdUpBRU4sV0FBVyxrRUNoQi9DLDR1Q0EwQkE7MkZEWmEsNkJBQTZCO2tCQVJ6QyxTQUFTOytCQUNFLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTsrRkFLaUMsV0FBVztzQkFBaEYsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3RvciwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgT0Jhc2VUYWJsZUNlbGxFZGl0b3Jcbn0gZnJvbSAnLi4vby1iYXNlLXRhYmxlLWNlbGwtZWRpdG9yLmNsYXNzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnby10YWJsZS1jZWxsLWVkaXRvci10ZXh0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tdGFibGUtY2VsbC1lZGl0b3ItdGV4dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL28tdGFibGUtY2VsbC1lZGl0b3ItdGV4dC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcblxuZXhwb3J0IGNsYXNzIE9UYWJsZUNlbGxFZGl0b3JUZXh0Q29tcG9uZW50IGV4dGVuZHMgT0Jhc2VUYWJsZUNlbGxFZGl0b3Ige1xuXG4gIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlcmVmJywgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyB0ZW1wbGF0ZXJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IpO1xuICB9XG5cblxufVxuIiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZXJlZiBsZXQtY2VsbHZhbHVlPVwiY2VsbHZhbHVlXCIgbGV0LXJvd3ZhbHVlPVwicm93dmFsdWVcIj5cbiAgPGRpdiBjbGFzcz1cIm8tdGFibGUtY2VsbC1lZGl0b3ItdGV4dCBvLXRhYmxlLWNlbGwtZWRpdG9yXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxuICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXBcIlxuICAgIFttYXRUb29sdGlwQ2xhc3NdPVwidG9vbHRpcENsYXNzXCJcbiAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cInRvb2x0aXBQb3NpdGlvblwiXG4gICAgW21hdFRvb2x0aXBTaG93RGVsYXldPVwidG9vbHRpcFNob3dEZWxheVwiXG4gICAgW21hdFRvb2x0aXBIaWRlRGVsYXldPVwidG9vbHRpcEhpZGVEZWxheVwiPlxuXG4gICAgPG1hdC1mb3JtLWZpZWxkIGNka0ZvY3VzSW5pdGlhbD5cbiAgICAgIDxpbnB1dCAjaW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbcGxhY2Vob2xkZXJdPVwiZ2V0UGxhY2Vob2xkZXIoKVwiIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiIFtpZF09XCJjZWxsRWRpdG9ySWRcIlxuICAgICAgICBbcmVxdWlyZWRdPVwib3JlcXVpcmVkXCI+XG4gICAgICA8bWF0LWVycm9yICpvTWF0RXJyb3I9XCJoYXNFcnJvcigncmVxdWlyZWQnKVwiPlxuICAgICAgICB7eyAnRk9STV9WQUxJREFUSU9OLlJFUVVJUkVEJyB8IG9UcmFuc2xhdGUgfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPG1hdC1lcnJvciAqb01hdEVycm9yPVwiaGFzRXJyb3IoJ21pbmxlbmd0aCcpXCI+XG4gICAgICAgIHt7ICdGT1JNX1ZBTElEQVRJT04uTUlOX0xFTkdUSCcgfCBvVHJhbnNsYXRlIH19OiB7eyBnZXRFcnJvclZhbHVlKCdtaW5sZW5ndGgnLCAncmVxdWlyZWRMZW5ndGgnKSB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICA8bWF0LWVycm9yICpvTWF0RXJyb3I9XCJoYXNFcnJvcignbWF4bGVuZ3RoJylcIj5cbiAgICAgICAge3sgJ0ZPUk1fVkFMSURBVElPTi5NQVhfTEVOR1RIJyB8IG9UcmFuc2xhdGUgfX06IHt7IGdldEVycm9yVmFsdWUoJ21heGxlbmd0aCcsICdyZXF1aXJlZExlbmd0aCcpIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nRm9yPVwibGV0IG9FcnJvciBvZiBnZXRBY3RpdmVPRXJyb3JzKClcIj5cbiAgICAgICAge3sgZ2V0RXJyb3JUZXh0KG9FcnJvcikgfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -342,15 +342,15 @@ export class OTableCellEditorTimeComponent extends OBaseTableCellEditor {
342
342
  }
343
343
  }
344
344
  }
345
- OTableCellEditorTimeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableCellEditorTimeComponent, deps: [{ token: i0.Injector }, { token: i1.DateAdapter }], target: i0.ɵɵFactoryTarget.Component });
346
- OTableCellEditorTimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OTableCellEditorTimeComponent, selector: "o-table-cell-editor-time", inputs: { oDateFormat: ["date-format", "oDateFormat"], oDateLocale: ["date-locale", "oDateLocale"], oDateStartView: ["date-start-view", "oDateStartView"], oMinDate: ["date-min", "oMinDate"], oMaxDate: ["date-max", "oMaxDate"], oDateTouchUi: ["date-touch-ui", "oDateTouchUi"], oDateStartAt: ["date-start-at", "oDateStartAt"], oHourFormat: ["hour-format", "oHourFormat"], oHourMin: ["hour-min", "oHourMin"], oHourMax: ["hour-max", "oHourMax"], oHourPlaceholder: ["hour-placeholder", "oHourPlaceholder"], oDatePlaceholder: ["date-placeholder", "oDatePlaceholder"] }, host: { listeners: { "document:keydown": "onDocumentKeydown($event)" } }, providers: [
345
+ OTableCellEditorTimeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTableCellEditorTimeComponent, deps: [{ token: i0.Injector }, { token: i1.DateAdapter }], target: i0.ɵɵFactoryTarget.Component });
346
+ OTableCellEditorTimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OTableCellEditorTimeComponent, selector: "o-table-cell-editor-time", inputs: { oDateFormat: ["date-format", "oDateFormat"], oDateLocale: ["date-locale", "oDateLocale"], oDateStartView: ["date-start-view", "oDateStartView"], oMinDate: ["date-min", "oMinDate"], oMaxDate: ["date-max", "oMaxDate"], oDateTouchUi: ["date-touch-ui", "oDateTouchUi"], oDateStartAt: ["date-start-at", "oDateStartAt"], oHourFormat: ["hour-format", "oHourFormat"], oHourMin: ["hour-min", "oHourMin"], oHourMax: ["hour-max", "oHourMax"], oHourPlaceholder: ["hour-placeholder", "oHourPlaceholder"], oDatePlaceholder: ["date-placeholder", "oDatePlaceholder"] }, host: { listeners: { "document:keydown": "onDocumentKeydown($event)" } }, providers: [
347
347
  { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] }
348
348
  ], viewQueries: [{ propertyName: "templateref", first: true, predicate: ["templateref"], descendants: true, read: TemplateRef, static: true }, { propertyName: "dateInput", first: true, predicate: ["dateInput"], descendants: true }, { propertyName: "hourInput", first: true, predicate: ["hourInput"], descendants: true }, { propertyName: "picker", first: true, predicate: ["picker"], descendants: true }, { propertyName: "datepickerInput", first: true, predicate: MatDatepickerInput, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #templateref let-cellvalue=\"cellvalue\" let-rowvalue=\"rowvalue\">\n <div [formGroup]=\"formGroup\" class=\"o-table-cell-editor-time o-table-cell-editor\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\"\n fxLayoutGap=\"8px\"\n [matTooltip]=\"tooltip\"\n [matTooltipClass]=\"tooltipClass\"\n [matTooltipPosition]=\"tooltipPosition\"\n [matTooltipShowDelay]=\"tooltipShowDelay\"\n [matTooltipHideDelay]=\"tooltipHideDelay\">\n <mat-form-field>\n\n <input #dateInput matInput [placeholder]=\"getPlaceholderDate()\" [formControl]=\"formControlDate\"\n [required]=\"orequired\" [matDatepicker]=\"d\" (dateChange)=\"onDateChange($event)\" [min]=\"minDate\" [max]=\"maxDate\"\n (focus)=\"enabledCommitOnTabPress = false\">\n\n <mat-datepicker #d [startView]=\"oStartView\" [startAt]=\"oDateStartAt\" [touchUi]=\"oDateTouchUi\"\n (closed)=\"onDatepickerClosed()\">\n </mat-datepicker>\n\n <span class=\"icon-btn\" (click)=\"openDatepicker(d)\" matSuffix>\n <mat-icon svgIcon=\"ontimize:today\"></mat-icon>\n </span>\n\n <mat-error *oMatError=\"hasErrorDate('required') || hasErrorHour('required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n <mat-error *oMatError=\"hasErrorDate('matDatepickerParse')\">\n {{ 'FORM_VALIDATION.DATE_PARSE' | oTranslate }} {{ oHourFormat }}\n </mat-error>\n <mat-error *oMatError=\"hasErrorDate('matDatepickerFilter')\">\n {{ 'FORM_VALIDATION.DATE_FILTER' | oTranslate }}\n </mat-error>\n <mat-error *oMatError=\"hasErrorDate('matDatepickerMin')\">\n {{ 'FORM_VALIDATION.DATE_MIN' | oTranslate }} {{ minDateString }}\n </mat-error>\n <mat-error *oMatError=\"hasErrorDate('matDatepickerMax')\">\n {{ 'FORM_VALIDATION.DATE_MAX' | oTranslate }} {{ maxDateString }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ getErrorText(oError) }}\n </mat-error>\n\n </mat-form-field>\n\n <span class=\"separator\">&ndash;</span>\n\n <mat-form-field>\n\n <input #hourInput matInput [ngxTimepicker]=\"picker\" [placeholder]=\"getPlaceholderHour()\"\n [formControl]=\"formControlHour\" [required]=\"orequired\" (change)=\"onHourChange($event)\" [min]=\"oHourMin\"\n [max]=\"oHourMax\" (keydown)=\"onKeyDown($event)\" [disableClick]=\"true\" [format]=\"oHourFormat\"\n (blur)=\"enabledCommitOnTabPress = true\">\n\n <button type=\"button\" matSuffix mat-icon-button (click)=\"open($event)\">\n <mat-icon ngxMaterialTimepickerToggleIcon svgIcon=\"ontimize:clock\"></mat-icon>\n </button>\n\n <mat-error *oMatError=\"hasErrorHour('invalidFormatHour')\">\n {{ 'FORM_VALIDATION.HOUR_FORMAT' | oTranslate }} {{ formatString }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ oError.text | oTranslate }}\n </mat-error>\n\n </mat-form-field>\n\n <ngx-material-timepicker #picker (timeSet)=\"onHourChange($event)\" [confirmBtnTmpl]=\"confirmBtn\"\n [cancelBtnTmpl]=\"cancelBtn\" (closed)=\"onTimepickerClosed()\"></ngx-material-timepicker>\n <ng-template #confirmBtn>\n <button mat-stroked-button type=\"button\"><span>{{'OK' | oTranslate}}</span></button>\n </ng-template>\n <ng-template #cancelBtn>\n <button mat-stroked-button type=\"button\"><span>{{'CANCEL' | oTranslate}}</span></button>\n </ng-template>\n </div>\n\n</ng-template>", styles: [".separator{cursor:default}.mat-mdc-form-field:not(.custom-width) .mat-mdc-form-field-infix{width:84px}button.mat-mdc-outlined-button{margin:0 6px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.OMatErrorDirective, selector: "[oMatError]", inputs: ["oMatError"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i7.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i10.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i11.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i12.NgxMaterialTimepickerComponent, selector: "ngx-material-timepicker", inputs: ["ESC", "hoursOnly", "ngxMaterialTimepickerTheme", "format", "minutesGap", "cancelBtnTmpl", "editableHintTmpl", "confirmBtnTmpl", "enableKeyboardInput", "preventOverlayClick", "disableAnimation", "appendToInput", "defaultTime", "timepickerClass", "theme"], outputs: ["timeSet", "opened", "closed", "hourSelected", "timeChanged"] }, { kind: "directive", type: i12.TimepickerDirective, selector: "[ngxTimepicker]", inputs: ["format", "value", "min", "max", "ngxTimepicker", "disabled", "disableClick"] }, { kind: "directive", type: i12.NgxMaterialTimepickerToggleIconDirective, selector: "[ngxMaterialTimepickerToggleIcon]" }, { kind: "pipe", type: i13.OTranslatePipe, name: "oTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
349
349
  __decorate([
350
350
  BooleanInputConverter(),
351
351
  __metadata("design:type", Boolean)
352
352
  ], OTableCellEditorTimeComponent.prototype, "oDateTouchUi", void 0);
353
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableCellEditorTimeComponent, decorators: [{
353
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTableCellEditorTimeComponent, decorators: [{
354
354
  type: Component,
355
355
  args: [{ selector: 'o-table-cell-editor-time', inputs: DEFAULT_INPUTS_O_TABLE_CELL_EDITOR_TIME, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
356
356
  { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] }
@@ -374,4 +374,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
374
374
  type: HostListener,
375
375
  args: ['document:keydown', ['$event']]
376
376
  }] } });
377
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jZWxsLWVkaXRvci10aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL2NvbHVtbi9jZWxsLWVkaXRvci90aW1lL28tdGFibGUtY2VsbC1lZGl0b3ItdGltZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9jb2x1bW4vY2VsbC1lZGl0b3IvdGltZS9vLXRhYmxlLWNlbGwtZWRpdG9yLXRpbWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osUUFBUSxFQUVSLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEUsT0FBTyxFQUFpQixrQkFBa0IsRUFBMkIsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIs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QyxDQUFDLENBQUMsRUFBRTtZQUNoQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDOzsySEF6WVUsNkJBQTZCOytHQUE3Qiw2QkFBNkIsaXJCQUw3QjtRQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUU7S0FDL0UsaUhBS2lDLFdBQVcsa1ZBYWxDLGtCQUFrQix1RUNwRS9CLG05R0EyRWM7QURFWjtJQUFDLHFCQUFxQixFQUFFOzttRUFDSzs0RkF6QmxCLDZCQUE2QjtrQkFaekMsU0FBUzsrQkFDRSwwQkFBMEIsVUFHNUIsdUNBQXVDLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUU7cUJBQy9FO3lIQUtxRSxXQUFXO3NCQUFoRixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFHbkQsU0FBUztzQkFEbEIsU0FBUzt1QkFBQyxXQUFXO2dCQUlaLFNBQVM7c0JBRGxCLFNBQVM7dUJBQUMsV0FBVztnQkFJZixNQUFNO3NCQURaLFNBQVM7dUJBQUMsUUFBUTtnQkFNWixlQUFlO3NCQURyQixTQUFTO3VCQUFDLGtCQUFrQjtnQkFVdEIsWUFBWSxNQW9CbkIsaUJBQWlCO3NCQURoQixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3RvcixcbiAgT25Jbml0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNb21lbnREYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyJztcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBNQVRfREFURV9MT0NBTEUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXIsIE1hdERhdGVwaWNrZXJJbnB1dCwgTWF0RGF0ZXBpY2tlcklucHV0RXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IE5neE1hdGVyaWFsVGltZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJ25neC1tYXRlcmlhbC10aW1lcGlja2VyJztcblxuaW1wb3J0IHsgQm9vbGVhbklucHV0Q29udmVydGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZGVjb3JhdG9ycy9pbnB1dC1jb252ZXJ0ZXInO1xuaW1wb3J0IHsgTW9tZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzL21vbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1WYWx1ZU9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi90eXBlcy9mb3JtLXZhbHVlLW9wdGlvbnMudHlwZSc7XG5pbXBvcnQgeyBDb2RlcyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWwvY29kZXMnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBPQmFzZVRhYmxlQ2VsbEVkaXRvciB9IGZyb20gJy4uL28tYmFzZS10YWJsZS1jZWxsLWVkaXRvci5jbGFzcyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0lOUFVUU19PX1RBQkxFX0NFTExfRURJVE9SX1RJTUUgPSBbXG4gICdvRGF0ZUZvcm1hdDogZGF0ZS1mb3JtYXQnLFxuICAnb0RhdGVMb2NhbGU6IGRhdGUtbG9jYWxlJyxcbiAgJ29EYXRlU3RhcnRWaWV3OiBkYXRlLXN0YXJ0LXZpZXcnLFxuICAnb01pbkRhdGU6IGRhdGUtbWluJyxcbiAgJ29NYXhEYXRlOiBkYXRlLW1heCcsXG4gICdvRGF0ZVRvdWNoVWk6IGRhdGUtdG91Y2gtdWknLFxuICAnb0RhdGVTdGFydEF0OiBkYXRlLXN0YXJ0LWF0JyxcbiAgJ29Ib3VyRm9ybWF0OiBob3VyLWZvcm1hdCcsXG4gICdvSG91ck1pbjogaG91ci1taW4nLFxuICAnb0hvdXJNYXg6IGhvdXItbWF4JyxcbiAgJ29Ib3VyUGxhY2Vob2xkZXI6IGhvdXItcGxhY2Vob2xkZXInLFxuICAnb0RhdGVQbGFjZWhvbGRlcjogZGF0ZS1wbGFjZWhvbGRlcidcbl07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ28tdGFibGUtY2VsbC1lZGl0b3ItdGltZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9vLXRhYmxlLWNlbGwtZWRpdG9yLXRpbWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vLXRhYmxlLWNlbGwtZWRpdG9yLXRpbWUuY29tcG9uZW50LnNjc3MnXSxcbiAgaW5wdXRzOiBERUZBVUxUX0lOUFVUU19PX1RBQkxFX0NFTExfRURJVE9SX1RJTUUsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IERhdGVBZGFwdGVyLCB1c2VDbGFzczogTW9tZW50RGF0ZUFkYXB0ZXIsIGRlcHM6IFtNQVRfREFURV9MT0NBTEVdIH1cbiAgXSxcbn0pXG5cbmV4cG9ydCBjbGFzcyBPVGFibGVDZWxsRWRpdG9yVGltZUNvbXBvbmVudCBleHRlbmRzIE9CYXNlVGFibGVDZWxsRWRpdG9yIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdDaGVja2VkIHtcblxuICBAVmlld0NoaWxkKCd0ZW1wbGF0ZXJlZicsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgdGVtcGxhdGVyZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQFZpZXdDaGlsZCgnZGF0ZUlucHV0JylcbiAgcHJvdGVjdGVkIGRhdGVJbnB1dDogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCdob3VySW5wdXQnKVxuICBwcm90ZWN0ZWQgaG91cklucHV0OiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ3BpY2tlcicpXG4gIHB1YmxpYyBwaWNrZXI6IE5neE1hdGVyaWFsVGltZXBpY2tlckNvbXBvbmVudDtcblxuICBvU3RhcnRWaWV3OiAnbW9udGgnIHwgJ3llYXInID0gJ21vbnRoJztcblxuICBAVmlld0NoaWxkKE1hdERhdGVwaWNrZXJJbnB1dClcbiAgcHVibGljIGRhdGVwaWNrZXJJbnB1dDogTWF0RGF0ZXBpY2tlcklucHV0PERhdGU+O1xuXG4gIGZvcm1Db250cm9sSG91cjogVW50eXBlZEZvcm1Db250cm9sO1xuICBmb3JtQ29udHJvbERhdGU6IFVudHlwZWRGb3JtQ29udHJvbDtcblxuICBwdWJsaWMgb0RhdGVGb3JtYXQ6IHN0cmluZyA9ICdMJztcbiAgcHVibGljIG9Ib3VyTWF4OiBzdHJpbmc7XG4gIHB1YmxpYyBvSG91ck1pbjogc3RyaW5nO1xuICBAQm9vbGVhbklucHV0Q29udmVydGVyKClcbiAgcHVibGljIG9EYXRlVG91Y2hVaTogYm9vbGVhbjtcbiAgcHVibGljIG9EYXRlU3RhcnRBdDogc3RyaW5nO1xuXG4gIHByaXZhdGUgX29EYXRlTG9jYWxlO1xuICBwcm90ZWN0ZWQgb0hvdXJQbGFjZWhvbGRlcjogc3RyaW5nO1xuICBwcm90ZWN0ZWQgb0RhdGVQbGFjZWhvbGRlcjogc3RyaW5nO1xuICBwdWJsaWMgb0hvdXJGb3JtYXQ6IG51bWJlciA9IENvZGVzLlRXRU5UWV9GT1VSX0hPVVJfRk9STUFUO1xuICBwcm90ZWN0ZWQgb25LZXlib2FyZElucHV0RG9uZSA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgb01pbkRhdGU6IHN0cmluZztcbiAgcHJvdGVjdGVkIG9NYXhEYXRlOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfbWluRGF0ZVN0cmluZzogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX21heERhdGVTdHJpbmc6IHN0cmluZztcbiAgcHJvdGVjdGVkIGRhdGVwaWNrZXI6IE1hdERhdGVwaWNrZXI8RGF0ZT47XG4gIHByaXZhdGUgbW9tZW50U3J2OiBNb21lbnRTZXJ2aWNlO1xuXG4gIC8vIG9ubHkgdHJ1ZSB3aGVuIGhvdXIgaW5wdXQgaXMgZm9jdXNlZFxuICBwdWJsaWMgZW5hYmxlZENvbW1pdE9uVGFiUHJlc3M6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJvdGVjdGVkIGFjdGl2ZUtleXM6IG9iamVjdCA9IHt9O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxuICBvbkRvY3VtZW50S2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMuaGFuZGxlS2V5ZG93bihldmVudCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgYWRhcHRlcjogRGF0ZUFkYXB0ZXI8YW55PlxuICApIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgdGhpcy5tb21lbnRTcnYgPSB0aGlzLmluamVjdG9yLmdldChNb21lbnRTZXJ2aWNlKTtcbiAgfVxuXG4gIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgIHRoaXMuY3JlYXRlSW50ZXJuYWxGb3JtQ29udHJvbCgpO1xuICAgIGlmICghdGhpcy5fb0RhdGVMb2NhbGUpIHtcbiAgICAgIHRoaXMub0RhdGVMb2NhbGUgPSB0aGlzLm1vbWVudFNydi5nZXRMb2NhbGUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vTWluRGF0ZSkge1xuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMub01pbkRhdGUpO1xuICAgICAgY29uc3QgbW9tZW50RCA9IG1vbWVudChkYXRlKTtcbiAgICAgIGlmIChtb21lbnRELmlzVmFsaWQoKSkge1xuICAgICAgICB0aGlzLm1pbkRhdGVTdHJpbmcgPSBtb21lbnRELmZvcm1hdCh0aGlzLm9EYXRlRm9ybWF0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5vTWF4RGF0ZSkge1xuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMub01heERhdGUpO1xuICAgICAgY29uc3QgbW9tZW50RCA9IG1vbWVudChkYXRlKTtcbiAgICAgIGlmIChtb21lbnRELmlzVmFsaWQoKSkge1xuICAgICAgICB0aGlzLm1heERhdGVTdHJpbmcgPSBtb21lbnRELmZvcm1hdCh0aGlzLm9EYXRlRm9ybWF0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjcmVhdGVJbnRlcm5hbEZvcm1Db250cm9sKCkge1xuICAgIGlmICghdGhpcy5mb3JtQ29udHJvbERhdGUpIHtcbiAgICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSB0aGlzLnJlc29sdmVWYWxpZGF0b3JzKCk7XG4gICAgICBjb25zdCBjZmcgPSB7XG4gICAgICAgIHZhbHVlOiB1bmRlZmluZWQsXG4gICAgICAgIGRpc2FibGVkOiAhdGhpcy5lbmFibGVkXG4gICAgICB9O1xuICAgICAgdGhpcy5mb3JtQ29udHJvbERhdGUgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKGNmZywgdmFsaWRhdG9ycyk7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKCdkYXRlSW5wdXQnLCB0aGlzLmZvcm1Db250cm9sRGF0ZSk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmZvcm1Db250cm9sSG91cikge1xuICAgICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IHRoaXMucmVzb2x2ZVZhbGlkYXRvcnMoKTtcbiAgICAgIGNvbnN0IGNmZyA9IHtcbiAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgZGlzYWJsZWQ6ICF0aGlzLmVuYWJsZWRcbiAgICAgIH07XG4gICAgICB0aGlzLmZvcm1Db250cm9sSG91ciA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woY2ZnLCB2YWxpZGF0b3JzKTtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woJ2hvdXJJbnB1dCcsIHRoaXMuZm9ybUNvbnRyb2xIb3VyKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMubW9kaWZ5UGlja2VyTWV0aG9kcygpO1xuICB9XG5cbiAgc2V0VGltZShldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5waWNrZXIudXBkYXRlVGltZSh0aGlzLmZvcm1Db250cm9sSG91ci52YWx1ZSk7XG4gIH1cblxuICBvbkRhdGVDaGFuZ2UoZXZlbnQ6IE1hdERhdGVwaWNrZXJJbnB1dEV2ZW50PGFueT4pIHtcbiAgICBjb25zdCBpc1ZhbGlkID0gZXZlbnQudmFsdWUgJiYgZXZlbnQudmFsdWUuaXNWYWxpZCAmJiBldmVudC52YWx1ZS5pc1ZhbGlkKCk7XG4gICAgY29uc3QgdmFsID0gaXNWYWxpZCA/IGV2ZW50LnZhbHVlLnZhbHVlT2YoKSA6IG1vbWVudCgpLnN0YXJ0T2YoJ2RheScpO1xuXG4gICAgdGhpcy5mb3JtQ29udHJvbERhdGUuc2V0VmFsdWUodmFsLCB7XG4gICAgICBlbWl0TW9kZWxUb1ZpZXdDaGFuZ2U6IGZhbHNlLFxuICAgICAgZW1pdEV2ZW50OiBmYWxzZVxuICAgIH0pO1xuICAgIHRoaXMudXBkYXRlQ29tcG9uZW50VmFsdWUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVWYWxlT25JbnB1dENoYW5nZShibHVyRXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9uS2V5Ym9hcmRJbnB1dERvbmUpIHtcbiAgICAgIGxldCB2YWx1ZTogc3RyaW5nID0gYmx1ckV2ZW50LmN1cnJlbnRUYXJnZXQudmFsdWU7XG4gICAgICAvLyBuZ3gtbWF0ZXJpYWwtdGltZXBpY2tlciBkb2VzIG5vdCBhbGxvdyB3cml0aW5nIGNoYXJhY3RlcnMgb24gaW5wdXQsIHNvIHdlIGFkZCAnQU0vUE0nIGluIG9yZGVyIHRvIG1ha2UgdmFsaWRhdGlvbiB3b3JrIHByb3Blcmx5XG4gICAgICB2YWx1ZSA9IHRoaXMucGFyc2VIb3VyKHZhbHVlKTtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2xIb3VyLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy5vbktleWJvYXJkSW5wdXREb25lID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmVjZWl2ZXMgYW4gaG91ciBpbnB1dCBpbnRyb2R1Y2VkIGJ5IHRoZSB1c2VyIGFuZCByZXR1cm5zIHRoZSBob3VyIGZvcm1hdGVkIGFjb3JkaW5nIGN1cnJlbnQgZm9ybWF0XG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgcHJvdGVjdGVkIHBhcnNlSG91cih2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBzdHJBcnJheSA9IHZhbHVlLnNwbGl0KCc6Jyk7XG4gICAgbGV0IGhvdXI6IGFueSA9IHN0ckFycmF5WzBdO1xuXG4gICAgaWYgKENvZGVzLlRXRUxWRV9GT1VSX0hPVVJfRk9STUFUID09PSB0aGlzLm9Ib3VyRm9ybWF0KSB7XG4gICAgICBpZiAoaG91cikge1xuICAgICAgICBob3VyID0gcGFyc2VJbnQoaG91ciwgMTApO1xuICAgICAgICBjb25zdCBwZXJpb2QgPSBob3VyIDw9IDEyID8gJyBBTScgOiAnIFBNJztcbiAgICAgICAgaWYgKGhvdXIgPiAxMikge1xuICAgICAgICAgIGhvdXIgPSBob3VyIC0gMTI7XG4gICAgICAgIH1cbiAgICAgICAgc3RyQXJyYXlbMF0gPSBob3VyO1xuICAgICAgICB2YWx1ZSA9IHN0ckFycmF5LmpvaW4oJzonKSArIHBlcmlvZDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHVibGljIG9uSG91ckNoYW5nZShldmVudCkge1xuICAgIGxldCB2YWx1ZTtcbiAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBFdmVudCkge1xuICAgICAgdGhpcy51cGRhdGVWYWxlT25JbnB1dENoYW5nZShldmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gdGhpcy5jb252ZXJ0VG9Gb3JtYXRTdHJpbmcoZXZlbnQpO1xuICAgICAgLyoqIGVtaXRNb2RlbFRvVmlld0NoYW5nZTogZmFsc2UgIGJlY2F1c2Ugb25DaGFuZ2UgZXZlbnQgaXMgdHJpZ2dlciBpbiBuZ01vZGVsQ2hhbmdlICovXG4gICAgICB0aGlzLmZvcm1Db250cm9sSG91ci5zZXRWYWx1ZSh2YWx1ZSwge1xuICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxuICAgICAgICBlbWl0TW9kZWxUb1ZpZXdDaGFuZ2U6IGZhbHNlXG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVDb21wb25lbnRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldFRpbWVzdGFtcFZhbHVlKHZhbHVlOiBhbnksIG9wdGlvbnM/OiBGb3JtVmFsdWVPcHRpb25zKTogdm9pZCB7XG4gICAgbGV0IHBhcnNlZFZhbHVlO1xuICAgIGNvbnN0IG1vbWVudFYgPSBVdGlsLmlzRGVmaW5lZCh2YWx1ZSkgPyBtb21lbnQodmFsdWUpIDogdmFsdWU7XG4gICAgaWYgKG1vbWVudFYgJiYgbW9tZW50Vi5pc1ZhbGlkKCkpIHtcbiAgICAgIHBhcnNlZFZhbHVlID0gbW9tZW50Vi51dGNPZmZzZXQoMCkuZm9ybWF0KHRoaXMuZm9ybWF0U3RyaW5nKTtcbiAgICB9XG4gICAgdGhpcy5mb3JtQ29udHJvbEhvdXIuc2V0VmFsdWUocGFyc2VkVmFsdWUsIG9wdGlvbnMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbnZlcnRUb0Zvcm1hdFN0cmluZyh2YWx1ZSk6IHN0cmluZyB7XG4gICAgaWYgKHZhbHVlID09PSAnMDA6MDAnIHx8ICFVdGlsLmlzRGVmaW5lZCh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgY29uc3QgZm9ybWF0U3RyID0gdGhpcy5vSG91ckZvcm1hdCA9PT0gQ29kZXMuVFdFTlRZX0ZPVVJfSE9VUl9GT1JNQVQgPyAnSEg6bW0nIDogJ2hoOm1tIGEnO1xuICAgIGxldCByZXN1bHQ7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJlc3VsdCA9IG1vbWVudCh2YWx1ZSkuZm9ybWF0KGZvcm1hdFN0cik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IHZhbHVlID8gbW9tZW50KHZhbHVlLCAnaDptbSBBJykuZm9ybWF0KGZvcm1hdFN0cikgOiB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIG9wZW5EYXRlcGlja2VyKGQ6IE1hdERhdGVwaWNrZXI8RGF0ZT4pIHtcbiAgICB0aGlzLmRhdGVwaWNrZXIgPSBkO1xuICAgIGQub3BlbigpO1xuICB9XG5cbiAgZ2V0UGxhY2Vob2xkZXJIb3VyKCkge1xuICAgIGxldCBwbGFjZWhvbGRlciA9ICcnO1xuICAgIGlmICh0aGlzLm9Ib3VyUGxhY2Vob2xkZXIpIHtcbiAgICAgIHBsYWNlaG9sZGVyID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCh0aGlzLm9Ib3VyUGxhY2Vob2xkZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwbGFjZWhvbGRlciA9IHN1cGVyLmdldFBsYWNlaG9sZGVyKCk7XG4gICAgfVxuICAgIHJldHVybiBwbGFjZWhvbGRlcjtcbiAgfVxuXG4gIGdldFBsYWNlaG9sZGVyRGF0ZSgpIHtcbiAgICBsZXQgcGxhY2Vob2xkZXIgPSAnJztcbiAgICBpZiAodGhpcy5vRGF0ZVBsYWNlaG9sZGVyKSB7XG4gICAgICBwbGFjZWhvbGRlciA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQodGhpcy5vRGF0ZVBsYWNlaG9sZGVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGxhY2Vob2xkZXIgPSBzdXBlci5nZXRQbGFjZWhvbGRlcigpO1xuICAgIH1cbiAgICByZXR1cm4gcGxhY2Vob2xkZXI7XG4gIH1cblxuICBwdWJsaWMgb3BlbihlPzogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5waWNrZXIpIHtcbiAgICAgIHRoaXMucGlja2VyLm9wZW4oKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlS2V5ZG93bihlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgdGhpcy5hY3RpdmVLZXlzWyhlLmtleSB8fCBlLmtleUNvZGUpXSA9IHRydWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlS2V5dXAoZTogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMuYWN0aXZlS2V5c1soZS5rZXkgfHwgZS5rZXlDb2RlKV0gPSBmYWxzZTtcbiAgICBjb25zdCBvQ29sdW1uID0gdGhpcy50YWJsZS5nZXRPQ29sdW1uKHRoaXMudGFibGVDb2x1bW4uYXR0cik7XG4gICAgaWYgKCFvQ29sdW1uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY2hlY2tLZXkoZSwgXCJUYWJcIiwgOSkgJiYgKHRoaXMuYWN0aXZlS2V5c1sxNl0gfHwgdGhpcy5hY3RpdmVLZXlzW1wiU2hpZnRcIl0gfHwgIXRoaXMuZW5hYmxlZENvbW1pdE9uVGFiUHJlc3MpKSB7XG4gICAgICAvLyB0YWIgKyBzaGlmdCBvciB0YWIgcHJlc3NlZCB3aXRoIGZvY3VzIGluIHRoZSBkYXRlIGNvbXBvbmVudFxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIW9Db2x1bW4uZWRpdGluZyAmJiB0aGlzLmRhdGVwaWNrZXIgJiYgdGhpcy5kYXRlcGlja2VyLm9wZW5lZCkge1xuICAgICAgdGhpcy5kYXRlcGlja2VyLmNsb3NlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN1cGVyLmhhbmRsZUtleXVwKGUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVDb21wb25lbnRWYWx1ZSgpOiB2b2lkIHtcblxuICAgIGxldCB0aW1lVmFsdWU6IG51bWJlcjtcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xuICAgIGNvbnN0IG1EYXRlID0gKHZhbHVlc1snZGF0ZUlucHV0J10gPyBtb21lbnQodmFsdWVzWydkYXRlSW5wdXQnXSkgOiBtb21lbnQoKSkuc3RhcnRPZignZGF5Jyk7XG5cbiAgICBjb25zdCBtSG91ciA9IG1vbWVudCh2YWx1ZXNbJ2hvdXJJbnB1dCddLCB0aGlzLmZvcm1hdFN0cmluZyk7XG4gICAgdGltZVZhbHVlID0gbURhdGUuY2xvbmUoKVxuICAgICAgLnNldCgnaG91cicsIG1Ib3VyLmdldCgnaG91cicpKVxuICAgICAgLnNldCgnbWludXRlJywgbUhvdXIuZ2V0KCdtaW51dGVzJykpXG4gICAgICAudmFsdWVPZigpO1xuXG4gICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wpIHtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodGltZVZhbHVlKTtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgbW9kaWZ5UGlja2VyTWV0aG9kcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5waWNrZXIgJiYgdGhpcy5waWNrZXIuaW5wdXRFbGVtZW50KSB7XG4gICAgICB0aGlzLnBpY2tlci5pbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4ge1xuICAgICAgICB0aGlzLm9uS2V5Ym9hcmRJbnB1dERvbmUgPSB0cnVlO1xuICAgICAgfSk7XG4gICAgfVxuICAgIC8vIGlmICh0aGlzLnBpY2tlcikge1xuICAgIC8vICAgY29uc3Qgbmd4VGltZXBpY2tlciA9IHRoaXMucGlja2VyLnRpbWVwaWNrZXJJbnB1dDtcbiAgICAvLyAgIGlmIChuZ3hUaW1lcGlja2VyICYmIG5neFRpbWVwaWNrZXIub25JbnB1dCkge1xuICAgIC8vICAgICBuZ3hUaW1lcGlja2VyLm9uSW5wdXQgPSAodmFsdWU6IHN0cmluZykgPT4gdGhpcy5vbktleWJvYXJkSW5wdXREb25lID0gdHJ1ZTtcbiAgICAvLyAgIH1cbiAgICAvLyB9XG4gIH1cblxuICBoYXNFcnJvckRhdGUoZXJyb3I6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZvcm1Db250cm9sRGF0ZSAmJiB0aGlzLmZvcm1Db250cm9sRGF0ZS50b3VjaGVkICYmIHRoaXMuaGFzRXJyb3JFeGNsdXNpdmUoZXJyb3IpO1xuICB9XG5cbiAgaGFzRXJyb3JFeGNsdXNpdmUoZXJyb3I6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGxldCBoYXNFcnJvciA9IGZhbHNlO1xuICAgIGNvbnN0IGVycm9yc09yZGVyID0gWydtYXREYXRlcGlja2VyTWF4JywgJ21hdERhdGVwaWNrZXJNaW4nLCAnbWF0RGF0ZXBpY2tlckZpbHRlcicsICdtYXREYXRlcGlja2VyUGFyc2UnLCAncmVxdWlyZWQnXTtcbiAgICBjb25zdCBlcnJvcnMgPSB0aGlzLmZvcm1Db250cm9sRGF0ZS5lcnJvcnM7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKGVycm9ycykpIHtcbiAgICAgIGlmIChPYmplY3Qua2V5cyhlcnJvcnMpLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByZXR1cm4gZXJyb3JzLmhhc093blByb3BlcnR5KGVycm9yKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBlcnJvcnNPcmRlci5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgIGhhc0Vycm9yID0gZXJyb3JzLmhhc093blByb3BlcnR5KGVycm9yc09yZGVyW2ldKTtcbiAgICAgICAgICBpZiAoaGFzRXJyb3IpIHtcbiAgICAgICAgICAgIGhhc0Vycm9yID0gKGVycm9yc09yZGVyW2ldID09PSBlcnJvcik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGhhc0Vycm9yO1xuICB9XG4gIGhhc0Vycm9ySG91cihlcnJvcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUNvbnRyb2xIb3VyICYmIHRoaXMuZm9ybUNvbnRyb2xIb3VyLnRvdWNoZWQ7XG4gIH1cblxuICBnZXRDZWxsRGF0YURhdGUoKTogYW55IHtcbiAgICBjb25zdCB2YWx1ZSA9IHN1cGVyLmdldENlbGxEYXRhKCk7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHZhbHVlKSkge1xuICAgICAgY29uc3QgbSA9IG1vbWVudCh2YWx1ZSk7XG4gICAgICBsZXQgcmVzdWx0ID0gdmFsdWU7XG4gICAgICBpZiAoVXRpbC5pc0RlZmluZWQobSkpIHtcbiAgICAgICAgcmVzdWx0ID0gbS50b0RhdGUoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGdldENlbGxEYXRhSG91cigpOiBhbnkge1xuICAgIGNvbnN0IHZhbHVlID0gc3VwZXIuZ2V0Q2VsbERhdGEoKTtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQodmFsdWUpKSB7XG4gICAgICBjb25zdCBtID0gbW9tZW50KHZhbHVlKTtcbiAgICAgIGxldCByZXN1bHQgPSB2YWx1ZTtcbiAgICAgIGlmIChVdGlsLmlzRGVmaW5lZChtKSkge1xuICAgICAgICByZXN1bHQgPSBtLmZvcm1hdChDb2Rlcy5mb3JtYXRTdHJpbmcodGhpcy5vSG91ckZvcm1hdCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhcnRFZGl0aW9uKGRhdGE6IGFueSkge1xuICAgIHN1cGVyLnN0YXJ0RWRpdGlvbihkYXRhKTtcbiAgICBjb25zdCBjZWxsRGF0YURhdGUgPSB0aGlzLmdldENlbGxEYXRhRGF0ZSgpO1xuICAgIHRoaXMuZm9ybUNvbnRyb2xEYXRlLnNldFZhbHVlKGNlbGxEYXRhRGF0ZSk7XG5cbiAgICBjb25zdCBjZWxsRGF0YUhvdXIgPSB0aGlzLmdldENlbGxEYXRhSG91cigpO1xuICAgIHRoaXMuZm9ybUNvbnRyb2xIb3VyLnNldFZhbHVlKGNlbGxEYXRhSG91cik7XG4gICAgdGhpcy5mb3JtR3JvdXAubWFya0FzVG91Y2hlZCgpO1xuICB9XG5cbiAgZ2V0IGZvcm1hdFN0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBDb2Rlcy5mb3JtYXRTdHJpbmcodGhpcy5vSG91ckZvcm1hdCk7XG4gIH1cblxuICBnZXQgbWluRGF0ZVN0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9taW5EYXRlU3RyaW5nO1xuICB9XG5cbiAgc2V0IG1pbkRhdGVTdHJpbmcodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9taW5EYXRlU3RyaW5nID0gdmFsO1xuICB9XG5cbiAgZ2V0IG1heERhdGVTdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4RGF0ZVN0cmluZztcbiAgfVxuXG4gIHNldCBtYXhEYXRlU3RyaW5nKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5fbWF4RGF0ZVN0cmluZyA9IHZhbDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgb0RhdGVMb2NhbGUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX29EYXRlTG9jYWxlID0gdmFsdWU7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHRoaXMuX29EYXRlTG9jYWxlKSkge1xuICAgICAgdGhpcy5hZGFwdGVyLnNldExvY2FsZSh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG1pbkRhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMub01pbkRhdGUpO1xuICB9XG5cbiAgZ2V0IG1heERhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMub01heERhdGUpO1xuICB9XG5cbiAgb25EYXRlcGlja2VyQ2xvc2VkKCkge1xuICAgIHRoaXMuZGF0ZUlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIG9uVGltZXBpY2tlckNsb3NlZCgpIHtcbiAgICB0aGlzLmhvdXJJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBjb21taXRFZGl0aW9uKCkge1xuICAgIGlmICghdGhpcy5mb3JtR3JvdXAuaW52YWxpZCkge1xuICAgICAgc3VwZXIuY29tbWl0RWRpdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIG9uS2V5RG93bihlOiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCFDb2Rlcy5pc0hvdXJJbnB1dEFsbG93ZWQoZSkpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxufVxuIiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZXJlZiBsZXQtY2VsbHZhbHVlPVwiY2VsbHZhbHVlXCIgbGV0LXJvd3ZhbHVlPVwicm93dmFsdWVcIj5cbiAgPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIGNsYXNzPVwiby10YWJsZS1jZWxsLWVkaXRvci10aW1lIG8tdGFibGUtY2VsbC1lZGl0b3JcIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiXG4gICAgZnhMYXlvdXRHYXA9XCI4cHhcIlxuICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXBcIlxuICAgIFttYXRUb29sdGlwQ2xhc3NdPVwidG9vbHRpcENsYXNzXCJcbiAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cInRvb2x0aXBQb3NpdGlvblwiXG4gICAgW21hdFRvb2x0aXBTaG93RGVsYXldPVwidG9vbHRpcFNob3dEZWxheVwiXG4gICAgW21hdFRvb2x0aXBIaWRlRGVsYXldPVwidG9vbHRpcEhpZGVEZWxheVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cblxuICAgICAgPGlucHV0ICNkYXRlSW5wdXQgbWF0SW5wdXQgW3BsYWNlaG9sZGVyXT1cImdldFBsYWNlaG9sZGVyRGF0ZSgpXCIgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sRGF0ZVwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJvcmVxdWlyZWRcIiBbbWF0RGF0ZXBpY2tlcl09XCJkXCIgKGRhdGVDaGFuZ2UpPVwib25EYXRlQ2hhbmdlKCRldmVudClcIiBbbWluXT1cIm1pbkRhdGVcIiBbbWF4XT1cIm1heERhdGVcIlxuICAgICAgICAoZm9jdXMpPVwiZW5hYmxlZENvbW1pdE9uVGFiUHJlc3MgPSBmYWxzZVwiPlxuXG4gICAgICA8bWF0LWRhdGVwaWNrZXIgI2QgW3N0YXJ0Vmlld109XCJvU3RhcnRWaWV3XCIgW3N0YXJ0QXRdPVwib0RhdGVTdGFydEF0XCIgW3RvdWNoVWldPVwib0RhdGVUb3VjaFVpXCJcbiAgICAgICAgKGNsb3NlZCk9XCJvbkRhdGVwaWNrZXJDbG9zZWQoKVwiPlxuICAgICAgPC9tYXQtZGF0ZXBpY2tlcj5cblxuICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLWJ0blwiIChjbGljayk9XCJvcGVuRGF0ZXBpY2tlcihkKVwiIG1hdFN1ZmZpeD5cbiAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJvbnRpbWl6ZTp0b2RheVwiPjwvbWF0LWljb24+XG4gICAgICA8L3NwYW4+XG5cbiAgICAgIDxtYXQtZXJyb3IgKm9NYXRFcnJvcj1cImhhc0Vycm9yRGF0ZSgncmVxdWlyZWQnKSB8fCBoYXNFcnJvckhvdXIoJ3JlcXVpcmVkJylcIj5cbiAgICAgICAge3sgJ0ZPUk1fVkFMSURBVElPTi5SRVFVSVJFRCcgfCBvVHJhbnNsYXRlIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm9NYXRFcnJvcj1cImhhc0Vycm9yRGF0ZSgnbWF0RGF0ZXBpY2tlclBhcnNlJylcIj5cbiAgICAgICAge3sgJ0ZPUk1fVkFMSURBVElPTi5EQVRFX1BBUlNFJyB8IG9UcmFuc2xhdGUgfX0ge3sgb0hvdXJGb3JtYXQgfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPG1hdC1lcnJvciAqb01hdEVycm9yPVwiaGFzRXJyb3JEYXRlKCdtYXREYXRlcGlja2VyRmlsdGVyJylcIj5cbiAgICAgICAge3sgJ0ZPUk1fVkFMSURBVElPTi5EQVRFX0ZJTFRFUicgfCBvVHJhbnNsYXRlIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm9NYXRFcnJvcj1cImhhc0Vycm9yRGF0ZSgnbWF0RGF0ZXBpY2tlck1pbicpXCI+XG4gICAgICAgIHt7ICdGT1JNX1ZBTElEQVRJT04uREFURV9NSU4nIHwgb1RyYW5zbGF0ZSB9fSB7eyBtaW5EYXRlU3RyaW5nIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm9NYXRFcnJvcj1cImhhc0Vycm9yRGF0ZSgnbWF0RGF0ZXBpY2tlck1heCcpXCI+XG4gICAgICAgIHt7ICdGT1JNX1ZBTElEQVRJT04uREFURV9NQVgnIHwgb1RyYW5zbGF0ZSB9fSB7eyBtYXhEYXRlU3RyaW5nIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nRm9yPVwibGV0IG9FcnJvciBvZiBnZXRBY3RpdmVPRXJyb3JzKClcIj5cbiAgICAgICAge3sgZ2V0RXJyb3JUZXh0KG9FcnJvcikgfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+Jm5kYXNoOzwvc3Bhbj5cblxuICAgIDxtYXQtZm9ybS1maWVsZD5cblxuICAgICAgPGlucHV0ICNob3VySW5wdXQgbWF0SW5wdXQgW25neFRpbWVwaWNrZXJdPVwicGlja2VyXCIgW3BsYWNlaG9sZGVyXT1cImdldFBsYWNlaG9sZGVySG91cigpXCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sSG91clwiIFtyZXF1aXJlZF09XCJvcmVxdWlyZWRcIiAoY2hhbmdlKT1cIm9uSG91ckNoYW5nZSgkZXZlbnQpXCIgW21pbl09XCJvSG91ck1pblwiXG4gICAgICAgIFttYXhdPVwib0hvdXJNYXhcIiAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiIFtkaXNhYmxlQ2xpY2tdPVwidHJ1ZVwiIFtmb3JtYXRdPVwib0hvdXJGb3JtYXRcIlxuICAgICAgICAoYmx1cik9XCJlbmFibGVkQ29tbWl0T25UYWJQcmVzcyA9IHRydWVcIj5cblxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwib3BlbigkZXZlbnQpXCI+XG4gICAgICAgIDxtYXQtaWNvbiBuZ3hNYXRlcmlhbFRpbWVwaWNrZXJUb2dnbGVJY29uIHN2Z0ljb249XCJvbnRpbWl6ZTpjbG9ja1wiPjwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPG1hdC1lcnJvciAqb01hdEVycm9yPVwiaGFzRXJyb3JIb3VyKCdpbnZhbGlkRm9ybWF0SG91cicpXCI+XG4gICAgICAgIHt7ICdGT1JNX1ZBTElEQVRJT04uSE9VUl9GT1JNQVQnIHwgb1RyYW5zbGF0ZSB9fSB7eyBmb3JtYXRTdHJpbmcgfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPG1hdC1lcnJvciAqbmdGb3I9XCJsZXQgb0Vycm9yIG9mIGdldEFjdGl2ZU9FcnJvcnMoKVwiPlxuICAgICAgICB7eyBvRXJyb3IudGV4dCB8IG9UcmFuc2xhdGUgfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDxuZ3gtbWF0ZXJpYWwtdGltZXBpY2tlciAjcGlja2VyICh0aW1lU2V0KT1cIm9uSG91ckNoYW5nZSgkZXZlbnQpXCIgW2NvbmZpcm1CdG5UbXBsXT1cImNvbmZpcm1CdG5cIlxuICAgICAgW2NhbmNlbEJ0blRtcGxdPVwiY2FuY2VsQnRuXCIgKGNsb3NlZCk9XCJvblRpbWVwaWNrZXJDbG9zZWQoKVwiPjwvbmd4LW1hdGVyaWFsLXRpbWVwaWNrZXI+XG4gICAgPG5nLXRlbXBsYXRlICNjb25maXJtQnRuPlxuICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gdHlwZT1cImJ1dHRvblwiPjxzcGFuPnt7J09LJyB8IG9UcmFuc2xhdGV9fTwvc3Bhbj48L2J1dHRvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2FuY2VsQnRuPlxuICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gdHlwZT1cImJ1dHRvblwiPjxzcGFuPnt7J0NBTkNFTCcgfCBvVHJhbnNsYXRlfX08L3NwYW4+PC9idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG5cbjwvbmctdGVtcGxhdGU+Il19
377
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jZWxsLWVkaXRvci10aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL2NvbHVtbi9jZWxsLWVkaXRvci90aW1lL28tdGFibGUtY2VsbC1lZGl0b3ItdGltZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9jb2x1bW4vY2VsbC1lZGl0b3IvdGltZS9vLXRhYmxlLWNlbGwtZWRpdG9yLXRpbWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osUUFBUSxFQUVSLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEUsT0FBTyxFQUFpQixrQkFBa0IsRUFBMkIsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIs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QyxDQUFDLENBQUMsRUFBRTtZQUNoQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDOzswSEF6WVUsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsaXJCQUw3QjtRQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUU7S0FDL0UsaUhBS2lDLFdBQVcsa1ZBYWxDLGtCQUFrQix1RUNwRS9CLG05R0EyRWM7QURFWjtJQUFDLHFCQUFxQixFQUFFOzttRUFDSzsyRkF6QmxCLDZCQUE2QjtrQkFaekMsU0FBUzsrQkFDRSwwQkFBMEIsVUFHNUIsdUNBQXVDLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUU7cUJBQy9FO3lIQUtxRSxXQUFXO3NCQUFoRixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFHbkQsU0FBUztzQkFEbEIsU0FBUzt1QkFBQyxXQUFXO2dCQUlaLFNBQVM7c0JBRGxCLFNBQVM7dUJBQUMsV0FBVztnQkFJZixNQUFNO3NCQURaLFNBQVM7dUJBQUMsUUFBUTtnQkFNWixlQUFlO3NCQURyQixTQUFTO3VCQUFDLGtCQUFrQjtnQkFVdEIsWUFBWSxNQW9CbkIsaUJBQWlCO3NCQURoQixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3RvcixcbiAgT25Jbml0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNb21lbnREYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyJztcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBNQVRfREFURV9MT0NBTEUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXIsIE1hdERhdGVwaWNrZXJJbnB1dCwgTWF0RGF0ZXBpY2tlcklucHV0RXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IE5neE1hdGVyaWFsVGltZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJ25neC1tYXRlcmlhbC10aW1lcGlja2VyJztcblxuaW1wb3J0IHsgQm9vbGVhbklucHV0Q29udmVydGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZGVjb3JhdG9ycy9pbnB1dC1jb252ZXJ0ZXInO1xuaW1wb3J0IHsgTW9tZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzL21vbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1WYWx1ZU9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi90eXBlcy9mb3JtLXZhbHVlLW9wdGlvbnMudHlwZSc7XG5pbXBvcnQgeyBDb2RlcyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWwvY29kZXMnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBPQmFzZVRhYmxlQ2VsbEVkaXRvciB9IGZyb20gJy4uL28tYmFzZS10YWJsZS1jZWxsLWVkaXRvci5jbGFzcyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0lOUFVUU19PX1RBQkxFX0NFTExfRURJVE9SX1RJTUUgPSBbXG4gICdvRGF0ZUZvcm1hdDogZGF0ZS1mb3JtYXQnLFxuICAnb0RhdGVMb2NhbGU6IGRhdGUtbG9jYWxlJyxcbiAgJ29EYXRlU3RhcnRWaWV3OiBkYXRlLXN0YXJ0LXZpZXcnLFxuICAnb01pbkRhdGU6IGRhdGUtbWluJyxcbiAgJ29NYXhEYXRlOiBkYXRlLW1heCcsXG4gICdvRGF0ZVRvdWNoVWk6IGRhdGUtdG91Y2gtdWknLFxuICAnb0RhdGVTdGFydEF0OiBkYXRlLXN0YXJ0LWF0JyxcbiAgJ29Ib3VyRm9ybWF0OiBob3VyLWZvcm1hdCcsXG4gICdvSG91ck1pbjogaG91ci1taW4nLFxuICAnb0hvdXJNYXg6IGhvdXItbWF4JyxcbiAgJ29Ib3VyUGxhY2Vob2xkZXI6IGhvdXItcGxhY2Vob2xkZXInLFxuICAnb0RhdGVQbGFjZWhvbGRlcjogZGF0ZS1wbGFjZWhvbGRlcidcbl07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ28tdGFibGUtY2VsbC1lZGl0b3ItdGltZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9vLXRhYmxlLWNlbGwtZWRpdG9yLXRpbWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vLXRhYmxlLWNlbGwtZWRpdG9yLXRpbWUuY29tcG9uZW50LnNjc3MnXSxcbiAgaW5wdXRzOiBERUZBVUxUX0lOUFVUU19PX1RBQkxFX0NFTExfRURJVE9SX1RJTUUsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IERhdGVBZGFwdGVyLCB1c2VDbGFzczogTW9tZW50RGF0ZUFkYXB0ZXIsIGRlcHM6IFtNQVRfREFURV9MT0NBTEVdIH1cbiAgXSxcbn0pXG5cbmV4cG9ydCBjbGFzcyBPVGFibGVDZWxsRWRpdG9yVGltZUNvbXBvbmVudCBleHRlbmRzIE9CYXNlVGFibGVDZWxsRWRpdG9yIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdDaGVja2VkIHtcblxuICBAVmlld0NoaWxkKCd0ZW1wbGF0ZXJlZicsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgdGVtcGxhdGVyZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQFZpZXdDaGlsZCgnZGF0ZUlucHV0JylcbiAgcHJvdGVjdGVkIGRhdGVJbnB1dDogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCdob3VySW5wdXQnKVxuICBwcm90ZWN0ZWQgaG91cklucHV0OiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ3BpY2tlcicpXG4gIHB1YmxpYyBwaWNrZXI6IE5neE1hdGVyaWFsVGltZXBpY2tlckNvbXBvbmVudDtcblxuICBvU3RhcnRWaWV3OiAnbW9udGgnIHwgJ3llYXInID0gJ21vbnRoJztcblxuICBAVmlld0NoaWxkKE1hdERhdGVwaWNrZXJJbnB1dClcbiAgcHVibGljIGRhdGVwaWNrZXJJbnB1dDogTWF0RGF0ZXBpY2tlcklucHV0PERhdGU+O1xuXG4gIGZvcm1Db250cm9sSG91cjogVW50eXBlZEZvcm1Db250cm9sO1xuICBmb3JtQ29udHJvbERhdGU6IFVudHlwZWRGb3JtQ29udHJvbDtcblxuICBwdWJsaWMgb0RhdGVGb3JtYXQ6IHN0cmluZyA9ICdMJztcbiAgcHVibGljIG9Ib3VyTWF4OiBzdHJpbmc7XG4gIHB1YmxpYyBvSG91ck1pbjogc3RyaW5nO1xuICBAQm9vbGVhbklucHV0Q29udmVydGVyKClcbiAgcHVibGljIG9EYXRlVG91Y2hVaTogYm9vbGVhbjtcbiAgcHVibGljIG9EYXRlU3RhcnRBdDogc3RyaW5nO1xuXG4gIHByaXZhdGUgX29EYXRlTG9jYWxlO1xuICBwcm90ZWN0ZWQgb0hvdXJQbGFjZWhvbGRlcjogc3RyaW5nO1xuICBwcm90ZWN0ZWQgb0RhdGVQbGFjZWhvbGRlcjogc3RyaW5nO1xuICBwdWJsaWMgb0hvdXJGb3JtYXQ6IG51bWJlciA9IENvZGVzLlRXRU5UWV9GT1VSX0hPVVJfRk9STUFUO1xuICBwcm90ZWN0ZWQgb25LZXlib2FyZElucHV0RG9uZSA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgb01pbkRhdGU6IHN0cmluZztcbiAgcHJvdGVjdGVkIG9NYXhEYXRlOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfbWluRGF0ZVN0cmluZzogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX21heERhdGVTdHJpbmc6IHN0cmluZztcbiAgcHJvdGVjdGVkIGRhdGVwaWNrZXI6IE1hdERhdGVwaWNrZXI8RGF0ZT47XG4gIHByaXZhdGUgbW9tZW50U3J2OiBNb21lbnRTZXJ2aWNlO1xuXG4gIC8vIG9ubHkgdHJ1ZSB3aGVuIGhvdXIgaW5wdXQgaXMgZm9jdXNlZFxuICBwdWJsaWMgZW5hYmxlZENvbW1pdE9uVGFiUHJlc3M6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJvdGVjdGVkIGFjdGl2ZUtleXM6IG9iamVjdCA9IHt9O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxuICBvbkRvY3VtZW50S2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMuaGFuZGxlS2V5ZG93bihldmVudCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgYWRhcHRlcjogRGF0ZUFkYXB0ZXI8YW55PlxuICApIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgdGhpcy5tb21lbnRTcnYgPSB0aGlzLmluamVjdG9yLmdldChNb21lbnRTZXJ2aWNlKTtcbiAgfVxuXG4gIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgIHRoaXMuY3JlYXRlSW50ZXJuYWxGb3JtQ29udHJvbCgpO1xuICAgIGlmICghdGhpcy5fb0RhdGVMb2NhbGUpIHtcbiAgICAgIHRoaXMub0RhdGVMb2NhbGUgPSB0aGlzLm1vbWVudFNydi5nZXRMb2NhbGUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vTWluRGF0ZSkge1xuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMub01pbkRhdGUpO1xuICAgICAgY29uc3QgbW9tZW50RCA9IG1vbWVudChkYXRlKTtcbiAgICAgIGlmIChtb21lbnRELmlzVmFsaWQoKSkge1xuICAgICAgICB0aGlzLm1pbkRhdGVTdHJpbmcgPSBtb21lbnRELmZvcm1hdCh0aGlzLm9EYXRlRm9ybWF0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5vTWF4RGF0ZSkge1xuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMub01heERhdGUpO1xuICAgICAgY29uc3QgbW9tZW50RCA9IG1vbWVudChkYXRlKTtcbiAgICAgIGlmIChtb21lbnRELmlzVmFsaWQoKSkge1xuICAgICAgICB0aGlzLm1heERhdGVTdHJpbmcgPSBtb21lbnRELmZvcm1hdCh0aGlzLm9EYXRlRm9ybWF0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjcmVhdGVJbnRlcm5hbEZvcm1Db250cm9sKCkge1xuICAgIGlmICghdGhpcy5mb3JtQ29udHJvbERhdGUpIHtcbiAgICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSB0aGlzLnJlc29sdmVWYWxpZGF0b3JzKCk7XG4gICAgICBjb25zdCBjZmcgPSB7XG4gICAgICAgIHZhbHVlOiB1bmRlZmluZWQsXG4gICAgICAgIGRpc2FibGVkOiAhdGhpcy5lbmFibGVkXG4gICAgICB9O1xuICAgICAgdGhpcy5mb3JtQ29udHJvbERhdGUgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKGNmZywgdmFsaWRhdG9ycyk7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKCdkYXRlSW5wdXQnLCB0aGlzLmZvcm1Db250cm9sRGF0ZSk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmZvcm1Db250cm9sSG91cikge1xuICAgICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IHRoaXMucmVzb2x2ZVZhbGlkYXRvcnMoKTtcbiAgICAgIGNvbnN0IGNmZyA9IHtcbiAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgZGlzYWJsZWQ6ICF0aGlzLmVuYWJsZWRcbiAgICAgIH07XG4gICAgICB0aGlzLmZvcm1Db250cm9sSG91ciA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woY2ZnLCB2YWxpZGF0b3JzKTtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woJ2hvdXJJbnB1dCcsIHRoaXMuZm9ybUNvbnRyb2xIb3VyKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMubW9kaWZ5UGlja2VyTWV0aG9kcygpO1xuICB9XG5cbiAgc2V0VGltZShldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5waWNrZXIudXBkYXRlVGltZSh0aGlzLmZvcm1Db250cm9sSG91ci52YWx1ZSk7XG4gIH1cblxuICBvbkRhdGVDaGFuZ2UoZXZlbnQ6IE1hdERhdGVwaWNrZXJJbnB1dEV2ZW50PGFueT4pIHtcbiAgICBjb25zdCBpc1ZhbGlkID0gZXZlbnQudmFsdWUgJiYgZXZlbnQudmFsdWUuaXNWYWxpZCAmJiBldmVudC52YWx1ZS5pc1ZhbGlkKCk7XG4gICAgY29uc3QgdmFsID0gaXNWYWxpZCA/IGV2ZW50LnZhbHVlLnZhbHVlT2YoKSA6IG1vbWVudCgpLnN0YXJ0T2YoJ2RheScpO1xuXG4gICAgdGhpcy5mb3JtQ29udHJvbERhdGUuc2V0VmFsdWUodmFsLCB7XG4gICAgICBlbWl0TW9kZWxUb1ZpZXdDaGFuZ2U6IGZhbHNlLFxuICAgICAgZW1pdEV2ZW50OiBmYWxzZVxuICAgIH0pO1xuICAgIHRoaXMudXBkYXRlQ29tcG9uZW50VmFsdWUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVWYWxlT25JbnB1dENoYW5nZShibHVyRXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9uS2V5Ym9hcmRJbnB1dERvbmUpIHtcbiAgICAgIGxldCB2YWx1ZTogc3RyaW5nID0gYmx1ckV2ZW50LmN1cnJlbnRUYXJnZXQudmFsdWU7XG4gICAgICAvLyBuZ3gtbWF0ZXJpYWwtdGltZXBpY2tlciBkb2VzIG5vdCBhbGxvdyB3cml0aW5nIGNoYXJhY3RlcnMgb24gaW5wdXQsIHNvIHdlIGFkZCAnQU0vUE0nIGluIG9yZGVyIHRvIG1ha2UgdmFsaWRhdGlvbiB3b3JrIHByb3Blcmx5XG4gICAgICB2YWx1ZSA9IHRoaXMucGFyc2VIb3VyKHZhbHVlKTtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2xIb3VyLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy5vbktleWJvYXJkSW5wdXREb25lID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmVjZWl2ZXMgYW4gaG91ciBpbnB1dCBpbnRyb2R1Y2VkIGJ5IHRoZSB1c2VyIGFuZCByZXR1cm5zIHRoZSBob3VyIGZvcm1hdGVkIGFjb3JkaW5nIGN1cnJlbnQgZm9ybWF0XG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgcHJvdGVjdGVkIHBhcnNlSG91cih2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBzdHJBcnJheSA9IHZhbHVlLnNwbGl0KCc6Jyk7XG4gICAgbGV0IGhvdXI6IGFueSA9IHN0ckFycmF5WzBdO1xuXG4gICAgaWYgKENvZGVzLlRXRUxWRV9GT1VSX0hPVVJfRk9STUFUID09PSB0aGlzLm9Ib3VyRm9ybWF0KSB7XG4gICAgICBpZiAoaG91cikge1xuICAgICAgICBob3VyID0gcGFyc2VJbnQoaG91ciwgMTApO1xuICAgICAgICBjb25zdCBwZXJpb2QgPSBob3VyIDw9IDEyID8gJyBBTScgOiAnIFBNJztcbiAgICAgICAgaWYgKGhvdXIgPiAxMikge1xuICAgICAgICAgIGhvdXIgPSBob3VyIC0gMTI7XG4gICAgICAgIH1cbiAgICAgICAgc3RyQXJyYXlbMF0gPSBob3VyO1xuICAgICAgICB2YWx1ZSA9IHN0ckFycmF5LmpvaW4oJzonKSArIHBlcmlvZDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHVibGljIG9uSG91ckNoYW5nZShldmVudCkge1xuICAgIGxldCB2YWx1ZTtcbiAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBFdmVudCkge1xuICAgICAgdGhpcy51cGRhdGVWYWxlT25JbnB1dENoYW5nZShldmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gdGhpcy5jb252ZXJ0VG9Gb3JtYXRTdHJpbmcoZXZlbnQpO1xuICAgICAgLyoqIGVtaXRNb2RlbFRvVmlld0NoYW5nZTogZmFsc2UgIGJlY2F1c2Ugb25DaGFuZ2UgZXZlbnQgaXMgdHJpZ2dlciBpbiBuZ01vZGVsQ2hhbmdlICovXG4gICAgICB0aGlzLmZvcm1Db250cm9sSG91ci5zZXRWYWx1ZSh2YWx1ZSwge1xuICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxuICAgICAgICBlbWl0TW9kZWxUb1ZpZXdDaGFuZ2U6IGZhbHNlXG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVDb21wb25lbnRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldFRpbWVzdGFtcFZhbHVlKHZhbHVlOiBhbnksIG9wdGlvbnM/OiBGb3JtVmFsdWVPcHRpb25zKTogdm9pZCB7XG4gICAgbGV0IHBhcnNlZFZhbHVlO1xuICAgIGNvbnN0IG1vbWVudFYgPSBVdGlsLmlzRGVmaW5lZCh2YWx1ZSkgPyBtb21lbnQodmFsdWUpIDogdmFsdWU7XG4gICAgaWYgKG1vbWVudFYgJiYgbW9tZW50Vi5pc1ZhbGlkKCkpIHtcbiAgICAgIHBhcnNlZFZhbHVlID0gbW9tZW50Vi51dGNPZmZzZXQoMCkuZm9ybWF0KHRoaXMuZm9ybWF0U3RyaW5nKTtcbiAgICB9XG4gICAgdGhpcy5mb3JtQ29udHJvbEhvdXIuc2V0VmFsdWUocGFyc2VkVmFsdWUsIG9wdGlvbnMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbnZlcnRUb0Zvcm1hdFN0cmluZyh2YWx1ZSk6IHN0cmluZyB7XG4gICAgaWYgKHZhbHVlID09PSAnMDA6MDAnIHx8ICFVdGlsLmlzRGVmaW5lZCh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgY29uc3QgZm9ybWF0U3RyID0gdGhpcy5vSG91ckZvcm1hdCA9PT0gQ29kZXMuVFdFTlRZX0ZPVVJfSE9VUl9GT1JNQVQgPyAnSEg6bW0nIDogJ2hoOm1tIGEnO1xuICAgIGxldCByZXN1bHQ7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJlc3VsdCA9IG1vbWVudCh2YWx1ZSkuZm9ybWF0KGZvcm1hdFN0cik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IHZhbHVlID8gbW9tZW50KHZhbHVlLCAnaDptbSBBJykuZm9ybWF0KGZvcm1hdFN0cikgOiB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIG9wZW5EYXRlcGlja2VyKGQ6IE1hdERhdGVwaWNrZXI8RGF0ZT4pIHtcbiAgICB0aGlzLmRhdGVwaWNrZXIgPSBkO1xuICAgIGQub3BlbigpO1xuICB9XG5cbiAgZ2V0UGxhY2Vob2xkZXJIb3VyKCkge1xuICAgIGxldCBwbGFjZWhvbGRlciA9ICcnO1xuICAgIGlmICh0aGlzLm9Ib3VyUGxhY2Vob2xkZXIpIHtcbiAgICAgIHBsYWNlaG9sZGVyID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCh0aGlzLm9Ib3VyUGxhY2Vob2xkZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwbGFjZWhvbGRlciA9IHN1cGVyLmdldFBsYWNlaG9sZGVyKCk7XG4gICAgfVxuICAgIHJldHVybiBwbGFjZWhvbGRlcjtcbiAgfVxuXG4gIGdldFBsYWNlaG9sZGVyRGF0ZSgpIHtcbiAgICBsZXQgcGxhY2Vob2xkZXIgPSAnJztcbiAgICBpZiAodGhpcy5vRGF0ZVBsYWNlaG9sZGVyKSB7XG4gICAgICBwbGFjZWhvbGRlciA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQodGhpcy5vRGF0ZVBsYWNlaG9sZGVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGxhY2Vob2xkZXIgPSBzdXBlci5nZXRQbGFjZWhvbGRlcigpO1xuICAgIH1cbiAgICByZXR1cm4gcGxhY2Vob2xkZXI7XG4gIH1cblxuICBwdWJsaWMgb3BlbihlPzogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5waWNrZXIpIHtcbiAgICAgIHRoaXMucGlja2VyLm9wZW4oKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlS2V5ZG93bihlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgdGhpcy5hY3RpdmVLZXlzWyhlLmtleSB8fCBlLmtleUNvZGUpXSA9IHRydWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlS2V5dXAoZTogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMuYWN0aXZlS2V5c1soZS5rZXkgfHwgZS5rZXlDb2RlKV0gPSBmYWxzZTtcbiAgICBjb25zdCBvQ29sdW1uID0gdGhpcy50YWJsZS5nZXRPQ29sdW1uKHRoaXMudGFibGVDb2x1bW4uYXR0cik7XG4gICAgaWYgKCFvQ29sdW1uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY2hlY2tLZXkoZSwgXCJUYWJcIiwgOSkgJiYgKHRoaXMuYWN0aXZlS2V5c1sxNl0gfHwgdGhpcy5hY3RpdmVLZXlzW1wiU2hpZnRcIl0gfHwgIXRoaXMuZW5hYmxlZENvbW1pdE9uVGFiUHJlc3MpKSB7XG4gICAgICAvLyB0YWIgKyBzaGlmdCBvciB0YWIgcHJlc3NlZCB3aXRoIGZvY3VzIGluIHRoZSBkYXRlIGNvbXBvbmVudFxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIW9Db2x1bW4uZWRpdGluZyAmJiB0aGlzLmRhdGVwaWNrZXIgJiYgdGhpcy5kYXRlcGlja2VyLm9wZW5lZCkge1xuICAgICAgdGhpcy5kYXRlcGlja2VyLmNsb3NlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN1cGVyLmhhbmRsZUtleXVwKGUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVDb21wb25lbnRWYWx1ZSgpOiB2b2lkIHtcblxuICAgIGxldCB0aW1lVmFsdWU6IG51bWJlcjtcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xuICAgIGNvbnN0IG1EYXRlID0gKHZhbHVlc1snZGF0ZUlucHV0J10gPyBtb21lbnQodmFsdWVzWydkYXRlSW5wdXQnXSkgOiBtb21lbnQoKSkuc3RhcnRPZignZGF5Jyk7XG5cbiAgICBjb25zdCBtSG91ciA9IG1vbWVudCh2YWx1ZXNbJ2hvdXJJbnB1dCddLCB0aGlzLmZvcm1hdFN0cmluZyk7XG4gICAgdGltZVZhbHVlID0gbURhdGUuY2xvbmUoKVxuICAgICAgLnNldCgnaG91cicsIG1Ib3VyLmdldCgnaG91cicpKVxuICAgICAgLnNldCgnbWludXRlJywgbUhvdXIuZ2V0KCdtaW51dGVzJykpXG4gICAgICAudmFsdWVPZigpO1xuXG4gICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wpIHtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodGltZVZhbHVlKTtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgbW9kaWZ5UGlja2VyTWV0aG9kcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5waWNrZXIgJiYgdGhpcy5waWNrZXIuaW5wdXRFbGVtZW50KSB7XG4gICAgICB0aGlzLnBpY2tlci5pbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4ge1xuICAgICAgICB0aGlzLm9uS2V5Ym9hcmRJbnB1dERvbmUgPSB0cnVlO1xuICAgICAgfSk7XG4gICAgfVxuICAgIC8vIGlmICh0aGlzLnBpY2tlcikge1xuICAgIC8vICAgY29uc3Qgbmd4VGltZXBpY2tlciA9IHRoaXMucGlja2VyLnRpbWVwaWNrZXJJbnB1dDtcbiAgICAvLyAgIGlmIChuZ3hUaW1lcGlja2VyICYmIG5neFRpbWVwaWNrZXIub25JbnB1dCkge1xuICAgIC8vICAgICBuZ3hUaW1lcGlja2VyLm9uSW5wdXQgPSAodmFsdWU6IHN0cmluZykgPT4gdGhpcy5vbktleWJvYXJkSW5wdXREb25lID0gdHJ1ZTtcbiAgICAvLyAgIH1cbiAgICAvLyB9XG4gIH1cblxuICBoYXNFcnJvckRhdGUoZXJyb3I6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZvcm1Db250cm9sRGF0ZSAmJiB0aGlzLmZvcm1Db250cm9sRGF0ZS50b3VjaGVkICYmIHRoaXMuaGFzRXJyb3JFeGNsdXNpdmUoZXJyb3IpO1xuICB9XG5cbiAgaGFzRXJyb3JFeGNsdXNpdmUoZXJyb3I6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGxldCBoYXNFcnJvciA9IGZhbHNlO1xuICAgIGNvbnN0IGVycm9yc09yZGVyID0gWydtYXREYXRlcGlja2VyTWF4JywgJ21hdERhdGVwaWNrZXJNaW4nLCAnbWF0RGF0ZXBpY2tlckZpbHRlcicsICdtYXREYXRlcGlja2VyUGFyc2UnLCAncmVxdWlyZWQnXTtcbiAgICBjb25zdCBlcnJvcnMgPSB0aGlzLmZvcm1Db250cm9sRGF0ZS5lcnJvcnM7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKGVycm9ycykpIHtcbiAgICAgIGlmIChPYmplY3Qua2V5cyhlcnJvcnMpLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByZXR1cm4gZXJyb3JzLmhhc093blByb3BlcnR5KGVycm9yKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBlcnJvcnNPcmRlci5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgIGhhc0Vycm9yID0gZXJyb3JzLmhhc093blByb3BlcnR5KGVycm9yc09yZGVyW2ldKTtcbiAgICAgICAgICBpZiAoaGFzRXJyb3IpIHtcbiAgICAgICAgICAgIGhhc0Vycm9yID0gKGVycm9yc09yZGVyW2ldID09PSBlcnJvcik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGhhc0Vycm9yO1xuICB9XG4gIGhhc0Vycm9ySG91cihlcnJvcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUNvbnRyb2xIb3VyICYmIHRoaXMuZm9ybUNvbnRyb2xIb3VyLnRvdWNoZWQ7XG4gIH1cblxuICBnZXRDZWxsRGF0YURhdGUoKTogYW55IHtcbiAgICBjb25zdCB2YWx1ZSA9IHN1cGVyLmdldENlbGxEYXRhKCk7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHZhbHVlKSkge1xuICAgICAgY29uc3QgbSA9IG1vbWVudCh2YWx1ZSk7XG4gICAgICBsZXQgcmVzdWx0ID0gdmFsdWU7XG4gICAgICBpZiAoVXRpbC5pc0RlZmluZWQobSkpIHtcbiAgICAgICAgcmVzdWx0ID0gbS50b0RhdGUoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGdldENlbGxEYXRhSG91cigpOiBhbnkge1xuICAgIGNvbnN0IHZhbHVlID0gc3VwZXIuZ2V0Q2VsbERhdGEoKTtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQodmFsdWUpKSB7XG4gICAgICBjb25zdCBtID0gbW9tZW50KHZhbHVlKTtcbiAgICAgIGxldCByZXN1bHQgPSB2YWx1ZTtcbiAgICAgIGlmIChVdGlsLmlzRGVmaW5lZChtKSkge1xuICAgICAgICByZXN1bHQgPSBtLmZvcm1hdChDb2Rlcy5mb3JtYXRTdHJpbmcodGhpcy5vSG91ckZvcm1hdCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhcnRFZGl0aW9uKGRhdGE6IGFueSkge1xuICAgIHN1cGVyLnN0YXJ0RWRpdGlvbihkYXRhKTtcbiAgICBjb25zdCBjZWxsRGF0YURhdGUgPSB0aGlzLmdldENlbGxEYXRhRGF0ZSgpO1xuICAgIHRoaXMuZm9ybUNvbnRyb2xEYXRlLnNldFZhbHVlKGNlbGxEYXRhRGF0ZSk7XG5cbiAgICBjb25zdCBjZWxsRGF0YUhvdXIgPSB0aGlzLmdldENlbGxEYXRhSG91cigpO1xuICAgIHRoaXMuZm9ybUNvbnRyb2xIb3VyLnNldFZhbHVlKGNlbGxEYXRhSG91cik7XG4gICAgdGhpcy5mb3JtR3JvdXAubWFya0FzVG91Y2hlZCgpO1xuICB9XG5cbiAgZ2V0IGZvcm1hdFN0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBDb2Rlcy5mb3JtYXRTdHJpbmcodGhpcy5vSG91ckZvcm1hdCk7XG4gIH1cblxuICBnZXQgbWluRGF0ZVN0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9taW5EYXRlU3RyaW5nO1xuICB9XG5cbiAgc2V0IG1pbkRhdGVTdHJpbmcodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9taW5EYXRlU3RyaW5nID0gdmFsO1xuICB9XG5cbiAgZ2V0IG1heERhdGVTdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4RGF0ZVN0cmluZztcbiAgfVxuXG4gIHNldCBtYXhEYXRlU3RyaW5nKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5fbWF4RGF0ZVN0cmluZyA9IHZhbDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgb0RhdGVMb2NhbGUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX29EYXRlTG9jYWxlID0gdmFsdWU7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHRoaXMuX29EYXRlTG9jYWxlKSkge1xuICAgICAgdGhpcy5hZGFwdGVyLnNldExvY2FsZSh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG1pbkRhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMub01pbkRhdGUpO1xuICB9XG5cbiAgZ2V0IG1heERhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMub01heERhdGUpO1xuICB9XG5cbiAgb25EYXRlcGlja2VyQ2xvc2VkKCkge1xuICAgIHRoaXMuZGF0ZUlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIG9uVGltZXBpY2tlckNsb3NlZCgpIHtcbiAgICB0aGlzLmhvdXJJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBjb21taXRFZGl0aW9uKCkge1xuICAgIGlmICghdGhpcy5mb3JtR3JvdXAuaW52YWxpZCkge1xuICAgICAgc3VwZXIuY29tbWl0RWRpdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIG9uS2V5RG93bihlOiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCFDb2Rlcy5pc0hvdXJJbnB1dEFsbG93ZWQoZSkpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxufVxuIiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZXJlZiBsZXQtY2VsbHZhbHVlPVwiY2VsbHZhbHVlXCIgbGV0LXJvd3ZhbHVlPVwicm93dmFsdWVcIj5cbiAgPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIGNsYXNzPVwiby10YWJsZS1jZWxsLWVkaXRvci10aW1lIG8tdGFibGUtY2VsbC1lZGl0b3JcIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiXG4gICAgZnhMYXlvdXRHYXA9XCI4cHhcIlxuICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXBcIlxuICAgIFttYXRUb29sdGlwQ2xhc3NdPVwidG9vbHRpcENsYXNzXCJcbiAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cInRvb2x0aXBQb3NpdGlvblwiXG4gICAgW21hdFRvb2x0aXBTaG93RGVsYXldPVwidG9vbHRpcFNob3dEZWxheVwiXG4gICAgW21hdFRvb2x0aXBIaWRlRGVsYXldPVwidG9vbHRpcEhpZGVEZWxheVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cblxuICAgICAgPGlucHV0ICNkYXRlSW5wdXQgbWF0SW5wdXQgW3BsYWNlaG9sZGVyXT1cImdldFBsYWNlaG9sZGVyRGF0ZSgpXCIgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sRGF0ZVwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJvcmVxdWlyZWRcIiBbbWF0RGF0ZXBpY2tlcl09XCJkXCIgKGRhdGVDaGFuZ2UpPVwib25EYXRlQ2hhbmdlKCRldmVudClcIiBbbWluXT1cIm1pbkRhdGVcIiBbbWF4XT1cIm1heERhdGVcIlxuICAgICAgICAoZm9jdXMpPVwiZW5hYmxlZENvbW1pdE9uVGFiUHJlc3MgPSBmYWxzZVwiPlxuXG4gICAgICA8bWF0LWRhdGVwaWNrZXIgI2QgW3N0YXJ0Vmlld109XCJvU3RhcnRWaWV3XCIgW3N0YXJ0QXRdPVwib0RhdGVTdGFydEF0XCIgW3RvdWNoVWldPVwib0RhdGVUb3VjaFVpXCJcbiAgICAgICAgKGNsb3NlZCk9XCJvbkRhdGVwaWNrZXJDbG9zZWQoKVwiPlxuICAgICAgPC9tYXQtZGF0ZXBpY2tlcj5cblxuICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLWJ0blwiIChjbGljayk9XCJvcGVuRGF0ZXBpY2tlcihkKVwiIG1hdFN1ZmZpeD5cbiAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJvbnRpbWl6ZTp0b2RheVwiPjwvbWF0LWljb24+XG4gICAgICA8L3NwYW4+XG5cbiAgICAgIDxtYXQtZXJyb3IgKm9NYXRFcnJvcj1cImhhc0Vycm9yRGF0ZSgncmVxdWlyZWQnKSB8fCBoYXNFcnJvckhvdXIoJ3JlcXVpcmVkJylcIj5cbiAgICAgICAge3sgJ0ZPUk1fVkFMSURBVElPTi5SRVFVSVJFRCcgfCBvVHJhbnNsYXRlIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm9NYXRFcnJvcj1cImhhc0Vycm9yRGF0ZSgnbWF0RGF0ZXBpY2tlclBhcnNlJylcIj5cbiAgICAgICAge3sgJ0ZPUk1fVkFMSURBVElPTi5EQVRFX1BBUlNFJyB8IG9UcmFuc2xhdGUgfX0ge3sgb0hvdXJGb3JtYXQgfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPG1hdC1lcnJvciAqb01hdEVycm9yPVwiaGFzRXJyb3JEYXRlKCdtYXREYXRlcGlja2VyRmlsdGVyJylcIj5cbiAgICAgICAge3sgJ0ZPUk1fVkFMSURBVElPTi5EQVRFX0ZJTFRFUicgfCBvVHJhbnNsYXRlIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm9NYXRFcnJvcj1cImhhc0Vycm9yRGF0ZSgnbWF0RGF0ZXBpY2tlck1pbicpXCI+XG4gICAgICAgIHt7ICdGT1JNX1ZBTElEQVRJT04uREFURV9NSU4nIHwgb1RyYW5zbGF0ZSB9fSB7eyBtaW5EYXRlU3RyaW5nIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm9NYXRFcnJvcj1cImhhc0Vycm9yRGF0ZSgnbWF0RGF0ZXBpY2tlck1heCcpXCI+XG4gICAgICAgIHt7ICdGT1JNX1ZBTElEQVRJT04uREFURV9NQVgnIHwgb1RyYW5zbGF0ZSB9fSB7eyBtYXhEYXRlU3RyaW5nIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nRm9yPVwibGV0IG9FcnJvciBvZiBnZXRBY3RpdmVPRXJyb3JzKClcIj5cbiAgICAgICAge3sgZ2V0RXJyb3JUZXh0KG9FcnJvcikgfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+Jm5kYXNoOzwvc3Bhbj5cblxuICAgIDxtYXQtZm9ybS1maWVsZD5cblxuICAgICAgPGlucHV0ICNob3VySW5wdXQgbWF0SW5wdXQgW25neFRpbWVwaWNrZXJdPVwicGlja2VyXCIgW3BsYWNlaG9sZGVyXT1cImdldFBsYWNlaG9sZGVySG91cigpXCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sSG91clwiIFtyZXF1aXJlZF09XCJvcmVxdWlyZWRcIiAoY2hhbmdlKT1cIm9uSG91ckNoYW5nZSgkZXZlbnQpXCIgW21pbl09XCJvSG91ck1pblwiXG4gICAgICAgIFttYXhdPVwib0hvdXJNYXhcIiAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiIFtkaXNhYmxlQ2xpY2tdPVwidHJ1ZVwiIFtmb3JtYXRdPVwib0hvdXJGb3JtYXRcIlxuICAgICAgICAoYmx1cik9XCJlbmFibGVkQ29tbWl0T25UYWJQcmVzcyA9IHRydWVcIj5cblxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwib3BlbigkZXZlbnQpXCI+XG4gICAgICAgIDxtYXQtaWNvbiBuZ3hNYXRlcmlhbFRpbWVwaWNrZXJUb2dnbGVJY29uIHN2Z0ljb249XCJvbnRpbWl6ZTpjbG9ja1wiPjwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPG1hdC1lcnJvciAqb01hdEVycm9yPVwiaGFzRXJyb3JIb3VyKCdpbnZhbGlkRm9ybWF0SG91cicpXCI+XG4gICAgICAgIHt7ICdGT1JNX1ZBTElEQVRJT04uSE9VUl9GT1JNQVQnIHwgb1RyYW5zbGF0ZSB9fSB7eyBmb3JtYXRTdHJpbmcgfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPG1hdC1lcnJvciAqbmdGb3I9XCJsZXQgb0Vycm9yIG9mIGdldEFjdGl2ZU9FcnJvcnMoKVwiPlxuICAgICAgICB7eyBvRXJyb3IudGV4dCB8IG9UcmFuc2xhdGUgfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDxuZ3gtbWF0ZXJpYWwtdGltZXBpY2tlciAjcGlja2VyICh0aW1lU2V0KT1cIm9uSG91ckNoYW5nZSgkZXZlbnQpXCIgW2NvbmZpcm1CdG5UbXBsXT1cImNvbmZpcm1CdG5cIlxuICAgICAgW2NhbmNlbEJ0blRtcGxdPVwiY2FuY2VsQnRuXCIgKGNsb3NlZCk9XCJvblRpbWVwaWNrZXJDbG9zZWQoKVwiPjwvbmd4LW1hdGVyaWFsLXRpbWVwaWNrZXI+XG4gICAgPG5nLXRlbXBsYXRlICNjb25maXJtQnRuPlxuICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gdHlwZT1cImJ1dHRvblwiPjxzcGFuPnt7J09LJyB8IG9UcmFuc2xhdGV9fTwvc3Bhbj48L2J1dHRvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2FuY2VsQnRuPlxuICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gdHlwZT1cImJ1dHRvblwiPjxzcGFuPnt7J0NBTkNFTCcgfCBvVHJhbnNsYXRlfX08L3NwYW4+PC9idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG5cbjwvbmctdGVtcGxhdGU+Il19
@@ -83,13 +83,13 @@ export class OTableCellRendererActionComponent extends OBaseTableCellRenderer {
83
83
  return Util.isDefined(this.svgIcon) && this.iconPosition === Codes.ICON_POSITION_LEFT;
84
84
  }
85
85
  }
86
- OTableCellRendererActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableCellRendererActionComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
87
- OTableCellRendererActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OTableCellRendererActionComponent, selector: "o-table-cell-renderer-action", inputs: { icon: "icon", svgIcon: ["svg-icon", "svgIcon"], action: "action", text: "text", iconPosition: ["icon-position", "iconPosition"] }, outputs: { onClick: "onClick" }, viewQueries: [{ propertyName: "templateref", first: true, predicate: ["templateref"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #templateref let-cellvalue=\"cellvalue\" let-rowvalue=\"rowvalue\">\n <span class=\"o-action-cell-renderer\" (click)=\"innerOnClick($event, rowvalue)\">\n <mat-icon *ngIf=\"isIconPositionLeft()\">{{ icon }}</mat-icon>\n <mat-icon *ngIf=\"isSvgIconPositionLeft()\" [svgIcon]=\"svgIcon\"></mat-icon>\n <span *ngIf=\"text !== undefined\">{{ text | oTranslate }}</span>\n <mat-icon *ngIf=\"isIconPositionRight()\">{{ icon }}</mat-icon>\n <mat-icon *ngIf=\"isSvgIconPositionRight()\" [svgIcon]=\"svgIcon\"></mat-icon>\n </span>\n</ng-template>", styles: [":host .mat-icon{margin:0 4px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i3.OTranslatePipe, name: "oTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableCellRendererActionComponent, decorators: [{
86
+ OTableCellRendererActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTableCellRendererActionComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
87
+ OTableCellRendererActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OTableCellRendererActionComponent, selector: "o-table-cell-renderer-action", inputs: { icon: "icon", svgIcon: ["svg-icon", "svgIcon"], action: "action", text: "text", iconPosition: ["icon-position", "iconPosition"] }, outputs: { onClick: "onClick" }, viewQueries: [{ propertyName: "templateref", first: true, predicate: ["templateref"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #templateref let-cellvalue=\"cellvalue\" let-rowvalue=\"rowvalue\">\n <span class=\"o-action-cell-renderer\" (click)=\"innerOnClick($event, rowvalue)\">\n <mat-icon *ngIf=\"isIconPositionLeft()\">{{ icon }}</mat-icon>\n <mat-icon *ngIf=\"isSvgIconPositionLeft()\" [svgIcon]=\"svgIcon\"></mat-icon>\n <span *ngIf=\"text !== undefined\">{{ text | oTranslate }}</span>\n <mat-icon *ngIf=\"isIconPositionRight()\">{{ icon }}</mat-icon>\n <mat-icon *ngIf=\"isSvgIconPositionRight()\" [svgIcon]=\"svgIcon\"></mat-icon>\n </span>\n</ng-template>", styles: [":host .mat-icon{margin:0 4px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i3.OTranslatePipe, name: "oTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTableCellRendererActionComponent, decorators: [{
89
89
  type: Component,
90
90
  args: [{ selector: 'o-table-cell-renderer-action', changeDetection: ChangeDetectionStrategy.OnPush, inputs: DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_ACTION, outputs: DEFAULT_OUTPUTS_O_TABLE_CELL_RENDERER_ACTION, template: "<ng-template #templateref let-cellvalue=\"cellvalue\" let-rowvalue=\"rowvalue\">\n <span class=\"o-action-cell-renderer\" (click)=\"innerOnClick($event, rowvalue)\">\n <mat-icon *ngIf=\"isIconPositionLeft()\">{{ icon }}</mat-icon>\n <mat-icon *ngIf=\"isSvgIconPositionLeft()\" [svgIcon]=\"svgIcon\"></mat-icon>\n <span *ngIf=\"text !== undefined\">{{ text | oTranslate }}</span>\n <mat-icon *ngIf=\"isIconPositionRight()\">{{ icon }}</mat-icon>\n <mat-icon *ngIf=\"isSvgIconPositionRight()\" [svgIcon]=\"svgIcon\"></mat-icon>\n </span>\n</ng-template>", styles: [":host .mat-icon{margin:0 4px}\n"] }]
91
91
  }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { templateref: [{
92
92
  type: ViewChild,
93
93
  args: ['templateref', { read: TemplateRef, static: true }]
94
94
  }] } });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jZWxsLXJlbmRlcmVyLWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9jb2x1bW4vY2VsbC1yZW5kZXJlci9hY3Rpb24vby10YWJsZS1jZWxsLXJlbmRlcmVyLWFjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9jb2x1bW4vY2VsbC1yZW5kZXJlci9hY3Rpb24vby10YWJsZS1jZWxsLXJlbmRlcmVyLWFjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQVUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzSCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7OztBQUU3RSxNQUFNLENBQUMsTUFBTSwyQ0FBMkMsR0FBRztJQUN6RCxNQUFNO0lBQ04sa0JBQWtCO0lBQ2xCLFFBQVE7SUFDUixNQUFNO0lBQ04sNkJBQTZCO0NBQzlCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw0Q0FBNEMsR0FBRztJQUMxRCxTQUFTO0NBQ1YsQ0FBQztBQVVGLE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxzQkFBc0I7SUFXM0UsWUFBc0IsUUFBa0I7UUFDdEMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBREksYUFBUSxHQUFSLFFBQVEsQ0FBVTtR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ekYsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssS0FBSyxDQUFDLGtCQUFrQixDQUFDO0lBQ3hGLENBQUM7OytIQWpGVSxpQ0FBaUM7bUhBQWpDLGlDQUFpQyx5VUFTVixXQUFXLGtFQ25DL0MsMGpCQVFjOzRGRGtCRCxpQ0FBaUM7a0JBUjdDLFNBQVM7K0JBQ0UsOEJBQThCLG1CQUd2Qix1QkFBdUIsQ0FBQyxNQUFNLFVBQ3ZDLDJDQUEyQyxXQUMxQyw0Q0FBNEM7K0ZBV2lCLFdBQVc7c0JBQWhGLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvZGVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbC9jb2Rlcyc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IE9CYXNlVGFibGVDZWxsUmVuZGVyZXIgfSBmcm9tICcuLi9vLWJhc2UtdGFibGUtY2VsbC1yZW5kZXJlci5jbGFzcyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0lOUFVUU19PX1RBQkxFX0NFTExfUkVOREVSRVJfQUNUSU9OID0gW1xuICAnaWNvbicsXG4gICdzdmdJY29uOnN2Zy1pY29uJyxcbiAgJ2FjdGlvbicsXG4gICd0ZXh0JyxcbiAgJ2ljb25Qb3NpdGlvbjogaWNvbi1wb3NpdGlvbidcbl07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX09VVFBVVFNfT19UQUJMRV9DRUxMX1JFTkRFUkVSX0FDVElPTiA9IFtcbiAgJ29uQ2xpY2snXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLXRhYmxlLWNlbGwtcmVuZGVyZXItYWN0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tdGFibGUtY2VsbC1yZW5kZXJlci1hY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vLXRhYmxlLWNlbGwtcmVuZGVyZXItYWN0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbnB1dHM6IERFRkFVTFRfSU5QVVRTX09fVEFCTEVfQ0VMTF9SRU5ERVJFUl9BQ1RJT04sXG4gIG91dHB1dHM6IERFRkFVTFRfT1VUUFVUU19PX1RBQkxFX0NFTExfUkVOREVSRVJfQUNUSU9OXG59KVxuZXhwb3J0IGNsYXNzIE9UYWJsZUNlbGxSZW5kZXJlckFjdGlvbkNvbXBvbmVudCBleHRlbmRzIE9CYXNlVGFibGVDZWxsUmVuZGVyZXIgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxvYmplY3Q+ID0gbmV3IEV2ZW50RW1pdHRlcjxvYmplY3Q+KCk7XG4gIGFjdGlvbjogc3RyaW5nO1xuICBfaWNvbjogc3RyaW5nO1xuICB0ZXh0OiBzdHJpbmc7XG4gIGljb25Qb3NpdGlvbjogc3RyaW5nO1xuICBwdWJsaWMgc3ZnSWNvbjogc3RyaW5nO1xuXG4gIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlcmVmJywgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyB0ZW1wbGF0ZXJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIHRoaXMudGFibGVDb2x1bW4udHlwZSA9ICdhY3Rpb24nO1xuICAgIHRoaXMudGFibGVDb2x1bW4ub3JkZXJhYmxlID0gZmFsc2U7XG4gICAgdGhpcy50YWJsZUNvbHVtbi5zZWFyY2hhYmxlID0gZmFsc2U7XG4gICAgdGhpcy50YWJsZUNvbHVtbi5ncm91cGFibGUgPSBmYWxzZTtcbiAgfVxuXG4gIGluaXRpYWxpemUoKSB7XG4gICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgIGlmICh0aGlzLnRhYmxlKSB7XG4gICAgICBjb25zdCBvQ29sID0gdGhpcy50YWJsZS5nZXRPQ29sdW1uKHRoaXMudGFibGVDb2x1bW4uYXR0cik7XG4gICAgICBvQ29sLnRpdGxlID0gVXRpbC5pc0RlZmluZWQodGhpcy50YWJsZUNvbHVtbi50aXRsZSkgPyB0aGlzLnRhYmxlQ29sdW1uLnRpdGxlIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICB0aGlzLmljb25Qb3NpdGlvbiA9IFV0aWwucGFyc2VJY29uUG9zaXRpb24odGhpcy5pY29uUG9zaXRpb24pO1xuICB9XG5cbiAgZ2V0Q2VsbERhdGEodmFsdWU6IGFueSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGlubmVyT25DbGljayhldmVudCwgcm93RGF0YSkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy50YWJsZS5yZWFkT25seSkge1xuICAgICAgaWYgKHRoaXMudGFibGUuc2hvd05vdGlmaWNhdGlvbk9mUmVhZE9ubHkpIHtcbiAgICAgICAgdGhpcy50YWJsZS5nZXRTbmFja1NlcnZpY2UoKS5vcGVuKCdNRVNTQUdFUy5PUEVSQVRJT05fTk9UX0FMTE9XRURfUkVBRE9OTFknKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHRoaXMuYWN0aW9uKSkge1xuICAgICAgc3dpdGNoICh0aGlzLmFjdGlvbi50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgIGNhc2UgJ2RldGFpbCc6XG4gICAgICAgICAgdGhpcy50YWJsZS52aWV3RGV0YWlsKHJvd0RhdGEpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdlZGl0JzpcbiAgICAgICAgICB0aGlzLnRhYmxlLmVkaXREZXRhaWwocm93RGF0YSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub25DbGljay5lbWl0KHJvd0RhdGEpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpY29uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2ljb247XG4gIH1cblxuICBzZXQgaWNvbihhcmc6IHN0cmluZykge1xuICAgIHRoaXMuX2ljb24gPSBhcmc7XG4gIH1cblxuICBpc0ljb25Qb3NpdGlvbkxlZnQoKSB7XG4gICAgcmV0dXJuIFV0aWwuaXNEZWZpbmVkKHRoaXMuaWNvbikgJiYgdGhpcy5pY29uUG9zaXRpb24gPT09IENvZGVzLklDT05fUE9TSVRJT05fTEVGVDtcbiAgfVxuXG4gIGlzSWNvblBvc2l0aW9uUmlnaHQoKSB7XG4gICAgcmV0dXJuIFV0aWwuaXNEZWZpbmVkKHRoaXMuaWNvbikgJiYgdGhpcy5pY29uUG9zaXRpb24gPT09IENvZGVzLklDT05fUE9TSVRJT05fUklHSFQ7XG4gIH1cblxuICBpc1N2Z0ljb25Qb3NpdGlvblJpZ2h0KCkge1xuICAgIHJldHVybiBVdGlsLmlzRGVmaW5lZCh0aGlzLnN2Z0ljb24pICYmIHRoaXMuaWNvblBvc2l0aW9uID09PSBDb2Rlcy5JQ09OX1BPU0lUSU9OX1JJR0hUO1xuICB9XG5cbiAgaXNTdmdJY29uUG9zaXRpb25MZWZ0KCkge1xuICAgIHJldHVybiBVdGlsLmlzRGVmaW5lZCh0aGlzLnN2Z0ljb24pICYmIHRoaXMuaWNvblBvc2l0aW9uID09PSBDb2Rlcy5JQ09OX1BPU0lUSU9OX0xFRlQ7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVyZWYgbGV0LWNlbGx2YWx1ZT1cImNlbGx2YWx1ZVwiIGxldC1yb3d2YWx1ZT1cInJvd3ZhbHVlXCI+XG4gIDxzcGFuIGNsYXNzPVwiby1hY3Rpb24tY2VsbC1yZW5kZXJlclwiIChjbGljayk9XCJpbm5lck9uQ2xpY2soJGV2ZW50LCByb3d2YWx1ZSlcIj5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJpc0ljb25Qb3NpdGlvbkxlZnQoKVwiPnt7IGljb24gfX08L21hdC1pY29uPlxuICAgIDxtYXQtaWNvbiAqbmdJZj1cImlzU3ZnSWNvblBvc2l0aW9uTGVmdCgpXCIgW3N2Z0ljb25dPVwic3ZnSWNvblwiPjwvbWF0LWljb24+XG4gICAgPHNwYW4gKm5nSWY9XCJ0ZXh0ICE9PSB1bmRlZmluZWRcIj57eyB0ZXh0IHwgb1RyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJpc0ljb25Qb3NpdGlvblJpZ2h0KClcIj57eyBpY29uIH19PC9tYXQtaWNvbj5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJpc1N2Z0ljb25Qb3NpdGlvblJpZ2h0KClcIiBbc3ZnSWNvbl09XCJzdmdJY29uXCI+PC9tYXQtaWNvbj5cbiAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jZWxsLXJlbmRlcmVyLWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9jb2x1bW4vY2VsbC1yZW5kZXJlci9hY3Rpb24vby10YWJsZS1jZWxsLXJlbmRlcmVyLWFjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9jb2x1bW4vY2VsbC1yZW5kZXJlci9hY3Rpb24vby10YWJsZS1jZWxsLXJlbmRlcmVyLWFjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQVUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzSCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7OztBQUU3RSxNQUFNLENBQUMsTUFBTSwyQ0FBMkMsR0FBRztJQUN6RCxNQUFNO0lBQ04sa0JBQWtCO0lBQ2xCLFFBQVE7SUFDUixNQUFNO0lBQ04sNkJBQTZCO0NBQzlCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw0Q0FBNEMsR0FBRztJQUMxRCxTQUFTO0NBQ1YsQ0FBQztBQVVGLE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxzQkFBc0I7SUFXM0UsWUFBc0IsUUFBa0I7UUFDdEMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBREksYUFBUSxHQUFSLFFBQVEsQ0FBVTtR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ekYsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssS0FBSyxDQUFDLGtCQUFrQixDQUFDO0lBQ3hGLENBQUM7OzhIQWpGVSxpQ0FBaUM7a0hBQWpDLGlDQUFpQyx5VUFTVixXQUFXLGtFQ25DL0MsMGpCQVFjOzJGRGtCRCxpQ0FBaUM7a0JBUjdDLFNBQVM7K0JBQ0UsOEJBQThCLG1CQUd2Qix1QkFBdUIsQ0FBQyxNQUFNLFVBQ3ZDLDJDQUEyQyxXQUMxQyw0Q0FBNEM7K0ZBV2lCLFdBQVc7c0JBQWhGLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvZGVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbC9jb2Rlcyc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IE9CYXNlVGFibGVDZWxsUmVuZGVyZXIgfSBmcm9tICcuLi9vLWJhc2UtdGFibGUtY2VsbC1yZW5kZXJlci5jbGFzcyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0lOUFVUU19PX1RBQkxFX0NFTExfUkVOREVSRVJfQUNUSU9OID0gW1xuICAnaWNvbicsXG4gICdzdmdJY29uOnN2Zy1pY29uJyxcbiAgJ2FjdGlvbicsXG4gICd0ZXh0JyxcbiAgJ2ljb25Qb3NpdGlvbjogaWNvbi1wb3NpdGlvbidcbl07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX09VVFBVVFNfT19UQUJMRV9DRUxMX1JFTkRFUkVSX0FDVElPTiA9IFtcbiAgJ29uQ2xpY2snXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLXRhYmxlLWNlbGwtcmVuZGVyZXItYWN0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tdGFibGUtY2VsbC1yZW5kZXJlci1hY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vLXRhYmxlLWNlbGwtcmVuZGVyZXItYWN0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbnB1dHM6IERFRkFVTFRfSU5QVVRTX09fVEFCTEVfQ0VMTF9SRU5ERVJFUl9BQ1RJT04sXG4gIG91dHB1dHM6IERFRkFVTFRfT1VUUFVUU19PX1RBQkxFX0NFTExfUkVOREVSRVJfQUNUSU9OXG59KVxuZXhwb3J0IGNsYXNzIE9UYWJsZUNlbGxSZW5kZXJlckFjdGlvbkNvbXBvbmVudCBleHRlbmRzIE9CYXNlVGFibGVDZWxsUmVuZGVyZXIgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxvYmplY3Q+ID0gbmV3IEV2ZW50RW1pdHRlcjxvYmplY3Q+KCk7XG4gIGFjdGlvbjogc3RyaW5nO1xuICBfaWNvbjogc3RyaW5nO1xuICB0ZXh0OiBzdHJpbmc7XG4gIGljb25Qb3NpdGlvbjogc3RyaW5nO1xuICBwdWJsaWMgc3ZnSWNvbjogc3RyaW5nO1xuXG4gIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlcmVmJywgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyB0ZW1wbGF0ZXJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIHRoaXMudGFibGVDb2x1bW4udHlwZSA9ICdhY3Rpb24nO1xuICAgIHRoaXMudGFibGVDb2x1bW4ub3JkZXJhYmxlID0gZmFsc2U7XG4gICAgdGhpcy50YWJsZUNvbHVtbi5zZWFyY2hhYmxlID0gZmFsc2U7XG4gICAgdGhpcy50YWJsZUNvbHVtbi5ncm91cGFibGUgPSBmYWxzZTtcbiAgfVxuXG4gIGluaXRpYWxpemUoKSB7XG4gICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgIGlmICh0aGlzLnRhYmxlKSB7XG4gICAgICBjb25zdCBvQ29sID0gdGhpcy50YWJsZS5nZXRPQ29sdW1uKHRoaXMudGFibGVDb2x1bW4uYXR0cik7XG4gICAgICBvQ29sLnRpdGxlID0gVXRpbC5pc0RlZmluZWQodGhpcy50YWJsZUNvbHVtbi50aXRsZSkgPyB0aGlzLnRhYmxlQ29sdW1uLnRpdGxlIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICB0aGlzLmljb25Qb3NpdGlvbiA9IFV0aWwucGFyc2VJY29uUG9zaXRpb24odGhpcy5pY29uUG9zaXRpb24pO1xuICB9XG5cbiAgZ2V0Q2VsbERhdGEodmFsdWU6IGFueSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGlubmVyT25DbGljayhldmVudCwgcm93RGF0YSkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy50YWJsZS5yZWFkT25seSkge1xuICAgICAgaWYgKHRoaXMudGFibGUuc2hvd05vdGlmaWNhdGlvbk9mUmVhZE9ubHkpIHtcbiAgICAgICAgdGhpcy50YWJsZS5nZXRTbmFja1NlcnZpY2UoKS5vcGVuKCdNRVNTQUdFUy5PUEVSQVRJT05fTk9UX0FMTE9XRURfUkVBRE9OTFknKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHRoaXMuYWN0aW9uKSkge1xuICAgICAgc3dpdGNoICh0aGlzLmFjdGlvbi50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgIGNhc2UgJ2RldGFpbCc6XG4gICAgICAgICAgdGhpcy50YWJsZS52aWV3RGV0YWlsKHJvd0RhdGEpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdlZGl0JzpcbiAgICAgICAgICB0aGlzLnRhYmxlLmVkaXREZXRhaWwocm93RGF0YSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub25DbGljay5lbWl0KHJvd0RhdGEpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpY29uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2ljb247XG4gIH1cblxuICBzZXQgaWNvbihhcmc6IHN0cmluZykge1xuICAgIHRoaXMuX2ljb24gPSBhcmc7XG4gIH1cblxuICBpc0ljb25Qb3NpdGlvbkxlZnQoKSB7XG4gICAgcmV0dXJuIFV0aWwuaXNEZWZpbmVkKHRoaXMuaWNvbikgJiYgdGhpcy5pY29uUG9zaXRpb24gPT09IENvZGVzLklDT05fUE9TSVRJT05fTEVGVDtcbiAgfVxuXG4gIGlzSWNvblBvc2l0aW9uUmlnaHQoKSB7XG4gICAgcmV0dXJuIFV0aWwuaXNEZWZpbmVkKHRoaXMuaWNvbikgJiYgdGhpcy5pY29uUG9zaXRpb24gPT09IENvZGVzLklDT05fUE9TSVRJT05fUklHSFQ7XG4gIH1cblxuICBpc1N2Z0ljb25Qb3NpdGlvblJpZ2h0KCkge1xuICAgIHJldHVybiBVdGlsLmlzRGVmaW5lZCh0aGlzLnN2Z0ljb24pICYmIHRoaXMuaWNvblBvc2l0aW9uID09PSBDb2Rlcy5JQ09OX1BPU0lUSU9OX1JJR0hUO1xuICB9XG5cbiAgaXNTdmdJY29uUG9zaXRpb25MZWZ0KCkge1xuICAgIHJldHVybiBVdGlsLmlzRGVmaW5lZCh0aGlzLnN2Z0ljb24pICYmIHRoaXMuaWNvblBvc2l0aW9uID09PSBDb2Rlcy5JQ09OX1BPU0lUSU9OX0xFRlQ7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVyZWYgbGV0LWNlbGx2YWx1ZT1cImNlbGx2YWx1ZVwiIGxldC1yb3d2YWx1ZT1cInJvd3ZhbHVlXCI+XG4gIDxzcGFuIGNsYXNzPVwiby1hY3Rpb24tY2VsbC1yZW5kZXJlclwiIChjbGljayk9XCJpbm5lck9uQ2xpY2soJGV2ZW50LCByb3d2YWx1ZSlcIj5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJpc0ljb25Qb3NpdGlvbkxlZnQoKVwiPnt7IGljb24gfX08L21hdC1pY29uPlxuICAgIDxtYXQtaWNvbiAqbmdJZj1cImlzU3ZnSWNvblBvc2l0aW9uTGVmdCgpXCIgW3N2Z0ljb25dPVwic3ZnSWNvblwiPjwvbWF0LWljb24+XG4gICAgPHNwYW4gKm5nSWY9XCJ0ZXh0ICE9PSB1bmRlZmluZWRcIj57eyB0ZXh0IHwgb1RyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJpc0ljb25Qb3NpdGlvblJpZ2h0KClcIj57eyBpY29uIH19PC9tYXQtaWNvbj5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJpc1N2Z0ljb25Qb3NpdGlvblJpZ2h0KClcIiBbc3ZnSWNvbl09XCJzdmdJY29uXCI+PC9tYXQtaWNvbj5cbiAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
@@ -118,13 +118,13 @@ export class OTableCellRendererBooleanComponent extends OBaseTableCellRenderer {
118
118
  this._renderFalseValue = arg;
119
119
  }
120
120
  }
121
- OTableCellRendererBooleanComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableCellRendererBooleanComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
122
- OTableCellRendererBooleanComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OTableCellRendererBooleanComponent, selector: "o-table-cell-renderer-boolean", inputs: { trueValue: ["true-value", "trueValue"], falseValue: ["false-value", "falseValue"], booleanType: ["boolean-type", "booleanType"], renderTrueValue: ["render-true-value", "renderTrueValue"], renderFalseValue: ["render-false-value", "renderFalseValue"], renderType: ["render-type", "renderType"] }, viewQueries: [{ propertyName: "templateref", first: true, predicate: ["templateref"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #templateref let-cellvalue=\"cellvalue\">\n <ng-container *ngIf=\"hasCellDataTrueValue(cellvalue)\">\n <ng-container [ngSwitch]=\"renderType\">\n <ng-container *ngSwitchCase=\"'number'\">{{ renderTrueValue }}</ng-container>\n <ng-container *ngSwitchCase=\"'icon'\">\n <mat-icon class=\"material-icons\"> {{ renderTrueValue }}</mat-icon>\n </ng-container>\n <ng-container *ngSwitchCase=\"'image'\">\n <img [src]=\"renderTrueValue\" alt=\"image for true value\"/>\n </ng-container>\n <span *ngSwitchDefault>{{ renderTrueValue | oTranslate }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!hasCellDataTrueValue(cellvalue)\">\n <ng-container [ngSwitch]=\"renderType\">\n <ng-container *ngSwitchCase=\"'number'\">{{ renderFalseValue }}</ng-container>\n <ng-container *ngSwitchCase=\"'icon'\">\n <mat-icon class=\"material-icons\"> {{ renderFalseValue }}</mat-icon>\n </ng-container>\n <ng-container *ngSwitchCase=\"'image'\">\n <img [src]=\"renderFalseValue\" alt=\"image for false value\" />\n </ng-container>\n <ng-container *ngSwitchDefault>{{ renderFalseValue | oTranslate}}</ng-container>\n </ng-container>\n </ng-container>\n</ng-template>", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i3.OTranslatePipe, name: "oTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
123
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableCellRendererBooleanComponent, decorators: [{
121
+ OTableCellRendererBooleanComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTableCellRendererBooleanComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
122
+ OTableCellRendererBooleanComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OTableCellRendererBooleanComponent, selector: "o-table-cell-renderer-boolean", inputs: { trueValue: ["true-value", "trueValue"], falseValue: ["false-value", "falseValue"], booleanType: ["boolean-type", "booleanType"], renderTrueValue: ["render-true-value", "renderTrueValue"], renderFalseValue: ["render-false-value", "renderFalseValue"], renderType: ["render-type", "renderType"] }, viewQueries: [{ propertyName: "templateref", first: true, predicate: ["templateref"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #templateref let-cellvalue=\"cellvalue\">\n <ng-container *ngIf=\"hasCellDataTrueValue(cellvalue)\">\n <ng-container [ngSwitch]=\"renderType\">\n <ng-container *ngSwitchCase=\"'number'\">{{ renderTrueValue }}</ng-container>\n <ng-container *ngSwitchCase=\"'icon'\">\n <mat-icon class=\"material-icons\"> {{ renderTrueValue }}</mat-icon>\n </ng-container>\n <ng-container *ngSwitchCase=\"'image'\">\n <img [src]=\"renderTrueValue\" alt=\"image for true value\"/>\n </ng-container>\n <span *ngSwitchDefault>{{ renderTrueValue | oTranslate }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!hasCellDataTrueValue(cellvalue)\">\n <ng-container [ngSwitch]=\"renderType\">\n <ng-container *ngSwitchCase=\"'number'\">{{ renderFalseValue }}</ng-container>\n <ng-container *ngSwitchCase=\"'icon'\">\n <mat-icon class=\"material-icons\"> {{ renderFalseValue }}</mat-icon>\n </ng-container>\n <ng-container *ngSwitchCase=\"'image'\">\n <img [src]=\"renderFalseValue\" alt=\"image for false value\" />\n </ng-container>\n <ng-container *ngSwitchDefault>{{ renderFalseValue | oTranslate}}</ng-container>\n </ng-container>\n </ng-container>\n</ng-template>", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i3.OTranslatePipe, name: "oTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTableCellRendererBooleanComponent, decorators: [{
124
124
  type: Component,
125
125
  args: [{ selector: 'o-table-cell-renderer-boolean', changeDetection: ChangeDetectionStrategy.OnPush, inputs: DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_BOOLEAN, template: "<ng-template #templateref let-cellvalue=\"cellvalue\">\n <ng-container *ngIf=\"hasCellDataTrueValue(cellvalue)\">\n <ng-container [ngSwitch]=\"renderType\">\n <ng-container *ngSwitchCase=\"'number'\">{{ renderTrueValue }}</ng-container>\n <ng-container *ngSwitchCase=\"'icon'\">\n <mat-icon class=\"material-icons\"> {{ renderTrueValue }}</mat-icon>\n </ng-container>\n <ng-container *ngSwitchCase=\"'image'\">\n <img [src]=\"renderTrueValue\" alt=\"image for true value\"/>\n </ng-container>\n <span *ngSwitchDefault>{{ renderTrueValue | oTranslate }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!hasCellDataTrueValue(cellvalue)\">\n <ng-container [ngSwitch]=\"renderType\">\n <ng-container *ngSwitchCase=\"'number'\">{{ renderFalseValue }}</ng-container>\n <ng-container *ngSwitchCase=\"'icon'\">\n <mat-icon class=\"material-icons\"> {{ renderFalseValue }}</mat-icon>\n </ng-container>\n <ng-container *ngSwitchCase=\"'image'\">\n <img [src]=\"renderFalseValue\" alt=\"image for false value\" />\n </ng-container>\n <ng-container *ngSwitchDefault>{{ renderFalseValue | oTranslate}}</ng-container>\n </ng-container>\n </ng-container>\n</ng-template>" }]
126
126
  }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { templateref: [{
127
127
  type: ViewChild,
128
128
  args: ['templateref', { read: TemplateRef, static: true }]
129
129
  }] } });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jZWxsLXJlbmRlcmVyLWJvb2xlYW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvY29sdW1uL2NlbGwtcmVuZGVyZXIvYm9vbGVhbi9vLXRhYmxlLWNlbGwtcmVuZGVyZXItYm9vbGVhbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9jb2x1bW4vY2VsbC1yZW5kZXJlci9ib29sZWFuL28tdGFibGUtY2VsbC1yZW5kZXJlci1ib29sZWFuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFVLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0csT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDMUYsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7OztBQUU3RSxNQUFNLENBQUMsTUFBTSw0Q0FBNEMsR0FBRztJQUUxRCx1QkFBdUI7SUFFdkIseUJBQXlCO0lBRXpCLDJCQUEyQjtJQUUzQixvQ0FBb0M7SUFDcEMsc0NBQXNDO0lBRXRDLHlCQUF5QjtDQUMxQixDQUFDO0FBUUYsTUFBTSxPQUFPLGtDQUFtQyxTQUFRLHNCQUFzQjtJQWM1RSxZQUFzQixRQUFrQjtRQUN0QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFESSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBUDlCLGdCQUFXLEdBQVcsUUFBUSxDQUFDO1FBQy9CLGlC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SSxDQUFDLFVBQVUsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFXO1FBQzlCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLENBQUM7SUFDL0IsQ0FBQzs7Z0lBOUhVLGtDQUFrQztvSEFBbEMsa0NBQWtDLDZjQVdYLFdBQVcsa0VDckMvQyxnd0NBeUJjOzRGRENELGtDQUFrQztrQkFOOUMsU0FBUzsrQkFDRSwrQkFBK0IsbUJBRXhCLHVCQUF1QixDQUFDLE1BQU0sVUFDdkMsNENBQTRDOytGQWNwRCxXQUFXO3NCQURWLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0b3IsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS9vLXRyYW5zbGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgT0Jhc2VUYWJsZUNlbGxSZW5kZXJlciB9IGZyb20gJy4uL28tYmFzZS10YWJsZS1jZWxsLXJlbmRlcmVyLmNsYXNzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfSU5QVVRTX09fVEFCTEVfQ0VMTF9SRU5ERVJFUl9CT09MRUFOID0gW1xuICAvLyB0cnVlLXZhbHVlIFtzdHJpbmddOiB0cnVlIHZhbHVlLiBEZWZhdWx0OiBubyB2YWx1ZS5cbiAgJ3RydWVWYWx1ZTogdHJ1ZS12YWx1ZScsXG4gIC8vIGZhbHNlLXZhbHVlIFtzdHJpbmddOiBmYWxzZSB2YWx1ZS4gRGVmYXVsdDogbm8gdmFsdWUuXG4gICdmYWxzZVZhbHVlOiBmYWxzZS12YWx1ZScsXG4gIC8vIGZhbHNlLXZhbHVlIFtudW1iZXJ8Ym9vbGVhbnxzdHJpbmddOiBjZWxsRGF0YSB2YWx1ZSB0eXBlLiBEZWZhdWx0OiBib29sZWFuXG4gICdib29sZWFuVHlwZTogYm9vbGVhbi10eXBlJyxcblxuICAncmVuZGVyVHJ1ZVZhbHVlOiByZW5kZXItdHJ1ZS12YWx1ZScsXG4gICdyZW5kZXJGYWxzZVZhbHVlOiByZW5kZXItZmFsc2UtdmFsdWUnLFxuICAvLyBbc3RyaW5nfG51bWJlcnxpY29ufGltYWdlXVxuICAncmVuZGVyVHlwZTogcmVuZGVyLXR5cGUnXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLXRhYmxlLWNlbGwtcmVuZGVyZXItYm9vbGVhbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9vLXRhYmxlLWNlbGwtcmVuZGVyZXItYm9vbGVhbi5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbnB1dHM6IERFRkFVTFRfSU5QVVRTX09fVEFCTEVfQ0VMTF9SRU5ERVJFUl9CT09MRUFOXG59KVxuZXhwb3J0IGNsYXNzIE9UYWJsZUNlbGxSZW5kZXJlckJvb2xlYW5Db21wb25lbnQgZXh0ZW5kcyBPQmFzZVRhYmxlQ2VsbFJlbmRlcmVyIGltcGxlbWVudHMgT25Jbml0IHtcblxuICB0cnVlVmFsdWU6IGFueTtcbiAgZmFsc2VWYWx1ZTogYW55O1xuICBwcm90ZWN0ZWQgX3JlbmRlclRydWVWYWx1ZTogYW55O1xuICBwcm90ZWN0ZWQgX3JlbmRlckZhbHNlVmFsdWU6IGFueTtcblxuICBwcm90ZWN0ZWQgX3JlbmRlclR5cGU6IHN0cmluZyA9ICdzdHJpbmcnO1xuICBwcm90ZWN0ZWQgX2Jvb2xlYW5UeXBlOiBzdHJpbmcgPSAnYm9vbGVhbic7XG4gIHByb3RlY3RlZCB0cmFuc2xhdGVTZXJ2aWNlOiBPVHJhbnNsYXRlU2VydmljZTtcblxuICBAVmlld0NoaWxkKCd0ZW1wbGF0ZXJlZicsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICB0ZW1wbGF0ZXJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIHRoaXMudGFibGVDb2x1bW4udHlwZSA9ICdib29sZWFuJztcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChPVHJhbnNsYXRlU2VydmljZSk7XG4gIH1cblxuICBpbml0aWFsaXplKCkge1xuICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICB0aGlzLnBhcnNlSW5wdXRzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VJbnB1dHMoKSB7XG4gICAgc3dpdGNoICh0aGlzLmJvb2xlYW5UeXBlKSB7XG4gICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICB0aGlzLnBhcnNlU3RyaW5nSW5wdXRzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgdGhpcy5wYXJzZU51bWJlcklucHV0cygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMudHJ1ZVZhbHVlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5mYWxzZVZhbHVlID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZVN0cmluZ0lucHV0cygpIHtcbiAgICBpZiAoKHRoaXMudHJ1ZVZhbHVlIHx8ICcnKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMudHJ1ZVZhbHVlID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAoKHRoaXMuZmFsc2VWYWx1ZSB8fCAnJykubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmZhbHNlVmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHBhcnNlTnVtYmVySW5wdXRzKCkge1xuICAgIHRoaXMudHJ1ZVZhbHVlID0gcGFyc2VJbnQodGhpcy50cnVlVmFsdWUsIDEwKTtcbiAgICBpZiAoaXNOYU4odGhpcy50cnVlVmFsdWUpKSB7XG4gICAgICB0aGlzLnRydWVWYWx1ZSA9IDE7XG4gICAgfVxuICAgIHRoaXMuZmFsc2VWYWx1ZSA9IHBhcnNlSW50KHRoaXMuZmFsc2VWYWx1ZSwgMTApO1xuICAgIGlmIChpc05hTih0aGlzLmZhbHNlVmFsdWUpKSB7XG4gICAgICB0aGlzLmZhbHNlVmFsdWUgPSAwO1xuICAgIH1cbiAgfVxuXG4gIGhhc0NlbGxEYXRhVHJ1ZVZhbHVlKGNlbGxEYXRhOiBhbnkpOiBib29sZWFuIHtcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuO1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZChjZWxsRGF0YSkpIHtcbiAgICAgIHJlc3VsdCA9IChjZWxsRGF0YSA9PT0gdGhpcy50cnVlVmFsdWUpO1xuICAgICAgaWYgKHRoaXMuYm9vbGVhblR5cGUgPT09ICdzdHJpbmcnICYmICFVdGlsLmlzRGVmaW5lZCh0aGlzLnRydWVWYWx1ZSkpIHtcbiAgICAgICAgcmVzdWx0ID0gVXRpbC5wYXJzZUJvb2xlYW4oY2VsbERhdGEsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldENlbGxEYXRhKGNlbGx2YWx1ZTogYW55LCByb3d2YWx1ZT86IGFueSkge1xuICAgIGxldCByZXN1bHQgPSBjZWxsdmFsdWU7XG4gICAgY29uc3QgY2VsbElzVHJ1ZSA9IHRoaXMuaGFzQ2VsbERhdGFUcnVlVmFsdWUoY2VsbHZhbHVlKTtcbiAgICBjb25zdCB2YWx1ZSA9IGNlbGxJc1RydWUgPyB0aGlzLnRydWVWYWx1ZSA6IHRoaXMuZmFsc2VWYWx1ZTtcbiAgICBzd2l0Y2ggKHRoaXMucmVuZGVyVHlwZSkge1xuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgcmVzdWx0ID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCh2YWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgcmVzdWx0ID0gdmFsdWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBnZXQgYm9vbGVhblR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fYm9vbGVhblR5cGU7XG4gIH1cblxuICBzZXQgYm9vbGVhblR5cGUoYXJnOiBzdHJpbmcpIHtcbiAgICBhcmcgPSAoYXJnIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChbJ251bWJlcicsICdib29sZWFuJywgJ3N0cmluZyddLmluZGV4T2YoYXJnKSA9PT0gLTEpIHtcbiAgICAgIGFyZyA9ICdib29sZWFuJztcbiAgICB9XG4gICAgdGhpcy5fYm9vbGVhblR5cGUgPSBhcmc7XG4gIH1cblxuICBnZXQgcmVuZGVyVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9yZW5kZXJUeXBlO1xuICB9XG5cbiAgc2V0IHJlbmRlclR5cGUoYXJnOiBzdHJpbmcpIHtcbiAgICBhcmcgPSAoYXJnIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChbJ3N0cmluZycsICdudW1iZXInLCAnaWNvbicsICdpbWFnZSddLmluZGV4T2YoYXJnKSA9PT0gLTEpIHtcbiAgICAgIGFyZyA9ICdzdHJpbmcnO1xuICAgIH1cbiAgICB0aGlzLl9yZW5kZXJUeXBlID0gYXJnO1xuICB9XG5cbiAgZ2V0IHJlbmRlclRydWVWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9yZW5kZXJUcnVlVmFsdWUgfHwgdGhpcy50cnVlVmFsdWU7XG4gIH1cblxuICBzZXQgcmVuZGVyVHJ1ZVZhbHVlKGFyZzogc3RyaW5nKSB7XG4gICAgdGhpcy5fcmVuZGVyVHJ1ZVZhbHVlID0gYXJnO1xuICB9XG5cbiAgZ2V0IHJlbmRlckZhbHNlVmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcmVuZGVyRmFsc2VWYWx1ZSB8fCB0aGlzLmZhbHNlVmFsdWU7XG4gIH1cblxuICBzZXQgcmVuZGVyRmFsc2VWYWx1ZShhcmc6IHN0cmluZykge1xuICAgIHRoaXMuX3JlbmRlckZhbHNlVmFsdWUgPSBhcmc7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVyZWYgbGV0LWNlbGx2YWx1ZT1cImNlbGx2YWx1ZVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzQ2VsbERhdGFUcnVlVmFsdWUoY2VsbHZhbHVlKVwiPlxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInJlbmRlclR5cGVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCI+e3sgcmVuZGVyVHJ1ZVZhbHVlIH19PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaWNvbidcIj5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj4ge3sgcmVuZGVyVHJ1ZVZhbHVlIH19PC9tYXQtaWNvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ltYWdlJ1wiPlxuICAgICAgICA8aW1nIFtzcmNdPVwicmVuZGVyVHJ1ZVZhbHVlXCIgYWx0PVwiaW1hZ2UgZm9yIHRydWUgdmFsdWVcIi8+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxzcGFuICpuZ1N3aXRjaERlZmF1bHQ+e3sgcmVuZGVyVHJ1ZVZhbHVlIHwgb1RyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaGFzQ2VsbERhdGFUcnVlVmFsdWUoY2VsbHZhbHVlKVwiPlxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInJlbmRlclR5cGVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCI+e3sgcmVuZGVyRmFsc2VWYWx1ZSB9fTwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ljb24nXCI+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+IHt7IHJlbmRlckZhbHNlVmFsdWUgfX08L21hdC1pY29uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaW1hZ2UnXCI+XG4gICAgICAgIDxpbWcgW3NyY109XCJyZW5kZXJGYWxzZVZhbHVlXCIgYWx0PVwiaW1hZ2UgZm9yIGZhbHNlIHZhbHVlXCIgLz5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0Pnt7IHJlbmRlckZhbHNlVmFsdWUgfCBvVHJhbnNsYXRlfX08L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPiJdfQ==
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jZWxsLXJlbmRlcmVyLWJvb2xlYW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvY29sdW1uL2NlbGwtcmVuZGVyZXIvYm9vbGVhbi9vLXRhYmxlLWNlbGwtcmVuZGVyZXItYm9vbGVhbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9jb2x1bW4vY2VsbC1yZW5kZXJlci9ib29sZWFuL28tdGFibGUtY2VsbC1yZW5kZXJlci1ib29sZWFuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFVLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0csT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDMUYsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7OztBQUU3RSxNQUFNLENBQUMsTUFBTSw0Q0FBNEMsR0FBRztJQUUxRCx1QkFBdUI7SUFFdkIseUJBQXlCO0lBRXpCLDJCQUEyQjtJQUUzQixvQ0FBb0M7SUFDcEMsc0NBQXNDO0lBRXRDLHlCQUF5QjtDQUMxQixDQUFDO0FBUUYsTUFBTSxPQUFPLGtDQUFtQyxTQUFRLHNCQUFzQjtJQWM1RSxZQUFzQixRQUFrQjtRQUN0QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFESSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBUDlCLGdCQUFXLEdBQVcsUUFBUSxDQUFDO1FBQy9CLGlC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SSxDQUFDLFVBQVUsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFXO1FBQzlCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLENBQUM7SUFDL0IsQ0FBQzs7K0hBOUhVLGtDQUFrQzttSEFBbEMsa0NBQWtDLDZjQVdYLFdBQVcsa0VDckMvQyxnd0NBeUJjOzJGRENELGtDQUFrQztrQkFOOUMsU0FBUzsrQkFDRSwrQkFBK0IsbUJBRXhCLHVCQUF1QixDQUFDLE1BQU0sVUFDdkMsNENBQTRDOytGQWNwRCxXQUFXO3NCQURWLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0b3IsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS9vLXRyYW5zbGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgT0Jhc2VUYWJsZUNlbGxSZW5kZXJlciB9IGZyb20gJy4uL28tYmFzZS10YWJsZS1jZWxsLXJlbmRlcmVyLmNsYXNzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfSU5QVVRTX09fVEFCTEVfQ0VMTF9SRU5ERVJFUl9CT09MRUFOID0gW1xuICAvLyB0cnVlLXZhbHVlIFtzdHJpbmddOiB0cnVlIHZhbHVlLiBEZWZhdWx0OiBubyB2YWx1ZS5cbiAgJ3RydWVWYWx1ZTogdHJ1ZS12YWx1ZScsXG4gIC8vIGZhbHNlLXZhbHVlIFtzdHJpbmddOiBmYWxzZSB2YWx1ZS4gRGVmYXVsdDogbm8gdmFsdWUuXG4gICdmYWxzZVZhbHVlOiBmYWxzZS12YWx1ZScsXG4gIC8vIGZhbHNlLXZhbHVlIFtudW1iZXJ8Ym9vbGVhbnxzdHJpbmddOiBjZWxsRGF0YSB2YWx1ZSB0eXBlLiBEZWZhdWx0OiBib29sZWFuXG4gICdib29sZWFuVHlwZTogYm9vbGVhbi10eXBlJyxcblxuICAncmVuZGVyVHJ1ZVZhbHVlOiByZW5kZXItdHJ1ZS12YWx1ZScsXG4gICdyZW5kZXJGYWxzZVZhbHVlOiByZW5kZXItZmFsc2UtdmFsdWUnLFxuICAvLyBbc3RyaW5nfG51bWJlcnxpY29ufGltYWdlXVxuICAncmVuZGVyVHlwZTogcmVuZGVyLXR5cGUnXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLXRhYmxlLWNlbGwtcmVuZGVyZXItYm9vbGVhbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9vLXRhYmxlLWNlbGwtcmVuZGVyZXItYm9vbGVhbi5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbnB1dHM6IERFRkFVTFRfSU5QVVRTX09fVEFCTEVfQ0VMTF9SRU5ERVJFUl9CT09MRUFOXG59KVxuZXhwb3J0IGNsYXNzIE9UYWJsZUNlbGxSZW5kZXJlckJvb2xlYW5Db21wb25lbnQgZXh0ZW5kcyBPQmFzZVRhYmxlQ2VsbFJlbmRlcmVyIGltcGxlbWVudHMgT25Jbml0IHtcblxuICB0cnVlVmFsdWU6IGFueTtcbiAgZmFsc2VWYWx1ZTogYW55O1xuICBwcm90ZWN0ZWQgX3JlbmRlclRydWVWYWx1ZTogYW55O1xuICBwcm90ZWN0ZWQgX3JlbmRlckZhbHNlVmFsdWU6IGFueTtcblxuICBwcm90ZWN0ZWQgX3JlbmRlclR5cGU6IHN0cmluZyA9ICdzdHJpbmcnO1xuICBwcm90ZWN0ZWQgX2Jvb2xlYW5UeXBlOiBzdHJpbmcgPSAnYm9vbGVhbic7XG4gIHByb3RlY3RlZCB0cmFuc2xhdGVTZXJ2aWNlOiBPVHJhbnNsYXRlU2VydmljZTtcblxuICBAVmlld0NoaWxkKCd0ZW1wbGF0ZXJlZicsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICB0ZW1wbGF0ZXJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIHRoaXMudGFibGVDb2x1bW4udHlwZSA9ICdib29sZWFuJztcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChPVHJhbnNsYXRlU2VydmljZSk7XG4gIH1cblxuICBpbml0aWFsaXplKCkge1xuICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICB0aGlzLnBhcnNlSW5wdXRzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VJbnB1dHMoKSB7XG4gICAgc3dpdGNoICh0aGlzLmJvb2xlYW5UeXBlKSB7XG4gICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICB0aGlzLnBhcnNlU3RyaW5nSW5wdXRzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgdGhpcy5wYXJzZU51bWJlcklucHV0cygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMudHJ1ZVZhbHVlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5mYWxzZVZhbHVlID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZVN0cmluZ0lucHV0cygpIHtcbiAgICBpZiAoKHRoaXMudHJ1ZVZhbHVlIHx8ICcnKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMudHJ1ZVZhbHVlID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAoKHRoaXMuZmFsc2VWYWx1ZSB8fCAnJykubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmZhbHNlVmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHBhcnNlTnVtYmVySW5wdXRzKCkge1xuICAgIHRoaXMudHJ1ZVZhbHVlID0gcGFyc2VJbnQodGhpcy50cnVlVmFsdWUsIDEwKTtcbiAgICBpZiAoaXNOYU4odGhpcy50cnVlVmFsdWUpKSB7XG4gICAgICB0aGlzLnRydWVWYWx1ZSA9IDE7XG4gICAgfVxuICAgIHRoaXMuZmFsc2VWYWx1ZSA9IHBhcnNlSW50KHRoaXMuZmFsc2VWYWx1ZSwgMTApO1xuICAgIGlmIChpc05hTih0aGlzLmZhbHNlVmFsdWUpKSB7XG4gICAgICB0aGlzLmZhbHNlVmFsdWUgPSAwO1xuICAgIH1cbiAgfVxuXG4gIGhhc0NlbGxEYXRhVHJ1ZVZhbHVlKGNlbGxEYXRhOiBhbnkpOiBib29sZWFuIHtcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuO1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZChjZWxsRGF0YSkpIHtcbiAgICAgIHJlc3VsdCA9IChjZWxsRGF0YSA9PT0gdGhpcy50cnVlVmFsdWUpO1xuICAgICAgaWYgKHRoaXMuYm9vbGVhblR5cGUgPT09ICdzdHJpbmcnICYmICFVdGlsLmlzRGVmaW5lZCh0aGlzLnRydWVWYWx1ZSkpIHtcbiAgICAgICAgcmVzdWx0ID0gVXRpbC5wYXJzZUJvb2xlYW4oY2VsbERhdGEsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldENlbGxEYXRhKGNlbGx2YWx1ZTogYW55LCByb3d2YWx1ZT86IGFueSkge1xuICAgIGxldCByZXN1bHQgPSBjZWxsdmFsdWU7XG4gICAgY29uc3QgY2VsbElzVHJ1ZSA9IHRoaXMuaGFzQ2VsbERhdGFUcnVlVmFsdWUoY2VsbHZhbHVlKTtcbiAgICBjb25zdCB2YWx1ZSA9IGNlbGxJc1RydWUgPyB0aGlzLnRydWVWYWx1ZSA6IHRoaXMuZmFsc2VWYWx1ZTtcbiAgICBzd2l0Y2ggKHRoaXMucmVuZGVyVHlwZSkge1xuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgcmVzdWx0ID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCh2YWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgcmVzdWx0ID0gdmFsdWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBnZXQgYm9vbGVhblR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fYm9vbGVhblR5cGU7XG4gIH1cblxuICBzZXQgYm9vbGVhblR5cGUoYXJnOiBzdHJpbmcpIHtcbiAgICBhcmcgPSAoYXJnIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChbJ251bWJlcicsICdib29sZWFuJywgJ3N0cmluZyddLmluZGV4T2YoYXJnKSA9PT0gLTEpIHtcbiAgICAgIGFyZyA9ICdib29sZWFuJztcbiAgICB9XG4gICAgdGhpcy5fYm9vbGVhblR5cGUgPSBhcmc7XG4gIH1cblxuICBnZXQgcmVuZGVyVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9yZW5kZXJUeXBlO1xuICB9XG5cbiAgc2V0IHJlbmRlclR5cGUoYXJnOiBzdHJpbmcpIHtcbiAgICBhcmcgPSAoYXJnIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChbJ3N0cmluZycsICdudW1iZXInLCAnaWNvbicsICdpbWFnZSddLmluZGV4T2YoYXJnKSA9PT0gLTEpIHtcbiAgICAgIGFyZyA9ICdzdHJpbmcnO1xuICAgIH1cbiAgICB0aGlzLl9yZW5kZXJUeXBlID0gYXJnO1xuICB9XG5cbiAgZ2V0IHJlbmRlclRydWVWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9yZW5kZXJUcnVlVmFsdWUgfHwgdGhpcy50cnVlVmFsdWU7XG4gIH1cblxuICBzZXQgcmVuZGVyVHJ1ZVZhbHVlKGFyZzogc3RyaW5nKSB7XG4gICAgdGhpcy5fcmVuZGVyVHJ1ZVZhbHVlID0gYXJnO1xuICB9XG5cbiAgZ2V0IHJlbmRlckZhbHNlVmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcmVuZGVyRmFsc2VWYWx1ZSB8fCB0aGlzLmZhbHNlVmFsdWU7XG4gIH1cblxuICBzZXQgcmVuZGVyRmFsc2VWYWx1ZShhcmc6IHN0cmluZykge1xuICAgIHRoaXMuX3JlbmRlckZhbHNlVmFsdWUgPSBhcmc7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVyZWYgbGV0LWNlbGx2YWx1ZT1cImNlbGx2YWx1ZVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzQ2VsbERhdGFUcnVlVmFsdWUoY2VsbHZhbHVlKVwiPlxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInJlbmRlclR5cGVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCI+e3sgcmVuZGVyVHJ1ZVZhbHVlIH19PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaWNvbidcIj5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj4ge3sgcmVuZGVyVHJ1ZVZhbHVlIH19PC9tYXQtaWNvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ltYWdlJ1wiPlxuICAgICAgICA8aW1nIFtzcmNdPVwicmVuZGVyVHJ1ZVZhbHVlXCIgYWx0PVwiaW1hZ2UgZm9yIHRydWUgdmFsdWVcIi8+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxzcGFuICpuZ1N3aXRjaERlZmF1bHQ+e3sgcmVuZGVyVHJ1ZVZhbHVlIHwgb1RyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaGFzQ2VsbERhdGFUcnVlVmFsdWUoY2VsbHZhbHVlKVwiPlxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInJlbmRlclR5cGVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCI+e3sgcmVuZGVyRmFsc2VWYWx1ZSB9fTwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ljb24nXCI+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+IHt7IHJlbmRlckZhbHNlVmFsdWUgfX08L21hdC1pY29uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaW1hZ2UnXCI+XG4gICAgICAgIDxpbWcgW3NyY109XCJyZW5kZXJGYWxzZVZhbHVlXCIgYWx0PVwiaW1hZ2UgZm9yIGZhbHNlIHZhbHVlXCIgLz5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0Pnt7IHJlbmRlckZhbHNlVmFsdWUgfCBvVHJhbnNsYXRlfX08L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPiJdfQ==