@codetectonics/mantle 0.0.2 → 0.0.3

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 (272) hide show
  1. package/README.md +10 -49
  2. package/bundles/codetectonics-mantle.umd.js +6907 -0
  3. package/bundles/codetectonics-mantle.umd.js.map +1 -0
  4. package/esm2015/codetectonics-mantle.js +5 -0
  5. package/esm2015/lib/components/dashboard/containers/dynamic-dashboard-container/dynamic-dashboard-container.component.js +24 -0
  6. package/esm2015/lib/components/dashboard/containers/plain-dashboard-container/plain-dashboard-container.component.js +35 -0
  7. package/esm2015/lib/components/dashboard/dashboard-card/dashboard-card.component.js +133 -0
  8. package/esm2015/lib/components/dashboard/dashboard-card-search-menu/dashboard-card-search-menu.component.js +55 -0
  9. package/esm2015/lib/components/dashboard/dynamic-dashboard/dynamic-dashboard.component.js +23 -0
  10. package/esm2015/lib/components/dashboard/sections/dashboard-section/dashboard-section.component.js +71 -0
  11. package/esm2015/lib/components/dashboard/widgets/dashboard-info-card/dashboard-info-card.component.js +26 -0
  12. package/esm2015/lib/components/dashboard/widgets/dashboard-table/dashboard-table-datasource.js +30 -0
  13. package/esm2015/lib/components/dashboard/widgets/dashboard-table/dashboard-table.component.js +58 -0
  14. package/esm2015/lib/components/dashboard/widgets/dynamic-chart/dynamic-chart.component.js +85 -0
  15. package/esm2015/lib/components/dashboard/widgets/dynamic-widget-display/dynamic-widget-display.component.js +29 -0
  16. package/esm2015/lib/components/details/containers/accordion-details-container/accordion-details-container.component.js +26 -0
  17. package/esm2015/lib/components/details/containers/dynamic-details-container/dynamic-details-container.component.js +25 -0
  18. package/esm2015/lib/components/details/containers/plain-details-container/plain-details-container.component.js +25 -0
  19. package/esm2015/lib/components/details/dialog-details/dialog-details.component.js +77 -0
  20. package/esm2015/lib/components/details/dialog-nested-details/dialog-nested-details.component.js +40 -0
  21. package/esm2015/lib/components/details/dynamic-details/dynamic-details.component.js +23 -0
  22. package/esm2015/lib/components/details/fields/actions-attribute-display/actions-attribute-display.component.js +27 -0
  23. package/esm2015/lib/components/details/fields/chip-attribute-display/chip-attribute-display.component.js +40 -0
  24. package/esm2015/lib/components/details/fields/dynamic-attribute-display/dynamic-attribute-display.component.js +46 -0
  25. package/esm2015/lib/components/details/fields/file-attribute-display/file-attribute-display.component.js +37 -0
  26. package/esm2015/lib/components/details/fields/image-attribute-display/image-attribute-display.component.js +36 -0
  27. package/esm2015/lib/components/details/fields/link-attribute-display/link-attribute-display.component.js +30 -0
  28. package/esm2015/lib/components/details/fields/markdown-attribute-display/markdown-attribute-display.component.js +21 -0
  29. package/esm2015/lib/components/details/fields/thumbnail-display/thumbnail-display.component.js +33 -0
  30. package/esm2015/lib/components/details/sections/dynamic-details-section/dynamic-details-section.component.js +42 -0
  31. package/esm2015/lib/components/details/sections/grid-details-section/grid-details-section.component.js +53 -0
  32. package/esm2015/lib/components/details/sections/markdown-details-section/markdown-details-section.component.js +19 -0
  33. package/esm2015/lib/components/details/sections/table-details-section/table-details-section.component.js +37 -0
  34. package/esm2015/lib/components/form/containers/accordion-form-container/accordion-form-container.component.js +29 -0
  35. package/esm2015/lib/components/form/containers/dynamic-form-container/dynamic-form-container.component.js +28 -0
  36. package/esm2015/lib/components/form/containers/plain-form-container/plain-form-container.component.js +28 -0
  37. package/esm2015/lib/components/form/dialog-form/dialog-form.component.js +91 -0
  38. package/esm2015/lib/components/form/dialog-nested-form/dialog-nested-form.component.js +57 -0
  39. package/esm2015/lib/components/form/dynamic-form/dynamic-form.component.js +52 -0
  40. package/esm2015/lib/components/form/fields/autocomplete-input/autocomplete-input.component.js +69 -0
  41. package/esm2015/lib/components/form/fields/chip-input/chip-input.component.js +84 -0
  42. package/esm2015/lib/components/form/fields/datepicker/datepicker.component.js +91 -0
  43. package/esm2015/lib/components/form/fields/datetimepicker/datetimepicker.component.js +92 -0
  44. package/esm2015/lib/components/form/fields/dropdown/dropdown.component.js +73 -0
  45. package/esm2015/lib/components/form/fields/dynamic-form-field/dynamic-form-field.component.js +37 -0
  46. package/esm2015/lib/components/form/fields/filepicker/filepicker.component.js +97 -0
  47. package/esm2015/lib/components/form/fields/image-cropper/image-cropper.component.js +52 -0
  48. package/esm2015/lib/components/form/fields/imagepicker/imagepicker.component.js +139 -0
  49. package/esm2015/lib/components/form/fields/markdown-input/markdown-input.component.js +53 -0
  50. package/esm2015/lib/components/form/fields/number-input/number-input.component.js +91 -0
  51. package/esm2015/lib/components/form/fields/password-input/password-input.component.js +58 -0
  52. package/esm2015/lib/components/form/fields/text-input/text-input.component.js +55 -0
  53. package/esm2015/lib/components/form/fields/textarea/textarea.component.js +58 -0
  54. package/esm2015/lib/components/form/sections/dynamic-form-section/dynamic-form-section.component.js +47 -0
  55. package/esm2015/lib/components/form/sections/grid-form-section/grid-form-section.component.js +69 -0
  56. package/esm2015/lib/components/form/sections/table-form-section/table-form-section.component.js +107 -0
  57. package/esm2015/lib/components/layout-editor/containers/accordion-layout-editor-container/accordion-layout-editor-container.component.js +24 -0
  58. package/esm2015/lib/components/layout-editor/containers/dynamic-layout-editor-container/dynamic-layout-editor-container.component.js +23 -0
  59. package/esm2015/lib/components/layout-editor/containers/plain-layout-editor-container/plain-layout-editor-container.component.js +24 -0
  60. package/esm2015/lib/components/layout-editor/dynamic-layout-editor/dynamic-layout-editor.component.js +23 -0
  61. package/esm2015/lib/components/layout-editor/elements/dynamic-layout-editor-element/dynamic-layout-editor-element.component.js +38 -0
  62. package/esm2015/lib/components/layout-editor/elements/layout-editor-field-element/layout-editor-field-element.component.js +76 -0
  63. package/esm2015/lib/components/layout-editor/elements/layout-editor-table-column-element/layout-editor-table-column-element.component.js +76 -0
  64. package/esm2015/lib/components/layout-editor/elements/layout-editor-widget-element/layout-editor-widget-element.component.js +19 -0
  65. package/esm2015/lib/components/layout-editor/sections/dashboard-layout-editor-section/dashboard-layout-editor-section.component.js +21 -0
  66. package/esm2015/lib/components/layout-editor/sections/dynamic-layout-editor-section/dynamic-layout-editor-section.component.js +25 -0
  67. package/esm2015/lib/components/layout-editor/sections/grid-layout-editor-section/grid-layout-editor-section.component.js +102 -0
  68. package/esm2015/lib/components/layout-editor/sections/markdown-layout-editor-section/markdown-layout-editor-section.component.js +19 -0
  69. package/esm2015/lib/components/layout-editor/sections/table-layout-editor-section/table-layout-editor-section.component.js +74 -0
  70. package/esm2015/lib/components/navigation/nav-tree/nav-tree.component.js +65 -0
  71. package/esm2015/lib/components/navigation/reroute/reroute.component.js +28 -0
  72. package/esm2015/lib/components/pages/dashboard-page/dashboard-page.component.js +34 -0
  73. package/esm2015/lib/components/pages/detail-page/detail-page.component.js +101 -0
  74. package/esm2015/lib/components/pages/documents-page/documents-page.component.js +109 -0
  75. package/esm2015/lib/components/pages/export-page/export-page.component.js +65 -0
  76. package/esm2015/lib/components/pages/form-page/form-page.component.js +133 -0
  77. package/esm2015/lib/components/pages/layout-editor-page/layout-editor-page.component.js +72 -0
  78. package/esm2015/lib/components/pages/list-page/list-page-datasource.js +62 -0
  79. package/esm2015/lib/components/pages/list-page/list-page.component.js +159 -0
  80. package/esm2015/lib/components/pages/tabbed-page/tabbed-page.component.js +35 -0
  81. package/esm2015/lib/components/titles/content-title/content-title.component.js +23 -0
  82. package/esm2015/lib/components/titles/page-title/page-title.component.js +28 -0
  83. package/esm2015/lib/components/titles/section-title/section-title.component.js +18 -0
  84. package/esm2015/lib/components/widgets/delete-confirmation-dialog/delete-confirmation-dialog.component.js +36 -0
  85. package/esm2015/lib/components/widgets/dynamic-table/dynamic-table-datasource.js +89 -0
  86. package/esm2015/lib/components/widgets/dynamic-table/dynamic-table.component.js +67 -0
  87. package/esm2015/lib/components/widgets/file-preview-dialog/file-preview-dialog.component.js +42 -0
  88. package/esm2015/lib/components/widgets/loader/loader.component.js +21 -0
  89. package/esm2015/lib/components/widgets/save-confirmation-dialog/save-confirmation-dialog.component.js +35 -0
  90. package/esm2015/lib/components/widgets/search-panel/search-panel.component.js +67 -0
  91. package/esm2015/lib/components/widgets/snackbar/snackbar.component.js +42 -0
  92. package/esm2015/lib/config/charts/column-chart.data.js +38 -0
  93. package/esm2015/lib/config/charts/gantt-chart.data.js +18 -0
  94. package/esm2015/lib/config/charts/pie-chart.data.js +21 -0
  95. package/esm2015/lib/config/charts/progress-bar-chart.data.js +50 -0
  96. package/esm2015/lib/config/charts/spline-chart.data.js +24 -0
  97. package/esm2015/lib/data-structures/dynamic-layout.structure.js +2 -0
  98. package/esm2015/lib/data-structures/file-attachment.structure.js +2 -0
  99. package/esm2015/lib/directives/click-stop-propagation.directive.js +19 -0
  100. package/esm2015/lib/directives/file-dropzone.directive.js +53 -0
  101. package/esm2015/lib/guards/feature.guard.js +42 -0
  102. package/esm2015/lib/guards/password-check.guard.js +21 -0
  103. package/esm2015/lib/guards/session.guard.js +21 -0
  104. package/esm2015/lib/mantle.module.js +518 -0
  105. package/esm2015/lib/material.module.js +290 -0
  106. package/esm2015/lib/models/screen-size-map.model.js +9 -0
  107. package/esm2015/lib/pipes/dynamic.pipe.js +45 -0
  108. package/esm2015/lib/pipes/secure-image.pipe.js +35 -0
  109. package/esm2015/lib/services/adapters/web-api-crud.adapter.js +22 -0
  110. package/esm2015/lib/services/adapters/websocket.adapter.js +2 -0
  111. package/esm2015/lib/services/announcement.service.js +43 -0
  112. package/esm2015/lib/services/array.service.js +82 -0
  113. package/esm2015/lib/services/chart.service.js +45 -0
  114. package/esm2015/lib/services/confirmation.service.js +45 -0
  115. package/esm2015/lib/services/current-user.service.js +120 -0
  116. package/esm2015/lib/services/dynamic-form.service.js +59 -0
  117. package/esm2015/lib/services/feature-config.service.js +240 -0
  118. package/esm2015/lib/services/interfaces/authorisable-feature.service.js +2 -0
  119. package/esm2015/lib/services/interfaces/dashboard-page.service.js +2 -0
  120. package/esm2015/lib/services/interfaces/dashboard-widget.service.js +2 -0
  121. package/esm2015/lib/services/interfaces/detail-page.service.js +2 -0
  122. package/esm2015/lib/services/interfaces/export-page.service.js +2 -0
  123. package/esm2015/lib/services/interfaces/form-page.service.js +2 -0
  124. package/esm2015/lib/services/interfaces/layout-editor-page.service.js +2 -0
  125. package/esm2015/lib/services/interfaces/list-page.service.js +2 -0
  126. package/esm2015/lib/services/interfaces/nav-tabs.service.js +2 -0
  127. package/esm2015/lib/services/interfaces/reroute.service.js +2 -0
  128. package/esm2015/lib/services/object.service.js +69 -0
  129. package/esm2015/lib/services/password-check.service.js +93 -0
  130. package/esm2015/lib/services/screen-size.service.js +41 -0
  131. package/esm2015/lib/services/web-api.service.js +99 -0
  132. package/esm2015/lib/services/websocket.service.js +58 -0
  133. package/esm2015/lib/tokens/environment.token.js +3 -0
  134. package/esm2015/public-api.js +133 -0
  135. package/fesm2015/codetectonics-mantle.js +5940 -0
  136. package/fesm2015/codetectonics-mantle.js.map +1 -0
  137. package/lib/components/dashboard/containers/dynamic-dashboard-container/dynamic-dashboard-container.component.d.ts +11 -0
  138. package/lib/components/dashboard/containers/plain-dashboard-container/plain-dashboard-container.component.d.ts +14 -0
  139. package/lib/components/dashboard/dashboard-card/dashboard-card.component.d.ts +41 -0
  140. package/lib/components/dashboard/dashboard-card-search-menu/dashboard-card-search-menu.component.d.ts +20 -0
  141. package/lib/components/dashboard/dynamic-dashboard/dynamic-dashboard.component.d.ts +10 -0
  142. package/lib/components/dashboard/sections/dashboard-section/dashboard-section.component.d.ts +27 -0
  143. package/lib/components/dashboard/widgets/dashboard-info-card/dashboard-info-card.component.d.ts +8 -0
  144. package/lib/components/dashboard/widgets/dashboard-table/dashboard-table-datasource.d.ts +22 -0
  145. package/lib/components/dashboard/widgets/dashboard-table/dashboard-table.component.d.ts +28 -0
  146. package/lib/components/dashboard/widgets/dynamic-chart/dynamic-chart.component.d.ts +20 -0
  147. package/lib/components/dashboard/widgets/dynamic-widget-display/dynamic-widget-display.component.d.ts +9 -0
  148. package/lib/components/details/containers/accordion-details-container/accordion-details-container.component.d.ts +11 -0
  149. package/lib/components/details/containers/dynamic-details-container/dynamic-details-container.component.d.ts +11 -0
  150. package/lib/components/details/containers/plain-details-container/plain-details-container.component.d.ts +11 -0
  151. package/lib/components/details/dialog-details/dialog-details.component.d.ts +36 -0
  152. package/lib/components/details/dialog-nested-details/dialog-nested-details.component.d.ts +22 -0
  153. package/lib/components/details/dynamic-details/dynamic-details.component.d.ts +10 -0
  154. package/lib/components/details/fields/actions-attribute-display/actions-attribute-display.component.d.ts +7 -0
  155. package/lib/components/details/fields/chip-attribute-display/chip-attribute-display.component.d.ts +9 -0
  156. package/lib/components/details/fields/dynamic-attribute-display/dynamic-attribute-display.component.d.ts +15 -0
  157. package/lib/components/details/fields/file-attribute-display/file-attribute-display.component.d.ts +12 -0
  158. package/lib/components/details/fields/image-attribute-display/image-attribute-display.component.d.ts +12 -0
  159. package/lib/components/details/fields/link-attribute-display/link-attribute-display.component.d.ts +10 -0
  160. package/lib/components/details/fields/markdown-attribute-display/markdown-attribute-display.component.d.ts +6 -0
  161. package/lib/components/details/fields/thumbnail-display/thumbnail-display.component.d.ts +10 -0
  162. package/lib/components/details/sections/dynamic-details-section/dynamic-details-section.component.d.ts +17 -0
  163. package/lib/components/details/sections/grid-details-section/grid-details-section.component.d.ts +17 -0
  164. package/lib/components/details/sections/markdown-details-section/markdown-details-section.component.d.ts +7 -0
  165. package/lib/components/details/sections/table-details-section/table-details-section.component.d.ts +12 -0
  166. package/lib/components/form/containers/accordion-form-container/accordion-form-container.component.d.ts +13 -0
  167. package/lib/components/form/containers/dynamic-form-container/dynamic-form-container.component.d.ts +13 -0
  168. package/lib/components/form/containers/plain-form-container/plain-form-container.component.d.ts +13 -0
  169. package/lib/components/form/dialog-form/dialog-form.component.d.ts +39 -0
  170. package/lib/components/form/dialog-nested-form/dialog-nested-form.component.d.ts +31 -0
  171. package/lib/components/form/dynamic-form/dynamic-form.component.d.ts +21 -0
  172. package/lib/components/form/fields/autocomplete-input/autocomplete-input.component.d.ts +32 -0
  173. package/lib/components/form/fields/chip-input/chip-input.component.d.ts +27 -0
  174. package/lib/components/form/fields/datepicker/datepicker.component.d.ts +24 -0
  175. package/lib/components/form/fields/datetimepicker/datetimepicker.component.d.ts +24 -0
  176. package/lib/components/form/fields/dropdown/dropdown.component.d.ts +31 -0
  177. package/lib/components/form/fields/dynamic-form-field/dynamic-form-field.component.d.ts +10 -0
  178. package/lib/components/form/fields/filepicker/filepicker.component.d.ts +27 -0
  179. package/lib/components/form/fields/image-cropper/image-cropper.component.d.ts +27 -0
  180. package/lib/components/form/fields/imagepicker/imagepicker.component.d.ts +41 -0
  181. package/lib/components/form/fields/markdown-input/markdown-input.component.d.ts +17 -0
  182. package/lib/components/form/fields/number-input/number-input.component.d.ts +27 -0
  183. package/lib/components/form/fields/password-input/password-input.component.d.ts +19 -0
  184. package/lib/components/form/fields/text-input/text-input.component.d.ts +18 -0
  185. package/lib/components/form/fields/textarea/textarea.component.d.ts +19 -0
  186. package/lib/components/form/sections/dynamic-form-section/dynamic-form-section.component.d.ts +19 -0
  187. package/lib/components/form/sections/grid-form-section/grid-form-section.component.d.ts +23 -0
  188. package/lib/components/form/sections/table-form-section/table-form-section.component.d.ts +22 -0
  189. package/lib/components/layout-editor/containers/accordion-layout-editor-container/accordion-layout-editor-container.component.d.ts +10 -0
  190. package/lib/components/layout-editor/containers/dynamic-layout-editor-container/dynamic-layout-editor-container.component.d.ts +10 -0
  191. package/lib/components/layout-editor/containers/plain-layout-editor-container/plain-layout-editor-container.component.d.ts +10 -0
  192. package/lib/components/layout-editor/dynamic-layout-editor/dynamic-layout-editor.component.d.ts +10 -0
  193. package/lib/components/layout-editor/elements/dynamic-layout-editor-element/dynamic-layout-editor-element.component.d.ts +13 -0
  194. package/lib/components/layout-editor/elements/layout-editor-field-element/layout-editor-field-element.component.d.ts +14 -0
  195. package/lib/components/layout-editor/elements/layout-editor-table-column-element/layout-editor-table-column-element.component.d.ts +14 -0
  196. package/lib/components/layout-editor/elements/layout-editor-widget-element/layout-editor-widget-element.component.d.ts +8 -0
  197. package/lib/components/layout-editor/sections/dashboard-layout-editor-section/dashboard-layout-editor-section.component.d.ts +8 -0
  198. package/lib/components/layout-editor/sections/dynamic-layout-editor-section/dynamic-layout-editor-section.component.d.ts +10 -0
  199. package/lib/components/layout-editor/sections/grid-layout-editor-section/grid-layout-editor-section.component.d.ts +21 -0
  200. package/lib/components/layout-editor/sections/markdown-layout-editor-section/markdown-layout-editor-section.component.d.ts +7 -0
  201. package/lib/components/layout-editor/sections/table-layout-editor-section/table-layout-editor-section.component.d.ts +14 -0
  202. package/lib/components/navigation/nav-tree/nav-tree.component.d.ts +46 -0
  203. package/lib/components/navigation/reroute/reroute.component.d.ts +14 -0
  204. package/lib/components/pages/dashboard-page/dashboard-page.component.d.ts +16 -0
  205. package/lib/components/pages/detail-page/detail-page.component.d.ts +35 -0
  206. package/lib/components/pages/documents-page/documents-page.component.d.ts +41 -0
  207. package/lib/components/pages/export-page/export-page.component.d.ts +29 -0
  208. package/lib/components/pages/form-page/form-page.component.d.ts +37 -0
  209. package/lib/components/pages/layout-editor-page/layout-editor-page.component.d.ts +26 -0
  210. package/lib/components/pages/list-page/list-page-datasource.d.ts +32 -0
  211. package/lib/components/pages/list-page/list-page.component.d.ts +46 -0
  212. package/lib/components/pages/tabbed-page/tabbed-page.component.d.ts +16 -0
  213. package/lib/components/titles/content-title/content-title.component.d.ts +8 -0
  214. package/lib/components/titles/page-title/page-title.component.d.ts +10 -0
  215. package/lib/components/titles/section-title/section-title.component.d.ts +7 -0
  216. package/lib/components/widgets/delete-confirmation-dialog/delete-confirmation-dialog.component.d.ts +20 -0
  217. package/lib/components/widgets/dynamic-table/dynamic-table-datasource.d.ts +40 -0
  218. package/lib/components/widgets/dynamic-table/dynamic-table.component.d.ts +30 -0
  219. package/lib/components/widgets/file-preview-dialog/file-preview-dialog.component.d.ts +17 -0
  220. package/lib/components/widgets/loader/loader.component.d.ts +6 -0
  221. package/lib/components/widgets/save-confirmation-dialog/save-confirmation-dialog.component.d.ts +16 -0
  222. package/lib/components/widgets/search-panel/search-panel.component.d.ts +21 -0
  223. package/lib/components/widgets/snackbar/snackbar.component.d.ts +11 -0
  224. package/lib/config/charts/column-chart.data.d.ts +37 -0
  225. package/lib/config/charts/gantt-chart.data.d.ts +17 -0
  226. package/lib/config/charts/pie-chart.data.d.ts +20 -0
  227. package/lib/config/charts/progress-bar-chart.data.d.ts +49 -0
  228. package/lib/config/charts/spline-chart.data.d.ts +23 -0
  229. package/lib/data-structures/dynamic-layout.structure.d.ts +161 -0
  230. package/lib/data-structures/file-attachment.structure.d.ts +6 -0
  231. package/lib/directives/click-stop-propagation.directive.d.ts +6 -0
  232. package/lib/directives/file-dropzone.directive.d.ts +12 -0
  233. package/lib/guards/feature.guard.d.ts +15 -0
  234. package/lib/guards/password-check.guard.d.ts +11 -0
  235. package/lib/guards/session.guard.d.ts +10 -0
  236. package/lib/mantle.module.d.ts +106 -0
  237. package/lib/material.module.d.ts +34 -0
  238. package/lib/models/screen-size-map.model.d.ts +13 -0
  239. package/lib/pipes/dynamic.pipe.d.ts +12 -0
  240. package/lib/pipes/secure-image.pipe.d.ts +11 -0
  241. package/lib/services/adapters/web-api-crud.adapter.d.ts +63 -0
  242. package/lib/services/adapters/websocket.adapter.d.ts +6 -0
  243. package/lib/services/announcement.service.d.ts +11 -0
  244. package/lib/services/array.service.d.ts +21 -0
  245. package/lib/services/chart.service.d.ts +14 -0
  246. package/lib/services/confirmation.service.d.ts +11 -0
  247. package/lib/services/current-user.service.d.ts +28 -0
  248. package/lib/services/dynamic-form.service.d.ts +30 -0
  249. package/lib/services/feature-config.service.d.ts +82 -0
  250. package/lib/services/interfaces/authorisable-feature.service.d.ts +5 -0
  251. package/lib/services/interfaces/dashboard-page.service.d.ts +13 -0
  252. package/lib/services/interfaces/dashboard-widget.service.d.ts +34 -0
  253. package/lib/services/interfaces/detail-page.service.d.ts +36 -0
  254. package/lib/services/interfaces/export-page.service.d.ts +6 -0
  255. package/lib/services/interfaces/form-page.service.d.ts +30 -0
  256. package/lib/services/interfaces/layout-editor-page.service.d.ts +14 -0
  257. package/lib/services/interfaces/list-page.service.d.ts +44 -0
  258. package/lib/services/interfaces/nav-tabs.service.d.ts +7 -0
  259. package/lib/services/interfaces/reroute.service.d.ts +3 -0
  260. package/lib/services/object.service.d.ts +11 -0
  261. package/lib/services/password-check.service.d.ts +21 -0
  262. package/lib/services/screen-size.service.d.ts +14 -0
  263. package/lib/services/web-api.service.d.ts +21 -0
  264. package/lib/services/websocket.service.d.ts +20 -0
  265. package/lib/tokens/environment.token.d.ts +2 -0
  266. package/package.json +34 -15
  267. package/public-api.d.ts +129 -2
  268. package/fesm2022/codetectonics-mantle.mjs +0 -42
  269. package/fesm2022/codetectonics-mantle.mjs.map +0 -1
  270. package/lib/mantle.component.d.ts +0 -5
  271. package/lib/mantle.service.d.ts +0 -6
  272. /package/{index.d.ts → codetectonics-mantle.d.ts} +0 -0
