@valtimo/components 4.15.2 → 4.16.0-next-main.19

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 (291) hide show
  1. package/bundles/valtimo-components.umd.js +412 -306
  2. package/bundles/valtimo-components.umd.js.map +1 -1
  3. package/bundles/valtimo-components.umd.min.js +2 -2
  4. package/bundles/valtimo-components.umd.min.js.map +1 -1
  5. package/esm2015/lib/components/alert/alert.component.js +140 -0
  6. package/esm2015/lib/{topbar/topbar.module.js → components/alert/alert.module.js} +7 -11
  7. package/esm2015/lib/components/alert/alert.service.js +81 -0
  8. package/esm2015/lib/components/bpmn-js-diagram/bpmn-js-diagram.component.js +160 -0
  9. package/esm2015/lib/{alert/alert.module.js → components/bpmn-js-diagram/bpmn-js-diagram.module.js} +6 -6
  10. package/esm2015/lib/components/breadcrumb-navigation/breadcrumb-navigation.component.js +93 -0
  11. package/esm2015/lib/components/breadcrumb-navigation/breadcrumb-navigation.module.js +30 -0
  12. package/esm2015/lib/components/camunda/form/camunda-form.components.js +37 -0
  13. package/esm2015/lib/components/camunda/form/camunda-form.module.js +30 -0
  14. package/esm2015/lib/components/camunda/form/custom/camunda-custom-form.component.js +42 -0
  15. package/esm2015/lib/components/camunda/form/custom/camunda-custom-form.module.js +28 -0
  16. package/esm2015/lib/components/camunda/form/generated/camunda-generated-form.component.js +69 -0
  17. package/esm2015/lib/components/camunda/form/generated/camunda-generated-form.module.js +58 -0
  18. package/esm2015/lib/{camunda → components/camunda}/form/generated/formfield/boolean/camunda-boolean-formfield.component.js +3 -4
  19. package/esm2015/lib/components/camunda/form/generated/formfield/camunda-formfield-generator.directive.js +64 -0
  20. package/esm2015/lib/components/camunda/form/generated/formfield/camunda-formfield.service.js +66 -0
  21. package/esm2015/lib/{camunda → components/camunda}/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.js +5 -3
  22. package/esm2015/lib/components/camunda/form/generated/formfield/date/camunda-date-formfield.component.js +66 -0
  23. package/esm2015/lib/components/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.js +30 -0
  24. package/esm2015/lib/{menu/submenu-item-text.component.js → components/camunda/form/generated/formfield/formfield.model.js} +1 -18
  25. package/esm2015/lib/{camunda → components/camunda}/form/generated/formfield/long/camunda-long-formfield.component.js +3 -4
  26. package/esm2015/lib/{camunda → components/camunda}/form/generated/formfield/string/camunda-string-formfield.component.js +3 -4
  27. package/esm2015/lib/{camunda → components/camunda}/form/generated/formfield/textarea/camunda-textarea-formfield.component.js +3 -4
  28. package/esm2015/lib/components/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.js +35 -0
  29. package/esm2015/lib/components/camunda/form/generated/formfield/validation/date.validators.js +60 -0
  30. package/esm2015/lib/{form-io/form-io-builder.component.js → components/card/card.component.js} +15 -18
  31. package/esm2015/lib/components/card/card.module.js +28 -0
  32. package/esm2015/lib/{camunda/form/generated/formfield/formfield.model.js → components/components.module.js} +7 -1
  33. package/esm2015/lib/{data-list → components/data-list}/data-list.component.js +2 -3
  34. package/esm2015/lib/components/data-list/data-list.module.js +28 -0
  35. package/esm2015/lib/components/dropzone/dropzone.component.js +143 -0
  36. package/esm2015/lib/components/dropzone/dropzone.module.js +32 -0
  37. package/esm2015/lib/components/field-auto-focus/field-auto-focus.directive.js +35 -0
  38. package/esm2015/lib/components/field-auto-focus/field-auto-focus.module.js +28 -0
  39. package/esm2015/lib/{view-content/type-converters/enumTypeConverter.js → components/file-size/file-size.module.js} +12 -8
  40. package/esm2015/lib/components/file-size/file-size.pipe.js +38 -0
  41. package/esm2015/lib/components/filter-sidebar/filter-sidebar.component.js +46 -0
  42. package/esm2015/lib/components/filter-sidebar/filter-sidebar.module.js +28 -0
  43. package/esm2015/lib/components/form-io/form-io-builder.component.js +38 -0
  44. package/esm2015/lib/components/form-io/form-io-uploader/form-io-uploader-edit-form.js +90 -0
  45. package/esm2015/lib/components/form-io/form-io-uploader/form-io-uploader.component.js +74 -0
  46. package/esm2015/lib/components/form-io/form-io-uploader/form-io-uploader.formio.js +26 -0
  47. package/esm2015/lib/components/form-io/form-io.component.js +163 -0
  48. package/esm2015/lib/components/form-io/form-io.module.js +56 -0
  49. package/esm2015/lib/components/form-io/formio-config.js +22 -0
  50. package/esm2015/lib/components/form-io/services/form-io-dom.service.js +23 -0
  51. package/esm2015/lib/components/form-io/services/form-io-state.service.js +24 -0
  52. package/esm2015/lib/components/left-sidebar/left-sidebar.component.js +114 -0
  53. package/esm2015/lib/components/left-sidebar/left-sidebar.module.js +30 -0
  54. package/esm2015/lib/components/list/ListFilterPipe.directive.js +31 -0
  55. package/esm2015/lib/components/list/list.component.js +179 -0
  56. package/esm2015/lib/components/list/list.module.js +33 -0
  57. package/esm2015/lib/components/menu/menu-item-text.component.js +38 -0
  58. package/esm2015/lib/components/menu/menu-routing.module.js +27 -0
  59. package/esm2015/lib/components/menu/menu.component.js +65 -0
  60. package/esm2015/lib/components/menu/menu.init.js +34 -0
  61. package/esm2015/lib/components/menu/menu.module.js +34 -0
  62. package/esm2015/lib/components/menu/menu.service.js +126 -0
  63. package/esm2015/lib/components/menu/submenu-item-text.component.js +33 -0
  64. package/esm2015/lib/{modal → components/modal}/modal.component.js +1 -1
  65. package/esm2015/lib/components/modal/modal.module.js +28 -0
  66. package/esm2015/lib/{page-header → components/page-header}/page-header.component.js +1 -1
  67. package/esm2015/lib/components/page-header/page-header.module.js +30 -0
  68. package/esm2015/lib/components/page-title/page-title.component.js +76 -0
  69. package/esm2015/lib/components/page-title/page-title.module.js +29 -0
  70. package/esm2015/lib/components/progress-bar/progress-bar.component.js +26 -0
  71. package/esm2015/lib/{bpmn-js-diagram/bpmn-js-diagram.module.js → components/progress-bar/progress-bar.module.js} +7 -9
  72. package/esm2015/lib/components/right-sidebar/right-sidebar.component.js +133 -0
  73. package/esm2015/lib/components/right-sidebar/right-sidebar.module.js +49 -0
  74. package/esm2015/lib/components/searchable-dropdown/searchable-dropdown.component.js +187 -0
  75. package/esm2015/lib/components/searchable-dropdown/searchable-dropdown.module.js +29 -0
  76. package/esm2015/lib/components/searchable-dropdown-select/searchable-dropdown-select.component.js +52 -0
  77. package/esm2015/lib/components/searchable-dropdown-select/searchable-dropdown-select.module.js +30 -0
  78. package/esm2015/lib/{spinner → components/spinner}/spinner.component.js +6 -4
  79. package/esm2015/lib/components/spinner/spinner.module.js +30 -0
  80. package/esm2015/lib/components/timeline/timeline.component.js +29 -0
  81. package/esm2015/lib/{progress-bar/progress-bar.module.js → components/timeline/timeline.module.js} +8 -9
  82. package/esm2015/lib/{topbar → components/topbar}/topbar.component.js +2 -3
  83. package/esm2015/lib/components/topbar/topbar.module.js +29 -0
  84. package/esm2015/lib/components/uploader/uploader-drag-drop.directive.js +49 -0
  85. package/esm2015/lib/components/uploader/uploader.component.js +68 -0
  86. package/esm2015/lib/components/uploader/uploader.module.js +30 -0
  87. package/esm2015/lib/components/version/version.service.js +38 -0
  88. package/esm2015/lib/components/view-content/type-converters/booleanTypeConverter.js +29 -0
  89. package/esm2015/lib/components/view-content/type-converters/dateTypeConverter.js +30 -0
  90. package/esm2015/lib/components/view-content/type-converters/enumTypeConverter.js +24 -0
  91. package/esm2015/lib/components/view-content/type-converters/relatedFilesTypeConverter.js +24 -0
  92. package/esm2015/lib/components/view-content/type-converters/stringReplaceUnderscoreTypeConverter.js +27 -0
  93. package/esm2015/lib/components/view-content/type-converters/stringTypeConverter.js +24 -0
  94. package/esm2015/lib/components/view-content/type-converters/type-converters.model.js +37 -0
  95. package/esm2015/lib/{view-content → components/view-content}/view-content.service.js +3 -3
  96. package/esm2015/lib/components/webcam/webcam.component.js +102 -0
  97. package/esm2015/lib/components/webcam/webcam.module.js +29 -0
  98. package/esm2015/lib/components/widget/widget.component.js +80 -0
  99. package/esm2015/lib/{file-size/file-size.module.js → components/widget/widget.module.js} +7 -9
  100. package/esm2015/lib/models/alert.model.js +30 -0
  101. package/esm2015/lib/models/form-io.model.js +30 -0
  102. package/esm2015/lib/models/index.js +24 -0
  103. package/esm2015/lib/models/pagination.model.js +1 -0
  104. package/esm2015/lib/models/searchable-dropdown.model.js +1 -0
  105. package/esm2015/lib/models/timeline.model.js +44 -0
  106. package/esm2015/lib/models/version.model.js +16 -0
  107. package/esm2015/public_api.js +67 -66
  108. package/esm2015/valtimo-components.js +23 -23
  109. package/fesm2015/valtimo-components.js +356 -307
  110. package/fesm2015/valtimo-components.js.map +1 -1
  111. package/lib/{alert → components/alert}/alert.component.d.ts +1 -1
  112. package/lib/{alert → components/alert}/alert.module.d.ts +0 -0
  113. package/lib/{alert → components/alert}/alert.service.d.ts +1 -1
  114. package/lib/{bpmn-js-diagram → components/bpmn-js-diagram}/bpmn-js-diagram.component.d.ts +0 -0
  115. package/lib/{bpmn-js-diagram → components/bpmn-js-diagram}/bpmn-js-diagram.module.d.ts +0 -0
  116. package/lib/{breadcrumb-navigation → components/breadcrumb-navigation}/breadcrumb-navigation.component.d.ts +0 -0
  117. package/lib/{breadcrumb-navigation → components/breadcrumb-navigation}/breadcrumb-navigation.module.d.ts +0 -0
  118. package/lib/{camunda → components/camunda}/form/camunda-form.components.d.ts +0 -0
  119. package/lib/{camunda → components/camunda}/form/camunda-form.module.d.ts +0 -0
  120. package/lib/{camunda → components/camunda}/form/custom/camunda-custom-form.component.d.ts +0 -0
  121. package/lib/{camunda → components/camunda}/form/custom/camunda-custom-form.module.d.ts +0 -0
  122. package/lib/{camunda → components/camunda}/form/generated/camunda-generated-form.component.d.ts +0 -0
  123. package/lib/{camunda → components/camunda}/form/generated/camunda-generated-form.module.d.ts +0 -0
  124. package/lib/{camunda → components/camunda}/form/generated/formfield/boolean/camunda-boolean-formfield.component.d.ts +0 -0
  125. package/lib/{camunda → components/camunda}/form/generated/formfield/camunda-formfield-generator.directive.d.ts +0 -0
  126. package/lib/{camunda → components/camunda}/form/generated/formfield/camunda-formfield.service.d.ts +0 -0
  127. package/lib/{camunda → components/camunda}/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.d.ts +0 -0
  128. package/lib/{camunda → components/camunda}/form/generated/formfield/date/camunda-date-formfield.component.d.ts +0 -0
  129. package/lib/{camunda → components/camunda}/form/generated/formfield/enum/camunda-enum-formfield.component.d.ts +0 -0
  130. package/lib/{camunda → components/camunda}/form/generated/formfield/formfield.model.d.ts +0 -0
  131. package/lib/{camunda → components/camunda}/form/generated/formfield/long/camunda-long-formfield.component.d.ts +0 -0
  132. package/lib/{camunda → components/camunda}/form/generated/formfield/string/camunda-string-formfield.component.d.ts +0 -0
  133. package/lib/{camunda → components/camunda}/form/generated/formfield/textarea/camunda-textarea-formfield.component.d.ts +0 -0
  134. package/lib/{camunda → components/camunda}/form/generated/formfield/validation/camunda-formfield-validation.component.d.ts +0 -0
  135. package/lib/{camunda → components/camunda}/form/generated/formfield/validation/date.validators.d.ts +0 -0
  136. package/lib/{card → components/card}/card.component.d.ts +0 -0
  137. package/lib/{card → components/card}/card.module.d.ts +0 -0
  138. package/lib/{components.module.d.ts → components/components.module.d.ts} +0 -0
  139. package/lib/{data-list → components/data-list}/data-list.component.d.ts +0 -0
  140. package/lib/{data-list → components/data-list}/data-list.module.d.ts +0 -0
  141. package/lib/{dropzone → components/dropzone}/dropzone.component.d.ts +0 -0
  142. package/lib/{dropzone → components/dropzone}/dropzone.module.d.ts +0 -0
  143. package/lib/{field-auto-focus → components/field-auto-focus}/field-auto-focus.directive.d.ts +0 -0
  144. package/lib/{field-auto-focus → components/field-auto-focus}/field-auto-focus.module.d.ts +0 -0
  145. package/lib/{file-size → components/file-size}/file-size.module.d.ts +0 -0
  146. package/lib/{file-size → components/file-size}/file-size.pipe.d.ts +0 -0
  147. package/lib/{filter-sidebar → components/filter-sidebar}/filter-sidebar.component.d.ts +0 -0
  148. package/lib/{filter-sidebar → components/filter-sidebar}/filter-sidebar.module.d.ts +0 -0
  149. package/lib/{form-io → components/form-io}/form-io-builder.component.d.ts +0 -0
  150. package/lib/{form-io → components/form-io}/form-io-uploader/form-io-uploader-edit-form.d.ts +0 -0
  151. package/lib/{form-io → components/form-io}/form-io-uploader/form-io-uploader.component.d.ts +1 -1
  152. package/lib/{form-io → components/form-io}/form-io-uploader/form-io-uploader.formio.d.ts +0 -0
  153. package/lib/{form-io → components/form-io}/form-io.component.d.ts +8 -6
  154. package/lib/{form-io → components/form-io}/form-io.module.d.ts +0 -0
  155. package/lib/{form-io → components/form-io}/formio-config.d.ts +0 -0
  156. package/lib/{form-io → components/form-io}/services/form-io-dom.service.d.ts +0 -0
  157. package/lib/{form-io → components/form-io}/services/form-io-state.service.d.ts +0 -0
  158. package/lib/{left-sidebar → components/left-sidebar}/left-sidebar.component.d.ts +0 -0
  159. package/lib/{left-sidebar → components/left-sidebar}/left-sidebar.module.d.ts +0 -0
  160. package/lib/{list → components/list}/ListFilterPipe.directive.d.ts +0 -0
  161. package/lib/{list → components/list}/list.component.d.ts +1 -1
  162. package/lib/{list → components/list}/list.module.d.ts +0 -0
  163. package/lib/{menu → components/menu}/menu-item-text.component.d.ts +1 -1
  164. package/lib/{menu → components/menu}/menu-routing.module.d.ts +0 -0
  165. package/lib/{menu → components/menu}/menu.component.d.ts +1 -1
  166. package/lib/{menu → components/menu}/menu.init.d.ts +0 -0
  167. package/lib/{menu → components/menu}/menu.module.d.ts +0 -0
  168. package/lib/{menu → components/menu}/menu.service.d.ts +1 -1
  169. package/lib/{menu → components/menu}/submenu-item-text.component.d.ts +1 -1
  170. package/lib/{modal → components/modal}/modal.component.d.ts +0 -0
  171. package/lib/{modal → components/modal}/modal.module.d.ts +0 -0
  172. package/lib/{page-header → components/page-header}/page-header.component.d.ts +0 -0
  173. package/lib/{page-header → components/page-header}/page-header.module.d.ts +0 -0
  174. package/lib/{page-title → components/page-title}/page-title.component.d.ts +0 -0
  175. package/lib/{page-title → components/page-title}/page-title.module.d.ts +0 -0
  176. package/lib/{progress-bar → components/progress-bar}/progress-bar.component.d.ts +0 -0
  177. package/lib/{progress-bar → components/progress-bar}/progress-bar.module.d.ts +0 -0
  178. package/lib/{right-sidebar → components/right-sidebar}/right-sidebar.component.d.ts +2 -1
  179. package/lib/{right-sidebar → components/right-sidebar}/right-sidebar.module.d.ts +0 -0
  180. package/lib/{searchable-dropdown → components/searchable-dropdown}/searchable-dropdown.component.d.ts +1 -1
  181. package/lib/{searchable-dropdown → components/searchable-dropdown}/searchable-dropdown.module.d.ts +0 -0
  182. package/lib/{searchable-dropdown-select → components/searchable-dropdown-select}/searchable-dropdown-select.component.d.ts +1 -1
  183. package/lib/{searchable-dropdown-select → components/searchable-dropdown-select}/searchable-dropdown-select.module.d.ts +0 -0
  184. package/lib/{spinner → components/spinner}/spinner.component.d.ts +1 -0
  185. package/lib/{spinner → components/spinner}/spinner.module.d.ts +0 -0
  186. package/lib/{timeline → components/timeline}/timeline.component.d.ts +1 -1
  187. package/lib/{timeline → components/timeline}/timeline.module.d.ts +0 -0
  188. package/lib/{topbar → components/topbar}/topbar.component.d.ts +0 -0
  189. package/lib/{topbar → components/topbar}/topbar.module.d.ts +0 -0
  190. package/lib/{uploader → components/uploader}/uploader-drag-drop.directive.d.ts +0 -0
  191. package/lib/{uploader → components/uploader}/uploader.component.d.ts +1 -2
  192. package/lib/{uploader → components/uploader}/uploader.module.d.ts +0 -0
  193. package/lib/{version → components/version}/version.service.d.ts +1 -1
  194. package/lib/{view-content → components/view-content}/type-converters/booleanTypeConverter.d.ts +0 -0
  195. package/lib/{view-content → components/view-content}/type-converters/dateTypeConverter.d.ts +0 -0
  196. package/lib/{view-content → components/view-content}/type-converters/enumTypeConverter.d.ts +0 -0
  197. package/lib/{view-content → components/view-content}/type-converters/relatedFilesTypeConverter.d.ts +0 -0
  198. package/lib/{view-content → components/view-content}/type-converters/stringReplaceUnderscoreTypeConverter.d.ts +0 -0
  199. package/lib/{view-content → components/view-content}/type-converters/stringTypeConverter.d.ts +0 -0
  200. package/lib/{view-content → components/view-content}/type-converters/type-converters.model.d.ts +0 -0
  201. package/lib/{view-content → components/view-content}/view-content.service.d.ts +0 -0
  202. package/lib/{webcam → components/webcam}/webcam.component.d.ts +0 -0
  203. package/lib/{webcam → components/webcam}/webcam.module.d.ts +0 -0
  204. package/lib/{widget → components/widget}/widget.component.d.ts +0 -0
  205. package/lib/{widget → components/widget}/widget.module.d.ts +0 -0
  206. package/lib/models/alert.model.d.ts +21 -0
  207. package/lib/models/form-io.model.d.ts +27 -0
  208. package/lib/models/index.d.ts +6 -0
  209. package/lib/models/pagination.model.d.ts +7 -0
  210. package/lib/models/searchable-dropdown.model.d.ts +5 -0
  211. package/lib/models/timeline.model.d.ts +23 -0
  212. package/lib/models/version.model.d.ts +4 -0
  213. package/package.json +1 -4
  214. package/public_api.d.ts +66 -65
  215. package/valtimo-components.d.ts +22 -22
  216. package/valtimo-components.metadata.json +1 -1
  217. package/esm2015/lib/alert/alert.component.js +0 -142
  218. package/esm2015/lib/alert/alert.service.js +0 -81
  219. package/esm2015/lib/bpmn-js-diagram/bpmn-js-diagram.component.js +0 -160
  220. package/esm2015/lib/breadcrumb-navigation/breadcrumb-navigation.component.js +0 -93
  221. package/esm2015/lib/breadcrumb-navigation/breadcrumb-navigation.module.js +0 -34
  222. package/esm2015/lib/camunda/form/camunda-form.components.js +0 -37
  223. package/esm2015/lib/camunda/form/camunda-form.module.js +0 -38
  224. package/esm2015/lib/camunda/form/custom/camunda-custom-form.component.js +0 -42
  225. package/esm2015/lib/camunda/form/custom/camunda-custom-form.module.js +0 -34
  226. package/esm2015/lib/camunda/form/generated/camunda-generated-form.component.js +0 -69
  227. package/esm2015/lib/camunda/form/generated/camunda-generated-form.module.js +0 -63
  228. package/esm2015/lib/camunda/form/generated/formfield/camunda-formfield-generator.directive.js +0 -64
  229. package/esm2015/lib/camunda/form/generated/formfield/camunda-formfield.service.js +0 -67
  230. package/esm2015/lib/camunda/form/generated/formfield/date/camunda-date-formfield.component.js +0 -66
  231. package/esm2015/lib/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.js +0 -31
  232. package/esm2015/lib/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.js +0 -36
  233. package/esm2015/lib/camunda/form/generated/formfield/validation/date.validators.js +0 -60
  234. package/esm2015/lib/card/card.component.js +0 -37
  235. package/esm2015/lib/card/card.module.js +0 -30
  236. package/esm2015/lib/components.module.js +0 -22
  237. package/esm2015/lib/data-list/data-list.module.js +0 -30
  238. package/esm2015/lib/dropzone/dropzone.component.js +0 -143
  239. package/esm2015/lib/dropzone/dropzone.module.js +0 -32
  240. package/esm2015/lib/field-auto-focus/field-auto-focus.directive.js +0 -35
  241. package/esm2015/lib/field-auto-focus/field-auto-focus.module.js +0 -32
  242. package/esm2015/lib/file-size/file-size.pipe.js +0 -45
  243. package/esm2015/lib/filter-sidebar/filter-sidebar.component.js +0 -46
  244. package/esm2015/lib/filter-sidebar/filter-sidebar.module.js +0 -30
  245. package/esm2015/lib/form-io/form-io-uploader/form-io-uploader-edit-form.js +0 -90
  246. package/esm2015/lib/form-io/form-io-uploader/form-io-uploader.component.js +0 -72
  247. package/esm2015/lib/form-io/form-io-uploader/form-io-uploader.formio.js +0 -26
  248. package/esm2015/lib/form-io/form-io.component.js +0 -160
  249. package/esm2015/lib/form-io/form-io.module.js +0 -56
  250. package/esm2015/lib/form-io/formio-config.js +0 -22
  251. package/esm2015/lib/form-io/services/form-io-dom.service.js +0 -23
  252. package/esm2015/lib/form-io/services/form-io-state.service.js +0 -24
  253. package/esm2015/lib/left-sidebar/left-sidebar.component.js +0 -114
  254. package/esm2015/lib/left-sidebar/left-sidebar.module.js +0 -34
  255. package/esm2015/lib/list/ListFilterPipe.directive.js +0 -35
  256. package/esm2015/lib/list/list.component.js +0 -177
  257. package/esm2015/lib/list/list.module.js +0 -33
  258. package/esm2015/lib/menu/menu-item-text.component.js +0 -36
  259. package/esm2015/lib/menu/menu-routing.module.js +0 -29
  260. package/esm2015/lib/menu/menu.component.js +0 -65
  261. package/esm2015/lib/menu/menu.init.js +0 -34
  262. package/esm2015/lib/menu/menu.module.js +0 -39
  263. package/esm2015/lib/menu/menu.service.js +0 -127
  264. package/esm2015/lib/modal/modal.module.js +0 -28
  265. package/esm2015/lib/page-header/page-header.module.js +0 -34
  266. package/esm2015/lib/page-title/page-title.component.js +0 -76
  267. package/esm2015/lib/page-title/page-title.module.js +0 -32
  268. package/esm2015/lib/progress-bar/progress-bar.component.js +0 -26
  269. package/esm2015/lib/right-sidebar/right-sidebar.component.js +0 -131
  270. package/esm2015/lib/right-sidebar/right-sidebar.module.js +0 -49
  271. package/esm2015/lib/searchable-dropdown/searchable-dropdown.component.js +0 -185
  272. package/esm2015/lib/searchable-dropdown/searchable-dropdown.module.js +0 -29
  273. package/esm2015/lib/searchable-dropdown-select/searchable-dropdown-select.component.js +0 -52
  274. package/esm2015/lib/searchable-dropdown-select/searchable-dropdown-select.module.js +0 -30
  275. package/esm2015/lib/spinner/spinner.module.js +0 -36
  276. package/esm2015/lib/timeline/timeline.component.js +0 -29
  277. package/esm2015/lib/timeline/timeline.module.js +0 -32
  278. package/esm2015/lib/uploader/uploader-drag-drop.directive.js +0 -49
  279. package/esm2015/lib/uploader/uploader.component.js +0 -70
  280. package/esm2015/lib/uploader/uploader.module.js +0 -33
  281. package/esm2015/lib/version/version.service.js +0 -38
  282. package/esm2015/lib/view-content/type-converters/booleanTypeConverter.js +0 -29
  283. package/esm2015/lib/view-content/type-converters/dateTypeConverter.js +0 -30
  284. package/esm2015/lib/view-content/type-converters/relatedFilesTypeConverter.js +0 -24
  285. package/esm2015/lib/view-content/type-converters/stringReplaceUnderscoreTypeConverter.js +0 -27
  286. package/esm2015/lib/view-content/type-converters/stringTypeConverter.js +0 -24
  287. package/esm2015/lib/view-content/type-converters/type-converters.model.js +0 -37
  288. package/esm2015/lib/webcam/webcam.component.js +0 -103
  289. package/esm2015/lib/webcam/webcam.module.js +0 -32
  290. package/esm2015/lib/widget/widget.component.js +0 -80
  291. package/esm2015/lib/widget/widget.module.js +0 -30
