@wavemaker/app-ng-runtime 12.0.0-next.141131 → 12.0.0-next.141134

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 (326) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +54 -39
  2. app-ng-runtime/build-task/esm2022/basic/default/anchor/anchor.build.mjs +2 -2
  3. app-ng-runtime/build-task/esm2022/basic/default/html/html.build.mjs +2 -2
  4. app-ng-runtime/build-task/esm2022/basic/default/icon/icon.build.mjs +2 -2
  5. app-ng-runtime/build-task/esm2022/basic/default/label/label.build.mjs +2 -2
  6. app-ng-runtime/build-task/esm2022/basic/default/picture/picture.build.mjs +2 -2
  7. app-ng-runtime/build-task/esm2022/basic/default/spinner/spinner.build.mjs +2 -2
  8. app-ng-runtime/build-task/esm2022/basic/progress/progress-circle/progress-circle.build.mjs +7 -2
  9. app-ng-runtime/build-task/esm2022/basic/rich-text-editor/rich-text-editor.build.mjs +2 -2
  10. app-ng-runtime/build-task/esm2022/containers/tile/tile.build.mjs +2 -2
  11. app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +10 -3
  12. app-ng-runtime/build-task/esm2022/device/barcode-scanner/barcode-scanner.build.mjs +2 -2
  13. app-ng-runtime/build-task/esm2022/device/camera/camera.build.mjs +2 -2
  14. app-ng-runtime/build-task/esm2022/dialogs/alert-dialog/alert-dialog.build.mjs +2 -2
  15. app-ng-runtime/build-task/esm2022/input/calendar/calendar.build.mjs +2 -2
  16. app-ng-runtime/build-task/esm2022/input/color-picker/color-picker.build.mjs +3 -3
  17. app-ng-runtime/build-task/esm2022/input/currency/currency.build.mjs +3 -3
  18. app-ng-runtime/build-task/esm2022/input/default/button/button.build.mjs +2 -2
  19. app-ng-runtime/build-task/esm2022/input/default/button-group/button-group.build.mjs +2 -2
  20. app-ng-runtime/build-task/esm2022/input/default/switch/switch.build.mjs +2 -2
  21. app-ng-runtime/build-task/esm2022/input/file-upload/file-upload.build.mjs +5 -1
  22. app-ng-runtime/build-task/esm2022/page/footer/footer.build.mjs +2 -2
  23. app-ng-runtime/build-task/esm2022/page/header/header.build.mjs +2 -2
  24. app-ng-runtime/build-task/esm2022/page/layout.build.mjs +2 -2
  25. app-ng-runtime/build-task/esm2022/page/left-panel/left-panel.build.mjs +2 -2
  26. app-ng-runtime/build-task/esm2022/page/page.build.mjs +2 -2
  27. app-ng-runtime/build-task/esm2022/page/right-panel/right-panel.build.mjs +2 -2
  28. app-ng-runtime/build-task/esm2022/page/top-nav/top-nav.build.mjs +2 -2
  29. app-ng-runtime/build-task/fesm2022/index.mjs +54 -39
  30. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  31. app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +1 -1
  32. app-ng-runtime/components/advanced/carousel/esm2022/carousel.animator.mjs +2 -2
  33. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs +1 -1
  34. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  35. app-ng-runtime/components/advanced/custom/bundles/index.umd.js +53 -13
  36. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +11 -4
  37. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +55 -12
  38. app-ng-runtime/components/advanced/custom/esm2022/custom-widget.directive.mjs +2 -2
  39. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs +55 -12
  40. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs.map +1 -1
  41. app-ng-runtime/components/base/bundles/index.umd.js +22 -6
  42. app-ng-runtime/components/base/esm2022/pipes/custom-pipes.mjs +3 -3
  43. app-ng-runtime/components/base/esm2022/utils/live-utils.mjs +8 -2
  44. app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +15 -5
  45. app-ng-runtime/components/base/esm2022/widgets/framework/property-change-handler.mjs +2 -2
  46. app-ng-runtime/components/base/fesm2022/index.mjs +23 -7
  47. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  48. app-ng-runtime/components/base/pipes/custom-pipes.d.ts +1 -1
  49. app-ng-runtime/components/base/widgets/common/base/base-field-validations.d.ts +1 -1
  50. app-ng-runtime/components/base/widgets/common/base/base.component.d.ts +1 -0
  51. app-ng-runtime/components/basic/default/anchor/anchor.component.d.ts +1 -0
  52. app-ng-runtime/components/basic/default/audio/audio.component.d.ts +1 -0
  53. app-ng-runtime/components/basic/default/bundles/index.umd.js +27 -18
  54. app-ng-runtime/components/basic/default/esm2022/anchor/anchor.component.mjs +4 -4
  55. app-ng-runtime/components/basic/default/esm2022/anchor/anchor.props.mjs +2 -1
  56. app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +5 -5
  57. app-ng-runtime/components/basic/default/esm2022/audio/audio.props.mjs +2 -1
  58. app-ng-runtime/components/basic/default/esm2022/html/html.props.mjs +2 -1
  59. app-ng-runtime/components/basic/default/esm2022/icon/icon.component.mjs +6 -7
  60. app-ng-runtime/components/basic/default/esm2022/icon/icon.props.mjs +2 -1
  61. app-ng-runtime/components/basic/default/esm2022/iframe/iframe.component.mjs +3 -3
  62. app-ng-runtime/components/basic/default/esm2022/iframe/iframe.props.mjs +3 -2
  63. app-ng-runtime/components/basic/default/esm2022/label/label.props.mjs +1 -1
  64. app-ng-runtime/components/basic/default/esm2022/picture/picture.directive.mjs +2 -2
  65. app-ng-runtime/components/basic/default/esm2022/picture/picture.props.mjs +3 -1
  66. app-ng-runtime/components/basic/default/esm2022/spinner/spinner.props.mjs +3 -2
  67. app-ng-runtime/components/basic/default/esm2022/video/video.component.mjs +5 -4
  68. app-ng-runtime/components/basic/default/esm2022/video/video.props.mjs +2 -1
  69. app-ng-runtime/components/basic/default/fesm2022/index.mjs +27 -18
  70. app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
  71. app-ng-runtime/components/basic/default/icon/icon.component.d.ts +1 -0
  72. app-ng-runtime/components/basic/default/iframe/iframe.component.d.ts +1 -0
  73. app-ng-runtime/components/basic/default/picture/picture.directive.d.ts +2 -1
  74. app-ng-runtime/components/basic/default/video/video.component.d.ts +1 -0
  75. app-ng-runtime/components/basic/progress/bundles/index.umd.js +12 -8
  76. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +4 -4
  77. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.props.mjs +2 -1
  78. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +8 -6
  79. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.props.mjs +2 -1
  80. app-ng-runtime/components/basic/progress/fesm2022/index.mjs +12 -8
  81. app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
  82. app-ng-runtime/components/basic/progress/progress-bar/progress-bar.component.d.ts +1 -0
  83. app-ng-runtime/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -1
  84. app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +2 -0
  85. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +2 -1
  86. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.props.mjs +2 -1
  87. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs +2 -0
  88. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  89. app-ng-runtime/components/basic/search/bundles/index.umd.js +11 -9
  90. app-ng-runtime/components/basic/search/esm2022/search.component.mjs +14 -13
  91. app-ng-runtime/components/basic/search/esm2022/search.props.mjs +2 -1
  92. app-ng-runtime/components/basic/search/fesm2022/index.mjs +11 -9
  93. app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
  94. app-ng-runtime/components/basic/search/search.component.d.ts +1 -0
  95. app-ng-runtime/components/containers/accordion/bundles/index.umd.js +3 -3
  96. app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +4 -4
  97. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +3 -3
  98. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  99. app-ng-runtime/components/containers/panel/bundles/index.umd.js +14 -14
  100. app-ng-runtime/components/containers/panel/esm2022/panel.component.mjs +15 -15
  101. app-ng-runtime/components/containers/panel/fesm2022/index.mjs +14 -14
  102. app-ng-runtime/components/containers/panel/fesm2022/index.mjs.map +1 -1
  103. app-ng-runtime/components/containers/tabs/bundles/index.umd.js +2 -2
  104. app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +3 -3
  105. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +2 -2
  106. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  107. app-ng-runtime/components/containers/wizard/bundles/index.umd.js +17 -0
  108. app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +18 -1
  109. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +17 -0
  110. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  111. app-ng-runtime/components/containers/wizard/wizard.component.d.ts +1 -0
  112. app-ng-runtime/components/data/form/bundles/index.umd.js +27 -11
  113. app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +28 -14
  114. app-ng-runtime/components/data/form/fesm2022/index.mjs +27 -13
  115. app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
  116. app-ng-runtime/components/data/form/form-field/form-field.directive.d.ts +2 -0
  117. app-ng-runtime/components/data/list/bundles/index.umd.js +2 -2
  118. app-ng-runtime/components/data/list/esm2022/list.component.mjs +3 -3
  119. app-ng-runtime/components/data/list/fesm2022/index.mjs +2 -2
  120. app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
  121. app-ng-runtime/components/data/live-table/bundles/index.umd.js +2 -2
  122. app-ng-runtime/components/data/live-table/esm2022/live-table.component.mjs +3 -3
  123. app-ng-runtime/components/data/live-table/fesm2022/index.mjs +2 -2
  124. app-ng-runtime/components/data/live-table/fesm2022/index.mjs.map +1 -1
  125. app-ng-runtime/components/data/pagination/bundles/index.umd.js +2 -0
  126. app-ng-runtime/components/data/pagination/esm2022/pagination.component.mjs +3 -1
  127. app-ng-runtime/components/data/pagination/fesm2022/index.mjs +2 -0
  128. app-ng-runtime/components/data/pagination/fesm2022/index.mjs.map +1 -1
  129. app-ng-runtime/components/data/table/bundles/index.umd.js +45 -11
  130. app-ng-runtime/components/data/table/esm2022/table-column/table-column.directive.mjs +14 -5
  131. app-ng-runtime/components/data/table/esm2022/table-row/table-row.props.mjs +2 -2
  132. app-ng-runtime/components/data/table/esm2022/table.component.mjs +30 -7
  133. app-ng-runtime/components/data/table/esm2022/table.props.mjs +3 -1
  134. app-ng-runtime/components/data/table/fesm2022/index.mjs +46 -12
  135. app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
  136. app-ng-runtime/components/data/table/table.component.d.ts +8 -1
  137. app-ng-runtime/components/dialogs/alert-dialog/bundles/index.umd.js +6 -4
  138. app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +7 -5
  139. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs +6 -4
  140. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  141. app-ng-runtime/components/dialogs/confirm-dialog/bundles/index.umd.js +8 -5
  142. app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +9 -6
  143. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs +8 -5
  144. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  145. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +20 -3
  146. app-ng-runtime/components/dialogs/default/dialog-header/dialog-header.component.d.ts +2 -1
  147. app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +13 -1
  148. app-ng-runtime/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +9 -4
  149. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +20 -3
  150. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  151. app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +4 -4
  152. app-ng-runtime/components/dialogs/design-dialog/esm2022/dialog.component.mjs +5 -5
  153. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +4 -4
  154. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  155. app-ng-runtime/components/dialogs/iframe-dialog/bundles/index.umd.js +9 -5
  156. app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +10 -6
  157. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs +9 -5
  158. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  159. app-ng-runtime/components/dialogs/partial-dialog/bundles/index.umd.js +9 -5
  160. app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +10 -6
  161. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs +9 -5
  162. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  163. app-ng-runtime/components/input/calendar/bundles/index.umd.js +2 -4
  164. app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +3 -5
  165. app-ng-runtime/components/input/calendar/fesm2022/index.mjs +2 -4
  166. app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
  167. app-ng-runtime/components/input/chips/bundles/index.umd.js +3 -2
  168. app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +3 -3
  169. app-ng-runtime/components/input/chips/esm2022/chips.props.mjs +2 -1
  170. app-ng-runtime/components/input/chips/fesm2022/index.mjs +3 -2
  171. app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
  172. app-ng-runtime/components/input/color-picker/bundles/index.umd.js +5 -3
  173. app-ng-runtime/components/input/color-picker/color-picker.component.d.ts +1 -0
  174. app-ng-runtime/components/input/color-picker/esm2022/color-picker.component.mjs +6 -5
  175. app-ng-runtime/components/input/color-picker/esm2022/color-picker.props.mjs +2 -1
  176. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs +5 -3
  177. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  178. app-ng-runtime/components/input/currency/bundles/index.umd.js +4 -3
  179. app-ng-runtime/components/input/currency/currency.component.d.ts +1 -0
  180. app-ng-runtime/components/input/currency/esm2022/currency.component.mjs +6 -6
  181. app-ng-runtime/components/input/currency/esm2022/currency.props.mjs +2 -1
  182. app-ng-runtime/components/input/currency/fesm2022/index.mjs +4 -3
  183. app-ng-runtime/components/input/currency/fesm2022/index.mjs.map +1 -1
  184. app-ng-runtime/components/input/default/base-form-custom.component.d.ts +2 -1
  185. app-ng-runtime/components/input/default/bundles/index.umd.js +219 -114
  186. app-ng-runtime/components/input/default/button/button.component.d.ts +1 -0
  187. app-ng-runtime/components/input/default/checkbox/checkbox.component.d.ts +1 -0
  188. app-ng-runtime/components/input/default/dataset-aware-form.component.d.ts +2 -2
  189. app-ng-runtime/components/input/default/esm2022/base-form-custom.component.mjs +6 -1
  190. app-ng-runtime/components/input/default/esm2022/button/button.component.mjs +1 -1
  191. app-ng-runtime/components/input/default/esm2022/button/button.props.mjs +2 -1
  192. app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +8 -7
  193. app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.component.mjs +7 -7
  194. app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.props.mjs +2 -1
  195. app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +23 -16
  196. app-ng-runtime/components/input/default/esm2022/dataset-aware-form.component.mjs +5 -5
  197. app-ng-runtime/components/input/default/esm2022/number/number.component.mjs +5 -5
  198. app-ng-runtime/components/input/default/esm2022/number/number.props.mjs +3 -1
  199. app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +30 -23
  200. app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +60 -30
  201. app-ng-runtime/components/input/default/esm2022/select/select.props.mjs +2 -1
  202. app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +6 -5
  203. app-ng-runtime/components/input/default/esm2022/switch/switch.props.mjs +2 -1
  204. app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +5 -5
  205. app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.props.mjs +2 -1
  206. app-ng-runtime/components/input/default/esm2022/text/color/input-color.component.mjs +5 -5
  207. app-ng-runtime/components/input/default/esm2022/text/color/input-color.props.mjs +2 -1
  208. app-ng-runtime/components/input/default/esm2022/text/email/input-email.component.mjs +5 -5
  209. app-ng-runtime/components/input/default/esm2022/text/email/input-email.props.mjs +2 -1
  210. app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +51 -14
  211. app-ng-runtime/components/input/default/esm2022/text/number/input-number.component.mjs +5 -5
  212. app-ng-runtime/components/input/default/esm2022/text/number/input-number.props.mjs +2 -1
  213. app-ng-runtime/components/input/default/esm2022/text/text/input-text.component.mjs +5 -5
  214. app-ng-runtime/components/input/default/esm2022/text/text/input-text.props.mjs +2 -1
  215. app-ng-runtime/components/input/default/esm2022/textarea/textarea.component.mjs +9 -6
  216. app-ng-runtime/components/input/default/esm2022/textarea/textarea.props.mjs +2 -1
  217. app-ng-runtime/components/input/default/fesm2022/index.mjs +219 -114
  218. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  219. app-ng-runtime/components/input/default/number/number.component.d.ts +1 -0
  220. app-ng-runtime/components/input/default/select/select.component.d.ts +4 -4
  221. app-ng-runtime/components/input/default/text/calendar/input-calendar.component.d.ts +1 -0
  222. app-ng-runtime/components/input/default/text/color/input-color.component.d.ts +1 -0
  223. app-ng-runtime/components/input/default/text/email/input-email.component.d.ts +1 -0
  224. app-ng-runtime/components/input/default/text/locale/number-locale.d.ts +1 -0
  225. app-ng-runtime/components/input/default/text/number/input-number.component.d.ts +1 -0
  226. app-ng-runtime/components/input/default/text/text/input-text.component.d.ts +1 -0
  227. app-ng-runtime/components/input/default/textarea/textarea.component.d.ts +4 -2
  228. app-ng-runtime/components/input/epoch/bundles/index.umd.js +15 -9
  229. app-ng-runtime/components/input/epoch/date/date.component.d.ts +1 -0
  230. app-ng-runtime/components/input/epoch/date-time/date-time.component.d.ts +2 -1
  231. app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +6 -6
  232. app-ng-runtime/components/input/epoch/esm2022/date/date.props.mjs +2 -1
  233. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +10 -7
  234. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.props.mjs +2 -1
  235. app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +7 -7
  236. app-ng-runtime/components/input/epoch/esm2022/time/time.props.mjs +2 -1
  237. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +15 -9
  238. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  239. app-ng-runtime/components/input/epoch/time/time.component.d.ts +1 -0
  240. app-ng-runtime/components/input/file-upload/bundles/index.umd.js +208 -95
  241. app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +206 -98
  242. app-ng-runtime/components/input/file-upload/esm2022/file-upload.props.mjs +6 -1
  243. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +209 -96
  244. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  245. app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +17 -11
  246. app-ng-runtime/components/input/slider/bundles/index.umd.js +5 -6
  247. app-ng-runtime/components/input/slider/esm2022/slider.component.mjs +6 -8
  248. app-ng-runtime/components/input/slider/esm2022/slider.props.mjs +2 -1
  249. app-ng-runtime/components/input/slider/fesm2022/index.mjs +5 -6
  250. app-ng-runtime/components/input/slider/fesm2022/index.mjs.map +1 -1
  251. app-ng-runtime/components/input/slider/slider.component.d.ts +1 -0
  252. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +10 -8
  253. app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +9 -8
  254. app-ng-runtime/components/navigation/menu/esm2022/menu.props.mjs +2 -1
  255. app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +2 -2
  256. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +10 -8
  257. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  258. app-ng-runtime/components/navigation/menu/menu.component.d.ts +1 -0
  259. app-ng-runtime/components/navigation/popover/bundles/index.umd.js +121 -13
  260. app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +122 -15
  261. app-ng-runtime/components/navigation/popover/esm2022/popover.props.mjs +2 -1
  262. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs +121 -13
  263. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  264. app-ng-runtime/components/navigation/popover/popover.component.d.ts +15 -3
  265. app-ng-runtime/components/page/default/bundles/index.umd.js +2 -1
  266. app-ng-runtime/components/page/default/esm2022/page.props.mjs +4 -3
  267. app-ng-runtime/components/page/default/fesm2022/index.mjs +2 -1
  268. app-ng-runtime/components/page/default/fesm2022/index.mjs.map +1 -1
  269. app-ng-runtime/components/page/footer/bundles/index.umd.js +2 -1
  270. app-ng-runtime/components/page/footer/esm2022/footer.props.mjs +3 -2
  271. app-ng-runtime/components/page/footer/fesm2022/index.mjs +2 -1
  272. app-ng-runtime/components/page/footer/fesm2022/index.mjs.map +1 -1
  273. app-ng-runtime/components/page/header/bundles/index.umd.js +2 -1
  274. app-ng-runtime/components/page/header/esm2022/header.props.mjs +3 -2
  275. app-ng-runtime/components/page/header/fesm2022/index.mjs +2 -1
  276. app-ng-runtime/components/page/header/fesm2022/index.mjs.map +1 -1
  277. app-ng-runtime/components/page/left-panel/bundles/index.umd.js +2 -1
  278. app-ng-runtime/components/page/left-panel/esm2022/left-panel.props.mjs +3 -2
  279. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +2 -1
  280. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  281. app-ng-runtime/components/page/right-panel/bundles/index.umd.js +2 -1
  282. app-ng-runtime/components/page/right-panel/esm2022/right-panel.props.mjs +3 -2
  283. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +2 -1
  284. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  285. app-ng-runtime/components/page/top-nav/bundles/index.umd.js +2 -1
  286. app-ng-runtime/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
  287. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs +2 -1
  288. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  289. app-ng-runtime/core/bundles/index.umd.js +18 -15
  290. app-ng-runtime/core/enums/enums.d.ts +2 -2
  291. app-ng-runtime/core/esm2022/enums/enums.mjs +2 -2
  292. app-ng-runtime/core/esm2022/public_api.mjs +2 -2
  293. app-ng-runtime/core/esm2022/utils/build-utils.mjs +12 -12
  294. app-ng-runtime/core/esm2022/utils/utils.mjs +5 -4
  295. app-ng-runtime/core/fesm2022/index.mjs +18 -16
  296. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  297. app-ng-runtime/core/public_api.d.ts +1 -1
  298. app-ng-runtime/core/utils/utils.d.ts +1 -0
  299. app-ng-runtime/locales/moment-timezone/moment-timezone-with-data.js +37 -37
  300. app-ng-runtime/mobile/components/device/barcode-scanner/bundles/index.umd.js +2 -1
  301. app-ng-runtime/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.props.mjs +3 -2
  302. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs +2 -1
  303. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs.map +1 -1
  304. app-ng-runtime/mobile/components/device/camera/bundles/index.umd.js +2 -1
  305. app-ng-runtime/mobile/components/device/camera/esm2022/camera.props.mjs +3 -2
  306. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs +2 -1
  307. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs.map +1 -1
  308. app-ng-runtime/mobile/core/bundles/index.umd.js +18 -2
  309. app-ng-runtime/mobile/core/esm2022/native.xhr.mjs +19 -3
  310. app-ng-runtime/mobile/core/fesm2022/index.mjs +18 -2
  311. app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
  312. app-ng-runtime/package.json +1 -1
  313. app-ng-runtime/runtime/base/bundles/index.umd.js +16 -5
  314. app-ng-runtime/runtime/base/components/app-component/app.component.d.ts +2 -3
  315. app-ng-runtime/runtime/base/components/base-custom-widget.component.d.ts +2 -0
  316. app-ng-runtime/runtime/base/esm2022/components/app-component/app.component.mjs +5 -5
  317. app-ng-runtime/runtime/base/esm2022/components/base-custom-widget.component.mjs +10 -1
  318. app-ng-runtime/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +5 -4
  319. app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +2 -2
  320. app-ng-runtime/runtime/base/fesm2022/index.mjs +16 -5
  321. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  322. app-ng-runtime/runtime/base/guards/can-deactivate-page.guard.d.ts +2 -1
  323. app-ng-runtime/runtime/base/services/i18n.service.d.ts +1 -1
  324. app-ng-runtime/scripts/@wavemaker/nvd3/build/nv.d3.min.js +1 -1
  325. app-ng-runtime/scripts/datatable/datatable.js +54 -43
  326. app-ng-runtime/scripts/summernote/dist/summernote-lite.min.js +2 -3
