@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,92 @@
1
+ import { Component, forwardRef, Input } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import * as moment from 'moment';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/material/form-field";
6
+ import * as i2 from "@angular/material/datepicker";
7
+ import * as i3 from "@angular-material-components/datetime-picker";
8
+ import * as i4 from "@angular/material/input";
9
+ import * as i5 from "@angular/forms";
10
+ import * as i6 from "@angular/common";
11
+ export class DatetimepickerComponent {
12
+ constructor() {
13
+ this.selectedDateTime = null;
14
+ this.modelFormat = 'YYYY-MM-DD HH:mm';
15
+ this.displayFormat = 'DD/MM/YYYY HH:mm';
16
+ this.parseFormats = [this.modelFormat, this.displayFormat];
17
+ this.onChange = (newDate) => { };
18
+ this.onTouched = () => { };
19
+ }
20
+ registerOnChange(fn) { this.onChange = fn; }
21
+ registerOnTouched(fn) { this.onTouched = fn; }
22
+ get modelValue() {
23
+ if (!this.selectedDateTime)
24
+ return '';
25
+ if (this.selectedDateTime.isValid())
26
+ return this.selectedDateTime.format(this.modelFormat);
27
+ return 'Invalid date';
28
+ }
29
+ writeValue(newValue) {
30
+ if (typeof newValue == 'string') {
31
+ newValue = moment(newValue, this.parseFormats).format(this.displayFormat);
32
+ }
33
+ this.onDateTimeEntered(newValue);
34
+ }
35
+ onDateTimeSelected(newValue) {
36
+ if (newValue)
37
+ newValue = newValue.format(this.displayFormat);
38
+ this.onDateTimeEntered(newValue);
39
+ }
40
+ onDateTimeEntered(newValue) {
41
+ if (newValue && newValue.type == 'change')
42
+ newValue = newValue.target.value;
43
+ this.selectedDateTime = this.getMoment(newValue);
44
+ var value = this.modelValue;
45
+ this.onChange(value);
46
+ if (value == 'Invalid date time') {
47
+ setTimeout(() => {
48
+ this.onDateTimeEntered(null);
49
+ }, 0);
50
+ }
51
+ }
52
+ getMoment(value) {
53
+ if (!value)
54
+ return null;
55
+ if (typeof value == 'string') {
56
+ value = moment(value, this.parseFormats);
57
+ }
58
+ return value;
59
+ }
60
+ }
61
+ DatetimepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DatetimepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
62
+ DatetimepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DatetimepickerComponent, selector: "mantle-datetimepicker", inputs: { label: "label", disable: "disable", required: "required", error: "error" }, providers: [
63
+ {
64
+ provide: NG_VALUE_ACCESSOR,
65
+ useExisting: forwardRef(() => DatetimepickerComponent),
66
+ multi: true
67
+ }
68
+ ], ngImport: i0, template: "<mat-form-field [class.mat-form-field-invalid]=\"error\">\n <mat-label>{{ label }}</mat-label>\n <input matInput\n [ngxMatDatetimePicker]=\"picker\"\n [(ngModel)]=\"selectedDateTime\"\n (change)=\"onDateTimeEntered($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n (dateChange)=\"onDateTimeSelected($event.value)\"\n autocomplete=\"off\">\n <mat-datepicker-toggle matSuffix [for]=\"$any(picker)\"></mat-datepicker-toggle>\n <ngx-mat-datetime-picker #picker [defaultTime]=\"[8,0,0]\"></ngx-mat-datetime-picker>\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.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["tabIndex", "disabled", "for", "aria-label", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { type: i3.NgxMatDatetimePicker, selector: "ngx-mat-datetime-picker", inputs: ["startView", "startAt", "defaultColor", "color", "touchUi", "hideTime", "disabled", "opened", "showSpinners", "showSeconds", "stepHour", "stepMinute", "stepSecond", "enableMeridian", "disableMinute", "defaultTime", "calendarHeaderComponent", "panelClass", "dateClass"], outputs: ["yearSelected", "monthSelected", "opened", "closed"], exportAs: ["ngxMatDatetimePicker"] }], 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: i3.NgxMatDatetimeInput, selector: "input[ngxMatDatetimePicker]", inputs: ["value", "ngxMatDatetimePicker", "ngxMatDatetimePickerFilter", "min", "max", "disabled"], outputs: ["dateChange", "dateInput"], exportAs: ["ngxMatDatetimePickerInput"] }, { 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"] }] });
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DatetimepickerComponent, decorators: [{
70
+ type: Component,
71
+ args: [{
72
+ selector: 'mantle-datetimepicker',
73
+ templateUrl: './datetimepicker.component.html',
74
+ styleUrls: ['./datetimepicker.component.scss'],
75
+ providers: [
76
+ {
77
+ provide: NG_VALUE_ACCESSOR,
78
+ useExisting: forwardRef(() => DatetimepickerComponent),
79
+ multi: true
80
+ }
81
+ ]
82
+ }]
83
+ }], propDecorators: { label: [{
84
+ type: Input
85
+ }], disable: [{
86
+ type: Input
87
+ }], required: [{
88
+ type: Input
89
+ }], error: [{
90
+ type: Input
91
+ }] } });
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2ZpZWxkcy9kYXRldGltZXBpY2tlci9kYXRldGltZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZmllbGRzL2RhdGV0aW1lcGlja2VyL2RhdGV0aW1lcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7Ozs7O0FBY2pDLE1BQU0sT0FBTyx1QkFBdUI7SUFacEM7UUFtQlMscUJBQWdCLEdBQWtCLElBQUksQ0FBQztRQUV0QyxnQkFBVyxHQUFXLGtCQUFrQixDQUFDO1FBQ3pDLGtCQUFhLEdBQVcsa0JBQWtCLENBQUM7UUFDM0MsaUJBQVksR0FBYSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXhFLGFBQVEsR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBR3BDLGNBQVMsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7S0E4Q3ZCO0lBaERDLGdCQUFnQixDQUFDLEVBQTZCLElBQVUsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRzdFLGlCQUFpQixDQUFDLEVBQWMsSUFBVSxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFaEUsSUFBSSxVQUFVO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0I7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN0QyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNGLE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxVQUFVLENBQUMsUUFBYTtRQUN0QixJQUFJLE9BQU8sUUFBUSxJQUFJLFFBQVEsRUFBRTtZQUMvQixRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUMzRTtRQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsUUFBYTtRQUM5QixJQUFJLFFBQVE7WUFBRSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxRQUFhO1FBQzdCLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxJQUFJLElBQUksUUFBUTtZQUFFLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUU1RSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVqRCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFckIsSUFBSSxLQUFLLElBQUksbUJBQW1CLEVBQUU7WUFDaEMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ1A7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQXNCO1FBQzlCLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFeEIsSUFBSSxPQUFPLEtBQUssSUFBSSxRQUFRLEVBQUU7WUFDNUIsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztxSEE1RFUsdUJBQXVCO3lHQUF2Qix1QkFBdUIsc0lBUnZCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7WUFDdEQsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLDBCQ2ZILHNwQkFlQTs0RkRFYSx1QkFBdUI7a0JBWm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsV0FBVyxFQUFFLGlDQUFpQztvQkFDOUMsU0FBUyxFQUFFLENBQUMsaUNBQWlDLENBQUM7b0JBQzlDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQzs0QkFDdEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0Y7OEJBR1UsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFudGxlLWRhdGV0aW1lcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGV0aW1lcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZXRpbWVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRldGltZXBpY2tlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRldGltZXBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICBASW5wdXQoKSBsYWJlbCE6IHN0cmluZztcbiAgQElucHV0KCkgZGlzYWJsZSE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHJlcXVpcmVkITogYm9vbGVhbjtcbiAgQElucHV0KCkgZXJyb3I6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgc2VsZWN0ZWREYXRlVGltZTogTW9tZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBtb2RlbEZvcm1hdDogc3RyaW5nID0gJ1lZWVktTU0tREQgSEg6bW0nO1xuICBwcml2YXRlIGRpc3BsYXlGb3JtYXQ6IHN0cmluZyA9ICdERC9NTS9ZWVlZIEhIOm1tJztcbiAgcHJpdmF0ZSBwYXJzZUZvcm1hdHM6IHN0cmluZ1tdID0gW3RoaXMubW9kZWxGb3JtYXQsIHRoaXMuZGlzcGxheUZvcm1hdF07XG5cbiAgb25DaGFuZ2UgPSAobmV3RGF0ZTogc3RyaW5nKSA9PiB7IH07XG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChuZXdEYXRlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHsgdGhpcy5vbkNoYW5nZSA9IGZuOyB9XG5cbiAgb25Ub3VjaGVkID0gKCkgPT4geyB9O1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQgeyB0aGlzLm9uVG91Y2hlZCA9IGZuOyB9XG5cbiAgZ2V0IG1vZGVsVmFsdWUoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWREYXRlVGltZSkgcmV0dXJuICcnO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZVRpbWUuaXNWYWxpZCgpKSByZXR1cm4gdGhpcy5zZWxlY3RlZERhdGVUaW1lLmZvcm1hdCh0aGlzLm1vZGVsRm9ybWF0KTtcbiAgICByZXR1cm4gJ0ludmFsaWQgZGF0ZSc7XG4gIH1cblxuICB3cml0ZVZhbHVlKG5ld1ZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIG5ld1ZhbHVlID09ICdzdHJpbmcnKSB7XG4gICAgICBuZXdWYWx1ZSA9IG1vbWVudChuZXdWYWx1ZSwgdGhpcy5wYXJzZUZvcm1hdHMpLmZvcm1hdCh0aGlzLmRpc3BsYXlGb3JtYXQpO1xuICAgIH1cbiAgICB0aGlzLm9uRGF0ZVRpbWVFbnRlcmVkKG5ld1ZhbHVlKVxuICB9XG5cbiAgb25EYXRlVGltZVNlbGVjdGVkKG5ld1ZhbHVlOiBhbnkpIHtcbiAgICBpZiAobmV3VmFsdWUpIG5ld1ZhbHVlID0gbmV3VmFsdWUuZm9ybWF0KHRoaXMuZGlzcGxheUZvcm1hdCk7XG4gICAgdGhpcy5vbkRhdGVUaW1lRW50ZXJlZChuZXdWYWx1ZSlcbiAgfVxuXG4gIG9uRGF0ZVRpbWVFbnRlcmVkKG5ld1ZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAobmV3VmFsdWUgJiYgbmV3VmFsdWUudHlwZSA9PSAnY2hhbmdlJykgbmV3VmFsdWUgPSBuZXdWYWx1ZS50YXJnZXQudmFsdWU7XG5cbiAgICB0aGlzLnNlbGVjdGVkRGF0ZVRpbWUgPSB0aGlzLmdldE1vbWVudChuZXdWYWx1ZSk7XG5cbiAgICB2YXIgdmFsdWUgPSB0aGlzLm1vZGVsVmFsdWU7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG5cbiAgICBpZiAodmFsdWUgPT0gJ0ludmFsaWQgZGF0ZSB0aW1lJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMub25EYXRlVGltZUVudGVyZWQobnVsbCk7XG4gICAgICB9LCAwKTtcbiAgICB9XG4gIH1cblxuICBnZXRNb21lbnQodmFsdWU6IHN0cmluZyB8IE1vbWVudCk6IE1vbWVudCB8IG51bGwge1xuICAgIGlmICghdmFsdWUpIHJldHVybiBudWxsO1xuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJykge1xuICAgICAgdmFsdWUgPSBtb21lbnQodmFsdWUsIHRoaXMucGFyc2VGb3JtYXRzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxufVxuIiwiPG1hdC1mb3JtLWZpZWxkIFtjbGFzcy5tYXQtZm9ybS1maWVsZC1pbnZhbGlkXT1cImVycm9yXCI+XG4gIDxtYXQtbGFiZWw+e3sgbGFiZWwgfX08L21hdC1sYWJlbD5cbiAgPGlucHV0IG1hdElucHV0XG4gICAgICBbbmd4TWF0RGF0ZXRpbWVQaWNrZXJdPVwicGlja2VyXCJcbiAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRlVGltZVwiXG4gICAgICAoY2hhbmdlKT1cIm9uRGF0ZVRpbWVFbnRlcmVkKCRldmVudClcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlXCJcbiAgICAgIChkYXRlQ2hhbmdlKT1cIm9uRGF0ZVRpbWVTZWxlY3RlZCgkZXZlbnQudmFsdWUpXCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxuICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cIiRhbnkocGlja2VyKVwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICA8bmd4LW1hdC1kYXRldGltZS1waWNrZXIgI3BpY2tlciBbZGVmYXVsdFRpbWVdPVwiWzgsMCwwXVwiPjwvbmd4LW1hdC1kYXRldGltZS1waWNrZXI+XG5cbiAgPG1hdC1oaW50ICpuZ0lmPVwiZXJyb3JcIiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj57eyBlcnJvciB9fTwvbWF0LWhpbnQ+XG48L21hdC1mb3JtLWZpZWxkPlxuIl19
@@ -0,0 +1,73 @@
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/select";
6
+ import * as i3 from "@angular/material/core";
7
+ import * as i4 from "@angular/forms";
8
+ import * as i5 from "@angular/common";
9
+ export class DropdownComponent {
10
+ constructor() {
11
+ this.value = null;
12
+ this.dropdownValues = [];
13
+ this.onChange = (newValue) => { };
14
+ this.onTouched = () => { };
15
+ }
16
+ registerOnChange(fn) { this.onChange = fn; }
17
+ registerOnTouched(fn) { this.onTouched = fn; }
18
+ ngOnChanges(changes) {
19
+ this.filterDropdownValues();
20
+ }
21
+ writeValue(newValue) {
22
+ this.value = newValue;
23
+ if (this.value !== null && this.value !== undefined) {
24
+ this.value = String(this.value);
25
+ }
26
+ this.onChange(this.value);
27
+ this.filterDropdownValues();
28
+ }
29
+ onValueChanged(event) {
30
+ this.onChange(this.value);
31
+ }
32
+ filterDropdownValues() {
33
+ this.dropdownValues = this.options.values.filter((item) => {
34
+ if (item.value == this.value)
35
+ return true;
36
+ return !item.hidden;
37
+ });
38
+ }
39
+ }
40
+ DropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
41
+ DropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DropdownComponent, selector: "mantle-dropdown", inputs: { label: "label", options: "options", disable: "disable", required: "required", error: "error" }, providers: [
42
+ {
43
+ provide: NG_VALUE_ACCESSOR,
44
+ useExisting: forwardRef(() => DropdownComponent),
45
+ multi: true
46
+ }
47
+ ], usesOnChanges: true, ngImport: i0, template: "<mat-form-field [class.mat-form-field-invalid]=\"error\">\n <mat-label>{{ label }}</mat-label>\n <mat-select\n [(ngModel)]=\"value\"\n (selectionChange)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\">\n <mat-option value=\"\"></mat-option>\n <mat-option *ngFor=\"let option of dropdownValues\" [value]=\"option.value\">\n {{option.label}}\n </mat-option>\n </mat-select>\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.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i3.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i1.MatLabel, selector: "mat-label" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }] });
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DropdownComponent, decorators: [{
49
+ type: Component,
50
+ args: [{
51
+ selector: 'mantle-dropdown',
52
+ templateUrl: './dropdown.component.html',
53
+ styleUrls: ['./dropdown.component.scss'],
54
+ providers: [
55
+ {
56
+ provide: NG_VALUE_ACCESSOR,
57
+ useExisting: forwardRef(() => DropdownComponent),
58
+ multi: true
59
+ }
60
+ ]
61
+ }]
62
+ }], ctorParameters: function () { return []; }, propDecorators: { label: [{
63
+ type: Input
64
+ }], options: [{
65
+ type: Input
66
+ }], disable: [{
67
+ type: Input
68
+ }], required: [{
69
+ type: Input
70
+ }], error: [{
71
+ type: Input
72
+ }] } });
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2ZpZWxkcy9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZmllbGRzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFjekUsTUFBTSxPQUFPLGlCQUFpQjtJQVc1QjtRQUhPLFVBQUssR0FBUSxJQUFJLENBQUM7UUFDbEIsbUJBQWMsR0FBdUMsRUFBRSxDQUFDO1FBSS9ELGFBQVEsR0FBRyxDQUFDLFFBQWdCLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUdyQyxjQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBTE4sQ0FBQztJQUdqQixnQkFBZ0IsQ0FBQyxFQUE4QixJQUFVLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUc5RSxpQkFBaUIsQ0FBQyxFQUFjLElBQVUsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRWhFLFdBQVcsQ0FBQyxPQUFZO1FBQ3RCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxVQUFVLENBQUMsUUFBYTtRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ25ELElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNqQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTFCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDeEQsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQzFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7K0dBMUNVLGlCQUFpQjttR0FBakIsaUJBQWlCLG9KQVJqQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO1lBQ2hELEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRiwrQ0NiSCwyaEJBZUE7NEZEQWEsaUJBQWlCO2tCQVo3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFdBQVcsRUFBRSwyQkFBMkI7b0JBQ3hDLFNBQVMsRUFBRSxDQUFDLDJCQUEyQixDQUFDO29CQUN4QyxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUM7NEJBQ2hELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGOzBFQUdVLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYW50bGUtZHJvcGRvd24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERyb3Bkb3duQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIEBJbnB1dCgpIGxhYmVsITogc3RyaW5nO1xuICBASW5wdXQoKSBvcHRpb25zITogeyB2YWx1ZXM6IHsgbGFiZWw6IHN0cmluZywgdmFsdWU6IHN0cmluZywgaGlkZGVuOiBib29sZWFuIH1bXSB9O1xuICBASW5wdXQoKSBkaXNhYmxlITogYm9vbGVhbjtcbiAgQElucHV0KCkgcmVxdWlyZWQhOiBib29sZWFuO1xuICBASW5wdXQoKSBlcnJvcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyB2YWx1ZTogYW55ID0gbnVsbDtcbiAgcHVibGljIGRyb3Bkb3duVmFsdWVzOiB7IGxhYmVsOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBvbkNoYW5nZSA9IChuZXdWYWx1ZTogc3RyaW5nKSA9PiB7IH07XG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChuZXdWYWx1ZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7IHRoaXMub25DaGFuZ2UgPSBmbjsgfVxuXG4gIG9uVG91Y2hlZCA9ICgpID0+IHsgfTtcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHsgdGhpcy5vblRvdWNoZWQgPSBmbjsgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyRHJvcGRvd25WYWx1ZXMoKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUobmV3VmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICBpZiAodGhpcy52YWx1ZSAhPT0gbnVsbCAmJiB0aGlzLnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBTdHJpbmcodGhpcy52YWx1ZSk7XG4gICAgfVxuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG5cbiAgICB0aGlzLmZpbHRlckRyb3Bkb3duVmFsdWVzKCk7XG4gIH1cblxuICBvblZhbHVlQ2hhbmdlZChldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIGZpbHRlckRyb3Bkb3duVmFsdWVzKCkge1xuICAgIHRoaXMuZHJvcGRvd25WYWx1ZXMgPSB0aGlzLm9wdGlvbnMudmFsdWVzLmZpbHRlcigoaXRlbSkgPT4ge1xuICAgICAgaWYgKGl0ZW0udmFsdWUgPT0gdGhpcy52YWx1ZSkgcmV0dXJuIHRydWU7XG4gICAgICByZXR1cm4gIWl0ZW0uaGlkZGVuO1xuICAgIH0pO1xuICB9XG5cbn1cbiIsIjxtYXQtZm9ybS1maWVsZCBbY2xhc3MubWF0LWZvcm0tZmllbGQtaW52YWxpZF09XCJlcnJvclwiPlxuICA8bWF0LWxhYmVsPnt7IGxhYmVsIH19PC9tYXQtbGFiZWw+XG4gIDxtYXQtc2VsZWN0XG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25WYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVcIj5cbiAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIlwiPjwvbWF0LW9wdGlvbj5cbiAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGRyb3Bkb3duVmFsdWVzXCIgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiPlxuICAgICAge3tvcHRpb24ubGFiZWx9fVxuICAgIDwvbWF0LW9wdGlvbj5cbiAgPC9tYXQtc2VsZWN0PlxuXG4gIDxtYXQtaGludCAqbmdJZj1cImVycm9yXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+e3sgZXJyb3IgfX08L21hdC1oaW50PlxuPC9tYXQtZm9ybS1maWVsZD5cbiJdfQ==
@@ -0,0 +1,37 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { FormGroup } from '@angular/forms';
3
+ import { DynamicFormField } from '../../../../services/dynamic-form.service';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../text-input/text-input.component";
6
+ import * as i2 from "../textarea/textarea.component";
7
+ import * as i3 from "../dropdown/dropdown.component";
8
+ import * as i4 from "../datepicker/datepicker.component";
9
+ import * as i5 from "../datetimepicker/datetimepicker.component";
10
+ import * as i6 from "../number-input/number-input.component";
11
+ import * as i7 from "../filepicker/filepicker.component";
12
+ import * as i8 from "../imagepicker/imagepicker.component";
13
+ import * as i9 from "../chip-input/chip-input.component";
14
+ import * as i10 from "../password-input/password-input.component";
15
+ import * as i11 from "../markdown-input/markdown-input.component";
16
+ import * as i12 from "../autocomplete-input/autocomplete-input.component";
17
+ import * as i13 from "@angular/forms";
18
+ import * as i14 from "@angular/common";
19
+ export class DynamicFormFieldComponent {
20
+ }
21
+ DynamicFormFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
22
+ DynamicFormFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicFormFieldComponent, selector: "mantle-dynamic-form-field", inputs: { field: "field", form: "form", error: "error" }, ngImport: i0, template: "<div [formGroup]=\"form\">\n <ng-container [ngSwitch]=\"field.type\">\n\n <mantle-text-input *ngSwitchCase=\"'string'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-text-input>\n\n <mantle-text-input *ngSwitchCase=\"'string-lg'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-text-input>\n\n <mantle-textarea *ngSwitchCase=\"'text'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [rows]=\"6\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-textarea>\n\n <mantle-dropdown *ngSwitchCase=\"'dropdown'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-dropdown>\n\n <mantle-datepicker *ngSwitchCase=\"'date'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-datepicker>\n\n <mantle-datetimepicker *ngSwitchCase=\"'datetime'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-datetimepicker>\n\n <mantle-number-input *ngSwitchCase=\"'number'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-number-input>\n\n <mantle-number-input *ngSwitchCase=\"'currency'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-number-input>\n\n <mantle-filepicker *ngSwitchCase=\"'file'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-filepicker>\n\n <mantle-imagepicker *ngSwitchCase=\"'image'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-imagepicker>\n\n <mantle-chip-input *ngSwitchCase=\"'chips'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-chip-input>\n\n <mantle-password-input *ngSwitchCase=\"'password'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-password-input>\n\n <mantle-markdown-input *ngSwitchCase=\"'markdown'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-markdown-input>\n\n <mantle-autocomplete-input *ngSwitchCase=\"'autocomplete'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-autocomplete-input>\n\n </ng-container>\n</div>\n", styles: [""], components: [{ type: i1.TextInputComponent, selector: "mantle-text-input", inputs: ["label", "disable", "required", "error"] }, { type: i2.TextareaComponent, selector: "mantle-textarea", inputs: ["label", "rows", "disable", "required", "error"] }, { type: i3.DropdownComponent, selector: "mantle-dropdown", inputs: ["label", "options", "disable", "required", "error"] }, { type: i4.DatepickerComponent, selector: "mantle-datepicker", inputs: ["label", "disable", "required", "error"] }, { type: i5.DatetimepickerComponent, selector: "mantle-datetimepicker", inputs: ["label", "disable", "required", "error"] }, { type: i6.NumberInputComponent, selector: "mantle-number-input", inputs: ["label", "options", "disable", "required", "error"] }, { type: i7.FilepickerComponent, selector: "mantle-filepicker", inputs: ["label", "disable", "required", "error"] }, { type: i8.ImagepickerComponent, selector: "mantle-imagepicker", inputs: ["label", "options", "disable", "required", "error"] }, { type: i9.ChipInputComponent, selector: "mantle-chip-input", inputs: ["label", "disable", "required", "error"] }, { type: i10.PasswordInputComponent, selector: "mantle-password-input", inputs: ["label", "disable", "required", "error"] }, { type: i11.MarkdownInputComponent, selector: "mantle-markdown-input", inputs: ["label", "disable", "required", "error"] }, { type: i12.AutocompleteInputComponent, selector: "mantle-autocomplete-input", inputs: ["label", "options", "disable", "required", "error"] }], directives: [{ type: i13.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i13.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i14.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i14.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i13.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i13.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i13.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }] });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicFormFieldComponent, decorators: [{
24
+ type: Component,
25
+ args: [{
26
+ selector: 'mantle-dynamic-form-field',
27
+ templateUrl: './dynamic-form-field.component.html',
28
+ styleUrls: ['./dynamic-form-field.component.scss']
29
+ }]
30
+ }], propDecorators: { field: [{
31
+ type: Input
32
+ }], form: [{
33
+ type: Input
34
+ }], error: [{
35
+ type: Input
36
+ }] } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hbnRsZS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9maWVsZHMvZHluYW1pYy1mb3JtLWZpZWxkL2R5bmFtaWMtZm9ybS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZmllbGRzL2R5bmFtaWMtZm9ybS1maWVsZC9keW5hbWljLWZvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBTzdFLE1BQU0sT0FBTyx5QkFBeUI7O3VIQUF6Qix5QkFBeUI7MkdBQXpCLHlCQUF5QiwySENUdEMsc3dJQXdJQTs0RkQvSGEseUJBQXlCO2tCQUxyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFdBQVcsRUFBRSxxQ0FBcUM7b0JBQ2xELFNBQVMsRUFBRSxDQUFDLHFDQUFxQyxDQUFDO2lCQUNuRDs4QkFHVSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IER5bmFtaWNGb3JtRmllbGQgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9keW5hbWljLWZvcm0uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hbnRsZS1keW5hbWljLWZvcm0tZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHluYW1pYy1mb3JtLWZpZWxkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1GaWVsZENvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgZmllbGQhOiBEeW5hbWljRm9ybUZpZWxkO1xuICBASW5wdXQoKSBmb3JtITogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBlcnJvcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG59XG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJmaWVsZC50eXBlXCI+XG5cbiAgICA8bWFudGxlLXRleHQtaW5wdXQgKm5nU3dpdGNoQ2FzZT1cIidzdHJpbmcnXCJcbiAgICAgICAgW2lkXT1cImZpZWxkLmF0dHJcIlxuICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLmF0dHJcIlxuICAgICAgICBbbGFiZWxdPVwiZmllbGQubGFiZWxcIlxuICAgICAgICBbcmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWRcIlxuICAgICAgICBbZGlzYWJsZV09XCJmaWVsZC5kaXNhYmxlZFwiXG4gICAgICAgIFtlcnJvcl09XCJlcnJvclwiPlxuICAgIDwvbWFudGxlLXRleHQtaW5wdXQ+XG5cbiAgICA8bWFudGxlLXRleHQtaW5wdXQgKm5nU3dpdGNoQ2FzZT1cIidzdHJpbmctbGcnXCJcbiAgICAgICAgW2lkXT1cImZpZWxkLmF0dHJcIlxuICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLmF0dHJcIlxuICAgICAgICBbbGFiZWxdPVwiZmllbGQubGFiZWxcIlxuICAgICAgICBbcmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWRcIlxuICAgICAgICBbZGlzYWJsZV09XCJmaWVsZC5kaXNhYmxlZFwiXG4gICAgICAgIFtlcnJvcl09XCJlcnJvclwiPlxuICAgIDwvbWFudGxlLXRleHQtaW5wdXQ+XG5cbiAgICA8bWFudGxlLXRleHRhcmVhICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIlxuICAgICAgICBbaWRdPVwiZmllbGQuYXR0clwiXG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQuYXR0clwiXG4gICAgICAgIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICAgIFtyb3dzXT1cIjZcIlxuICAgICAgICBbcmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWRcIlxuICAgICAgICBbZGlzYWJsZV09XCJmaWVsZC5kaXNhYmxlZFwiXG4gICAgICAgIFtlcnJvcl09XCJlcnJvclwiPlxuICAgIDwvbWFudGxlLXRleHRhcmVhPlxuXG4gICAgPG1hbnRsZS1kcm9wZG93biAqbmdTd2l0Y2hDYXNlPVwiJ2Ryb3Bkb3duJ1wiXG4gICAgICAgIFtpZF09XCJmaWVsZC5hdHRyXCJcbiAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5hdHRyXCJcbiAgICAgICAgW2xhYmVsXT1cImZpZWxkLmxhYmVsXCJcbiAgICAgICAgW29wdGlvbnNdPVwiZmllbGQub3B0aW9uc1wiXG4gICAgICAgIFtyZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZFwiXG4gICAgICAgIFtkaXNhYmxlXT1cImZpZWxkLmRpc2FibGVkXCJcbiAgICAgICAgW2Vycm9yXT1cImVycm9yXCI+XG4gICAgPC9tYW50bGUtZHJvcGRvd24+XG5cbiAgICA8bWFudGxlLWRhdGVwaWNrZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiXG4gICAgICAgIFtpZF09XCJmaWVsZC5hdHRyXCJcbiAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5hdHRyXCJcbiAgICAgICAgW2xhYmVsXT1cImZpZWxkLmxhYmVsXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCJcbiAgICAgICAgW2Rpc2FibGVdPVwiZmllbGQuZGlzYWJsZWRcIlxuICAgICAgICBbZXJyb3JdPVwiZXJyb3JcIj5cbiAgICA8L21hbnRsZS1kYXRlcGlja2VyPlxuXG4gICAgPG1hbnRsZS1kYXRldGltZXBpY2tlciAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGV0aW1lJ1wiXG4gICAgICAgIFtpZF09XCJmaWVsZC5hdHRyXCJcbiAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5hdHRyXCJcbiAgICAgICAgW2xhYmVsXT1cImZpZWxkLmxhYmVsXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCJcbiAgICAgICAgW2Rpc2FibGVdPVwiZmllbGQuZGlzYWJsZWRcIlxuICAgICAgICBbZXJyb3JdPVwiZXJyb3JcIj5cbiAgICA8L21hbnRsZS1kYXRldGltZXBpY2tlcj5cblxuICAgIDxtYW50bGUtbnVtYmVyLWlucHV0ICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyJ1wiXG4gICAgICAgIFtpZF09XCJmaWVsZC5hdHRyXCJcbiAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5hdHRyXCJcbiAgICAgICAgW2xhYmVsXT1cImZpZWxkLmxhYmVsXCJcbiAgICAgICAgW29wdGlvbnNdPVwiZmllbGQub3B0aW9uc1wiXG4gICAgICAgIFtyZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZFwiXG4gICAgICAgIFtkaXNhYmxlXT1cImZpZWxkLmRpc2FibGVkXCJcbiAgICAgICAgW2Vycm9yXT1cImVycm9yXCI+XG4gICAgPC9tYW50bGUtbnVtYmVyLWlucHV0PlxuXG4gICAgPG1hbnRsZS1udW1iZXItaW5wdXQgKm5nU3dpdGNoQ2FzZT1cIidjdXJyZW5jeSdcIlxuICAgICAgICBbaWRdPVwiZmllbGQuYXR0clwiXG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQuYXR0clwiXG4gICAgICAgIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZFwiXG4gICAgICAgIFtkaXNhYmxlXT1cImZpZWxkLmRpc2FibGVkXCJcbiAgICAgICAgW2Vycm9yXT1cImVycm9yXCI+XG4gICAgPC9tYW50bGUtbnVtYmVyLWlucHV0PlxuXG4gICAgPG1hbnRsZS1maWxlcGlja2VyICpuZ1N3aXRjaENhc2U9XCInZmlsZSdcIlxuICAgICAgICBbaWRdPVwiZmllbGQuYXR0clwiXG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQuYXR0clwiXG4gICAgICAgIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZFwiXG4gICAgICAgIFtkaXNhYmxlXT1cImZpZWxkLmRpc2FibGVkXCJcbiAgICAgICAgW2Vycm9yXT1cImVycm9yXCI+XG4gICAgPC9tYW50bGUtZmlsZXBpY2tlcj5cblxuICAgIDxtYW50bGUtaW1hZ2VwaWNrZXIgKm5nU3dpdGNoQ2FzZT1cIidpbWFnZSdcIlxuICAgICAgICBbaWRdPVwiZmllbGQuYXR0clwiXG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQuYXR0clwiXG4gICAgICAgIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICAgIFtvcHRpb25zXT1cImZpZWxkLm9wdGlvbnNcIlxuICAgICAgICBbcmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWRcIlxuICAgICAgICBbZGlzYWJsZV09XCJmaWVsZC5kaXNhYmxlZFwiXG4gICAgICAgIFtlcnJvcl09XCJlcnJvclwiPlxuICAgIDwvbWFudGxlLWltYWdlcGlja2VyPlxuXG4gICAgPG1hbnRsZS1jaGlwLWlucHV0ICpuZ1N3aXRjaENhc2U9XCInY2hpcHMnXCJcbiAgICAgICAgW2lkXT1cImZpZWxkLmF0dHJcIlxuICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLmF0dHJcIlxuICAgICAgICBbbGFiZWxdPVwiZmllbGQubGFiZWxcIlxuICAgICAgICBbcmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWRcIlxuICAgICAgICBbZGlzYWJsZV09XCJmaWVsZC5kaXNhYmxlZFwiXG4gICAgICAgIFtlcnJvcl09XCJlcnJvclwiPlxuICAgIDwvbWFudGxlLWNoaXAtaW5wdXQ+XG5cbiAgICA8bWFudGxlLXBhc3N3b3JkLWlucHV0ICpuZ1N3aXRjaENhc2U9XCIncGFzc3dvcmQnXCJcbiAgICAgICAgW2lkXT1cImZpZWxkLmF0dHJcIlxuICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLmF0dHJcIlxuICAgICAgICBbbGFiZWxdPVwiZmllbGQubGFiZWxcIlxuICAgICAgICBbcmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWRcIlxuICAgICAgICBbZGlzYWJsZV09XCJmaWVsZC5kaXNhYmxlZFwiXG4gICAgICAgIFtlcnJvcl09XCJlcnJvclwiPlxuICAgIDwvbWFudGxlLXBhc3N3b3JkLWlucHV0PlxuXG4gICAgPG1hbnRsZS1tYXJrZG93bi1pbnB1dCAqbmdTd2l0Y2hDYXNlPVwiJ21hcmtkb3duJ1wiXG4gICAgICAgIFtpZF09XCJmaWVsZC5hdHRyXCJcbiAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5hdHRyXCJcbiAgICAgICAgW2xhYmVsXT1cImZpZWxkLmxhYmVsXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCJcbiAgICAgICAgW2Rpc2FibGVdPVwiZmllbGQuZGlzYWJsZWRcIlxuICAgICAgICBbZXJyb3JdPVwiZXJyb3JcIj5cbiAgICA8L21hbnRsZS1tYXJrZG93bi1pbnB1dD5cblxuICAgIDxtYW50bGUtYXV0b2NvbXBsZXRlLWlucHV0ICpuZ1N3aXRjaENhc2U9XCInYXV0b2NvbXBsZXRlJ1wiXG4gICAgICAgIFtpZF09XCJmaWVsZC5hdHRyXCJcbiAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5hdHRyXCJcbiAgICAgICAgW2xhYmVsXT1cImZpZWxkLmxhYmVsXCJcbiAgICAgICAgW29wdGlvbnNdPVwiZmllbGQub3B0aW9uc1wiXG4gICAgICAgIFtyZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZFwiXG4gICAgICAgIFtkaXNhYmxlXT1cImZpZWxkLmRpc2FibGVkXCJcbiAgICAgICAgW2Vycm9yXT1cImVycm9yXCI+XG4gICAgPC9tYW50bGUtYXV0b2NvbXBsZXRlLWlucHV0PlxuXG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,97 @@
1
+ import { Component, Input, forwardRef, ViewChild, ElementRef } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { WebApiService } from '../../../../services/web-api.service';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../../../services/web-api.service";
6
+ import * as i2 from "@angular/material/form-field";
7
+ import * as i3 from "@angular/material/button";
8
+ import * as i4 from "@angular/material/icon";
9
+ import * as i5 from "@angular/material/progress-spinner";
10
+ import * as i6 from "@angular/material/input";
11
+ import * as i7 from "@angular/common";
12
+ import * as i8 from "../../../../directives/click-stop-propagation.directive";
13
+ export class FilepickerComponent {
14
+ constructor(webApiService) {
15
+ this.webApiService = webApiService;
16
+ this.onChange = (newValue) => { };
17
+ this.onTouched = () => { };
18
+ }
19
+ registerOnChange(fn) { this.onChange = fn; }
20
+ registerOnTouched(fn) { this.onTouched = fn; }
21
+ writeValue(newValue) {
22
+ this.currentAttachment = this.previousAttachment = newValue;
23
+ this.onChange(newValue);
24
+ }
25
+ onFileSelected(event) {
26
+ if (!event.target.files || !event.target.files[0])
27
+ return;
28
+ const file = event.target.files[0];
29
+ this.uploadInProgress = true;
30
+ this.webApiService.upload(file, (response) => {
31
+ this.currentAttachment = {
32
+ filename: file.name,
33
+ source_url: '',
34
+ preview_url: '',
35
+ signed_id: response.signed_id
36
+ };
37
+ this.onChange(this.currentAttachment);
38
+ this.uploadInProgress = false;
39
+ }, (response) => {
40
+ this.reset();
41
+ this.error = 'Unable to upload file';
42
+ this.uploadInProgress = false;
43
+ });
44
+ }
45
+ clearAttachment() {
46
+ if (this.fileInput)
47
+ this.fileInput.nativeElement.value = '';
48
+ this.currentAttachment = {
49
+ filename: '',
50
+ source_url: '',
51
+ preview_url: '',
52
+ signed_id: null
53
+ };
54
+ this.onChange(this.currentAttachment);
55
+ }
56
+ reset() {
57
+ if (this.fileInput)
58
+ this.fileInput.nativeElement.value = '';
59
+ this.currentAttachment = this.previousAttachment;
60
+ this.onChange(undefined);
61
+ }
62
+ }
63
+ FilepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FilepickerComponent, deps: [{ token: i1.WebApiService }], target: i0.ɵɵFactoryTarget.Component });
64
+ FilepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FilepickerComponent, selector: "mantle-filepicker", inputs: { label: "label", disable: "disable", required: "required", error: "error" }, providers: [
65
+ {
66
+ provide: NG_VALUE_ACCESSOR,
67
+ useExisting: forwardRef(() => FilepickerComponent),
68
+ multi: true
69
+ }
70
+ ], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: 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>attach_file</mat-icon>\n </button>\n\n <mat-spinner *ngIf=\"uploadInProgress\" matSuffix [diameter]=\"18\"></mat-spinner>\n\n <input #fileInput\n type=\"file\"\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: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i3.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: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i2.MatLabel, selector: "mat-label" }, { type: i6.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: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MatSuffix, selector: "[matSuffix]" }, { type: i8.ClickStopPropagationDirective, selector: "[click-stop-propagation]" }, { type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }] });
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FilepickerComponent, decorators: [{
72
+ type: Component,
73
+ args: [{
74
+ selector: 'mantle-filepicker',
75
+ templateUrl: './filepicker.component.html',
76
+ styleUrls: ['./filepicker.component.scss'],
77
+ providers: [
78
+ {
79
+ provide: NG_VALUE_ACCESSOR,
80
+ useExisting: forwardRef(() => FilepickerComponent),
81
+ multi: true
82
+ }
83
+ ]
84
+ }]
85
+ }], ctorParameters: function () { return [{ type: i1.WebApiService }]; }, propDecorators: { fileInput: [{
86
+ type: ViewChild,
87
+ args: ['fileInput']
88
+ }], label: [{
89
+ type: Input
90
+ }], disable: [{
91
+ type: Input
92
+ }], required: [{
93
+ type: Input
94
+ }], error: [{
95
+ type: Input
96
+ }] } });
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZmllbGRzL2ZpbGVwaWNrZXIvZmlsZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZmllbGRzL2ZpbGVwaWNrZXIvZmlsZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7Ozs7O0FBY3JFLE1BQU0sT0FBTyxtQkFBbUI7SUFhOUIsWUFBb0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFFaEQsYUFBUSxHQUFHLENBQUMsUUFBb0MsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBR3pELGNBQVMsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFMOEIsQ0FBQztJQUdyRCxnQkFBZ0IsQ0FBQyxFQUFrRCxJQUFVLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUdsRyxpQkFBaUIsQ0FBQyxFQUFjLElBQVUsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRWhFLFVBQVUsQ0FBQyxRQUF3QjtRQUNqQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQztRQUM1RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFBRSxPQUFPO1FBRTFELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRW5DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFFN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUM1QixDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxpQkFBaUIsR0FBRztnQkFDdkIsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNuQixVQUFVLEVBQUUsRUFBRTtnQkFDZCxXQUFXLEVBQUUsRUFBRTtnQkFDZixTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVM7YUFDOUIsQ0FBQTtZQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUNoQyxDQUFDLEVBQ0QsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNoQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLHVCQUF1QixDQUFDO1lBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFNBQVM7WUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQzVELElBQUksQ0FBQyxpQkFBaUIsR0FBRztZQUN2QixRQUFRLEVBQUUsRUFBRTtZQUNaLFVBQVUsRUFBRSxFQUFFO1lBQ2QsV0FBVyxFQUFFLEVBQUU7WUFDZixTQUFTLEVBQUUsSUFBSTtTQUNoQixDQUFBO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksSUFBSSxDQUFDLFNBQVM7WUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQzVELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDakQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQixDQUFDOztpSEFuRVUsbUJBQW1CO3FHQUFuQixtQkFBbUIsa0lBUm5CO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7WUFDbEQsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLGtJQ2ZILGc5QkEyQkE7NEZEVmEsbUJBQW1CO2tCQVovQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFdBQVcsRUFBRSw2QkFBNkI7b0JBQzFDLFNBQVMsRUFBRSxDQUFDLDZCQUE2QixDQUFDO29CQUMxQyxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLENBQUM7NEJBQ2xELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGO29HQUd5QixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBRWIsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIGZvcndhcmRSZWYsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmlsZUF0dGFjaG1lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9kYXRhLXN0cnVjdHVyZXMvZmlsZS1hdHRhY2htZW50LnN0cnVjdHVyZSc7XG5pbXBvcnQgeyBXZWJBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvd2ViLWFwaS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFudGxlLWZpbGVwaWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbGVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGaWxlcGlja2VyQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVwaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0ITogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKSBsYWJlbCE6IHN0cmluZztcbiAgQElucHV0KCkgZGlzYWJsZSE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHJlcXVpcmVkITogYm9vbGVhbjtcbiAgQElucHV0KCkgZXJyb3I6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgcHJldmlvdXNBdHRhY2htZW50OiBGaWxlQXR0YWNobWVudCB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGN1cnJlbnRBdHRhY2htZW50OiBGaWxlQXR0YWNobWVudCB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHVwbG9hZEluUHJvZ3Jlc3MhOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgd2ViQXBpU2VydmljZTogV2ViQXBpU2VydmljZSkgeyB9XG5cbiAgb25DaGFuZ2UgPSAobmV3VmFsdWU6IEZpbGVBdHRhY2htZW50IHwgdW5kZWZpbmVkKSA9PiB7IH07XG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChuZXdWYWx1ZTogRmlsZUF0dGFjaG1lbnQgfCB1bmRlZmluZWQpID0+IHZvaWQpOiB2b2lkIHsgdGhpcy5vbkNoYW5nZSA9IGZuOyB9XG5cbiAgb25Ub3VjaGVkID0gKCkgPT4geyB9O1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQgeyB0aGlzLm9uVG91Y2hlZCA9IGZuOyB9XG5cbiAgd3JpdGVWYWx1ZShuZXdWYWx1ZTogRmlsZUF0dGFjaG1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRBdHRhY2htZW50ID0gdGhpcy5wcmV2aW91c0F0dGFjaG1lbnQgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9uQ2hhbmdlKG5ld1ZhbHVlKTtcbiAgfVxuXG4gIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoIWV2ZW50LnRhcmdldC5maWxlcyB8fCAhZXZlbnQudGFyZ2V0LmZpbGVzWzBdKSByZXR1cm47XG5cbiAgICBjb25zdCBmaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xuXG4gICAgdGhpcy51cGxvYWRJblByb2dyZXNzID0gdHJ1ZTtcblxuICAgIHRoaXMud2ViQXBpU2VydmljZS51cGxvYWQoZmlsZSxcbiAgICAgIChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuY3VycmVudEF0dGFjaG1lbnQgPSB7XG4gICAgICAgICAgZmlsZW5hbWU6IGZpbGUubmFtZSxcbiAgICAgICAgICBzb3VyY2VfdXJsOiAnJyxcbiAgICAgICAgICBwcmV2aWV3X3VybDogJycsXG4gICAgICAgICAgc2lnbmVkX2lkOiByZXNwb25zZS5zaWduZWRfaWRcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuY3VycmVudEF0dGFjaG1lbnQpO1xuICAgICAgICB0aGlzLnVwbG9hZEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgICAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSAnVW5hYmxlIHRvIHVwbG9hZCBmaWxlJztcbiAgICAgICAgdGhpcy51cGxvYWRJblByb2dyZXNzID0gZmFsc2U7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGNsZWFyQXR0YWNobWVudCgpIHtcbiAgICBpZiAodGhpcy5maWxlSW5wdXQpIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICB0aGlzLmN1cnJlbnRBdHRhY2htZW50ID0ge1xuICAgICAgZmlsZW5hbWU6ICcnLFxuICAgICAgc291cmNlX3VybDogJycsXG4gICAgICBwcmV2aWV3X3VybDogJycsXG4gICAgICBzaWduZWRfaWQ6IG51bGxcbiAgICB9XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLmN1cnJlbnRBdHRhY2htZW50KTtcbiAgfVxuXG4gIHJlc2V0KCkge1xuICAgIGlmICh0aGlzLmZpbGVJbnB1dCkgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMuY3VycmVudEF0dGFjaG1lbnQgPSB0aGlzLnByZXZpb3VzQXR0YWNobWVudDtcbiAgICB0aGlzLm9uQ2hhbmdlKHVuZGVmaW5lZCk7XG4gIH1cblxufVxuIiwiPG1hdC1mb3JtLWZpZWxkIFtjbGFzcy5tYXQtZm9ybS1maWVsZC1pbnZhbGlkXT1cImVycm9yXCI+XG4gIDxtYXQtbGFiZWw+e3sgbGFiZWwgfX08L21hdC1sYWJlbD5cbiAgPGlucHV0IG1hdElucHV0XG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBbYXR0ci52YWx1ZV09XCJjdXJyZW50QXR0YWNobWVudD8uZmlsZW5hbWVcIlxuICAgICAgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZVwiXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIj5cblxuICA8YnV0dG9uICpuZ0lmPVwiY3VycmVudEF0dGFjaG1lbnQ/LmZpbGVuYW1lXCIgbWF0LWljb24tYnV0dG9uIG1hdFN1ZmZpeCAoY2xpY2spPVwiY2xlYXJBdHRhY2htZW50KClcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZVwiIGNsaWNrLXN0b3AtcHJvcGFnYXRpb24+XG4gICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG5cbiAgPGJ1dHRvbiAqbmdJZj1cIiF1cGxvYWRJblByb2dyZXNzXCIgbWF0LWljb24tYnV0dG9uIG1hdFN1ZmZpeCAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZVwiPlxuICAgIDxtYXQtaWNvbj5hdHRhY2hfZmlsZTwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuXG4gIDxtYXQtc3Bpbm5lciAqbmdJZj1cInVwbG9hZEluUHJvZ3Jlc3NcIiBtYXRTdWZmaXggW2RpYW1ldGVyXT1cIjE4XCI+PC9tYXQtc3Bpbm5lcj5cblxuICA8aW5wdXQgI2ZpbGVJbnB1dFxuICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgaGlkZGVuXG4gICAgICAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdGVkKCRldmVudClcIj5cblxuICA8bWF0LWhpbnQgKm5nSWY9XCJlcnJvclwiIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPnt7IGVycm9yIH19PC9tYXQtaGludD5cbjwvbWF0LWZvcm0tZmllbGQ+XG4iXX0=
@@ -0,0 +1,52 @@
1
+ import { Component, Inject } from '@angular/core';
2
+ import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
3
+ import { base64ToFile } from 'ngx-image-cropper';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/material/dialog";
6
+ import * as i2 from "@angular/material/button";
7
+ import * as i3 from "@angular/material/icon";
8
+ import * as i4 from "ngx-image-cropper";
9
+ import * as i5 from "@angular/flex-layout/flex";
10
+ export class ImageCropperComponent {
11
+ constructor(dialogRef, data) {
12
+ this.dialogRef = dialogRef;
13
+ this.data = data;
14
+ this.maintainAspectRatio = true;
15
+ this.aspectRatio = 1;
16
+ this.resizeToWidth = 100;
17
+ this.format = 'png';
18
+ this.croppedImage = '';
19
+ this.imageChangedEvent = this.data.imageChangedEvent;
20
+ this.maintainAspectRatio = this.data.maintainAspectRatio || this.maintainAspectRatio;
21
+ this.aspectRatio = this.data.aspectRatio || this.aspectRatio;
22
+ this.resizeToWidth = this.data.resizeToWidth || this.resizeToWidth;
23
+ this.format = this.data.format || this.format;
24
+ }
25
+ imageCropped(event) {
26
+ this.croppedImage = event.base64;
27
+ }
28
+ loadImageFailed() {
29
+ this.dialogRef.close();
30
+ }
31
+ onCropComplete() {
32
+ let file = base64ToFile(this.croppedImage);
33
+ this.dialogRef.close(file);
34
+ }
35
+ onCancel() {
36
+ this.dialogRef.close();
37
+ }
38
+ }
39
+ ImageCropperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ImageCropperComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
40
+ ImageCropperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ImageCropperComponent, selector: "mantle-image-cropper", ngImport: i0, template: "<div mat-dialog-title fxLayout=\"row\" fxLayoutAlign=\"center center\" class=\"dialog-title-section\">\n <h2 fxFlex=\"1 1 auto\">Crop Image</h2>\n <button fxFlex=\"0 0 auto\" mat-icon-button tabindex=\"-1\" (click)=\"onCancel()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n<mat-dialog-content>\n <div class=\"cropper-wrapper\" fxLayout=\"row\" fxLayoutAlign=\"start\" fxLayoutGap=\"32px\">\n <div fxFlex=\"1 0 1px\">\n <h5>Original</h5>\n </div>\n <div fxFlex=\"0 0 100px\">\n <h5>Preview</h5>\n </div>\n </div>\n\n <div class=\"cropper-wrapper\" fxLayout=\"row\" fxLayoutAlign=\"start\" fxLayoutGap=\"32px\">\n\n <image-cropper\n [imageChangedEvent]=\"imageChangedEvent\"\n [maintainAspectRatio]=\"maintainAspectRatio\"\n [aspectRatio]=\"aspectRatio\"\n [resizeToWidth]=\"resizeToWidth\"\n format=\"png\"\n (imageCropped)=\"imageCropped($event)\"\n (loadImageFailed)=\"loadImageFailed()\">\n </image-cropper>\n\n <div fxFlex=\"0 0 100px\" class=\"preview-section\">\n <img [src]=\"croppedImage\" />\n </div>\n </div>\n</mat-dialog-content>\n<mat-dialog-actions fxLayout=\"row\" fxLayoutAlign=\"end\" class=\"actions-section\">\n <button fxFlex=\"0 0 auto\" mat-button (click)=\"onCropComplete()\">Save</button>\n</mat-dialog-actions>\n", styles: [".dialog-title-section h2{margin:0;padding-left:16px}.cropper-wrapper{max-width:532px}.preview-section img{width:100%;border:1px solid lightgrey}.actions-section button{text-transform:uppercase}\n"], components: [{ 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"] }, { type: i4.ImageCropperComponent, selector: "image-cropper", inputs: ["format", "transform", "maintainAspectRatio", "aspectRatio", "resizeToWidth", "resizeToHeight", "cropperMinWidth", "cropperMinHeight", "cropperMaxHeight", "cropperMaxWidth", "cropperStaticWidth", "cropperStaticHeight", "canvasRotation", "initialStepSize", "roundCropper", "onlyScaleDown", "imageQuality", "autoCrop", "backgroundColor", "containWithinAspectRatio", "hideResizeSquares", "cropper", "alignImage", "disabled", "imageChangedEvent", "imageURL", "imageBase64", "imageFile"], outputs: ["imageCropped", "startCropImage", "imageLoaded", "cropperReady", "loadImageFailed"] }], directives: [{ type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i5.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i5.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i5.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }] });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ImageCropperComponent, decorators: [{
42
+ type: Component,
43
+ args: [{
44
+ selector: 'mantle-image-cropper',
45
+ templateUrl: './image-cropper.component.html',
46
+ styleUrls: ['./image-cropper.component.scss']
47
+ }]
48
+ }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
49
+ type: Inject,
50
+ args: [MAT_DIALOG_DATA]
51
+ }] }]; } });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtY3JvcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZmllbGRzL2ltYWdlLWNyb3BwZXIvaW1hZ2UtY3JvcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZmllbGRzL2ltYWdlLWNyb3BwZXIvaW1hZ2UtY3JvcHBlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBcUIsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7QUFlcEUsTUFBTSxPQUFPLHFCQUFxQjtJQVNoQyxZQUFvQixTQUE4QyxFQUNyQixJQUF3QjtRQURqRCxjQUFTLEdBQVQsU0FBUyxDQUFxQztRQUNyQixTQUFJLEdBQUosSUFBSSxDQUFvQjtRQVA5RCx3QkFBbUIsR0FBWSxJQUFJLENBQUM7UUFDcEMsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFDeEIsa0JBQWEsR0FBVyxHQUFHLENBQUM7UUFDNUIsV0FBTSxHQUFXLEtBQUssQ0FBQztRQUN2QixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUk1QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUNyRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUM7UUFDckYsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzdELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUNuRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDaEQsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUF3QjtRQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDbkMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxJQUFJLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQzs7bUhBakNVLHFCQUFxQiw4Q0FVWixlQUFlO3VHQVZ4QixxQkFBcUIsNERDakJsQyxrMENBb0NBOzRGRG5CYSxxQkFBcUI7a0JBTGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsV0FBVyxFQUFFLGdDQUFnQztvQkFDN0MsU0FBUyxFQUFFLENBQUMsZ0NBQWdDLENBQUM7aUJBQzlDOzswQkFXYyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgSW1hZ2VDcm9wcGVkRXZlbnQsIGJhc2U2NFRvRmlsZSB9IGZyb20gJ25neC1pbWFnZS1jcm9wcGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBJbWFnZUNyb3BwZXJQYXJhbXMge1xuICBpbWFnZUNoYW5nZWRFdmVudDogYW55O1xuICBtYWludGFpbkFzcGVjdFJhdGlvPzogYm9vbGVhbjtcbiAgYXNwZWN0UmF0aW8/OiBudW1iZXI7XG4gIHJlc2l6ZVRvV2lkdGg/OiBudW1iZXI7XG4gIGZvcm1hdD86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFudGxlLWltYWdlLWNyb3BwZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UtY3JvcHBlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ltYWdlLWNyb3BwZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJbWFnZUNyb3BwZXJDb21wb25lbnQge1xuXG4gIHB1YmxpYyBpbWFnZUNoYW5nZWRFdmVudDogYW55O1xuICBwdWJsaWMgbWFpbnRhaW5Bc3BlY3RSYXRpbzogYm9vbGVhbiA9IHRydWU7XG4gIHB1YmxpYyBhc3BlY3RSYXRpbzogbnVtYmVyID0gMTtcbiAgcHVibGljIHJlc2l6ZVRvV2lkdGg6IG51bWJlciA9IDEwMDtcbiAgcHVibGljIGZvcm1hdDogc3RyaW5nID0gJ3BuZyc7XG4gIHB1YmxpYyBjcm9wcGVkSW1hZ2U6IGFueSA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8SW1hZ2VDcm9wcGVyQ29tcG9uZW50PixcbiAgICAgICAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByaXZhdGUgZGF0YTogSW1hZ2VDcm9wcGVyUGFyYW1zKSB7XG4gICAgdGhpcy5pbWFnZUNoYW5nZWRFdmVudCA9IHRoaXMuZGF0YS5pbWFnZUNoYW5nZWRFdmVudDtcbiAgICB0aGlzLm1haW50YWluQXNwZWN0UmF0aW8gPSB0aGlzLmRhdGEubWFpbnRhaW5Bc3BlY3RSYXRpbyB8fCB0aGlzLm1haW50YWluQXNwZWN0UmF0aW87XG4gICAgdGhpcy5hc3BlY3RSYXRpbyA9IHRoaXMuZGF0YS5hc3BlY3RSYXRpbyB8fCB0aGlzLmFzcGVjdFJhdGlvO1xuICAgIHRoaXMucmVzaXplVG9XaWR0aCA9IHRoaXMuZGF0YS5yZXNpemVUb1dpZHRoIHx8IHRoaXMucmVzaXplVG9XaWR0aDtcbiAgICB0aGlzLmZvcm1hdCA9IHRoaXMuZGF0YS5mb3JtYXQgfHwgdGhpcy5mb3JtYXQ7XG4gIH1cblxuICBpbWFnZUNyb3BwZWQoZXZlbnQ6IEltYWdlQ3JvcHBlZEV2ZW50KSB7XG4gICAgdGhpcy5jcm9wcGVkSW1hZ2UgPSBldmVudC5iYXNlNjQ7XG4gIH1cblxuICBsb2FkSW1hZ2VGYWlsZWQoKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxuXG4gIG9uQ3JvcENvbXBsZXRlKCkge1xuICAgIGxldCBmaWxlID0gYmFzZTY0VG9GaWxlKHRoaXMuY3JvcHBlZEltYWdlKTtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShmaWxlKTtcbiAgfVxuXG4gIG9uQ2FuY2VsKCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gIH1cblxufVxuIiwiPGRpdiBtYXQtZGlhbG9nLXRpdGxlIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBjbGFzcz1cImRpYWxvZy10aXRsZS1zZWN0aW9uXCI+XG4gIDxoMiBmeEZsZXg9XCIxIDEgYXV0b1wiPkNyb3AgSW1hZ2U8L2gyPlxuICA8YnV0dG9uIGZ4RmxleD1cIjAgMCBhdXRvXCIgbWF0LWljb24tYnV0dG9uIHRhYmluZGV4PVwiLTFcIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPlxuICAgIDxtYXQtaWNvbj5jYW5jZWw8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuPG1hdC1kaWFsb2ctY29udGVudD5cbiAgPGRpdiBjbGFzcz1cImNyb3BwZXItd3JhcHBlclwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0XCIgZnhMYXlvdXRHYXA9XCIzMnB4XCI+XG4gICAgPGRpdiBmeEZsZXg9XCIxIDAgMXB4XCI+XG4gICAgICA8aDU+T3JpZ2luYWw8L2g1PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgZnhGbGV4PVwiMCAwIDEwMHB4XCI+XG4gICAgICA8aDU+UHJldmlldzwvaDU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjcm9wcGVyLXdyYXBwZXJcIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzdGFydFwiIGZ4TGF5b3V0R2FwPVwiMzJweFwiPlxuXG4gICAgPGltYWdlLWNyb3BwZXJcbiAgICAgICAgW2ltYWdlQ2hhbmdlZEV2ZW50XT1cImltYWdlQ2hhbmdlZEV2ZW50XCJcbiAgICAgICAgW21haW50YWluQXNwZWN0UmF0aW9dPVwibWFpbnRhaW5Bc3BlY3RSYXRpb1wiXG4gICAgICAgIFthc3BlY3RSYXRpb109XCJhc3BlY3RSYXRpb1wiXG4gICAgICAgIFtyZXNpemVUb1dpZHRoXT1cInJlc2l6ZVRvV2lkdGhcIlxuICAgICAgICBmb3JtYXQ9XCJwbmdcIlxuICAgICAgICAoaW1hZ2VDcm9wcGVkKT1cImltYWdlQ3JvcHBlZCgkZXZlbnQpXCJcbiAgICAgICAgKGxvYWRJbWFnZUZhaWxlZCk9XCJsb2FkSW1hZ2VGYWlsZWQoKVwiPlxuICAgIDwvaW1hZ2UtY3JvcHBlcj5cblxuICAgIDxkaXYgZnhGbGV4PVwiMCAwIDEwMHB4XCIgY2xhc3M9XCJwcmV2aWV3LXNlY3Rpb25cIj5cbiAgICAgIDxpbWcgW3NyY109XCJjcm9wcGVkSW1hZ2VcIiAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuPG1hdC1kaWFsb2ctYWN0aW9ucyBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJlbmRcIiBjbGFzcz1cImFjdGlvbnMtc2VjdGlvblwiPlxuICA8YnV0dG9uIGZ4RmxleD1cIjAgMCBhdXRvXCIgbWF0LWJ1dHRvbiAoY2xpY2spPVwib25Dcm9wQ29tcGxldGUoKVwiPlNhdmU8L2J1dHRvbj5cbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuIl19