@wizishop/angular-components 18.2.0 → 19.0.0-beta.2

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 (559) hide show
  1. package/README.md +13 -76
  2. package/angular-components.scss +10688 -9422
  3. package/assets/images/upload/upload_images.svg +23 -0
  4. package/fesm2022/wizishop-angular-components.mjs +1294 -559
  5. package/fesm2022/wizishop-angular-components.mjs.map +1 -1
  6. package/index.d.ts +1 -0
  7. package/lib/animations/in-out/in-out-x.animation.d.ts +1 -0
  8. package/lib/animations/in-out/in-out-x.animation.d.ts.map +1 -0
  9. package/lib/animations/in-out/in-out-y.animation.d.ts +1 -0
  10. package/lib/animations/in-out/in-out-y.animation.d.ts.map +1 -0
  11. package/lib/animations/list/animate-list-from-bottom.animation.d.ts +1 -0
  12. package/lib/animations/list/animate-list-from-bottom.animation.d.ts.map +1 -0
  13. package/lib/animations/list/animate-list-from-left.animation.d.ts +1 -0
  14. package/lib/animations/list/animate-list-from-left.animation.d.ts.map +1 -0
  15. package/lib/animations/list/animate-list-from-right.animation.d.ts +1 -0
  16. package/lib/animations/list/animate-list-from-right.animation.d.ts.map +1 -0
  17. package/lib/animations/list/animate-list-from-top.animation.d.ts +1 -0
  18. package/lib/animations/list/animate-list-from-top.animation.d.ts.map +1 -0
  19. package/lib/animations/show/opacity.animation.d.ts +1 -0
  20. package/lib/animations/show/opacity.animation.d.ts.map +1 -0
  21. package/lib/animations/show/show-from-bottom.animation.d.ts +1 -0
  22. package/lib/animations/show/show-from-bottom.animation.d.ts.map +1 -0
  23. package/lib/animations/show/show-from-left.animation.d.ts +1 -0
  24. package/lib/animations/show/show-from-left.animation.d.ts.map +1 -0
  25. package/lib/animations/show/show-from-right.animation.d.ts +1 -0
  26. package/lib/animations/show/show-from-right.animation.d.ts.map +1 -0
  27. package/lib/animations/show/show-from-top.animation.d.ts +1 -0
  28. package/lib/animations/show/show-from-top.animation.d.ts.map +1 -0
  29. package/lib/animations/switch/switch-in-out.animation.d.ts +1 -0
  30. package/lib/animations/switch/switch-in-out.animation.d.ts.map +1 -0
  31. package/lib/components/ai-express/ai-express.component.d.ts +1 -0
  32. package/lib/components/ai-express/ai-express.component.d.ts.map +1 -0
  33. package/lib/components/alert/alert.component.d.ts +1 -0
  34. package/lib/components/alert/alert.component.d.ts.map +1 -0
  35. package/lib/components/alert-popup/alert-popup-module.d.ts +1 -0
  36. package/lib/components/alert-popup/alert-popup-module.d.ts.map +1 -0
  37. package/lib/components/alert-popup/alert-popup.component.d.ts +4 -3
  38. package/lib/components/alert-popup/alert-popup.component.d.ts.map +1 -0
  39. package/lib/components/alert-popup/alert-popup.service.d.ts +1 -0
  40. package/lib/components/alert-popup/alert-popup.service.d.ts.map +1 -0
  41. package/lib/components/back/back.component.d.ts +1 -0
  42. package/lib/components/back/back.component.d.ts.map +1 -0
  43. package/lib/components/block/block-title-legacy/block-title-legacy.component.d.ts +1 -0
  44. package/lib/components/block/block-title-legacy/block-title-legacy.component.d.ts.map +1 -0
  45. package/lib/components/block/block.component.d.ts +1 -0
  46. package/lib/components/block/block.component.d.ts.map +1 -0
  47. package/lib/components/block/separator/block-separator.component.d.ts +1 -0
  48. package/lib/components/block/separator/block-separator.component.d.ts.map +1 -0
  49. package/lib/components/block-with-checkbox/block-with-checkbox.component.d.ts +1 -0
  50. package/lib/components/block-with-checkbox/block-with-checkbox.component.d.ts.map +1 -0
  51. package/lib/components/border-picker/border-picker.component.d.ts +30 -0
  52. package/lib/components/border-picker/border-picker.component.d.ts.map +1 -0
  53. package/lib/components/breadcrumbs/breadcrumbs.component.d.ts +1 -0
  54. package/lib/components/breadcrumbs/breadcrumbs.component.d.ts.map +1 -0
  55. package/lib/components/breadcrumbs/breadcrumbs.dto.d.ts +1 -0
  56. package/lib/components/breadcrumbs/breadcrumbs.dto.d.ts.map +1 -0
  57. package/lib/components/button/button.component.d.ts +1 -0
  58. package/lib/components/button/button.component.d.ts.map +1 -0
  59. package/lib/components/calendar/calendar.component.d.ts +6 -1
  60. package/lib/components/calendar/calendar.component.d.ts.map +1 -0
  61. package/lib/components/card-price/card-price.component.d.ts +1 -0
  62. package/lib/components/card-price/card-price.component.d.ts.map +1 -0
  63. package/lib/components/charging-bar/charging-bar.component.d.ts +1 -0
  64. package/lib/components/charging-bar/charging-bar.component.d.ts.map +1 -0
  65. package/lib/components/checkbox/checkbox.component.d.ts +1 -0
  66. package/lib/components/checkbox/checkbox.component.d.ts.map +1 -0
  67. package/lib/components/checkbox/checkbox.module.d.ts +1 -0
  68. package/lib/components/checkbox/checkbox.module.d.ts.map +1 -0
  69. package/lib/components/color-picker/color-picker.component.d.ts +24 -0
  70. package/lib/components/color-picker/color-picker.component.d.ts.map +1 -0
  71. package/lib/components/column/column.component.d.ts +1 -0
  72. package/lib/components/column/column.component.d.ts.map +1 -0
  73. package/lib/components/common/label/label.component.d.ts +1 -0
  74. package/lib/components/common/label/label.component.d.ts.map +1 -0
  75. package/lib/components/common/placeholder/placeholder.component.d.ts +1 -0
  76. package/lib/components/common/placeholder/placeholder.component.d.ts.map +1 -0
  77. package/lib/components/confirm-delete/confirm-delete.component.d.ts +1 -0
  78. package/lib/components/confirm-delete/confirm-delete.component.d.ts.map +1 -0
  79. package/lib/components/content-with-buttons/content-with-buttons.component.d.ts +1 -0
  80. package/lib/components/content-with-buttons/content-with-buttons.component.d.ts.map +1 -0
  81. package/lib/components/delete/delete.component.d.ts +1 -0
  82. package/lib/components/delete/delete.component.d.ts.map +1 -0
  83. package/lib/components/draganddrop-list/draganddrop-list.component.d.ts +1 -0
  84. package/lib/components/draganddrop-list/draganddrop-list.component.d.ts.map +1 -0
  85. package/lib/components/dropdown/dropdown.component.d.ts +1 -0
  86. package/lib/components/dropdown/dropdown.component.d.ts.map +1 -0
  87. package/lib/components/edit-in-place/edit-in-place.component.d.ts +1 -0
  88. package/lib/components/edit-in-place/edit-in-place.component.d.ts.map +1 -0
  89. package/lib/components/expanded-panel/expanded-panel.component.d.ts +1 -0
  90. package/lib/components/expanded-panel/expanded-panel.component.d.ts.map +1 -0
  91. package/lib/components/expansion/accordion/accordion-item.interface.d.ts +1 -0
  92. package/lib/components/expansion/accordion/accordion-item.interface.d.ts.map +1 -0
  93. package/lib/components/expansion/accordion/accordion-item.token.d.ts +1 -0
  94. package/lib/components/expansion/accordion/accordion-item.token.d.ts.map +1 -0
  95. package/lib/components/expansion/accordion/accordion.component.d.ts +1 -0
  96. package/lib/components/expansion/accordion/accordion.component.d.ts.map +1 -0
  97. package/lib/components/expansion/expansion-panel/expansion-panel.component.d.ts +1 -0
  98. package/lib/components/expansion/expansion-panel/expansion-panel.component.d.ts.map +1 -0
  99. package/lib/components/expansion/expansion-panel/expansion-panel.directive.d.ts +1 -0
  100. package/lib/components/expansion/expansion-panel/expansion-panel.directive.d.ts.map +1 -0
  101. package/lib/components/expansion/expansion-panel-header/expansion-panel-header.component.d.ts +1 -0
  102. package/lib/components/expansion/expansion-panel-header/expansion-panel-header.component.d.ts.map +1 -0
  103. package/lib/components/expansion/expansion-panel-header/expansion-panel-header.directive.d.ts +1 -0
  104. package/lib/components/expansion/expansion-panel-header/expansion-panel-header.directive.d.ts.map +1 -0
  105. package/lib/components/expansion/expansion-panel-header/expansion-panel-header.interface.d.ts +1 -0
  106. package/lib/components/expansion/expansion-panel-header/expansion-panel-header.interface.d.ts.map +1 -0
  107. package/lib/components/expansion/expansion-panel-header/expansion-panel-header.token.d.ts +1 -0
  108. package/lib/components/expansion/expansion-panel-header/expansion-panel-header.token.d.ts.map +1 -0
  109. package/lib/components/expansion/expansion.module.d.ts +1 -0
  110. package/lib/components/expansion/expansion.module.d.ts.map +1 -0
  111. package/lib/components/faq-section/faq-section-content.dto.d.ts +5 -0
  112. package/lib/components/faq-section/faq-section-content.dto.d.ts.map +1 -0
  113. package/lib/components/faq-section/faq-section.component.d.ts +9 -0
  114. package/lib/components/faq-section/faq-section.component.d.ts.map +1 -0
  115. package/lib/components/faq-section/faq-section.dto.d.ts +6 -0
  116. package/lib/components/faq-section/faq-section.dto.d.ts.map +1 -0
  117. package/lib/components/filters/filter-item.dto.d.ts +1 -0
  118. package/lib/components/filters/filter-item.dto.d.ts.map +1 -0
  119. package/lib/components/filters/filters.component.d.ts +1 -0
  120. package/lib/components/filters/filters.component.d.ts.map +1 -0
  121. package/lib/components/free-popin/free-popin.component.d.ts +1 -0
  122. package/lib/components/free-popin/free-popin.component.d.ts.map +1 -0
  123. package/lib/components/google-preview/google-preview.component.d.ts +1 -0
  124. package/lib/components/google-preview/google-preview.component.d.ts.map +1 -0
  125. package/lib/components/grid/grid.component.d.ts +14 -0
  126. package/lib/components/grid/grid.component.d.ts.map +1 -0
  127. package/lib/components/header-page/header-page.component.d.ts +1 -0
  128. package/lib/components/header-page/header-page.component.d.ts.map +1 -0
  129. package/lib/components/hn/h1/h1.component.d.ts +5 -1
  130. package/lib/components/hn/h1/h1.component.d.ts.map +1 -0
  131. package/lib/components/hn/h2/h2.component.d.ts +5 -1
  132. package/lib/components/hn/h2/h2.component.d.ts.map +1 -0
  133. package/lib/components/hn/h3/h3.component.d.ts +5 -1
  134. package/lib/components/hn/h3/h3.component.d.ts.map +1 -0
  135. package/lib/components/hn/h4/h4.component.d.ts +5 -1
  136. package/lib/components/hn/h4/h4.component.d.ts.map +1 -0
  137. package/lib/components/image/image.component.d.ts +1 -0
  138. package/lib/components/image/image.component.d.ts.map +1 -0
  139. package/lib/components/image-text-section/image-text-section.component.d.ts +12 -0
  140. package/lib/components/image-text-section/image-text-section.component.d.ts.map +1 -0
  141. package/lib/components/image-text-section/image-text-section.dto.d.ts +12 -0
  142. package/lib/components/image-text-section/image-text-section.dto.d.ts.map +1 -0
  143. package/lib/components/info/info.component.d.ts +4 -1
  144. package/lib/components/info/info.component.d.ts.map +1 -0
  145. package/lib/components/inputs/input/input.component.d.ts +1 -0
  146. package/lib/components/inputs/input/input.component.d.ts.map +1 -0
  147. package/lib/components/inputs/input-search/input-search.component.d.ts +1 -0
  148. package/lib/components/inputs/input-search/input-search.component.d.ts.map +1 -0
  149. package/lib/components/inputs/input-with-select/input-with-select.component.d.ts +1 -0
  150. package/lib/components/inputs/input-with-select/input-with-select.component.d.ts.map +1 -0
  151. package/lib/components/inputs/input-with-select/option-item.dto.d.ts +1 -0
  152. package/lib/components/inputs/input-with-select/option-item.dto.d.ts.map +1 -0
  153. package/lib/components/link/link.component.d.ts +1 -0
  154. package/lib/components/link/link.component.d.ts.map +1 -0
  155. package/lib/components/loader/loader.component.d.ts +1 -0
  156. package/lib/components/loader/loader.component.d.ts.map +1 -0
  157. package/lib/components/logo/logo.component.d.ts +1 -0
  158. package/lib/components/logo/logo.component.d.ts.map +1 -0
  159. package/lib/components/menu-tile/menu-tile.component.d.ts +24 -0
  160. package/lib/components/menu-tile/menu-tile.component.d.ts.map +1 -0
  161. package/lib/components/mosaic/mosaic.component.d.ts +3 -2
  162. package/lib/components/mosaic/mosaic.component.d.ts.map +1 -0
  163. package/lib/components/multiple-search/multiple-search.component.d.ts +1 -0
  164. package/lib/components/multiple-search/multiple-search.component.d.ts.map +1 -0
  165. package/lib/components/multiple-search-plus/multiple-search-plus.component.d.ts +3 -1
  166. package/lib/components/multiple-search-plus/multiple-search-plus.component.d.ts.map +1 -0
  167. package/lib/components/multiple-search-plus/shared/multiple-search-plus-option.model.d.ts +1 -0
  168. package/lib/components/multiple-search-plus/shared/multiple-search-plus-option.model.d.ts.map +1 -0
  169. package/lib/components/multiple-search-plus/shared/multiple-search-plus-results.model.d.ts +1 -0
  170. package/lib/components/multiple-search-plus/shared/multiple-search-plus-results.model.d.ts.map +1 -0
  171. package/lib/components/optional-disable-container/optional-disable-container.component.d.ts +1 -0
  172. package/lib/components/optional-disable-container/optional-disable-container.component.d.ts.map +1 -0
  173. package/lib/components/pagination/pagination.component.d.ts +1 -0
  174. package/lib/components/pagination/pagination.component.d.ts.map +1 -0
  175. package/lib/components/pagination/pagination.module.d.ts +1 -0
  176. package/lib/components/pagination/pagination.module.d.ts.map +1 -0
  177. package/lib/components/pagination/pipes/array-pages.pipe.d.ts +1 -0
  178. package/lib/components/pagination/pipes/array-pages.pipe.d.ts.map +1 -0
  179. package/lib/components/pagination/pipes/custom-text.pipe.d.ts +1 -0
  180. package/lib/components/pagination/pipes/custom-text.pipe.d.ts.map +1 -0
  181. package/lib/components/pagination/pipes/is-last-page.pipe.d.ts +1 -0
  182. package/lib/components/pagination/pipes/is-last-page.pipe.d.ts.map +1 -0
  183. package/lib/components/popin/popin.component.d.ts +1 -0
  184. package/lib/components/popin/popin.component.d.ts.map +1 -0
  185. package/lib/components/pricing-section/pricing-section-table.dto.d.ts +7 -0
  186. package/lib/components/pricing-section/pricing-section-table.dto.d.ts.map +1 -0
  187. package/lib/components/pricing-section/pricing-section.component.d.ts +9 -0
  188. package/lib/components/pricing-section/pricing-section.component.d.ts.map +1 -0
  189. package/lib/components/pricing-section/pricing-section.dto.d.ts +8 -0
  190. package/lib/components/pricing-section/pricing-section.dto.d.ts.map +1 -0
  191. package/lib/components/progress-bar/progress-bar.component.d.ts +1 -0
  192. package/lib/components/progress-bar/progress-bar.component.d.ts.map +1 -0
  193. package/lib/components/radio/option/option.component.d.ts +1 -0
  194. package/lib/components/radio/option/option.component.d.ts.map +1 -0
  195. package/lib/components/radio/radio-group.directive.d.ts +1 -0
  196. package/lib/components/radio/radio-group.directive.d.ts.map +1 -0
  197. package/lib/components/radio/radio.component.d.ts +1 -0
  198. package/lib/components/radio/radio.component.d.ts.map +1 -0
  199. package/lib/components/radio-legacy/{radio-group.directive.d.ts → radio-group-legacy.directive.d.ts} +4 -3
  200. package/lib/components/radio-legacy/radio-group-legacy.directive.d.ts.map +1 -0
  201. package/lib/components/radio-legacy/radio-legacy-directive.d.ts +11 -0
  202. package/lib/components/radio-legacy/radio-legacy-directive.d.ts.map +1 -0
  203. package/lib/components/radio-legacy/radio.component.d.ts +1 -0
  204. package/lib/components/radio-legacy/radio.component.d.ts.map +1 -0
  205. package/lib/components/reassurance-section/reassurance-section-content.dto.d.ts +5 -0
  206. package/lib/components/reassurance-section/reassurance-section-content.dto.d.ts.map +1 -0
  207. package/lib/components/reassurance-section/reassurance-section.component.d.ts +9 -0
  208. package/lib/components/reassurance-section/reassurance-section.component.d.ts.map +1 -0
  209. package/lib/components/reassurance-section/reassurance-section.dto.d.ts +6 -0
  210. package/lib/components/reassurance-section/reassurance-section.dto.d.ts.map +1 -0
  211. package/lib/components/row/row.component.d.ts +4 -1
  212. package/lib/components/row/row.component.d.ts.map +1 -0
  213. package/lib/components/search/search.component.d.ts +1 -0
  214. package/lib/components/search/search.component.d.ts.map +1 -0
  215. package/lib/components/search/shared/search-option.model.d.ts +1 -0
  216. package/lib/components/search/shared/search-option.model.d.ts.map +1 -0
  217. package/lib/components/select/call-to-action.model.d.ts +1 -0
  218. package/lib/components/select/call-to-action.model.d.ts.map +1 -0
  219. package/lib/components/select/option/option-selection-handler.interface.d.ts +1 -0
  220. package/lib/components/select/option/option-selection-handler.interface.d.ts.map +1 -0
  221. package/lib/components/select/option/option-selection-handler.token.d.ts +1 -0
  222. package/lib/components/select/option/option-selection-handler.token.d.ts.map +1 -0
  223. package/lib/components/select/option/option.component.d.ts +1 -0
  224. package/lib/components/select/option/option.component.d.ts.map +1 -0
  225. package/lib/components/select/option/select-option.directive.d.ts +1 -0
  226. package/lib/components/select/option/select-option.directive.d.ts.map +1 -0
  227. package/lib/components/select/option-call-to-action/option-call-to-action.component.d.ts +1 -0
  228. package/lib/components/select/option-call-to-action/option-call-to-action.component.d.ts.map +1 -0
  229. package/lib/components/select/option-group/option-group.component.d.ts +7 -0
  230. package/lib/components/select/option-group/option-group.component.d.ts.map +1 -0
  231. package/lib/components/select/select/select.component.d.ts +2 -1
  232. package/lib/components/select/select/select.component.d.ts.map +1 -0
  233. package/lib/components/select/select/select.directive.d.ts +1 -0
  234. package/lib/components/select/select/select.directive.d.ts.map +1 -0
  235. package/lib/components/select/select/value-change.service.d.ts +1 -0
  236. package/lib/components/select/select/value-change.service.d.ts.map +1 -0
  237. package/lib/components/select/select-items.dto.d.ts +1 -0
  238. package/lib/components/select/select-items.dto.d.ts.map +1 -0
  239. package/lib/components/select/select-search-trigger/select-search-trigger.component.d.ts +1 -0
  240. package/lib/components/select/select-search-trigger/select-search-trigger.component.d.ts.map +1 -0
  241. package/lib/components/select-in-text/select-in-text.component.d.ts +1 -0
  242. package/lib/components/select-in-text/select-in-text.component.d.ts.map +1 -0
  243. package/lib/components/selected-list/selected-list.component.d.ts +1 -0
  244. package/lib/components/selected-list/selected-list.component.d.ts.map +1 -0
  245. package/lib/components/selected-list/shared/selected-list-option.model.d.ts +1 -0
  246. package/lib/components/selected-list/shared/selected-list-option.model.d.ts.map +1 -0
  247. package/lib/components/separator/separator.component.d.ts +1 -0
  248. package/lib/components/separator/separator.component.d.ts.map +1 -0
  249. package/lib/components/settings/settings.component.d.ts +1 -0
  250. package/lib/components/settings/settings.component.d.ts.map +1 -0
  251. package/lib/components/shared-components.module.d.ts +120 -109
  252. package/lib/components/shared-components.module.d.ts.map +1 -0
  253. package/lib/components/slide-in/slide-in.component.d.ts +33 -0
  254. package/lib/components/slide-in/slide-in.component.d.ts.map +1 -0
  255. package/lib/components/snackbar/snackbar.component.d.ts +1 -0
  256. package/lib/components/snackbar/snackbar.component.d.ts.map +1 -0
  257. package/lib/components/state/state.component.d.ts +1 -0
  258. package/lib/components/state/state.component.d.ts.map +1 -0
  259. package/lib/components/summary/summary.component.d.ts +1 -0
  260. package/lib/components/summary/summary.component.d.ts.map +1 -0
  261. package/lib/components/switch/switch.component.d.ts +1 -0
  262. package/lib/components/switch/switch.component.d.ts.map +1 -0
  263. package/lib/components/table/directives/checkBoxRow.directive.d.ts +1 -0
  264. package/lib/components/table/directives/checkBoxRow.directive.d.ts.map +1 -0
  265. package/lib/components/table/directives/column.directive.d.ts +1 -0
  266. package/lib/components/table/directives/column.directive.d.ts.map +1 -0
  267. package/lib/components/table/directives/columnHeader.directive.d.ts +1 -0
  268. package/lib/components/table/directives/columnHeader.directive.d.ts.map +1 -0
  269. package/lib/components/table/directives/raw.directive.d.ts +1 -0
  270. package/lib/components/table/directives/raw.directive.d.ts.map +1 -0
  271. package/lib/components/table/shared/distinct-until-table-filters-changed.d.ts +1 -0
  272. package/lib/components/table/shared/distinct-until-table-filters-changed.d.ts.map +1 -0
  273. package/lib/components/table/shared/filters-table.service.d.ts +1 -0
  274. package/lib/components/table/shared/filters-table.service.d.ts.map +1 -0
  275. package/lib/components/table/shared/table-checkbox-id.service.d.ts +1 -0
  276. package/lib/components/table/shared/table-checkbox-id.service.d.ts.map +1 -0
  277. package/lib/components/table/shared/table-filters-group.model.d.ts +1 -0
  278. package/lib/components/table/shared/table-filters-group.model.d.ts.map +1 -0
  279. package/lib/components/table/shared/table-filters.model.d.ts +1 -0
  280. package/lib/components/table/shared/table-filters.model.d.ts.map +1 -0
  281. package/lib/components/table/table.component.d.ts +1 -0
  282. package/lib/components/table/table.component.d.ts.map +1 -0
  283. package/lib/components/table/table.module.d.ts +1 -0
  284. package/lib/components/table/table.module.d.ts.map +1 -0
  285. package/lib/components/tabs/tab/tab.component.d.ts +1 -0
  286. package/lib/components/tabs/tab/tab.component.d.ts.map +1 -0
  287. package/lib/components/tabs/tab-body/tab-body.component.d.ts +1 -0
  288. package/lib/components/tabs/tab-body/tab-body.component.d.ts.map +1 -0
  289. package/lib/components/tabs/tab-body/tab-body.directive.d.ts +1 -0
  290. package/lib/components/tabs/tab-body/tab-body.directive.d.ts.map +1 -0
  291. package/lib/components/tabs/tabs.component.d.ts +3 -1
  292. package/lib/components/tabs/tabs.component.d.ts.map +1 -0
  293. package/lib/components/tag/tag.component.d.ts +3 -1
  294. package/lib/components/tag/tag.component.d.ts.map +1 -0
  295. package/lib/components/tag-dropdown/tag-dropdown.component.d.ts +1 -0
  296. package/lib/components/tag-dropdown/tag-dropdown.component.d.ts.map +1 -0
  297. package/lib/components/tag-input/tag-input.component.d.ts +26 -0
  298. package/lib/components/tag-input/tag-input.component.d.ts.map +1 -0
  299. package/lib/components/tag-label/tag-label.component.d.ts +1 -0
  300. package/lib/components/tag-label/tag-label.component.d.ts.map +1 -0
  301. package/lib/components/text/text.component.d.ts +5 -1
  302. package/lib/components/text/text.component.d.ts.map +1 -0
  303. package/lib/components/text-area/text-area.component.d.ts +1 -0
  304. package/lib/components/text-area/text-area.component.d.ts.map +1 -0
  305. package/lib/components/token-check/token-check.component.d.ts +1 -0
  306. package/lib/components/token-check/token-check.component.d.ts.map +1 -0
  307. package/lib/components/tooltip/tooltip.component.d.ts +1 -0
  308. package/lib/components/tooltip/tooltip.component.d.ts.map +1 -0
  309. package/lib/components/tooltip/tooltip.module.d.ts +1 -0
  310. package/lib/components/tooltip/tooltip.module.d.ts.map +1 -0
  311. package/lib/components/tree/tree.component.d.ts +1 -0
  312. package/lib/components/tree/tree.component.d.ts.map +1 -0
  313. package/lib/components/tree/tree.dto.d.ts +1 -0
  314. package/lib/components/tree/tree.dto.d.ts.map +1 -0
  315. package/lib/components/tree/tree.module.d.ts +1 -0
  316. package/lib/components/tree/tree.module.d.ts.map +1 -0
  317. package/lib/components/upload/upload.component.d.ts +9 -1
  318. package/lib/components/upload/upload.component.d.ts.map +1 -0
  319. package/lib/components/wrapper/wrapper.component.d.ts +1 -0
  320. package/lib/components/wrapper/wrapper.component.d.ts.map +1 -0
  321. package/lib/components/wrapper-blocs/wrapper-blocs.component.d.ts +1 -0
  322. package/lib/components/wrapper-blocs/wrapper-blocs.component.d.ts.map +1 -0
  323. package/lib/components/wrapper-multiple-block/wrapper-multiple-block.component.d.ts +1 -0
  324. package/lib/components/wrapper-multiple-block/wrapper-multiple-block.component.d.ts.map +1 -0
  325. package/lib/components/wrapper-sidebar/wrapper-sidebar.component.d.ts +1 -0
  326. package/lib/components/wrapper-sidebar/wrapper-sidebar.component.d.ts.map +1 -0
  327. package/lib/directives/abstract-debounce/abstract-debounce.directive.d.ts +1 -0
  328. package/lib/directives/abstract-debounce/abstract-debounce.directive.d.ts.map +1 -0
  329. package/lib/directives/abstract-debounce/debounce-keyup.directive.d.ts +1 -0
  330. package/lib/directives/abstract-debounce/debounce-keyup.directive.d.ts.map +1 -0
  331. package/lib/directives/auto-hide/auto-hide.directive.d.ts +1 -0
  332. package/lib/directives/auto-hide/auto-hide.directive.d.ts.map +1 -0
  333. package/lib/directives/copy-to-clipboard/copy-to-clipboard.directive.d.ts +1 -0
  334. package/lib/directives/copy-to-clipboard/copy-to-clipboard.directive.d.ts.map +1 -0
  335. package/lib/directives/keyboard-events/keypress-enter.directive.d.ts +1 -0
  336. package/lib/directives/keyboard-events/keypress-enter.directive.d.ts.map +1 -0
  337. package/lib/directives/keyboard-events/only-numbers.directive.d.ts +1 -0
  338. package/lib/directives/keyboard-events/only-numbers.directive.d.ts.map +1 -0
  339. package/lib/directives/keyboard-events/two-digital-decimal-number.directive.d.ts +1 -0
  340. package/lib/directives/keyboard-events/two-digital-decimal-number.directive.d.ts.map +1 -0
  341. package/lib/directives/ng-var.directive.d.ts +1 -0
  342. package/lib/directives/ng-var.directive.d.ts.map +1 -0
  343. package/lib/directives/scroll-to/scroll-to.directive.d.ts +1 -0
  344. package/lib/directives/scroll-to/scroll-to.directive.d.ts.map +1 -0
  345. package/lib/directives/shared-directives.module.d.ts +4 -3
  346. package/lib/directives/shared-directives.module.d.ts.map +1 -0
  347. package/lib/directives/watch-dom-tree/watch-dom-tree.directive.d.ts +1 -0
  348. package/lib/directives/watch-dom-tree/watch-dom-tree.directive.d.ts.map +1 -0
  349. package/lib/directives/zindex-toggle/zindex-toggle.directive.d.ts +1 -0
  350. package/lib/directives/zindex-toggle/zindex-toggle.directive.d.ts.map +1 -0
  351. package/lib/pipes/call-component-function.pipe.d.ts +1 -0
  352. package/lib/pipes/call-component-function.pipe.d.ts.map +1 -0
  353. package/lib/pipes/find-option-selected-field.pipe.d.ts +1 -0
  354. package/lib/pipes/find-option-selected-field.pipe.d.ts.map +1 -0
  355. package/lib/pipes/select/filter-options.pipe.d.ts +1 -0
  356. package/lib/pipes/select/filter-options.pipe.d.ts.map +1 -0
  357. package/lib/pipes/select/select-filters.pipe.d.ts +1 -0
  358. package/lib/pipes/select/select-filters.pipe.d.ts.map +1 -0
  359. package/lib/pipes/selected-list/are-all-options-selected.pipe.d.ts +1 -0
  360. package/lib/pipes/selected-list/are-all-options-selected.pipe.d.ts.map +1 -0
  361. package/lib/pipes/shared-pipes.module.d.ts +1 -0
  362. package/lib/pipes/shared-pipes.module.d.ts.map +1 -0
  363. package/lib/pipes/tree/format-object-to-recursif-tree.pipe.d.ts +1 -0
  364. package/lib/pipes/tree/format-object-to-recursif-tree.pipe.d.ts.map +1 -0
  365. package/lib/pipes/tree/format-object-to-simple-tree.pipe.d.ts +1 -0
  366. package/lib/pipes/tree/format-object-to-simple-tree.pipe.d.ts.map +1 -0
  367. package/lib/services/dom.service.d.ts +1 -0
  368. package/lib/services/dom.service.d.ts.map +1 -0
  369. package/lib/services/history.service.d.ts +1 -0
  370. package/lib/services/history.service.d.ts.map +1 -0
  371. package/lib/services/multiple-selection.service.d.ts +1 -0
  372. package/lib/services/multiple-selection.service.d.ts.map +1 -0
  373. package/lib/utils/array.d.ts +1 -0
  374. package/lib/utils/array.d.ts.map +1 -0
  375. package/lib/utils/html-container.class.d.ts +1 -0
  376. package/lib/utils/html-container.class.d.ts.map +1 -0
  377. package/lib/utils/slection-item.interface.d.ts +1 -0
  378. package/lib/utils/slection-item.interface.d.ts.map +1 -0
  379. package/lib/utils/uuid.d.ts +1 -0
  380. package/lib/utils/uuid.d.ts.map +1 -0
  381. package/lib/wizi-components.module.d.ts +1 -0
  382. package/lib/wizi-components.module.d.ts.map +1 -0
  383. package/package.json +24 -29
  384. package/public-api.d.ts +21 -2
  385. package/public-api.d.ts.map +1 -0
  386. package/wizishop-angular-components.d.ts.map +1 -0
  387. package/esm2022/lib/animations/in-out/in-out-x.animation.mjs +0 -12
  388. package/esm2022/lib/animations/in-out/in-out-y.animation.mjs +0 -12
  389. package/esm2022/lib/animations/list/animate-list-from-bottom.animation.mjs +0 -18
  390. package/esm2022/lib/animations/list/animate-list-from-left.animation.mjs +0 -18
  391. package/esm2022/lib/animations/list/animate-list-from-right.animation.mjs +0 -18
  392. package/esm2022/lib/animations/list/animate-list-from-top.animation.mjs +0 -16
  393. package/esm2022/lib/animations/show/opacity.animation.mjs +0 -5
  394. package/esm2022/lib/animations/show/show-from-bottom.animation.mjs +0 -15
  395. package/esm2022/lib/animations/show/show-from-left.animation.mjs +0 -15
  396. package/esm2022/lib/animations/show/show-from-right.animation.mjs +0 -15
  397. package/esm2022/lib/animations/show/show-from-top.animation.mjs +0 -15
  398. package/esm2022/lib/animations/switch/switch-in-out.animation.mjs +0 -6
  399. package/esm2022/lib/components/ai-express/ai-express.component.mjs +0 -83
  400. package/esm2022/lib/components/alert/alert.component.mjs +0 -42
  401. package/esm2022/lib/components/alert-popup/alert-popup-module.mjs +0 -20
  402. package/esm2022/lib/components/alert-popup/alert-popup.component.mjs +0 -41
  403. package/esm2022/lib/components/alert-popup/alert-popup.service.mjs +0 -33
  404. package/esm2022/lib/components/back/back.component.mjs +0 -12
  405. package/esm2022/lib/components/block/block-title-legacy/block-title-legacy.component.mjs +0 -21
  406. package/esm2022/lib/components/block/block.component.mjs +0 -124
  407. package/esm2022/lib/components/block/separator/block-separator.component.mjs +0 -17
  408. package/esm2022/lib/components/block-with-checkbox/block-with-checkbox.component.mjs +0 -46
  409. package/esm2022/lib/components/breadcrumbs/breadcrumbs.component.mjs +0 -27
  410. package/esm2022/lib/components/breadcrumbs/breadcrumbs.dto.mjs +0 -2
  411. package/esm2022/lib/components/button/button.component.mjs +0 -200
  412. package/esm2022/lib/components/calendar/calendar.component.mjs +0 -237
  413. package/esm2022/lib/components/card-price/card-price.component.mjs +0 -76
  414. package/esm2022/lib/components/charging-bar/charging-bar.component.mjs +0 -19
  415. package/esm2022/lib/components/checkbox/checkbox.component.mjs +0 -78
  416. package/esm2022/lib/components/checkbox/checkbox.module.mjs +0 -25
  417. package/esm2022/lib/components/column/column.component.mjs +0 -11
  418. package/esm2022/lib/components/common/label/label.component.mjs +0 -16
  419. package/esm2022/lib/components/common/placeholder/placeholder.component.mjs +0 -16
  420. package/esm2022/lib/components/confirm-delete/confirm-delete.component.mjs +0 -64
  421. package/esm2022/lib/components/content-with-buttons/content-with-buttons.component.mjs +0 -72
  422. package/esm2022/lib/components/delete/delete.component.mjs +0 -12
  423. package/esm2022/lib/components/draganddrop-list/draganddrop-list.component.mjs +0 -61
  424. package/esm2022/lib/components/dropdown/dropdown.component.mjs +0 -26
  425. package/esm2022/lib/components/edit-in-place/edit-in-place.component.mjs +0 -202
  426. package/esm2022/lib/components/expanded-panel/expanded-panel.component.mjs +0 -24
  427. package/esm2022/lib/components/expansion/accordion/accordion-item.interface.mjs +0 -2
  428. package/esm2022/lib/components/expansion/accordion/accordion-item.token.mjs +0 -3
  429. package/esm2022/lib/components/expansion/accordion/accordion.component.mjs +0 -74
  430. package/esm2022/lib/components/expansion/expansion-panel/expansion-panel.component.mjs +0 -29
  431. package/esm2022/lib/components/expansion/expansion-panel/expansion-panel.directive.mjs +0 -88
  432. package/esm2022/lib/components/expansion/expansion-panel-header/expansion-panel-header.component.mjs +0 -27
  433. package/esm2022/lib/components/expansion/expansion-panel-header/expansion-panel-header.directive.mjs +0 -49
  434. package/esm2022/lib/components/expansion/expansion-panel-header/expansion-panel-header.interface.mjs +0 -2
  435. package/esm2022/lib/components/expansion/expansion-panel-header/expansion-panel-header.token.mjs +0 -3
  436. package/esm2022/lib/components/expansion/expansion.module.mjs +0 -48
  437. package/esm2022/lib/components/filters/filter-item.dto.mjs +0 -2
  438. package/esm2022/lib/components/filters/filters.component.mjs +0 -41
  439. package/esm2022/lib/components/free-popin/free-popin.component.mjs +0 -66
  440. package/esm2022/lib/components/google-preview/google-preview.component.mjs +0 -20
  441. package/esm2022/lib/components/header-page/header-page.component.mjs +0 -42
  442. package/esm2022/lib/components/hn/h1/h1.component.mjs +0 -26
  443. package/esm2022/lib/components/hn/h2/h2.component.mjs +0 -13
  444. package/esm2022/lib/components/hn/h3/h3.component.mjs +0 -18
  445. package/esm2022/lib/components/hn/h4/h4.component.mjs +0 -18
  446. package/esm2022/lib/components/image/image.component.mjs +0 -17
  447. package/esm2022/lib/components/info/info.component.mjs +0 -12
  448. package/esm2022/lib/components/inputs/input/input.component.mjs +0 -184
  449. package/esm2022/lib/components/inputs/input-search/input-search.component.mjs +0 -65
  450. package/esm2022/lib/components/inputs/input-with-select/input-with-select.component.mjs +0 -17
  451. package/esm2022/lib/components/inputs/input-with-select/option-item.dto.mjs +0 -2
  452. package/esm2022/lib/components/link/link.component.mjs +0 -57
  453. package/esm2022/lib/components/loader/loader.component.mjs +0 -21
  454. package/esm2022/lib/components/logo/logo.component.mjs +0 -20
  455. package/esm2022/lib/components/mosaic/mosaic.component.mjs +0 -81
  456. package/esm2022/lib/components/multiple-search/multiple-search.component.mjs +0 -115
  457. package/esm2022/lib/components/multiple-search-plus/multiple-search-plus.component.mjs +0 -97
  458. package/esm2022/lib/components/multiple-search-plus/shared/multiple-search-plus-option.model.mjs +0 -2
  459. package/esm2022/lib/components/multiple-search-plus/shared/multiple-search-plus-results.model.mjs +0 -2
  460. package/esm2022/lib/components/optional-disable-container/optional-disable-container.component.mjs +0 -17
  461. package/esm2022/lib/components/pagination/pagination.component.mjs +0 -50
  462. package/esm2022/lib/components/pagination/pagination.module.mjs +0 -33
  463. package/esm2022/lib/components/pagination/pipes/array-pages.pipe.mjs +0 -28
  464. package/esm2022/lib/components/pagination/pipes/custom-text.pipe.mjs +0 -34
  465. package/esm2022/lib/components/pagination/pipes/is-last-page.pipe.mjs +0 -25
  466. package/esm2022/lib/components/popin/popin.component.mjs +0 -73
  467. package/esm2022/lib/components/progress-bar/progress-bar.component.mjs +0 -75
  468. package/esm2022/lib/components/radio/option/option.component.mjs +0 -27
  469. package/esm2022/lib/components/radio/radio-group.directive.mjs +0 -40
  470. package/esm2022/lib/components/radio/radio.component.mjs +0 -38
  471. package/esm2022/lib/components/radio-legacy/radio-directive.mjs +0 -22
  472. package/esm2022/lib/components/radio-legacy/radio-group.directive.mjs +0 -34
  473. package/esm2022/lib/components/radio-legacy/radio.component.mjs +0 -58
  474. package/esm2022/lib/components/row/row.component.mjs +0 -144
  475. package/esm2022/lib/components/search/search.component.mjs +0 -86
  476. package/esm2022/lib/components/search/shared/search-option.model.mjs +0 -2
  477. package/esm2022/lib/components/select/call-to-action.model.mjs +0 -2
  478. package/esm2022/lib/components/select/option/option-selection-handler.interface.mjs +0 -2
  479. package/esm2022/lib/components/select/option/option-selection-handler.token.mjs +0 -3
  480. package/esm2022/lib/components/select/option/option.component.mjs +0 -28
  481. package/esm2022/lib/components/select/option/select-option.directive.mjs +0 -98
  482. package/esm2022/lib/components/select/option-call-to-action/option-call-to-action.component.mjs +0 -12
  483. package/esm2022/lib/components/select/select/select.component.mjs +0 -198
  484. package/esm2022/lib/components/select/select/select.directive.mjs +0 -175
  485. package/esm2022/lib/components/select/select/value-change.service.mjs +0 -190
  486. package/esm2022/lib/components/select/select-items.dto.mjs +0 -2
  487. package/esm2022/lib/components/select/select-search-trigger/select-search-trigger.component.mjs +0 -38
  488. package/esm2022/lib/components/select-in-text/select-in-text.component.mjs +0 -103
  489. package/esm2022/lib/components/selected-list/selected-list.component.mjs +0 -62
  490. package/esm2022/lib/components/selected-list/shared/selected-list-option.model.mjs +0 -2
  491. package/esm2022/lib/components/separator/separator.component.mjs +0 -17
  492. package/esm2022/lib/components/settings/settings.component.mjs +0 -12
  493. package/esm2022/lib/components/shared-components.module.mjs +0 -444
  494. package/esm2022/lib/components/snackbar/snackbar.component.mjs +0 -85
  495. package/esm2022/lib/components/state/state.component.mjs +0 -16
  496. package/esm2022/lib/components/summary/summary.component.mjs +0 -41
  497. package/esm2022/lib/components/switch/switch.component.mjs +0 -89
  498. package/esm2022/lib/components/table/directives/checkBoxRow.directive.mjs +0 -92
  499. package/esm2022/lib/components/table/directives/column.directive.mjs +0 -42
  500. package/esm2022/lib/components/table/directives/columnHeader.directive.mjs +0 -199
  501. package/esm2022/lib/components/table/directives/raw.directive.mjs +0 -30
  502. package/esm2022/lib/components/table/shared/distinct-until-table-filters-changed.mjs +0 -21
  503. package/esm2022/lib/components/table/shared/filters-table.service.mjs +0 -68
  504. package/esm2022/lib/components/table/shared/table-checkbox-id.service.mjs +0 -20
  505. package/esm2022/lib/components/table/shared/table-filters-group.model.mjs +0 -10
  506. package/esm2022/lib/components/table/shared/table-filters.model.mjs +0 -2
  507. package/esm2022/lib/components/table/table.component.mjs +0 -146
  508. package/esm2022/lib/components/table/table.module.mjs +0 -46
  509. package/esm2022/lib/components/tabs/tab/tab.component.mjs +0 -43
  510. package/esm2022/lib/components/tabs/tab-body/tab-body.component.mjs +0 -23
  511. package/esm2022/lib/components/tabs/tab-body/tab-body.directive.mjs +0 -36
  512. package/esm2022/lib/components/tabs/tabs.component.mjs +0 -99
  513. package/esm2022/lib/components/tag/tag.component.mjs +0 -38
  514. package/esm2022/lib/components/tag-dropdown/tag-dropdown.component.mjs +0 -45
  515. package/esm2022/lib/components/tag-label/tag-label.component.mjs +0 -34
  516. package/esm2022/lib/components/text/text.component.mjs +0 -13
  517. package/esm2022/lib/components/text-area/text-area.component.mjs +0 -99
  518. package/esm2022/lib/components/token-check/token-check.component.mjs +0 -21
  519. package/esm2022/lib/components/tooltip/tooltip.component.mjs +0 -30
  520. package/esm2022/lib/components/tooltip/tooltip.module.mjs +0 -25
  521. package/esm2022/lib/components/tree/tree.component.mjs +0 -25
  522. package/esm2022/lib/components/tree/tree.dto.mjs +0 -2
  523. package/esm2022/lib/components/tree/tree.module.mjs +0 -29
  524. package/esm2022/lib/components/upload/upload.component.mjs +0 -36
  525. package/esm2022/lib/components/wrapper/wrapper.component.mjs +0 -18
  526. package/esm2022/lib/components/wrapper-blocs/wrapper-blocs.component.mjs +0 -19
  527. package/esm2022/lib/components/wrapper-multiple-block/wrapper-multiple-block.component.mjs +0 -12
  528. package/esm2022/lib/components/wrapper-sidebar/wrapper-sidebar.component.mjs +0 -30
  529. package/esm2022/lib/directives/abstract-debounce/abstract-debounce.directive.mjs +0 -37
  530. package/esm2022/lib/directives/abstract-debounce/debounce-keyup.directive.mjs +0 -24
  531. package/esm2022/lib/directives/auto-hide/auto-hide.directive.mjs +0 -50
  532. package/esm2022/lib/directives/copy-to-clipboard/copy-to-clipboard.directive.mjs +0 -32
  533. package/esm2022/lib/directives/keyboard-events/keypress-enter.directive.mjs +0 -25
  534. package/esm2022/lib/directives/keyboard-events/only-numbers.directive.mjs +0 -45
  535. package/esm2022/lib/directives/keyboard-events/two-digital-decimal-number.directive.mjs +0 -36
  536. package/esm2022/lib/directives/ng-var.directive.mjs +0 -32
  537. package/esm2022/lib/directives/scroll-to/scroll-to.directive.mjs +0 -32
  538. package/esm2022/lib/directives/shared-directives.module.mjs +0 -72
  539. package/esm2022/lib/directives/watch-dom-tree/watch-dom-tree.directive.mjs +0 -30
  540. package/esm2022/lib/directives/zindex-toggle/zindex-toggle.directive.mjs +0 -44
  541. package/esm2022/lib/pipes/call-component-function.pipe.mjs +0 -24
  542. package/esm2022/lib/pipes/find-option-selected-field.pipe.mjs +0 -29
  543. package/esm2022/lib/pipes/select/filter-options.pipe.mjs +0 -19
  544. package/esm2022/lib/pipes/select/select-filters.pipe.mjs +0 -19
  545. package/esm2022/lib/pipes/selected-list/are-all-options-selected.pipe.mjs +0 -17
  546. package/esm2022/lib/pipes/shared-pipes.module.mjs +0 -43
  547. package/esm2022/lib/pipes/tree/format-object-to-recursif-tree.pipe.mjs +0 -41
  548. package/esm2022/lib/pipes/tree/format-object-to-simple-tree.pipe.mjs +0 -49
  549. package/esm2022/lib/services/dom.service.mjs +0 -59
  550. package/esm2022/lib/services/history.service.mjs +0 -53
  551. package/esm2022/lib/services/multiple-selection.service.mjs +0 -62
  552. package/esm2022/lib/utils/array.mjs +0 -2
  553. package/esm2022/lib/utils/html-container.class.mjs +0 -30
  554. package/esm2022/lib/utils/slection-item.interface.mjs +0 -2
  555. package/esm2022/lib/utils/uuid.mjs +0 -8
  556. package/esm2022/lib/wizi-components.module.mjs +0 -34
  557. package/esm2022/public-api.mjs +0 -156
  558. package/esm2022/wizishop-angular-components.mjs +0 -5
  559. package/lib/components/radio-legacy/radio-directive.d.ts +0 -10