@@ -0,0 +1,133 @@
1
+ /*
2
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { HttpClient } from '@angular/common/http';
17
+ import { Component } from '@angular/core';
18
+ import { FormBuilder, FormControl } from '@angular/forms';
19
+ import { TranslateService } from '@ngx-translate/core';
20
+ import { ContextService } from '@valtimo/context';
21
+ import { UserProviderService } from '@valtimo/security';
22
+ import { NGXLogger } from 'ngx-logger';
23
+ import { combineLatest } from 'rxjs';
24
+ import { VersionService } from '../version/version.service';
25
+ export class RightSidebarComponent {
26
+ constructor(userProviderService, formBuilder, versionService, translate, contextService, http, logger) {
27
+ this.userProviderService = userProviderService;
28
+ this.formBuilder = formBuilder;
29
+ this.versionService = versionService;
30
+ this.translate = translate;
31
+ this.contextService = contextService;
32
+ this.http = http;
33
+ this.logger = logger;
34
+ }
35
+ ngOnInit() {
36
+ this.frequencies = [
37
+ 'emailNotificationOnMonday',
38
+ 'emailNotificationOnTuesday',
39
+ 'emailNotificationOnWednesday',
40
+ 'emailNotificationOnThursday',
41
+ 'emailNotificationOnFriday',
42
+ 'emailNotificationOnSaturday',
43
+ 'emailNotificationOnSunday',
44
+ ];
45
+ this.settingsForm = this.formBuilder.group({
46
+ taskNotifications: new FormControl(false),
47
+ emailNotifications: new FormControl(false),
48
+ emailNotificationOnMonday: new FormControl(false),
49
+ emailNotificationOnTuesday: new FormControl(false),
50
+ emailNotificationOnWednesday: new FormControl(false),
51
+ emailNotificationOnThursday: new FormControl(false),
52
+ emailNotificationOnFriday: new FormControl(false),
53
+ emailNotificationOnSaturday: new FormControl(false),
54
+ emailNotificationOnSunday: new FormControl(false),
55
+ });
56
+ this.getUserSettings();
57
+ }
58
+ loadContextSwitch() {
59
+ combineLatest([
60
+ this.contextService.getUserContexts(),
61
+ this.contextService.getUserContextActive(),
62
+ ]).subscribe(([userContexts, userContextActive]) => {
63
+ this.userContextActive = userContextActive;
64
+ this.userContexts = userContexts;
65
+ });
66
+ }
67
+ setUserContext(contextId) {
68
+ this.contextService.setUserContext(contextId).subscribe();
69
+ location.href = '/';
70
+ }
71
+ loadUserSettingsTab() {
72
+ this.userProviderService.getEmailNotificationSettings().subscribe(results => {
73
+ if (results !== null) {
74
+ this.settingsForm.controls.taskNotifications.setValue(results.taskNotifications);
75
+ this.settingsForm.controls.emailNotifications.setValue(results.emailNotifications);
76
+ this.settingsForm.controls.emailNotificationOnMonday.setValue(results.emailNotificationOnMonday);
77
+ this.settingsForm.controls.emailNotificationOnTuesday.setValue(results.emailNotificationOnTuesday);
78
+ this.settingsForm.controls.emailNotificationOnWednesday.setValue(results.emailNotificationOnWednesday);
79
+ this.settingsForm.controls.emailNotificationOnThursday.setValue(results.emailNotificationOnThursday);
80
+ this.settingsForm.controls.emailNotificationOnFriday.setValue(results.emailNotificationOnFriday);
81
+ this.settingsForm.controls.emailNotificationOnSaturday.setValue(results.emailNotificationOnSaturday);
82
+ this.settingsForm.controls.emailNotificationOnSunday.setValue(results.emailNotificationOnSunday);
83
+ }
84
+ else {
85
+ // default is true in the database, even if api returns no content
86
+ this.settingsForm.controls.taskNotifications.setValue(true);
87
+ }
88
+ });
89
+ this.getVersion();
90
+ }
91
+ getUserSettings() {
92
+ this.userProviderService.getUserSubject().subscribe(userIdentity => {
93
+ this.logger.debug('user', userIdentity);
94
+ this.userIdentity = userIdentity;
95
+ this.loadContextSwitch();
96
+ });
97
+ }
98
+ getVersion() {
99
+ this.versionService.getVersion().subscribe((build) => {
100
+ this.build = build;
101
+ });
102
+ }
103
+ onSettingsSubmit() {
104
+ if (!this.settingsForm.pristine) {
105
+ this.userProviderService.updateEmailNotificationSettings(this.settingsForm.value).subscribe();
106
+ }
107
+ }
108
+ updateUserLanguage(langKey) {
109
+ this.translate.use(langKey).subscribe(() => {
110
+ localStorage.setItem('langKey', langKey);
111
+ });
112
+ }
113
+ logout() {
114
+ this.userProviderService.logout();
115
+ }
116
+ }
117
+ RightSidebarComponent.decorators = [
118
+ { type: Component, args: [{
119
+ selector: 'valtimo-right-sidebar',
120
+ template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<nav class=\"be-right-sidebar\">\n <div class=\"sb-content\">\n <div class=\"tab-navigation\">\n <ul class=\"nav nav-tabs nav-justified\" role=\"tablist\">\n <li class=\"nav-item\" role=\"presentation\">\n <a\n class=\"nav-link active\"\n href=\"#account\"\n aria-controls=\"account\"\n role=\"tab\"\n data-toggle=\"tab\"\n translate=\"account.title\"\n ></a>\n </li>\n <li class=\"nav-item\" role=\"presentation\">\n <a\n class=\"nav-link\"\n (click)=\"loadUserSettingsTab()\"\n href=\"#settings\"\n aria-controls=\"settings\"\n role=\"tab\"\n data-toggle=\"tab\"\n translate=\"settings.title\"\n ></a>\n </li>\n </ul>\n </div>\n <div class=\"tab-panel\">\n <div class=\"tab-content\">\n <!-- account -->\n <div class=\"tab-pane tab-account active\" id=\"account\" role=\"tabpanel\">\n <div class=\"p-3 be-scroller-settings\" *ngIf=\"userIdentity\">\n <div class=\"content\">\n <div class=\"category-title border-0 m-0\">\n <div class=\"p-0 text-muted\">\n <dl class=\"row mb-0\">\n <dt class=\"col-sm-3\">Email</dt>\n <dd class=\"col-sm-9 mb-0 text-bold\">{{ userIdentity.email }}</dd>\n <ng-container *ngIf=\"userIdentity.username\">\n <dt class=\"col-sm-3\">Username</dt>\n <dd class=\"col-sm-9 mb-0 text-bold\">{{ userIdentity.username }}</dd>\n </ng-container>\n <dt class=\"col-sm-3\">Name</dt>\n <dd class=\"col-sm-9 mb-0 text-bold\">\n {{ userIdentity.firstName + ' ' + userIdentity.lastName }}\n </dd>\n </dl>\n </div>\n </div>\n <!-- context switch -->\n <ul class=\"settings-list\" *ngIf=\"userContexts?.length > 1\">\n <li ngbTooltip=\"{{ 'settings.context.title' | translate }}\">\n <select\n class=\"form-control\"\n #contextSelect\n (change)=\"setUserContext(+contextSelect.value)\"\n >\n <option\n *ngFor=\"let context of userContexts\"\n [value]=\"context.id\"\n [selected]=\"context.id === userContextActive.id\"\n >\n {{ context.name }}\n </option>\n </select>\n </li>\n </ul>\n <ul class=\"list-group list-group-flush m-0\">\n <li class=\"bg-transparent list-group-item px-0\">\n <a\n href=\"https://docs.valtimo.nl\"\n target=\"_blank\"\n class=\"d-block\"\n translate=\"account.links.help\"\n ></a>\n </li>\n <li class=\"bg-transparent list-group-item px-0\">\n <a\n href=\"https://www.valtimo.nl/feedback/\"\n target=\"_blank\"\n class=\"d-block\"\n translate=\"account.links.feedback\"\n ></a>\n </li>\n <li class=\"bg-transparent list-group-item px-0\">\n <a\n href=\"https://forum.valtimo.nl\"\n target=\"_blank\"\n class=\"d-block\"\n translate=\"account.links.forum\"\n ></a>\n </li>\n <li class=\"bg-transparent list-group-item px-0\">\n <a\n href=\"javascript:void(0)\"\n class=\"d-block\"\n (click)=\"logout()\"\n translate=\"account.links.signOut\"\n ></a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n\n <!-- settings -->\n <div class=\"tab-pane tab-settings\" id=\"settings\" role=\"tabpanel\">\n <div class=\"p-3 be-scroller-settings\">\n <div class=\"content\">\n <span class=\"category-title\" translate=\"settings.language.title\"></span>\n <ul class=\"settings-list\">\n <li>\n <select\n class=\"form-control\"\n #langSelect\n (change)=\"updateUserLanguage(langSelect.value)\"\n >\n <option\n *ngFor=\"let lang of translate.getLangs()\"\n [value]=\"lang\"\n [selected]=\"lang === translate.currentLang\"\n >\n {{ 'settings.language.options.' + lang | translate }}\n </option>\n </select>\n </li>\n </ul>\n\n <form [formGroup]=\"settingsForm\">\n <span class=\"category-title\" translate=\"settings.notification.title\"></span>\n <ul class=\"settings-list m-0\">\n <li>\n <div class=\"switch-button switch-button-sm switch-button-success\">\n <input\n type=\"checkbox\"\n formControlName=\"taskNotifications\"\n id=\"taskNotifications\"\n (ngModelChange)=\"onSettingsSubmit()\"\n /><span> <label for=\"taskNotifications\"></label></span>\n </div>\n <span class=\"name\" translate=\"settings.notification.taskNotifications\"></span>\n <div\n class=\"text-muted info-text\"\n translate=\"settings.notification.taskNotificationsIntro\"\n ></div>\n </li>\n\n <li>\n <div class=\"switch-button switch-button-sm switch-button-success\">\n <input\n type=\"checkbox\"\n formControlName=\"emailNotifications\"\n id=\"emailNotifications\"\n (ngModelChange)=\"onSettingsSubmit()\"\n /><span> <label for=\"emailNotifications\"></label></span>\n </div>\n <span class=\"name\" translate=\"settings.notification.emailNotifications\"></span>\n <div\n class=\"text-muted info-text\"\n translate=\"settings.notification.emailNotificationsIntro\"\n ></div>\n </li>\n </ul>\n\n <div *ngIf=\"settingsForm.value.emailNotifications\">\n <ul class=\"settings-list\">\n <li *ngFor=\"let frequency of frequencies\">\n <div class=\"switch-button switch-button-sm switch-button-success\">\n <input\n type=\"checkbox\"\n formControlName=\"{{ frequency }}\"\n id=\"{{ frequency }}\"\n (ngModelChange)=\"onSettingsSubmit()\"\n /><span> <label for=\"{{ frequency }}\"></label></span>\n </div>\n <span class=\"name\">{{\n 'settings.notification.' + frequency | translate\n }}</span>\n </li>\n </ul>\n </div>\n </form>\n\n <div class=\"version-holder\">\n <span class=\"category-title\" translate=\"settings.version.title\"></span>\n <ul class=\"settings-list\">\n <li *ngIf=\"build\">\n <div class=\"name\">{{ build.title }}</div>\n <div class=\"text-muted\">{{ build.version }}</div>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</nav>\n",
121
+ styles: [".be-scroller-settings{padding-bottom:150px!important}.version-holder{background-color:#f8f9fa;bottom:0;position:fixed;width:259px}.info-text{line-height:1em!important;margin-bottom:15px;padding-right:70px}"]
122
+ },] }
123
+ ];
124
+ RightSidebarComponent.ctorParameters = () => [
125
+ { type: UserProviderService },
126
+ { type: FormBuilder },
127
+ { type: VersionService },
128
+ { type: TranslateService },
129
+ { type: ContextService },
130
+ { type: HttpClient },
131
+ { type: NGXLogger }
132
+ ];
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlnaHQtc2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL3RtcC9qZW5raW5zLWE3MzRhYWRjL3dvcmtzcGFjZS9WYWx0aW1vXy1fQW5ndWxhcl9MaWJyYXJpZXNfbWFpbi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcmlnaHQtc2lkZWJhci9yaWdodC1zaWRlYmFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsU0FBUyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBQyxXQUFXLEVBQUUsV0FBVyxFQUFZLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBR2hELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNuQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFPMUQsTUFBTSxPQUFPLHFCQUFxQjtJQVFoQyxZQUNVLG1CQUF3QyxFQUN4QyxXQUF3QixFQUN4QixjQUE4QixFQUMvQixTQUEyQixFQUMxQixjQUE4QixFQUM5QixJQUFnQixFQUNoQixNQUFpQjtRQU5qQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUMvQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtR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S0FBSyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDL0Y7SUFDSCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsT0FBZTtRQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3pDLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDcEMsQ0FBQzs7O1lBNUhGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsdUJBQXVCO2dCQUNqQyx3NFJBQTZDOzthQUU5Qzs7O1lBVE8sbUJBQW1CO1lBTG5CLFdBQVc7WUFRWCxjQUFjO1lBUGQsZ0JBQWdCO1lBQ2hCLGNBQWM7WUFKZCxVQUFVO1lBUVYsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIwIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtDb250ZXh0U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vY29udGV4dCc7XG5pbXBvcnQge1ZhbHRpbW9WZXJzaW9ufSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtVc2VySWRlbnRpdHl9IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5pbXBvcnQge1VzZXJQcm92aWRlclNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL3NlY3VyaXR5JztcbmltcG9ydCB7TkdYTG9nZ2VyfSBmcm9tICduZ3gtbG9nZ2VyJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1ZlcnNpb25TZXJ2aWNlfSBmcm9tICcuLi92ZXJzaW9uL3ZlcnNpb24uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tcmlnaHQtc2lkZWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yaWdodC1zaWRlYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmlnaHQtc2lkZWJhci5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFJpZ2h0U2lkZWJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyB1c2VySWRlbnRpdHk6IFVzZXJJZGVudGl0eTtcbiAgcHVibGljIGZyZXF1ZW5jaWVzOiBBcnJheTxhbnk+O1xuICBwdWJsaWMgc2V0dGluZ3NGb3JtOiBGb3JtR3JvdXA7XG4gIHB1YmxpYyBidWlsZDogVmFsdGltb1ZlcnNpb247XG4gIHB1YmxpYyB1c2VyQ29udGV4dHM6IEFycmF5PGFueT47XG4gIHB1YmxpYyB1c2VyQ29udGV4dEFjdGl2ZTogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdXNlclByb3ZpZGVyU2VydmljZTogVXNlclByb3ZpZGVyU2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHZlcnNpb25TZXJ2aWNlOiBWZXJzaW9uU2VydmljZSxcbiAgICBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGxvZ2dlcjogTkdYTG9nZ2VyXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZyZXF1ZW5jaWVzID0gW1xuICAgICAgJ2VtYWlsTm90aWZpY2F0aW9uT25Nb25kYXknLFxuICAgICAgJ2VtYWlsTm90aWZpY2F0aW9uT25UdWVzZGF5JyxcbiAgICAgICdlbWFpbE5vdGlmaWNhdGlvbk9uV2VkbmVzZGF5JyxcbiAgICAgICdlbWFpbE5vdGlmaWNhdGlvbk9uVGh1cnNkYXknLFxuICAgICAgJ2VtYWlsTm90aWZpY2F0aW9uT25GcmlkYXknLFxuICAgICAgJ2VtYWlsTm90aWZpY2F0aW9uT25TYXR1cmRheScsXG4gICAgICAnZW1haWxOb3RpZmljYXRpb25PblN1bmRheScsXG4gICAgXTtcbiAgICB0aGlzLnNldHRpbmdzRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgdGFza05vdGlmaWNhdGlvbnM6IG5ldyBGb3JtQ29udHJvbChmYWxzZSksXG4gICAgICBlbWFpbE5vdGlmaWNhdGlvbnM6IG5ldyBGb3JtQ29udHJvbChmYWxzZSksXG4gICAgICBlbWFpbE5vdGlmaWNhdGlvbk9uTW9uZGF5OiBuZXcgRm9ybUNvbnRyb2woZmFsc2UpLFxuICAgICAgZW1haWxOb3RpZmljYXRpb25PblR1ZXNkYXk6IG5ldyBGb3JtQ29udHJvbChmYWxzZSksXG4gICAgICBlbWFpbE5vdGlmaWNhdGlvbk9uV2VkbmVzZGF5OiBuZXcgRm9ybUNvbnRyb2woZmFsc2UpLFxuICAgICAgZW1haWxOb3RpZmljYXRpb25PblRodXJzZGF5OiBuZXcgRm9ybUNvbnRyb2woZmFsc2UpLFxuICAgICAgZW1haWxOb3RpZmljYXRpb25PbkZyaWRheTogbmV3IEZvcm1Db250cm9sKGZhbHNlKSxcbiAgICAgIGVtYWlsTm90aWZpY2F0aW9uT25TYXR1cmRheTogbmV3IEZvcm1Db250cm9sKGZhbHNlKSxcbiAgICAgIGVtYWlsTm90aWZpY2F0aW9uT25TdW5kYXk6IG5ldyBGb3JtQ29udHJvbChmYWxzZSksXG4gICAgfSk7XG4gICAgdGhpcy5nZXRVc2VyU2V0dGluZ3MoKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZENvbnRleHRTd2l0Y2goKSB7XG4gICAgY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLmdldFVzZXJDb250ZXh0cygpLFxuICAgICAgdGhpcy5jb250ZXh0U2VydmljZS5nZXRVc2VyQ29udGV4dEFjdGl2ZSgpLFxuICAgIF0pLnN1YnNjcmliZSgoW3VzZXJDb250ZXh0cywgdXNlckNvbnRleHRBY3RpdmVdKSA9PiB7XG4gICAgICB0aGlzLnVzZXJDb250ZXh0QWN0aXZlID0gdXNlckNvbnRleHRBY3RpdmU7XG4gICAgICB0aGlzLnVzZXJDb250ZXh0cyA9IHVzZXJDb250ZXh0cztcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRVc2VyQ29udGV4dChjb250ZXh0SWQ6IG51bWJlcikge1xuICAgIHRoaXMuY29udGV4dFNlcnZpY2Uuc2V0VXNlckNvbnRleHQoY29udGV4dElkKS5zdWJzY3JpYmUoKTtcbiAgICBsb2NhdGlvbi5ocmVmID0gJy8nO1xuICB9XG5cbiAgcHVibGljIGxvYWRVc2VyU2V0dGluZ3NUYWIoKSB7XG4gICAgdGhpcy51c2VyUHJvdmlkZXJTZXJ2aWNlLmdldEVtYWlsTm90aWZpY2F0aW9uU2V0dGluZ3MoKS5zdWJzY3JpYmUocmVzdWx0cyA9PiB7XG4gICAgICBpZiAocmVzdWx0cyAhPT0gbnVsbCkge1xuICAgICAgICB0aGlzLnNldHRpbmdzRm9ybS5jb250cm9scy50YXNrTm90aWZpY2F0aW9ucy5zZXRWYWx1ZShyZXN1bHRzLnRhc2tOb3RpZmljYXRpb25zKTtcbiAgICAgICAgdGhpcy5zZXR0aW5nc0Zvcm0uY29udHJvbHMuZW1haWxOb3RpZmljYXRpb25zLnNldFZhbHVlKHJlc3VsdHMuZW1haWxOb3RpZmljYXRpb25zKTtcbiAgICAgICAgdGhpcy5zZXR0aW5nc0Zvcm0uY29udHJvbHMuZW1haWxOb3RpZmljYXRpb25Pbk1vbmRheS5zZXRWYWx1ZShcbiAgICAgICAgICByZXN1bHRzLmVtYWlsTm90aWZpY2F0aW9uT25Nb25kYXlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXR0aW5nc0Zvcm0uY29udHJvbHMuZW1haWxOb3RpZmljYXRpb25PblR1ZXNkYXkuc2V0VmFsdWUoXG4gICAgICAgICAgcmVzdWx0cy5lbWFpbE5vdGlmaWNhdGlvbk9uVHVlc2RheVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldHRpbmdzRm9ybS5jb250cm9scy5lbWFpbE5vdGlmaWNhdGlvbk9uV2VkbmVzZGF5LnNldFZhbHVlKFxuICAgICAgICAgIHJlc3VsdHMuZW1haWxOb3RpZmljYXRpb25PbldlZG5lc2RheVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldHRpbmdzRm9ybS5jb250cm9scy5lbWFpbE5vdGlmaWNhdGlvbk9uVGh1cnNkYXkuc2V0VmFsdWUoXG4gICAgICAgICAgcmVzdWx0cy5lbWFpbE5vdGlmaWNhdGlvbk9uVGh1cnNkYXlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXR0aW5nc0Zvcm0uY29udHJvbHMuZW1haWxOb3RpZmljYXRpb25PbkZyaWRheS5zZXRWYWx1ZShcbiAgICAgICAgICByZXN1bHRzLmVtYWlsTm90aWZpY2F0aW9uT25GcmlkYXlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXR0aW5nc0Zvcm0uY29udHJvbHMuZW1haWxOb3RpZmljYXRpb25PblNhdHVyZGF5LnNldFZhbHVlKFxuICAgICAgICAgIHJlc3VsdHMuZW1haWxOb3RpZmljYXRpb25PblNhdHVyZGF5XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3NGb3JtLmNvbnRyb2xzLmVtYWlsTm90aWZpY2F0aW9uT25TdW5kYXkuc2V0VmFsdWUoXG4gICAgICAgICAgcmVzdWx0cy5lbWFpbE5vdGlmaWNhdGlvbk9uU3VuZGF5XG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBkZWZhdWx0IGlzIHRydWUgaW4gdGhlIGRhdGFiYXNlLCBldmVuIGlmIGFwaSByZXR1cm5zIG5vIGNvbnRlbnRcbiAgICAgICAgdGhpcy5zZXR0aW5nc0Zvcm0uY29udHJvbHMudGFza05vdGlmaWNhdGlvbnMuc2V0VmFsdWUodHJ1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5nZXRWZXJzaW9uKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VXNlclNldHRpbmdzKCkge1xuICAgIHRoaXMudXNlclByb3ZpZGVyU2VydmljZS5nZXRVc2VyU3ViamVjdCgpLnN1YnNjcmliZSh1c2VySWRlbnRpdHkgPT4ge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3VzZXInLCB1c2VySWRlbnRpdHkpO1xuICAgICAgdGhpcy51c2VySWRlbnRpdHkgPSB1c2VySWRlbnRpdHk7XG4gICAgICB0aGlzLmxvYWRDb250ZXh0U3dpdGNoKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmVyc2lvbigpIHtcbiAgICB0aGlzLnZlcnNpb25TZXJ2aWNlLmdldFZlcnNpb24oKS5zdWJzY3JpYmUoKGJ1aWxkOiBWYWx0aW1vVmVyc2lvbikgPT4ge1xuICAgICAgdGhpcy5idWlsZCA9IGJ1aWxkO1xuICAgIH0pO1xuICB9XG5cbiAgb25TZXR0aW5nc1N1Ym1pdCgpIHtcbiAgICBpZiAoIXRoaXMuc2V0dGluZ3NGb3JtLnByaXN0aW5lKSB7XG4gICAgICB0aGlzLnVzZXJQcm92aWRlclNlcnZpY2UudXBkYXRlRW1haWxOb3RpZmljYXRpb25TZXR0aW5ncyh0aGlzLnNldHRpbmdzRm9ybS52YWx1ZSkuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlVXNlckxhbmd1YWdlKGxhbmdLZXk6IHN0cmluZykge1xuICAgIHRoaXMudHJhbnNsYXRlLnVzZShsYW5nS2V5KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2xhbmdLZXknLCBsYW5nS2V5KTtcbiAgICB9KTtcbiAgfVxuXG4gIGxvZ291dCgpIHtcbiAgICB0aGlzLnVzZXJQcm92aWRlclNlcnZpY2UubG9nb3V0KCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,49 @@
1
+ /*
2
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { NgModule } from '@angular/core';
17
+ import { CommonModule } from '@angular/common';
18
+ import { RightSidebarComponent } from './right-sidebar.component';
19
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
20
+ import { RouterModule } from '@angular/router';
21
+ import { HttpClient } from '@angular/common/http';
22
+ import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
23
+ import { HttpLoaderFactory } from '@valtimo/config';
24
+ import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';
25
+ const ɵ0 = HttpLoaderFactory;
26
+ export class RightSidebarModule {
27
+ }
28
+ RightSidebarModule.decorators = [
29
+ { type: NgModule, args: [{
30
+ declarations: [RightSidebarComponent],
31
+ imports: [
32
+ CommonModule,
33
+ FormsModule,
34
+ ReactiveFormsModule,
35
+ RouterModule,
36
+ TranslateModule.forRoot({
37
+ loader: {
38
+ provide: TranslateLoader,
39
+ useFactory: ɵ0,
40
+ deps: [HttpClient],
41
+ },
42
+ }),
43
+ NgbTooltipModule,
44
+ ],
45
+ exports: [RightSidebarComponent],
46
+ },] }
47
+ ];
48
+ export { ɵ0 };
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlnaHQtc2lkZWJhci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiL3RtcC9qZW5raW5zLWE3MzRhYWRjL3dvcmtzcGFjZS9WYWx0aW1vXy1fQW5ndWxhcl9MaWJyYXJpZXNfbWFpbi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcmlnaHQtc2lkZWJhci9yaWdodC1zaWRlYmFyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxXQUFXLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxlQUFlLEVBQUUsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7V0FZeEMsaUJBQWlCO0FBUXJDLE1BQU0sT0FBTyxrQkFBa0I7OztZQWxCOUIsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRSxDQUFDLHFCQUFxQixDQUFDO2dCQUNyQyxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixXQUFXO29CQUNYLG1CQUFtQjtvQkFDbkIsWUFBWTtvQkFDWixlQUFlLENBQUMsT0FBTyxDQUFDO3dCQUN0QixNQUFNLEVBQUU7NEJBQ04sT0FBTyxFQUFFLGVBQWU7NEJBQ3hCLFVBQVUsSUFBbUI7NEJBQzdCLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQzt5QkFDbkI7cUJBQ0YsQ0FBQztvQkFDRixnQkFBZ0I7aUJBQ2pCO2dCQUNELE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO2FBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjAgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7UmlnaHRTaWRlYmFyQ29tcG9uZW50fSBmcm9tICcuL3JpZ2h0LXNpZGViYXIuY29tcG9uZW50JztcbmltcG9ydCB7Rm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Um91dGVyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge1RyYW5zbGF0ZUxvYWRlciwgVHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7SHR0cExvYWRlckZhY3Rvcnl9IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5pbXBvcnQge05nYlRvb2x0aXBNb2R1bGV9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbUmlnaHRTaWRlYmFyQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUuZm9yUm9vdCh7XG4gICAgICBsb2FkZXI6IHtcbiAgICAgICAgcHJvdmlkZTogVHJhbnNsYXRlTG9hZGVyLFxuICAgICAgICB1c2VGYWN0b3J5OiBIdHRwTG9hZGVyRmFjdG9yeSxcbiAgICAgICAgZGVwczogW0h0dHBDbGllbnRdLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBOZ2JUb29sdGlwTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbUmlnaHRTaWRlYmFyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgUmlnaHRTaWRlYmFyTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,187 @@
1
+ /*
2
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { Component, EventEmitter, HostListener, Input, Output, QueryList, ViewChildren, } from '@angular/core';
17
+ import { FormControl } from '@angular/forms';
18
+ import { BehaviorSubject, combineLatest, fromEvent } from 'rxjs';
19
+ import { debounceTime, take } from 'rxjs/operators';
20
+ export class SearchableDropdownComponent {
21
+ constructor() {
22
+ this.width = 250;
23
+ this.itemSelected = new EventEmitter();
24
+ this.searchId = 'search';
25
+ this.searchTerm = new FormControl('');
26
+ this.focusedItemId$ = new BehaviorSubject(this.searchId);
27
+ this.open$ = new BehaviorSubject(false);
28
+ this.filteredItems$ = new BehaviorSubject(undefined);
29
+ this.wasInside = false;
30
+ this.mouseOnList$ = new BehaviorSubject(false);
31
+ }
32
+ clickInside() {
33
+ this.wasInside = true;
34
+ }
35
+ clickout() {
36
+ if (!this.wasInside) {
37
+ this.closeDropdown();
38
+ }
39
+ this.wasInside = false;
40
+ }
41
+ ngOnInit() {
42
+ this.openKeysSubscription();
43
+ this.openSearchSubscription();
44
+ }
45
+ ngOnChanges(changes) {
46
+ const itemChanges = changes.items;
47
+ const currenItems = itemChanges.currentValue;
48
+ if (itemChanges && !itemChanges.previousValue && currenItems) {
49
+ this.filteredItems$.next(currenItems);
50
+ }
51
+ }
52
+ ngOnDestroy() {
53
+ this.keySubscription.unsubscribe();
54
+ this.searchSubscription.unsubscribe();
55
+ }
56
+ openDropdown() {
57
+ this.open$.next(true);
58
+ }
59
+ hoverOverButton(id) {
60
+ this.focusedItemId$.next(id);
61
+ }
62
+ mouseEnterList() {
63
+ this.mouseOnList$.next(true);
64
+ }
65
+ mouseLeaveList() {
66
+ this.mouseOnList$.next(false);
67
+ }
68
+ resetFocus() {
69
+ this.focusedItemId$.next(this.searchId);
70
+ }
71
+ submit(id) {
72
+ this.itemSelected.emit(id);
73
+ }
74
+ closeDropdown() {
75
+ this.searchTerm.setValue('');
76
+ this.resetFocus();
77
+ this.open$.next(false);
78
+ }
79
+ openKeysSubscription() {
80
+ this.keySubscription = fromEvent(document, 'keyup')
81
+ .pipe(debounceTime(50))
82
+ .subscribe((event) => {
83
+ combineLatest([this.mouseOnList$, this.filteredItems$, this.focusedItemId$])
84
+ .pipe(take(1))
85
+ .subscribe(([mouseOnList, items, focusedId]) => {
86
+ const length = items.length;
87
+ const focusedIndex = items.findIndex(item => item.id === focusedId);
88
+ const code = event.code;
89
+ const shiftKey = event.shiftKey;
90
+ const down = 'ArrowDown';
91
+ const tab = 'Tab';
92
+ const up = 'ArrowUp';
93
+ const enter = 'Enter';
94
+ const escape = 'Escape';
95
+ // close dropdown on pressing escape
96
+ if (code === escape) {
97
+ this.closeDropdown();
98
+ }
99
+ // submit item when focus is on an item in the list and enter is pressed
100
+ if (code === enter && focusedId !== this.searchId) {
101
+ this.submit(focusedId);
102
+ }
103
+ // only handle tab or arrow keypresses when items are shown and the mouse is not on the list
104
+ if (length > 0 && !mouseOnList) {
105
+ // handle moving down in the list with arrow down or tab
106
+ if (code === down || (code === tab && !shiftKey)) {
107
+ // move focus to first item in the list when focus is on search box
108
+ if (focusedId === this.searchId) {
109
+ this.focusedItemId$.next(items[0].id);
110
+ this.scrollButtonIntoView(focusedId);
111
+ // move focus to next item in the list if focus is not on last item
112
+ }
113
+ else if (focusedIndex + 1 < length) {
114
+ this.focusedItemId$.next(items[focusedIndex + 1].id);
115
+ this.scrollButtonIntoView(focusedId);
116
+ }
117
+ // handle moving up in the list with up arrow up or shift+tab
118
+ }
119
+ else if ((code === up || (code === tab && shiftKey)) &&
120
+ focusedId !== this.searchId) {
121
+ // move to previous item if focus is not on the first item in the list
122
+ if (focusedIndex > 0) {
123
+ this.focusedItemId$.next(items[focusedIndex - 1].id);
124
+ this.scrollButtonIntoView(focusedId);
125
+ // move focus to search box if focus is on first item in the list
126
+ }
127
+ else {
128
+ this.resetFocus();
129
+ }
130
+ }
131
+ }
132
+ });
133
+ });
134
+ }
135
+ openSearchSubscription() {
136
+ this.searchSubscription = this.searchTerm.valueChanges.subscribe(searchTerm => {
137
+ this.focusedItemId$.pipe(take(1)).subscribe(focusedItemId => {
138
+ if (!searchTerm) {
139
+ this.filteredItems$.next(this.items);
140
+ }
141
+ else {
142
+ const filteredItems = this.items.filter(item => item.text.toUpperCase().includes(searchTerm.toUpperCase()));
143
+ this.filteredItems$.next(filteredItems);
144
+ // move focus to search box if filtered list length is 0 or previously focused item is not in filtered list anymore
145
+ if (filteredItems.length === 0 ||
146
+ !filteredItems.some(item => item.id === focusedItemId)) {
147
+ this.resetFocus();
148
+ }
149
+ }
150
+ // move scrolling button into view to end of queue, so that DOM can be updated first
151
+ setTimeout(() => {
152
+ this.scrollButtonIntoView(focusedItemId);
153
+ });
154
+ });
155
+ });
156
+ }
157
+ scrollButtonIntoView(id) {
158
+ this.filteredItems$.pipe(take(1)).subscribe(items => {
159
+ const focusItemIndex = items.findIndex(item => item.id === id);
160
+ const focusedButton = this.buttons.toArray()[focusItemIndex];
161
+ if (focusedButton) {
162
+ focusedButton.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'center' });
163
+ }
164
+ });
165
+ }
166
+ }
167
+ SearchableDropdownComponent.decorators = [
168
+ { type: Component, args: [{
169
+ selector: 'valtimo-searchable-dropdown',
170
+ template: "<ng-container *ngIf=\"buttonText && items\">\n <ng-container [ngTemplateOutlet]=\"(open$ | async) ? opened : closed\"> </ng-container>\n</ng-container>\n\n<ng-template #closed>\n <ng-container *ngIf=\"style === 'button' || !style\">\n <button\n class=\"btn btn-primary btn-sm dropdown-size\"\n (click)=\"openDropdown()\"\n [style.width.px]=\"width\"\n >\n {{ buttonText }}\n </button>\n </ng-container>\n <ng-container *ngIf=\"style === 'underlinedText'\">\n <h5 class=\"underline-button\" (click)=\"openDropdown()\" [style.width.px]=\"width\">\n <b>\n {{ buttonText }}\n </b>\n </h5>\n </ng-container>\n</ng-template>\n\n<ng-template #opened>\n <div class=\"dropdown-container\" [style.width.px]=\"width\">\n <div class=\"dropdown-size search\" [style.width.px]=\"width\">\n <input\n #search\n [ngClass]=\"{disabled: disabled}\"\n [placeholder]=\"searchText\"\n [formControl]=\"searchTerm\"\n />\n {{ search.focus() }}\n </div>\n <div class=\"dropdown-list\" (mouseenter)=\"mouseEnterList()\" (mouseleave)=\"mouseLeaveList()\">\n <ng-container *ngIf=\"filteredItems$ | async as filteredItems\">\n <ng-container\n *ngIf=\"\n filteredItems.length > 0 && focusedItemId$ | async as focusedItemId;\n else noResults\n \"\n >\n <button\n #button\n *ngFor=\"let item of filteredItems\"\n [ngClass]=\"{focus: focusedItemId === item.id, disabled: disabled}\"\n class=\"dropdown-button dropdown-size\"\n (click)=\"submit(item.id)\"\n (mouseenter)=\"hoverOverButton(item.id)\"\n (mouseleave)=\"resetFocus()\"\n [style.width.px]=\"width\"\n >\n <span class=\"dropdown-button-text\">\n {{ item.text }}\n </span>\n </button>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <ng-container [ngTemplateOutlet]=\"space\"> </ng-container>\n</ng-template>\n\n<ng-template #noResults>\n <div class=\"dropdown-button dropdown-size disabled\" [style.width.px]=\"width\">\n <span class=\"dropdown-button-text\">{{ noResultsText }}</span>\n </div>\n</ng-template>\n\n<ng-template #space>\n <div *ngIf=\"style === 'button' || !style\" class=\"dropdown-size\" [style.width.px]=\"width\"></div>\n <h5 *ngIf=\"style === 'underlinedText'\" class=\"underline-button\"><b>-</b></h5>\n</ng-template>\n",
171
+ styles: [".dropdown-size{height:34px;width:250px}.underline-button{cursor:pointer;text-decoration:underline;width:250px}.dropdown-container{background-color:#fff;border:1px solid #e3e3e3;border-radius:3px;box-shadow:0 0 6px 0 rgba(0,0,0,.12);display:flex;flex-direction:column;max-height:300px;overflow:hidden;padding:7px 0;position:fixed;width:250px;z-index:999}.dropdown-list{list-style:none;margin:0;overflow:auto;overflow-x:hidden;padding:0;z-index:9999}.search{align-items:center;border-bottom:1px solid #dee2e6;display:flex;flex-shrink:0;height:44px;padding:8px 24px}.search input{padding:0;width:100%}.dropdown-button,.search input,.search input:focus{border:none;outline:none}.dropdown-button{align-items:center;background-color:#fff;color:#504e4e;cursor:pointer;display:flex;font-size:1rem;font-weight:400;padding:8px 24px}.dropdown-button.focus{background-color:#f5f5f5}.dropdown-button-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.disabled{color:#959595;cursor:default;pointer-events:none}"]
172
+ },] }
173
+ ];
174
+ SearchableDropdownComponent.propDecorators = {
175
+ style: [{ type: Input }],
176
+ items: [{ type: Input }],
177
+ buttonText: [{ type: Input }],
178
+ searchText: [{ type: Input }],
179
+ noResultsText: [{ type: Input }],
180
+ disabled: [{ type: Input }],
181
+ width: [{ type: Input }],
182
+ itemSelected: [{ type: Output }],
183
+ buttons: [{ type: ViewChildren, args: ['button',] }],
184
+ clickInside: [{ type: HostListener, args: ['click',] }],
185
+ clickout: [{ type: HostListener, args: ['document:click',] }]
186
+ };
187
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYWJsZS1kcm9wZG93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL3RtcC9qZW5raW5zLWE3MzRhYWRjL3dvcmtzcGFjZS9WYWx0aW1vXy1fQW5ndWxhcl9MaWJyYXJpZXNfbWFpbi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvc2VhcmNoYWJsZS1kcm9wZG93bi9zZWFyY2hhYmxlLWRyb3Bkb3duLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUNOLFNBQVMsRUFFVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLEVBQUMsWUFBWSxFQUFFLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBT2xELE1BQU0sT0FBTywyQkFBMkI7SUFMeEM7UUFZVyxVQUFLLEdBQUcsR0FBRyxDQUFDO1FBRVgsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSTNCLGFBQVEsR0FBRyxRQUFRLENBQUM7UUFFNUIsZUFBVSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRWpDLG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQVMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTVELFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUU1QyxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFzQixTQUFTLENBQUMsQ0FBQztRQUV0RSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBTVQsaUJB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QUFLO3lCQUNMLEtBQUs7eUJBQ0wsS0FBSzs0QkFDTCxLQUFLO3VCQUNMLEtBQUs7b0JBQ0wsS0FBSzsyQkFFTCxNQUFNO3NCQUVOLFlBQVksU0FBQyxRQUFROzBCQW9CckIsWUFBWSxTQUFDLE9BQU87dUJBS3BCLFlBQVksU0FBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1Db250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0Ryb3Bkb3duQnV0dG9uU3R5bGUsIERyb3Bkb3duSXRlbX0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgdGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXNlYXJjaGFibGUtZHJvcGRvd24nLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoYWJsZS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaGFibGUtZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoYWJsZURyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHN0eWxlOiBEcm9wZG93bkJ1dHRvblN0eWxlO1xuICBASW5wdXQoKSBpdGVtczogQXJyYXk8RHJvcGRvd25JdGVtPjtcbiAgQElucHV0KCkgYnV0dG9uVGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBzZWFyY2hUZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5vUmVzdWx0c1RleHQ6IHN0cmluZztcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHdpZHRoID0gMjUwO1xuXG4gIEBPdXRwdXQoKSBpdGVtU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQFZpZXdDaGlsZHJlbignYnV0dG9uJykgYnV0dG9uczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VhcmNoSWQgPSAnc2VhcmNoJztcblxuICByZWFkb25seSBzZWFyY2hUZXJtID0gbmV3IEZvcm1Db250cm9sKCcnKTtcblxuICByZWFkb25seSBmb2N1c2VkSXRlbUlkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPih0aGlzLnNlYXJjaElkKTtcblxuICByZWFkb25seSBvcGVuJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHJlYWRvbmx5IGZpbHRlcmVkSXRlbXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxEcm9wZG93bkl0ZW0+Pih1bmRlZmluZWQpO1xuXG4gIHByaXZhdGUgd2FzSW5zaWRlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBrZXlTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIHNlYXJjaFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbW91c2VPbkxpc3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICBjbGlja0luc2lkZSgpIHtcbiAgICB0aGlzLndhc0luc2lkZSA9IHRydWU7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycpXG4gIGNsaWNrb3V0KCkge1xuICAgIGlmICghdGhpcy53YXNJbnNpZGUpIHtcbiAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgIH1cbiAgICB0aGlzLndhc0luc2lkZSA9IGZhbHNlO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuS2V5c1N1YnNjcmlwdGlvbigpO1xuICAgIHRoaXMub3BlblNlYXJjaFN1YnNjcmlwdGlvbigpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IGl0ZW1DaGFuZ2VzID0gY2hhbmdlcy5pdGVtcztcbiAgICBjb25zdCBjdXJyZW5JdGVtcyA9IGl0ZW1DaGFuZ2VzLmN1cnJlbnRWYWx1ZTtcbiAgICBpZiAoaXRlbUNoYW5nZXMgJiYgIWl0ZW1DaGFuZ2VzLnByZXZpb3VzVmFsdWUgJiYgY3VycmVuSXRlbXMpIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRJdGVtcyQubmV4dChjdXJyZW5JdGVtcyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5rZXlTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnNlYXJjaFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgb3BlbkRyb3Bkb3duKCk6IHZvaWQge1xuICAgIHRoaXMub3BlbiQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIGhvdmVyT3ZlckJ1dHRvbihpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c2VkSXRlbUlkJC5uZXh0KGlkKTtcbiAgfVxuXG4gIG1vdXNlRW50ZXJMaXN0KCk6IHZvaWQge1xuICAgIHRoaXMubW91c2VPbkxpc3QkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBtb3VzZUxlYXZlTGlzdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1vdXNlT25MaXN0JC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHJlc2V0Rm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c2VkSXRlbUlkJC5uZXh0KHRoaXMuc2VhcmNoSWQpO1xuICB9XG5cbiAgc3VibWl0KGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLml0ZW1TZWxlY3RlZC5lbWl0KGlkKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VEcm9wZG93bigpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaFRlcm0uc2V0VmFsdWUoJycpO1xuICAgIHRoaXMucmVzZXRGb2N1cygpO1xuICAgIHRoaXMub3BlbiQubmV4dChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5LZXlzU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMua2V5U3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KGRvY3VtZW50LCAna2V5dXAnKVxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwKSlcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMubW91c2VPbkxpc3QkLCB0aGlzLmZpbHRlcmVkSXRlbXMkLCB0aGlzLmZvY3VzZWRJdGVtSWQkXSlcbiAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKFttb3VzZU9uTGlzdCwgaXRlbXMsIGZvY3VzZWRJZF0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxlbmd0aCA9IGl0ZW1zLmxlbmd0aDtcbiAgICAgICAgICAgIGNvbnN0IGZvY3VzZWRJbmRleCA9IGl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IGZvY3VzZWRJZCk7XG4gICAgICAgICAgICBjb25zdCBjb2RlID0gZXZlbnQuY29kZTtcbiAgICAgICAgICAgIGNvbnN0IHNoaWZ0S2V5ID0gZXZlbnQuc2hpZnRLZXk7XG4gICAgICAgICAgICBjb25zdCBkb3duID0gJ0Fycm93RG93bic7XG4gICAgICAgICAgICBjb25zdCB0YWIgPSAnVGFiJztcbiAgICAgICAgICAgIGNvbnN0IHVwID0gJ0Fycm93VXAnO1xuICAgICAgICAgICAgY29uc3QgZW50ZXIgPSAnRW50ZXInO1xuICAgICAgICAgICAgY29uc3QgZXNjYXBlID0gJ0VzY2FwZSc7XG5cbiAgICAgICAgICAgIC8vIGNsb3NlIGRyb3Bkb3duIG9uIHByZXNzaW5nIGVzY2FwZVxuICAgICAgICAgICAgaWYgKGNvZGUgPT09IGVzY2FwZSkge1xuICAgICAgICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gc3VibWl0IGl0ZW0gd2hlbiBmb2N1cyBpcyBvbiBhbiBpdGVtIGluIHRoZSBsaXN0IGFuZCBlbnRlciBpcyBwcmVzc2VkXG4gICAgICAgICAgICBpZiAoY29kZSA9PT0gZW50ZXIgJiYgZm9jdXNlZElkICE9PSB0aGlzLnNlYXJjaElkKSB7XG4gICAgICAgICAgICAgIHRoaXMuc3VibWl0KGZvY3VzZWRJZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIG9ubHkgaGFuZGxlIHRhYiBvciBhcnJvdyBrZXlwcmVzc2VzIHdoZW4gaXRlbXMgYXJlIHNob3duIGFuZCB0aGUgbW91c2UgaXMgbm90IG9uIHRoZSBsaXN0XG4gICAgICAgICAgICBpZiAobGVuZ3RoID4gMCAmJiAhbW91c2VPbkxpc3QpIHtcbiAgICAgICAgICAgICAgLy8gaGFuZGxlIG1vdmluZyBkb3duIGluIHRoZSBsaXN0IHdpdGggYXJyb3cgZG93biBvciB0YWJcbiAgICAgICAgICAgICAgaWYgKGNvZGUgPT09IGRvd24gfHwgKGNvZGUgPT09IHRhYiAmJiAhc2hpZnRLZXkpKSB7XG4gICAgICAgICAgICAgICAgLy8gbW92ZSBmb2N1cyB0byBmaXJzdCBpdGVtIGluIHRoZSBsaXN0IHdoZW4gZm9jdXMgaXMgb24gc2VhcmNoIGJveFxuICAgICAgICAgICAgICAgIGlmIChmb2N1c2VkSWQgPT09IHRoaXMuc2VhcmNoSWQpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNlZEl0ZW1JZCQubmV4dChpdGVtc1swXS5pZCk7XG4gICAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbEJ1dHRvbkludG9WaWV3KGZvY3VzZWRJZCk7XG4gICAgICAgICAgICAgICAgICAvLyBtb3ZlIGZvY3VzIHRvIG5leHQgaXRlbSBpbiB0aGUgbGlzdCBpZiBmb2N1cyBpcyBub3Qgb24gbGFzdCBpdGVtXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmb2N1c2VkSW5kZXggKyAxIDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzZWRJdGVtSWQkLm5leHQoaXRlbXNbZm9jdXNlZEluZGV4ICsgMV0uaWQpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxCdXR0b25JbnRvVmlldyhmb2N1c2VkSWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBoYW5kbGUgbW92aW5nIHVwIGluIHRoZSBsaXN0IHdpdGggdXAgYXJyb3cgdXAgb3Igc2hpZnQrdGFiXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgKGNvZGUgPT09IHVwIHx8IChjb2RlID09PSB0YWIgJiYgc2hpZnRLZXkpKSAmJlxuICAgICAgICAgICAgICAgIGZvY3VzZWRJZCAhPT0gdGhpcy5zZWFyY2hJZFxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAvLyBtb3ZlIHRvIHByZXZpb3VzIGl0ZW0gaWYgZm9jdXMgaXMgbm90IG9uIHRoZSBmaXJzdCBpdGVtIGluIHRoZSBsaXN0XG4gICAgICAgICAgICAgICAgaWYgKGZvY3VzZWRJbmRleCA+IDApIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNlZEl0ZW1JZCQubmV4dChpdGVtc1tmb2N1c2VkSW5kZXggLSAxXS5pZCk7XG4gICAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbEJ1dHRvbkludG9WaWV3KGZvY3VzZWRJZCk7XG4gICAgICAgICAgICAgICAgICAvLyBtb3ZlIGZvY3VzIHRvIHNlYXJjaCBib3ggaWYgZm9jdXMgaXMgb24gZmlyc3QgaXRlbSBpbiB0aGUgbGlzdFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnJlc2V0Rm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuU2VhcmNoU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoU3Vic2NyaXB0aW9uID0gdGhpcy5zZWFyY2hUZXJtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoc2VhcmNoVGVybSA9PiB7XG4gICAgICB0aGlzLmZvY3VzZWRJdGVtSWQkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGZvY3VzZWRJdGVtSWQgPT4ge1xuICAgICAgICBpZiAoIXNlYXJjaFRlcm0pIHtcbiAgICAgICAgICB0aGlzLmZpbHRlcmVkSXRlbXMkLm5leHQodGhpcy5pdGVtcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgZmlsdGVyZWRJdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKGl0ZW0gPT5cbiAgICAgICAgICAgIGl0ZW0udGV4dC50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0udG9VcHBlckNhc2UoKSlcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zJC5uZXh0KGZpbHRlcmVkSXRlbXMpO1xuXG4gICAgICAgICAgLy8gbW92ZSBmb2N1cyB0byBzZWFyY2ggYm94IGlmIGZpbHRlcmVkIGxpc3QgbGVuZ3RoIGlzIDAgb3IgcHJldmlvdXNseSBmb2N1c2VkIGl0ZW0gaXMgbm90IGluIGZpbHRlcmVkIGxpc3QgYW55bW9yZVxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGZpbHRlcmVkSXRlbXMubGVuZ3RoID09PSAwIHx8XG4gICAgICAgICAgICAhZmlsdGVyZWRJdGVtcy5zb21lKGl0ZW0gPT4gaXRlbS5pZCA9PT0gZm9jdXNlZEl0ZW1JZClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRGb2N1cygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIG1vdmUgc2Nyb2xsaW5nIGJ1dHRvbiBpbnRvIHZpZXcgdG8gZW5kIG9mIHF1ZXVlLCBzbyB0aGF0IERPTSBjYW4gYmUgdXBkYXRlZCBmaXJzdFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnNjcm9sbEJ1dHRvbkludG9WaWV3KGZvY3VzZWRJdGVtSWQpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzY3JvbGxCdXR0b25JbnRvVmlldyhpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJlZEl0ZW1zJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShpdGVtcyA9PiB7XG4gICAgICBjb25zdCBmb2N1c0l0ZW1JbmRleCA9IGl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IGlkKTtcbiAgICAgIGNvbnN0IGZvY3VzZWRCdXR0b24gPSB0aGlzLmJ1dHRvbnMudG9BcnJheSgpW2ZvY3VzSXRlbUluZGV4XTtcblxuICAgICAgaWYgKGZvY3VzZWRCdXR0b24pIHtcbiAgICAgICAgZm9jdXNlZEJ1dHRvbi5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnY2VudGVyJ30pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,29 @@
1
+ /*
2
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { CommonModule } from '@angular/common';
17
+ import { NgModule } from '@angular/core';
18
+ import { ReactiveFormsModule } from '@angular/forms';
19
+ import { SearchableDropdownComponent } from './searchable-dropdown.component';
20
+ export class SearchableDropdownModule {
21
+ }
22
+ SearchableDropdownModule.decorators = [
23
+ { type: NgModule, args: [{
24
+ declarations: [SearchableDropdownComponent],
25
+ imports: [CommonModule, ReactiveFormsModule],
26
+ exports: [SearchableDropdownComponent],
27
+ },] }
28
+ ];
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYWJsZS1kcm9wZG93bi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiL3RtcC9qZW5raW5zLWE3MzRhYWRjL3dvcmtzcGFjZS9WYWx0aW1vXy1fQW5ndWxhcl9MaWJyYXJpZXNfbWFpbi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvc2VhcmNoYWJsZS1kcm9wZG93bi9zZWFyY2hhYmxlLWRyb3Bkb3duLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBTzVFLE1BQU0sT0FBTyx3QkFBd0I7OztZQUxwQyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsMkJBQTJCLENBQUM7Z0JBQzNDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQztnQkFDNUMsT0FBTyxFQUFFLENBQUMsMkJBQTJCLENBQUM7YUFDdkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1NlYXJjaGFibGVEcm9wZG93bkNvbXBvbmVudH0gZnJvbSAnLi9zZWFyY2hhYmxlLWRyb3Bkb3duLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1NlYXJjaGFibGVEcm9wZG93bkNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICBleHBvcnRzOiBbU2VhcmNoYWJsZURyb3Bkb3duQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoYWJsZURyb3Bkb3duTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,52 @@
1
+ /*
2
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
17
+ export class SearchableDropdownSelectComponent {
18
+ constructor() {
19
+ this.width = 250;
20
+ this.itemSelected = new EventEmitter();
21
+ this.clearSelection = new EventEmitter();
22
+ }
23
+ onSelect(id) {
24
+ this.itemSelected.emit(id);
25
+ }
26
+ onClearSelection() {
27
+ this.clearSelection.emit();
28
+ }
29
+ }
30
+ SearchableDropdownSelectComponent.decorators = [
31
+ { type: Component, args: [{
32
+ selector: 'valtimo-searchable-dropdown-select',
33
+ template: "<valtimo-searchable-dropdown\n *ngIf=\"!hasSelection; else selection\"\n [style]=\"style\"\n [items]=\"items\"\n [buttonText]=\"buttonText\"\n [searchText]=\"searchText\"\n [noResultsText]=\"noResultsText\"\n [disabled]=\"disabled\"\n [width]=\"width\"\n (itemSelected)=\"onSelect($event)\"\n>\n</valtimo-searchable-dropdown>\n\n<ng-template #selection>\n <div\n class=\"d-flex flex-row align-items-center\"\n [style.height.px]=\"style === 'button' ? 34 : null\"\n >\n <h5 class=\"selected-text\">\n {{ selectedText }} <b>{{ selectedTextValue }}</b>\n </h5>\n <button\n type=\"button\"\n class=\"close p-0 m-0 ml-2 d-flex text-danger\"\n aria-label=\"Close\"\n (click)=\"onClearSelection()\"\n [title]=\"clearSelectionButtonTitle\"\n >\n <i class=\"clear-icon fa fa-times text-danger\"></i>\n </button>\n </div>\n</ng-template>\n",
34
+ styles: [".selected-text{margin:0}.clear-icon{font-size:13px}"]
35
+ },] }
36
+ ];
37
+ SearchableDropdownSelectComponent.propDecorators = {
38
+ style: [{ type: Input }],
39
+ items: [{ type: Input }],
40
+ buttonText: [{ type: Input }],
41
+ searchText: [{ type: Input }],
42
+ noResultsText: [{ type: Input }],
43
+ disabled: [{ type: Input }],
44
+ selectedText: [{ type: Input }],
45
+ selectedTextValue: [{ type: Input }],
46
+ clearSelectionButtonTitle: [{ type: Input }],
47
+ hasSelection: [{ type: Input }],
48
+ width: [{ type: Input }],
49
+ itemSelected: [{ type: Output }],
50
+ clearSelection: [{ type: Output }]
51
+ };
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYWJsZS1kcm9wZG93bi1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii90bXAvamVua2lucy1hNzM0YWFkYy93b3Jrc3BhY2UvVmFsdGltb18tX0FuZ3VsYXJfTGlicmFyaWVzX21haW4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3NlYXJjaGFibGUtZHJvcGRvd24tc2VsZWN0L3NlYXJjaGFibGUtZHJvcGRvd24tc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFRckUsTUFBTSxPQUFPLGlDQUFpQztJQUw5QztRQWdCVyxVQUFLLEdBQUcsR0FBRyxDQUFDO1FBRVgsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2xDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQVNoRCxDQUFDO0lBUEMsUUFBUSxDQUFDLEVBQVU7UUFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7O1lBM0JGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsb0NBQW9DO2dCQUM5Qyw2NEJBQTBEOzthQUUzRDs7O29CQUVFLEtBQUs7b0JBQ0wsS0FBSzt5QkFDTCxLQUFLO3lCQUNMLEtBQUs7NEJBQ0wsS0FBSzt1QkFDTCxLQUFLOzJCQUNMLEtBQUs7Z0NBQ0wsS0FBSzt3Q0FDTCxLQUFLOzJCQUNMLEtBQUs7b0JBQ0wsS0FBSzsyQkFFTCxNQUFNOzZCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RHJvcGRvd25CdXR0b25TdHlsZSwgRHJvcGRvd25JdGVtfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXNlYXJjaGFibGUtZHJvcGRvd24tc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaGFibGUtZHJvcGRvd24tc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoYWJsZS1kcm9wZG93bi1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoYWJsZURyb3Bkb3duU2VsZWN0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgc3R5bGU6IERyb3Bkb3duQnV0dG9uU3R5bGU7XG4gIEBJbnB1dCgpIGl0ZW1zOiBBcnJheTxEcm9wZG93bkl0ZW0+O1xuICBASW5wdXQoKSBidXR0b25UZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNlYXJjaFRleHQ6IHN0cmluZztcbiAgQElucHV0KCkgbm9SZXN1bHRzVGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgc2VsZWN0ZWRUZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNlbGVjdGVkVGV4dFZhbHVlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNsZWFyU2VsZWN0aW9uQnV0dG9uVGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgaGFzU2VsZWN0aW9uOiBib29sZWFuO1xuICBASW5wdXQoKSB3aWR0aCA9IDI1MDtcblxuICBAT3V0cHV0KCkgaXRlbVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY2xlYXJTZWxlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgb25TZWxlY3QoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaXRlbVNlbGVjdGVkLmVtaXQoaWQpO1xuICB9XG5cbiAgb25DbGVhclNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyU2VsZWN0aW9uLmVtaXQoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,30 @@
1
+ /*
2
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { CommonModule } from '@angular/common';
17
+ import { NgModule } from '@angular/core';
18
+ import { ReactiveFormsModule } from '@angular/forms';
19
+ import { SearchableDropdownSelectComponent } from './searchable-dropdown-select.component';
20
+ import { SearchableDropdownModule } from '../searchable-dropdown/searchable-dropdown.module';
21
+ export class SearchableDropdownSelectModule {
22
+ }
23
+ SearchableDropdownSelectModule.decorators = [
24
+ { type: NgModule, args: [{
25
+ declarations: [SearchableDropdownSelectComponent],
26
+ imports: [CommonModule, ReactiveFormsModule, SearchableDropdownModule],
27
+ exports: [SearchableDropdownSelectComponent],
28
+ },] }
29
+ ];
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYWJsZS1kcm9wZG93bi1zZWxlY3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Ii90bXAvamVua2lucy1hNzM0YWFkYy93b3Jrc3BhY2UvVmFsdGltb18tX0FuZ3VsYXJfTGlicmFyaWVzX21haW4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3NlYXJjaGFibGUtZHJvcGRvd24tc2VsZWN0L3NlYXJjaGFibGUtZHJvcGRvd24tc2VsZWN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ3pGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBTzNGLE1BQU0sT0FBTyw4QkFBOEI7OztZQUwxQyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsaUNBQWlDLENBQUM7Z0JBQ2pELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSx3QkFBd0IsQ0FBQztnQkFDdEUsT0FBTyxFQUFFLENBQUMsaUNBQWlDLENBQUM7YUFDN0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1NlYXJjaGFibGVEcm9wZG93blNlbGVjdENvbXBvbmVudH0gZnJvbSAnLi9zZWFyY2hhYmxlLWRyb3Bkb3duLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHtTZWFyY2hhYmxlRHJvcGRvd25Nb2R1bGV9IGZyb20gJy4uL3NlYXJjaGFibGUtZHJvcGRvd24vc2VhcmNoYWJsZS1kcm9wZG93bi5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtTZWFyY2hhYmxlRHJvcGRvd25TZWxlY3RDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBTZWFyY2hhYmxlRHJvcGRvd25Nb2R1bGVdLFxuICBleHBvcnRzOiBbU2VhcmNoYWJsZURyb3Bkb3duU2VsZWN0Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoYWJsZURyb3Bkb3duU2VsZWN0TW9kdWxlIHt9XG4iXX0=