@@ -80,7 +80,7 @@
80
80
  if (this.interval) {
81
81
  this.start();
82
82
  }
83
- this._$el.find('>.left.carousel-control').append('<span class="sr-only">Previous</span>');
83
+ $('carousel slide').removeAttr('aria-hidden');
84
84
  }
85
85
  bounds() {
86
86
  this._width = this._items.width();
@@ -44,7 +44,7 @@ export class CarouselAnimator extends SwipeAnimation {
44
44
  if (this.interval) {
45
45
  this.start();
46
46
  }
47
- this._$el.find('>.left.carousel-control').append('<span class="sr-only">Previous</span>');
47
+ $('carousel slide').removeAttr('aria-hidden');
48
48
  }
49
49
  bounds() {
50
50
  this._width = this._items.width();
@@ -146,4 +146,4 @@ export class CarouselAnimator extends SwipeAnimation {
146
146
  items.eq((items.length + right) % items.length).addClass('right-item').removeClass('left-item');
147
147
  }
148
148
  }
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuYW5pbWF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvYWR2YW5jZWQvY2Fyb3VzZWwvc3JjL2Nhcm91c2VsLmFuaW1hdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHekMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUdwQyxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsY0FBYztJQWFoRCxZQUEyQixRQUEyQixFQUFVLFFBQWdCLEVBQVUsTUFBYztRQUNwRyxLQUFLLEVBQUUsQ0FBQztRQURlLGFBQVEsR0FBUixRQUFRLENBQW1CO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFWaEcsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBSXpCLHNCQUFpQixHQUFHLENBQUMsQ0FBQztRQUd0QixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBSWxCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztR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LElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBR3ZHLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDL0YsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkgsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEcsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN3aXBlQW5pbWF0aW9uIH0gZnJvbSAnQHN3aXBleSc7XG5cbmltcG9ydCB7IENhcm91c2VsRGlyZWN0aXZlIH0gZnJvbSAnLi9jYXJvdXNlbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtmaW5kSW5kZXh9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmRlY2xhcmUgY29uc3QgJDtcblxuZXhwb3J0IGNsYXNzIENhcm91c2VsQW5pbWF0b3IgZXh0ZW5kcyBTd2lwZUFuaW1hdGlvbiB7XG5cbiAgICBwcml2YXRlIF8kZWw7XG4gICAgcHJpdmF0ZSBfYWN0aXZlSW5kZXggPSAwO1xuICAgIHByaXZhdGUgX2FuaW1hdGlvblBhdXNlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2luZGljYXRvcnM7XG4gICAgcHJpdmF0ZSBfaXRlbXM7XG4gICAgcHJpdmF0ZSBfaW50ZXJ2YWxJZDtcbiAgICBwcml2YXRlIF9wYXVzZUNhcm9zZWxUaWxsID0gMDtcbiAgICBwcml2YXRlIF9zd2lwaW5nO1xuICAgIHByaXZhdGUgX3dpZHRoO1xuICAgIHByaXZhdGUgX29sZEluZGV4ID0gMDtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIGNhcm91c2VsOiBDYXJvdXNlbERpcmVjdGl2ZSwgcHJpdmF0ZSBpbnRlcnZhbDogbnVtYmVyLCBwcml2YXRlIG5nWm9uZTogTmdab25lKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgICAgICB0aGlzLl8kZWwgPSAkKHRoaXMuY2Fyb3VzZWwuZ2V0TmF0aXZlRWxlbWVudCgpKS5maW5kKCc+LmNhcm91c2VsJyk7XG4gICAgICAgIHRoaXMuaW5pdCh0aGlzLl8kZWwuZmluZCgnPi5jYXJvdXNlbC1pbm5lcicpKTtcbiAgICAgICAgdGhpcy5faXRlbXMgPSB0aGlzLl8kZWwuZmluZCgnPi5jYXJvdXNlbC1pbm5lciA+LmNhcm91c2VsLWl0ZW0nKTtcbiAgICAgICAgdGhpcy5faW5kaWNhdG9ycyA9IHRoaXMuXyRlbC5maW5kKCc+LmNhcm91c2VsLWluZGljYXRvcnMnKTtcbiAgICAgICAgdGhpcy5faW5kaWNhdG9ycy5maW5kKCdsaScpLmVhY2goZnVuY3Rpb24gKGkpIHtcbiAgICAgICAgICAgICQodGhpcykub24oJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNlbGYuX2FjdGl2ZUluZGV4ID0gaTtcbiAgICAgICAgICAgICAgICBzZWxmLnNldEFjdGl2ZUl0ZW0oKTtcbiAgICAgICAgICAgICAgICAvLyBXTVMtMTc1ODM6IFRyaWdnZXJpbmcgb25DaGFuZ2UgZXZlbnRcbiAgICAgICAgICAgICAgICBzZWxmLmNhcm91c2VsLm9uQ2hhbmdlQ0Ioc2VsZi5fYWN0aXZlSW5kZXgsIHNlbGYuX29sZEluZGV4KTtcbiAgICAgICAgICAgICAgICBzZWxmLl9vbGRJbmRleCA9IHNlbGYuX2FjdGl2ZUluZGV4O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl8kZWwuZmluZCgnPi5sZWZ0LmNhcm91c2VsLWNvbnRyb2wnKS5vbignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICAvLyBXTVMtMjIyNzgsIElmIGEgc3dpcGUgaXMgYWxyZWFkeSBpbiBwcm9jZXNzIGRvIG5vdCBwcm9jZXNzIG90aGVyIGV2ZW50c1xuICAgICAgICAgICAgaWYgKHRoaXMuX3N3aXBpbmcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9wYXVzZUNhcm9zZWxUaWxsID0gRGF0ZS5ub3coKSArIHRoaXMuaW50ZXJ2YWw7XG4gICAgICAgICAgICB0aGlzLmdvVG9VcHBlcigpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fJGVsLmZpbmQoJz4ucmlnaHQuY2Fyb3VzZWwtY29udHJvbCcpLm9uKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICAgIC8vIFdNUy0yMjI3OCwgSWYgYSBzd2lwZSBpcyBhbHJlYWR5IGluIHByb2Nlc3MgZG8gbm90IHByb2Nlc3Mgb3RoZXIgZXZlbnRzXG4gICAgICAgICAgICBpZiAodGhpcy5fc3dpcGluZykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3BhdXNlQ2Fyb3NlbFRpbGwgPSBEYXRlLm5vdygpICsgdGhpcy5pbnRlcnZhbDtcbiAgICAgICAgICAgIHRoaXMuZ29Ub0xvd2VyKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNldEFjdGl2ZUl0ZW0oKTtcbiAgICAgICAgaWYgKHRoaXMuaW50ZXJ2YWwpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl8kZWwuZmluZCgnPi5sZWZ0LmNhcm91c2VsLWNvbnRyb2wnKS5hcHBlbmQoJzxzcGFuIGNsYXNzPVwic3Itb25seVwiPlByZXZpb3VzPC9zcGFuPicpO1xuICAgIH1cblxuICAgIHB1YmxpYyBib3VuZHMoKSB7XG4gICAgICAgIHRoaXMuX3dpZHRoID0gdGhpcy5faXRlbXMud2lkdGgoKTtcbiAgICAgICAgdGhpcy5fc3dpcGluZyA9IHRydWU7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAnbG93ZXInOiAtdGhpcy5fd2lkdGgsXG4gICAgICAgICAgICAnY2VudGVyJzogMCxcbiAgICAgICAgICAgICd1cHBlcic6IHRoaXMuX3dpZHRoXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnRleHQoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAndyc6IHRoaXMuX3dpZHRoXG4gICAgICAgIH07XG4gICAgfVxuXG5cbiAgICBwdWJsaWMgYW5pbWF0aW9uKCkge1xuICAgICAgICByZXR1cm4gW3tcbiAgICAgICAgICAgICd0YXJnZXQnOiB0aGlzLmdldFRhcmdldC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgJ2Nzcyc6IHtcbiAgICAgICAgICAgICAgICAndHJhbnNmb3JtJzogJ3RyYW5zbGF0ZTNkKCR7eyAoKCREICsgJGQpIC8gdykgKiAxMDAgKyBcXCclXFwnfX0sIDAsIDApJyxcbiAgICAgICAgICAgICAgICAnLXdlYmtpdC10cmFuc2Zvcm0nOiAndHJhbnNsYXRlM2QoJHt7ICgoJEQgKyAkZCkgLyB3KSAqIDEwMCArIFxcJyVcXCd9fSwgMCwgMCknXG4gICAgICAgICAgICB9XG4gICAgICAgIH1dO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblVwcGVyKCkge1xuICAgICAgICB0aGlzLnJlc2V0VHJhbnNpdGlvbigpO1xuICAgICAgICB0aGlzLl9hY3RpdmVJbmRleCAtPSAxO1xuICAgICAgICB0aGlzLnNldEFjdGl2ZUl0ZW0oKTtcbiAgICAgICAgdGhpcy5fc3dpcGluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkxvd2VyKCkge1xuICAgICAgICB0aGlzLnJlc2V0VHJhbnNpdGlvbigpO1xuICAgICAgICB0aGlzLl9hY3RpdmVJbmRleCArPSAxO1xuICAgICAgICB0aGlzLnNldEFjdGl2ZUl0ZW0oKTtcbiAgICAgICAgdGhpcy5fc3dpcGluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkFuaW1hdGlvbigpIHtcbiAgICAgICAgY29uc3QgbmV3SW5kZXggPSAodGhpcy5faXRlbXMubGVuZ3RoICsgdGhpcy5fYWN0aXZlSW5kZXgpICUgdGhpcy5faXRlbXMubGVuZ3RoO1xuICAgICAgICB0aGlzLmNhcm91c2VsLm9uQ2hhbmdlQ0IobmV3SW5kZXgsIHRoaXMuX29sZEluZGV4KTtcbiAgICAgICAgdGhpcy5fb2xkSW5kZXggPSBuZXdJbmRleDtcbiAgICAgICAgY29uc3QgYWN0aXZlRWxlbWVudEluZGV4ID0gZmluZEluZGV4KHRoaXMuX2l0ZW1zLCB0aGlzLl8kZWwuZmluZCgnPi5jYXJvdXNlbC1pbm5lciA+LmNhcm91c2VsLWl0ZW0uYWN0aXZlJylbMF0pO1xuICAgICAgICB0aGlzLl8kZWwuZmluZCgnPi5sZWZ0LmNhcm91c2VsLWNvbnRyb2wnKS5hdHRyKCdhcmlhLWxhYmVsJywgKGFjdGl2ZUVsZW1lbnRJbmRleCA9PT0gMCA/IHRoaXMuX2l0ZW1zLmxlbmd0aCA6IGFjdGl2ZUVsZW1lbnRJbmRleCkgKyAnIG9mICcgKyB0aGlzLl9pdGVtcy5sZW5ndGgpO1xuICAgICAgICB0aGlzLl8kZWwuZmluZCgnPi5yaWdodC5jYXJvdXNlbC1jb250cm9sJykuYXR0cignYXJpYS1sYWJlbCcsIChhY3RpdmVFbGVtZW50SW5kZXggPT09IHRoaXMuX2l0ZW1zLmxlbmd0aCAtIDEgPyAxIDogYWN0aXZlRWxlbWVudEluZGV4ICsgMikgKyAnIG9mICcgKyB0aGlzLl9pdGVtcy5sZW5ndGgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGFydCgpIHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5faW50ZXJ2YWxJZCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX3N3aXBpbmcgJiYgdGhpcy5fcGF1c2VDYXJvc2VsVGlsbCA8IERhdGUubm93KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nb1RvTG93ZXIoNjAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB0aGlzLmludGVydmFsKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHBhdXNlKCkge1xuICAgICAgICB0aGlzLl9hbmltYXRpb25QYXVzZWQgPSB0cnVlO1xuICAgICAgICBpZiAoIXRoaXMuX2ludGVydmFsSWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZXN1bWUoKSB7XG4gICAgICAgIHRoaXMuX2FuaW1hdGlvblBhdXNlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdG9wKCkge1xuICAgICAgICBpZiAodGhpcy5faW50ZXJ2YWxJZCkge1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLl9pbnRlcnZhbElkKTtcbiAgICAgICAgICAgIHRoaXMuX2ludGVydmFsSWQgPSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHRocmVzaG9sZCgpIHtcbiAgICAgICAgcmV0dXJuIDU7XG4gICAgfVxuXG4gICAgLy8gUmV0dXJucyBtdWx0aXBsZSBlbGVtZW50cyBhcyBzaW5nbGUgalF1ZXJ5IGVsZW1lbnQuXG4gICAgcHJpdmF0ZSBnZXRUYXJnZXQoKSB7XG4gICAgICAgIGNvbnN0IG5vT2ZJdGVtcyA9IHRoaXMuX2l0ZW1zLmxlbmd0aCxcbiAgICAgICAgICAgIGFjdGl2ZUl0ZW0gPSB0aGlzLl9pdGVtcy5lcSgobm9PZkl0ZW1zICsgdGhpcy5fYWN0aXZlSW5kZXgpICUgbm9PZkl0ZW1zKSxcbiAgICAgICAgICAgIGxlZnRJdGVtID0gdGhpcy5faXRlbXMuZXEoKG5vT2ZJdGVtcyArIHRoaXMuX2FjdGl2ZUluZGV4IC0gMSkgJSBub09mSXRlbXMpLFxuICAgICAgICAgICAgcmlnaHRJdGVtID0gdGhpcy5faXRlbXMuZXEoKG5vT2ZJdGVtcyArIHRoaXMuX2FjdGl2ZUluZGV4ICsgMSkgJSBub09mSXRlbXMpO1xuICAgICAgICByZXR1cm4gYWN0aXZlSXRlbS5hZGQocmlnaHRJdGVtKS5hZGQobGVmdEl0ZW0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRUcmFuc2l0aW9uKCkge1xuICAgICAgICB0aGlzLmdldFRhcmdldCgpLmNzcyh7XG4gICAgICAgICAgICAnLXdlYmtpdC10cmFuc2l0aW9uJzogJ25vbmUnLFxuICAgICAgICAgICAgJy13ZWJraXQtdHJhbnNmb3JtJzogJycsXG4gICAgICAgICAgICAndHJhbnNpdGlvbic6ICdub25lJyxcbiAgICAgICAgICAgICd0cmFuc2Zvcm0nOiAnJ1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBTZXRzIGFjdGl2ZSBpdGVtLCBsZWZ0SXRlbSwgcmlnaHRJdGVtIGJ5IHJlbW92aW5nIC8gYWRkaW5nIHJlc3BlY3RpdmUgY2xhc3Nlcy5cbiAgICBwcml2YXRlIHNldEFjdGl2ZUl0ZW0oKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5faXRlbXMsXG4gICAgICAgICAgICBsZWZ0ID0gdGhpcy5fYWN0aXZlSW5kZXggLSAxLFxuICAgICAgICAgICAgcmlnaHQgPSB0aGlzLl9hY3RpdmVJbmRleCArIDE7XG4gICAgICAgIC8vIGlmIHRoZXJlIGlzIG9ubHkgb25lIGNhcm91c2VsLWl0ZW0gdGhlbiB0aGVyZSB3b24ndCBiZSBhbnkgcmlnaHQgb3IgbGVmdC1pdGVtLlxuICAgICAgICBpZiAoaXRlbXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICBpdGVtcy5lcSgwKS5yZW1vdmVDbGFzcygnbGVmdC1pdGVtIHJpZ2h0LWl0ZW0nKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2luZGljYXRvcnMuZmluZCgnPi5hY3RpdmUnKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgIHRoaXMuX2luZGljYXRvcnMuZmluZCgnPiBsaScpLmVxKChpdGVtcy5sZW5ndGggKyB0aGlzLl9hY3RpdmVJbmRleCkgJSBpdGVtcy5sZW5ndGgpLmFkZENsYXNzKCdhY3RpdmUnKTtcblxuXG4gICAgICAgIGl0ZW1zLmZpbHRlcignLmFjdGl2ZScpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgaXRlbXMuYWRkQ2xhc3MoJ2xlZnQtaXRlbScpO1xuICAgICAgICBpdGVtcy5lcSgoaXRlbXMubGVuZ3RoICsgbGVmdCkgJSBpdGVtcy5sZW5ndGgpLmFkZENsYXNzKCdsZWZ0LWl0ZW0nKS5yZW1vdmVDbGFzcygncmlnaHQtaXRlbScpO1xuICAgICAgICBpdGVtcy5lcSgoaXRlbXMubGVuZ3RoICsgdGhpcy5fYWN0aXZlSW5kZXgpICUgaXRlbXMubGVuZ3RoKS5yZW1vdmVDbGFzcygnbGVmdC1pdGVtIHJpZ2h0LWl0ZW0nKS5hZGRDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgIGl0ZW1zLmVxKChpdGVtcy5sZW5ndGggKyByaWdodCkgJSBpdGVtcy5sZW5ndGgpLmFkZENsYXNzKCdyaWdodC1pdGVtJykucmVtb3ZlQ2xhc3MoJ2xlZnQtaXRlbScpO1xuICAgIH1cbn1cbiJdfQ==
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuYW5pbWF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvYWR2YW5jZWQvY2Fyb3VzZWwvc3JjL2Nhcm91c2VsLmFuaW1hdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFHdkMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUlwQyxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsY0FBYztJQWFoRCxZQUEyQixRQUEyQixFQUFVLFFBQWdCLEVBQVUsTUFBYztRQUNwRyxLQUFLLEVBQUUsQ0FBQztRQURlLGFBQVEsR0FBUixRQUFRLENBQW1CO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFWaEcsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBSXpCLHNCQUFpQixHQUFHLENBQUMsQ0FBQztRQUd0QixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBSWxCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztR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QUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFHdkcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QixLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMvRixLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuSCxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNwRyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nWm9uZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7U3dpcGVBbmltYXRpb259IGZyb20gJ0Bzd2lwZXknO1xuXG5pbXBvcnQge0Nhcm91c2VsRGlyZWN0aXZlfSBmcm9tICcuL2Nhcm91c2VsLmRpcmVjdGl2ZSc7XG5pbXBvcnQge2ZpbmRJbmRleH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5kZWNsYXJlIGNvbnN0ICQ7XG5cbmV4cG9ydCBjbGFzcyBDYXJvdXNlbEFuaW1hdG9yIGV4dGVuZHMgU3dpcGVBbmltYXRpb24ge1xuXG4gICAgcHJpdmF0ZSBfJGVsO1xuICAgIHByaXZhdGUgX2FjdGl2ZUluZGV4ID0gMDtcbiAgICBwcml2YXRlIF9hbmltYXRpb25QYXVzZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9pbmRpY2F0b3JzO1xuICAgIHByaXZhdGUgX2l0ZW1zO1xuICAgIHByaXZhdGUgX2ludGVydmFsSWQ7XG4gICAgcHJpdmF0ZSBfcGF1c2VDYXJvc2VsVGlsbCA9IDA7XG4gICAgcHJpdmF0ZSBfc3dpcGluZztcbiAgICBwcml2YXRlIF93aWR0aDtcbiAgICBwcml2YXRlIF9vbGRJbmRleCA9IDA7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBjYXJvdXNlbDogQ2Fyb3VzZWxEaXJlY3RpdmUsIHByaXZhdGUgaW50ZXJ2YWw6IG51bWJlciwgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICAgICAgdGhpcy5fJGVsID0gJCh0aGlzLmNhcm91c2VsLmdldE5hdGl2ZUVsZW1lbnQoKSkuZmluZCgnPi5jYXJvdXNlbCcpO1xuICAgICAgICB0aGlzLmluaXQodGhpcy5fJGVsLmZpbmQoJz4uY2Fyb3VzZWwtaW5uZXInKSk7XG4gICAgICAgIHRoaXMuX2l0ZW1zID0gdGhpcy5fJGVsLmZpbmQoJz4uY2Fyb3VzZWwtaW5uZXIgPi5jYXJvdXNlbC1pdGVtJyk7XG4gICAgICAgIHRoaXMuX2luZGljYXRvcnMgPSB0aGlzLl8kZWwuZmluZCgnPi5jYXJvdXNlbC1pbmRpY2F0b3JzJyk7XG4gICAgICAgIHRoaXMuX2luZGljYXRvcnMuZmluZCgnbGknKS5lYWNoKGZ1bmN0aW9uIChpKSB7XG4gICAgICAgICAgICAkKHRoaXMpLm9uKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICAgICAgICBzZWxmLl9hY3RpdmVJbmRleCA9IGk7XG4gICAgICAgICAgICAgICAgc2VsZi5zZXRBY3RpdmVJdGVtKCk7XG4gICAgICAgICAgICAgICAgLy8gV01TLTE3NTgzOiBUcmlnZ2VyaW5nIG9uQ2hhbmdlIGV2ZW50XG4gICAgICAgICAgICAgICAgc2VsZi5jYXJvdXNlbC5vbkNoYW5nZUNCKHNlbGYuX2FjdGl2ZUluZGV4LCBzZWxmLl9vbGRJbmRleCk7XG4gICAgICAgICAgICAgICAgc2VsZi5fb2xkSW5kZXggPSBzZWxmLl9hY3RpdmVJbmRleDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fJGVsLmZpbmQoJz4ubGVmdC5jYXJvdXNlbC1jb250cm9sJykub24oJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgICAgLy8gV01TLTIyMjc4LCBJZiBhIHN3aXBlIGlzIGFscmVhZHkgaW4gcHJvY2VzcyBkbyBub3QgcHJvY2VzcyBvdGhlciBldmVudHNcbiAgICAgICAgICAgIGlmICh0aGlzLl9zd2lwaW5nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fcGF1c2VDYXJvc2VsVGlsbCA9IERhdGUubm93KCkgKyB0aGlzLmludGVydmFsO1xuICAgICAgICAgICAgdGhpcy5nb1RvVXBwZXIoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuXyRlbC5maW5kKCc+LnJpZ2h0LmNhcm91c2VsLWNvbnRyb2wnKS5vbignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICAvLyBXTVMtMjIyNzgsIElmIGEgc3dpcGUgaXMgYWxyZWFkeSBpbiBwcm9jZXNzIGRvIG5vdCBwcm9jZXNzIG90aGVyIGV2ZW50c1xuICAgICAgICAgICAgaWYgKHRoaXMuX3N3aXBpbmcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9wYXVzZUNhcm9zZWxUaWxsID0gRGF0ZS5ub3coKSArIHRoaXMuaW50ZXJ2YWw7XG4gICAgICAgICAgICB0aGlzLmdvVG9Mb3dlcigpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXRBY3RpdmVJdGVtKCk7XG4gICAgICAgIGlmICh0aGlzLmludGVydmFsKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0KCk7XG4gICAgICAgIH1cbiAgICAgICAgJCgnY2Fyb3VzZWwgc2xpZGUnKS5yZW1vdmVBdHRyKCdhcmlhLWhpZGRlbicpO1xuICAgIH1cblxuICAgIHB1YmxpYyBib3VuZHMoKSB7XG4gICAgICAgIHRoaXMuX3dpZHRoID0gdGhpcy5faXRlbXMud2lkdGgoKTtcbiAgICAgICAgdGhpcy5fc3dpcGluZyA9IHRydWU7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAnbG93ZXInOiAtdGhpcy5fd2lkdGgsXG4gICAgICAgICAgICAnY2VudGVyJzogMCxcbiAgICAgICAgICAgICd1cHBlcic6IHRoaXMuX3dpZHRoXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnRleHQoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAndyc6IHRoaXMuX3dpZHRoXG4gICAgICAgIH07XG4gICAgfVxuXG5cbiAgICBwdWJsaWMgYW5pbWF0aW9uKCkge1xuICAgICAgICByZXR1cm4gW3tcbiAgICAgICAgICAgICd0YXJnZXQnOiB0aGlzLmdldFRhcmdldC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgJ2Nzcyc6IHtcbiAgICAgICAgICAgICAgICAndHJhbnNmb3JtJzogJ3RyYW5zbGF0ZTNkKCR7eyAoKCREICsgJGQpIC8gdykgKiAxMDAgKyBcXCclXFwnfX0sIDAsIDApJyxcbiAgICAgICAgICAgICAgICAnLXdlYmtpdC10cmFuc2Zvcm0nOiAndHJhbnNsYXRlM2QoJHt7ICgoJEQgKyAkZCkgLyB3KSAqIDEwMCArIFxcJyVcXCd9fSwgMCwgMCknXG4gICAgICAgICAgICB9XG4gICAgICAgIH1dO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblVwcGVyKCkge1xuICAgICAgICB0aGlzLnJlc2V0VHJhbnNpdGlvbigpO1xuICAgICAgICB0aGlzLl9hY3RpdmVJbmRleCAtPSAxO1xuICAgICAgICB0aGlzLnNldEFjdGl2ZUl0ZW0oKTtcbiAgICAgICAgdGhpcy5fc3dpcGluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkxvd2VyKCkge1xuICAgICAgICB0aGlzLnJlc2V0VHJhbnNpdGlvbigpO1xuICAgICAgICB0aGlzLl9hY3RpdmVJbmRleCArPSAxO1xuICAgICAgICB0aGlzLnNldEFjdGl2ZUl0ZW0oKTtcbiAgICAgICAgdGhpcy5fc3dpcGluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkFuaW1hdGlvbigpIHtcbiAgICAgICAgY29uc3QgbmV3SW5kZXggPSAodGhpcy5faXRlbXMubGVuZ3RoICsgdGhpcy5fYWN0aXZlSW5kZXgpICUgdGhpcy5faXRlbXMubGVuZ3RoO1xuICAgICAgICB0aGlzLmNhcm91c2VsLm9uQ2hhbmdlQ0IobmV3SW5kZXgsIHRoaXMuX29sZEluZGV4KTtcbiAgICAgICAgdGhpcy5fb2xkSW5kZXggPSBuZXdJbmRleDtcbiAgICAgICAgY29uc3QgYWN0aXZlRWxlbWVudEluZGV4ID0gZmluZEluZGV4KHRoaXMuX2l0ZW1zLCB0aGlzLl8kZWwuZmluZCgnPi5jYXJvdXNlbC1pbm5lciA+LmNhcm91c2VsLWl0ZW0uYWN0aXZlJylbMF0pO1xuICAgICAgICB0aGlzLl8kZWwuZmluZCgnPi5sZWZ0LmNhcm91c2VsLWNvbnRyb2wnKS5hdHRyKCdhcmlhLWxhYmVsJywgKGFjdGl2ZUVsZW1lbnRJbmRleCA9PT0gMCA/IHRoaXMuX2l0ZW1zLmxlbmd0aCA6IGFjdGl2ZUVsZW1lbnRJbmRleCkgKyAnIG9mICcgKyB0aGlzLl9pdGVtcy5sZW5ndGgpO1xuICAgICAgICB0aGlzLl8kZWwuZmluZCgnPi5yaWdodC5jYXJvdXNlbC1jb250cm9sJykuYXR0cignYXJpYS1sYWJlbCcsIChhY3RpdmVFbGVtZW50SW5kZXggPT09IHRoaXMuX2l0ZW1zLmxlbmd0aCAtIDEgPyAxIDogYWN0aXZlRWxlbWVudEluZGV4ICsgMikgKyAnIG9mICcgKyB0aGlzLl9pdGVtcy5sZW5ndGgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGFydCgpIHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5faW50ZXJ2YWxJZCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX3N3aXBpbmcgJiYgdGhpcy5fcGF1c2VDYXJvc2VsVGlsbCA8IERhdGUubm93KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nb1RvTG93ZXIoNjAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB0aGlzLmludGVydmFsKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHBhdXNlKCkge1xuICAgICAgICB0aGlzLl9hbmltYXRpb25QYXVzZWQgPSB0cnVlO1xuICAgICAgICBpZiAoIXRoaXMuX2ludGVydmFsSWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZXN1bWUoKSB7XG4gICAgICAgIHRoaXMuX2FuaW1hdGlvblBhdXNlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdG9wKCkge1xuICAgICAgICBpZiAodGhpcy5faW50ZXJ2YWxJZCkge1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLl9pbnRlcnZhbElkKTtcbiAgICAgICAgICAgIHRoaXMuX2ludGVydmFsSWQgPSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHRocmVzaG9sZCgpIHtcbiAgICAgICAgcmV0dXJuIDU7XG4gICAgfVxuXG4gICAgLy8gUmV0dXJucyBtdWx0aXBsZSBlbGVtZW50cyBhcyBzaW5nbGUgalF1ZXJ5IGVsZW1lbnQuXG4gICAgcHJpdmF0ZSBnZXRUYXJnZXQoKSB7XG4gICAgICAgIGNvbnN0IG5vT2ZJdGVtcyA9IHRoaXMuX2l0ZW1zLmxlbmd0aCxcbiAgICAgICAgICAgIGFjdGl2ZUl0ZW0gPSB0aGlzLl9pdGVtcy5lcSgobm9PZkl0ZW1zICsgdGhpcy5fYWN0aXZlSW5kZXgpICUgbm9PZkl0ZW1zKSxcbiAgICAgICAgICAgIGxlZnRJdGVtID0gdGhpcy5faXRlbXMuZXEoKG5vT2ZJdGVtcyArIHRoaXMuX2FjdGl2ZUluZGV4IC0gMSkgJSBub09mSXRlbXMpLFxuICAgICAgICAgICAgcmlnaHRJdGVtID0gdGhpcy5faXRlbXMuZXEoKG5vT2ZJdGVtcyArIHRoaXMuX2FjdGl2ZUluZGV4ICsgMSkgJSBub09mSXRlbXMpO1xuICAgICAgICByZXR1cm4gYWN0aXZlSXRlbS5hZGQocmlnaHRJdGVtKS5hZGQobGVmdEl0ZW0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRUcmFuc2l0aW9uKCkge1xuICAgICAgICB0aGlzLmdldFRhcmdldCgpLmNzcyh7XG4gICAgICAgICAgICAnLXdlYmtpdC10cmFuc2l0aW9uJzogJ25vbmUnLFxuICAgICAgICAgICAgJy13ZWJraXQtdHJhbnNmb3JtJzogJycsXG4gICAgICAgICAgICAndHJhbnNpdGlvbic6ICdub25lJyxcbiAgICAgICAgICAgICd0cmFuc2Zvcm0nOiAnJ1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBTZXRzIGFjdGl2ZSBpdGVtLCBsZWZ0SXRlbSwgcmlnaHRJdGVtIGJ5IHJlbW92aW5nIC8gYWRkaW5nIHJlc3BlY3RpdmUgY2xhc3Nlcy5cbiAgICBwcml2YXRlIHNldEFjdGl2ZUl0ZW0oKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5faXRlbXMsXG4gICAgICAgICAgICBsZWZ0ID0gdGhpcy5fYWN0aXZlSW5kZXggLSAxLFxuICAgICAgICAgICAgcmlnaHQgPSB0aGlzLl9hY3RpdmVJbmRleCArIDE7XG4gICAgICAgIC8vIGlmIHRoZXJlIGlzIG9ubHkgb25lIGNhcm91c2VsLWl0ZW0gdGhlbiB0aGVyZSB3b24ndCBiZSBhbnkgcmlnaHQgb3IgbGVmdC1pdGVtLlxuICAgICAgICBpZiAoaXRlbXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICBpdGVtcy5lcSgwKS5yZW1vdmVDbGFzcygnbGVmdC1pdGVtIHJpZ2h0LWl0ZW0nKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2luZGljYXRvcnMuZmluZCgnPi5hY3RpdmUnKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgIHRoaXMuX2luZGljYXRvcnMuZmluZCgnPiBsaScpLmVxKChpdGVtcy5sZW5ndGggKyB0aGlzLl9hY3RpdmVJbmRleCkgJSBpdGVtcy5sZW5ndGgpLmFkZENsYXNzKCdhY3RpdmUnKTtcblxuXG4gICAgICAgIGl0ZW1zLmZpbHRlcignLmFjdGl2ZScpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgaXRlbXMuYWRkQ2xhc3MoJ2xlZnQtaXRlbScpO1xuICAgICAgICBpdGVtcy5lcSgoaXRlbXMubGVuZ3RoICsgbGVmdCkgJSBpdGVtcy5sZW5ndGgpLmFkZENsYXNzKCdsZWZ0LWl0ZW0nKS5yZW1vdmVDbGFzcygncmlnaHQtaXRlbScpO1xuICAgICAgICBpdGVtcy5lcSgoaXRlbXMubGVuZ3RoICsgdGhpcy5fYWN0aXZlSW5kZXgpICUgaXRlbXMubGVuZ3RoKS5yZW1vdmVDbGFzcygnbGVmdC1pdGVtIHJpZ2h0LWl0ZW0nKS5hZGRDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgIGl0ZW1zLmVxKChpdGVtcy5sZW5ndGggKyByaWdodCkgJSBpdGVtcy5sZW5ndGgpLmFkZENsYXNzKCdyaWdodC1pdGVtJykucmVtb3ZlQ2xhc3MoJ2xlZnQtaXRlbScpO1xuICAgIH1cbn1cbiJdfQ==
@@ -63,7 +63,7 @@ class CarouselAnimator extends SwipeAnimation {
63
63
  if (this.interval) {
64
64
  this.start();
65
65
  }
66
- this._$el.find('>.left.carousel-control').append('<span class="sr-only">Previous</span>');
66
+ $('carousel slide').removeAttr('aria-hidden');
67
67
  }
68
68
  bounds() {
69
69
  this._width = this._items.width();
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/advanced/carousel/src/carousel.props.ts","../../../../../projects/components/widgets/advanced/carousel/src/carousel.animator.ts","../../../../../projects/components/widgets/advanced/carousel/src/carousel.directive.ts","../../../../../projects/components/widgets/advanced/carousel/src/carousel-template/carousel-template.props.ts","../../../../../projects/components/widgets/advanced/carousel/src/carousel-template/carousel-template.directive.ts","../../../../../projects/components/widgets/advanced/carousel/src/carousel.module.ts","../../../../../projects/components/widgets/advanced/carousel/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-carousel',\n new Map(\n [\n ['animation', {value: 'auto', ... PROP_STRING}],\n ['animationinterval', {value: 3, ... PROP_NUMBER}],\n ['controls', {value: 'both', ... PROP_STRING}],\n ['dataset', PROP_ANY],\n ['name', PROP_STRING],\n ['nodatamessage', {value: 'No Data Found', ... PROP_STRING}],\n ['show', PROP_BOOLEAN]\n ]\n )\n );\n};\n","import { NgZone } from '@angular/core';\n\nimport { SwipeAnimation } from '@swipey';\n\nimport { CarouselDirective } from './carousel.directive';\nimport {findIndex} from \"lodash-es\";\ndeclare const $;\n\nexport class CarouselAnimator extends SwipeAnimation {\n\n private _$el;\n private _activeIndex = 0;\n private _animationPaused = false;\n private _indicators;\n private _items;\n private _intervalId;\n private _pauseCaroselTill = 0;\n private _swiping;\n private _width;\n private _oldIndex = 0;\n\n public constructor(private carousel: CarouselDirective, private interval: number, private ngZone: NgZone) {\n super();\n const self = this;\n this._$el = $(this.carousel.getNativeElement()).find('>.carousel');\n this.init(this._$el.find('>.carousel-inner'));\n this._items = this._$el.find('>.carousel-inner >.carousel-item');\n this._indicators = this._$el.find('>.carousel-indicators');\n this._indicators.find('li').each(function (i) {\n $(this).on('click', () => {\n self._activeIndex = i;\n self.setActiveItem();\n // WMS-17583: Triggering onChange event\n self.carousel.onChangeCB(self._activeIndex, self._oldIndex);\n self._oldIndex = self._activeIndex;\n });\n });\n this._$el.find('>.left.carousel-control').on('click', () => {\n // WMS-22278, If a swipe is already in process do not process other events\n if (this._swiping) {\n return;\n }\n this._pauseCaroselTill = Date.now() + this.interval;\n this.goToUpper();\n });\n this._$el.find('>.right.carousel-control').on('click', () => {\n // WMS-22278, If a swipe is already in process do not process other events\n if (this._swiping) {\n return;\n }\n this._pauseCaroselTill = Date.now() + this.interval;\n this.goToLower();\n });\n this.setActiveItem();\n if (this.interval) {\n this.start();\n }\n this._$el.find('>.left.carousel-control').append('<span class=\"sr-only\">Previous</span>');\n }\n\n public bounds() {\n this._width = this._items.width();\n this._swiping = true;\n return {\n 'lower': -this._width,\n 'center': 0,\n 'upper': this._width\n };\n }\n\n public context() {\n return {\n 'w': this._width\n };\n }\n\n\n public animation() {\n return [{\n 'target': this.getTarget.bind(this),\n 'css': {\n 'transform': 'translate3d(${{ (($D + $d) / w) * 100 + \\'%\\'}}, 0, 0)',\n '-webkit-transform': 'translate3d(${{ (($D + $d) / w) * 100 + \\'%\\'}}, 0, 0)'\n }\n }];\n }\n\n public onUpper() {\n this.resetTransition();\n this._activeIndex -= 1;\n this.setActiveItem();\n this._swiping = false;\n }\n\n public onLower() {\n this.resetTransition();\n this._activeIndex += 1;\n this.setActiveItem();\n this._swiping = false;\n }\n\n public onAnimation() {\n const newIndex = (this._items.length + this._activeIndex) % this._items.length;\n this.carousel.onChangeCB(newIndex, this._oldIndex);\n this._oldIndex = newIndex;\n const activeElementIndex = findIndex(this._items, this._$el.find('>.carousel-inner >.carousel-item.active')[0]);\n this._$el.find('>.left.carousel-control').attr('aria-label', (activeElementIndex === 0 ? this._items.length : activeElementIndex) + ' of ' + this._items.length);\n this._$el.find('>.right.carousel-control').attr('aria-label', (activeElementIndex === this._items.length - 1 ? 1 : activeElementIndex + 2) + ' of ' + this._items.length);\n }\n\n public start() {\n this.ngZone.runOutsideAngular(() => {\n this._intervalId = setInterval(() => {\n if (!this._swiping && this._pauseCaroselTill < Date.now()) {\n this.goToLower(600);\n }\n }, this.interval);\n });\n }\n\n public pause() {\n this._animationPaused = true;\n if (!this._intervalId) {\n this.start();\n }\n }\n\n public resume() {\n this._animationPaused = false;\n }\n\n public stop() {\n if (this._intervalId) {\n clearInterval(this._intervalId);\n this._intervalId = 0;\n }\n }\n\n public threshold() {\n return 5;\n }\n\n // Returns multiple elements as single jQuery element.\n private getTarget() {\n const noOfItems = this._items.length,\n activeItem = this._items.eq((noOfItems + this._activeIndex) % noOfItems),\n leftItem = this._items.eq((noOfItems + this._activeIndex - 1) % noOfItems),\n rightItem = this._items.eq((noOfItems + this._activeIndex + 1) % noOfItems);\n return activeItem.add(rightItem).add(leftItem);\n }\n\n private resetTransition() {\n this.getTarget().css({\n '-webkit-transition': 'none',\n '-webkit-transform': '',\n 'transition': 'none',\n 'transform': ''\n });\n }\n\n // Sets active item, leftItem, rightItem by removing / adding respective classes.\n private setActiveItem() {\n const items = this._items,\n left = this._activeIndex - 1,\n right = this._activeIndex + 1;\n // if there is only one carousel-item then there won't be any right or left-item.\n if (items.length === 1) {\n items.eq(0).removeClass('left-item right-item');\n return;\n }\n\n this._indicators.find('>.active').removeClass('active');\n this._indicators.find('> li').eq((items.length + this._activeIndex) % items.length).addClass('active');\n\n\n items.filter('.active').removeClass('active');\n items.addClass('left-item');\n items.eq((items.length + left) % items.length).addClass('left-item').removeClass('right-item');\n items.eq((items.length + this._activeIndex) % items.length).removeClass('left-item right-item').addClass('active');\n items.eq((items.length + right) % items.length).addClass('right-item').removeClass('left-item');\n }\n}\n","import {\n AfterContentInit,\n ContentChildren,\n Directive, Inject,\n Injector,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n QueryList\n} from '@angular/core';\n\nimport { CarouselComponent, SlideComponent } from 'ngx-bootstrap/carousel';\n\nimport { createArrayFrom, IWidgetConfig, StylableComponent, styler } from '@wm/components/base';\n\nimport { registerProps } from './carousel.props';\nimport { CarouselAnimator } from './carousel.animator';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-carousel'\n};\n\nconst navigationClassMap = {\n indicators: 'hide-navs',\n navs: 'hide-indicators',\n none: 'hide-both'\n};\n\n@Directive({\n selector: '[wmCarousel]',\n exportAs: 'wmCarousel'\n})\nexport class CarouselDirective extends StylableComponent implements AfterContentInit, OnDestroy, OnInit {\n static initializeProps = registerProps();\n\n private animator;\n private navigationClass;\n private fieldDefs;\n private interval;\n\n public animationinterval;\n public animation;\n public controls;\n public currentslide;\n public previousslide;\n\n @ContentChildren(SlideComponent) slides: QueryList<SlideComponent>;\n\n constructor(public component: CarouselComponent, inj: Injector, private ngZone: NgZone, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n }\n\n private onDataChange(newVal) {\n this.fieldDefs = createArrayFrom(newVal);\n }\n\n private stopAnimation() {\n if (this.animator) {\n this.animator.stop();\n }\n }\n\n private startAnimation() {\n if (this.animator) {\n this.animator.interval = this.animationinterval * 1000;\n this.animator.start();\n }\n }\n\n private onSlidesRender(slides) {\n // if dynamic carousel, initialize the 'currentslide' property as the first object\n if (this.fieldDefs && this.fieldDefs.length) {\n this.currentslide = this.fieldDefs[0];\n }\n if (slides.length) {\n setTimeout(() => {\n this.animator = new CarouselAnimator(this, this.interval, this.ngZone);\n }, 50);\n }\n }\n\n private setupHandlers() {\n this.slides.changes.subscribe( slides => {\n this.triggerAnimation(slides);\n });\n this.slides.setDirty();\n }\n\n public onChangeCB(newIndex, oldIndex) {\n // assign current and previous slides on widget. In case of static carousel, fieldDefs will be undefined, hence the check\n this.currentslide = this.fieldDefs && this.fieldDefs[newIndex];\n this.previousslide = this.fieldDefs && this.fieldDefs[oldIndex];\n this.invokeEventCallback('change', {newIndex: newIndex, oldIndex: oldIndex});\n }\n\n ngAfterContentInit() {\n this.triggerAnimation(this.slides);\n this.setupHandlers();\n }\n\n ngOnDestroy() {\n this.stopAnimation();\n super.ngOnDestroy();\n }\n\n // Calculating animation interval if animation is enabled\n setanimationinterval() {\n this.interval = this.animation === 'auto' ? this.animationinterval * 1000 : 0 ;\n }\n\n triggerAnimation(slides) {\n this.stopAnimation();\n this.onSlidesRender(slides);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.setanimationinterval();\n // TODO transition is pending\n\n }\n\n // on property change handler\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'dataset') {\n this.onDataChange(nv);\n } else if (key === 'controls') {\n // For showing controls\n this.navigationClass = navigationClassMap[this.controls];\n } else if (key === 'animation' || key === 'animationinterval') {\n if (key === 'animationinterval') {\n this.stopAnimation();\n this.setanimationinterval();\n }\n this.animation === 'none' ? this.stopAnimation() : this.startAnimation();\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import { PROP_BOOLEAN, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-carousel-template',\n new Map(\n [\n ['show', PROP_BOOLEAN]\n ]\n )\n );\n};\n","import {Directive, Inject, Injector, Optional} from '@angular/core';\n\nimport {IWidgetConfig, StylableComponent, styler} from '@wm/components/base';\nimport {registerProps} from './carousel-template.props';\n\nconst DEFAULT_CLS = 'app-carousel-item';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-carousel-template',\n hostClass: DEFAULT_CLS\n};\n\n@Directive({\n selector: '[wmCarouselTemplate]',\n exportAs: 'carouselTemplateRef',\n})\nexport class CarouselTemplateDirective extends StylableComponent {\n static initializeProps = registerProps();\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CarouselModule as ngxCarouselModule } from 'ngx-bootstrap/carousel';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { CarouselDirective } from './carousel.directive';\nimport { CarouselTemplateDirective } from './carousel-template/carousel-template.directive';\n\nconst components = [\n CarouselDirective,\n CarouselTemplateDirective\n];\n\n@NgModule({\n imports: [\n CommonModule,\n ngxCarouselModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class CarouselModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","WIDGET_CONFIG","ngxCarouselModule"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/advanced/carousel/src/carousel.props.ts","../../../../../projects/components/widgets/advanced/carousel/src/carousel.animator.ts","../../../../../projects/components/widgets/advanced/carousel/src/carousel.directive.ts","../../../../../projects/components/widgets/advanced/carousel/src/carousel-template/carousel-template.props.ts","../../../../../projects/components/widgets/advanced/carousel/src/carousel-template/carousel-template.directive.ts","../../../../../projects/components/widgets/advanced/carousel/src/carousel.module.ts","../../../../../projects/components/widgets/advanced/carousel/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-carousel',\n new Map(\n [\n ['animation', {value: 'auto', ... PROP_STRING}],\n ['animationinterval', {value: 3, ... PROP_NUMBER}],\n ['controls', {value: 'both', ... PROP_STRING}],\n ['dataset', PROP_ANY],\n ['name', PROP_STRING],\n ['nodatamessage', {value: 'No Data Found', ... PROP_STRING}],\n ['show', PROP_BOOLEAN]\n ]\n )\n );\n};\n","import {NgZone} from '@angular/core';\n\nimport {SwipeAnimation} from '@swipey';\n\nimport {CarouselDirective} from './carousel.directive';\nimport {findIndex} from \"lodash-es\";\n\ndeclare const $;\n\nexport class CarouselAnimator extends SwipeAnimation {\n\n private _$el;\n private _activeIndex = 0;\n private _animationPaused = false;\n private _indicators;\n private _items;\n private _intervalId;\n private _pauseCaroselTill = 0;\n private _swiping;\n private _width;\n private _oldIndex = 0;\n\n public constructor(private carousel: CarouselDirective, private interval: number, private ngZone: NgZone) {\n super();\n const self = this;\n this._$el = $(this.carousel.getNativeElement()).find('>.carousel');\n this.init(this._$el.find('>.carousel-inner'));\n this._items = this._$el.find('>.carousel-inner >.carousel-item');\n this._indicators = this._$el.find('>.carousel-indicators');\n this._indicators.find('li').each(function (i) {\n $(this).on('click', () => {\n self._activeIndex = i;\n self.setActiveItem();\n // WMS-17583: Triggering onChange event\n self.carousel.onChangeCB(self._activeIndex, self._oldIndex);\n self._oldIndex = self._activeIndex;\n });\n });\n this._$el.find('>.left.carousel-control').on('click', () => {\n // WMS-22278, If a swipe is already in process do not process other events\n if (this._swiping) {\n return;\n }\n this._pauseCaroselTill = Date.now() + this.interval;\n this.goToUpper();\n });\n this._$el.find('>.right.carousel-control').on('click', () => {\n // WMS-22278, If a swipe is already in process do not process other events\n if (this._swiping) {\n return;\n }\n this._pauseCaroselTill = Date.now() + this.interval;\n this.goToLower();\n });\n this.setActiveItem();\n if (this.interval) {\n this.start();\n }\n $('carousel slide').removeAttr('aria-hidden');\n }\n\n public bounds() {\n this._width = this._items.width();\n this._swiping = true;\n return {\n 'lower': -this._width,\n 'center': 0,\n 'upper': this._width\n };\n }\n\n public context() {\n return {\n 'w': this._width\n };\n }\n\n\n public animation() {\n return [{\n 'target': this.getTarget.bind(this),\n 'css': {\n 'transform': 'translate3d(${{ (($D + $d) / w) * 100 + \\'%\\'}}, 0, 0)',\n '-webkit-transform': 'translate3d(${{ (($D + $d) / w) * 100 + \\'%\\'}}, 0, 0)'\n }\n }];\n }\n\n public onUpper() {\n this.resetTransition();\n this._activeIndex -= 1;\n this.setActiveItem();\n this._swiping = false;\n }\n\n public onLower() {\n this.resetTransition();\n this._activeIndex += 1;\n this.setActiveItem();\n this._swiping = false;\n }\n\n public onAnimation() {\n const newIndex = (this._items.length + this._activeIndex) % this._items.length;\n this.carousel.onChangeCB(newIndex, this._oldIndex);\n this._oldIndex = newIndex;\n const activeElementIndex = findIndex(this._items, this._$el.find('>.carousel-inner >.carousel-item.active')[0]);\n this._$el.find('>.left.carousel-control').attr('aria-label', (activeElementIndex === 0 ? this._items.length : activeElementIndex) + ' of ' + this._items.length);\n this._$el.find('>.right.carousel-control').attr('aria-label', (activeElementIndex === this._items.length - 1 ? 1 : activeElementIndex + 2) + ' of ' + this._items.length);\n }\n\n public start() {\n this.ngZone.runOutsideAngular(() => {\n this._intervalId = setInterval(() => {\n if (!this._swiping && this._pauseCaroselTill < Date.now()) {\n this.goToLower(600);\n }\n }, this.interval);\n });\n }\n\n public pause() {\n this._animationPaused = true;\n if (!this._intervalId) {\n this.start();\n }\n }\n\n public resume() {\n this._animationPaused = false;\n }\n\n public stop() {\n if (this._intervalId) {\n clearInterval(this._intervalId);\n this._intervalId = 0;\n }\n }\n\n public threshold() {\n return 5;\n }\n\n // Returns multiple elements as single jQuery element.\n private getTarget() {\n const noOfItems = this._items.length,\n activeItem = this._items.eq((noOfItems + this._activeIndex) % noOfItems),\n leftItem = this._items.eq((noOfItems + this._activeIndex - 1) % noOfItems),\n rightItem = this._items.eq((noOfItems + this._activeIndex + 1) % noOfItems);\n return activeItem.add(rightItem).add(leftItem);\n }\n\n private resetTransition() {\n this.getTarget().css({\n '-webkit-transition': 'none',\n '-webkit-transform': '',\n 'transition': 'none',\n 'transform': ''\n });\n }\n\n // Sets active item, leftItem, rightItem by removing / adding respective classes.\n private setActiveItem() {\n const items = this._items,\n left = this._activeIndex - 1,\n right = this._activeIndex + 1;\n // if there is only one carousel-item then there won't be any right or left-item.\n if (items.length === 1) {\n items.eq(0).removeClass('left-item right-item');\n return;\n }\n\n this._indicators.find('>.active').removeClass('active');\n this._indicators.find('> li').eq((items.length + this._activeIndex) % items.length).addClass('active');\n\n\n items.filter('.active').removeClass('active');\n items.addClass('left-item');\n items.eq((items.length + left) % items.length).addClass('left-item').removeClass('right-item');\n items.eq((items.length + this._activeIndex) % items.length).removeClass('left-item right-item').addClass('active');\n items.eq((items.length + right) % items.length).addClass('right-item').removeClass('left-item');\n }\n}\n","import {\n AfterContentInit,\n ContentChildren,\n Directive, Inject,\n Injector,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n QueryList\n} from '@angular/core';\n\nimport { CarouselComponent, SlideComponent } from 'ngx-bootstrap/carousel';\n\nimport { createArrayFrom, IWidgetConfig, StylableComponent, styler } from '@wm/components/base';\n\nimport { registerProps } from './carousel.props';\nimport { CarouselAnimator } from './carousel.animator';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-carousel'\n};\n\nconst navigationClassMap = {\n indicators: 'hide-navs',\n navs: 'hide-indicators',\n none: 'hide-both'\n};\n\n@Directive({\n selector: '[wmCarousel]',\n exportAs: 'wmCarousel'\n})\nexport class CarouselDirective extends StylableComponent implements AfterContentInit, OnDestroy, OnInit {\n static initializeProps = registerProps();\n\n private animator;\n private navigationClass;\n private fieldDefs;\n private interval;\n\n public animationinterval;\n public animation;\n public controls;\n public currentslide;\n public previousslide;\n\n @ContentChildren(SlideComponent) slides: QueryList<SlideComponent>;\n\n constructor(public component: CarouselComponent, inj: Injector, private ngZone: NgZone, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n }\n\n private onDataChange(newVal) {\n this.fieldDefs = createArrayFrom(newVal);\n }\n\n private stopAnimation() {\n if (this.animator) {\n this.animator.stop();\n }\n }\n\n private startAnimation() {\n if (this.animator) {\n this.animator.interval = this.animationinterval * 1000;\n this.animator.start();\n }\n }\n\n private onSlidesRender(slides) {\n // if dynamic carousel, initialize the 'currentslide' property as the first object\n if (this.fieldDefs && this.fieldDefs.length) {\n this.currentslide = this.fieldDefs[0];\n }\n if (slides.length) {\n setTimeout(() => {\n this.animator = new CarouselAnimator(this, this.interval, this.ngZone);\n }, 50);\n }\n }\n\n private setupHandlers() {\n this.slides.changes.subscribe( slides => {\n this.triggerAnimation(slides);\n });\n this.slides.setDirty();\n }\n\n public onChangeCB(newIndex, oldIndex) {\n // assign current and previous slides on widget. In case of static carousel, fieldDefs will be undefined, hence the check\n this.currentslide = this.fieldDefs && this.fieldDefs[newIndex];\n this.previousslide = this.fieldDefs && this.fieldDefs[oldIndex];\n this.invokeEventCallback('change', {newIndex: newIndex, oldIndex: oldIndex});\n }\n\n ngAfterContentInit() {\n this.triggerAnimation(this.slides);\n this.setupHandlers();\n }\n\n ngOnDestroy() {\n this.stopAnimation();\n super.ngOnDestroy();\n }\n\n // Calculating animation interval if animation is enabled\n setanimationinterval() {\n this.interval = this.animation === 'auto' ? this.animationinterval * 1000 : 0 ;\n }\n\n triggerAnimation(slides) {\n this.stopAnimation();\n this.onSlidesRender(slides);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.setanimationinterval();\n // TODO transition is pending\n\n }\n\n // on property change handler\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'dataset') {\n this.onDataChange(nv);\n } else if (key === 'controls') {\n // For showing controls\n this.navigationClass = navigationClassMap[this.controls];\n } else if (key === 'animation' || key === 'animationinterval') {\n if (key === 'animationinterval') {\n this.stopAnimation();\n this.setanimationinterval();\n }\n this.animation === 'none' ? this.stopAnimation() : this.startAnimation();\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import { PROP_BOOLEAN, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-carousel-template',\n new Map(\n [\n ['show', PROP_BOOLEAN]\n ]\n )\n );\n};\n","import {Directive, Inject, Injector, Optional} from '@angular/core';\n\nimport {IWidgetConfig, StylableComponent, styler} from '@wm/components/base';\nimport {registerProps} from './carousel-template.props';\n\nconst DEFAULT_CLS = 'app-carousel-item';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-carousel-template',\n hostClass: DEFAULT_CLS\n};\n\n@Directive({\n selector: '[wmCarouselTemplate]',\n exportAs: 'carouselTemplateRef',\n})\nexport class CarouselTemplateDirective extends StylableComponent {\n static initializeProps = registerProps();\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CarouselModule as ngxCarouselModule } from 'ngx-bootstrap/carousel';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { CarouselDirective } from './carousel.directive';\nimport { CarouselTemplateDirective } from './carousel-template/carousel-template.directive';\n\nconst components = [\n CarouselDirective,\n CarouselTemplateDirective\n];\n\n@NgModule({\n imports: [\n CommonModule,\n ngxCarouselModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class CarouselModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","WIDGET_CONFIG","ngxCarouselModule"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@wm/components/base'), require('@wm/core'), require('lodash-es')) :
3
- typeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/common', '@wm/components/base', '@wm/core', 'lodash-es'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.wm = global.wm || {}, global.wm.components = global.wm.components || {}, global.wm.components.advanced = global.wm.components.advanced || {}, global.wm.components.advanced.custom = {}), global.ng.core, global.ng.common, global.wm.components.base, global.wm.core, global._));
5
- })(this, (function (exports, i0, common, base, i1, lodashEs) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@wm/components/base'), require('@wm/core'), require('lodash-es'), require('@angular/forms'), require('@wm/components/input'), require('rxjs')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/common', '@wm/components/base', '@wm/core', 'lodash-es', '@angular/forms', '@wm/components/input', 'rxjs'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.wm = global.wm || {}, global.wm.components = global.wm.components || {}, global.wm.components.advanced = global.wm.components.advanced || {}, global.wm.components.advanced.custom = {}), global.ng.core, global.ng.common, global.wm.components.base, global.wm.core, global._, global.ng.forms, global.wm.components.input, global.rxjs));
5
+ })(this, (function (exports, i0, common, base, i1, lodashEs, forms, input, rxjs) { 'use strict';
6
6
 
7
7
  function _interopNamespaceDefault(e) {
8
8
  var n = Object.create(null);
@@ -38,15 +38,16 @@
38
38
  const registeredPropsSet = new Set();
39
39
  let customWidgetPropsMap = {};
40
40
  const DEFAULT_CLS$1 = 'app-html-container';
41
- class CustomWidgetContainerDirective extends base.StylableComponent {
41
+ class CustomWidgetContainerDirective extends input.DatasetAwareFormComponent {
42
42
  static { this.initializeProps = registerProps$1(); }
43
- constructor(inj, elRef, widgetname) {
43
+ constructor(inj, elRef, widgetname, explicitContext) {
44
44
  const widgetType = `wm-custom-${widgetname}`;
45
45
  const WIDGET_CONFIG = { widgetType, hostClass: DEFAULT_CLS$1 };
46
46
  let resolveFn = i1.noop;
47
- super(inj, WIDGET_CONFIG, undefined, new Promise(res => resolveFn = res));
47
+ super(inj, WIDGET_CONFIG, explicitContext, undefined, new Promise(res => resolveFn = res));
48
48
  this.props = {};
49
49
  this.propsReady = resolveFn;
50
+ this.configSubject = new rxjs.Subject();
50
51
  this.widgetType = widgetType;
51
52
  this.name = elRef.nativeElement.getAttribute('name');
52
53
  base.styler(this.nativeElement, this);
@@ -63,6 +64,17 @@
63
64
  }
64
65
  }));
65
66
  }
67
+ get datavalue() {
68
+ if (this.nativeElement.children.length) {
69
+ let value = this.nativeElement.children[0].children[0]['widget'].viewParent.datavalue;
70
+ this.updateDataValue(value);
71
+ return value;
72
+ }
73
+ }
74
+ set datavalue(value) {
75
+ if (this.nativeElement.children.length)
76
+ this.nativeElement.children[0].children[0]['widget'].viewParent.datavalue = value;
77
+ }
66
78
  setBaseWidgetName(baseWidgetType) {
67
79
  let splitArr = baseWidgetType.split('-'), modifiedArr = [];
68
80
  modifiedArr = splitArr.map((item) => {
@@ -72,7 +84,14 @@
72
84
  this.baseWidgetName = modifiedArr.join('');
73
85
  }
74
86
  setProps(config, resolveFn) {
75
- this.setBaseWidgetName(config.widgetType);
87
+ this.config = config;
88
+ this.configSubject.next();
89
+ if (config.customClasses) {
90
+ i1.addClass(this.nativeElement, config.customClasses);
91
+ }
92
+ this.asAttr = this.nativeElement.children[0].children[0].hasAttribute('as');
93
+ if (this.asAttr)
94
+ this.setBaseWidgetName(config.widgetType);
76
95
  if (!config || !config.properties) {
77
96
  return;
78
97
  }
@@ -105,14 +124,28 @@
105
124
  customWidgetPropsMap[this.widgetType] = this.props;
106
125
  return propsMap;
107
126
  }
127
+ updateDataValue(value) {
128
+ if (this.formControl && this.formControl.control && value !== this.formControl.control.value)
129
+ this.formControl.control.setValue(value);
130
+ }
108
131
  updateData(key, value) {
109
132
  let modifiedKey = key.replace('base-', '');
110
- this[this.baseWidgetName][modifiedKey] = value;
111
- this.nativeElement.childNodes[0]['widget'].viewParent[this.baseWidgetName][modifiedKey] = value;
112
- this[this.baseWidgetName].initDatasetItems();
133
+ if (this.asAttr) {
134
+ this[this.baseWidgetName][modifiedKey] = value;
135
+ this.nativeElement.children[0].children[0]['widget'].viewParent[this.baseWidgetName][modifiedKey] = value;
136
+ this[this.baseWidgetName].initDatasetItems();
137
+ }
138
+ else {
139
+ this[modifiedKey] = value;
140
+ this.nativeElement.children[0].children[0]['widget'].viewParent[modifiedKey] = value;
141
+ }
142
+ if (this.formControl && modifiedKey === 'datavalue')
143
+ this.updateDataValue(value);
113
144
  }
114
- static { this.ɵfac = function CustomWidgetContainerDirective_Factory(t) { return new (t || CustomWidgetContainerDirective)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject(i0__namespace.ElementRef), i0__namespace.ɵɵinjectAttribute('widgetname')); }; }
145
+ static { this.ɵfac = function CustomWidgetContainerDirective_Factory(t) { return new (t || CustomWidgetContainerDirective)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject(i0__namespace.ElementRef), i0__namespace.ɵɵinjectAttribute('widgetname'), i0__namespace.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
115
146
  static { this.ɵdir = /*@__PURE__*/ i0__namespace.ɵɵdefineDirective({ type: CustomWidgetContainerDirective, selectors: [["", "wmWidgetContainer", ""]], exportAs: ["wmWidgetContainer"], features: [i0__namespace.ɵɵProvidersFeature([
147
+ base.provideAs(CustomWidgetContainerDirective, forms.NG_VALUE_ACCESSOR, true),
148
+ base.provideAs(CustomWidgetContainerDirective, forms.NG_VALIDATORS, true),
116
149
  base.provideAsWidgetRef(CustomWidgetContainerDirective)
117
150
  ]), i0__namespace.ɵɵInheritDefinitionFeature] }); }
118
151
  }
@@ -121,6 +154,8 @@
121
154
  args: [{
122
155
  selector: '[wmWidgetContainer]',
123
156
  providers: [
157
+ base.provideAs(CustomWidgetContainerDirective, forms.NG_VALUE_ACCESSOR, true),
158
+ base.provideAs(CustomWidgetContainerDirective, forms.NG_VALIDATORS, true),
124
159
  base.provideAsWidgetRef(CustomWidgetContainerDirective)
125
160
  ],
126
161
  exportAs: 'wmWidgetContainer'
@@ -128,6 +163,11 @@
128
163
  }], () => [{ type: i0__namespace.Injector }, { type: i0__namespace.ElementRef }, { type: undefined, decorators: [{
129
164
  type: i0.Attribute,
130
165
  args: ['widgetname']
166
+ }] }, { type: undefined, decorators: [{
167
+ type: i0.Inject,
168
+ args: ['EXPLICIT_CONTEXT']
169
+ }, {
170
+ type: i0.Optional
131
171
  }] }], null); })();
132
172
 
133
173
  const registerProps = () => {
@@ -148,7 +188,7 @@
148
188
  this.registerDestroyListener(this.viewport.subscribe("orientationchange" /* ViewportEvent.ORIENTATION_CHANGE */, data => this.callback('orientationchange', data)));
149
189
  }
150
190
  ngAfterContentInit() {
151
- let customWidget = this.nativeElement.closest('[customwidgetcontainer]'), inheritedProps = {}, customWidgetProps = Array.from(base.getWidgetPropsByType("wm-custom-widget-container").keys());
191
+ let customWidget = this.nativeElement.closest('[customwidgetcontainer]') || this.nativeElement.closest('[wmwidgetcontainer]'), inheritedProps = {}, customWidgetProps = Array.from(base.getWidgetPropsByType("wm-custom-widget-container").keys());
152
192
  for (let i = 0; i < customWidget.attributes.length; i++) {
153
193
  let attr = customWidget.attributes.item(i);
154
194
  if (attr.value && attr.value !== '' && !customWidgetProps.includes(attr.name))
@@ -1,19 +1,26 @@
1
1
  import { ElementRef, Injector, OnInit } from '@angular/core';
2
- import { StylableComponent } from '@wm/components/base';
2
+ import { DatasetAwareFormComponent } from "@wm/components/input";
3
+ import { Subject } from "rxjs";
3
4
  import * as i0 from "@angular/core";
4
- export declare class CustomWidgetContainerDirective extends StylableComponent implements OnInit {
5
+ export declare class CustomWidgetContainerDirective extends DatasetAwareFormComponent implements OnInit {
5
6
  static initializeProps: void;
6
7
  widgetType: string;
7
8
  name: string;
8
9
  propsReady: Function;
9
10
  widgetName: string;
11
+ config: any;
10
12
  private props;
11
13
  private baseWidgetName;
12
- constructor(inj: Injector, elRef: ElementRef, widgetname: string);
14
+ asAttr: boolean;
15
+ configSubject: Subject<any>;
16
+ constructor(inj: Injector, elRef: ElementRef, widgetname: string, explicitContext: any);
17
+ get datavalue(): any;
18
+ set datavalue(value: any);
13
19
  setBaseWidgetName(baseWidgetType: string): void;
14
20
  setProps(config: any, resolveFn: Function): void;
15
21
  private prepareProps;
22
+ updateDataValue(value: any): void;
16
23
  updateData(key: string, value: any): void;
17
- static ɵfac: i0.ɵɵFactoryDeclaration<CustomWidgetContainerDirective, [null, null, { attribute: "widgetname"; }]>;
24
+ static ɵfac: i0.ɵɵFactoryDeclaration<CustomWidgetContainerDirective, [null, null, { attribute: "widgetname"; }, { optional: true; }]>;
18
25
  static ɵdir: i0.ɵɵDirectiveDeclaration<CustomWidgetContainerDirective, "[wmWidgetContainer]", ["wmWidgetContainer"], {}, {}, never, never, false, never>;
19
26
  }
@@ -1,22 +1,26 @@
1
- import { Attribute, Directive, ElementRef, Injector } from '@angular/core';
2
- import { noop } from '@wm/core';
3
- import { PROP_TYPE, provideAsWidgetRef, register, StylableComponent, styler } from '@wm/components/base';
1
+ import { Attribute, Directive, ElementRef, Inject, Injector, Optional } from '@angular/core';
2
+ import { addClass, noop } from '@wm/core';
3
+ import { PROP_TYPE, provideAs, provideAsWidgetRef, register, styler } from '@wm/components/base';
4
4
  import { customWidgetProps } from './custom-widget.props';
5
5
  import { registerProps } from "../custom-widget-container/custom-widget.props";
6
6
  import { capitalize, cloneDeep } from 'lodash-es';
7
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from "@angular/forms";
8
+ import { DatasetAwareFormComponent } from "@wm/components/input";
9
+ import { Subject } from "rxjs";
7
10
  import * as i0 from "@angular/core";
8
11
  const registeredPropsSet = new Set();
9
12
  let customWidgetPropsMap = {};
10
13
  const DEFAULT_CLS = 'app-html-container';
11
- export class CustomWidgetContainerDirective extends StylableComponent {
14
+ export class CustomWidgetContainerDirective extends DatasetAwareFormComponent {
12
15
  static { this.initializeProps = registerProps(); }
13
- constructor(inj, elRef, widgetname) {
16
+ constructor(inj, elRef, widgetname, explicitContext) {
14
17
  const widgetType = `wm-custom-${widgetname}`;
15
18
  const WIDGET_CONFIG = { widgetType, hostClass: DEFAULT_CLS };
16
19
  let resolveFn = noop;
17
- super(inj, WIDGET_CONFIG, undefined, new Promise(res => resolveFn = res));
20
+ super(inj, WIDGET_CONFIG, explicitContext, undefined, new Promise(res => resolveFn = res));
18
21
  this.props = {};
19
22
  this.propsReady = resolveFn;
23
+ this.configSubject = new Subject();
20
24
  this.widgetType = widgetType;
21
25
  this.name = elRef.nativeElement.getAttribute('name');
22
26
  styler(this.nativeElement, this);
@@ -33,6 +37,17 @@ export class CustomWidgetContainerDirective extends StylableComponent {
33
37
  }
34
38
  }));
35
39
  }
40
+ get datavalue() {
41
+ if (this.nativeElement.children.length) {
42
+ let value = this.nativeElement.children[0].children[0]['widget'].viewParent.datavalue;
43
+ this.updateDataValue(value);
44
+ return value;
45
+ }
46
+ }
47
+ set datavalue(value) {
48
+ if (this.nativeElement.children.length)
49
+ this.nativeElement.children[0].children[0]['widget'].viewParent.datavalue = value;
50
+ }
36
51
  setBaseWidgetName(baseWidgetType) {
37
52
  let splitArr = baseWidgetType.split('-'), modifiedArr = [];
38
53
  modifiedArr = splitArr.map((item) => {
@@ -42,7 +57,14 @@ export class CustomWidgetContainerDirective extends StylableComponent {
42
57
  this.baseWidgetName = modifiedArr.join('');
43
58
  }
44
59
  setProps(config, resolveFn) {
45
- this.setBaseWidgetName(config.widgetType);
60
+ this.config = config;
61
+ this.configSubject.next();
62
+ if (config.customClasses) {
63
+ addClass(this.nativeElement, config.customClasses);
64
+ }
65
+ this.asAttr = this.nativeElement.children[0].children[0].hasAttribute('as');
66
+ if (this.asAttr)
67
+ this.setBaseWidgetName(config.widgetType);
46
68
  if (!config || !config.properties) {
47
69
  return;
48
70
  }
@@ -75,14 +97,28 @@ export class CustomWidgetContainerDirective extends StylableComponent {
75
97
  customWidgetPropsMap[this.widgetType] = this.props;
76
98
  return propsMap;
77
99
  }
100
+ updateDataValue(value) {
101
+ if (this.formControl && this.formControl.control && value !== this.formControl.control.value)
102
+ this.formControl.control.setValue(value);
103
+ }
78
104
  updateData(key, value) {
79
105
  let modifiedKey = key.replace('base-', '');
80
- this[this.baseWidgetName][modifiedKey] = value;
81
- this.nativeElement.childNodes[0]['widget'].viewParent[this.baseWidgetName][modifiedKey] = value;
82
- this[this.baseWidgetName].initDatasetItems();
106
+ if (this.asAttr) {
107
+ this[this.baseWidgetName][modifiedKey] = value;
108
+ this.nativeElement.children[0].children[0]['widget'].viewParent[this.baseWidgetName][modifiedKey] = value;
109
+ this[this.baseWidgetName].initDatasetItems();
110
+ }
111
+ else {
112
+ this[modifiedKey] = value;
113
+ this.nativeElement.children[0].children[0]['widget'].viewParent[modifiedKey] = value;
114
+ }
115
+ if (this.formControl && modifiedKey === 'datavalue')
116
+ this.updateDataValue(value);
83
117
  }
84
- static { this.ɵfac = function CustomWidgetContainerDirective_Factory(t) { return new (t || CustomWidgetContainerDirective)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵinjectAttribute('widgetname')); }; }
118
+ static { this.ɵfac = function CustomWidgetContainerDirective_Factory(t) { return new (t || CustomWidgetContainerDirective)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵinjectAttribute('widgetname'), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
85
119
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: CustomWidgetContainerDirective, selectors: [["", "wmWidgetContainer", ""]], exportAs: ["wmWidgetContainer"], features: [i0.ɵɵProvidersFeature([
120
+ provideAs(CustomWidgetContainerDirective, NG_VALUE_ACCESSOR, true),
121
+ provideAs(CustomWidgetContainerDirective, NG_VALIDATORS, true),
86
122
  provideAsWidgetRef(CustomWidgetContainerDirective)
87
123
  ]), i0.ɵɵInheritDefinitionFeature] }); }
88
124
  }
@@ -91,6 +127,8 @@ export class CustomWidgetContainerDirective extends StylableComponent {
91
127
  args: [{
92
128
  selector: '[wmWidgetContainer]',
93
129
  providers: [
130
+ provideAs(CustomWidgetContainerDirective, NG_VALUE_ACCESSOR, true),
131
+ provideAs(CustomWidgetContainerDirective, NG_VALIDATORS, true),
94
132
  provideAsWidgetRef(CustomWidgetContainerDirective)
95
133
  ],
96
134
  exportAs: 'wmWidgetContainer'
@@ -98,5 +136,10 @@ export class CustomWidgetContainerDirective extends StylableComponent {
98
136
  }], () => [{ type: i0.Injector }, { type: i0.ElementRef }, { type: undefined, decorators: [{
99
137
  type: Attribute,
100
138
  args: ['widgetname']
139
+ }] }, { type: undefined, decorators: [{
140
+ type: Inject,
141
+ args: ['EXPLICIT_CONTEXT']
142
+ }, {
143
+ type: Optional
101
144
  }] }], null); })();
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXdpZGdldC1jb250YWluZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2FkdmFuY2VkL2N1c3RvbS9zcmMvY3VzdG9tLXdpZGdldC1jb250YWluZXIvY3VzdG9tLXdpZGdldC1jb250YWluZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbkYsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNoQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV6RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDL0UsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUMsTUFBTSxXQUFXLENBQUM7O0FBRWhELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztBQUU3QyxJQUFJLG9CQUFvQixHQUEyQixFQUFFLENBQUM7QUFFdEQsTUFBTSxXQUFXLEdBQUcsb0JBQW9CLENBQUM7QUFXekMsTUFBTSxPQUFPLDhCQUErQixTQUFRLGlCQUFpQjthQUMxRCxvQkFBZSxHQUFHLGFBQWEsRUFBRSxBQUFsQixDQUFtQjtJQVN6QyxZQUNJLEdBQWEsRUFBRSxLQUFpQixFQUNQLFVBQWtCO1FBRTNDLE1BQU0sVUFBVSxHQUFHLGFBQWEsVUFBVSxFQUFFLENBQUM7UUFDN0MsTUFBTSxhQUFhLEdBQUcsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFD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Q0FBQyxHQUFXLEVBQUUsS0FBVTtRQUM5QixJQUFJLFdBQVcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUMvQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUNoRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDakQsQ0FBQzsrRkEzRlEsOEJBQThCLCtGQVl4QixZQUFZO29FQVpsQiw4QkFBOEIsZ0hBTDVCO2dCQUNQLGtCQUFrQixDQUFDLDhCQUE4QixDQUFDO2FBQ3JEOztpRkFHUSw4QkFBOEI7Y0FQMUMsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLFNBQVMsRUFBRTtvQkFDUCxrQkFBa0IsZ0NBQWdDO2lCQUNyRDtnQkFDRCxRQUFRLEVBQUUsbUJBQW1CO2FBQ2hDOztzQkFhUSxTQUFTO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdHRyaWJ1dGUsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0b3IsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBub29wIH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgUFJPUF9UWVBFLCBwcm92aWRlQXNXaWRnZXRSZWYsIHJlZ2lzdGVyLCBTdHlsYWJsZUNvbXBvbmVudCwgc3R5bGVyIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5cbmltcG9ydCB7IGN1c3RvbVdpZGdldFByb3BzIH0gZnJvbSAnLi9jdXN0b20td2lkZ2V0LnByb3BzJztcbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tIFwiLi4vY3VzdG9tLXdpZGdldC1jb250YWluZXIvY3VzdG9tLXdpZGdldC5wcm9wc1wiO1xuaW1wb3J0IHtjYXBpdGFsaXplLCBjbG9uZURlZXB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmNvbnN0IHJlZ2lzdGVyZWRQcm9wc1NldCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG5sZXQgY3VzdG9tV2lkZ2V0UHJvcHNNYXA6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLWh0bWwtY29udGFpbmVyJztcblxuZGVjbGFyZSBjb25zdCBfO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t3bVdpZGdldENvbnRhaW5lcl0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoQ3VzdG9tV2lkZ2V0Q29udGFpbmVyRGlyZWN0aXZlKVxuICAgIF0sXG4gICAgZXhwb3J0QXM6ICd3bVdpZGdldENvbnRhaW5lcidcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tV2lkZ2V0Q29udGFpbmVyRGlyZWN0aXZlIGV4dGVuZHMgU3R5bGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICB3aWRnZXRUeXBlOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHByb3BzUmVhZHk6IEZ1bmN0aW9uO1xuICAgIHdpZGdldE5hbWU6IHN0cmluZztcbiAgICBwcml2YXRlIHByb3BzOiBhbnkgPSB7fTtcbiAgICBwcml2YXRlIGJhc2VXaWRnZXROYW1lOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgaW5qOiBJbmplY3RvciwgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ3dpZGdldG5hbWUnKSB3aWRnZXRuYW1lOiBzdHJpbmcsXG4gICAgKSB7XG4gICAgICAgIGNvbnN0IHdpZGdldFR5cGUgPSBgd20tY3VzdG9tLSR7d2lkZ2V0bmFtZX1gO1xuICAgICAgICBjb25zdCBXSURHRVRfQ09ORklHID0geyB3aWRnZXRUeXBlLCBob3N0Q2xhc3M6IERFRkFVTFRfQ0xTIH07XG4gICAgICAgIGxldCByZXNvbHZlRm46IEZ1bmN0aW9uID0gbm9vcDtcblxuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIHVuZGVmaW5lZCwgbmV3IFByb21pc2UocmVzID0+IHJlc29sdmVGbiA9IHJlcykpO1xuICAgICAgICB0aGlzLnByb3BzUmVhZHkgPSByZXNvbHZlRm47XG4gICAgICAgIHRoaXMud2lkZ2V0VHlwZSA9IHdpZGdldFR5cGU7XG4gICAgICAgIHRoaXMubmFtZSA9IGVsUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCduYW1lJyk7XG5cbiAgICAgICAgc3R5bGVyKHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcyk7XG5cbiAgICAgICAgLy8gQ2FsbCBvbiBwcm9wZXJ0eSBjaGFuZ2Ugb24gbmFtZSB0byBzZXQgbmFtZSBhdHRyaWJ1dGUgb24gZWxlbWVudC5cbiAgICAgICAgdGhpcy5yZWdpc3RlclJlYWR5U3RhdGVMaXN0ZW5lcigoKSA9PiB7XG4gICAgICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKCduYW1lJywgdGhpcy5uYW1lKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5yZWdpc3RlclByb3BlcnR5Q2hhbmdlTGlzdGVuZXIoKChrZXk6IHN0cmluZywgbnY6IGFueSwgb3Y/OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmICgha2V5LnN0YXJ0c1dpdGgoJ3Byb3AtJykpIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IHByb3BOYW1lID0ga2V5LnNsaWNlKDUpXG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkgJiYgdGhpcy5wcm9wc1twcm9wTmFtZV0gIT09IG52KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wc1twcm9wTmFtZV0gPSBudjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkpXG4gICAgfVxuXG4gICAgc2V0QmFzZVdpZGdldE5hbWUoYmFzZVdpZGdldFR5cGU6IHN0cmluZykge1xuICAgICAgICBsZXQgc3BsaXRBcnIgPSBiYXNlV2lkZ2V0VHlwZS5zcGxpdCgnLScpLCBtb2RpZmllZEFyciA9IFtdO1xuICAgICAgICBtb2RpZmllZEFyciA9IHNwbGl0QXJyLm1hcCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICBpdGVtID0gaXRlbSAhPT0gJ3dtJyA/IGNhcGl0YWxpemUoaXRlbSkgOiBpdGVtO1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmJhc2VXaWRnZXROYW1lID0gbW9kaWZpZWRBcnIuam9pbignJyk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFByb3BzKGNvbmZpZywgcmVzb2x2ZUZuOiBGdW5jdGlvbikge1xuICAgICAgICB0aGlzLnNldEJhc2VXaWRnZXROYW1lKGNvbmZpZy53aWRnZXRUeXBlKTtcbiAgICAgICAgaWYgKCFjb25maWcgfHwgIWNvbmZpZy5wcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFyZWdpc3RlcmVkUHJvcHNTZXQuaGFzKHRoaXMud2lkZ2V0VHlwZSkpIHtcbiAgICAgICAgICAgIHJlZ2lzdGVyKHRoaXMud2lkZ2V0VHlwZSwgdGhpcy5wcmVwYXJlUHJvcHMoY29uZmlnLnByb3BlcnRpZXMpKTtcbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICB0aGlzLnByb3BzID0gT2JqZWN0LmFzc2lnbih0aGlzLnByb3BzLCBjbG9uZURlZXAoY3VzdG9tV2lkZ2V0UHJvcHNNYXBbdGhpcy53aWRnZXRUeXBlXSkpXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByb3BzUmVhZHkocmVzb2x2ZUZuKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByZXBhcmVQcm9wcyhwcm9wcyA9IHt9KSB7XG4gICAgICAgIGNvbnN0IHByb3BzTWFwID0gbmV3IE1hcChjdXN0b21XaWRnZXRQcm9wcyk7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHByb3BzKS5mb3JFYWNoKChbaywgdl06IFtzdHJpbmcsIGFueV0pID0+IHtcbiAgICAgICAgICAgIGxldCB0eXBlID0gUFJPUF9UWVBFLlNUUklORztcblxuICAgICAgICAgICAgaWYgKHYudHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgdHlwZSA9IFBST1BfVFlQRS5CT09MRUFOO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh2LnR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgdHlwZSA9IFBST1BfVFlQRS5OVU1CRVI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHYudHlwZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICB0eXBlID0gdi50eXBlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBEbyBub3Qgc2V0IHRoZSAnYmluZDoqJyB2YWx1ZXNcbiAgICAgICAgICAgIHByb3BzTWFwLnNldChgcHJvcC0ke2t9YCwgeyB0eXBlLCB2YWx1ZTogXy5zdGFydHNXaXRoKHYudmFsdWUsICdiaW5kOicpID8gdW5kZWZpbmVkIDogdi52YWx1ZSB9KTtcbiAgICAgICAgICAgIHRoaXMucHJvcHNba10gPSB2LnZhbHVlO1xuICAgICAgICB9KTtcblxuICAgICAgICByZWdpc3RlcmVkUHJvcHNTZXQuYWRkKHRoaXMud2lkZ2V0VHlwZSk7XG4gICAgICAgIGN1c3RvbVdpZGdldFByb3BzTWFwW3RoaXMud2lkZ2V0VHlwZV0gPSB0aGlzLnByb3BzXG5cbiAgICAgICAgcmV0dXJuIHByb3BzTWFwO1xuICAgIH1cblxuICAgIHVwZGF0ZURhdGEoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICAgICAgbGV0IG1vZGlmaWVkS2V5ID0ga2V5LnJlcGxhY2UoJ2Jhc2UtJywgJycpO1xuICAgICAgICB0aGlzW3RoaXMuYmFzZVdpZGdldE5hbWVdW21vZGlmaWVkS2V5XSA9IHZhbHVlO1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuY2hpbGROb2Rlc1swXVsnd2lkZ2V0J10udmlld1BhcmVudFt0aGlzLmJhc2VXaWRnZXROYW1lXVttb2RpZmllZEtleV0gPSB2YWx1ZTtcbiAgICAgICAgdGhpc1t0aGlzLmJhc2VXaWRnZXROYW1lXS5pbml0RGF0YXNldEl0ZW1zKCk7XG4gICAgfVxufVxuIl19
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXdpZGdldC1jb250YWluZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2FkdmFuY2VkL2N1c3RvbS9zcmMvY3VzdG9tLXdpZGdldC1jb250YWluZXIvY3VzdG9tLXdpZGdldC1jb250YWluZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFVLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVuRyxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMxQyxPQUFPLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQXFCLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRWxILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUMvRSxPQUFPLEVBQUMsVUFBVSxFQUFFLFNBQVMsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUNoRCxPQUFPLEVBQUMsYUFBYSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQzs7QUFFN0IsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0FBRTdDLElBQUksb0JBQW9CLEdBQTJCLEVBQUUsQ0FBQztBQUV0RCxNQUFNLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQztBQWF6QyxNQUFNLE9BQU8sOEJBQStCLFNBQVEseUJBQXlCO2FBQ2xFLG9C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QUFDLFdBQVcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN6RixDQUFDO1FBQ0QsSUFBRyxJQUFJLENBQUMsV0FBVyxJQUFJLFdBQVcsS0FBSyxXQUFXO1lBQzlDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQzsrRkFoSVEsOEJBQThCLCtGQWV4QixZQUFZLHdCQUNmLGtCQUFrQjtvRUFoQnJCLDhCQUE4QixnSEFQNUI7Z0JBQ1AsU0FBUyxDQUFDLDhCQUE4QixFQUFFLGlCQUFpQixFQUFFLElBQUksQ0FBQztnQkFDbEUsU0FBUyxDQUFDLDhCQUE4QixFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUM7Z0JBQzlELGtCQUFrQixDQUFDLDhCQUE4QixDQUFDO2FBQ3JEOztpRkFHUSw4QkFBOEI7Y0FUMUMsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLFNBQVMsRUFBRTtvQkFDUCxTQUFTLGlDQUFpQyxpQkFBaUIsRUFBRSxJQUFJLENBQUM7b0JBQ2xFLFNBQVMsaUNBQWlDLGFBQWEsRUFBRSxJQUFJLENBQUM7b0JBQzlELGtCQUFrQixnQ0FBZ0M7aUJBQ3JEO2dCQUNELFFBQVEsRUFBRSxtQkFBbUI7YUFDaEM7O3NCQWdCUSxTQUFTO3VCQUFDLFlBQVk7O3NCQUN0QixNQUFNO3VCQUFDLGtCQUFrQjs7c0JBQUcsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXR0cmlidXRlLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEluamVjdCwgSW5qZWN0b3IsIE9uSW5pdCwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBhZGRDbGFzcywgbm9vcCB9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7UFJPUF9UWVBFLCBwcm92aWRlQXMsIHByb3ZpZGVBc1dpZGdldFJlZiwgcmVnaXN0ZXIsIFN0eWxhYmxlQ29tcG9uZW50LCBzdHlsZXJ9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuXG5pbXBvcnQgeyBjdXN0b21XaWRnZXRQcm9wcyB9IGZyb20gJy4vY3VzdG9tLXdpZGdldC5wcm9wcyc7XG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSBcIi4uL2N1c3RvbS13aWRnZXQtY29udGFpbmVyL2N1c3RvbS13aWRnZXQucHJvcHNcIjtcbmltcG9ydCB7Y2FwaXRhbGl6ZSwgY2xvbmVEZWVwfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQge0RhdGFzZXRBd2FyZUZvcm1Db21wb25lbnR9IGZyb20gXCJAd20vY29tcG9uZW50cy9pbnB1dFwiO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tIFwicnhqc1wiO1xuXG5jb25zdCByZWdpc3RlcmVkUHJvcHNTZXQgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxubGV0IGN1c3RvbVdpZGdldFByb3BzTWFwOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG5cbmNvbnN0IERFRkFVTFRfQ0xTID0gJ2FwcC1odG1sLWNvbnRhaW5lcic7XG5cbmRlY2xhcmUgY29uc3QgXztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbd21XaWRnZXRDb250YWluZXJdJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzKEN1c3RvbVdpZGdldENvbnRhaW5lckRpcmVjdGl2ZSwgTkdfVkFMVUVfQUNDRVNTT1IsIHRydWUpLFxuICAgICAgICBwcm92aWRlQXMoQ3VzdG9tV2lkZ2V0Q29udGFpbmVyRGlyZWN0aXZlLCBOR19WQUxJREFUT1JTLCB0cnVlKSxcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKEN1c3RvbVdpZGdldENvbnRhaW5lckRpcmVjdGl2ZSlcbiAgICBdLFxuICAgIGV4cG9ydEFzOiAnd21XaWRnZXRDb250YWluZXInXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbVdpZGdldENvbnRhaW5lckRpcmVjdGl2ZSBleHRlbmRzIERhdGFzZXRBd2FyZUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICB3aWRnZXRUeXBlOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHByb3BzUmVhZHk6IEZ1bmN0aW9uO1xuICAgIHdpZGdldE5hbWU6IHN0cmluZztcbiAgICBjb25maWc6IGFueTtcbiAgICBwcml2YXRlIHByb3BzOiBhbnkgPSB7fTtcbiAgICBwcml2YXRlIGJhc2VXaWRnZXROYW1lOiBzdHJpbmc7XG4gICAgYXNBdHRyOiBib29sZWFuO1xuICAgIGNvbmZpZ1N1YmplY3Q6IFN1YmplY3Q8YW55PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmo6IEluamVjdG9yLCBlbFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgQEF0dHJpYnV0ZSgnd2lkZ2V0bmFtZScpIHdpZGdldG5hbWU6IHN0cmluZyxcbiAgICAgICAgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55XG4gICAgKSB7XG4gICAgICAgIGNvbnN0IHdpZGdldFR5cGUgPSBgd20tY3VzdG9tLSR7d2lkZ2V0bmFtZX1gO1xuICAgICAgICBjb25zdCBXSURHRVRfQ09ORklHID0geyB3aWRnZXRUeXBlLCBob3N0Q2xhc3M6IERFRkFVTFRfQ0xTIH07XG4gICAgICAgIGxldCByZXNvbHZlRm46IEZ1bmN0aW9uID0gbm9vcDtcblxuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCwgdW5kZWZpbmVkLCBuZXcgUHJvbWlzZShyZXMgPT4gcmVzb2x2ZUZuID0gcmVzKSk7XG4gICAgICAgIHRoaXMucHJvcHNSZWFkeSA9IHJlc29sdmVGbjtcbiAgICAgICAgdGhpcy5jb25maWdTdWJqZWN0ID0gbmV3IFN1YmplY3QoKTtcbiAgICAgICAgdGhpcy53aWRnZXRUeXBlID0gd2lkZ2V0VHlwZTtcbiAgICAgICAgdGhpcy5uYW1lID0gZWxSZWYubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ25hbWUnKTtcblxuICAgICAgICBzdHlsZXIodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzKTtcblxuICAgICAgICAvLyBDYWxsIG9uIHByb3BlcnR5IGNoYW5nZSBvbiBuYW1lIHRvIHNldCBuYW1lIGF0dHJpYnV0ZSBvbiBlbGVtZW50LlxuICAgICAgICB0aGlzLnJlZ2lzdGVyUmVhZHlTdGF0ZUxpc3RlbmVyKCgpID0+IHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2UoJ25hbWUnLCB0aGlzLm5hbWUpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnJlZ2lzdGVyUHJvcGVydHlDaGFuZ2VMaXN0ZW5lcigoKGtleTogc3RyaW5nLCBudjogYW55LCBvdj86IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFrZXkuc3RhcnRzV2l0aCgncHJvcC0nKSkgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgcHJvcE5hbWUgPSBrZXkuc2xpY2UoNSlcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLmhhc093blByb3BlcnR5KHByb3BOYW1lKSAmJiB0aGlzLnByb3BzW3Byb3BOYW1lXSAhPT0gbnYpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzW3Byb3BOYW1lXSA9IG52O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KSlcbiAgICB9XG5cbiAgICBnZXQgZGF0YXZhbHVlKCkge1xuICAgICAgICBpZih0aGlzLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF1bJ3dpZGdldCddLnZpZXdQYXJlbnQuZGF0YXZhbHVlO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVEYXRhVmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0IGRhdGF2YWx1ZSh2YWx1ZSkge1xuICAgICAgICBpZih0aGlzLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoKVxuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdWyd3aWRnZXQnXS52aWV3UGFyZW50LmRhdGF2YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHNldEJhc2VXaWRnZXROYW1lKGJhc2VXaWRnZXRUeXBlOiBzdHJpbmcpIHtcbiAgICAgICAgbGV0IHNwbGl0QXJyID0gYmFzZVdpZGdldFR5cGUuc3BsaXQoJy0nKSwgbW9kaWZpZWRBcnIgPSBbXTtcbiAgICAgICAgbW9kaWZpZWRBcnIgPSBzcGxpdEFyci5tYXAoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgaXRlbSA9IGl0ZW0gIT09ICd3bScgPyBjYXBpdGFsaXplKGl0ZW0pIDogaXRlbTtcbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5iYXNlV2lkZ2V0TmFtZSA9IG1vZGlmaWVkQXJyLmpvaW4oJycpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRQcm9wcyhjb25maWcsIHJlc29sdmVGbjogRnVuY3Rpb24pIHtcbiAgICAgICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gICAgICAgIHRoaXMuY29uZmlnU3ViamVjdC5uZXh0KCk7XG4gICAgICAgIGlmKGNvbmZpZy5jdXN0b21DbGFzc2VzKXtcbiAgICAgICAgICAgIGFkZENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgY29uZmlnLmN1c3RvbUNsYXNzZXMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYXNBdHRyID0gdGhpcy5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLmhhc0F0dHJpYnV0ZSgnYXMnKTtcbiAgICAgICAgaWYodGhpcy5hc0F0dHIpXG4gICAgICAgICAgICB0aGlzLnNldEJhc2VXaWRnZXROYW1lKGNvbmZpZy53aWRnZXRUeXBlKTtcbiAgICAgICAgaWYgKCFjb25maWcgfHwgIWNvbmZpZy5wcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFyZWdpc3RlcmVkUHJvcHNTZXQuaGFzKHRoaXMud2lkZ2V0VHlwZSkpIHtcbiAgICAgICAgICAgIHJlZ2lzdGVyKHRoaXMud2lkZ2V0VHlwZSwgdGhpcy5wcmVwYXJlUHJvcHMoY29uZmlnLnByb3BlcnRpZXMpKTtcbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICB0aGlzLnByb3BzID0gT2JqZWN0LmFzc2lnbih0aGlzLnByb3BzLCBjbG9uZURlZXAoY3VzdG9tV2lkZ2V0UHJvcHNNYXBbdGhpcy53aWRnZXRUeXBlXSkpXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByb3BzUmVhZHkocmVzb2x2ZUZuKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByZXBhcmVQcm9wcyhwcm9wcyA9IHt9KSB7XG4gICAgICAgIGNvbnN0IHByb3BzTWFwID0gbmV3IE1hcChjdXN0b21XaWRnZXRQcm9wcyk7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHByb3BzKS5mb3JFYWNoKChbaywgdl06IFtzdHJpbmcsIGFueV0pID0+IHtcbiAgICAgICAgICAgIGxldCB0eXBlID0gUFJPUF9UWVBFLlNUUklORztcblxuICAgICAgICAgICAgaWYgKHYudHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgdHlwZSA9IFBST1BfVFlQRS5CT09MRUFOO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh2LnR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgdHlwZSA9IFBST1BfVFlQRS5OVU1CRVI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHYudHlwZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICB0eXBlID0gdi50eXBlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBEbyBub3Qgc2V0IHRoZSAnYmluZDoqJyB2YWx1ZXNcbiAgICAgICAgICAgIHByb3BzTWFwLnNldChgcHJvcC0ke2t9YCwgeyB0eXBlLCB2YWx1ZTogXy5zdGFydHNXaXRoKHYudmFsdWUsICdiaW5kOicpID8gdW5kZWZpbmVkIDogdi52YWx1ZSB9KTtcbiAgICAgICAgICAgIHRoaXMucHJvcHNba10gPSB2LnZhbHVlO1xuICAgICAgICB9KTtcblxuICAgICAgICByZWdpc3RlcmVkUHJvcHNTZXQuYWRkKHRoaXMud2lkZ2V0VHlwZSk7XG4gICAgICAgIGN1c3RvbVdpZGdldFByb3BzTWFwW3RoaXMud2lkZ2V0VHlwZV0gPSB0aGlzLnByb3BzXG5cbiAgICAgICAgcmV0dXJuIHByb3BzTWFwO1xuICAgIH1cblxuICAgIHVwZGF0ZURhdGFWYWx1ZSh2YWx1ZSkge1xuICAgICAgICBpZih0aGlzLmZvcm1Db250cm9sICYmIHRoaXMuZm9ybUNvbnRyb2wuY29udHJvbCAmJiB2YWx1ZSAhPT0gdGhpcy5mb3JtQ29udHJvbC5jb250cm9sLnZhbHVlKVxuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5jb250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICB1cGRhdGVEYXRhKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgICAgIGxldCBtb2RpZmllZEtleSA9IGtleS5yZXBsYWNlKCdiYXNlLScsICcnKTtcbiAgICAgICAgaWYodGhpcy5hc0F0dHIpIHtcbiAgICAgICAgICAgIHRoaXNbdGhpcy5iYXNlV2lkZ2V0TmFtZV1bbW9kaWZpZWRLZXldID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF1bJ3dpZGdldCddLnZpZXdQYXJlbnRbdGhpcy5iYXNlV2lkZ2V0TmFtZV1bbW9kaWZpZWRLZXldID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzW3RoaXMuYmFzZVdpZGdldE5hbWVdLmluaXREYXRhc2V0SXRlbXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXNbbW9kaWZpZWRLZXldID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF1bJ3dpZGdldCddLnZpZXdQYXJlbnRbbW9kaWZpZWRLZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYodGhpcy5mb3JtQ29udHJvbCAmJiBtb2RpZmllZEtleSA9PT0gJ2RhdGF2YWx1ZScpXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZURhdGFWYWx1ZSh2YWx1ZSk7XG4gICAgfVxufVxuIl19