@@ -0,0 +1,139 @@
1
+ import { Component, ElementRef, forwardRef, Input, ViewChild } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { MatDialog } from '@angular/material/dialog';
4
+ import { ImageCropperComponent } from '../../../../components/form/fields/image-cropper/image-cropper.component';
5
+ import { WebApiService } from '../../../../services/web-api.service';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/material/dialog";
8
+ import * as i2 from "../../../../services/web-api.service";
9
+ import * as i3 from "@angular/material/form-field";
10
+ import * as i4 from "@angular/material/button";
11
+ import * as i5 from "@angular/material/icon";
12
+ import * as i6 from "@angular/material/progress-spinner";
13
+ import * as i7 from "@angular/material/input";
14
+ import * as i8 from "@angular/common";
15
+ import * as i9 from "../../../../directives/click-stop-propagation.directive";
16
+ export class ImagepickerComponent {
17
+ constructor(dialog, webApiService) {
18
+ this.dialog = dialog;
19
+ this.webApiService = webApiService;
20
+ this.defaultCropperConfig = {
21
+ maintainAspectRatio: true,
22
+ aspectRatio: 1,
23
+ resizeToWidth: 256,
24
+ uploadFormat: 'png'
25
+ };
26
+ this.cropperConfig = this.defaultCropperConfig;
27
+ this.onChange = (newValue) => { };
28
+ this.onTouched = () => { };
29
+ }
30
+ registerOnChange(fn) { this.onChange = fn; }
31
+ registerOnTouched(fn) { this.onTouched = fn; }
32
+ ngOnChanges() {
33
+ this.cropperConfig = Object.assign(Object.assign({}, this.defaultCropperConfig), this.options);
34
+ }
35
+ writeValue(newValue) {
36
+ this.currentAttachment = this.previousAttachment = newValue;
37
+ this.onChange(newValue);
38
+ }
39
+ onFileSelected(event) {
40
+ if (!event.target.files || !event.target.files[0])
41
+ return;
42
+ const file = event.target.files[0];
43
+ const dialogRef = this.dialog.open(ImageCropperComponent, {
44
+ data: {
45
+ imageChangedEvent: event,
46
+ maintainAspectRatio: this.cropperConfig.maintainAspectRatio,
47
+ aspectRatio: this.cropperConfig.aspectRatio,
48
+ resizeToWidth: this.cropperConfig.resizeToWidth,
49
+ format: this.cropperConfig.uploadFormat
50
+ }
51
+ });
52
+ dialogRef.afterClosed().subscribe((croppedImage) => {
53
+ this.onImageCropped(croppedImage, file.name);
54
+ });
55
+ }
56
+ onImageCropped(croppedImage, filename) {
57
+ if (!croppedImage) {
58
+ this.reset();
59
+ return;
60
+ }
61
+ filename = filename.split('.').slice(0, -1).join('.') + '.' + this.cropperConfig.uploadFormat;
62
+ let file = this.blobToFile(croppedImage, filename);
63
+ this.uploadInProgress = true;
64
+ this.webApiService.upload(file, (response) => {
65
+ this.currentAttachment = {
66
+ filename: filename,
67
+ source_url: '',
68
+ preview_url: '',
69
+ signed_id: response.signed_id
70
+ };
71
+ this.onChange(this.currentAttachment);
72
+ this.uploadInProgress = false;
73
+ }, (response) => {
74
+ this.reset();
75
+ this.error = 'Unable to upload file';
76
+ this.uploadInProgress = false;
77
+ });
78
+ }
79
+ clearAttachment() {
80
+ if (this.fileInput)
81
+ this.fileInput.nativeElement.value = '';
82
+ this.currentAttachment = {
83
+ filename: '',
84
+ source_url: '',
85
+ preview_url: '',
86
+ signed_id: null
87
+ };
88
+ this.onChange(this.currentAttachment);
89
+ }
90
+ reset() {
91
+ if (this.fileInput)
92
+ this.fileInput.nativeElement.value = '';
93
+ this.currentAttachment = this.previousAttachment;
94
+ this.onChange(undefined);
95
+ }
96
+ blobToFile(blob, filename) {
97
+ var blobData = blob;
98
+ blobData.lastModifiedDate = new Date();
99
+ blobData.name = filename;
100
+ return blob;
101
+ }
102
+ }
103
+ ImagepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ImagepickerComponent, deps: [{ token: i1.MatDialog }, { token: i2.WebApiService }], target: i0.ɵɵFactoryTarget.Component });
104
+ ImagepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ImagepickerComponent, selector: "mantle-imagepicker", inputs: { label: "label", options: "options", disable: "disable", required: "required", error: "error" }, providers: [
105
+ {
106
+ provide: NG_VALUE_ACCESSOR,
107
+ useExisting: forwardRef(() => ImagepickerComponent),
108
+ multi: true
109
+ }
110
+ ], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-form-field [class.mat-form-field-invalid]=\"error\">\n <mat-label>{{ label }}</mat-label>\n <input matInput\n type=\"text\"\n [attr.value]=\"currentAttachment?.filename\"\n (click)=\"fileInput.click()\"\n [required]=\"required\"\n [disabled]=\"disable\"\n autocomplete=\"off\">\n\n <button *ngIf=\"currentAttachment?.filename\" mat-icon-button matSuffix (click)=\"clearAttachment()\" [disabled]=\"disable\" click-stop-propagation>\n <mat-icon>close</mat-icon>\n </button>\n\n <button *ngIf=\"!uploadInProgress\" mat-icon-button matSuffix (click)=\"fileInput.click()\" [disabled]=\"disable\">\n <mat-icon>image</mat-icon>\n </button>\n\n <mat-spinner *ngIf=\"uploadInProgress\" matSuffix [diameter]=\"18\"></mat-spinner>\n\n <input #fileInput\n type=\"file\"\n accept=\"image/*\"\n hidden\n (change)=\"onFileSelected($event)\">\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n", styles: [""], components: [{ type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i3.MatLabel, selector: "mat-label" }, { type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.MatSuffix, selector: "[matSuffix]" }, { type: i9.ClickStopPropagationDirective, selector: "[click-stop-propagation]" }, { type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }] });
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ImagepickerComponent, decorators: [{
112
+ type: Component,
113
+ args: [{
114
+ selector: 'mantle-imagepicker',
115
+ templateUrl: './imagepicker.component.html',
116
+ styleUrls: ['./imagepicker.component.scss'],
117
+ providers: [
118
+ {
119
+ provide: NG_VALUE_ACCESSOR,
120
+ useExisting: forwardRef(() => ImagepickerComponent),
121
+ multi: true
122
+ }
123
+ ]
124
+ }]
125
+ }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.WebApiService }]; }, propDecorators: { fileInput: [{
126
+ type: ViewChild,
127
+ args: ['fileInput']
128
+ }], label: [{
129
+ type: Input
130
+ }], options: [{
131
+ type: Input
132
+ }], disable: [{
133
+ type: Input
134
+ }], required: [{
135
+ type: Input
136
+ }], error: [{
137
+ type: Input
138
+ }] } });
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2ZpZWxkcy9pbWFnZXBpY2tlci9pbWFnZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZmllbGRzL2ltYWdlcGlja2VyL2ltYWdlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9GLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDakgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7Ozs7OztBQW9CckUsTUFBTSxPQUFPLG9CQUFvQjtJQXNCL0IsWUFBb0IsTUFBaUIsRUFBVSxhQUE0QjtRQUF2RCxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFabkUseUJBQW9CLEdBQXdCO1lBQ2xELG1CQUFtQixFQUFFLElBQUk7WUFDekIsV0FBVyxFQUFFLENBQUM7WUFDZCxhQUFhLEVBQUUsR0FBRztZQUNsQixZQUFZLEVBQUUsS0FBSztTQUNwQixDQUFBO1FBQ00sa0JBQWEsR0FBd0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBUXRFLGFBQVEsR0FBRyxDQUFDLFFBQW9DLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztR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QVpoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFdBQVcsRUFBRSw4QkFBOEI7b0JBQzNDLFNBQVMsRUFBRSxDQUFDLDhCQUE4QixDQUFDO29CQUMzQyxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGOzRIQUd5QixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBRWIsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIElucHV0LCBPbkNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEZpbGVBdHRhY2htZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vZGF0YS1zdHJ1Y3R1cmVzL2ZpbGUtYXR0YWNobWVudC5zdHJ1Y3R1cmUnO1xuaW1wb3J0IHsgSW1hZ2VDcm9wcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy9mb3JtL2ZpZWxkcy9pbWFnZS1jcm9wcGVyL2ltYWdlLWNyb3BwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFdlYkFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy93ZWItYXBpLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlQ3JvcHBlck9wdGlvbnMge1xuICBtYWludGFpbkFzcGVjdFJhdGlvPzogYm9vbGVhbixcbiAgYXNwZWN0UmF0aW8/OiBudW1iZXIsXG4gIHJlc2l6ZVRvV2lkdGg/OiBudW1iZXIsXG4gIHVwbG9hZEZvcm1hdD86IHN0cmluZyB9XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hbnRsZS1pbWFnZXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ltYWdlcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW1hZ2VwaWNrZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VwaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzIHtcblxuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKSBmaWxlSW5wdXQhOiBFbGVtZW50UmVmO1xuXG4gIEBJbnB1dCgpIGxhYmVsITogc3RyaW5nO1xuICBASW5wdXQoKSBvcHRpb25zITogSW1hZ2VDcm9wcGVyT3B0aW9ucztcbiAgQElucHV0KCkgZGlzYWJsZSE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHJlcXVpcmVkITogYm9vbGVhbjtcbiAgQElucHV0KCkgZXJyb3I6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGRlZmF1bHRDcm9wcGVyQ29uZmlnOiBJbWFnZUNyb3BwZXJPcHRpb25zID0ge1xuICAgIG1haW50YWluQXNwZWN0UmF0aW86IHRydWUsXG4gICAgYXNwZWN0UmF0aW86IDEsXG4gICAgcmVzaXplVG9XaWR0aDogMjU2LFxuICAgIHVwbG9hZEZvcm1hdDogJ3BuZydcbiAgfVxuICBwdWJsaWMgY3JvcHBlckNvbmZpZzogSW1hZ2VDcm9wcGVyT3B0aW9ucyA9IHRoaXMuZGVmYXVsdENyb3BwZXJDb25maWc7XG5cbiAgcHVibGljIHByZXZpb3VzQXR0YWNobWVudDogRmlsZUF0dGFjaG1lbnQgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBjdXJyZW50QXR0YWNobWVudDogRmlsZUF0dGFjaG1lbnQgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyB1cGxvYWRJblByb2dyZXNzITogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLCBwcml2YXRlIHdlYkFwaVNlcnZpY2U6IFdlYkFwaVNlcnZpY2UpIHsgfVxuXG4gIG9uQ2hhbmdlID0gKG5ld1ZhbHVlOiBGaWxlQXR0YWNobWVudCB8IHVuZGVmaW5lZCkgPT4geyB9O1xuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAobmV3VmFsdWU6IEZpbGVBdHRhY2htZW50IHwgdW5kZWZpbmVkKSA9PiB2b2lkKTogdm9pZCB7IHRoaXMub25DaGFuZ2UgPSBmbjsgfVxuXG4gIG9uVG91Y2hlZCA9ICgpID0+IHsgfTtcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHsgdGhpcy5vblRvdWNoZWQgPSBmbjsgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuY3JvcHBlckNvbmZpZyA9IHsgLi4udGhpcy5kZWZhdWx0Q3JvcHBlckNvbmZpZywgLi4udGhpcy5vcHRpb25zIH07XG4gIH1cblxuICB3cml0ZVZhbHVlKG5ld1ZhbHVlOiBGaWxlQXR0YWNobWVudCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudEF0dGFjaG1lbnQgPSB0aGlzLnByZXZpb3VzQXR0YWNobWVudCA9IG5ld1ZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UobmV3VmFsdWUpO1xuICB9XG5cbiAgb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xuICAgIGlmICghZXZlbnQudGFyZ2V0LmZpbGVzIHx8ICFldmVudC50YXJnZXQuZmlsZXNbMF0pIHJldHVybjtcblxuICAgIGNvbnN0IGZpbGUgPSBldmVudC50YXJnZXQuZmlsZXNbMF07XG5cbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEltYWdlQ3JvcHBlckNvbXBvbmVudCwge1xuICAgICAgZGF0YToge1xuICAgICAgICBpbWFnZUNoYW5nZWRFdmVudDogZXZlbnQsXG4gICAgICAgIG1haW50YWluQXNwZWN0UmF0aW86IHRoaXMuY3JvcHBlckNvbmZpZy5tYWludGFpbkFzcGVjdFJhdGlvLFxuICAgICAgICBhc3BlY3RSYXRpbzogdGhpcy5jcm9wcGVyQ29uZmlnLmFzcGVjdFJhdGlvLFxuICAgICAgICByZXNpemVUb1dpZHRoOiB0aGlzLmNyb3BwZXJDb25maWcucmVzaXplVG9XaWR0aCxcbiAgICAgICAgZm9ybWF0OiB0aGlzLmNyb3BwZXJDb25maWcudXBsb2FkRm9ybWF0XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoXG4gICAgICAoY3JvcHBlZEltYWdlOiBCbG9iKSA9PiB7XG4gICAgICAgIHRoaXMub25JbWFnZUNyb3BwZWQoY3JvcHBlZEltYWdlLCBmaWxlLm5hbWUpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBvbkltYWdlQ3JvcHBlZChjcm9wcGVkSW1hZ2U6IEJsb2IsIGZpbGVuYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAoIWNyb3BwZWRJbWFnZSkge1xuICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZpbGVuYW1lID0gZmlsZW5hbWUuc3BsaXQoJy4nKS5zbGljZSgwLCAtMSkuam9pbignLicpICsgJy4nICsgdGhpcy5jcm9wcGVyQ29uZmlnLnVwbG9hZEZvcm1hdDtcbiAgICBsZXQgZmlsZTogRmlsZSA9IHRoaXMuYmxvYlRvRmlsZShjcm9wcGVkSW1hZ2UsIGZpbGVuYW1lKTtcblxuICAgIHRoaXMudXBsb2FkSW5Qcm9ncmVzcyA9IHRydWU7XG5cbiAgICB0aGlzLndlYkFwaVNlcnZpY2UudXBsb2FkKGZpbGUsXG4gICAgICAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmN1cnJlbnRBdHRhY2htZW50ID0ge1xuICAgICAgICAgIGZpbGVuYW1lOiBmaWxlbmFtZSxcbiAgICAgICAgICBzb3VyY2VfdXJsOiAnJyxcbiAgICAgICAgICBwcmV2aWV3X3VybDogJycsXG4gICAgICAgICAgc2lnbmVkX2lkOiByZXNwb25zZS5zaWduZWRfaWRcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuY3VycmVudEF0dGFjaG1lbnQpO1xuICAgICAgICB0aGlzLnVwbG9hZEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgICAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSAnVW5hYmxlIHRvIHVwbG9hZCBmaWxlJztcbiAgICAgICAgdGhpcy51cGxvYWRJblByb2dyZXNzID0gZmFsc2U7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGNsZWFyQXR0YWNobWVudCgpIHtcbiAgICBpZiAodGhpcy5maWxlSW5wdXQpIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICB0aGlzLmN1cnJlbnRBdHRhY2htZW50ID0ge1xuICAgICAgZmlsZW5hbWU6ICcnLFxuICAgICAgc291cmNlX3VybDogJycsXG4gICAgICBwcmV2aWV3X3VybDogJycsXG4gICAgICBzaWduZWRfaWQ6IG51bGxcbiAgICB9XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLmN1cnJlbnRBdHRhY2htZW50KTtcbiAgfVxuXG4gIHJlc2V0KCkge1xuICAgIGlmICh0aGlzLmZpbGVJbnB1dCkgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMuY3VycmVudEF0dGFjaG1lbnQgPSB0aGlzLnByZXZpb3VzQXR0YWNobWVudDtcbiAgICB0aGlzLm9uQ2hhbmdlKHVuZGVmaW5lZCk7XG4gIH1cblxuICBibG9iVG9GaWxlKGJsb2I6IEJsb2IsIGZpbGVuYW1lOiBzdHJpbmcpOiBGaWxlIHtcbiAgICB2YXIgYmxvYkRhdGE6IGFueSA9IGJsb2I7XG5cbiAgICBibG9iRGF0YS5sYXN0TW9kaWZpZWREYXRlID0gbmV3IERhdGUoKTtcbiAgICBibG9iRGF0YS5uYW1lID0gZmlsZW5hbWU7XG5cbiAgICByZXR1cm4gPEZpbGU+YmxvYjtcbiAgfVxuXG59XG4iLCI8bWF0LWZvcm0tZmllbGQgW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWludmFsaWRdPVwiZXJyb3JcIj5cbiAgPG1hdC1sYWJlbD57eyBsYWJlbCB9fTwvbWF0LWxhYmVsPlxuICA8aW5wdXQgbWF0SW5wdXRcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIFthdHRyLnZhbHVlXT1cImN1cnJlbnRBdHRhY2htZW50Py5maWxlbmFtZVwiXG4gICAgICAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlXCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxuXG4gIDxidXR0b24gKm5nSWY9XCJjdXJyZW50QXR0YWNobWVudD8uZmlsZW5hbWVcIiBtYXQtaWNvbi1idXR0b24gbWF0U3VmZml4IChjbGljayk9XCJjbGVhckF0dGFjaG1lbnQoKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlXCIgY2xpY2stc3RvcC1wcm9wYWdhdGlvbj5cbiAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cblxuICA8YnV0dG9uICpuZ0lmPVwiIXVwbG9hZEluUHJvZ3Jlc3NcIiBtYXQtaWNvbi1idXR0b24gbWF0U3VmZml4IChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlXCI+XG4gICAgPG1hdC1pY29uPmltYWdlPC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG5cbiAgPG1hdC1zcGlubmVyICpuZ0lmPVwidXBsb2FkSW5Qcm9ncmVzc1wiIG1hdFN1ZmZpeCBbZGlhbWV0ZXJdPVwiMThcIj48L21hdC1zcGlubmVyPlxuXG4gIDxpbnB1dCAjZmlsZUlucHV0XG4gICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICBhY2NlcHQ9XCJpbWFnZS8qXCJcbiAgICAgIGhpZGRlblxuICAgICAgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCI+XG5cbiAgPG1hdC1oaW50ICpuZ0lmPVwiZXJyb3JcIiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj57eyBlcnJvciB9fTwvbWF0LWhpbnQ+XG48L21hdC1mb3JtLWZpZWxkPlxuIl19
@@ -0,0 +1,53 @@
1
+ import { Component, Input, forwardRef } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/form-field";
5
+ import * as i2 from "ngx-markdown";
6
+ import * as i3 from "@angular/common";
7
+ import * as i4 from "@angular/material/input";
8
+ import * as i5 from "@angular/forms";
9
+ export class MarkdownInputComponent {
10
+ constructor() {
11
+ this.value = null;
12
+ this.onChange = (newValue) => { };
13
+ this.onTouched = () => { };
14
+ }
15
+ registerOnChange(fn) { this.onChange = fn; }
16
+ registerOnTouched(fn) { this.onTouched = fn; }
17
+ writeValue(newValue) {
18
+ this.value = newValue;
19
+ this.onChange(newValue);
20
+ }
21
+ }
22
+ MarkdownInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MarkdownInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
+ MarkdownInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MarkdownInputComponent, selector: "mantle-markdown-input", inputs: { label: "label", disable: "disable", required: "required", error: "error" }, providers: [
24
+ {
25
+ provide: NG_VALUE_ACCESSOR,
26
+ useExisting: forwardRef(() => MarkdownInputComponent),
27
+ multi: true
28
+ }
29
+ ], ngImport: i0, template: "<div class=\"markdown-input-disabled\" *ngIf=\"disable\">\n <mat-form-field [class.mat-form-field-invalid]=\"error\">\n <mat-label>{{ label }}</mat-label>\n\n <markdown ngPreserveWhitespaces>\n {{ value }}\n </markdown>\n\n <input matInput\n type=\"text\"\n [(ngModel)]=\"value\"\n [required]=\"required\"\n [disabled]=true\n [hidden]=true\n autocomplete=\"off\">\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n </mat-form-field>\n</div>\n", styles: [".markdown-input-disabled ::ng-deep .mat-form-field-underline{display:none}\n"], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i2.MarkdownComponent, selector: "markdown, [markdown]", inputs: ["data", "src", "emoji", "katex", "katexOptions", "lineHighlight", "line", "lineOffset", "lineNumbers", "start"], outputs: ["error", "load", "ready"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatLabel, selector: "mat-label" }, { type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }] });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MarkdownInputComponent, decorators: [{
31
+ type: Component,
32
+ args: [{
33
+ selector: 'mantle-markdown-input',
34
+ templateUrl: './markdown-input.component.html',
35
+ styleUrls: ['./markdown-input.component.scss'],
36
+ providers: [
37
+ {
38
+ provide: NG_VALUE_ACCESSOR,
39
+ useExisting: forwardRef(() => MarkdownInputComponent),
40
+ multi: true
41
+ }
42
+ ]
43
+ }]
44
+ }], ctorParameters: function () { return []; }, propDecorators: { label: [{
45
+ type: Input
46
+ }], disable: [{
47
+ type: Input
48
+ }], required: [{
49
+ type: Input
50
+ }], error: [{
51
+ type: Input
52
+ }] } });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24taW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2ZpZWxkcy9tYXJrZG93bi1pbnB1dC9tYXJrZG93bi1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZmllbGRzL21hcmtkb3duLWlucHV0L21hcmtkb3duLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFjekUsTUFBTSxPQUFPLHNCQUFzQjtJQVNqQztRQUZPLFVBQUssR0FBUSxJQUFJLENBQUM7UUFJekIsYUFBUSxHQUFHLENBQUMsUUFBZ0IsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBR3JDLGNBQVMsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFMTixDQUFDO0lBR2pCLGdCQUFnQixDQUFDLEVBQThCLElBQVUsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRzlFLGlCQUFpQixDQUFDLEVBQWMsSUFBVSxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFaEUsVUFBVSxDQUFDLFFBQWE7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQixDQUFDOztvSEFwQlUsc0JBQXNCO3dHQUF0QixzQkFBc0Isc0lBUnRCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsc0JBQXNCLENBQUM7WUFDckQsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLDBCQ2JILHdoQkFtQkE7NEZESmEsc0JBQXNCO2tCQVpsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFdBQVcsRUFBRSxpQ0FBaUM7b0JBQzlDLFNBQVMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDO29CQUM5QyxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUM7NEJBQ3JELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGOzBFQUdVLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hbnRsZS1tYXJrZG93bi1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXJrZG93bi1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21hcmtkb3duLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTWFya2Rvd25JbnB1dENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBNYXJrZG93bklucHV0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIEBJbnB1dCgpIGxhYmVsITogc3RyaW5nO1xuICBASW5wdXQoKSBkaXNhYmxlITogYm9vbGVhbjtcbiAgQElucHV0KCkgcmVxdWlyZWQhOiBib29sZWFuO1xuICBASW5wdXQoKSBlcnJvcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyB2YWx1ZTogYW55ID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG9uQ2hhbmdlID0gKG5ld1ZhbHVlOiBzdHJpbmcpID0+IHsgfTtcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKG5ld1ZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHsgdGhpcy5vbkNoYW5nZSA9IGZuOyB9XG5cbiAgb25Ub3VjaGVkID0gKCkgPT4geyB9O1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQgeyB0aGlzLm9uVG91Y2hlZCA9IGZuOyB9XG5cbiAgd3JpdGVWYWx1ZShuZXdWYWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UobmV3VmFsdWUpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWFya2Rvd24taW5wdXQtZGlzYWJsZWRcIiAqbmdJZj1cImRpc2FibGVcIj5cbiAgPG1hdC1mb3JtLWZpZWxkIFtjbGFzcy5tYXQtZm9ybS1maWVsZC1pbnZhbGlkXT1cImVycm9yXCI+XG4gICAgPG1hdC1sYWJlbD57eyBsYWJlbCB9fTwvbWF0LWxhYmVsPlxuXG4gICAgPG1hcmtkb3duIG5nUHJlc2VydmVXaGl0ZXNwYWNlcz5cbiAgICAgIHt7IHZhbHVlIH19XG4gICAgPC9tYXJrZG93bj5cblxuICAgIDxpbnB1dCBtYXRJbnB1dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICBbZGlzYWJsZWRdPXRydWVcbiAgICAgICAgW2hpZGRlbl09dHJ1ZVxuICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIj5cblxuICAgIDxtYXQtaGludCAqbmdJZj1cImVycm9yXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+e3sgZXJyb3IgfX08L21hdC1oaW50PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,91 @@
1
+ import { Component, Input, forwardRef } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/form-field";
5
+ import * as i2 from "@angular/material/input";
6
+ import * as i3 from "@angular/forms";
7
+ import * as i4 from "@angular/common";
8
+ export class NumberInputComponent {
9
+ constructor() {
10
+ this.value = null;
11
+ this.onChange = (newValue) => { };
12
+ this.onTouched = () => { };
13
+ }
14
+ registerOnChange(fn) { this.onChange = fn; }
15
+ registerOnTouched(fn) { this.onTouched = fn; }
16
+ ngOnChanges() { }
17
+ writeValue(newValue) {
18
+ this.value = newValue;
19
+ this.onChange(newValue);
20
+ }
21
+ onValueChanged(event) {
22
+ this.onChange(this.value);
23
+ }
24
+ validate(control) {
25
+ if (control.value === null) {
26
+ this.errorMessage = this.error;
27
+ return null;
28
+ }
29
+ let errors = {};
30
+ if (this.options.min && control.value < this.options.min)
31
+ errors.min = `must be greater than or equal to ${this.options.min}`;
32
+ if (this.options.max && control.value > this.options.max)
33
+ errors.max = `must be lower than or equal to ${this.options.max}`;
34
+ if (this.options.decimal_places) {
35
+ if (this.options.decimal_places == 0) {
36
+ if ((control.value - Math.floor(control.value)) !== 0)
37
+ errors.decimal_places = 'cannot be a decimal';
38
+ }
39
+ else {
40
+ if ((control.value - control.value.toFixed(2)) !== 0)
41
+ errors.decimal_places = `must have a maximum of ${this.options.decimal_places} decimal places`;
42
+ }
43
+ }
44
+ this.errorMessage = [...[this.error], ...Object.values(errors)].filter(item => { return !!item; }).join(', ');
45
+ return errors ? errors : null;
46
+ }
47
+ }
48
+ NumberInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NumberInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
49
+ NumberInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NumberInputComponent, selector: "mantle-number-input", inputs: { label: "label", options: "options", disable: "disable", required: "required", error: "error" }, providers: [
50
+ {
51
+ provide: NG_VALUE_ACCESSOR,
52
+ useExisting: forwardRef(() => NumberInputComponent),
53
+ multi: true
54
+ },
55
+ {
56
+ provide: NG_VALIDATORS,
57
+ useExisting: forwardRef(() => NumberInputComponent),
58
+ multi: true,
59
+ },
60
+ ], usesOnChanges: true, ngImport: i0, template: "<mat-form-field [class.mat-form-field-invalid]=\"errorMessage\">\n <mat-label>{{ label }}</mat-label>\n <input matInput\n type=\"number\"\n [(ngModel)]=\"value\"\n (keyup)=\"onValueChanged($event)\"\n (change)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n autocomplete=\"off\">\n\n <mat-hint *ngIf=\"errorMessage\" class=\"error-message\">{{ errorMessage }}</mat-hint>\n</mat-form-field>\n", styles: ["input{text-align:right}\n"], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }], directives: [{ type: i1.MatLabel, selector: "mat-label" }, { type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }] });
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NumberInputComponent, decorators: [{
62
+ type: Component,
63
+ args: [{
64
+ selector: 'mantle-number-input',
65
+ templateUrl: './number-input.component.html',
66
+ styleUrls: ['./number-input.component.scss'],
67
+ providers: [
68
+ {
69
+ provide: NG_VALUE_ACCESSOR,
70
+ useExisting: forwardRef(() => NumberInputComponent),
71
+ multi: true
72
+ },
73
+ {
74
+ provide: NG_VALIDATORS,
75
+ useExisting: forwardRef(() => NumberInputComponent),
76
+ multi: true,
77
+ },
78
+ ]
79
+ }]
80
+ }], ctorParameters: function () { return []; }, propDecorators: { label: [{
81
+ type: Input
82
+ }], options: [{
83
+ type: Input
84
+ }], disable: [{
85
+ type: Input
86
+ }], required: [{
87
+ type: Input
88
+ }], error: [{
89
+ type: Input
90
+ }] } });
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hbnRsZS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9maWVsZHMvbnVtYmVyLWlucHV0L251bWJlci1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZmllbGRzL251bWJlci1pbnB1dC9udW1iZXItaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBc0UsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQW1CdEksTUFBTSxPQUFPLG9CQUFvQjtJQVcvQjtRQUhPLFVBQUssR0FBUSxJQUFJLENBQUM7UUFLekIsYUFBUSxHQUFHLENBQUMsUUFBZ0IsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBR3JDLGNBQVMsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFMTixDQUFDO0lBR2pCLGdCQUFnQixDQUFDLEVBQThCLElBQVUsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRzlFLGlCQUFpQixDQUFDLEVBQWMsSUFBVSxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFaEUsV0FBVyxLQUFXLENBQUM7SUFFdkIsVUFBVSxDQUFDLFFBQWE7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVU7UUFDdkIsSUFB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QUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0Y7MEVBR1UsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uQ2hhbmdlcywgSW5wdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRvciwgVmFsaWRhdGlvbkVycm9ycywgTkdfVkFMVUVfQUNDRVNTT1IsIE5HX1ZBTElEQVRPUlMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hbnRsZS1udW1iZXItaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbnVtYmVyLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbnVtYmVyLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTnVtYmVySW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOdW1iZXJJbnB1dENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE51bWJlcklucHV0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSBsYWJlbCE6IHN0cmluZztcbiAgQElucHV0KCkgb3B0aW9ucyE6IHsgbWluOiBudW1iZXIsIG1heDogbnVtYmVyLCBkZWNpbWFsX3BsYWNlczogbnVtYmVyIH07XG4gIEBJbnB1dCgpIGRpc2FibGUhOiBib29sZWFuO1xuICBASW5wdXQoKSByZXF1aXJlZCE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGVycm9yOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIHZhbHVlOiBhbnkgPSBudWxsO1xuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBvbkNoYW5nZSA9IChuZXdWYWx1ZTogc3RyaW5nKSA9PiB7IH07XG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChuZXdWYWx1ZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7IHRoaXMub25DaGFuZ2UgPSBmbjsgfVxuXG4gIG9uVG91Y2hlZCA9ICgpID0+IHsgfTtcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHsgdGhpcy5vblRvdWNoZWQgPSBmbjsgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQgeyB9XG5cbiAgd3JpdGVWYWx1ZShuZXdWYWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UobmV3VmFsdWUpO1xuICB9XG5cbiAgb25WYWx1ZUNoYW5nZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gIH1cblxuICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgaWYgKGNvbnRyb2wudmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5lcnJvcjtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGxldCBlcnJvcnM6IGFueSA9IHt9O1xuICAgIGlmICh0aGlzLm9wdGlvbnMubWluICYmIGNvbnRyb2wudmFsdWUgPCB0aGlzLm9wdGlvbnMubWluKSBlcnJvcnMubWluID0gYG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICR7dGhpcy5vcHRpb25zLm1pbn1gO1xuICAgIGlmICh0aGlzLm9wdGlvbnMubWF4ICYmIGNvbnRyb2wudmFsdWUgPiB0aGlzLm9wdGlvbnMubWF4KSBlcnJvcnMubWF4ID0gYG11c3QgYmUgbG93ZXIgdGhhbiBvciBlcXVhbCB0byAke3RoaXMub3B0aW9ucy5tYXh9YDtcbiAgICBpZiAodGhpcy5vcHRpb25zLmRlY2ltYWxfcGxhY2VzKSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLmRlY2ltYWxfcGxhY2VzID09IDApIHtcbiAgICAgICAgaWYgKChjb250cm9sLnZhbHVlIC0gTWF0aC5mbG9vcihjb250cm9sLnZhbHVlKSkgIT09IDApIGVycm9ycy5kZWNpbWFsX3BsYWNlcyA9ICdjYW5ub3QgYmUgYSBkZWNpbWFsJztcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBpZiAoKGNvbnRyb2wudmFsdWUgLSBjb250cm9sLnZhbHVlLnRvRml4ZWQoMikpICE9PSAwKSBlcnJvcnMuZGVjaW1hbF9wbGFjZXMgPSBgbXVzdCBoYXZlIGEgbWF4aW11bSBvZiAke3RoaXMub3B0aW9ucy5kZWNpbWFsX3BsYWNlc30gZGVjaW1hbCBwbGFjZXNgO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gWy4uLlt0aGlzLmVycm9yXSwgLi4uT2JqZWN0LnZhbHVlcyhlcnJvcnMpXS5maWx0ZXIoaXRlbSA9PiB7IHJldHVybiAhIWl0ZW0gfSkuam9pbignLCAnKTtcblxuICAgIHJldHVybiBlcnJvcnMgPyBlcnJvcnMgOiBudWxsO1xuICB9XG5cbn1cbiIsIjxtYXQtZm9ybS1maWVsZCBbY2xhc3MubWF0LWZvcm0tZmllbGQtaW52YWxpZF09XCJlcnJvck1lc3NhZ2VcIj5cbiAgPG1hdC1sYWJlbD57eyBsYWJlbCB9fTwvbWF0LWxhYmVsPlxuICA8aW5wdXQgbWF0SW5wdXRcbiAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICAoa2V5dXApPVwib25WYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAoY2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlXCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxuXG4gIDxtYXQtaGludCAqbmdJZj1cImVycm9yTWVzc2FnZVwiIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPnt7IGVycm9yTWVzc2FnZSB9fTwvbWF0LWhpbnQ+XG48L21hdC1mb3JtLWZpZWxkPlxuIl19
@@ -0,0 +1,58 @@
1
+ import { Component, Input, forwardRef } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/form-field";
5
+ import * as i2 from "@angular/material/button";
6
+ import * as i3 from "@angular/material/icon";
7
+ import * as i4 from "@angular/material/input";
8
+ import * as i5 from "@angular/forms";
9
+ import * as i6 from "@angular/common";
10
+ export class PasswordInputComponent {
11
+ constructor() {
12
+ this.value = null;
13
+ this.hide = true;
14
+ this.onChange = (newValue) => { };
15
+ this.onTouched = () => { };
16
+ }
17
+ registerOnChange(fn) { this.onChange = fn; }
18
+ registerOnTouched(fn) { this.onTouched = fn; }
19
+ writeValue(newValue) {
20
+ this.value = newValue;
21
+ this.onChange(newValue);
22
+ }
23
+ onValueChanged(event) {
24
+ this.onChange(this.value);
25
+ }
26
+ }
27
+ PasswordInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PasswordInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
28
+ PasswordInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PasswordInputComponent, selector: "mantle-password-input", inputs: { label: "label", disable: "disable", required: "required", error: "error" }, providers: [
29
+ {
30
+ provide: NG_VALUE_ACCESSOR,
31
+ useExisting: forwardRef(() => PasswordInputComponent),
32
+ multi: true
33
+ }
34
+ ], ngImport: i0, template: "<mat-form-field [class.mat-form-field-invalid]=\"error\">\n <mat-label>{{ label }}</mat-label>\n <input matInput\n [type]=\"hide ? 'password' : 'text'\"\n [(ngModel)]=\"value\"\n (keyup)=\"onValueChanged($event)\"\n (change)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n autocomplete=\"off\">\n\n <button mat-icon-button matSuffix type=\"button\" (click)=\"hide = !hide\">\n <mat-icon>{{hide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n", styles: [""], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i1.MatLabel, selector: "mat-label" }, { type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1.MatSuffix, selector: "[matSuffix]" }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }] });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PasswordInputComponent, decorators: [{
36
+ type: Component,
37
+ args: [{
38
+ selector: 'mantle-password-input',
39
+ templateUrl: './password-input.component.html',
40
+ styleUrls: ['./password-input.component.scss'],
41
+ providers: [
42
+ {
43
+ provide: NG_VALUE_ACCESSOR,
44
+ useExisting: forwardRef(() => PasswordInputComponent),
45
+ multi: true
46
+ }
47
+ ]
48
+ }]
49
+ }], ctorParameters: function () { return []; }, propDecorators: { label: [{
50
+ type: Input
51
+ }], disable: [{
52
+ type: Input
53
+ }], required: [{
54
+ type: Input
55
+ }], error: [{
56
+ type: Input
57
+ }] } });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2ZpZWxkcy9wYXNzd29yZC1pbnB1dC9wYXNzd29yZC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZmllbGRzL3Bhc3N3b3JkLWlucHV0L3Bhc3N3b3JkLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBY3pFLE1BQU0sT0FBTyxzQkFBc0I7SUFVakM7UUFITyxVQUFLLEdBQVEsSUFBSSxDQUFDO1FBQ2xCLFNBQUksR0FBWSxJQUFJLENBQUM7UUFJNUIsYUFBUSxHQUFHLENBQUMsUUFBZ0IsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBR3JDLGNBQVMsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFMTixDQUFDO0lBR2pCLGdCQUFnQixDQUFDLEVBQThCLElBQVUsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRzlFLGlCQUFpQixDQUFDLEVBQWMsSUFBVSxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFaEUsVUFBVSxDQUFDLFFBQWE7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7b0hBekJVLHNCQUFzQjt3R0FBdEIsc0JBQXNCLHNJQVJ0QjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO1lBQ3JELEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRiwwQkNiSCxtbkJBaUJBOzRGREZhLHNCQUFzQjtrQkFabEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxXQUFXLEVBQUUsaUNBQWlDO29CQUM5QyxTQUFTLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztvQkFDOUMsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDOzRCQUNyRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjswRUFHVSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYW50bGUtcGFzc3dvcmQtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYXNzd29yZC1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBhc3N3b3JkSW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUGFzc3dvcmRJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICBASW5wdXQoKSBsYWJlbCE6IHN0cmluZztcbiAgQElucHV0KCkgZGlzYWJsZSE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHJlcXVpcmVkITogYm9vbGVhbjtcbiAgQElucHV0KCkgZXJyb3I6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgdmFsdWU6IGFueSA9IG51bGw7XG4gIHB1YmxpYyBoaWRlOiBib29sZWFuID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG9uQ2hhbmdlID0gKG5ld1ZhbHVlOiBzdHJpbmcpID0+IHsgfTtcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKG5ld1ZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHsgdGhpcy5vbkNoYW5nZSA9IGZuOyB9XG5cbiAgb25Ub3VjaGVkID0gKCkgPT4geyB9O1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQgeyB0aGlzLm9uVG91Y2hlZCA9IGZuOyB9XG5cbiAgd3JpdGVWYWx1ZShuZXdWYWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UobmV3VmFsdWUpO1xuICB9XG5cbiAgb25WYWx1ZUNoYW5nZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gIH1cbn1cbiIsIjxtYXQtZm9ybS1maWVsZCBbY2xhc3MubWF0LWZvcm0tZmllbGQtaW52YWxpZF09XCJlcnJvclwiPlxuICA8bWF0LWxhYmVsPnt7IGxhYmVsIH19PC9tYXQtbGFiZWw+XG4gIDxpbnB1dCBtYXRJbnB1dFxuICAgICAgW3R5cGVdPVwiaGlkZSA/ICdwYXNzd29yZCcgOiAndGV4dCdcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICAoa2V5dXApPVwib25WYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAoY2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlXCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxuXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIG1hdFN1ZmZpeCB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImhpZGUgPSAhaGlkZVwiPlxuICAgIDxtYXQtaWNvbj57e2hpZGUgPyAndmlzaWJpbGl0eV9vZmYnIDogJ3Zpc2liaWxpdHknfX08L21hdC1pY29uPlxuICA8L2J1dHRvbj5cblxuICA8bWF0LWhpbnQgKm5nSWY9XCJlcnJvclwiIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPnt7IGVycm9yIH19PC9tYXQtaGludD5cbjwvbWF0LWZvcm0tZmllbGQ+XG4iXX0=
@@ -0,0 +1,55 @@
1
+ import { Component, Input, forwardRef } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/form-field";
5
+ import * as i2 from "@angular/material/input";
6
+ import * as i3 from "@angular/forms";
7
+ import * as i4 from "@angular/common";
8
+ export class TextInputComponent {
9
+ constructor() {
10
+ this.value = null;
11
+ this.onChange = (newValue) => { };
12
+ this.onTouched = () => { };
13
+ }
14
+ registerOnChange(fn) { this.onChange = fn; }
15
+ registerOnTouched(fn) { this.onTouched = fn; }
16
+ writeValue(newValue) {
17
+ this.value = newValue;
18
+ this.onChange(newValue);
19
+ }
20
+ onValueChanged(event) {
21
+ this.onChange(this.value);
22
+ }
23
+ }
24
+ TextInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TextInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
25
+ TextInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TextInputComponent, selector: "mantle-text-input", inputs: { label: "label", disable: "disable", required: "required", error: "error" }, providers: [
26
+ {
27
+ provide: NG_VALUE_ACCESSOR,
28
+ useExisting: forwardRef(() => TextInputComponent),
29
+ multi: true
30
+ }
31
+ ], ngImport: i0, template: "<mat-form-field [class.mat-form-field-invalid]=\"error\">\n <mat-label>{{ label }}</mat-label>\n <input matInput\n type=\"text\"\n [(ngModel)]=\"value\"\n (keyup)=\"onValueChanged($event)\"\n (change)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n autocomplete=\"off\">\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n", styles: [""], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }], directives: [{ type: i1.MatLabel, selector: "mat-label" }, { type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }] });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TextInputComponent, decorators: [{
33
+ type: Component,
34
+ args: [{
35
+ selector: 'mantle-text-input',
36
+ templateUrl: './text-input.component.html',
37
+ styleUrls: ['./text-input.component.scss'],
38
+ providers: [
39
+ {
40
+ provide: NG_VALUE_ACCESSOR,
41
+ useExisting: forwardRef(() => TextInputComponent),
42
+ multi: true
43
+ }
44
+ ]
45
+ }]
46
+ }], ctorParameters: function () { return []; }, propDecorators: { label: [{
47
+ type: Input
48
+ }], disable: [{
49
+ type: Input
50
+ }], required: [{
51
+ type: Input
52
+ }], error: [{
53
+ type: Input
54
+ }] } });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZmllbGRzL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZmllbGRzL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFjekUsTUFBTSxPQUFPLGtCQUFrQjtJQVM3QjtRQUZPLFVBQUssR0FBUSxJQUFJLENBQUM7UUFJekIsYUFBUSxHQUFHLENBQUMsUUFBZ0IsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBR3JDLGNBQVMsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFMTixDQUFDO0lBR2pCLGdCQUFnQixDQUFDLEVBQThCLElBQVUsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRzlFLGlCQUFpQixDQUFDLEVBQWMsSUFBVSxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFaEUsVUFBVSxDQUFDLFFBQWE7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7Z0hBeEJVLGtCQUFrQjtvR0FBbEIsa0JBQWtCLGtJQVJsQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDO1lBQ2pELEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRiwwQkNiSCx3YkFhQTs0RkRFYSxrQkFBa0I7a0JBWjlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsV0FBVyxFQUFFLDZCQUE2QjtvQkFDMUMsU0FBUyxFQUFFLENBQUMsNkJBQTZCLENBQUM7b0JBQzFDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQzs0QkFDakQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0Y7MEVBR1UsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFudGxlLXRleHQtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RleHQtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUZXh0SW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVGV4dElucHV0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIEBJbnB1dCgpIGxhYmVsITogc3RyaW5nO1xuICBASW5wdXQoKSBkaXNhYmxlITogYm9vbGVhbjtcbiAgQElucHV0KCkgcmVxdWlyZWQhOiBib29sZWFuO1xuICBASW5wdXQoKSBlcnJvcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyB2YWx1ZTogYW55ID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG9uQ2hhbmdlID0gKG5ld1ZhbHVlOiBzdHJpbmcpID0+IHsgfTtcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKG5ld1ZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHsgdGhpcy5vbkNoYW5nZSA9IGZuOyB9XG5cbiAgb25Ub3VjaGVkID0gKCkgPT4geyB9O1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQgeyB0aGlzLm9uVG91Y2hlZCA9IGZuOyB9XG5cbiAgd3JpdGVWYWx1ZShuZXdWYWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UobmV3VmFsdWUpO1xuICB9XG5cbiAgb25WYWx1ZUNoYW5nZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gIH1cbn1cbiIsIjxtYXQtZm9ybS1maWVsZCBbY2xhc3MubWF0LWZvcm0tZmllbGQtaW52YWxpZF09XCJlcnJvclwiPlxuICA8bWF0LWxhYmVsPnt7IGxhYmVsIH19PC9tYXQtbGFiZWw+XG4gIDxpbnB1dCBtYXRJbnB1dFxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICAoa2V5dXApPVwib25WYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAoY2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlXCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxuXG4gIDxtYXQtaGludCAqbmdJZj1cImVycm9yXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+e3sgZXJyb3IgfX08L21hdC1oaW50PlxuPC9tYXQtZm9ybS1maWVsZD5cbiJdfQ==
@@ -0,0 +1,58 @@
1
+ import { Component, Input, forwardRef } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/form-field";
5
+ import * as i2 from "@angular/material/input";
6
+ import * as i3 from "@angular/forms";
7
+ import * as i4 from "@angular/common";
8
+ export class TextareaComponent {
9
+ constructor() {
10
+ this.rows = 1;
11
+ this.value = null;
12
+ this.onChange = (newValue) => { };
13
+ this.onTouched = () => { };
14
+ }
15
+ registerOnChange(fn) { this.onChange = fn; }
16
+ registerOnTouched(fn) { this.onTouched = fn; }
17
+ writeValue(newValue) {
18
+ this.value = newValue;
19
+ this.onChange(newValue);
20
+ }
21
+ onValueChanged(event) {
22
+ this.onChange(this.value);
23
+ }
24
+ }
25
+ TextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
26
+ TextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TextareaComponent, selector: "mantle-textarea", inputs: { label: "label", rows: "rows", disable: "disable", required: "required", error: "error" }, providers: [
27
+ {
28
+ provide: NG_VALUE_ACCESSOR,
29
+ useExisting: forwardRef(() => TextareaComponent),
30
+ multi: true
31
+ }
32
+ ], ngImport: i0, template: "<mat-form-field [class.mat-form-field-invalid]=\"error\">\n <mat-label>{{ label }}</mat-label>\n <textarea matInput\n [rows]=\"rows\"\n [(ngModel)]=\"value\"\n (keyup)=\"onValueChanged($event)\"\n (change)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n autocomplete=\"off\">\n </textarea>\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n", styles: ["textarea{resize:none}\n"], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }], directives: [{ type: i1.MatLabel, selector: "mat-label" }, { type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }] });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TextareaComponent, decorators: [{
34
+ type: Component,
35
+ args: [{
36
+ selector: 'mantle-textarea',
37
+ templateUrl: './textarea.component.html',
38
+ styleUrls: ['./textarea.component.scss'],
39
+ providers: [
40
+ {
41
+ provide: NG_VALUE_ACCESSOR,
42
+ useExisting: forwardRef(() => TextareaComponent),
43
+ multi: true
44
+ }
45
+ ]
46
+ }]
47
+ }], ctorParameters: function () { return []; }, propDecorators: { label: [{
48
+ type: Input
49
+ }], rows: [{
50
+ type: Input
51
+ }], disable: [{
52
+ type: Input
53
+ }], required: [{
54
+ type: Input
55
+ }], error: [{
56
+ type: Input
57
+ }] } });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2ZpZWxkcy90ZXh0YXJlYS90ZXh0YXJlYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZmllbGRzL3RleHRhcmVhL3RleHRhcmVhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQWN6RSxNQUFNLE9BQU8saUJBQWlCO0lBVTVCO1FBUFMsU0FBSSxHQUFXLENBQUMsQ0FBQztRQUtuQixVQUFLLEdBQVEsSUFBSSxDQUFDO1FBSXpCLGFBQVEsR0FBRyxDQUFDLFFBQWdCLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUdyQyxjQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBTE4sQ0FBQztJQUdqQixnQkFBZ0IsQ0FBQyxFQUE4QixJQUFVLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUc5RSxpQkFBaUIsQ0FBQyxFQUFjLElBQVUsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRWhFLFVBQVUsQ0FBQyxRQUFhO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7OytHQXpCVSxpQkFBaUI7bUdBQWpCLGlCQUFpQiw4SUFSakI7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztZQUNoRCxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsMEJDYkgsNGNBY0E7NEZEQ2EsaUJBQWlCO2tCQVo3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFdBQVcsRUFBRSwyQkFBMkI7b0JBQ3hDLFNBQVMsRUFBRSxDQUFDLDJCQUEyQixDQUFDO29CQUN4QyxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUM7NEJBQ2hELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGOzBFQUdVLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYW50bGUtdGV4dGFyZWEnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90ZXh0YXJlYS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRleHRhcmVhQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFRleHRhcmVhQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIEBJbnB1dCgpIGxhYmVsITogc3RyaW5nO1xuICBASW5wdXQoKSByb3dzOiBudW1iZXIgPSAxO1xuICBASW5wdXQoKSBkaXNhYmxlITogYm9vbGVhbjtcbiAgQElucHV0KCkgcmVxdWlyZWQhOiBib29sZWFuO1xuICBASW5wdXQoKSBlcnJvcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyB2YWx1ZTogYW55ID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG9uQ2hhbmdlID0gKG5ld1ZhbHVlOiBzdHJpbmcpID0+IHsgfTtcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKG5ld1ZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHsgdGhpcy5vbkNoYW5nZSA9IGZuOyB9XG5cbiAgb25Ub3VjaGVkID0gKCkgPT4geyB9O1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQgeyB0aGlzLm9uVG91Y2hlZCA9IGZuOyB9XG5cbiAgd3JpdGVWYWx1ZShuZXdWYWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UobmV3VmFsdWUpO1xuICB9XG5cbiAgb25WYWx1ZUNoYW5nZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gIH1cbn1cbiIsIjxtYXQtZm9ybS1maWVsZCBbY2xhc3MubWF0LWZvcm0tZmllbGQtaW52YWxpZF09XCJlcnJvclwiPlxuICA8bWF0LWxhYmVsPnt7IGxhYmVsIH19PC9tYXQtbGFiZWw+XG4gIDx0ZXh0YXJlYSBtYXRJbnB1dFxuICAgICAgW3Jvd3NdPVwicm93c1wiXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgIChrZXl1cCk9XCJvblZhbHVlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgIChjaGFuZ2UpPVwib25WYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVcIlxuICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCI+XG4gIDwvdGV4dGFyZWE+XG5cbiAgPG1hdC1oaW50ICpuZ0lmPVwiZXJyb3JcIiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj57eyBlcnJvciB9fTwvbWF0LWhpbnQ+XG48L21hdC1mb3JtLWZpZWxkPlxuIl19
@@ -0,0 +1,47 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { FormGroup } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../grid-form-section/grid-form-section.component";
5
+ import * as i2 from "../table-form-section/table-form-section.component";
6
+ import * as i3 from "../../../details/sections/grid-details-section/grid-details-section.component";
7
+ import * as i4 from "../../../details/sections/table-details-section/table-details-section.component";
8
+ import * as i5 from "../../../dashboard/sections/dashboard-section/dashboard-section.component";
9
+ import * as i6 from "../../../details/sections/markdown-details-section/markdown-details-section.component";
10
+ import * as i7 from "@angular/common";
11
+ export class DynamicFormSectionComponent {
12
+ constructor() { }
13
+ asDynamicLayoutGridSection(section) {
14
+ return section;
15
+ }
16
+ asDynamicLayoutTableSection(section) {
17
+ return section;
18
+ }
19
+ asDynamicLayoutMarkdownSection(section) {
20
+ return section;
21
+ }
22
+ asDynamicLayoutDashboardSection(section) {
23
+ return section;
24
+ }
25
+ asDashboardPageService(formPageService) {
26
+ return formPageService;
27
+ }
28
+ }
29
+ DynamicFormSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicFormSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
30
+ DynamicFormSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicFormSectionComponent, selector: "mantle-dynamic-form-section", inputs: { formPageService: "formPageService", section: "section", content: "content", form: "form" }, ngImport: i0, template: "<ng-container *ngIf=\"section.writable\">\n <ng-container *ngTemplateOutlet=\"dynamicFormContent; context: { form: form, section: section, content: content };\"></ng-container>\n</ng-container>\n<ng-container *ngIf=\"!section.writable\">\n <ng-container *ngTemplateOutlet=\"dynamicDetailsContent; context: { section: section, content: content };\"></ng-container>\n</ng-container>\n\n<ng-template #dynamicFormContent let-form=\"form\" let-content=\"content\" let-section=\"section\">\n <ng-container [ngSwitch]=\"section.layout\">\n\n <ng-container *ngSwitchCase=\"'grid'\">\n <mantle-grid-form-section\n [section]=\"asDynamicLayoutGridSection(section)\"\n [form]=\"form\"\n [errors]=\"content.errors || {}\">\n </mantle-grid-form-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'table'\">\n <mantle-table-form-section\n [section]=\"asDynamicLayoutTableSection(section)\"\n [form]=\"form\">\n </mantle-table-form-section>\n </ng-container>\n\n </ng-container>\n</ng-template>\n\n<ng-template #dynamicDetailsContent let-content=\"content\" let-section=\"section\">\n <ng-container [ngSwitch]=\"section.layout\">\n\n <ng-container *ngSwitchCase=\"'grid'\">\n <mantle-grid-details-section\n [section]=\"asDynamicLayoutGridSection(section)\"\n [data]=\"content.data\">\n </mantle-grid-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'table'\">\n <mantle-table-details-section\n [section]=\"asDynamicLayoutTableSection(section)\"\n [data]=\"content.data\">\n </mantle-table-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'dashboard'\">\n <mantle-dashboard-section\n [slug]=\"section.slug\"\n [section]=\"asDynamicLayoutDashboardSection(section)\"\n [data]=\"content.data\"\n [dashboardPageService]=\"asDashboardPageService(formPageService)\">\n </mantle-dashboard-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'markdown'\">\n <mantle-markdown-details-section\n [section]=\"asDynamicLayoutMarkdownSection(section)\">\n </mantle-markdown-details-section>\n </ng-container>\n\n </ng-container>\n</ng-template>\n", styles: [""], components: [{ type: i1.GridFormSectionComponent, selector: "mantle-grid-form-section", inputs: ["title", "section", "form", "errors", "defaultRowHeight"] }, { type: i2.TableFormSectionComponent, selector: "mantle-table-form-section", inputs: ["title", "section", "form"] }, { type: i3.GridDetailsSectionComponent, selector: "mantle-grid-details-section", inputs: ["data", "section", "defaultRowHeight"] }, { type: i4.TableDetailsSectionComponent, selector: "mantle-table-details-section", inputs: ["data", "section"] }, { type: i5.DashboardSectionComponent, selector: "mantle-dashboard-section", inputs: ["dashboardPageService", "slug", "data", "section"] }, { type: i6.MarkdownDetailsSectionComponent, selector: "mantle-markdown-details-section", inputs: ["section"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }] });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicFormSectionComponent, decorators: [{
32
+ type: Component,
33
+ args: [{
34
+ selector: 'mantle-dynamic-form-section',
35
+ templateUrl: './dynamic-form-section.component.html',
36
+ styleUrls: ['./dynamic-form-section.component.scss']
37
+ }]
38
+ }], ctorParameters: function () { return []; }, propDecorators: { formPageService: [{
39
+ type: Input
40
+ }], section: [{
41
+ type: Input
42
+ }], content: [{
43
+ type: Input
44
+ }], form: [{
45
+ type: Input
46
+ }] } });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL3NlY3Rpb25zL2R5bmFtaWMtZm9ybS1zZWN0aW9uL2R5bmFtaWMtZm9ybS1zZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hbnRsZS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9zZWN0aW9ucy9keW5hbWljLWZvcm0tc2VjdGlvbi9keW5hbWljLWZvcm0tc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQWEzQyxNQUFNLE9BQU8sMkJBQTJCO0lBT3RDLGdCQUFnQixDQUFDO0lBRWpCLDBCQUEwQixDQUFDLE9BQVk7UUFDckMsT0FBTyxPQUFtQyxDQUFDO0lBQzdDLENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxPQUFZO1FBQ3RDLE9BQU8sT0FBb0MsQ0FBQztJQUM5QyxDQUFDO0lBRUQsOEJBQThCLENBQUMsT0FBWTtRQUN6QyxPQUFPLE9BQXVDLENBQUM7SUFDakQsQ0FBQztJQUVELCtCQUErQixDQUFDLE9BQVk7UUFDMUMsT0FBTyxPQUF3QyxDQUFDO0lBQ2xELENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxlQUFnQztRQUNyRCxPQUFPLGVBQWtELENBQUM7SUFDNUQsQ0FBQzs7eUhBM0JVLDJCQUEyQjs2R0FBM0IsMkJBQTJCLHlLQ2R4Qyxnd0VBOERBOzRGRGhEYSwyQkFBMkI7a0JBTHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDZCQUE2QjtvQkFDdkMsV0FBVyxFQUFFLHVDQUF1QztvQkFDcEQsU0FBUyxFQUFFLENBQUMsdUNBQXVDLENBQUM7aUJBQ3JEOzBFQUdVLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBEeW5hbWljRm9ybUNvbnRlbnQsIER5bmFtaWNMYXlvdXREYXNoYm9hcmRTZWN0aW9uLCBEeW5hbWljTGF5b3V0R3JpZFNlY3Rpb24sXG4gIER5bmFtaWNMYXlvdXRNYXJrZG93blNlY3Rpb24sIER5bmFtaWNMYXlvdXRTZWN0aW9uLCBEeW5hbWljTGF5b3V0VGFibGVTZWN0aW9uXG59IGZyb20gJy4uLy4uLy4uLy4uL2RhdGEtc3RydWN0dXJlcy9keW5hbWljLWxheW91dC5zdHJ1Y3R1cmUnO1xuaW1wb3J0IHsgRGFzaGJvYXJkUGFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9pbnRlcmZhY2VzL2Rhc2hib2FyZC1wYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybVBhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvaW50ZXJmYWNlcy9mb3JtLXBhZ2Uuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hbnRsZS1keW5hbWljLWZvcm0tc2VjdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWZvcm0tc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtZm9ybS1zZWN0aW9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1TZWN0aW9uQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBmb3JtUGFnZVNlcnZpY2UhOiBGb3JtUGFnZVNlcnZpY2U7XG4gIEBJbnB1dCgpIHNlY3Rpb24hOiBEeW5hbWljTGF5b3V0U2VjdGlvbjtcbiAgQElucHV0KCkgY29udGVudCE6IER5bmFtaWNGb3JtQ29udGVudDtcbiAgQElucHV0KCkgZm9ybSE6IEZvcm1Hcm91cDtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIGFzRHluYW1pY0xheW91dEdyaWRTZWN0aW9uKHNlY3Rpb246IGFueSk6IER5bmFtaWNMYXlvdXRHcmlkU2VjdGlvbiB7XG4gICAgcmV0dXJuIHNlY3Rpb24gYXMgRHluYW1pY0xheW91dEdyaWRTZWN0aW9uO1xuICB9XG5cbiAgYXNEeW5hbWljTGF5b3V0VGFibGVTZWN0aW9uKHNlY3Rpb246IGFueSk6IER5bmFtaWNMYXlvdXRUYWJsZVNlY3Rpb24ge1xuICAgIHJldHVybiBzZWN0aW9uIGFzIER5bmFtaWNMYXlvdXRUYWJsZVNlY3Rpb247XG4gIH1cblxuICBhc0R5bmFtaWNMYXlvdXRNYXJrZG93blNlY3Rpb24oc2VjdGlvbjogYW55KTogRHluYW1pY0xheW91dE1hcmtkb3duU2VjdGlvbiB7XG4gICAgcmV0dXJuIHNlY3Rpb24gYXMgRHluYW1pY0xheW91dE1hcmtkb3duU2VjdGlvbjtcbiAgfVxuXG4gIGFzRHluYW1pY0xheW91dERhc2hib2FyZFNlY3Rpb24oc2VjdGlvbjogYW55KTogRHluYW1pY0xheW91dERhc2hib2FyZFNlY3Rpb24ge1xuICAgIHJldHVybiBzZWN0aW9uIGFzIER5bmFtaWNMYXlvdXREYXNoYm9hcmRTZWN0aW9uO1xuICB9XG5cbiAgYXNEYXNoYm9hcmRQYWdlU2VydmljZShmb3JtUGFnZVNlcnZpY2U6IEZvcm1QYWdlU2VydmljZSk6IERhc2hib2FyZFBhZ2VTZXJ2aWNlIHtcbiAgICByZXR1cm4gZm9ybVBhZ2VTZXJ2aWNlIGFzIHVua25vd24gYXMgRGFzaGJvYXJkUGFnZVNlcnZpY2U7XG4gIH1cblxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlY3Rpb24ud3JpdGFibGVcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImR5bmFtaWNGb3JtQ29udGVudDsgY29udGV4dDogeyBmb3JtOiBmb3JtLCBzZWN0aW9uOiBzZWN0aW9uLCBjb250ZW50OiBjb250ZW50IH07XCI+PC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhc2VjdGlvbi53cml0YWJsZVwiPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHluYW1pY0RldGFpbHNDb250ZW50OyBjb250ZXh0OiB7IHNlY3Rpb246IHNlY3Rpb24sIGNvbnRlbnQ6IGNvbnRlbnQgfTtcIj48L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2R5bmFtaWNGb3JtQ29udGVudCBsZXQtZm9ybT1cImZvcm1cIiBsZXQtY29udGVudD1cImNvbnRlbnRcIiBsZXQtc2VjdGlvbj1cInNlY3Rpb25cIj5cbiAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwic2VjdGlvbi5sYXlvdXRcIj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidncmlkJ1wiPlxuICAgICAgPG1hbnRsZS1ncmlkLWZvcm0tc2VjdGlvblxuICAgICAgICAgIFtzZWN0aW9uXT1cImFzRHluYW1pY0xheW91dEdyaWRTZWN0aW9uKHNlY3Rpb24pXCJcbiAgICAgICAgICBbZm9ybV09XCJmb3JtXCJcbiAgICAgICAgICBbZXJyb3JzXT1cImNvbnRlbnQuZXJyb3JzIHx8IHt9XCI+XG4gICAgICA8L21hbnRsZS1ncmlkLWZvcm0tc2VjdGlvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0YWJsZSdcIj5cbiAgICAgIDxtYW50bGUtdGFibGUtZm9ybS1zZWN0aW9uXG4gICAgICAgICAgW3NlY3Rpb25dPVwiYXNEeW5hbWljTGF5b3V0VGFibGVTZWN0aW9uKHNlY3Rpb24pXCJcbiAgICAgICAgICBbZm9ybV09XCJmb3JtXCI+XG4gICAgICA8L21hbnRsZS10YWJsZS1mb3JtLXNlY3Rpb24+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2R5bmFtaWNEZXRhaWxzQ29udGVudCBsZXQtY29udGVudD1cImNvbnRlbnRcIiBsZXQtc2VjdGlvbj1cInNlY3Rpb25cIj5cbiAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwic2VjdGlvbi5sYXlvdXRcIj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidncmlkJ1wiPlxuICAgICAgPG1hbnRsZS1ncmlkLWRldGFpbHMtc2VjdGlvblxuICAgICAgICAgIFtzZWN0aW9uXT1cImFzRHluYW1pY0xheW91dEdyaWRTZWN0aW9uKHNlY3Rpb24pXCJcbiAgICAgICAgICBbZGF0YV09XCJjb250ZW50LmRhdGFcIj5cbiAgICAgIDwvbWFudGxlLWdyaWQtZGV0YWlscy1zZWN0aW9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RhYmxlJ1wiPlxuICAgICAgPG1hbnRsZS10YWJsZS1kZXRhaWxzLXNlY3Rpb25cbiAgICAgICAgICBbc2VjdGlvbl09XCJhc0R5bmFtaWNMYXlvdXRUYWJsZVNlY3Rpb24oc2VjdGlvbilcIlxuICAgICAgICAgIFtkYXRhXT1cImNvbnRlbnQuZGF0YVwiPlxuICAgICAgPC9tYW50bGUtdGFibGUtZGV0YWlscy1zZWN0aW9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2Rhc2hib2FyZCdcIj5cbiAgICAgIDxtYW50bGUtZGFzaGJvYXJkLXNlY3Rpb25cbiAgICAgICAgICBbc2x1Z109XCJzZWN0aW9uLnNsdWdcIlxuICAgICAgICAgIFtzZWN0aW9uXT1cImFzRHluYW1pY0xheW91dERhc2hib2FyZFNlY3Rpb24oc2VjdGlvbilcIlxuICAgICAgICAgIFtkYXRhXT1cImNvbnRlbnQuZGF0YVwiXG4gICAgICAgICAgW2Rhc2hib2FyZFBhZ2VTZXJ2aWNlXT1cImFzRGFzaGJvYXJkUGFnZVNlcnZpY2UoZm9ybVBhZ2VTZXJ2aWNlKVwiPlxuICAgICAgPC9tYW50bGUtZGFzaGJvYXJkLXNlY3Rpb24+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbWFya2Rvd24nXCI+XG4gICAgICA8bWFudGxlLW1hcmtkb3duLWRldGFpbHMtc2VjdGlvblxuICAgICAgICAgIFtzZWN0aW9uXT1cImFzRHluYW1pY0xheW91dE1hcmtkb3duU2VjdGlvbihzZWN0aW9uKVwiPlxuICAgICAgPC9tYW50bGUtbWFya2Rvd24tZGV0YWlscy1zZWN0aW9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==