@@ -1,200 +0,0 @@
1
- import { Attribute, Component, EventEmitter, Inject, Input, Optional, Output, ViewChild } from '@angular/core';
2
- import { FormGroupDirective } from '@angular/forms';
3
- import { interval } from 'rxjs';
4
- import { takeWhile } from 'rxjs/operators';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "../../directives/auto-hide/auto-hide.directive";
8
- import * as i3 from "@angular/forms";
9
- export class ButtonComponent {
10
- set isLoading(isLoading) {
11
- this._isLoading = isLoading;
12
- this.isLoadingChange.next(isLoading);
13
- this.toggleLoading();
14
- }
15
- get isLoading() {
16
- return this._isLoading;
17
- }
18
- constructor(type, formGroup) {
19
- this.type = type;
20
- this.formGroup = formGroup;
21
- // todo add button type (ex: for submit and check if it works with template driven forms)
22
- this.extraClasses = 'is-info'; // todo make a list of existing class
23
- this.label = '';
24
- this.icon = '';
25
- this.isLoadingSvg = false;
26
- this.textcolor = null;
27
- this.widthAuto = false;
28
- this.contentHorizontalPosition = 'center';
29
- this.iconFontSize = 12;
30
- this.hasLoader = false;
31
- this.disabled = false;
32
- this.whiteSpaceNowrap = false;
33
- this.opacity = false;
34
- // TODO MAKE ANNIMATION AVAILABLE FOR MOBILE as CONFIRM DELETE DO (because, its doeant show the text and trigger click)
35
- this.animation = false;
36
- this.animationRight = false;
37
- this.animationText = '';
38
- this.confirmDelete = false;
39
- this.confirmDeleteText = '';
40
- this.noPadding = false;
41
- this.tooltipPosition = 'top-center';
42
- this.tooltipOneline = false;
43
- this.confirmDeletePosition = 'right';
44
- // eslint-disable-next-line @angular-eslint/no-output-native
45
- this.click = new EventEmitter();
46
- this.isLoadingChange = new EventEmitter();
47
- this._isLoading = false;
48
- this.interval = null;
49
- this.waitForConfirmDelete = false;
50
- this.buttonMaxWidth = '0px';
51
- this.buttonWidth = '0px';
52
- this.buttonMaxWidthDelete = '0px';
53
- this.buttonWidthDelete = '0px';
54
- this.currentLoading = 0;
55
- }
56
- ngOnInit() {
57
- if (this.confirmDelete) {
58
- this.waitForConfirmDelete = true;
59
- }
60
- }
61
- toggleLoading() {
62
- this.currentLoading = this.isLoading ? 10 : 100;
63
- interval(200).pipe(takeWhile(time => this.isLoading)).subscribe(() => {
64
- if (this.currentLoading < 85) {
65
- this.currentLoading += Math.floor(Math.random() * 15);
66
- }
67
- });
68
- }
69
- onButtonClickLoader() {
70
- this.isLoadingSvg = true;
71
- }
72
- addMaxWidth() {
73
- this.buttonMaxWidth = this.buttonWidth + 'px';
74
- }
75
- resetMaxWidth() {
76
- this.buttonMaxWidth = '0px';
77
- }
78
- addMaxWidthDelete() {
79
- this.buttonMaxWidthDelete = this.buttonWidthDelete + 'px';
80
- }
81
- resetMaxWidthDelete() {
82
- this.buttonMaxWidthDelete = '0px';
83
- this.waitForConfirmDelete = true;
84
- }
85
- onButtonClick(event) {
86
- event.stopPropagation();
87
- if (this.disabled) {
88
- return;
89
- }
90
- if (this.type === 'submit' && this.formGroup) { // Maybe there is a better way to handle submit
91
- this.formGroup.onSubmit(this.formGroup.value);
92
- }
93
- if (this.hasLoader) {
94
- this.isLoading = false;
95
- setTimeout(() => {
96
- this.isLoading = true;
97
- }, 0);
98
- }
99
- if (!this.waitForConfirmDelete) {
100
- this.click.emit(event);
101
- if (this.confirmDelete) {
102
- this.resetMaxWidthDelete();
103
- }
104
- }
105
- else {
106
- this.waitForConfirmDelete = false;
107
- }
108
- }
109
- ngAfterViewInit() {
110
- setTimeout(() => {
111
- if (this.animation) {
112
- this.buttonWidth = this.calculWidth.nativeElement.offsetWidth;
113
- }
114
- if (this.confirmDelete) {
115
- this.buttonWidthDelete = this.calculWidthDelete.nativeElement.offsetWidth;
116
- }
117
- }, 1000);
118
- }
119
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ButtonComponent, deps: [{ token: 'type', attribute: true }, { token: FormGroupDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
120
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: ButtonComponent, selector: "wac-button", inputs: { extraClasses: "extraClasses", label: "label", icon: "icon", isLoadingSvg: "isLoadingSvg", iconNext: "iconNext", textcolor: "textcolor", colorIcon: "colorIcon", widthAuto: "widthAuto", contentHorizontalPosition: "contentHorizontalPosition", iconFontSize: "iconFontSize", hasLoader: "hasLoader", disabled: "disabled", whiteSpaceNowrap: "whiteSpaceNowrap", opacity: "opacity", animation: "animation", animationRight: "animationRight", animationText: "animationText", confirmDelete: "confirmDelete", confirmDeleteText: "confirmDeleteText", coin: "coin", tooltip: "tooltip", tooltipWidth: "tooltipWidth", borderColor: "borderColor", noPadding: "noPadding", tooltipPosition: "tooltipPosition", tooltipOneline: "tooltipOneline", confirmDeletePosition: "confirmDeletePosition", isLoading: "isLoading" }, outputs: { click: "click", isLoadingChange: "isLoadingChange" }, viewQueries: [{ propertyName: "calculWidth", first: true, predicate: ["calculWidth"], descendants: true }, { propertyName: "calculWidthDelete", first: true, predicate: ["calculWidthDelete"], descendants: true }], ngImport: i0, template: "<a\r\n [class]=\"'wac-button ' + extraClasses\"\r\n [style.borderColor]=\"borderColor ? borderColor + '!important' : ''\"\r\n (click)=\"confirmDelete && waitForConfirmDelete ? addMaxWidthDelete() : '';onButtonClick($event);\"\r\n (mouseleave)=\"animation ? resetMaxWidth() : '';\"\r\n (mouseenter)=\"animation ? addMaxWidth() : '';\"\r\n wzAutoHide (clickOutside)=\"confirmDelete && !waitForConfirmDelete ? resetMaxWidthDelete() : ''\"\r\n [ngClass]=\"[\r\n label === '' ? 'alone' : '',\r\n coin ? 'has-coin width-auto' : '',\r\n animationRight ? 'animation-right' : '',\r\n animation ? 'animationText' : '',\r\n isLoading ? 'is-loading' : '',\r\n opacity ? 'opacity' : '',\r\n disabled ? 'disabled' : '',\r\n widthAuto ? 'width-auto' : '',\r\n noPadding ? 'no-padding' : '',\r\n whiteSpaceNowrap ? 'white-space-no-wrap' : '',\r\n !waitForConfirmDelete && confirmDelete ? 'step-delete' : '',\r\n confirmDelete ? 'deletePosition-' + confirmDeletePosition : ''\r\n ]\"\r\n [ngStyle]=\"{\r\n 'text-align': contentHorizontalPosition\r\n }\"\r\n>\r\n <span class=\"wac-button__wrapper\" [style.color]=\"textcolor ? textcolor : ''\" [ngClass]=\"{'loading-class': isLoadingSvg}\">\r\n <svg *ngIf=\"isLoadingSvg; else iconTemplate\" version=\"1.1\" id=\"loader-1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\r\n width=\"20px\" height=\"20px\" viewBox=\"0 0 50 50\" style=\"enable-background:new 0 0 50 50;\" xml:space=\"preserve\">\r\n <path fill=\"#fff\" d=\"M43.935,25.145c0-10.318-8.364-18.683-18.683-18.683c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615c8.072,0,14.615,6.543,14.615,14.615H43.935z\">\r\n <animateTransform attributeType=\"xml\"\r\n attributeName=\"transform\"\r\n type=\"rotate\"\r\n from=\"0 25 25\"\r\n to=\"360 25 25\"\r\n dur=\"0.6s\"\r\n repeatCount=\"indefinite\"/>\r\n </path>\r\n </svg>\r\n <ng-template #iconTemplate>\r\n <i *ngIf=\"icon\" [ngClass]=\"icon\" [style.color]=\"colorIcon\" [style.font-size.px]=\"iconFontSize\"></i>\r\n </ng-template>\r\n {{ label }}\r\n <i *ngIf=\"iconNext\" [style.color]=\"colorIcon\" [ngClass]=\"iconNext\" [style.font-size.px]=\"iconFontSize\"></i>\r\n </span>\r\n <span class=\"wac-button__animation\" [style.maxWidth]=\"buttonMaxWidth\" [style.width]=\"buttonWidth + 'px'\">\r\n <span #calculWidth class=\"wac-button__animation__text\" [innerHTML]=\"animationText\"></span>\r\n </span>\r\n <span class=\"wac-button__confirmDelete\" [style.maxWidth]=\"buttonMaxWidthDelete\" [style.width]=\"buttonWidthDelete + 'px'\">\r\n <span #calculWidthDelete class=\"wac-button__confirmDelete__text\" [innerHTML]=\"confirmDeleteText\"></span>\r\n </span>\r\n <span *ngIf=\"coin\" class=\"wac-button__coin\"><i class=\"fa-solid fa-coin-front\"></i><span [innerHTML]=\"coin\"></span></span>\r\n <span\r\n class=\"wac-button__loader\"\r\n [ngClass]=\"extraClasses.includes('is-outlined') ? 'outlined' : ''\"\r\n *ngIf=\"isLoading\"\r\n [style.width]=\"currentLoading + '%'\"\r\n >\r\n </span>\r\n <span class=\"wac-button__tooltips {{ tooltipPosition }}\" [ngClass]=\"{'oneline': tooltipOneline}\" [style.minWidth]=\"tooltipWidth\" *ngIf=\"tooltip\">\r\n {{ tooltip }}\r\n </span>\r\n</a>\r\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.AutoHideDirective, selector: "[wzAutoHide]", inputs: ["triggerElement", "forceOn"], outputs: ["clickOutside"] }] }); }
121
- }
122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ButtonComponent, decorators: [{
123
- type: Component,
124
- args: [{ selector: 'wac-button', template: "<a\r\n [class]=\"'wac-button ' + extraClasses\"\r\n [style.borderColor]=\"borderColor ? borderColor + '!important' : ''\"\r\n (click)=\"confirmDelete && waitForConfirmDelete ? addMaxWidthDelete() : '';onButtonClick($event);\"\r\n (mouseleave)=\"animation ? resetMaxWidth() : '';\"\r\n (mouseenter)=\"animation ? addMaxWidth() : '';\"\r\n wzAutoHide (clickOutside)=\"confirmDelete && !waitForConfirmDelete ? resetMaxWidthDelete() : ''\"\r\n [ngClass]=\"[\r\n label === '' ? 'alone' : '',\r\n coin ? 'has-coin width-auto' : '',\r\n animationRight ? 'animation-right' : '',\r\n animation ? 'animationText' : '',\r\n isLoading ? 'is-loading' : '',\r\n opacity ? 'opacity' : '',\r\n disabled ? 'disabled' : '',\r\n widthAuto ? 'width-auto' : '',\r\n noPadding ? 'no-padding' : '',\r\n whiteSpaceNowrap ? 'white-space-no-wrap' : '',\r\n !waitForConfirmDelete && confirmDelete ? 'step-delete' : '',\r\n confirmDelete ? 'deletePosition-' + confirmDeletePosition : ''\r\n ]\"\r\n [ngStyle]=\"{\r\n 'text-align': contentHorizontalPosition\r\n }\"\r\n>\r\n <span class=\"wac-button__wrapper\" [style.color]=\"textcolor ? textcolor : ''\" [ngClass]=\"{'loading-class': isLoadingSvg}\">\r\n <svg *ngIf=\"isLoadingSvg; else iconTemplate\" version=\"1.1\" id=\"loader-1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\r\n width=\"20px\" height=\"20px\" viewBox=\"0 0 50 50\" style=\"enable-background:new 0 0 50 50;\" xml:space=\"preserve\">\r\n <path fill=\"#fff\" d=\"M43.935,25.145c0-10.318-8.364-18.683-18.683-18.683c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615c8.072,0,14.615,6.543,14.615,14.615H43.935z\">\r\n <animateTransform attributeType=\"xml\"\r\n attributeName=\"transform\"\r\n type=\"rotate\"\r\n from=\"0 25 25\"\r\n to=\"360 25 25\"\r\n dur=\"0.6s\"\r\n repeatCount=\"indefinite\"/>\r\n </path>\r\n </svg>\r\n <ng-template #iconTemplate>\r\n <i *ngIf=\"icon\" [ngClass]=\"icon\" [style.color]=\"colorIcon\" [style.font-size.px]=\"iconFontSize\"></i>\r\n </ng-template>\r\n {{ label }}\r\n <i *ngIf=\"iconNext\" [style.color]=\"colorIcon\" [ngClass]=\"iconNext\" [style.font-size.px]=\"iconFontSize\"></i>\r\n </span>\r\n <span class=\"wac-button__animation\" [style.maxWidth]=\"buttonMaxWidth\" [style.width]=\"buttonWidth + 'px'\">\r\n <span #calculWidth class=\"wac-button__animation__text\" [innerHTML]=\"animationText\"></span>\r\n </span>\r\n <span class=\"wac-button__confirmDelete\" [style.maxWidth]=\"buttonMaxWidthDelete\" [style.width]=\"buttonWidthDelete + 'px'\">\r\n <span #calculWidthDelete class=\"wac-button__confirmDelete__text\" [innerHTML]=\"confirmDeleteText\"></span>\r\n </span>\r\n <span *ngIf=\"coin\" class=\"wac-button__coin\"><i class=\"fa-solid fa-coin-front\"></i><span [innerHTML]=\"coin\"></span></span>\r\n <span\r\n class=\"wac-button__loader\"\r\n [ngClass]=\"extraClasses.includes('is-outlined') ? 'outlined' : ''\"\r\n *ngIf=\"isLoading\"\r\n [style.width]=\"currentLoading + '%'\"\r\n >\r\n </span>\r\n <span class=\"wac-button__tooltips {{ tooltipPosition }}\" [ngClass]=\"{'oneline': tooltipOneline}\" [style.minWidth]=\"tooltipWidth\" *ngIf=\"tooltip\">\r\n {{ tooltip }}\r\n </span>\r\n</a>\r\n" }]
125
- }], ctorParameters: () => [{ type: undefined, decorators: [{
126
- type: Attribute,
127
- args: ['type']
128
- }] }, { type: i3.FormGroupDirective, decorators: [{
129
- type: Optional
130
- }, {
131
- type: Inject,
132
- args: [FormGroupDirective]
133
- }] }], propDecorators: { extraClasses: [{
134
- type: Input
135
- }], label: [{
136
- type: Input
137
- }], icon: [{
138
- type: Input
139
- }], isLoadingSvg: [{
140
- type: Input
141
- }], iconNext: [{
142
- type: Input
143
- }], textcolor: [{
144
- type: Input
145
- }], colorIcon: [{
146
- type: Input
147
- }], widthAuto: [{
148
- type: Input
149
- }], contentHorizontalPosition: [{
150
- type: Input
151
- }], iconFontSize: [{
152
- type: Input
153
- }], hasLoader: [{
154
- type: Input
155
- }], disabled: [{
156
- type: Input
157
- }], whiteSpaceNowrap: [{
158
- type: Input
159
- }], opacity: [{
160
- type: Input
161
- }], animation: [{
162
- type: Input
163
- }], animationRight: [{
164
- type: Input
165
- }], animationText: [{
166
- type: Input
167
- }], confirmDelete: [{
168
- type: Input
169
- }], confirmDeleteText: [{
170
- type: Input
171
- }], coin: [{
172
- type: Input
173
- }], tooltip: [{
174
- type: Input
175
- }], tooltipWidth: [{
176
- type: Input
177
- }], borderColor: [{
178
- type: Input
179
- }], noPadding: [{
180
- type: Input
181
- }], tooltipPosition: [{
182
- type: Input
183
- }], tooltipOneline: [{
184
- type: Input
185
- }], confirmDeletePosition: [{
186
- type: Input
187
- }], click: [{
188
- type: Output
189
- }], isLoading: [{
190
- type: Input
191
- }], isLoadingChange: [{
192
- type: Output
193
- }], calculWidth: [{
194
- type: ViewChild,
195
- args: ['calculWidth']
196
- }], calculWidthDelete: [{
197
- type: ViewChild,
198
- args: ['calculWidthDelete']
199
- }] } });
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hKLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQU0zQyxNQUFNLE9BQU8sZUFBZTtJQXNGMUIsSUFBYSxTQUFTLENBQUMsU0FBbUI7UUFDeEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFJRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQXVCRCxZQUM2QixJQUFZLEVBQ1MsU0FBNkI7UUFEbEQsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNTLGNBQVMsR0FBVCxTQUFTLENBQW9CO1FBeEgvRSx5RkFBeUY7UUFFekYsaUJBQVksR0FBRyxTQUFTLENBQUMsQ0FBQyxxQ0FBcUM7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YTtnQkFJeEIsaUJBQWlCO3NCQURoQixTQUFTO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQXR0cmlidXRlLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGludGVydmFsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnd2FjLWJ1dHRvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgLy8gdG9kbyBhZGQgYnV0dG9uIHR5cGUgKGV4OiBmb3Igc3VibWl0IGFuZCBjaGVjayBpZiBpdCB3b3JrcyB3aXRoIHRlbXBsYXRlIGRyaXZlbiBmb3JtcylcclxuICBASW5wdXQoKVxyXG4gIGV4dHJhQ2xhc3NlcyA9ICdpcy1pbmZvJzsgLy8gdG9kbyBtYWtlIGEgbGlzdCBvZiBleGlzdGluZyBjbGFzc1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGxhYmVsID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaWNvbiA9ICcnO1xyXG5cclxuICBASW5wdXQoKSBcclxuICBpc0xvYWRpbmdTdmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBpY29uTmV4dDogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHRleHRjb2xvciA9IG51bGw7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY29sb3JJY29uOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgd2lkdGhBdXRvID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY29udGVudEhvcml6b250YWxQb3NpdGlvbjogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnID0gJ2NlbnRlcic7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaWNvbkZvbnRTaXplID0gMTI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaGFzTG9hZGVyID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICB3aGl0ZVNwYWNlTm93cmFwID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgb3BhY2l0eSA9IGZhbHNlO1xyXG4gIC8vIFRPRE8gTUFLRSBBTk5JTUFUSU9OIEFWQUlMQUJMRSBGT1IgTU9CSUxFIGFzIENPTkZJUk0gREVMRVRFIERPIChiZWNhdXNlLCBpdHMgZG9lYW50IHNob3cgdGhlIHRleHQgYW5kIHRyaWdnZXIgY2xpY2spXHJcbiAgQElucHV0KClcclxuICBhbmltYXRpb24gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBhbmltYXRpb25SaWdodCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGFuaW1hdGlvblRleHQgPSAnJztcclxuXHJcbiAgQElucHV0KClcclxuICBjb25maXJtRGVsZXRlID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY29uZmlybURlbGV0ZVRleHQgPSAnJztcclxuXHJcbiAgQElucHV0KClcclxuICBjb2luOiBudW1iZXIgfCBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdG9vbHRpcDogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHRvb2x0aXBXaWR0aDogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGJvcmRlckNvbG9yOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgbm9QYWRkaW5nID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdG9vbHRpcFBvc2l0aW9uOiAndG9wLWNlbnRlcicgfCAndG9wLXJpZ2h0JyB8ICd0b3AtbGVmdCcgfCAnYm90dG9tLWNlbnRlcicgfCAnYm90dG9tLXJpZ2h0JyB8ICdib3R0b20tbGVmdCcgfCAnbGVmdCcgfCAncmlnaHQnID0gJ3RvcC1jZW50ZXInO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHRvb2x0aXBPbmVsaW5lID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY29uZmlybURlbGV0ZVBvc2l0aW9uID0gJ3JpZ2h0JztcclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBjbGljazogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBASW5wdXQoKSBzZXQgaXNMb2FkaW5nKGlzTG9hZGluZyA6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2lzTG9hZGluZyA9IGlzTG9hZGluZztcclxuICAgIHRoaXMuaXNMb2FkaW5nQ2hhbmdlLm5leHQoaXNMb2FkaW5nKTtcclxuICAgIHRoaXMudG9nZ2xlTG9hZGluZygpO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpIGlzTG9hZGluZ0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgZ2V0IGlzTG9hZGluZygpIDogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNMb2FkaW5nO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICBpbnRlcnZhbCA9IG51bGw7XHJcblxyXG4gIHdhaXRGb3JDb25maXJtRGVsZXRlID0gZmFsc2U7XHJcblxyXG4gIGJ1dHRvbk1heFdpZHRoID0gJzBweCc7XHJcbiAgYnV0dG9uV2lkdGggPSAnMHB4JztcclxuXHJcbiAgYnV0dG9uTWF4V2lkdGhEZWxldGUgPSAnMHB4JztcclxuICBidXR0b25XaWR0aERlbGV0ZSA9ICcwcHgnO1xyXG5cclxuICBjdXJyZW50TG9hZGluZyA9IDA7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NhbGN1bFdpZHRoJylcclxuICBjYWxjdWxXaWR0aDogRWxlbWVudFJlZjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnY2FsY3VsV2lkdGhEZWxldGUnKVxyXG4gIGNhbGN1bFdpZHRoRGVsZXRlOiBFbGVtZW50UmVmO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBBdHRyaWJ1dGUoJ3R5cGUnKSBwcml2YXRlIHR5cGU6IHN0cmluZyxcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRm9ybUdyb3VwRGlyZWN0aXZlKSBwcml2YXRlIGZvcm1Hcm91cDogRm9ybUdyb3VwRGlyZWN0aXZlXHJcbiAgICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuY29uZmlybURlbGV0ZSkge1xyXG4gICAgICB0aGlzLndhaXRGb3JDb25maXJtRGVsZXRlID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvZ2dsZUxvYWRpbmcoKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRMb2FkaW5nID0gdGhpcy5pc0xvYWRpbmcgPyAxMCA6IDEwMDtcclxuXHJcbiAgICBpbnRlcnZhbCgyMDApLnBpcGUodGFrZVdoaWxlKCB0aW1lPT4gdGhpcy5pc0xvYWRpbmcpKS5zdWJzY3JpYmUoXHJcbiAgICAgICgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5jdXJyZW50TG9hZGluZyA8IDg1KSB7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRMb2FkaW5nICs9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDE1KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBvbkJ1dHRvbkNsaWNrTG9hZGVyKCkge1xyXG4gICAgdGhpcy5pc0xvYWRpbmdTdmcgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgYWRkTWF4V2lkdGgoKSB7XHJcbiAgICB0aGlzLmJ1dHRvbk1heFdpZHRoID0gdGhpcy5idXR0b25XaWR0aCArICdweCc7XHJcbiAgfVxyXG5cclxuICByZXNldE1heFdpZHRoKCkge1xyXG4gICAgdGhpcy5idXR0b25NYXhXaWR0aCA9ICcwcHgnO1xyXG4gIH1cclxuXHJcbiAgYWRkTWF4V2lkdGhEZWxldGUoKSB7XHJcbiAgICB0aGlzLmJ1dHRvbk1heFdpZHRoRGVsZXRlID0gdGhpcy5idXR0b25XaWR0aERlbGV0ZSArICdweCc7XHJcbiAgfVxyXG5cclxuICByZXNldE1heFdpZHRoRGVsZXRlKCkge1xyXG4gICAgdGhpcy5idXR0b25NYXhXaWR0aERlbGV0ZSA9ICcwcHgnO1xyXG4gICAgdGhpcy53YWl0Rm9yQ29uZmlybURlbGV0ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBvbkJ1dHRvbkNsaWNrKGV2ZW50KXtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3N1Ym1pdCcgJiYgdGhpcy5mb3JtR3JvdXApIHsgLy8gTWF5YmUgdGhlcmUgaXMgYSBiZXR0ZXIgd2F5IHRvIGhhbmRsZSBzdWJtaXRcclxuICAgICAgdGhpcy5mb3JtR3JvdXAub25TdWJtaXQodGhpcy5mb3JtR3JvdXAudmFsdWUpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaGFzTG9hZGVyKSB7XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4geyAvLyB0cmljayB0byByZXNldCB0aGUgYW5pbWF0aW9uIGxvYWRpbmdcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIH0sIDApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy53YWl0Rm9yQ29uZmlybURlbGV0ZSkge1xyXG4gICAgICB0aGlzLmNsaWNrLmVtaXQoZXZlbnQpO1xyXG4gICAgICBpZiAodGhpcy5jb25maXJtRGVsZXRlKSB7XHJcbiAgICAgICAgdGhpcy5yZXNldE1heFdpZHRoRGVsZXRlKCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMud2FpdEZvckNvbmZpcm1EZWxldGUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5hbmltYXRpb24pIHtcclxuICAgICAgICB0aGlzLmJ1dHRvbldpZHRoID0gdGhpcy5jYWxjdWxXaWR0aC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmNvbmZpcm1EZWxldGUpIHtcclxuICAgICAgICB0aGlzLmJ1dHRvbldpZHRoRGVsZXRlID0gdGhpcy5jYWxjdWxXaWR0aERlbGV0ZS5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgICB9XHJcbiAgICB9LCAxMDAwKTtcclxuICB9XHJcbn1cclxuIiwiPGFcclxuICBbY2xhc3NdPVwiJ3dhYy1idXR0b24gJyArIGV4dHJhQ2xhc3Nlc1wiXHJcbiAgW3N0eWxlLmJvcmRlckNvbG9yXT1cImJvcmRlckNvbG9yID8gYm9yZGVyQ29sb3IgKyAnIWltcG9ydGFudCcgOiAnJ1wiXHJcbiAgKGNsaWNrKT1cImNvbmZpcm1EZWxldGUgJiYgd2FpdEZvckNvbmZpcm1EZWxldGUgPyBhZGRNYXhXaWR0aERlbGV0ZSgpIDogJyc7b25CdXR0b25DbGljaygkZXZlbnQpO1wiXHJcbiAgKG1vdXNlbGVhdmUpPVwiYW5pbWF0aW9uID8gcmVzZXRNYXhXaWR0aCgpIDogJyc7XCJcclxuICAobW91c2VlbnRlcik9XCJhbmltYXRpb24gPyBhZGRNYXhXaWR0aCgpIDogJyc7XCJcclxuICB3ekF1dG9IaWRlIChjbGlja091dHNpZGUpPVwiY29uZmlybURlbGV0ZSAmJiAhd2FpdEZvckNvbmZpcm1EZWxldGUgPyByZXNldE1heFdpZHRoRGVsZXRlKCkgOiAnJ1wiXHJcbiAgW25nQ2xhc3NdPVwiW1xyXG4gICAgbGFiZWwgPT09ICcnID8gJ2Fsb25lJyA6ICcnLFxyXG4gICAgY29pbiA/ICdoYXMtY29pbiB3aWR0aC1hdXRvJyA6ICcnLFxyXG4gICAgYW5pbWF0aW9uUmlnaHQgPyAnYW5pbWF0aW9uLXJpZ2h0JyA6ICcnLFxyXG4gICAgYW5pbWF0aW9uID8gJ2FuaW1hdGlvblRleHQnIDogJycsXHJcbiAgICBpc0xvYWRpbmcgPyAnaXMtbG9hZGluZycgOiAnJyxcclxuICAgIG9wYWNpdHkgPyAnb3BhY2l0eScgOiAnJyxcclxuICAgIGRpc2FibGVkID8gJ2Rpc2FibGVkJyA6ICcnLFxyXG4gICAgd2lkdGhBdXRvID8gJ3dpZHRoLWF1dG8nIDogJycsXHJcbiAgICBub1BhZGRpbmcgPyAnbm8tcGFkZGluZycgOiAnJyxcclxuICAgIHdoaXRlU3BhY2VOb3dyYXAgPyAnd2hpdGUtc3BhY2Utbm8td3JhcCcgOiAnJyxcclxuICAgICF3YWl0Rm9yQ29uZmlybURlbGV0ZSAmJiBjb25maXJtRGVsZXRlID8gJ3N0ZXAtZGVsZXRlJyA6ICcnLFxyXG4gICAgY29uZmlybURlbGV0ZSA/ICdkZWxldGVQb3NpdGlvbi0nICsgY29uZmlybURlbGV0ZVBvc2l0aW9uIDogJydcclxuICAgIF1cIlxyXG4gICAgW25nU3R5bGVdPVwie1xyXG4gICAgICAndGV4dC1hbGlnbic6IGNvbnRlbnRIb3Jpem9udGFsUG9zaXRpb25cclxuICAgIH1cIlxyXG4+XHJcbiAgPHNwYW4gY2xhc3M9XCJ3YWMtYnV0dG9uX193cmFwcGVyXCIgW3N0eWxlLmNvbG9yXT1cInRleHRjb2xvciA/IHRleHRjb2xvciA6ICcnXCIgW25nQ2xhc3NdPVwieydsb2FkaW5nLWNsYXNzJzogaXNMb2FkaW5nU3ZnfVwiPlxyXG4gICAgPHN2ZyAqbmdJZj1cImlzTG9hZGluZ1N2ZzsgZWxzZSBpY29uVGVtcGxhdGVcIiB2ZXJzaW9uPVwiMS4xXCIgaWQ9XCJsb2FkZXItMVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB4PVwiMHB4XCIgeT1cIjBweFwiXHJcbiAgICAgd2lkdGg9XCIyMHB4XCIgaGVpZ2h0PVwiMjBweFwiIHZpZXdCb3g9XCIwIDAgNTAgNTBcIiBzdHlsZT1cImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTAgNTA7XCIgeG1sOnNwYWNlPVwicHJlc2VydmVcIj5cclxuICAgICAgPHBhdGggZmlsbD1cIiNmZmZcIiBkPVwiTTQzLjkzNSwyNS4xNDVjMC0xMC4zMTgtOC4zNjQtMTguNjgzLTE4LjY4My0xOC42ODNjLTEwLjMxOCwwLTE4LjY4Myw4LjM2NS0xOC42ODMsMTguNjgzaDQuMDY4YzAtOC4wNzEsNi41NDMtMTQuNjE1LDE0LjYxNS0xNC42MTVjOC4wNzIsMCwxNC42MTUsNi41NDMsMTQuNjE1LDE0LjYxNUg0My45MzV6XCI+XHJcbiAgICAgICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlVHlwZT1cInhtbFwiXHJcbiAgICAgICAgICBhdHRyaWJ1dGVOYW1lPVwidHJhbnNmb3JtXCJcclxuICAgICAgICAgIHR5cGU9XCJyb3RhdGVcIlxyXG4gICAgICAgICAgZnJvbT1cIjAgMjUgMjVcIlxyXG4gICAgICAgICAgdG89XCIzNjAgMjUgMjVcIlxyXG4gICAgICAgICAgZHVyPVwiMC42c1wiXHJcbiAgICAgICAgICByZXBlYXRDb3VudD1cImluZGVmaW5pdGVcIi8+XHJcbiAgICAgIDwvcGF0aD5cclxuICAgIDwvc3ZnPlxyXG4gICAgPG5nLXRlbXBsYXRlICNpY29uVGVtcGxhdGU+XHJcbiAgICAgIDxpICpuZ0lmPVwiaWNvblwiIFtuZ0NsYXNzXT1cImljb25cIiBbc3R5bGUuY29sb3JdPVwiY29sb3JJY29uXCIgW3N0eWxlLmZvbnQtc2l6ZS5weF09XCJpY29uRm9udFNpemVcIj48L2k+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAge3sgbGFiZWwgfX1cclxuICAgIDxpICpuZ0lmPVwiaWNvbk5leHRcIiBbc3R5bGUuY29sb3JdPVwiY29sb3JJY29uXCIgW25nQ2xhc3NdPVwiaWNvbk5leHRcIiBbc3R5bGUuZm9udC1zaXplLnB4XT1cImljb25Gb250U2l6ZVwiPjwvaT5cclxuICA8L3NwYW4+XHJcbiAgPHNwYW4gY2xhc3M9XCJ3YWMtYnV0dG9uX19hbmltYXRpb25cIiBbc3R5bGUubWF4V2lkdGhdPVwiYnV0dG9uTWF4V2lkdGhcIiBbc3R5bGUud2lkdGhdPVwiYnV0dG9uV2lkdGggKyAncHgnXCI+XHJcbiAgICA8c3BhbiAjY2FsY3VsV2lkdGggY2xhc3M9XCJ3YWMtYnV0dG9uX19hbmltYXRpb25fX3RleHRcIiBbaW5uZXJIVE1MXT1cImFuaW1hdGlvblRleHRcIj48L3NwYW4+XHJcbiAgPC9zcGFuPlxyXG4gIDxzcGFuIGNsYXNzPVwid2FjLWJ1dHRvbl9fY29uZmlybURlbGV0ZVwiIFtzdHlsZS5tYXhXaWR0aF09XCJidXR0b25NYXhXaWR0aERlbGV0ZVwiIFtzdHlsZS53aWR0aF09XCJidXR0b25XaWR0aERlbGV0ZSArICdweCdcIj5cclxuICAgIDxzcGFuICNjYWxjdWxXaWR0aERlbGV0ZSBjbGFzcz1cIndhYy1idXR0b25fX2NvbmZpcm1EZWxldGVfX3RleHRcIiBbaW5uZXJIVE1MXT1cImNvbmZpcm1EZWxldGVUZXh0XCI+PC9zcGFuPlxyXG4gIDwvc3Bhbj5cclxuICA8c3BhbiAqbmdJZj1cImNvaW5cIiBjbGFzcz1cIndhYy1idXR0b25fX2NvaW5cIj48aSBjbGFzcz1cImZhLXNvbGlkIGZhLWNvaW4tZnJvbnRcIj48L2k+PHNwYW4gW2lubmVySFRNTF09XCJjb2luXCI+PC9zcGFuPjwvc3Bhbj5cclxuICA8c3BhblxyXG4gICAgY2xhc3M9XCJ3YWMtYnV0dG9uX19sb2FkZXJcIlxyXG4gICAgW25nQ2xhc3NdPVwiZXh0cmFDbGFzc2VzLmluY2x1ZGVzKCdpcy1vdXRsaW5lZCcpID8gJ291dGxpbmVkJyA6ICcnXCJcclxuICAgICpuZ0lmPVwiaXNMb2FkaW5nXCJcclxuICAgIFtzdHlsZS53aWR0aF09XCJjdXJyZW50TG9hZGluZyArICclJ1wiXHJcbiAgPlxyXG4gIDwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cIndhYy1idXR0b25fX3Rvb2x0aXBzIHt7IHRvb2x0aXBQb3NpdGlvbiB9fVwiIFtuZ0NsYXNzXT1cInsnb25lbGluZSc6IHRvb2x0aXBPbmVsaW5lfVwiIFtzdHlsZS5taW5XaWR0aF09XCJ0b29sdGlwV2lkdGhcIiAqbmdJZj1cInRvb2x0aXBcIj5cclxuICAgIHt7IHRvb2x0aXAgfX1cclxuICA8L3NwYW4+XHJcbjwvYT5cclxuIl19
@@ -1,237 +0,0 @@
1
- import { DatePipe } from '@angular/common';
2
- import { Component, Input, EventEmitter, Output, ChangeDetectionStrategy, ViewChild, ViewEncapsulation } from '@angular/core';
3
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import { opacityAnimation } from '../../animations/show/opacity.animation';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "@angular/forms";
8
- import * as i3 from "@wizishop/ng-wizi-bulma";
9
- import * as i4 from "../../directives/auto-hide/auto-hide.directive";
10
- import * as i5 from "../../directives/zindex-toggle/zindex-toggle.directive";
11
- import * as i6 from "../../directives/keyboard-events/only-numbers.directive";
12
- import * as i7 from "../optional-disable-container/optional-disable-container.component";
13
- import * as i8 from "@ngx-translate/core";
14
- export class CalendarComponent {
15
- set options(options) {
16
- this._options = options;
17
- if (this.isBulmaDatePickerExists()) {
18
- this.updateBulmaDatePickerOptions(options);
19
- }
20
- }
21
- get options() {
22
- return this._options;
23
- }
24
- set dateSelected(dateSelected) {
25
- if (this.disabled) {
26
- return;
27
- }
28
- this._dateSelected = new Date(dateSelected); // trigger change detection for pure pipe
29
- }
30
- get dateSelected() {
31
- return this._dateSelected;
32
- }
33
- set calendarMinutes(calendarMinutes) {
34
- if (!this.dateSelected) {
35
- this.dateSelected = new Date();
36
- }
37
- const minutes = this.formatTime(calendarMinutes, 0, 59);
38
- this.dateSelected.setMinutes(minutes);
39
- this.dateSelected = this.dateSelected; // trigger change detection
40
- this.minutes.nativeElement.value = this.datePipe.transform(this.dateSelected, 'mm'); // force to update the input value
41
- this.triggerDateSelectedChange();
42
- }
43
- get calendarMinutes() {
44
- return this.datePipe.transform(this.dateSelected ?? new Date(), 'mm');
45
- }
46
- set calendarHours(calendarHours) {
47
- if (!this.dateSelected) {
48
- this.dateSelected = new Date();
49
- }
50
- const hours = this.formatTime(calendarHours, 0, 23);
51
- this.dateSelected.setHours(hours);
52
- this.dateSelected = this.dateSelected; // trigger change detection
53
- this.hours.nativeElement.value = this.datePipe.transform(this.dateSelected, 'HH'); // force to update the input value
54
- this.triggerDateSelectedChange();
55
- }
56
- get calendarHours() {
57
- return this.datePipe.transform(this.dateSelected ?? new Date(), 'HH');
58
- }
59
- constructor(datePipe) {
60
- this.datePipe = datePipe;
61
- this.boldLabel = false; // todo remove when label will be a ng-content
62
- this.type = 'input';
63
- this._options = {
64
- displayMode: 'inline',
65
- showHeader: false,
66
- showFooter: true,
67
- };
68
- this.position = 'bottom';
69
- this.dateSelectedChange = new EventEmitter();
70
- this.typeDate = 'datetime-local';
71
- this.noMargin = false;
72
- this.disabled = false;
73
- this.changeData = new EventEmitter();
74
- this.open = false;
75
- this.startLabel = '';
76
- this.endLabel = '';
77
- // ControlValueAccessor methods
78
- this.onChange = () => { };
79
- this.onTouch = () => { };
80
- }
81
- ngOnChanges(changes) {
82
- if (changes.label || changes.type) {
83
- this.setCalendarLabel();
84
- }
85
- }
86
- onChangeDate(selectedDates) {
87
- if (this.disabled) {
88
- return;
89
- }
90
- if (!this.dateSelected) {
91
- this.dateSelected = new Date();
92
- }
93
- selectedDates.startDate.setHours(this.dateSelected.getHours());
94
- selectedDates.startDate.setMinutes(this.dateSelected.getMinutes());
95
- this.dateSelected = selectedDates.startDate;
96
- this.triggerDateSelectedChange();
97
- }
98
- triggerDateSelectedChange() {
99
- this.onChange(this.dateSelected);
100
- this.dateSelectedChange.emit(this.dateSelected);
101
- this.triggerChange({
102
- startDate: this.dateSelected,
103
- endDate: this.dateSelected
104
- });
105
- }
106
- triggerChange(event) {
107
- this.changeData.emit(event);
108
- }
109
- openCalendar(value = null) {
110
- if (this.disabled) {
111
- return;
112
- }
113
- if (value === 'close') {
114
- if (this.open) {
115
- this.open = false;
116
- this.onTouch();
117
- }
118
- }
119
- else {
120
- this.open = !this.open;
121
- }
122
- }
123
- setCalendarLabel() {
124
- if (this.type === 'edit' && this.label) {
125
- const splitLabel = this.label.split('{x}');
126
- if (splitLabel.length > 1) {
127
- this.startLabel = splitLabel[0];
128
- this.endLabel = splitLabel[1];
129
- }
130
- else {
131
- this.startLabel = this.label;
132
- }
133
- }
134
- }
135
- incrementMinutes($event) {
136
- this.calendarMinutes = parseInt(this.calendarMinutes, 10) + 1 + '';
137
- $event.preventDefault();
138
- }
139
- decrementsMinutes($event) {
140
- this.calendarMinutes = parseInt(this.calendarMinutes, 10) - 1 + '';
141
- $event.preventDefault();
142
- }
143
- incrementHours($event) {
144
- this.calendarHours = parseInt(this.calendarHours, 10) + 1 + '';
145
- $event.preventDefault();
146
- }
147
- decrementHours($event) {
148
- this.calendarHours = parseInt(this.calendarHours, 10) - 1 + '';
149
- $event.preventDefault();
150
- }
151
- /*
152
- Ensure that the input value is a number and that it is between min and max
153
- */
154
- formatTime(time, min = 0, max = 59) {
155
- let timeNumber = typeof time === 'string' ? parseInt(time, 10) : time;
156
- timeNumber = timeNumber > max ? min : timeNumber;
157
- timeNumber = timeNumber < min ? max : timeNumber;
158
- timeNumber = parseInt(('' + timeNumber).slice(-2)); // keeps only the last 2 digits
159
- return timeNumber;
160
- }
161
- updateBulmaDatePickerOptions(options) {
162
- const bulmaCalendarDatePicker = this.datePicker['bulmaCalendar'].datePicker;
163
- bulmaCalendarDatePicker.min = options.minDate;
164
- bulmaCalendarDatePicker.max = options.maxDate;
165
- bulmaCalendarDatePicker.refresh();
166
- }
167
- isBulmaDatePickerExists() {
168
- return this.datePicker && this.datePicker['bulmaCalendar'] && this.datePicker['bulmaCalendar'].datePicker;
169
- }
170
- writeValue(date) {
171
- if (!date) {
172
- return;
173
- }
174
- this.dateSelected = date;
175
- }
176
- registerOnChange(fn) {
177
- this.onChange = fn;
178
- }
179
- registerOnTouched(fn) {
180
- this.onTouch = fn;
181
- }
182
- setDisabledState(isDisabled) {
183
- this.disabled = isDisabled;
184
- }
185
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarComponent, deps: [{ token: i1.DatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
186
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: CalendarComponent, selector: "wac-calendar", inputs: { label: "label", boldLabel: "boldLabel", type: "type", options: "options", position: "position", dateSelected: "dateSelected", typeDate: "typeDate", noMargin: "noMargin", disabled: "disabled" }, outputs: { dateSelectedChange: "dateSelectedChange", changeData: "changeData" }, providers: [
187
- {
188
- provide: NG_VALUE_ACCESSOR,
189
- useExisting: CalendarComponent,
190
- multi: true
191
- },
192
- DatePipe
193
- ], viewQueries: [{ propertyName: "minutes", first: true, predicate: ["minutes"], descendants: true }, { propertyName: "hours", first: true, predicate: ["hours"], descendants: true }, { propertyName: "datePicker", first: true, predicate: ["datePicker"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"wac-calendar\"\r\n [ngClass]=\"{\r\n 'wac-calendar--input': type === 'input',\r\n 'wac-calendar--onlyDate': typeDate === 'date',\r\n 'wac-calendar--edit': type === 'edit',\r\n 'wac-calendar--select': type === 'select',\r\n 'wac-calendar--no-margin': noMargin,\r\n 'wac-calendar--open': open\r\n }\"\r\n [zIndexToggle]=\"open\"\r\n>\r\n <p [class]=\"'wac-calendar__label' + (boldLabel ? ' bold' : '')\" *ngIf=\"label && (type === 'input' || type === 'select')\" (click)=\"openCalendar()\">{{ label }}</p>\r\n <p class=\"wac-calendar__startLabel\" *ngIf=\"type === 'edit'\">{{ startLabel }}</p>\r\n <wac-optional-disable-container [disabled]=\"disabled\">\r\n <div class=\"wac-calendar__autoHide\" wzAutoHide (clickOutside)=\"openCalendar('close')\">\r\n <div class=\"wac-calendar__wrapper\">\r\n <div class=\"wac-calendar__wrapper__input\" *ngIf=\"type === 'input'\" (click)=\"openCalendar()\">\r\n <div class=\"wac-calendar__wrapper__input__icon\">\r\n <i class=\"far fa-calendar-alt\"></i>\r\n </div>\r\n <div class=\"wac-calendar__wrapper__input__date\">\r\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'dd/MM/yyyy'}}</span>\r\n <span class=\"placeholder-date\" *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.dd/mm/yyyy' | translate }}</span>\r\n </div>\r\n <div class=\"wac-calendar__wrapper__input__time\">\r\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'HH:mm' }}</span>\r\n <span class=\"placeholder-date\" *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.HH:mm' | translate }}</span>\r\n </div>\r\n </div>\r\n <div class=\"wac-calendar__wrapper__editInPlace\" *ngIf=\"type === 'edit'\" (click)=\"openCalendar()\">\r\n <div class=\"wac-calendar__wrapper__editInPlace__icon\">\r\n <i class=\"fal fa-calendar-alt\"></i>\r\n </div>\r\n <div class=\"wac-calendar__wrapper__editInPlace__date\">\r\n <div class=\"wac-calendar__wrapper__input__time\">\r\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'dd/MM/yyyy HH:mm' }}</span>\r\n <span class=\"placeholder-date\" *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.dd/MM/yyyy_HH:mm' | translate }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"wac-calendar__wrapper__select\" *ngIf=\"type === 'select'\" (click)=\"openCalendar()\">\r\n <div class=\"wac-calendar__wrapper__select__icon\">\r\n <i class=\"fal fa-calendar-alt\"></i>\r\n </div>\r\n <div class=\"wac-calendar__wrapper__select__date\">\r\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'dd/MM/yyyy HH:mm' }}</span>\r\n <span class=\"placeholder-date\" *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.dd/MM/yyyy_HH:mm' | translate }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"wac-calendar__absolute\"\r\n [ngClass]=\"{\r\n top: position === 'top',\r\n bottom: position === 'bottom',\r\n left: position === 'left',\r\n right: position === 'right',\r\n 'right-top': position === 'right-top',\r\n 'right-bottom': position === 'right-bottom',\r\n 'left-top': position === 'left-top',\r\n 'left-bottom': position === 'left-bottom',\r\n 'with-time': typeDate === 'datetime-local' || typeDate === 'datetime'\r\n }\"\r\n >\r\n <nwb-date-picker #datePicker (change)=\"onChangeDate($event)\" [options]=\"options\">\r\n <input [nwbDatepickerStart]=\"datePicker\" type=\"text\" [nwbDateType]=\"'date'\" [value]=\"dateSelected?.toISOString()\" />\r\n </nwb-date-picker>\r\n <div class=\"wac-calendar__absolute__time\" *ngIf=\"typeDate === 'datetime-local' || typeDate === 'datetime'\">\r\n <div class=\"wac-calendar__absolute__time__wrapper\">\r\n <div class=\"wac-calendar__absolute__time__wrapper__hours\">\r\n <div class=\"wac-calendar__absolute__time__wrapper__hours__left\">\r\n <button class=\"wac-calendar__absolute__time__wrapper__hours__btn\" (click)=\"incrementHours($event)\">\r\n <i class=\"fas fa-plus\"></i>\r\n </button>\r\n <button class=\"wac-calendar__absolute__time__wrapper__hours__btn\" (click)=\"decrementHours($event)\">\r\n <i class=\"fas fa-minus\"></i>\r\n </button>\r\n </div>\r\n <div class=\"wac-calendar__absolute__time__wrapper__hours__right\">\r\n <input #hours type=\"text\" [(ngModel)]=\"calendarHours\" [wacOnlyNumber]=\"true\"/>\r\n </div>\r\n </div>\r\n <div class=\"wac-calendar__absolute__time__wrapper__minutes\">\r\n <div class=\"wac-calendar__absolute__time__wrapper__minutes__left\">\r\n <input #minutes type=\"text\" [(ngModel)]=\"calendarMinutes\" [wacOnlyNumber]=\"true\"/>\r\n </div>\r\n <div class=\"wac-calendar__absolute__time__wrapper__minutes__right\">\r\n <button class=\"wac-calendar__absolute__time__wrapper__minutes__btn\" (click)=\"incrementMinutes($event)\">\r\n <i class=\"fas fa-plus\"></i>\r\n </button>\r\n <button class=\"wac-calendar__absolute__time__wrapper__minutes__btn\" (click)=\"decrementsMinutes($event)\">\r\n <i class=\"fas fa-minus\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </wac-optional-disable-container>\r\n <p class=\"wac-calendar__endLabel\" *ngIf=\"type === 'edit'\">{{ endLabel }}</p>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.NwbDatePickerComponent, selector: "nwb-date-picker", inputs: ["options"], outputs: ["change", "clear"] }, { kind: "directive", type: i3.NwbDatePickerInputStartDirective, selector: "input[nwbDatepickerStart]", inputs: ["nwbDatepickerStart"] }, { kind: "directive", type: i3.NwbDatePickerInputDateTypeDirective, selector: "input[nwbDateType]", inputs: ["nwbDateType"] }, { kind: "directive", type: i4.AutoHideDirective, selector: "[wzAutoHide]", inputs: ["triggerElement", "forceOn"], outputs: ["clickOutside"] }, { kind: "directive", type: i5.ZindexToggleDirective, selector: "[zIndexToggle]", inputs: ["zIndexToggle"], outputs: ["onEventChange"] }, { kind: "directive", type: i6.OnlyNumberDirective, selector: "[wacOnlyNumber]", inputs: ["wacOnlyNumber"] }, { kind: "component", type: i7.OptionalDisableContainerComponent, selector: "wac-optional-disable-container", inputs: ["disabled"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }], animations: [opacityAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
194
- }
195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CalendarComponent, decorators: [{
196
- type: Component,
197
- args: [{ selector: 'wac-calendar', providers: [
198
- {
199
- provide: NG_VALUE_ACCESSOR,
200
- useExisting: CalendarComponent,
201
- multi: true
202
- },
203
- DatePipe
204
- ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, animations: [opacityAnimation], template: "<div\r\n class=\"wac-calendar\"\r\n [ngClass]=\"{\r\n 'wac-calendar--input': type === 'input',\r\n 'wac-calendar--onlyDate': typeDate === 'date',\r\n 'wac-calendar--edit': type === 'edit',\r\n 'wac-calendar--select': type === 'select',\r\n 'wac-calendar--no-margin': noMargin,\r\n 'wac-calendar--open': open\r\n }\"\r\n [zIndexToggle]=\"open\"\r\n>\r\n <p [class]=\"'wac-calendar__label' + (boldLabel ? ' bold' : '')\" *ngIf=\"label && (type === 'input' || type === 'select')\" (click)=\"openCalendar()\">{{ label }}</p>\r\n <p class=\"wac-calendar__startLabel\" *ngIf=\"type === 'edit'\">{{ startLabel }}</p>\r\n <wac-optional-disable-container [disabled]=\"disabled\">\r\n <div class=\"wac-calendar__autoHide\" wzAutoHide (clickOutside)=\"openCalendar('close')\">\r\n <div class=\"wac-calendar__wrapper\">\r\n <div class=\"wac-calendar__wrapper__input\" *ngIf=\"type === 'input'\" (click)=\"openCalendar()\">\r\n <div class=\"wac-calendar__wrapper__input__icon\">\r\n <i class=\"far fa-calendar-alt\"></i>\r\n </div>\r\n <div class=\"wac-calendar__wrapper__input__date\">\r\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'dd/MM/yyyy'}}</span>\r\n <span class=\"placeholder-date\" *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.dd/mm/yyyy' | translate }}</span>\r\n </div>\r\n <div class=\"wac-calendar__wrapper__input__time\">\r\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'HH:mm' }}</span>\r\n <span class=\"placeholder-date\" *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.HH:mm' | translate }}</span>\r\n </div>\r\n </div>\r\n <div class=\"wac-calendar__wrapper__editInPlace\" *ngIf=\"type === 'edit'\" (click)=\"openCalendar()\">\r\n <div class=\"wac-calendar__wrapper__editInPlace__icon\">\r\n <i class=\"fal fa-calendar-alt\"></i>\r\n </div>\r\n <div class=\"wac-calendar__wrapper__editInPlace__date\">\r\n <div class=\"wac-calendar__wrapper__input__time\">\r\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'dd/MM/yyyy HH:mm' }}</span>\r\n <span class=\"placeholder-date\" *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.dd/MM/yyyy_HH:mm' | translate }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"wac-calendar__wrapper__select\" *ngIf=\"type === 'select'\" (click)=\"openCalendar()\">\r\n <div class=\"wac-calendar__wrapper__select__icon\">\r\n <i class=\"fal fa-calendar-alt\"></i>\r\n </div>\r\n <div class=\"wac-calendar__wrapper__select__date\">\r\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'dd/MM/yyyy HH:mm' }}</span>\r\n <span class=\"placeholder-date\" *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.dd/MM/yyyy_HH:mm' | translate }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"wac-calendar__absolute\"\r\n [ngClass]=\"{\r\n top: position === 'top',\r\n bottom: position === 'bottom',\r\n left: position === 'left',\r\n right: position === 'right',\r\n 'right-top': position === 'right-top',\r\n 'right-bottom': position === 'right-bottom',\r\n 'left-top': position === 'left-top',\r\n 'left-bottom': position === 'left-bottom',\r\n 'with-time': typeDate === 'datetime-local' || typeDate === 'datetime'\r\n }\"\r\n >\r\n <nwb-date-picker #datePicker (change)=\"onChangeDate($event)\" [options]=\"options\">\r\n <input [nwbDatepickerStart]=\"datePicker\" type=\"text\" [nwbDateType]=\"'date'\" [value]=\"dateSelected?.toISOString()\" />\r\n </nwb-date-picker>\r\n <div class=\"wac-calendar__absolute__time\" *ngIf=\"typeDate === 'datetime-local' || typeDate === 'datetime'\">\r\n <div class=\"wac-calendar__absolute__time__wrapper\">\r\n <div class=\"wac-calendar__absolute__time__wrapper__hours\">\r\n <div class=\"wac-calendar__absolute__time__wrapper__hours__left\">\r\n <button class=\"wac-calendar__absolute__time__wrapper__hours__btn\" (click)=\"incrementHours($event)\">\r\n <i class=\"fas fa-plus\"></i>\r\n </button>\r\n <button class=\"wac-calendar__absolute__time__wrapper__hours__btn\" (click)=\"decrementHours($event)\">\r\n <i class=\"fas fa-minus\"></i>\r\n </button>\r\n </div>\r\n <div class=\"wac-calendar__absolute__time__wrapper__hours__right\">\r\n <input #hours type=\"text\" [(ngModel)]=\"calendarHours\" [wacOnlyNumber]=\"true\"/>\r\n </div>\r\n </div>\r\n <div class=\"wac-calendar__absolute__time__wrapper__minutes\">\r\n <div class=\"wac-calendar__absolute__time__wrapper__minutes__left\">\r\n <input #minutes type=\"text\" [(ngModel)]=\"calendarMinutes\" [wacOnlyNumber]=\"true\"/>\r\n </div>\r\n <div class=\"wac-calendar__absolute__time__wrapper__minutes__right\">\r\n <button class=\"wac-calendar__absolute__time__wrapper__minutes__btn\" (click)=\"incrementMinutes($event)\">\r\n <i class=\"fas fa-plus\"></i>\r\n </button>\r\n <button class=\"wac-calendar__absolute__time__wrapper__minutes__btn\" (click)=\"decrementsMinutes($event)\">\r\n <i class=\"fas fa-minus\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </wac-optional-disable-container>\r\n <p class=\"wac-calendar__endLabel\" *ngIf=\"type === 'edit'\">{{ endLabel }}</p>\r\n</div>\r\n" }]
205
- }], ctorParameters: () => [{ type: i1.DatePipe }], propDecorators: { minutes: [{
206
- type: ViewChild,
207
- args: ['minutes']
208
- }], hours: [{
209
- type: ViewChild,
210
- args: ['hours']
211
- }], datePicker: [{
212
- type: ViewChild,
213
- args: ['datePicker']
214
- }], label: [{
215
- type: Input
216
- }], boldLabel: [{
217
- type: Input
218
- }], type: [{
219
- type: Input
220
- }], options: [{
221
- type: Input
222
- }], position: [{
223
- type: Input
224
- }], dateSelected: [{
225
- type: Input
226
- }], dateSelectedChange: [{
227
- type: Output
228
- }], typeDate: [{
229
- type: Input
230
- }], noMargin: [{
231
- type: Input
232
- }], disabled: [{
233
- type: Input
234
- }], changeData: [{
235
- type: Output
236
- }] } });
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUE0Qix1QkFBdUIsRUFBRSxTQUFTLEVBQWMsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEssT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7Ozs7Ozs7O0FBaUIzRSxNQUFNLE9BQU8saUJBQWlCO0lBZTVCLElBQ0ksT0FBTyxDQUFDLE9BQXVDO1FBQ2pELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQVdELElBQ0ksWUFBWSxDQUFDLFlBQWtCO1FBQ2pDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEs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Z0IsQ0FBQzs7MkZBRW5CLGlCQUFpQjtrQkFmN0IsU0FBUzsrQkFDRSxjQUFjLGFBRWI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxtQkFBbUI7NEJBQzlCLEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNELFFBQVE7cUJBQ1QsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksY0FDekIsQ0FBQyxnQkFBZ0IsQ0FBQzs2RUFJUixPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ0EsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQUNPLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFHdkIsS0FBSztzQkFESixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSUYsT0FBTztzQkFEVixLQUFLO2dCQW1CTixRQUFRO3NCQURQLEtBQUs7Z0JBSUYsWUFBWTtzQkFEZixLQUFLO2dCQVlJLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFHUCxRQUFRO3NCQURQLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOd2JEYXRlUGlja2VyQ29tcG9uZW50LCBOd2JEYXRlUGlja2VyRXZlbnQsIE53YkRhdGVQaWNrZXJPcHRpb25zIH0gZnJvbSAnQHdpemlzaG9wL25nLXdpemktYnVsbWEnO1xyXG5pbXBvcnQgeyBvcGFjaXR5QW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vYW5pbWF0aW9ucy9zaG93L29wYWNpdHkuYW5pbWF0aW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnd2FjLWNhbGVuZGFyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IENhbGVuZGFyQ29tcG9uZW50LFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIERhdGVQaXBlXHJcbiAgXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGFuaW1hdGlvbnM6IFtvcGFjaXR5QW5pbWF0aW9uXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICAvLyEgQXQgdGhlIG1vbWVudCwgdGhlIGNvbXBvbmVudCBoYW5kbGUgb25seSBvbmUgZGF0ZSAobm90IGEgcmFuZ2UpXHJcbiAgQFZpZXdDaGlsZCgnbWludXRlcycpIG1pbnV0ZXM6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaG91cnMnKSBob3VyczogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdkYXRlUGlja2VyJykgZGF0ZVBpY2tlcjogTndiRGF0ZVBpY2tlckNvbXBvbmVudDtcclxuXHJcbiAgQElucHV0KClcclxuICBsYWJlbDogc3RyaW5nIHwgbnVsbDsgLy8gdG9kbyB1c2UgbmctY29udGVudCBpbnN0ZWFkXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYm9sZExhYmVsOiBib29sZWFuID0gZmFsc2U7IC8vIHRvZG8gcmVtb3ZlIHdoZW4gbGFiZWwgd2lsbCBiZSBhIG5nLWNvbnRlbnRcclxuXHJcbiAgQElucHV0KClcclxuICB0eXBlOiAnaW5wdXQnIHwgJ2VkaXQnIHwgJ3NlbGVjdCcgPSAnaW5wdXQnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBvcHRpb25zKG9wdGlvbnM6IFJlYWRvbmx5PE53YkRhdGVQaWNrZXJPcHRpb25zPikge1xyXG4gICAgdGhpcy5fb3B0aW9ucyA9IG9wdGlvbnM7XHJcbiAgICBpZiAodGhpcy5pc0J1bG1hRGF0ZVBpY2tlckV4aXN0cygpKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlQnVsbWFEYXRlUGlja2VyT3B0aW9ucyhvcHRpb25zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBvcHRpb25zKCkgOiBSZWFkb25seTxOd2JEYXRlUGlja2VyT3B0aW9ucz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBfb3B0aW9uczogUmVhZG9ubHk8TndiRGF0ZVBpY2tlck9wdGlvbnM+ICA9IHtcclxuICAgIGRpc3BsYXlNb2RlOiAnaW5saW5lJyxcclxuICAgIHNob3dIZWFkZXI6IGZhbHNlLFxyXG4gICAgc2hvd0Zvb3RlcjogdHJ1ZSxcclxuICB9O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHBvc2l0aW9uID0gJ2JvdHRvbSc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGRhdGVTZWxlY3RlZChkYXRlU2VsZWN0ZWQ6IERhdGUpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX2RhdGVTZWxlY3RlZCA9IG5ldyBEYXRlKGRhdGVTZWxlY3RlZCk7IC8vIHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvbiBmb3IgcHVyZSBwaXBlXHJcbiAgfVxyXG4gIGdldCBkYXRlU2VsZWN0ZWQoKSA6IERhdGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGVTZWxlY3RlZDtcclxuICB9XHJcbiAgX2RhdGVTZWxlY3RlZDogRGF0ZTtcclxuXHJcbiAgQE91dHB1dCgpIGRhdGVTZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KClcclxuICB0eXBlRGF0ZTogJ2RhdGV0aW1lJyB8ICdkYXRldGltZS1sb2NhbCcgfCAnZGF0ZScgPSAnZGF0ZXRpbWUtbG9jYWwnO1xyXG4gIEBJbnB1dCgpXHJcbiAgbm9NYXJnaW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpIGNoYW5nZURhdGEgPSBuZXcgRXZlbnRFbWl0dGVyPHsgc3RhcnREYXRlOiBEYXRlOyBlbmREYXRlOiBEYXRlOyB9PigpO1xyXG4gIG9wZW4gPSBmYWxzZTtcclxuICBzdGFydExhYmVsID0gJyc7XHJcbiAgZW5kTGFiZWwgPSAnJztcclxuXHJcbiAgc2V0IGNhbGVuZGFyTWludXRlcyhjYWxlbmRhck1pbnV0ZXM6IHN0cmluZykge1xyXG4gICAgaWYgKCF0aGlzLmRhdGVTZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLmRhdGVTZWxlY3RlZCA9IG5ldyBEYXRlKCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBtaW51dGVzID0gdGhpcy5mb3JtYXRUaW1lKGNhbGVuZGFyTWludXRlcywgMCwgNTkpO1xyXG4gICAgdGhpcy5kYXRlU2VsZWN0ZWQuc2V0TWludXRlcyhtaW51dGVzKTtcclxuXHJcbiAgICB0aGlzLmRhdGVTZWxlY3RlZCA9IHRoaXMuZGF0ZVNlbGVjdGVkOyAvLyB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb25cclxuICAgIHRoaXMubWludXRlcy5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5kYXRlU2VsZWN0ZWQsICdtbScpOyAvLyBmb3JjZSB0byB1cGRhdGUgdGhlIGlucHV0IHZhbHVlXHJcbiAgICB0aGlzLnRyaWdnZXJEYXRlU2VsZWN0ZWRDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIGdldCBjYWxlbmRhck1pbnV0ZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmRhdGVTZWxlY3RlZCA/PyBuZXcgRGF0ZSgpLCAnbW0nKTtcclxuICB9XHJcblxyXG4gIHNldCBjYWxlbmRhckhvdXJzKGNhbGVuZGFySG91cnM6IHN0cmluZykge1xyXG4gICAgaWYgKCF0aGlzLmRhdGVTZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLmRhdGVTZWxlY3RlZCA9IG5ldyBEYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaG91cnMgPSB0aGlzLmZvcm1hdFRpbWUoY2FsZW5kYXJIb3VycywgMCwgMjMpO1xyXG5cclxuICAgIHRoaXMuZGF0ZVNlbGVjdGVkLnNldEhvdXJzKGhvdXJzKTtcclxuICAgIHRoaXMuZGF0ZVNlbGVjdGVkID0gdGhpcy5kYXRlU2VsZWN0ZWQ7IC8vIHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvblxyXG4gICAgdGhpcy5ob3Vycy5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5kYXRlU2VsZWN0ZWQsICdISCcpOyAvLyBmb3JjZSB0byB1cGRhdGUgdGhlIGlucHV0IHZhbHVlXHJcbiAgICB0aGlzLnRyaWdnZXJEYXRlU2VsZWN0ZWRDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIGdldCBjYWxlbmRhckhvdXJzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5kYXRlU2VsZWN0ZWQgPz8gbmV3IERhdGUoKSwgJ0hIJyk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSkge31cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXMubGFiZWwgfHwgY2hhbmdlcy50eXBlKSB7XHJcbiAgICAgIHRoaXMuc2V0Q2FsZW5kYXJMYWJlbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2VEYXRlKHNlbGVjdGVkRGF0ZXM6IE53YkRhdGVQaWNrZXJFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5kYXRlU2VsZWN0ZWQpIHtcclxuICAgICAgdGhpcy5kYXRlU2VsZWN0ZWQgPSBuZXcgRGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdGVkRGF0ZXMuc3RhcnREYXRlLnNldEhvdXJzKHRoaXMuZGF0ZVNlbGVjdGVkLmdldEhvdXJzKCkpO1xyXG4gICAgc2VsZWN0ZWREYXRlcy5zdGFydERhdGUuc2V0TWludXRlcyh0aGlzLmRhdGVTZWxlY3RlZC5nZXRNaW51dGVzKCkpO1xyXG5cclxuICAgIHRoaXMuZGF0ZVNlbGVjdGVkID0gc2VsZWN0ZWREYXRlcy5zdGFydERhdGU7XHJcbiAgICB0aGlzLnRyaWdnZXJEYXRlU2VsZWN0ZWRDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdHJpZ2dlckRhdGVTZWxlY3RlZENoYW5nZSgpIHtcclxuICAgIHRoaXMub25DaGFuZ2UodGhpcy5kYXRlU2VsZWN0ZWQpO1xyXG4gICAgdGhpcy5kYXRlU2VsZWN0ZWRDaGFuZ2UuZW1pdCh0aGlzLmRhdGVTZWxlY3RlZCk7XHJcbiAgICB0aGlzLnRyaWdnZXJDaGFuZ2Uoe1xyXG4gICAgICBzdGFydERhdGU6IHRoaXMuZGF0ZVNlbGVjdGVkLFxyXG4gICAgICBlbmREYXRlOiB0aGlzLmRhdGVTZWxlY3RlZFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB0cmlnZ2VyQ2hhbmdlKGV2ZW50OiB7IHN0YXJ0RGF0ZTogRGF0ZTsgZW5kRGF0ZTogRGF0ZTsgfSkge1xyXG4gICAgdGhpcy5jaGFuZ2VEYXRhLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb3BlbkNhbGVuZGFyKHZhbHVlID0gbnVsbCkge1xyXG5cclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodmFsdWUgPT09ICdjbG9zZScpIHtcclxuICAgICAgaWYgKHRoaXMub3Blbikge1xyXG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub25Ub3VjaCgpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRDYWxlbmRhckxhYmVsKCkge1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2VkaXQnICYmIHRoaXMubGFiZWwpIHtcclxuICAgICAgY29uc3Qgc3BsaXRMYWJlbCA9IHRoaXMubGFiZWwuc3BsaXQoJ3t4fScpO1xyXG4gICAgICBpZiAoc3BsaXRMYWJlbC5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgdGhpcy5zdGFydExhYmVsID0gc3BsaXRMYWJlbFswXTtcclxuICAgICAgICB0aGlzLmVuZExhYmVsID0gc3BsaXRMYWJlbFsxXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnN0YXJ0TGFiZWwgPSB0aGlzLmxhYmVsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbmNyZW1lbnRNaW51dGVzKCRldmVudDogRXZlbnQpIHtcclxuICAgIHRoaXMuY2FsZW5kYXJNaW51dGVzID0gcGFyc2VJbnQodGhpcy5jYWxlbmRhck1pbnV0ZXMsIDEwKSArIDEgKyAnJztcclxuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuXHJcbiAgZGVjcmVtZW50c01pbnV0ZXMoJGV2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy5jYWxlbmRhck1pbnV0ZXMgPSBwYXJzZUludCh0aGlzLmNhbGVuZGFyTWludXRlcywgMTApIC0gMSArICcnO1xyXG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG5cclxuICBpbmNyZW1lbnRIb3VycygkZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLmNhbGVuZGFySG91cnMgPSBwYXJzZUludCh0aGlzLmNhbGVuZGFySG91cnMsIDEwKSArIDEgKyAnJztcclxuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuXHJcbiAgZGVjcmVtZW50SG91cnMoJGV2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy5jYWxlbmRhckhvdXJzID0gcGFyc2VJbnQodGhpcy5jYWxlbmRhckhvdXJzLCAxMCkgLSAxICsgJyc7XHJcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICBFbnN1cmUgdGhhdCB0aGUgaW5wdXQgdmFsdWUgaXMgYSBudW1iZXIgYW5kIHRoYXQgaXQgaXMgYmV0d2VlbiBtaW4gYW5kIG1heFxyXG4gICovXHJcbiAgcHJpdmF0ZSBmb3JtYXRUaW1lKHRpbWU6IHN0cmluZyB8IG51bWJlciwgbWluID0gMCwgbWF4ID0gNTkpIHtcclxuICAgIGxldCB0aW1lTnVtYmVyID0gdHlwZW9mIHRpbWUgPT09ICdzdHJpbmcnID8gcGFyc2VJbnQodGltZSwgMTApIDogdGltZTtcclxuICAgIHRpbWVOdW1iZXIgPSB0aW1lTnVtYmVyID4gbWF4ID8gbWluIDogdGltZU51bWJlcjtcclxuICAgIHRpbWVOdW1iZXIgPSB0aW1lTnVtYmVyIDwgbWluID8gbWF4IDogdGltZU51bWJlcjtcclxuICAgIHRpbWVOdW1iZXIgPSBwYXJzZUludCgoJycgKyB0aW1lTnVtYmVyKS5zbGljZSgtMikpOyAvLyBrZWVwcyBvbmx5IHRoZSBsYXN0IDIgZGlnaXRzXHJcbiAgICByZXR1cm4gdGltZU51bWJlcjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlQnVsbWFEYXRlUGlja2VyT3B0aW9ucyhvcHRpb25zOiBSZWFkb25seTxOd2JEYXRlUGlja2VyT3B0aW9ucz4pIHtcclxuICAgIGNvbnN0IGJ1bG1hQ2FsZW5kYXJEYXRlUGlja2VyID0gdGhpcy5kYXRlUGlja2VyWydidWxtYUNhbGVuZGFyJ10uZGF0ZVBpY2tlcjtcclxuICAgIGJ1bG1hQ2FsZW5kYXJEYXRlUGlja2VyLm1pbiA9IG9wdGlvbnMubWluRGF0ZTtcclxuICAgIGJ1bG1hQ2FsZW5kYXJEYXRlUGlja2VyLm1heCA9IG9wdGlvbnMubWF4RGF0ZTtcclxuICAgIGJ1bG1hQ2FsZW5kYXJEYXRlUGlja2VyLnJlZnJlc2goKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNCdWxtYURhdGVQaWNrZXJFeGlzdHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRlUGlja2VyICYmIHRoaXMuZGF0ZVBpY2tlclsnYnVsbWFDYWxlbmRhciddICYmIHRoaXMuZGF0ZVBpY2tlclsnYnVsbWFDYWxlbmRhciddLmRhdGVQaWNrZXI7XHJcbiAgfVxyXG5cclxuICAvLyBDb250cm9sVmFsdWVBY2Nlc3NvciBtZXRob2RzXHJcblxyXG4gIG9uQ2hhbmdlOiAodmFsdWU6IERhdGUpID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuXHJcbiAgb25Ub3VjaDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG5cclxuICB3cml0ZVZhbHVlKGRhdGU6IERhdGUpOiB2b2lkIHtcclxuICAgIGlmICghZGF0ZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmRhdGVTZWxlY3RlZCA9IGRhdGU7XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSl7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpe1xyXG4gICAgICB0aGlzLm9uVG91Y2ggPSBmbjtcclxuICB9XHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwid2FjLWNhbGVuZGFyXCJcclxuICBbbmdDbGFzc109XCJ7XHJcbiAgICAnd2FjLWNhbGVuZGFyLS1pbnB1dCc6IHR5cGUgPT09ICdpbnB1dCcsXHJcbiAgICAnd2FjLWNhbGVuZGFyLS1vbmx5RGF0ZSc6IHR5cGVEYXRlID09PSAnZGF0ZScsXHJcbiAgICAnd2FjLWNhbGVuZGFyLS1lZGl0JzogdHlwZSA9PT0gJ2VkaXQnLFxyXG4gICAgJ3dhYy1jYWxlbmRhci0tc2VsZWN0JzogdHlwZSA9PT0gJ3NlbGVjdCcsXHJcbiAgICAnd2FjLWNhbGVuZGFyLS1uby1tYXJnaW4nOiBub01hcmdpbixcclxuICAgICd3YWMtY2FsZW5kYXItLW9wZW4nOiBvcGVuXHJcbiAgfVwiXHJcbiAgW3pJbmRleFRvZ2dsZV09XCJvcGVuXCJcclxuPlxyXG4gIDxwIFtjbGFzc109XCInd2FjLWNhbGVuZGFyX19sYWJlbCcgKyAoYm9sZExhYmVsID8gJyBib2xkJyA6ICcnKVwiICpuZ0lmPVwibGFiZWwgJiYgKHR5cGUgPT09ICdpbnB1dCcgfHwgdHlwZSA9PT0gJ3NlbGVjdCcpXCIgKGNsaWNrKT1cIm9wZW5DYWxlbmRhcigpXCI+e3sgbGFiZWwgfX08L3A+XHJcbiAgPHAgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX3N0YXJ0TGFiZWxcIiAqbmdJZj1cInR5cGUgPT09ICdlZGl0J1wiPnt7IHN0YXJ0TGFiZWwgfX08L3A+XHJcbiAgPHdhYy1vcHRpb25hbC1kaXNhYmxlLWNvbnRhaW5lciBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2F1dG9IaWRlXCIgd3pBdXRvSGlkZSAoY2xpY2tPdXRzaWRlKT1cIm9wZW5DYWxlbmRhcignY2xvc2UnKVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX193cmFwcGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndhYy1jYWxlbmRhcl9fd3JhcHBlcl9faW5wdXRcIiAqbmdJZj1cInR5cGUgPT09ICdpbnB1dCdcIiAoY2xpY2spPVwib3BlbkNhbGVuZGFyKClcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX3dyYXBwZXJfX2lucHV0X19pY29uXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWNhbGVuZGFyLWFsdFwiPjwvaT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndhYy1jYWxlbmRhcl9fd3JhcHBlcl9faW5wdXRfX2RhdGVcIj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkYXRlU2VsZWN0ZWRcIiBAb3BhY2l0eUFuaW1hdGlvbj57eyBkYXRlU2VsZWN0ZWQgfCBkYXRlOiAnZGQvTU0veXl5eSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwbGFjZWhvbGRlci1kYXRlXCIgKm5nSWY9XCIhZGF0ZVNlbGVjdGVkXCIgQG9wYWNpdHlBbmltYXRpb24+e3sgJ3dhYy5EYXRlLlBsYWNlSG9sZGVyLmRkL21tL3l5eXknIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX193cmFwcGVyX19pbnB1dF9fdGltZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRhdGVTZWxlY3RlZFwiIEBvcGFjaXR5QW5pbWF0aW9uPnt7IGRhdGVTZWxlY3RlZCB8IGRhdGU6ICdISDptbScgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGxhY2Vob2xkZXItZGF0ZVwiICpuZ0lmPVwiIWRhdGVTZWxlY3RlZFwiIEBvcGFjaXR5QW5pbWF0aW9uPnt7ICd3YWMuRGF0ZS5QbGFjZUhvbGRlci5ISDptbScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX193cmFwcGVyX19lZGl0SW5QbGFjZVwiICpuZ0lmPVwidHlwZSA9PT0gJ2VkaXQnXCIgKGNsaWNrKT1cIm9wZW5DYWxlbmRhcigpXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX193cmFwcGVyX19lZGl0SW5QbGFjZV9faWNvblwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhbCBmYS1jYWxlbmRhci1hbHRcIj48L2k+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX3dyYXBwZXJfX2VkaXRJblBsYWNlX19kYXRlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX3dyYXBwZXJfX2lucHV0X190aW1lXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkYXRlU2VsZWN0ZWRcIiBAb3BhY2l0eUFuaW1hdGlvbj57eyBkYXRlU2VsZWN0ZWQgfCBkYXRlOiAnZGQvTU0veXl5eSBISDptbScgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwbGFjZWhvbGRlci1kYXRlXCIgKm5nSWY9XCIhZGF0ZVNlbGVjdGVkXCIgQG9wYWNpdHlBbmltYXRpb24+e3sgJ3dhYy5EYXRlLlBsYWNlSG9sZGVyLmRkL01NL3l5eXlfSEg6bW0nIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX3dyYXBwZXJfX3NlbGVjdFwiICpuZ0lmPVwidHlwZSA9PT0gJ3NlbGVjdCdcIiAoY2xpY2spPVwib3BlbkNhbGVuZGFyKClcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX3dyYXBwZXJfX3NlbGVjdF9faWNvblwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhbCBmYS1jYWxlbmRhci1hbHRcIj48L2k+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX3dyYXBwZXJfX3NlbGVjdF9fZGF0ZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRhdGVTZWxlY3RlZFwiIEBvcGFjaXR5QW5pbWF0aW9uPnt7IGRhdGVTZWxlY3RlZCB8IGRhdGU6ICdkZC9NTS95eXl5IEhIOm1tJyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwbGFjZWhvbGRlci1kYXRlXCIgKm5nSWY9XCIhZGF0ZVNlbGVjdGVkXCIgQG9wYWNpdHlBbmltYXRpb24+e3sgJ3dhYy5EYXRlLlBsYWNlSG9sZGVyLmRkL01NL3l5eXlfSEg6bW0nIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2Fic29sdXRlXCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICB0b3A6IHBvc2l0aW9uID09PSAndG9wJyxcclxuICAgICAgICAgIGJvdHRvbTogcG9zaXRpb24gPT09ICdib3R0b20nLFxyXG4gICAgICAgICAgbGVmdDogcG9zaXRpb24gPT09ICdsZWZ0JyxcclxuICAgICAgICAgIHJpZ2h0OiBwb3NpdGlvbiA9PT0gJ3JpZ2h0JyxcclxuICAgICAgICAgICdyaWdodC10b3AnOiBwb3NpdGlvbiA9PT0gJ3JpZ2h0LXRvcCcsXHJcbiAgICAgICAgICAncmlnaHQtYm90dG9tJzogcG9zaXRpb24gPT09ICdyaWdodC1ib3R0b20nLFxyXG4gICAgICAgICAgJ2xlZnQtdG9wJzogcG9zaXRpb24gPT09ICdsZWZ0LXRvcCcsXHJcbiAgICAgICAgICAnbGVmdC1ib3R0b20nOiBwb3NpdGlvbiA9PT0gJ2xlZnQtYm90dG9tJyxcclxuICAgICAgICAgICd3aXRoLXRpbWUnOiB0eXBlRGF0ZSA9PT0gJ2RhdGV0aW1lLWxvY2FsJyB8fCB0eXBlRGF0ZSA9PT0gJ2RhdGV0aW1lJ1xyXG4gICAgICAgIH1cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG53Yi1kYXRlLXBpY2tlciAjZGF0ZVBpY2tlciAoY2hhbmdlKT1cIm9uQ2hhbmdlRGF0ZSgkZXZlbnQpXCIgW29wdGlvbnNdPVwib3B0aW9uc1wiPlxyXG4gICAgICAgICAgPGlucHV0IFtud2JEYXRlcGlja2VyU3RhcnRdPVwiZGF0ZVBpY2tlclwiIHR5cGU9XCJ0ZXh0XCIgW253YkRhdGVUeXBlXT1cIidkYXRlJ1wiIFt2YWx1ZV09XCJkYXRlU2VsZWN0ZWQ/LnRvSVNPU3RyaW5nKClcIiAvPlxyXG4gICAgICAgIDwvbndiLWRhdGUtcGlja2VyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2Fic29sdXRlX190aW1lXCIgKm5nSWY9XCJ0eXBlRGF0ZSA9PT0gJ2RhdGV0aW1lLWxvY2FsJyB8fCB0eXBlRGF0ZSA9PT0gJ2RhdGV0aW1lJ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndhYy1jYWxlbmRhcl9fYWJzb2x1dGVfX3RpbWVfX3dyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndhYy1jYWxlbmRhcl9fYWJzb2x1dGVfX3RpbWVfX3dyYXBwZXJfX2hvdXJzXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndhYy1jYWxlbmRhcl9fYWJzb2x1dGVfX3RpbWVfX3dyYXBwZXJfX2hvdXJzX19sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwid2FjLWNhbGVuZGFyX19hYnNvbHV0ZV9fdGltZV9fd3JhcHBlcl9faG91cnNfX2J0blwiIChjbGljayk9XCJpbmNyZW1lbnRIb3VycygkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXBsdXNcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2Fic29sdXRlX190aW1lX193cmFwcGVyX19ob3Vyc19fYnRuXCIgKGNsaWNrKT1cImRlY3JlbWVudEhvdXJzKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtbWludXNcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX19hYnNvbHV0ZV9fdGltZV9fd3JhcHBlcl9faG91cnNfX3JpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgI2hvdXJzIHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJjYWxlbmRhckhvdXJzXCIgW3dhY09ubHlOdW1iZXJdPVwidHJ1ZVwiLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2Fic29sdXRlX190aW1lX193cmFwcGVyX19taW51dGVzXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndhYy1jYWxlbmRhcl9fYWJzb2x1dGVfX3RpbWVfX3dyYXBwZXJfX21pbnV0ZXNfX2xlZnRcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCAjbWludXRlcyB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwiY2FsZW5kYXJNaW51dGVzXCIgW3dhY09ubHlOdW1iZXJdPVwidHJ1ZVwiLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX19hYnNvbHV0ZV9fdGltZV9fd3JhcHBlcl9fbWludXRlc19fcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2Fic29sdXRlX190aW1lX193cmFwcGVyX19taW51dGVzX19idG5cIiAoY2xpY2spPVwiaW5jcmVtZW50TWludXRlcygkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXBsdXNcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2Fic29sdXRlX190aW1lX193cmFwcGVyX19taW51dGVzX19idG5cIiAoY2xpY2spPVwiZGVjcmVtZW50c01pbnV0ZXMoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1taW51c1wiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvd2FjLW9wdGlvbmFsLWRpc2FibGUtY29udGFpbmVyPlxyXG4gIDxwIGNsYXNzPVwid2FjLWNhbGVuZGFyX19lbmRMYWJlbFwiICpuZ0lmPVwidHlwZSA9PT0gJ2VkaXQnXCI+e3sgZW5kTGFiZWwgfX08L3A+XHJcbjwvZGl2PlxyXG4iXX0=