nuxeo-development-framework 0.0.2 → 0.0.6

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 (433) hide show
  1. package/README.md +24 -24
  2. package/bundles/nuxeo-development-framework.umd.js +18534 -50
  3. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  4. package/esm2015/lib/Core/adapters/adapter.service.js +50 -0
  5. package/esm2015/lib/Core/core.module.js +104 -0
  6. package/esm2015/lib/Core/enums/language.enum.js +6 -0
  7. package/esm2015/lib/Core/models/component.model.js +8 -0
  8. package/esm2015/lib/Core/services/callApi/call-api.service.js +33 -0
  9. package/esm2015/lib/Core/services/initialization/initialization.service.js +57 -0
  10. package/esm2015/lib/Core/services/localStorag/local-storag.service.js +123 -0
  11. package/esm2015/lib/Core/services/nuxeo/nuxeo-override.js +82 -0
  12. package/esm2015/lib/Core/services/nuxeo/nuxeo.service.js +120 -0
  13. package/esm2015/lib/Core/services/roles/roles.service.js +103 -0
  14. package/esm2015/lib/Core/services/translation/translate-loader.service.js +150 -0
  15. package/esm2015/lib/Core/services/translation/translation.service.js +171 -0
  16. package/esm2015/lib/Core/services/user/user-preferences.service.js +153 -0
  17. package/esm2015/lib/Core/utilities/moment-date-adapter.js +178 -0
  18. package/esm2015/lib/Core/utilities/utility.service.js +81 -0
  19. package/esm2015/lib/components/activity/activity/activity.component.js +28 -0
  20. package/esm2015/lib/components/activity/activity.module.js +37 -0
  21. package/esm2015/lib/components/avatar/avatar/avatar.component.js +55 -0
  22. package/esm2015/lib/components/avatar/avatar.module.js +32 -0
  23. package/esm2015/lib/components/card/card.component.js +48 -0
  24. package/esm2015/lib/components/card/card.module.js +23 -0
  25. package/esm2015/lib/components/comments/comments.module.js +76 -0
  26. package/esm2015/lib/components/comments/components/comment-item/comment-item.component.js +33 -0
  27. package/esm2015/lib/components/comments/components/comments-dashlet/comments-dashlet.component.js +78 -0
  28. package/esm2015/lib/components/comments/components/comments-list/comments-list.component.js +68 -0
  29. package/esm2015/lib/components/comments/constants/comment.js +25 -0
  30. package/esm2015/lib/components/comments/services/comment-api.service.js +49 -0
  31. package/esm2015/lib/components/confirm-caller/confirm-caller.dialog.js +73 -0
  32. package/esm2015/lib/components/confirm-caller/confirm-caller.module.js +27 -0
  33. package/esm2015/lib/components/confirm-caller/confirm-dialog/confirm-dialog.component.js +29 -0
  34. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.js +134 -0
  35. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-create-form/correspondence-relation-create-form.component.js +133 -0
  36. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-list/correspondence-relation-list.component.js +110 -0
  37. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-reply/correspondence-relation-reply.component.js +49 -0
  38. package/esm2015/lib/components/correspondence-relation/components/versions/versions.component.js +61 -0
  39. package/esm2015/lib/components/correspondence-relation/correspondence-relation.module.js +111 -0
  40. package/esm2015/lib/components/correspondence-relation/services/correspondence-realation.service.js +115 -0
  41. package/esm2015/lib/components/correspondence-relation/services/viewer-files.service.js +50 -0
  42. package/esm2015/lib/components/create-entity/create-entity/create-entity.component.js +62 -0
  43. package/esm2015/lib/components/create-entity/create-entity.module.js +36 -0
  44. package/esm2015/lib/components/cts-tags/components/correspondence-tags/correspondence-tags.component.js +73 -0
  45. package/esm2015/lib/components/cts-tags/cts-tags.module.js +65 -0
  46. package/esm2015/lib/components/cts-tags/services/tags-api.service.js +61 -0
  47. package/esm2015/lib/components/custom-toastr/components/custom-toastr/custom-toastr.component.js +82 -0
  48. package/esm2015/lib/components/custom-toastr/custom-toastr.module.js +36 -0
  49. package/esm2015/lib/components/custom-toastr/interfaces/toast-type.interface.js +2 -0
  50. package/esm2015/lib/components/custom-toastr/services/custom-toastr.service.js +41 -0
  51. package/esm2015/lib/components/documents/components/attachments-list/attachments-list.component.js +156 -0
  52. package/esm2015/lib/components/documents/components/attachments-page-provider/attachments-page-provider.component.js +72 -0
  53. package/esm2015/lib/components/documents/components/document-list/documents-list.component.js +255 -0
  54. package/esm2015/lib/components/documents/components/document-scan/document-scan.component.js +929 -0
  55. package/esm2015/lib/components/documents/components/document-upload/document-upload.component.js +159 -0
  56. package/esm2015/lib/components/documents/components/documents/documents.component.js +61 -0
  57. package/esm2015/lib/components/documents/constants/document-templates.js +32 -0
  58. package/esm2015/lib/components/documents/constants/documents.js +86 -0
  59. package/esm2015/lib/components/documents/documents.module.js +123 -0
  60. package/esm2015/lib/components/documents/services/document-templates.service.js +115 -0
  61. package/esm2015/lib/components/documents/services/documents.service.js +217 -0
  62. package/esm2015/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.js +342 -0
  63. package/esm2015/lib/components/dynamic-chart/dynamic-chart.module.js +34 -0
  64. package/esm2015/lib/components/dynamic-chart/dynamic-single-chart/dynamic-single-chart.component.js +164 -0
  65. package/esm2015/lib/components/dynamic-chart/services/chart-data.service.js +542 -0
  66. package/esm2015/lib/components/dynamic-filter/dynamic-filter/dynamic-filter.component.js +106 -0
  67. package/esm2015/lib/components/dynamic-filter/dynamic-filter.module.js +26 -0
  68. package/esm2015/lib/components/dynamic-form/components/department-form/department-form.component.js +124 -0
  69. package/esm2015/lib/components/dynamic-form/components/dynamic-form/dynamic-form.component.js +94 -0
  70. package/esm2015/lib/components/dynamic-form/components/dynamic-form/fields.adapter.js +127 -0
  71. package/esm2015/lib/components/dynamic-form/components/dynamic-form/form-builder.service.js +102 -0
  72. package/esm2015/lib/components/dynamic-form/components/dynamic-form-boolitem/dynamic-form-boolitem.component.js +35 -0
  73. package/esm2015/lib/components/dynamic-form/components/dynamic-form-builder/dynamic-form-builder.component.js +165 -0
  74. package/esm2015/lib/components/dynamic-form/components/dynamic-form-checkbox-item/dynamic-form-checkbox-item.component.js +71 -0
  75. package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/dynamic-form-dateitem.component.js +202 -0
  76. package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/owlDateTimeIntl.js +78 -0
  77. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/constants/department.js +13 -0
  78. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.js +185 -0
  79. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-api.service.js +207 -0
  80. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-management.service.js +94 -0
  81. package/esm2015/lib/components/dynamic-form/components/dynamic-form-field/dynamic-form-field.component.js +85 -0
  82. package/esm2015/lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component.js +128 -0
  83. package/esm2015/lib/components/dynamic-form/components/dynamic-form-item-dispatcher/dynamic-form-item-dispatcher.component.js +81 -0
  84. package/esm2015/lib/components/dynamic-form/components/dynamic-form-mapitem/dynamic-form-mapitem.component.js +36 -0
  85. package/esm2015/lib/components/dynamic-form/components/dynamic-form-options/dynamic-form-options.component.js +106 -0
  86. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-tag/dynamic-form-select-tag.component.js +93 -0
  87. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-user-filter/dynamic-form-select-user-filter.component.js +207 -0
  88. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/dynamic-form-select-users.component.js +302 -0
  89. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/services/user-api.service.js +44 -0
  90. package/esm2015/lib/components/dynamic-form/components/dynamic-form-selectitem/dynamic-form-selectitem.component.js +176 -0
  91. package/esm2015/lib/components/dynamic-form/components/dynamic-form-slide-toggleitem/dynamic-form-slide-toggleitem.component.js +76 -0
  92. package/esm2015/lib/components/dynamic-form/components/dynamic-form-textarea/dynamic-form-textarea.component.js +180 -0
  93. package/esm2015/lib/components/dynamic-form/components/dynamic-form-textitem/dynamic-form-textitem.component.js +250 -0
  94. package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select-i18n.js +63 -0
  95. package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.js +269 -0
  96. package/esm2015/lib/components/dynamic-form/components/dynamic-form-viewer/dynamic-form-viewer.component.js +47 -0
  97. package/esm2015/lib/components/dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component.js +172 -0
  98. package/esm2015/lib/components/dynamic-form/components/form-wrappers/base-edit-form/base-edit-form.js +768 -0
  99. package/esm2015/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.component.js +35 -0
  100. package/esm2015/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.formio.js +17 -0
  101. package/esm2015/lib/components/dynamic-form/components/form-wrappers/toggle-wrapper/toggle-wrapper.component.js +34 -0
  102. package/esm2015/lib/components/dynamic-form/components/form-wrappers/toggle-wrapper/toggle-wrapper.formio.js +17 -0
  103. package/esm2015/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.component.js +38 -0
  104. package/esm2015/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.formio.js +30 -0
  105. package/esm2015/lib/components/dynamic-form/directives/dynamic-form-content-proxy.directive.js +17 -0
  106. package/esm2015/lib/components/dynamic-form/dynamic-form.module.js +289 -0
  107. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-boolitem-properties.interface.js +2 -0
  108. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-dateitem-properties.interface.js +2 -0
  109. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-item-properties.interface.js +2 -0
  110. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-item-validator.interface.js +2 -0
  111. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-item.interface.js +2 -0
  112. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-keyvaluepairsitem-properties.interface.js +2 -0
  113. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-selectitem-properties.interface.js +2 -0
  114. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-textitem-pipe-property.interface.js +2 -0
  115. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-textitem-properties.interface.js +2 -0
  116. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form.interfaces.js +10 -0
  117. package/esm2015/lib/components/dynamic-form/models/dynamic-form-baseitem.model.js +63 -0
  118. package/esm2015/lib/components/dynamic-form/models/dynamic-form-boolitem.model.js +20 -0
  119. package/esm2015/lib/components/dynamic-form/models/dynamic-form-dateitem.model.js +24 -0
  120. package/esm2015/lib/components/dynamic-form/models/dynamic-form-datetimeitem.model.js +12 -0
  121. package/esm2015/lib/components/dynamic-form/models/dynamic-form-mapitem.model.js +16 -0
  122. package/esm2015/lib/components/dynamic-form/models/dynamic-form-selectitem.model.js +17 -0
  123. package/esm2015/lib/components/dynamic-form/models/dynamic-form-textitem.model.js +32 -0
  124. package/esm2015/lib/components/dynamic-form/models/dynamic-form.models.js +8 -0
  125. package/esm2015/lib/components/dynamic-form/services/card-item-types.service.js +46 -0
  126. package/esm2015/lib/components/dynamic-form/services/dynamic-component-mapper.service.js +60 -0
  127. package/esm2015/lib/components/dynamic-form/services/dynamic-form-update.service.js +74 -0
  128. package/esm2015/lib/components/dynamic-form/validators/length-validator.js +15 -0
  129. package/esm2015/lib/components/dynamic-form/validators/regex-validator.js +15 -0
  130. package/esm2015/lib/components/dynamic-form/validators/required-validator.js +9 -0
  131. package/esm2015/lib/components/dynamic-form/validators/value-validator.js +15 -0
  132. package/esm2015/lib/components/dynamic-search/dynamic-search/dynamic-search.component.js +148 -0
  133. package/esm2015/lib/components/dynamic-search/dynamic-search.module.js +57 -0
  134. package/esm2015/lib/components/dynamic-table/dynamic-table/dynamic-table.component.js +204 -0
  135. package/esm2015/lib/components/dynamic-table/dynamic-table.module.js +44 -0
  136. package/esm2015/lib/components/dynamic-table/services/dynamic-table.service.js +16 -0
  137. package/esm2015/lib/components/dynamic-view/boolean-viewer/boolean-viewer.component.js +36 -0
  138. package/esm2015/lib/components/dynamic-view/data-viewer/data-viewer.component.js +32 -0
  139. package/esm2015/lib/components/dynamic-view/date-viewer/date-viewer.component.js +49 -0
  140. package/esm2015/lib/components/dynamic-view/department-viewer/department-viewer.component.js +71 -0
  141. package/esm2015/lib/components/dynamic-view/dropdown-viewer/dropdown-viewer.component.js +60 -0
  142. package/esm2015/lib/components/dynamic-view/dynamic-view.module.js +54 -0
  143. package/esm2015/lib/components/dynamic-view/list-viewer/list-viewer.component.js +40 -0
  144. package/esm2015/lib/components/filter/filter/filter.component.js +94 -0
  145. package/esm2015/lib/components/filter/filter.module.js +45 -0
  146. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/gregorian-datepicker/gregorian-datepicker.component.js +114 -0
  147. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component.js +111 -0
  148. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-gregorian-datepicker.component.js +165 -0
  149. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/provide-parent-form.directive.js +32 -0
  150. package/esm2015/lib/components/hijri-gregorian-datepicker/ngx-hijri-gregorian-datepicker.module.js +54 -0
  151. package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-formatter.service.js +71 -0
  152. package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-helper.service.js +25 -0
  153. package/esm2015/lib/components/hijri-gregorian-datepicker/utils/CustomNgbDateParserFormatter.js +43 -0
  154. package/esm2015/lib/components/hijri-gregorian-datepicker/utils/IslamicI18n.js +26 -0
  155. package/esm2015/lib/components/hijri-gregorian-datepicker/utils/consts.js +5 -0
  156. package/esm2015/lib/components/latest-activity/components/activity-line/activity-line.component.js +75 -0
  157. package/esm2015/lib/components/latest-activity/components/latest-activity/latest-activity.component.js +70 -0
  158. package/esm2015/lib/components/latest-activity/components/single-activity/single-activity.component.js +27 -0
  159. package/esm2015/lib/components/latest-activity/constants/activitylog.js +80 -0
  160. package/esm2015/lib/components/latest-activity/latest-activity.module.js +53 -0
  161. package/esm2015/lib/components/latest-activity/services/activity-log.service.js +33 -0
  162. package/esm2015/lib/components/notifications/components/notification-item/notification-item.component.js +69 -0
  163. package/esm2015/lib/components/notifications/components/notification-options/notification-options.component.js +22 -0
  164. package/esm2015/lib/components/notifications/components/notification-toast/notification-toast.component.js +57 -0
  165. package/esm2015/lib/components/notifications/components/notifications-button/notifications-button.component.js +129 -0
  166. package/esm2015/lib/components/notifications/components/notifications-list/notifications-list.component.js +149 -0
  167. package/esm2015/lib/components/notifications/notifications.module.js +109 -0
  168. package/esm2015/lib/components/notifications/notifications.service.js +277 -0
  169. package/esm2015/lib/components/pagination/pagination/pagination.component.js +123 -0
  170. package/esm2015/lib/components/pagination/pagination.module.js +32 -0
  171. package/esm2015/lib/components/pdf-tron/pdf-tron.module.js +24 -0
  172. package/esm2015/lib/components/pdf-tron/pdftron/pdftron.component.js +228 -0
  173. package/esm2015/lib/components/pdf-tron/pdftron/pdftron.service.js +181 -0
  174. package/esm2015/lib/components/select/select/select.component.js +130 -0
  175. package/esm2015/lib/components/select/select.module.js +37 -0
  176. package/esm2015/lib/components/table/table/table.component.js +174 -0
  177. package/esm2015/lib/components/table/table.module.js +57 -0
  178. package/esm2015/lib/components/users-card/users-card.component.js +43 -0
  179. package/esm2015/lib/components/users-card/users-card.module.js +28 -0
  180. package/esm2015/lib/components/viewer-log/components/viewer-log/viewer-log.component.js +33 -0
  181. package/esm2015/lib/components/viewer-log/viewer-log.module.js +20 -0
  182. package/esm2015/lib/components/vocabulary/interfaces/op-type.interface.js +2 -0
  183. package/esm2015/lib/components/vocabulary/services/vocabulary-api.service.js +49 -0
  184. package/esm2015/lib/components/vocabulary/vocabulary/vocabulary.component.js +106 -0
  185. package/esm2015/lib/components/vocabulary/vocabulary.module.js +34 -0
  186. package/esm2015/lib/configuration/app-config.service.js +26 -0
  187. package/esm2015/lib/configuration/helpers/app-initializer.js +4 -0
  188. package/esm2015/lib/directive/app-has-role/app-has-role.directive.js +61 -0
  189. package/esm2015/lib/directive/clickOutSide/click-outside.directive.js +29 -0
  190. package/esm2015/lib/directive/directive.module.js +48 -0
  191. package/esm2015/lib/directive/permissions/evaluators.service.js +118 -0
  192. package/esm2015/lib/directive/permissions/permissions.directive.js +106 -0
  193. package/esm2015/lib/directive/rtl/set-dir-rtl.directive.js +28 -0
  194. package/esm2015/lib/directive/rtl/set-rtl.directive.js +29 -0
  195. package/esm2015/lib/nuxeo-development-framework.component.js +26 -18
  196. package/esm2015/lib/nuxeo-development-framework.module.js +45 -16
  197. package/esm2015/lib/nuxeo-development-framework.service.js +14 -13
  198. package/esm2015/lib/pipes/file-size.pipe.js +57 -0
  199. package/esm2015/lib/pipes/hijri-date.pipe.js +46 -0
  200. package/esm2015/lib/pipes/localized-date.pipe.js +81 -0
  201. package/esm2015/lib/pipes/multi-value.pipe.js +42 -0
  202. package/esm2015/lib/pipes/pipes.module.js +29 -0
  203. package/esm2015/lib/pipes/secure-html.pipe.js +34 -0
  204. package/esm2015/lib/pipes/secure.pipe.js +40 -0
  205. package/esm2015/lib/pipes/time-ago.pipe.js +68 -0
  206. package/esm2015/lib/shared/components/button/button.component.js +87 -0
  207. package/esm2015/lib/shared/components/item-list/item-list.component.js +76 -0
  208. package/esm2015/lib/shared/components/no-data/no-data.component.js +37 -0
  209. package/esm2015/lib/shared/components/read-more/read-more.component.js +107 -0
  210. package/esm2015/lib/shared/components/search-autocomplete/search-autocomplete.component.js +144 -0
  211. package/esm2015/lib/shared/components/spinner/spinner.component.js +29 -0
  212. package/esm2015/lib/shared/components/user-card/user-card.component.js +49 -0
  213. package/esm2015/lib/shared/libraryShared.module.js +80 -0
  214. package/esm2015/nuxeo-development-framework.js +4 -4
  215. package/esm2015/public-api.js +156 -7
  216. package/fesm2015/nuxeo-development-framework.js +17027 -49
  217. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  218. package/lib/Core/adapters/adapter.service.d.ts +11 -0
  219. package/lib/Core/core.module.d.ts +14 -0
  220. package/lib/Core/enums/language.enum.d.ts +4 -0
  221. package/lib/Core/models/component.model.d.ts +6 -0
  222. package/lib/Core/services/callApi/call-api.service.d.ts +11 -0
  223. package/lib/Core/services/initialization/initialization.service.d.ts +14 -0
  224. package/lib/Core/services/localStorag/local-storag.service.d.ts +41 -0
  225. package/lib/Core/services/nuxeo/nuxeo-override.d.ts +8 -0
  226. package/lib/Core/services/nuxeo/nuxeo.service.d.ts +33 -0
  227. package/lib/Core/services/roles/roles.service.d.ts +11 -0
  228. package/lib/Core/services/translation/translate-loader.service.d.ts +26 -0
  229. package/lib/Core/services/translation/translation.service.d.ts +71 -0
  230. package/lib/Core/services/user/user-preferences.service.d.ts +80 -0
  231. package/lib/Core/utilities/moment-date-adapter.d.ts +37 -0
  232. package/lib/Core/utilities/utility.service.d.ts +11 -0
  233. package/lib/components/activity/activity/activity.component.d.ts +13 -0
  234. package/lib/components/activity/activity.module.d.ts +13 -0
  235. package/lib/components/avatar/avatar/avatar.component.d.ts +23 -0
  236. package/lib/components/avatar/avatar.module.d.ts +13 -0
  237. package/lib/components/card/card.component.d.ts +32 -0
  238. package/lib/components/card/card.module.d.ts +12 -0
  239. package/lib/components/comments/comments.module.d.ts +25 -0
  240. package/lib/components/comments/components/comment-item/comment-item.component.d.ts +13 -0
  241. package/lib/components/comments/components/comments-dashlet/comments-dashlet.component.d.ts +45 -0
  242. package/lib/components/comments/components/comments-list/comments-list.component.d.ts +26 -0
  243. package/lib/components/comments/constants/comment.d.ts +25 -0
  244. package/lib/components/comments/services/comment-api.service.d.ts +14 -0
  245. package/lib/components/confirm-caller/confirm-caller.dialog.d.ts +46 -0
  246. package/lib/components/confirm-caller/confirm-caller.module.d.ts +16 -0
  247. package/lib/components/confirm-caller/confirm-dialog/confirm-dialog.component.d.ts +12 -0
  248. package/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.d.ts +34 -0
  249. package/lib/components/correspondence-relation/components/correspondence-relation-create-form/correspondence-relation-create-form.component.d.ts +42 -0
  250. package/lib/components/correspondence-relation/components/correspondence-relation-list/correspondence-relation-list.component.d.ts +31 -0
  251. package/lib/components/correspondence-relation/components/correspondence-relation-reply/correspondence-relation-reply.component.d.ts +18 -0
  252. package/lib/components/correspondence-relation/components/versions/versions.component.d.ts +31 -0
  253. package/lib/components/correspondence-relation/correspondence-relation.module.d.ts +30 -0
  254. package/lib/components/correspondence-relation/services/correspondence-realation.service.d.ts +24 -0
  255. package/lib/components/correspondence-relation/services/viewer-files.service.d.ts +18 -0
  256. package/lib/components/create-entity/create-entity/create-entity.component.d.ts +17 -0
  257. package/lib/components/create-entity/create-entity.module.d.ts +11 -0
  258. package/lib/components/cts-tags/components/correspondence-tags/correspondence-tags.component.d.ts +28 -0
  259. package/lib/components/cts-tags/cts-tags.module.d.ts +21 -0
  260. package/lib/components/cts-tags/services/tags-api.service.d.ts +15 -0
  261. package/lib/components/custom-toastr/components/custom-toastr/custom-toastr.component.d.ts +30 -0
  262. package/lib/components/custom-toastr/custom-toastr.module.d.ts +12 -0
  263. package/lib/components/custom-toastr/interfaces/toast-type.interface.d.ts +1 -0
  264. package/lib/components/custom-toastr/services/custom-toastr.service.d.ts +18 -0
  265. package/lib/components/documents/components/attachments-list/attachments-list.component.d.ts +54 -0
  266. package/lib/components/documents/components/attachments-page-provider/attachments-page-provider.component.d.ts +37 -0
  267. package/lib/components/documents/components/document-list/documents-list.component.d.ts +81 -0
  268. package/lib/components/documents/components/document-scan/document-scan.component.d.ts +103 -0
  269. package/lib/components/documents/components/document-upload/document-upload.component.d.ts +58 -0
  270. package/lib/components/documents/components/documents/documents.component.d.ts +27 -0
  271. package/lib/components/documents/constants/document-templates.d.ts +33 -0
  272. package/lib/components/documents/constants/documents.d.ts +95 -0
  273. package/lib/components/documents/documents.module.d.ts +33 -0
  274. package/lib/components/documents/services/document-templates.service.d.ts +24 -0
  275. package/lib/components/documents/services/documents.service.d.ts +36 -0
  276. package/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.d.ts +63 -0
  277. package/lib/components/dynamic-chart/dynamic-chart.module.d.ts +16 -0
  278. package/lib/components/dynamic-chart/dynamic-single-chart/dynamic-single-chart.component.d.ts +33 -0
  279. package/lib/components/dynamic-chart/services/chart-data.service.d.ts +37 -0
  280. package/lib/components/dynamic-filter/dynamic-filter/dynamic-filter.component.d.ts +45 -0
  281. package/lib/components/dynamic-filter/dynamic-filter.module.d.ts +16 -0
  282. package/lib/components/dynamic-form/components/department-form/department-form.component.d.ts +28 -0
  283. package/lib/components/dynamic-form/components/dynamic-form/dynamic-form.component.d.ts +26 -0
  284. package/lib/components/dynamic-form/components/dynamic-form/fields.adapter.d.ts +6 -0
  285. package/lib/components/dynamic-form/components/dynamic-form/form-builder.service.d.ts +21 -0
  286. package/lib/components/dynamic-form/components/dynamic-form-boolitem/dynamic-form-boolitem.component.d.ts +17 -0
  287. package/lib/components/dynamic-form/components/dynamic-form-builder/dynamic-form-builder.component.d.ts +57 -0
  288. package/lib/components/dynamic-form/components/dynamic-form-checkbox-item/dynamic-form-checkbox-item.component.d.ts +35 -0
  289. package/lib/components/dynamic-form/components/dynamic-form-dateitem/dynamic-form-dateitem.component.d.ts +70 -0
  290. package/lib/components/dynamic-form/components/dynamic-form-dateitem/owlDateTimeIntl.d.ts +52 -0
  291. package/lib/components/dynamic-form/components/dynamic-form-department/constants/department.d.ts +12 -0
  292. package/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.d.ts +65 -0
  293. package/lib/components/dynamic-form/components/dynamic-form-department/services/department-api.service.d.ts +29 -0
  294. package/lib/components/dynamic-form/components/dynamic-form-department/services/department-management.service.d.ts +21 -0
  295. package/lib/components/dynamic-form/components/dynamic-form-field/dynamic-form-field.component.d.ts +30 -0
  296. package/lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component.d.ts +61 -0
  297. package/lib/components/dynamic-form/components/dynamic-form-item-dispatcher/dynamic-form-item-dispatcher.component.d.ts +25 -0
  298. package/lib/components/dynamic-form/components/dynamic-form-mapitem/dynamic-form-mapitem.component.d.ts +15 -0
  299. package/lib/components/dynamic-form/components/dynamic-form-options/dynamic-form-options.component.d.ts +45 -0
  300. package/lib/components/dynamic-form/components/dynamic-form-select-tag/dynamic-form-select-tag.component.d.ts +41 -0
  301. package/lib/components/dynamic-form/components/dynamic-form-select-user-filter/dynamic-form-select-user-filter.component.d.ts +65 -0
  302. package/lib/components/dynamic-form/components/dynamic-form-select-users/dynamic-form-select-users.component.d.ts +83 -0
  303. package/lib/components/dynamic-form/components/dynamic-form-select-users/services/user-api.service.d.ts +13 -0
  304. package/lib/components/dynamic-form/components/dynamic-form-selectitem/dynamic-form-selectitem.component.d.ts +79 -0
  305. package/lib/components/dynamic-form/components/dynamic-form-slide-toggleitem/dynamic-form-slide-toggleitem.component.d.ts +37 -0
  306. package/lib/components/dynamic-form/components/dynamic-form-textarea/dynamic-form-textarea.component.d.ts +71 -0
  307. package/lib/components/dynamic-form/components/dynamic-form-textitem/dynamic-form-textitem.component.d.ts +86 -0
  308. package/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select-i18n.d.ts +19 -0
  309. package/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.d.ts +88 -0
  310. package/lib/components/dynamic-form/components/dynamic-form-viewer/dynamic-form-viewer.component.d.ts +16 -0
  311. package/lib/components/dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component.d.ts +76 -0
  312. package/lib/components/dynamic-form/components/form-wrappers/base-edit-form/base-edit-form.d.ts +599 -0
  313. package/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.component.d.ts +13 -0
  314. package/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.formio.d.ts +2 -0
  315. package/lib/components/dynamic-form/components/form-wrappers/toggle-wrapper/toggle-wrapper.component.d.ts +13 -0
  316. package/lib/components/dynamic-form/components/form-wrappers/toggle-wrapper/toggle-wrapper.formio.d.ts +2 -0
  317. package/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.component.d.ts +16 -0
  318. package/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.formio.d.ts +2 -0
  319. package/lib/components/dynamic-form/directives/dynamic-form-content-proxy.directive.d.ts +9 -0
  320. package/lib/components/dynamic-form/dynamic-form.module.d.ts +64 -0
  321. package/lib/components/dynamic-form/interfaces/dynamic-form-boolitem-properties.interface.d.ts +5 -0
  322. package/lib/components/dynamic-form/interfaces/dynamic-form-dateitem-properties.interface.d.ts +5 -0
  323. package/lib/components/dynamic-form/interfaces/dynamic-form-item-properties.interface.d.ts +15 -0
  324. package/lib/components/dynamic-form/interfaces/dynamic-form-item-validator.interface.d.ts +4 -0
  325. package/lib/components/dynamic-form/interfaces/dynamic-form-item.interface.d.ts +12 -0
  326. package/lib/components/dynamic-form/interfaces/dynamic-form-keyvaluepairsitem-properties.interface.d.ts +8 -0
  327. package/lib/components/dynamic-form/interfaces/dynamic-form-selectitem-properties.interface.d.ts +10 -0
  328. package/lib/components/dynamic-form/interfaces/dynamic-form-textitem-pipe-property.interface.d.ts +5 -0
  329. package/lib/components/dynamic-form/interfaces/dynamic-form-textitem-properties.interface.d.ts +8 -0
  330. package/lib/components/dynamic-form/interfaces/dynamic-form.interfaces.d.ts +9 -0
  331. package/lib/components/dynamic-form/models/dynamic-form-baseitem.model.d.ts +21 -0
  332. package/lib/components/dynamic-form/models/dynamic-form-boolitem.model.d.ts +11 -0
  333. package/lib/components/dynamic-form/models/dynamic-form-dateitem.model.d.ts +13 -0
  334. package/lib/components/dynamic-form/models/dynamic-form-datetimeitem.model.d.ts +9 -0
  335. package/lib/components/dynamic-form/models/dynamic-form-mapitem.model.d.ts +8 -0
  336. package/lib/components/dynamic-form/models/dynamic-form-selectitem.model.d.ts +11 -0
  337. package/lib/components/dynamic-form/models/dynamic-form-textitem.model.d.ts +15 -0
  338. package/lib/components/dynamic-form/models/dynamic-form.models.d.ts +7 -0
  339. package/lib/components/dynamic-form/services/card-item-types.service.d.ts +13 -0
  340. package/lib/components/dynamic-form/services/dynamic-component-mapper.service.d.ts +36 -0
  341. package/lib/components/dynamic-form/services/dynamic-form-update.service.d.ts +30 -0
  342. package/lib/components/dynamic-form/validators/length-validator.d.ts +7 -0
  343. package/lib/components/dynamic-form/validators/regex-validator.d.ts +7 -0
  344. package/lib/components/dynamic-form/validators/required-validator.d.ts +5 -0
  345. package/lib/components/dynamic-form/validators/value-validator.d.ts +7 -0
  346. package/lib/components/dynamic-search/dynamic-search/dynamic-search.component.d.ts +71 -0
  347. package/lib/components/dynamic-search/dynamic-search.module.d.ts +19 -0
  348. package/lib/components/dynamic-table/dynamic-table/dynamic-table.component.d.ts +96 -0
  349. package/lib/components/dynamic-table/dynamic-table.module.d.ts +16 -0
  350. package/lib/components/dynamic-table/services/dynamic-table.service.d.ts +8 -0
  351. package/lib/components/dynamic-view/boolean-viewer/boolean-viewer.component.d.ts +13 -0
  352. package/lib/components/dynamic-view/data-viewer/data-viewer.component.d.ts +12 -0
  353. package/lib/components/dynamic-view/date-viewer/date-viewer.component.d.ts +17 -0
  354. package/lib/components/dynamic-view/department-viewer/department-viewer.component.d.ts +29 -0
  355. package/lib/components/dynamic-view/dropdown-viewer/dropdown-viewer.component.d.ts +37 -0
  356. package/lib/components/dynamic-view/dynamic-view.module.d.ts +20 -0
  357. package/lib/components/dynamic-view/list-viewer/list-viewer.component.d.ts +20 -0
  358. package/lib/components/filter/filter/filter.component.d.ts +31 -0
  359. package/lib/components/filter/filter.module.d.ts +15 -0
  360. package/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/gregorian-datepicker/gregorian-datepicker.component.d.ts +34 -0
  361. package/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component.d.ts +32 -0
  362. package/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-gregorian-datepicker.component.d.ts +39 -0
  363. package/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/provide-parent-form.directive.d.ts +9 -0
  364. package/lib/components/hijri-gregorian-datepicker/ngx-hijri-gregorian-datepicker.module.d.ts +14 -0
  365. package/lib/components/hijri-gregorian-datepicker/services/date-formatter.service.d.ts +15 -0
  366. package/lib/components/hijri-gregorian-datepicker/services/date-helper.service.d.ts +8 -0
  367. package/lib/components/hijri-gregorian-datepicker/utils/CustomNgbDateParserFormatter.d.ts +11 -0
  368. package/lib/components/hijri-gregorian-datepicker/utils/IslamicI18n.d.ts +10 -0
  369. package/lib/components/hijri-gregorian-datepicker/utils/consts.d.ts +4 -0
  370. package/lib/components/latest-activity/components/activity-line/activity-line.component.d.ts +19 -0
  371. package/lib/components/latest-activity/components/latest-activity/latest-activity.component.d.ts +22 -0
  372. package/lib/components/latest-activity/components/single-activity/single-activity.component.d.ts +10 -0
  373. package/lib/components/latest-activity/constants/activitylog.d.ts +82 -0
  374. package/lib/components/latest-activity/latest-activity.module.d.ts +19 -0
  375. package/lib/components/latest-activity/services/activity-log.service.d.ts +12 -0
  376. package/lib/components/notifications/components/notification-item/notification-item.component.d.ts +15 -0
  377. package/lib/components/notifications/components/notification-options/notification-options.component.d.ts +10 -0
  378. package/lib/components/notifications/components/notification-toast/notification-toast.component.d.ts +19 -0
  379. package/lib/components/notifications/components/notifications-button/notifications-button.component.d.ts +25 -0
  380. package/lib/components/notifications/components/notifications-list/notifications-list.component.d.ts +45 -0
  381. package/lib/components/notifications/notifications.module.d.ts +24 -0
  382. package/lib/components/notifications/notifications.service.d.ts +61 -0
  383. package/lib/components/pagination/pagination/pagination.component.d.ts +46 -0
  384. package/lib/components/pagination/pagination.module.d.ts +13 -0
  385. package/lib/components/pdf-tron/pdf-tron.module.d.ts +8 -0
  386. package/lib/components/pdf-tron/pdftron/pdftron.component.d.ts +54 -0
  387. package/lib/components/pdf-tron/pdftron/pdftron.service.d.ts +30 -0
  388. package/lib/components/select/select/select.component.d.ts +43 -0
  389. package/lib/components/select/select.module.d.ts +12 -0
  390. package/lib/components/table/table/table.component.d.ts +89 -0
  391. package/lib/components/table/table.module.d.ts +18 -0
  392. package/lib/components/users-card/users-card.component.d.ts +22 -0
  393. package/lib/components/users-card/users-card.module.d.ts +17 -0
  394. package/lib/components/viewer-log/components/viewer-log/viewer-log.component.d.ts +12 -0
  395. package/lib/components/viewer-log/viewer-log.module.d.ts +10 -0
  396. package/lib/components/vocabulary/interfaces/op-type.interface.d.ts +1 -0
  397. package/lib/components/vocabulary/services/vocabulary-api.service.d.ts +16 -0
  398. package/lib/components/vocabulary/vocabulary/vocabulary.component.d.ts +37 -0
  399. package/lib/components/vocabulary/vocabulary.module.d.ts +11 -0
  400. package/lib/configuration/app-config.service.d.ts +11 -0
  401. package/lib/configuration/helpers/app-initializer.d.ts +2 -0
  402. package/lib/directive/app-has-role/app-has-role.directive.d.ts +18 -0
  403. package/lib/directive/clickOutSide/click-outside.directive.d.ts +11 -0
  404. package/lib/directive/directive.module.d.ts +16 -0
  405. package/lib/directive/permissions/evaluators.service.d.ts +26 -0
  406. package/lib/directive/permissions/permissions.directive.d.ts +46 -0
  407. package/lib/directive/rtl/set-dir-rtl.directive.d.ts +13 -0
  408. package/lib/directive/rtl/set-rtl.directive.d.ts +13 -0
  409. package/lib/nuxeo-development-framework.component.d.ts +8 -5
  410. package/lib/nuxeo-development-framework.module.d.ts +12 -2
  411. package/lib/nuxeo-development-framework.service.d.ts +6 -3
  412. package/lib/pipes/file-size.pipe.d.ts +34 -0
  413. package/lib/pipes/hijri-date.pipe.d.ts +32 -0
  414. package/lib/pipes/localized-date.pipe.d.ts +44 -0
  415. package/lib/pipes/multi-value.pipe.d.ts +32 -0
  416. package/lib/pipes/pipes.module.d.ts +18 -0
  417. package/lib/pipes/secure-html.pipe.d.ts +26 -0
  418. package/lib/pipes/secure.pipe.d.ts +29 -0
  419. package/lib/pipes/time-ago.pipe.d.ts +34 -0
  420. package/lib/shared/components/button/button.component.d.ts +38 -0
  421. package/lib/shared/components/item-list/item-list.component.d.ts +45 -0
  422. package/lib/shared/components/no-data/no-data.component.d.ts +21 -0
  423. package/lib/shared/components/read-more/read-more.component.d.ts +37 -0
  424. package/lib/shared/components/search-autocomplete/search-autocomplete.component.d.ts +49 -0
  425. package/lib/shared/components/spinner/spinner.component.d.ts +18 -0
  426. package/lib/shared/components/user-card/user-card.component.d.ts +30 -0
  427. package/lib/shared/libraryShared.module.d.ts +25 -0
  428. package/nuxeo-development-framework.d.ts +5 -4
  429. package/package.json +57 -16
  430. package/public-api.d.ts +145 -3
  431. package/bundles/nuxeo-development-framework.umd.min.js +0 -2
  432. package/bundles/nuxeo-development-framework.umd.min.js.map +0 -1
  433. package/nuxeo-development-framework.metadata.json +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"nuxeo-development-framework.umd.js","sources":["../../../projects/nuxeo-development-framework/src/lib/nuxeo-development-framework.service.ts","../../../projects/nuxeo-development-framework/src/lib/nuxeo-development-framework.component.ts","../../../projects/nuxeo-development-framework/src/lib/nuxeo-development-framework.module.ts","../../../projects/nuxeo-development-framework/src/public-api.ts","../../../projects/nuxeo-development-framework/src/nuxeo-development-framework.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NuxeoDevelopmentFrameworkService {\n\n constructor() { }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-nuxeo-development-framework',\n template: `\n <p>\n nuxeo-development-framework works!\n </p>\n `,\n styles: [\n ]\n})\nexport class NuxeoDevelopmentFrameworkComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { NuxeoDevelopmentFrameworkComponent } from './nuxeo-development-framework.component';\n\n\n\n@NgModule({\n declarations: [\n NuxeoDevelopmentFrameworkComponent\n ],\n imports: [\n ],\n exports: [\n NuxeoDevelopmentFrameworkComponent\n ]\n})\nexport class NuxeoDevelopmentFrameworkModule { }\n","/*\n * Public API Surface of nuxeo-development-framework\n */\n\nexport * from './lib/nuxeo-development-framework.service';\nexport * from './lib/nuxeo-development-framework.component';\nexport * from './lib/nuxeo-development-framework.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Injectable","Component","NgModule"],"mappings":";;;;;;;QAOE;SAAiB;;;;;gBALlBA,aAAU,SAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;;;QCUC;SAAiB;QAEjB,qDAAQ,GAAR;SACC;;;;gBAfFC,YAAS,SAAC;oBACT,QAAQ,EAAE,iCAAiC;oBAC3C,QAAQ,EAAE,mEAIT;iBAGF;;;;;QCID;;;;;gBAVCC,WAAQ,SAAC;oBACR,YAAY,EAAE;wBACZ,kCAAkC;qBACnC;oBACD,OAAO,EAAE,EACR;oBACD,OAAO,EAAE;wBACP,kCAAkC;qBACnC;iBACF;;;ICdD;;;;ICAA;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"nuxeo-development-framework.umd.js","sources":["../../../projects/nuxeo-development-framework/src/lib/nuxeo-development-framework.service.ts","../../../projects/nuxeo-development-framework/src/lib/nuxeo-development-framework.component.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/nuxeo-development-framework/src/lib/Core/models/component.model.ts","../../../projects/nuxeo-development-framework/src/lib/Core/services/translation/translate-loader.service.ts","../../../projects/nuxeo-development-framework/src/lib/Core/services/localStorag/local-storag.service.ts","../../../projects/nuxeo-development-framework/src/lib/Core/services/user/user-preferences.service.ts","../../../projects/nuxeo-development-framework/src/lib/Core/enums/language.enum.ts","../../../projects/nuxeo-development-framework/src/lib/Core/services/nuxeo/nuxeo-override.ts","../../../projects/nuxeo-development-framework/src/lib/Core/services/roles/roles.service.ts","../../../projects/nuxeo-development-framework/src/lib/Core/services/nuxeo/nuxeo.service.ts","../../../projects/nuxeo-development-framework/src/lib/Core/services/translation/translation.service.ts","../../../projects/nuxeo-development-framework/src/lib/configuration/helpers/app-initializer.ts","../../../projects/nuxeo-development-framework/src/lib/configuration/app-config.service.ts","../../../projects/nuxeo-development-framework/src/lib/Core/core.module.ts","../../../projects/nuxeo-development-framework/src/lib/nuxeo-development-framework.module.ts","../../../projects/nuxeo-development-framework/src/lib/pipes/secure.pipe.ts","../../../projects/nuxeo-development-framework/src/lib/components/avatar/avatar/avatar.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/avatar/avatar/avatar.component.html","../../../projects/nuxeo-development-framework/src/lib/pipes/localized-date.pipe.ts","../../../projects/nuxeo-development-framework/src/lib/pipes/secure-html.pipe.ts","../../../projects/nuxeo-development-framework/src/lib/pipes/time-ago.pipe.ts","../../../projects/nuxeo-development-framework/src/lib/pipes/multi-value.pipe.ts","../../../projects/nuxeo-development-framework/src/lib/pipes/file-size.pipe.ts","../../../projects/nuxeo-development-framework/src/lib/pipes/hijri-date.pipe.ts","../../../projects/nuxeo-development-framework/src/lib/pipes/pipes.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/avatar/avatar.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/hijri-gregorian-datepicker/utils/CustomNgbDateParserFormatter.ts","../../../projects/nuxeo-development-framework/src/lib/components/hijri-gregorian-datepicker/services/date-formatter.service.ts","../../../projects/nuxeo-development-framework/src/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/provide-parent-form.directive.ts","../../../projects/nuxeo-development-framework/src/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/gregorian-datepicker/gregorian-datepicker.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/gregorian-datepicker/gregorian-datepicker.component.html","../../../projects/nuxeo-development-framework/src/lib/components/hijri-gregorian-datepicker/utils/IslamicI18n.ts","../../../projects/nuxeo-development-framework/src/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component.html","../../../projects/nuxeo-development-framework/src/lib/components/hijri-gregorian-datepicker/utils/consts.ts","../../../projects/nuxeo-development-framework/src/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-gregorian-datepicker.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-gregorian-datepicker.component.html","../../../projects/nuxeo-development-framework/src/lib/components/hijri-gregorian-datepicker/ngx-hijri-gregorian-datepicker.module.ts","../../../projects/nuxeo-development-framework/src/lib/directive/clickOutSide/click-outside.directive.ts","../../../projects/nuxeo-development-framework/src/lib/directive/rtl/set-rtl.directive.ts","../../../projects/nuxeo-development-framework/src/lib/directive/permissions/evaluators.service.ts","../../../projects/nuxeo-development-framework/src/lib/directive/permissions/permissions.directive.ts","../../../projects/nuxeo-development-framework/src/lib/directive/rtl/set-dir-rtl.directive.ts","../../../projects/nuxeo-development-framework/src/lib/directive/app-has-role/app-has-role.directive.ts","../../../projects/nuxeo-development-framework/src/lib/directive/directive.module.ts","../../../projects/nuxeo-development-framework/src/lib/Core/services/callApi/call-api.service.ts","../../../projects/nuxeo-development-framework/src/lib/components/correspondence-relation/services/correspondence-realation.service.ts","../../../projects/nuxeo-development-framework/src/lib/shared/components/search-autocomplete/search-autocomplete.component.ts","../../../projects/nuxeo-development-framework/src/lib/shared/components/search-autocomplete/search-autocomplete.component.html","../../../projects/nuxeo-development-framework/src/lib/shared/components/read-more/read-more.component.ts","../../../projects/nuxeo-development-framework/src/lib/shared/components/user-card/user-card.component.ts","../../../projects/nuxeo-development-framework/src/lib/shared/components/user-card/user-card.component.html","../../../projects/nuxeo-development-framework/src/lib/shared/components/button/button.component.ts","../../../projects/nuxeo-development-framework/src/lib/shared/components/button/button.component.html","../../../projects/nuxeo-development-framework/src/lib/shared/components/no-data/no-data.component.ts","../../../projects/nuxeo-development-framework/src/lib/shared/components/no-data/no-data.component.html","../../../projects/nuxeo-development-framework/src/lib/shared/components/spinner/spinner.component.ts","../../../projects/nuxeo-development-framework/src/lib/shared/components/spinner/spinner.component.html","../../../projects/nuxeo-development-framework/src/lib/Core/utilities/utility.service.ts","../../../projects/nuxeo-development-framework/src/lib/Core/adapters/adapter.service.ts","../../../projects/nuxeo-development-framework/src/lib/components/correspondence-relation/services/viewer-files.service.ts","../../../projects/nuxeo-development-framework/src/lib/shared/components/item-list/item-list.component.ts","../../../projects/nuxeo-development-framework/src/lib/shared/components/item-list/item-list.component.html","../../../projects/nuxeo-development-framework/src/lib/shared/libraryShared.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/services/dynamic-form-update.service.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-boolitem/dynamic-form-boolitem.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-boolitem/dynamic-form-boolitem.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/form-wrappers/base-edit-form/base-edit-form.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-builder/dynamic-form-builder.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-builder/dynamic-form-builder.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-checkbox-item/dynamic-form-checkbox-item.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-checkbox-item/dynamic-form-checkbox-item.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-dateitem/dynamic-form-dateitem.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-dateitem/dynamic-form-dateitem.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-dateitem/owlDateTimeIntl.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-department/constants/department.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-department/services/department-api.service.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select-i18n.ts","../../../projects/nuxeo-development-framework/src/lib/components/custom-toastr/components/custom-toastr/custom-toastr.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/custom-toastr/components/custom-toastr/custom-toastr.component.html","../../../projects/nuxeo-development-framework/src/lib/components/custom-toastr/services/custom-toastr.service.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-textitem/dynamic-form-textitem.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-textitem/dynamic-form-textitem.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-selectitem/dynamic-form-selectitem.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-selectitem/dynamic-form-selectitem.component.html","../../../projects/nuxeo-development-framework/src/lib/components/vocabulary/services/vocabulary-api.service.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-slide-toggleitem/dynamic-form-slide-toggleitem.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-slide-toggleitem/dynamic-form-slide-toggleitem.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/department-form/department-form.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/department-form/department-form.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-department/services/department-management.service.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-treeview-select/dynamic-form-treeview-select.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/directives/dynamic-form-content-proxy.directive.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-mapitem/dynamic-form-mapitem.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-mapitem/dynamic-form-mapitem.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/services/dynamic-component-mapper.service.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/services/card-item-types.service.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-item-dispatcher/dynamic-form-item-dispatcher.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-options/dynamic-form-options.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-options/dynamic-form-options.component.html","../../../projects/nuxeo-development-framework/src/lib/components/cts-tags/services/tags-api.service.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-select-tag/dynamic-form-select-tag.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-select-tag/dynamic-form-select-tag.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-select-users/services/user-api.service.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-select-user-filter/dynamic-form-select-user-filter.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-select-user-filter/dynamic-form-select-user-filter.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-select-users/dynamic-form-select-users.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-select-users/dynamic-form-select-users.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-textarea/dynamic-form-textarea.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-textarea/dynamic-form-textarea.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form/fields.adapter.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form/form-builder.service.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form/dynamic-form.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form/dynamic-form.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.formio.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.formio.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-field/dynamic-form-field.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-field/dynamic-form-field.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/form-wrappers/toggle-wrapper/toggle-wrapper.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/form-wrappers/toggle-wrapper/toggle-wrapper.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/form-wrappers/toggle-wrapper/toggle-wrapper.formio.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-viewer/dynamic-form-viewer.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/components/dynamic-form-viewer/dynamic-form-viewer.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-form/dynamic-form.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/card/card.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/card/card.component.html","../../../projects/nuxeo-development-framework/src/lib/components/card/card.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/custom-toastr/custom-toastr.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/confirm-caller/confirm-caller.dialog.ts","../../../projects/nuxeo-development-framework/src/lib/components/confirm-caller/confirm-caller.dialog.html","../../../projects/nuxeo-development-framework/src/lib/components/confirm-caller/confirm-dialog/confirm-dialog.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/confirm-caller/confirm-dialog/confirm-dialog.component.html","../../../projects/nuxeo-development-framework/src/lib/components/confirm-caller/confirm-caller.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/pagination/pagination/pagination.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/pagination/pagination/pagination.component.html","../../../projects/nuxeo-development-framework/src/lib/components/pagination/pagination.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/documents/constants/documents.ts","../../../projects/nuxeo-development-framework/src/lib/components/documents/services/documents.service.ts","../../../projects/nuxeo-development-framework/src/lib/components/documents/components/document-list/documents-list.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/documents/components/document-list/documents-list.component.html","../../../projects/nuxeo-development-framework/src/lib/components/documents/components/document-scan/document-scan.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/documents/components/document-scan/document-scan.component.html","../../../projects/nuxeo-development-framework/src/lib/components/documents/components/document-upload/document-upload.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/documents/components/document-upload/document-upload.component.html","../../../projects/nuxeo-development-framework/src/lib/components/documents/components/documents/documents.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/documents/components/documents/documents.component.html","../../../projects/nuxeo-development-framework/src/lib/components/documents/components/attachments-list/attachments-list.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/documents/components/attachments-list/attachments-list.component.html","../../../projects/nuxeo-development-framework/src/lib/components/documents/components/attachments-page-provider/attachments-page-provider.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/documents/components/attachments-page-provider/attachments-page-provider.component.html","../../../projects/nuxeo-development-framework/src/lib/components/documents/documents.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-view/data-viewer/data-viewer.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-view/data-viewer/data-viewer.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-view/boolean-viewer/boolean-viewer.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-view/boolean-viewer/boolean-viewer.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-view/dropdown-viewer/dropdown-viewer.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-view/dropdown-viewer/dropdown-viewer.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-view/date-viewer/date-viewer.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-view/date-viewer/date-viewer.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-view/list-viewer/list-viewer.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-view/list-viewer/list-viewer.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-view/department-viewer/department-viewer.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-view/department-viewer/department-viewer.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-view/dynamic-view.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/documents/constants/document-templates.ts","../../../projects/nuxeo-development-framework/src/lib/components/documents/services/document-templates.service.ts","../../../projects/nuxeo-development-framework/src/lib/components/hijri-gregorian-datepicker/services/date-helper.service.ts","../../../projects/nuxeo-development-framework/src/lib/components/table/table/table.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/table/table/table.component.html","../../../projects/nuxeo-development-framework/src/lib/components/table/table.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-filter/dynamic-filter/dynamic-filter.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-filter/dynamic-filter/dynamic-filter.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-filter/dynamic-filter.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-table/services/dynamic-table.service.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-table/dynamic-table/dynamic-table.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-table/dynamic-table/dynamic-table.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-table/dynamic-table.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-search/dynamic-search/dynamic-search.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-search/dynamic-search/dynamic-search.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-search/dynamic-search.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/select/select/select.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/select/select/select.component.html","../../../projects/nuxeo-development-framework/src/lib/components/select/select.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/vocabulary/vocabulary/vocabulary.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/vocabulary/vocabulary/vocabulary.component.html","../../../projects/nuxeo-development-framework/src/lib/components/vocabulary/vocabulary.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-chart/services/chart-data.service.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-chart/dynamic-single-chart/dynamic-single-chart.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-chart/dynamic-single-chart/dynamic-single-chart.component.html","../../../projects/nuxeo-development-framework/src/lib/components/dynamic-chart/dynamic-chart.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/users-card/users-card.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/users-card/users-card.component.html","../../../projects/nuxeo-development-framework/src/lib/components/users-card/users-card.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/notifications/components/notification-item/notification-item.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/notifications/components/notification-item/notification-item.component.html","../../../projects/nuxeo-development-framework/src/lib/components/notifications/components/notification-options/notification-options.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/notifications/components/notification-options/notification-options.component.html","../../../projects/nuxeo-development-framework/src/lib/components/notifications/components/notification-toast/notification-toast.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/notifications/components/notification-toast/notification-toast.component.html","../../../projects/nuxeo-development-framework/src/lib/components/notifications/notifications.service.ts","../../../projects/nuxeo-development-framework/src/lib/components/notifications/components/notifications-list/notifications-list.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/notifications/components/notifications-list/notifications-list.component.html","../../../projects/nuxeo-development-framework/src/lib/components/notifications/components/notifications-button/notifications-button.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/notifications/components/notifications-button/notifications-button.component.html","../../../projects/nuxeo-development-framework/src/lib/components/notifications/notifications.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/filter/filter/filter.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/filter/filter/filter.component.html","../../../projects/nuxeo-development-framework/src/lib/components/filter/filter.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/comments/components/comment-item/comment-item.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/comments/components/comment-item/comment-item.component.html","../../../projects/nuxeo-development-framework/src/lib/components/comments/constants/comment.ts","../../../projects/nuxeo-development-framework/src/lib/components/comments/services/comment-api.service.ts","../../../projects/nuxeo-development-framework/src/lib/components/comments/components/comments-list/comments-list.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/comments/components/comments-list/comments-list.component.html","../../../projects/nuxeo-development-framework/src/lib/components/comments/components/comments-dashlet/comments-dashlet.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/comments/components/comments-dashlet/comments-dashlet.component.html","../../../projects/nuxeo-development-framework/src/lib/components/comments/comments.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/create-entity/create-entity/create-entity.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/create-entity/create-entity/create-entity.component.html","../../../projects/nuxeo-development-framework/src/lib/components/create-entity/create-entity.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/cts-tags/components/correspondence-tags/correspondence-tags.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/cts-tags/components/correspondence-tags/correspondence-tags.component.html","../../../projects/nuxeo-development-framework/src/lib/components/cts-tags/cts-tags.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/activity/activity/activity.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/activity/activity/activity.component.html","../../../projects/nuxeo-development-framework/src/lib/components/activity/activity.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/latest-activity/components/activity-line/activity-line.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/latest-activity/components/activity-line/activity-line.component.html","../../../projects/nuxeo-development-framework/src/lib/components/latest-activity/constants/activitylog.ts","../../../projects/nuxeo-development-framework/src/lib/components/latest-activity/services/activity-log.service.ts","../../../projects/nuxeo-development-framework/src/lib/components/latest-activity/components/single-activity/single-activity.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/latest-activity/components/single-activity/single-activity.component.html","../../../projects/nuxeo-development-framework/src/lib/components/latest-activity/components/latest-activity/latest-activity.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/latest-activity/components/latest-activity/latest-activity.component.html","../../../projects/nuxeo-development-framework/src/lib/components/latest-activity/latest-activity.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/viewer-log/components/viewer-log/viewer-log.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/viewer-log/components/viewer-log/viewer-log.component.html","../../../projects/nuxeo-development-framework/src/lib/components/viewer-log/viewer-log.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/correspondence-relation/components/correspondence-relation-list/correspondence-relation-list.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/correspondence-relation/components/correspondence-relation-list/correspondence-relation-list.component.html","../../../projects/nuxeo-development-framework/src/lib/components/correspondence-relation/components/correspondence-relation-create-form/correspondence-relation-create-form.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/correspondence-relation/components/correspondence-relation-create-form/correspondence-relation-create-form.component.html","../../../projects/nuxeo-development-framework/src/lib/components/correspondence-relation/components/correspondence-relation-reply/correspondence-relation-reply.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/correspondence-relation/components/correspondence-relation-reply/correspondence-relation-reply.component.html","../../../projects/nuxeo-development-framework/src/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.html","../../../projects/nuxeo-development-framework/src/lib/components/correspondence-relation/components/versions/versions.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/correspondence-relation/components/versions/versions.component.html","../../../projects/nuxeo-development-framework/src/lib/components/correspondence-relation/correspondence-relation.module.ts","../../../projects/nuxeo-development-framework/src/lib/components/pdf-tron/pdftron/pdftron.service.ts","../../../projects/nuxeo-development-framework/src/lib/components/pdf-tron/pdftron/pdftron.component.ts","../../../projects/nuxeo-development-framework/src/lib/components/pdf-tron/pdftron/pdftron.component.html","../../../projects/nuxeo-development-framework/src/lib/components/pdf-tron/pdf-tron.module.ts","../../../projects/nuxeo-development-framework/src/lib/Core/services/initialization/initialization.service.ts","../../../projects/nuxeo-development-framework/src/lib/Core/utilities/moment-date-adapter.ts","../../../projects/nuxeo-development-framework/src/public-api.ts","../../../projects/nuxeo-development-framework/src/nuxeo-development-framework.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NuxeoDevelopmentFrameworkService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-nuxeo-development-framework',\r\n template: `\r\n <p>\r\n nuxeo-development-framework works!\r\n </p>\r\n `,\r\n styles: [\r\n ]\r\n})\r\nexport class NuxeoDevelopmentFrameworkComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export class ComponentTranslationModel {\r\n name: string;\r\n path: string;\r\n json: string [];\r\n\r\n constructor(obj?: any) {\r\n this.name = obj && obj.name;\r\n this.path = obj && obj.path;\r\n this.json = obj && obj.json || [];\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { TranslateLoader } from '@ngx-translate/core';\r\nimport { Observable, forkJoin, throwError, of } from 'rxjs';\r\nimport { ComponentTranslationModel } from '../../models/component.model';\r\nimport { map, catchError, retry } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TranslateLoaderService implements TranslateLoader {\r\n\r\n private prefix: string = 'i18n';\r\n private suffix: string = '.json';\r\n private providers: ComponentTranslationModel[] = [];\r\n private queue: string[][] = [];\r\n private defaultLang: string = 'en';\r\n\r\n constructor(private http: HttpClient) {\r\n }\r\n\r\n setDefaultLang(value: string) {\r\n this.defaultLang = value || 'en';\r\n }\r\n\r\n registerProvider(name: string, path: string) {\r\n const registered = this.providers.find((provider) => provider.name === name);\r\n if (registered) {\r\n registered.path = path;\r\n } else {\r\n this.providers.push(new ComponentTranslationModel({ name: name, path: path }));\r\n }\r\n }\r\n\r\n providerRegistered(name: string): boolean {\r\n return this.providers.find((x) => x.name === name) ? true : false;\r\n }\r\n\r\n fetchLanguageFile(lang: string, component: ComponentTranslationModel, fallbackUrl?: string): Observable<void> {\r\n const translationUrl = fallbackUrl || `${component.path}/${this.prefix}/${lang}${this.suffix}?v=${Date.now()}`;\r\n\r\n return this.http.get(translationUrl).pipe(\r\n map((res: any) => {\r\n component.json[lang] = res;\r\n }),\r\n retry(3),\r\n catchError(() => {\r\n if (!fallbackUrl && lang.includes('-')) {\r\n const [langId] = lang.split('-');\r\n\r\n if (langId && langId !== this.defaultLang) {\r\n const url = `${component.path}/${this.prefix}/${langId}${this.suffix}?v=${Date.now()}`;\r\n\r\n return this.fetchLanguageFile(lang, component, url);\r\n }\r\n }\r\n return throwError(`Failed to load ${translationUrl}`);\r\n })\r\n );\r\n }\r\n\r\n getComponentToFetch(lang: string): Array<Observable<any>> {\r\n const observableBatch = [];\r\n if (!this.queue[lang]) {\r\n this.queue[lang] = [];\r\n }\r\n this.providers.forEach((component) => {\r\n\r\n if (!this.isComponentInQueue(lang, component.name)) {\r\n this.queue[lang].push(component.name);\r\n observableBatch.push(\r\n this.fetchLanguageFile(lang, component)\r\n );\r\n }\r\n });\r\n\r\n return observableBatch;\r\n }\r\n\r\n init(lang: string) {\r\n if (this.queue[lang] === undefined) {\r\n this.queue[lang] = [];\r\n }\r\n }\r\n\r\n isComponentInQueue(lang: string, name: string) {\r\n return (this.queue[lang] || []).find((x) => x === name) ? true : false;\r\n }\r\n\r\n getFullTranslationJSON(lang: string): any {\r\n let result = {};\r\n\r\n this.providers\r\n .slice(0)\r\n .sort((a, b) => {\r\n if (a.name === 'app') {\r\n return 1;\r\n }\r\n if (b.name === 'app') {\r\n return -1;\r\n }\r\n return a.name.localeCompare(b.name);\r\n })\r\n .forEach((model) => {\r\n if (model.json && model.json[lang]) {\r\n result = this.merge(result, model.json[lang]);\r\n }\r\n });\r\n\r\n return result;\r\n }\r\n\r\n getTranslation(lang: string): Observable<any> {\r\n let hasFailures = false;\r\n const batch = [\r\n ...this.getComponentToFetch(lang).map((observable) => {\r\n return observable.pipe(\r\n catchError((error) => {\r\n console.warn(error);\r\n hasFailures = true;\r\n return of(error);\r\n })\r\n );\r\n })\r\n ];\r\n\r\n return new Observable((observer) => {\r\n\r\n if (batch.length > 0) {\r\n forkJoin(batch).subscribe(\r\n () => {\r\n const fullTranslation = this.getFullTranslationJSON(lang);\r\n if (fullTranslation) {\r\n observer.next(fullTranslation);\r\n }\r\n if (hasFailures) {\r\n observer.error('Failed to load some resources');\r\n } else {\r\n observer.complete();\r\n }\r\n },\r\n () => {\r\n observer.error('Failed to load some resources');\r\n });\r\n } else {\r\n const fullTranslation = this.getFullTranslationJSON(lang);\r\n if (fullTranslation) {\r\n observer.next(fullTranslation);\r\n observer.complete();\r\n }\r\n }\r\n });\r\n }\r\n\r\n merge(...objects): any {\r\n const result = {};\r\n\r\n objects.forEach((source) => {\r\n Object.keys(source).forEach((prop) => {\r\n if (prop in result && Array.isArray(result[prop])) {\r\n result[prop] = result[prop].concat(source[prop]);\r\n } else if (prop in result && typeof result[prop] === 'object') {\r\n result[prop] = this.merge(result[prop], source[prop]);\r\n } else {\r\n result[prop] = source[prop];\r\n }\r\n });\r\n });\r\n\r\n return result;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocalStoragService {\r\n\r\n private memoryStore: { [key: string]: any } = {};\r\n private readonly useLocalStorage: boolean = false;\r\n private _prefix: string = '';\r\n\r\n get prefix() {\r\n return this._prefix;\r\n }\r\n\r\n set prefix(prefix: string) {\r\n this._prefix = prefix ? prefix + '_' : '';\r\n }\r\n\r\n constructor() {\r\n this.useLocalStorage = this.storageAvailable('localStorage');\r\n }\r\n\r\n\r\n /**\r\n * Gets an item.\r\n * @param key Key to identify the item\r\n * @returns The item (if any) retrieved by the key\r\n */\r\n getItem(key: string): string | null {\r\n if (this.useLocalStorage) {\r\n return localStorage.getItem(this.prefix + key);\r\n } else {\r\n return this.memoryStore.hasOwnProperty(this.prefix + key) ? this.memoryStore[this.prefix + key] : null;\r\n }\r\n }\r\n\r\n /**\r\n * Stores an item\r\n * @param key Key to identify the item\r\n * @param data Data to store\r\n */\r\n setItem(key: string, data: string) {\r\n if (this.useLocalStorage) {\r\n localStorage.setItem(this.prefix + key, data);\r\n } else {\r\n this.memoryStore[this.prefix + key] = data.toString();\r\n }\r\n }\r\n\r\n /** Removes all currently stored items. */\r\n clear() {\r\n if (this.useLocalStorage) {\r\n localStorage.clear();\r\n } else {\r\n this.memoryStore = {};\r\n }\r\n }\r\n\r\n /**\r\n * Removes a single item.\r\n * @param key Key to identify the item\r\n */\r\n removeItem(key: string) {\r\n if (this.useLocalStorage) {\r\n localStorage.removeItem(this.prefix + key);\r\n } else {\r\n delete this.memoryStore[this.prefix + key];\r\n }\r\n }\r\n\r\n /**\r\n * Is any item currently stored under `key`?\r\n * @param key Key identifying item to check\r\n * @returns True if key retrieves an item, false otherwise\r\n */\r\n hasItem(key: string): boolean {\r\n if (this.useLocalStorage) {\r\n return localStorage.getItem(this.prefix + key) ? true : false;\r\n } else {\r\n return this.memoryStore.hasOwnProperty(key);\r\n }\r\n }\r\n\r\n private storageAvailable(type: string): boolean {\r\n try {\r\n const storage = window[type];\r\n const key = '__storage_test__';\r\n storage.setItem(key, key);\r\n storage.removeItem(key, key);\r\n return true;\r\n } catch (e) {\r\n return false;\r\n }\r\n }\r\n\r\n getLocal(key: string): any {\r\n const ijsKey = 'cts' + key;\r\n const data = window.localStorage.getItem(ijsKey);\r\n if (data) {\r\n return JSON.parse(data);\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n setLocal(key: string, value: any): void {\r\n const ijsKey = 'cts' + key;\r\n const data = value === undefined ? '' : JSON.stringify(value);\r\n window.localStorage.setItem(ijsKey, data);\r\n }\r\n\r\n removeLocal(key: string): void {\r\n const ijsKey = 'cts' + key;\r\n window.localStorage.removeItem(ijsKey);\r\n }\r\n\r\n removeAllLocals(): void {\r\n for (const key in window.localStorage) {\r\n if (window.localStorage.hasOwnProperty(key)) {\r\n window.localStorage.removeItem(key);\r\n }\r\n }\r\n }\r\n}\r\n","\r\nimport { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { distinctUntilChanged, map, filter } from 'rxjs/operators';\r\nimport { LocalStoragService } from '../localStorag/local-storag.service';\r\n\r\nexport enum UserPreferenceValues {\r\n Locale = 'locale',\r\n ExpandedSideNavStatus = 'expandedSidenav'\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserPreferencesService {\r\n\r\n defaults = {\r\n locale: 'en',\r\n expandedSidenav: true\r\n };\r\n\r\n private userPreferenceStatus: any = this.defaults;\r\n private onChangeSubject: BehaviorSubject<any>;\r\n onChange: Observable<any>;\r\n\r\n constructor(public translate: TranslateService,\r\n private storage: LocalStoragService) {\r\n this.onChangeSubject = new BehaviorSubject(this.userPreferenceStatus);\r\n this.onChange = this.onChangeSubject.asObservable();\r\n }\r\n\r\n private initUserPreferenceStatus() {\r\n this.initUserLanguage();\r\n }\r\n\r\n private async initUserLanguage() {\r\n if (this.locale) {\r\n const locale = this.locale || this.getDefaultLocale();\r\n\r\n this.set(UserPreferenceValues.Locale, locale);\r\n this.set('textOrientation', (await this.getLanguageByKey(locale)).dir || 'ltr');\r\n } else {\r\n const locale = this.locale || this.getDefaultLocale();\r\n\r\n this.setWithoutStore(UserPreferenceValues.Locale, locale);\r\n this.setWithoutStore('textOrientation', (await this.getLanguageByKey(locale)).dir || 'ltr');\r\n }\r\n }\r\n\r\n /**\r\n * Sets up a callback to notify when a property has changed.\r\n * @param property The property to watch\r\n * @returns Notification callback\r\n */\r\n select(property: string): Observable<any> {\r\n return this.onChange\r\n .pipe(\r\n map((userPreferenceStatus) => userPreferenceStatus[property]),\r\n distinctUntilChanged()\r\n );\r\n }\r\n\r\n /**\r\n * Gets a preference property.\r\n * @param property Name of the property\r\n * @param defaultValue Default to return if the property is not found\r\n * @returns Preference property\r\n */\r\n get(property: string, defaultValue?: string): string {\r\n const key = this.getPropertyKey(property);\r\n const value = this.storage.getItem(key);\r\n if (value === undefined || value === null) {\r\n return defaultValue;\r\n }\r\n return value;\r\n }\r\n\r\n /**\r\n * Sets a preference property.\r\n * @param property Name of the property\r\n * @param value New value for the property\r\n */\r\n set(property: string, value: any) {\r\n if (!property) {\r\n return;\r\n }\r\n this.storage.setItem(\r\n this.getPropertyKey(property),\r\n value\r\n );\r\n this.userPreferenceStatus[property] = value;\r\n this.onChangeSubject.next(this.userPreferenceStatus);\r\n }\r\n\r\n /**\r\n * Sets a preference property.\r\n * @param property Name of the property\r\n * @param value New value for the property\r\n */\r\n setWithoutStore(property: string, value: any) {\r\n if (!property) {\r\n return;\r\n }\r\n this.userPreferenceStatus[property] = value;\r\n this.onChangeSubject.next(this.userPreferenceStatus);\r\n }\r\n\r\n /**\r\n * Check if an item is present in the storage\r\n * @param property Name of the property\r\n * @returns True if the item is present, false otherwise\r\n */\r\n hasItem(property: string): boolean {\r\n if (!property) {\r\n return false;\r\n }\r\n return this.storage.hasItem(\r\n this.getPropertyKey(property)\r\n );\r\n }\r\n\r\n /**\r\n * Gets the active storage prefix for preferences.\r\n * @returns Storage prefix\r\n */\r\n getStoragePrefix(): string {\r\n return this.storage.getItem('USER_PROFILE') || 'GUEST';\r\n }\r\n\r\n /**\r\n * Sets the active storage prefix for preferences.\r\n * @param value Name of the prefix\r\n */\r\n setStoragePrefix(value: string) {\r\n this.storage.setItem('USER_PROFILE', value || 'GUEST');\r\n this.initUserPreferenceStatus();\r\n }\r\n\r\n /**\r\n * Gets the full property key with prefix.\r\n * @param property The property name\r\n * @returns Property key\r\n */\r\n getPropertyKey(property: string): string {\r\n return `${this.getStoragePrefix()}__${property}`;\r\n }\r\n\r\n\r\n\r\n /** Current locale setting. */\r\n get locale(): string {\r\n return this.get(UserPreferenceValues.Locale);\r\n }\r\n\r\n set locale(value: string) {\r\n this.set(UserPreferenceValues.Locale, value);\r\n }\r\n\r\n /**\r\n * Gets the default locale.\r\n * @returns Default locale language code\r\n */\r\n public getDefaultLocale(): string {\r\n return this.translate.getBrowserCultureLang() || 'en';\r\n }\r\n\r\n private async getLanguageByKey(key: string) {\r\n const translation = await this.translate.getTranslation(key).toPromise();\r\n return translation;\r\n }\r\n}\r\n","export enum Lang {\r\n Arabic = 'ar',\r\n English = 'en'\r\n}\r\n","import { KeycloakService } from \"keycloak-angular\";\r\n\r\nconst Nuxeo = require('nuxeo');\r\nconst doFetch = require('nuxeo/lib/deps/fetch');\r\nconst Unmarshallers = require('nuxeo/lib/unmarshallers/unmarshallers');\r\nconst Authentication = require('nuxeo/lib/auth/auth');\r\nexport class NuxeoOverride extends Nuxeo {\r\n constructor(opts = {}, private keycloak: KeycloakService) {\r\n super(opts);\r\n }\r\n http(opts: any = {}) {\r\n const options = this._computeFetchOptions(opts);\r\n return new this.Promise((resolve, reject) => {\r\n this._activeRequests += 1;\r\n\r\n const fetchOptions: any = {\r\n method: options.method,\r\n headers: options.headers,\r\n body: options.body,\r\n signal: options.signal,\r\n };\r\n if (opts.credentials) {\r\n fetchOptions.credentials = opts.credentials;\r\n } else if (!this._auth) {\r\n fetchOptions.credentials = 'include';\r\n }\r\n\r\n doFetch(options.url, fetchOptions)\r\n .then((res) => {\r\n this._activeRequests -= 1;\r\n if (res.status === 401 && !opts.refreshedAuthentication) {\r\n // try re-authenticate\r\n opts.refreshedAuthentication = true;\r\n return this.keycloak.updateToken()\r\n .then((didRefresh) => {\r\n if (didRefresh) {\r\n this.keycloak.getToken().then(refreshedAuth => {\r\n this._auth = refreshedAuth;\r\n this._notifyAuthenticationRefreshed(refreshedAuth);\r\n return resolve(this.http(opts));\r\n });\r\n } else {\r\n this.keycloak.logout();\r\n throw res;\r\n }\r\n })\r\n .catch(() => {\r\n throw res;\r\n });\r\n }\r\n\r\n if (!(/^2/.test(`${res.status}`))) {\r\n const error = new Error(res);\r\n throw res;\r\n }\r\n\r\n if (options.resolveWithFullResponse || res.status === 204) {\r\n return resolve(res);\r\n }\r\n\r\n const contentType = res.headers.get('content-type');\r\n if (contentType && contentType.indexOf('application/json') === 0) {\r\n options.nuxeo = this;\r\n return resolve(res.json().then((json) => Unmarshallers.unmarshall(json, options, res)));\r\n }\r\n return resolve(res);\r\n }).catch((error) => {\r\n this._activeRequests -= 1;\r\n error.text().then(data => {\r\n let ret = {};\r\n try {\r\n ret = data ? JSON.parse(data) : {};\r\n } catch (e) {\r\n ret = {};\r\n }\r\n return reject({\r\n status: error.status,\r\n ret\r\n });\r\n });\r\n });\r\n });\r\n }\r\n\r\n\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RolesService {\r\n\r\n constructor(@Inject('environment') private environment) { }\r\n\r\n getRoleName(role, code = null): string {\r\n if (this.environment.RolesConstants[role]) {\r\n return code\r\n ? this.environment.RolesConstants[role].replace('{departmentTitle}', code)\r\n : `^${this.environment.RolesConstants[role].replace('{departmentTitle}', '.*.')}$`;\r\n } else {\r\n console.warn(`role: ${role} does not exist in roles config`);\r\n return role;\r\n }\r\n }\r\n\r\n isUserInRole(user, role, code = null): boolean {\r\n let hasRole = false;\r\n const groups = user ? user.extendedGroups || user.groups : [];\r\n if (groups && groups.length > 0) {\r\n if (Array.isArray(role)) {\r\n role.forEach((r) => {\r\n if (\r\n groups.filter((item) => {\r\n if (code) {\r\n return (\r\n (item.name || item) === this.getRoleName(r, code)\r\n );\r\n } else {\r\n const regex = new RegExp(this.getRoleName(r));\r\n return regex.test(item.name || item);\r\n }\r\n }).length > 0\r\n ) {\r\n hasRole = true;\r\n return;\r\n }\r\n });\r\n } else {\r\n hasRole =\r\n groups.filter((item) => {\r\n if (code) {\r\n return (\r\n (item.name || item) === this.getRoleName(role, code)\r\n );\r\n } else {\r\n const regex = new RegExp(this.getRoleName(role));\r\n return regex.test(item.name || item);\r\n }\r\n }).length > 0;\r\n }\r\n }\r\n return hasRole;\r\n }\r\n\r\n getUserRoleName(user, code) {\r\n let found = null;\r\n const groups = user ? user.extendedGroups || user.groups : [];\r\n\r\n if (groups && groups.length) {\r\n Object.keys(this.environment.RolesConstants).forEach((key) => {\r\n const roleWCode = this.environment.RolesConstants[key].replace(\r\n '{departmentTitle}',\r\n code\r\n );\r\n groups.forEach((group) => {\r\n if (group.name || group === roleWCode) {\r\n found = key;\r\n }\r\n });\r\n });\r\n }\r\n return found;\r\n }\r\n\r\n isUserManagerInDepartment(user, code) {\r\n let filteredRoles = Object.values(this.environment.RolesConstants).filter((role : any) =>\r\n role.includes('{departmentTitle}')\r\n );\r\n let departmentRoles = [];\r\n let isUserInDepartment: boolean = false;\r\n const groups = user ? user.extendedGroups || user.groups : [];\r\n if (groups && groups.length) {\r\n filteredRoles.forEach((key : any) => {\r\n const roleWCode = key.replace('{departmentTitle}', code);\r\n departmentRoles.push(roleWCode);\r\n });\r\n }\r\n departmentRoles = departmentRoles.filter((role:string) => {\r\n return role.includes(\"Manager\")\r\n })\r\n groups.forEach((group) => {\r\n const groupName = group.name || group;\r\n const departmentIsIncluded: boolean = departmentRoles.includes(groupName);\r\n if (departmentIsIncluded) {\r\n isUserInDepartment = true;\r\n }\r\n });\r\n return isUserInDepartment;\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport {Inject, Injectable} from '@angular/core';\r\nimport { KeycloakService } from 'keycloak-angular';\r\nimport { from, Observable } from 'rxjs';\r\nimport { catchError, map, share, tap } from 'rxjs/operators';\r\nimport { NuxeoOverride as Nuxeo } from './nuxeo-override';\r\nimport {APP_BASE_HREF} from '@angular/common';\r\nimport { RolesService } from '../roles/roles.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NuxeoService {\r\n nuxeoClient;\r\n excludedUrls = [];\r\n enableBearerInterceptor = true;\r\n authenticated = false;\r\n token;\r\n tokenObservable;\r\n constructor(private http: HttpClient, private keycloak: KeycloakService, \r\n @Inject(APP_BASE_HREF) private baseHref: string, \r\n @Inject('environment') private environment,\r\n private rolesService : RolesService) {\r\n\r\n }\r\n init(): Promise<any> {\r\n return new Promise(async (resolve, reject) => {\r\n try {\r\n this.keycloak.getToken().then(token => {\r\n\r\n this.createTokenClient(token);\r\n this.nuxeoClient.connect()\r\n .then((client) => {\r\n this.authenticated = true;\r\n resolve(client);\r\n this.checkForRoles();\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n\r\n })\r\n } catch (error) {\r\n reject(error);\r\n }\r\n });\r\n\r\n }\r\n createTokenClient(token) {\r\n this.nuxeoClient = new Nuxeo({\r\n baseURL: this.environment.nuxeo,\r\n auth: {\r\n method: 'bearerToken',\r\n token\r\n }\r\n }, this.keycloak);\r\n }\r\n\r\n getToken() {\r\n return this.keycloak.getToken();\r\n }\r\n\r\n doLogout() {\r\n this.keycloak.logout(window.location.origin + this.baseHref);\r\n }\r\n\r\n\r\n isUserInRole(role: any, committeeCode = null): Observable<any> {\r\n const simpleObservable = new Observable(observer => {\r\n this.keycloak.isLoggedIn().then(logged => {\r\n if (!logged) {\r\n observer.next(false);\r\n } else {\r\n const hasRole = this.rolesService.isUserInRole(this.nuxeoClient.user, role, committeeCode);\r\n observer.next(hasRole);\r\n }\r\n\r\n });\r\n });\r\n\r\n return simpleObservable;\r\n }\r\n createBlob(file): any {\r\n return new Nuxeo.Blob({\r\n content: file\r\n });\r\n }\r\n\r\n getDuplicates(params = {}, body = {}): Observable<any> {\r\n return from(\r\n this.nuxeoClient\r\n .operation('AC_Get_Duplicates', {\r\n url: `${this.environment.nuxeo}${this.environment.customAutomation}`,\r\n })\r\n .params(params)\r\n .context(body)\r\n .execute()\r\n ).pipe(\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n\r\n checkForRoles(){\r\n this.isCtsUser();\r\n this.isCtsManger();\r\n }\r\n\r\n ctsUser = false;\r\n isCtsUser(){\r\n this.isUserInRole('ctsSecretary', '').subscribe(data => {\r\n this.ctsUser = data;\r\n })\r\n }\r\n ctsManger= false;\r\n isCtsManger(){\r\n this.isUserInRole('ctsManger', '').subscribe(data => {\r\n this.ctsManger = data;\r\n })\r\n }\r\n}\r\n","import {\r\n Inject,\r\n Injectable,\r\n InjectionToken,\r\n Optional,\r\n Renderer2,\r\n RendererFactory2,\r\n} from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BehaviorSubject, forkJoin, from, Observable } from 'rxjs';\r\nimport { TranslateLoaderService } from './translate-loader.service';\r\nimport {\r\n UserPreferencesService,\r\n UserPreferenceValues,\r\n} from '../user/user-preferences.service';\r\nimport { LocalStoragService } from '../localStorag/local-storag.service';\r\nimport { Lang } from '../../enums/language.enum';\r\nimport { NuxeoService } from '../nuxeo/nuxeo.service';\r\nimport { catchError, map } from 'rxjs/operators';\r\n\r\nexport const TRANSLATION_PROVIDER = new InjectionToken(\r\n 'Injection token for translation providers.'\r\n);\r\n\r\nexport interface TranslationProvider {\r\n name: string;\r\n source: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TranslationService {\r\n public arabicFile;\r\n public englishFile;\r\n defaultLang: string;\r\n userLang: string;\r\n customLoader: TranslateLoaderService;\r\n lang: string;\r\n private renderer: Renderer2;\r\n isArabic = new BehaviorSubject<boolean>(false);\r\n isArabic$ = this.isArabic.asObservable();\r\n constructor(\r\n public translate: TranslateService,\r\n private rendererFactory: RendererFactory2,\r\n private localStorage: LocalStoragService,\r\n userPreferencesService: UserPreferencesService,\r\n private nuxeoService: NuxeoService, \r\n @Inject('environment') private environment,\r\n @Optional() @Inject(TRANSLATION_PROVIDER) providers: TranslationProvider[]\r\n ) {\r\n this.customLoader = <TranslateLoaderService>this.translate.currentLoader;\r\n this.renderer = rendererFactory.createRenderer(null, null);\r\n\r\n this.defaultLang = 'en';\r\n translate.setDefaultLang(this.defaultLang);\r\n this.customLoader.setDefaultLang(this.defaultLang);\r\n\r\n if (providers && providers.length > 0) {\r\n for (const provider of providers) {\r\n this.addTranslationFolder(provider.name, provider.source);\r\n }\r\n }\r\n userPreferencesService\r\n .select(UserPreferenceValues.Locale)\r\n .subscribe((locale) => {\r\n if (locale) {\r\n this.userLang = locale.split('-')[0];\r\n }\r\n if (this.userLang) {\r\n this.loadTranslation(this.userLang, this.defaultLang);\r\n } else {\r\n this.loadTranslation(this.defaultLang);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Adds a new folder of translation source files.\r\n * @param name Name for the translation provider\r\n * @param path Path to the folder\r\n */\r\n addTranslationFolder(name: string = '', path: string = '') {\r\n if (!this.customLoader.providerRegistered(name)) {\r\n this.customLoader.registerProvider(name, path);\r\n }\r\n }\r\n\r\n /**\r\n * Loads a translation file.\r\n * @param lang Language code for the language to load\r\n * @param fallback Language code to fall back to if the first one was unavailable\r\n */\r\n loadTranslation(lang: string, fallback?: string) {\r\n if (lang === Lang.Arabic) {\r\n this.renderer.addClass(document.body, 'rtl');\r\n this.isArabic.next(true);\r\n } else {\r\n this.renderer.removeClass(document.body, 'rtl');\r\n this.isArabic.next(false);\r\n }\r\n const arabicFile$ = this.getOrCreateTranslationFile('ar');\r\n const englishFile$ = this.getOrCreateTranslationFile('en');\r\n\r\n forkJoin([\r\n arabicFile$,\r\n englishFile$,\r\n this.translate.getTranslation(lang),\r\n ]).subscribe(\r\n (res: any) => {\r\n this.arabicFile = res[0];\r\n this.englishFile = res[1];\r\n this.translate.use(lang);\r\n let ArorEnFile =\r\n lang === 'en'\r\n ? JSON.parse(res[1].properties['note:note'])\r\n : JSON.parse(res[0].properties['note:note']);\r\n this.translate.setTranslation(\r\n this.translate.currentLang,\r\n { ...ArorEnFile },\r\n true\r\n );\r\n\r\n this.onTranslationChanged(lang);\r\n },\r\n () => {\r\n if (fallback && fallback !== lang) {\r\n this.loadTranslation(fallback);\r\n }\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Triggers a notification callback when the translation language changes.\r\n * @param lang The new language code\r\n */\r\n onTranslationChanged(lang: string): void {\r\n this.translate.onTranslationChange.next({\r\n lang: lang,\r\n translations: this.customLoader.getFullTranslationJSON(lang),\r\n });\r\n }\r\n\r\n /**\r\n * Sets the target language for translations.\r\n * @param lang Code name for the language\r\n * @returns Translations available for the language\r\n */\r\n use(lang: string): Observable<any> {\r\n this.customLoader.init(lang);\r\n return this.translate.use(lang);\r\n }\r\n\r\n /**\r\n * Gets the translation for the supplied key.\r\n * @param key Key to translate\r\n * @param interpolateParams String(s) to be interpolated into the main message\r\n * @returns Translated text\r\n */\r\n get(\r\n key: string | Array<string>,\r\n interpolateParams?: Object\r\n ): Observable<string | any> {\r\n return this.translate.get(key, interpolateParams);\r\n }\r\n\r\n /**\r\n * Directly returns the translation for the supplied key.\r\n * @param key Key to translate\r\n * @param interpolateParams String(s) to be interpolated into the main message\r\n * @returns Translated text\r\n */\r\n instant(\r\n key: string | Array<string>,\r\n interpolateParams?: Object\r\n ): string | any {\r\n return key ? this.translate.instant(key, interpolateParams) : '';\r\n }\r\n\r\n getOrCreateTranslationFile(lang) {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation('AC_UA_Translation_GetOrCreate', {\r\n url: `${this.environment.nuxeo}${this.environment.customAutomation}`,\r\n })\r\n .params({ language: lang })\r\n .execute({\r\n headers: {\r\n properties: '*',\r\n },\r\n })\r\n ).pipe(\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n updateTranslationFile(doc, params = {}) {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .repository()\r\n .headers({\r\n properties: '*',\r\n })\r\n .update(doc, params)\r\n ).pipe(\r\n map((data: any) => {\r\n return data;\r\n }),\r\n catchError((err) => {\r\n throw err;\r\n })\r\n );\r\n }\r\n}\r\n","import { AppConfigService } from '../app-config.service';\r\n\r\nexport function appInitializer(appConfigService : AppConfigService) : Function {\r\n return () => appConfigService.load();\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppConfigService {\r\n\r\n constructor(private http: HttpClient) { }\r\n myConfiguration;\r\n conditons;\r\n // load my config file from my assets\r\n\r\n load(){\r\n this.http.get('assets/configs/configuration.json').subscribe(res => {\r\n this.myConfiguration = res;\r\n });\r\n this.http.get('assets/configs/conditions.json').subscribe(res => {\r\n this.conditons = res;\r\n })\r\n }\r\n}\r\n","import { CommonModule, registerLocaleData } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { APP_INITIALIZER, NgModule } from '@angular/core';\r\nimport {\r\n TranslateLoader,\r\n TranslateModule,\r\n TranslateService,\r\n TranslateStore,\r\n} from '@ngx-translate/core';\r\nimport { KeycloakAngularModule, KeycloakService } from 'keycloak-angular';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { NuxeoService } from './services/nuxeo/nuxeo.service';\r\nimport { TranslateLoaderService } from './services/translation/translate-loader.service';\r\nimport { TRANSLATION_PROVIDER } from './services/translation/translation.service';\r\nimport { UserPreferencesService } from './services/user/user-preferences.service';\r\nimport { RxReactiveFormsModule } from '@rxweb/reactive-form-validators';\r\n\r\nimport localeAr from '@angular/common/locales/ar';\r\nimport localeEn from '@angular/common/locales/en';\r\nimport { TreeviewModule } from 'ngx-treeview';\r\nimport { appInitializer } from '../configuration/helpers/app-initializer';\r\nimport { AppConfigService } from '../configuration/app-config.service';\r\nregisterLocaleData(localeAr);\r\nregisterLocaleData(localeEn);\r\n/** @ignore */\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n TreeviewModule.forRoot(),\r\n HttpClientModule,\r\n TranslateModule.forRoot(),\r\n ToastrModule.forRoot({\r\n preventDuplicates: true,\r\n }),\r\n KeycloakAngularModule,\r\n RxReactiveFormsModule\r\n ],\r\n exports: [\r\n TranslateModule,\r\n TreeviewModule,\r\n ToastrModule,\r\n RxReactiveFormsModule\r\n ],\r\n providers: [\r\n TranslateStore,\r\n TranslateService,\r\n { provide: TranslateLoader, useClass: TranslateLoaderService },\r\n {\r\n provide: TRANSLATION_PROVIDER,\r\n multi: true,\r\n useValue: {\r\n name: 'app',\r\n source: 'assets',\r\n },\r\n } ,\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: appInitializer,\r\n deps: [AppConfigService],\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class CoreModule {}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { NuxeoDevelopmentFrameworkComponent } from './nuxeo-development-framework.component';\r\nimport {CommonModule} from '@angular/common';\r\nimport {HttpClientModule} from '@angular/common/http';\r\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\r\nimport {TranslateModule} from '@ngx-translate/core';\r\nimport { CoreModule } from '../lib/Core/core.module';\r\n@NgModule({\r\n declarations: [\r\n NuxeoDevelopmentFrameworkComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n TranslateModule,\r\n CoreModule,\r\n ],\r\n exports: [\r\n NuxeoDevelopmentFrameworkComponent,\r\n ]\r\n})\r\nexport class NuxeoDevelopmentFrameworkModule { \r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\nimport { map } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs';\r\n\r\n/**\r\n * Transforms URL into async safe URL to be rendered in the view\r\n *\r\n * ### In template example:\r\n * ~~~html\r\n * <!-- in template -->\r\n * <img [attr.src]=\"user.avatar | secure | async\" />\r\n * ~~~\r\n * @title\r\n * Safe URL\r\n */\r\n@Pipe({\r\n name: 'secure'\r\n})\r\nexport class SecurePipe implements PipeTransform {\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) { }\r\n\r\n /**\r\n *\r\n * @param url Resource URL\r\n * @returns Safe URL\r\n */\r\n transform(url): Observable<SafeUrl> {\r\n return this.http\r\n .get(url, { responseType: 'blob' }).pipe(\r\n map(val => this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(val)))\r\n );\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n/**\r\n * A component to display user avatar if exists, or initials if not\r\n *\r\n * ![Screenshot-1](../screenshots/avatar1.png) ![Screenshot-2](../screenshots/avatar2.png)\r\n * @title\r\n * User Avatar\r\n * @example\r\n *\r\n * <cts-avatar [user]=\"user\"></cts-avatar>\r\n */\r\n@Component({\r\n selector: 'cts-avatar',\r\n templateUrl: './avatar.component.html',\r\n styleUrls: ['./avatar.component.scss']\r\n})\r\nexport class AvatarComponent implements OnInit {\r\n /** Nuxeo user object */\r\n @Input() user: any;\r\n backgroundColor;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.stringToHslColor(`${this.user?.properties?.firstName} ${this.user?.properties?.lastName}`, 30, 80);\r\n }\r\n\r\n stringToHslColor(str, s, l) {\r\n var hash = 0;\r\n for (var i = 0; i < str.length; i++) {\r\n hash = str.charCodeAt(i) + ((hash << 5) - hash);\r\n }\r\n\r\n var h = hash % 360;\r\n this.backgroundColor = 'hsl(' + h + ', ' + s + '%, ' + l + '%)';\r\n }\r\n\r\n getInitials(): string {\r\n return this.user?.properties\r\n ? (this.user.properties.initials = [\r\n this.user.properties.firstName\r\n ? this.user.properties.firstName[0].toUpperCase()\r\n : '',\r\n this.user.properties.lastName\r\n ? this.user.properties.lastName[0].toUpperCase()\r\n : '',\r\n ].join(''))\r\n : '';\r\n }\r\n}\r\n","<div class=\"avatar-wrapper\">\r\n <ng-container *ngIf=\"user?.avatar?.length; else initials\">\r\n <img *ngIf=\"user.avatar | secure | async as obs; else initials\" [attr.src]=\"obs\" alt=\"user image\" />\r\n </ng-container>\r\n\r\n <ng-template #initials>\r\n <div class=\"avatar-name \" [ngStyle]=\"{ 'background-color': backgroundColor }\">\r\n <span>{{\r\n this.getInitials()\r\n }}</span>\r\n </div>\r\n </ng-template>\r\n</div>\r\n","import { DatePipe } from '@angular/common';\r\nimport { OnDestroy, Pipe, PipeTransform } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { UserPreferencesService, UserPreferenceValues } from '../core/services/user/user-preferences.service';\r\n\r\n/**\r\n * Transforms date to localized date string\r\n *\r\n * ### In template example:\r\n * ~~~html\r\n * <!-- in template -->\r\n * <p>\r\n * {{ dateObject | localizedDate: \"EEEE, MMMM dd, yyyy\" }}\r\n * </p>\r\n * ~~~\r\n * @title\r\n * Localized Date\r\n *\r\n * @example\r\n * ...\r\n * constructor(... private LocalizedDatePipe: localizedDatePipe ...){\r\n * const localizedDateString = this.localizedDatePipe.transform(dateObject, 'EEEE, MMMM dd, yyyy');\r\n * }\r\n * ...\r\n */\r\n@Pipe({\r\n name: 'localizedDate',\r\n pure: false\r\n})\r\nexport class LocalizedDatePipe implements PipeTransform, OnDestroy {\r\n\r\n static DEFAULT_LOCALE = 'en-US';\r\n static DEFAULT_DATE_FORMAT = 'dd MMMM yyyy hh:mm a';\r\n\r\n defaultLocale: string = LocalizedDatePipe.DEFAULT_LOCALE;\r\n defaultFormat: string = LocalizedDatePipe.DEFAULT_DATE_FORMAT;\r\n\r\n private onDestroy$ = new Subject<boolean>();\r\n\r\n constructor(public userPreferenceService?: UserPreferencesService) {\r\n\r\n if (this.userPreferenceService) {\r\n this.userPreferenceService\r\n .select(UserPreferenceValues.Locale)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(locale => {\r\n if (locale) {\r\n this.defaultLocale = locale;\r\n }\r\n });\r\n }\r\n\r\n\r\n }\r\n /**\r\n *\r\n * @param value date object\r\n * @param format format\r\n * @param locale locale to convert to\r\n * @returns localized date string\r\n */\r\n transform(value: any, format?: string, locale?: string): any {\r\n try {\r\n const actualFormat = format || this.defaultFormat;\r\n const actualLocale = locale || this.defaultLocale;\r\n const datePipe: DatePipe = new DatePipe(actualLocale);\r\n return datePipe.transform(value, actualFormat, 'GMT+3');\r\n } catch (e) {\r\n console.warn(e);\r\n return value;\r\n }\r\n }\r\n /** @ignore */\r\n ngOnDestroy(): any {\r\n this.onDestroy$.next(true);\r\n this.onDestroy$.complete();\r\n }\r\n\r\n}\r\n","import { DomSanitizer } from '@angular/platform-browser';\r\nimport { PipeTransform, Pipe } from '@angular/core';\r\n\r\n\r\n/**\r\n * Transforms html string into safe html to be rendered in the view\r\n *\r\n * ### In template example:\r\n * ~~~html\r\n * <!-- in template -->\r\n * <span [innerHTML]=\"htmlString | safeHtml\"></span>\r\n * ~~~\r\n * @title\r\n * Safe HTML\r\n */\r\n@Pipe({ name: 'safeHtml' })\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n constructor(private sanitized: DomSanitizer) { }\r\n /**\r\n *\r\n * @param value HTML String\r\n * @returns Safe HTML\r\n */\r\n transform(value): any {\r\n return this.sanitized.bypassSecurityTrustHtml(value);\r\n }\r\n}\r\n","\r\nimport { OnDestroy, Pipe, PipeTransform } from '@angular/core';\r\nimport moment from 'moment-es6';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { UserPreferencesService, UserPreferenceValues } from '../core/services/user/user-preferences.service';\r\n\r\n/**\r\n * Converts date into how long time ago string\r\n *\r\n * ### In template example:\r\n * ~~~html\r\n * <!-- in template -->\r\n * <span>{{ dateObject | timeAgo }}</span>\r\n * ~~~\r\n * @title\r\n * Time Ago\r\n */\r\n@Pipe({\r\n name: 'timeAgo'\r\n})\r\nexport class TimeAgoPipe implements PipeTransform, OnDestroy {\r\n\r\n static DEFAULT_LOCALE = 'en-US';\r\n static DEFAULT_DATE_TIME_FORMAT = 'dd/MM/yyyy HH:mm';\r\n\r\n defaultLocale: string;\r\n defaultDateTimeFormat: string;\r\n\r\n private onDestroy$ = new Subject<boolean>();\r\n\r\n constructor(public userPreferenceService: UserPreferencesService) {\r\n this.userPreferenceService\r\n .select(UserPreferenceValues.Locale)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(locale => {\r\n this.defaultLocale = locale || TimeAgoPipe.DEFAULT_LOCALE;\r\n });\r\n this.defaultDateTimeFormat = TimeAgoPipe.DEFAULT_DATE_TIME_FORMAT;\r\n }\r\n /**\r\n *\r\n * @param value date object\r\n * @param locale locale to be transformed to\r\n * @returns Time ago string (15 minutes ago)\r\n */\r\n transform(value: Date, locale?: string) {\r\n if (value !== null && value !== undefined) {\r\n const actualLocale = locale || this.defaultLocale;\r\n const then = moment(value);\r\n //const diff = moment().locale(actualLocale).diff(then, 'days');\r\n return then.locale(actualLocale).fromNow();\r\n // if ( diff > 7) {\r\n // const datePipe: DatePipe = new DatePipe(actualLocale);\r\n // return datePipe.transform(value, this.defaultDateTimeFormat);\r\n // } else {\r\n // return then.locale(actualLocale).fromNow();\r\n // }\r\n }\r\n return '';\r\n }\r\n\r\n /** @ignore */\r\n ngOnDestroy(): any {\r\n this.onDestroy$.next(true);\r\n this.onDestroy$.complete();\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n/**\r\n * Transforms array of strings to single string seperated with seperator\r\n *\r\n * ### In template example:\r\n * ~~~html\r\n * <!-- in template -->\r\n * <p>{{ ['string 1','string 2', 'string 3'] | multiValue : {valueSeparator:', '}}}</p>\r\n * ~~~\r\n * @title\r\n * Multi Value\r\n *\r\n * @example\r\n * ...\r\n * constructor(... private MultiValuePipe: multiValuePipe ...){\r\n * const MultiValueString = this.multiValuePipe.transform(['string 1','string 2', 'string 3'], ', ');\r\n * }\r\n * ...\r\n */\r\n@Pipe({ name: 'multiValue' })\r\nexport class MultiValuePipe implements PipeTransform {\r\n\r\n static DEFAULT_SEPARATOR = ', ';\r\n\r\n /**\r\n *\r\n * @param values array of strings\r\n * @param valueSeparator seperator to place between elements\r\n * @returns the joining of all array items seperated with seperator\r\n */\r\n transform(values: any | any[], valueSeparator: string = MultiValuePipe.DEFAULT_SEPARATOR): string {\r\n\r\n if (values && values instanceof Array) {\r\n return values.join(valueSeparator);\r\n }\r\n\r\n return values;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslationService } from '../core/services/translation/translation.service';\r\n\r\n/**\r\n * transforms file size into translated appropriate units\r\n *\r\n * ### In template example:\r\n * ~~~html\r\n * <!-- in template -->\r\n * <p>{{ file.sizeInBytes | FileSize}}</p>\r\n * ~~~\r\n * @title\r\n * File Size\r\n *\r\n * @example\r\n * ...\r\n * constructor(... private FileSizePipe: fileSizePiple ...){\r\n * const sizeString = this.fileSizePiple.transform(sizeInBytes);\r\n * }\r\n * ...\r\n */\r\n@Pipe({\r\n name: 'FileSize',\r\n pure: false\r\n})\r\nexport class FileSizePipe implements PipeTransform {\r\n\r\n constructor(private translation: TranslationService) {\r\n }\r\n\r\n /**\r\n *\r\n * @param paramByte Size in Bytes\r\n * @optional @param decimals Decimals to show\r\n * @returns translated size string\r\n */\r\n transform(paramByte: any, decimals: number = 2): string {\r\n if (paramByte == null) {\r\n return '';\r\n }\r\n\r\n const bytes = parseInt(paramByte, 10);\r\n if (isNaN(bytes)) {\r\n return '';\r\n }\r\n\r\n if (bytes === 0) {\r\n return '0 ' + this.translation.instant('FILE_SIZE.BYTES');\r\n }\r\n\r\n const k = 1024,\r\n dm = decimals || 2,\r\n sizes = ['BYTES', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],\r\n i = Math.floor(Math.log(bytes) / Math.log(k));\r\n\r\n const i18nSize = this.translation.instant(`FILE_SIZE.${sizes[i]}`);\r\n\r\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + i18nSize;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport * as moment_ from 'moment-hijri';\r\n\r\n/**\r\n * Transforms and formats date into hijri\r\n *\r\n * ### In template example:\r\n * ~~~html\r\n * <!-- in template -->\r\n * <p>{{ dateObject | hijriDate : {format:'iYYYY iMMMM iD'}}}</p>\r\n * ~~~\r\n * @title\r\n * Hijri Date\r\n *\r\n * @example\r\n * ...\r\n * constructor(... private HijriDatePipe: hijriDatePipe ...){\r\n * const formattedHijriDate = this.hijriDatePipe.transform(dateObject, 'iYYYY iMMMM iD');\r\n * }\r\n * ...\r\n */\r\n@Pipe({\r\n name: 'hijriDate'\r\n})\r\nexport class HijriDatePipe implements PipeTransform {\r\n\r\n defaultFormat=\"iYYYY iMMMM iD\";\r\n /**\r\n *\r\n * @param value Date object\r\n * @param format Format\r\n * @returns formatted hijri date string\r\n */\r\n transform(value: any, format?: string): any {\r\n const actualFormat = format || this.defaultFormat;\r\n const m = moment_(value , 'iYYYY/iM/iD'); // Parse a Hijri date.\r\n return m.format(\"iD iMMMM iYYYY\");\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SecurePipe } from './secure.pipe';\r\nimport { LocalizedDatePipe } from './localized-date.pipe';\r\nimport { SafeHtmlPipe } from './secure-html.pipe';\r\nimport { TimeAgoPipe } from './time-ago.pipe';\r\nimport { MultiValuePipe } from './multi-value.pipe';\r\nimport { FileSizePipe } from './file-size.pipe';\r\nimport { HijriDatePipe } from './hijri-date.pipe';\r\n/**\r\n * @title\r\n * Pipes Module\r\n */\r\n@NgModule({\r\n declarations: [SecurePipe, LocalizedDatePipe, SafeHtmlPipe, TimeAgoPipe, MultiValuePipe, FileSizePipe, HijriDatePipe],\r\n imports: [CommonModule],\r\n exports: [SecurePipe, LocalizedDatePipe, SafeHtmlPipe, TimeAgoPipe, MultiValuePipe, FileSizePipe, HijriDatePipe],\r\n providers: [TimeAgoPipe, MultiValuePipe],\r\n})\r\nexport class PipesModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AvatarComponent } from './avatar/avatar.component';\r\nimport { PipesModule } from '../../pipes/pipes.module';\r\n\r\n\r\n/**\r\n * @title\r\n * Avatar Module\r\n */\r\n@NgModule({\r\n declarations: [AvatarComponent],\r\n imports: [\r\n CommonModule,\r\n PipesModule\r\n ],\r\n exports: [\r\n AvatarComponent\r\n ]\r\n})\r\nexport class AvatarModule { }\r\n","import { NgbDateParserFormatter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DatePipe } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class CustomNgbDateParserFormatter extends NgbDateParserFormatter {\r\n datePipe = new DatePipe('en-US');\r\n constructor() {\r\n super();\r\n }\r\n format(date: NgbDateStruct): string {\r\n if (date === null) {\r\n return '';\r\n }\r\n try {\r\n return this.datePipe.transform(new Date(date.year, date.month - 1, date.day), 'd/M/yyyy');\r\n } catch (e) {\r\n return '';\r\n }\r\n }\r\n parse(value: string): NgbDateStruct {\r\n let returnVal: NgbDateStruct;\r\n if (!value) {\r\n returnVal = null;\r\n } else {\r\n try {\r\n let dateParts = this.datePipe.transform(value, 'M-d-y').split('-');\r\n returnVal = { year: parseInt(dateParts[2]), month: parseInt(dateParts[0]), day: parseInt(dateParts[1]) };\r\n } catch (e) {\r\n returnVal = null;\r\n }\r\n }\r\n return returnVal;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NgbDateStruct, NgbDateParserFormatter, NgbDate } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport * as momentjs from 'moment';\r\nconst moment = momentjs;\r\n\r\n\r\nimport * as moment_ from 'moment-hijri';\r\nconst momentHijri = moment_;\r\n\r\n@Injectable()\r\nexport class DateFormatterService {\r\n\r\n constructor(private parserFormatter: NgbDateParserFormatter) { }\r\n\r\n ToString(date: NgbDateStruct): string {\r\n const dateStr = this.parserFormatter.format(date);\r\n return dateStr;\r\n }\r\n\r\n ToHijriDateStruct(hijriDate: string, format: string): NgbDate {\r\n\r\n const hijriMomentDate = momentHijri(hijriDate , format); // Parse a Hijri date based on format.\r\n\r\n const day = hijriMomentDate.iDate();\r\n const month = +hijriMomentDate.iMonth() + 1 ;\r\n const year = hijriMomentDate.iYear();\r\n\r\n const ngDate = new NgbDate(+year, month, +day);\r\n return ngDate;\r\n }\r\n\r\n\r\n ToGregorianDateStruct(gregorianDate: string, format: string): NgbDate {\r\n\r\n const momentDate = moment(gregorianDate, format); // Parse a Gregorian date based on format.\r\n\r\n const day = momentDate.date();\r\n const month = +momentDate.month() + 1;\r\n const year = momentDate.year();\r\n\r\n const ngDate = new NgbDate(+year, +month, +day);\r\n return ngDate;\r\n }\r\n\r\n ToHijri(date: NgbDateStruct): NgbDateStruct {\r\n if (!date) {\r\n return null;\r\n }\r\n const dateStr = this.ToString(date);\r\n\r\n const momentDate = momentHijri(dateStr, 'D/M/YYYY');\r\n\r\n const day = momentDate.iDate();\r\n const month = +momentDate.iMonth() + 1 ;\r\n const year = momentDate.iYear();\r\n\r\n const ngDate = new NgbDate(+year, month, +day);\r\n return ngDate;\r\n }\r\n\r\n ToGregorian(date: NgbDateStruct) {\r\n if (!date) {\r\n return null;\r\n }\r\n\r\n const dateStr = this.ToString(date);\r\n\r\n const momentDate = momentHijri(dateStr, 'iD/iM/iYYYY');\r\n\r\n const day = momentDate.locale('en').format('D');\r\n const month = momentDate.locale('en').format('M') ;\r\n const year = momentDate.locale('en').format('Y');\r\n\r\n const ngDate = new NgbDate(+year, +month, +day);\r\n return ngDate;\r\n }\r\n\r\n GetTodayHijri(): NgbDateStruct {\r\n\r\n const todayHijri = momentHijri().locale('en').format('iYYYY/iM/iD');\r\n\r\n return this.ToHijriDateStruct(todayHijri, 'iYYYY/iM/iD') ;\r\n\r\n }\r\n\r\n GetTodayGregorian(): NgbDateStruct {\r\n\r\n const todayGregorian = moment().locale('en').format('YYYY/M/D');\r\n\r\n return this.ToGregorianDateStruct(todayGregorian, 'YYYY/M/D') ;\r\n }\r\n\r\n}\r\n","import { Directive, Optional, SkipSelf } from '@angular/core';\r\nimport { ControlContainer, NgForm } from '@angular/forms';\r\n\r\nexport function test(form: NgForm) {\r\n return form;\r\n}\r\n\r\n/** @ignore */\r\n@Directive({\r\n selector: '[provideParentForm]',\r\n providers: [\r\n {\r\n provide: ControlContainer,\r\n useFactory: test ,\r\n deps: [[new Optional(), new SkipSelf(), NgForm]]\r\n }\r\n]\r\n})\r\nexport class ProvideParentFormDirective {\r\n\r\n constructor() { }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { NgbCalendar, NgbDate, NgbDateParserFormatter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'gregorian-date-picker',\r\n templateUrl: './gregorian-datepicker.component.html',\r\n styleUrls: [\r\n './gregorian-date-picker.component.scss'\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class GregorianDatepickerComponent {\r\n\r\n @ViewChild('d') datePicker: any;\r\n\r\n @Input() selectedDate: any;\r\n @Output() selectedDateChange: EventEmitter<any> = new EventEmitter();\r\n\r\n @Input() readonly = false;\r\n @Input() isRequired = false;\r\n @Input() disabled = false;\r\n @Input() min: NgbDateStruct;\r\n @Input() max: NgbDateStruct;\r\n @Input() name: string;\r\n @Input() range = false;\r\n @Input() vertical = false;\r\n hoveredDate: NgbDate | null = null;\r\n fromDate;\r\n toDate;\r\n @Input() placeHolder: string;\r\n\r\n constructor(public calendar: NgbCalendar, public formatter: NgbDateParserFormatter) {\r\n // this.selectedDate.from = calendar.getToday();\r\n }\r\n\r\n isHovered(date: NgbDate) {\r\n return this.selectedDate && (this.selectedDate.from && !this.selectedDate.to && this.hoveredDate && date.after(this.selectedDate.from) && date.before(this.hoveredDate));\r\n }\r\n\r\n isInside(date: NgbDate) {\r\n return this.selectedDate && (this.selectedDate.to && date.after(this.selectedDate.from) && date.before(this.selectedDate.to));\r\n }\r\n\r\n isRange(date: NgbDate) {\r\n if (this.range) {\r\n return this.selectedDate && (date.equals(this.selectedDate.from) || (this.selectedDate.to && date.equals(this.selectedDate.to)) || this.isInside(date) || this.isHovered(date));\r\n } else {\r\n return false;\r\n }\r\n }\r\n isSelectedDate(date) {\r\n return this.selectedDate && !this.range && date.equals(this.selectedDate);\r\n }\r\n isToday(date) {\r\n return date.equals(this.calendar.getToday());\r\n }\r\n onDateSelection(date) {\r\n if (this.range) {\r\n if (!this.selectedDate.from && !this.selectedDate.to) {\r\n this.selectedDate.from = date;\r\n } else if (this.selectedDate.from && !this.selectedDate.to && date && date.after(this.selectedDate.from)) {\r\n this.selectedDate.to = date;\r\n } else {\r\n this.selectedDate.to = null;\r\n this.selectedDate.from = date;\r\n }\r\n if (this.selectedDate.from && this.selectedDate.to) {\r\n\r\n this.selectedDateChange.emit(this.selectedDate);\r\n\r\n }\r\n } else {\r\n this.selectedDateChange.emit(this.selectedDate);\r\n }\r\n }\r\n validateInput(currentValue: NgbDate | null, input: string): NgbDate | null {\r\n const parsed = this.formatter.parse(input);\r\n return parsed && this.calendar.isValid(NgbDate.from(parsed)) ? NgbDate.from(parsed) : currentValue;\r\n }\r\n onBlur() {\r\n if (!this.selectedDate) {\r\n this.selectedDateChange.emit(null);\r\n }\r\n }\r\n\r\n clear() {\r\n this.selectedDate = this.range ? { from: undefined, to: undefined } : undefined;\r\n this.datePicker.close();\r\n this.selectedDateChange.emit(null);\r\n }\r\n\r\n}\r\n","<div provideParentForm>\r\n <input class=\"form-control\" [ngClass]=\"{'hidden':range, 'input-filled' : selectedDate}\" [ngModel]=\"!range && selectedDate\"\r\n (ngModelChange)=\"!range && selectedDate=$event\"\r\n [placeholder]=\"placeHolder ?placeHolder : 'd/M/yyyy'\" ngbDatepicker (click)=\"d.toggle()\"\r\n (dateSelect)=\"onDateSelection($event)\" #d=\"ngbDatepicker\" firstDayOfWeek=\"7\" [readonly]=\"readonly\"\r\n [autoClose]=\"range ? 'outside' : true\" [minDate]=\"min\" [maxDate]=\"max\" [required]=\"isRequired\"\r\n [displayMonths]=\"range ? 2 : 1\" [name]=\"name\" [startDate]=\"range ? selectedDate.from! : selectedDate!\" [dayTemplate]=\"t\"\r\n (blur)=\"onBlur()\" [footerTemplate]=\"footerTemplate\" [disabled]=\"disabled\" />\r\n <ng-container *ngIf=\"range\">\r\n <div class=\"form-group ranger\" [ngClass]=\"{'vertical':vertical}\">\r\n <div class=\"input-group\">\r\n <input #dpFromDate class=\"form-control\" (click)=\"d.toggle()\" [placeholder]=\"placeHolder ?placeHolder : 'd/M/yyyy'\" name=\"dpFromDate\"\r\n [value]=\"formatter.format(selectedDate.from)\" (input)=\"fromDate = validateInput(selectedDate.from, dpFromDate.value)\">\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-outline-secondary\" (click)=\"d.toggle()\" type=\"button\">\r\n <i class=\"bi bi-calendar-week icon\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group ranger\" [ngClass]=\"{'vertical':vertical}\">\r\n <div class=\"input-group\">\r\n <input #dpToDate class=\"form-control\" (click)=\"d.toggle()\" [placeholder]=\"placeHolder ?placeHolder : 'd/M/yyyy'\" name=\"dpToDate\"\r\n [value]=\"formatter.format(selectedDate.to)\" (input)=\"selectedDate.to = validateInput(selectedDate.to, dpToDate.value)\">\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-outline-secondary\" (click)=\"d.toggle()\" type=\"button\">\r\n <i class=\"bi bi-calendar-week icon\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n<ng-template #t let-date let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.focused]=\"focused || isToday(date)\" [class.range]=\"isRange(date) || isSelectedDate(date)\"\r\n [class.faded]=\"isHovered(date) || (isInside(date) && range)\" (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\">\r\n {{ date.day }}\r\n </span>\r\n</ng-template>\r\n\r\n\r\n<ng-template #footerTemplate>\r\n <hr class=\"my-0\">\r\n <button class=\"btn btn-secondary btn-sm m-2 float-right\" type=\"button\" (click)=\"d.close()\">Close</button>\r\n <button class=\"btn btn-primary btn-sm m-2 float-left\" type=\"button\" (click)=\"clear()\">Clear</button>\r\n</ng-template>\r\n","import { Injectable } from '@angular/core';\r\nimport { NgbDatepickerI18n, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nconst WEEKDAYS = ['أحد', 'إثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'];\r\nconst MONTHS = ['محرم', 'صفر', 'ربيع الأول', 'ربيع الآخر', 'جمادى الأولى', 'جمادى الآخرة', 'رجب', 'شعبان', 'رمضان', 'شوال',\r\n 'ذو القعدة', 'ذو الحجة'];\r\n\r\n@Injectable()\r\nexport class IslamicI18n extends NgbDatepickerI18n {\r\n\r\n getWeekdayShortName(weekday: number) {\r\n return WEEKDAYS[weekday - 1];\r\n }\r\n\r\n getMonthShortName(month: number) {\r\n return MONTHS[month - 1];\r\n }\r\n\r\n getMonthFullName(month: number) {\r\n return MONTHS[month - 1];\r\n }\r\n\r\n getDayAriaLabel(date: NgbDateStruct): string {\r\n return `${date.day}-${date.month}-${date.year}`;\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { NgbCalendar, NgbCalendarIslamicUmalqura, NgbDate, NgbDateParserFormatter, NgbDatepickerI18n, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { IslamicI18n } from '../../utils/IslamicI18n';\r\n\r\n@Component({\r\n selector: 'hijri-date-picker',\r\n templateUrl: './hijri-datepicker.component.html',\r\n providers: [\r\n { provide: NgbCalendar, useClass: NgbCalendarIslamicUmalqura },\r\n { provide: NgbDatepickerI18n, useClass: IslamicI18n }\r\n ],\r\n styleUrls: [\r\n './hijri-date-picker.component.scss'\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class HijriDatepickerComponent {\r\n\r\n\r\n @ViewChild('d') datePicker: any;\r\n\r\n @Input() selectedDate;\r\n @Output() selectedDateChange: EventEmitter<any> = new EventEmitter();\r\n\r\n @Input() readonly = false;\r\n @Input() isRequired = false;\r\n @Input() disabled = false;\r\n @Input() min: NgbDateStruct;\r\n @Input() max: NgbDateStruct;\r\n @Input() name: string;\r\n @Input() range = false;\r\n @Input() vertical = false;\r\n hoveredDate: NgbDate | null = null;\r\n fromDate;\r\n toDate;\r\n @Input() placeHolder: string;\r\n\r\n constructor(public calendar: NgbCalendar, public formatter: NgbDateParserFormatter) {\r\n // this.fromDate = calendar.getToday();\r\n }\r\n\r\n isHovered(date: NgbDate) {\r\n return this.selectedDate && (this.selectedDate.from && !this.selectedDate.to && this.hoveredDate && date.after(this.selectedDate.from) && date.before(this.hoveredDate));\r\n }\r\n\r\n isInside(date: NgbDate) {\r\n return this.selectedDate && (this.selectedDate.to && date.after(this.selectedDate.from) && date.before(this.selectedDate.to));\r\n }\r\n\r\n isRange(date: NgbDate) {\r\n return this.selectedDate && (date.equals(this.selectedDate.from) || (this.selectedDate.to && date.equals(this.selectedDate.to)) || this.isInside(date) || this.isHovered(date));\r\n }\r\n onDateSelection(date) {\r\n if (this.range) {\r\n if (!this.selectedDate.from && !this.selectedDate.to) {\r\n this.selectedDate.from = date;\r\n } else if (this.selectedDate.from && !this.selectedDate.to && date && date.after(this.selectedDate.from)) {\r\n this.selectedDate.to = date;\r\n } else {\r\n this.selectedDate.to = null;\r\n this.selectedDate.from = date;\r\n }\r\n if (this.selectedDate.from && this.selectedDate.to) {\r\n\r\n this.selectedDateChange.emit(this.selectedDate);\r\n\r\n }\r\n } else {\r\n this.selectedDateChange.emit(this.selectedDate);\r\n }\r\n }\r\n validateInput(currentValue: NgbDate | null, input: string): NgbDate | null {\r\n const parsed = this.formatter.parse(input);\r\n return parsed && this.calendar.isValid(NgbDate.from(parsed)) ? NgbDate.from(parsed) : currentValue;\r\n }\r\n onBlur() {\r\n if (!this.selectedDate) {\r\n this.selectedDateChange.emit(null);\r\n }\r\n }\r\n\r\n clear() {\r\n this.selectedDate = this.range ? { from: undefined, to: undefined } : undefined;\r\n this.datePicker.close();\r\n this.selectedDateChange.emit(null);\r\n }\r\n}\r\n","<div provideParentForm>\r\n <input class=\"form-control\" [ngClass]=\"{'hidden':range, 'input-filled' : selectedDate}\" [ngModel]=\"!range && selectedDate\"\r\n (ngModelChange)=\"!range && selectedDate=$event\"\r\n [placeholder]=\"placeHolder ?placeHolder : 'd/M/yyyy'\" ngbDatepicker (click)=\"d.toggle()\"\r\n (dateSelect)=\"onDateSelection($event)\" #d=\"ngbDatepicker\" firstDayOfWeek=\"7\" [readonly]=\"readonly\"\r\n [autoClose]=\"range ? 'outside' : true\" [minDate]=\"min\" [maxDate]=\"max\" [required]=\"isRequired\"\r\n [displayMonths]=\"range ? 2 : 1\" [name]=\"name\" [startDate]=\"range ? selectedDate.from! : selectedDate!\" [dayTemplate]=\"t\"\r\n (blur)=\"onBlur()\" [footerTemplate]=\"footerTemplate\" [disabled]=\"disabled\" />\r\n <ng-container *ngIf=\"range\">\r\n <div class=\"form-group ranger\" [ngClass]=\"{'vertical':vertical}\">\r\n <div class=\"input-group\">\r\n <input #dpFromDate class=\"form-control\" (click)=\"d.toggle()\" [placeholder]=\"placeHolder ?placeHolder : 'd/M/yyyy'\" name=\"dpFromDate\"\r\n [value]=\"formatter.format(selectedDate.from)\" (input)=\"fromDate = validateInput(selectedDate.from, dpFromDate.value)\">\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-outline-secondary\" (click)=\"d.toggle()\" type=\"button\">\r\n <i class=\"bi bi-calendar-week icon\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group ranger\" [ngClass]=\"{'vertical':vertical}\">\r\n <div class=\"input-group\">\r\n <input #dpToDate class=\"form-control\" (click)=\"d.toggle()\" [placeholder]=\"placeHolder ?placeHolder : 'd/M/yyyy'\" name=\"dpToDate\"\r\n [value]=\"formatter.format(selectedDate.to)\" (input)=\"selectedDate.to = validateInput(selectedDate.to, dpToDate.value)\">\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-outline-secondary\" (click)=\"d.toggle()\" type=\"button\">\r\n <i class=\"bi bi-calendar-week icon\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n<ng-template #t let-date let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.focused]=\"focused && range\" [class.range]=\"isRange(date) && range\"\r\n [class.faded]=\"isHovered(date) || (isInside(date) && range)\" (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\">\r\n {{ date.day }}\r\n </span>\r\n</ng-template>\r\n\r\n\r\n<ng-template #footerTemplate>\r\n <hr class=\"my-0\">\r\n <button class=\"btn btn-secondary btn-sm m-2 float-right\" type=\"button\" (click)=\"d.close()\">Close</button>\r\n <button class=\"btn btn-primary btn-sm m-2 float-left\" type=\"button\" (click)=\"clear()\">Clear</button>\r\n</ng-template>\r\n","export class DateType {\r\n public static Hijri = 1;\r\n public static Gregorian = 2;\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, ViewChild, OnChanges } from '@angular/core';\r\nimport { NgbDateStruct, NgbDatepicker } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport * as momentjs from 'moment';\r\nconst moment = momentjs;\r\n\r\n\r\nimport * as moment_ from 'moment-hijri';\r\nimport { NgForm, ControlContainer } from '@angular/forms';\r\nimport { DateType } from '../utils/consts';\r\nimport { DateFormatterService } from '../services/date-formatter.service';\r\nconst momentHijri = moment_;\r\n\r\n\r\n@Component({\r\n selector: 'hijri-gregorian-datepicker',\r\n templateUrl: './hijri-gregorian-datepicker.component.html'\r\n})\r\nexport class HijriGregorianDatepickerComponent implements OnInit,OnChanges {\r\n\r\n @ViewChild('d') datePicker: any;\r\n\r\n\r\n @Input() selectedDateType: DateType;\r\n @Input() selectedDate;\r\n @Output() selectedDateChange: EventEmitter<NgbDateStruct> = new EventEmitter();\r\n\r\n @Input() label: string;\r\n @Input() showLabel = true;\r\n\r\n\r\n @Input() readonly = false;\r\n @Input() isRequired = false;\r\n @Input() disabled = false;\r\n @Input() disabledbtn = false \r\n\r\n @Input() minHijri: NgbDateStruct;\r\n @Input() maxHijri: NgbDateStruct;\r\n @Input() minGreg: NgbDateStruct;\r\n @Input() maxGreg: NgbDateStruct;\r\n\r\n @Input() hijriLabel: string;\r\n @Input() GregLabel: string;\r\n\r\n @Input() placeHolder: string;\r\n @Input() range = false;\r\n @Input() vertical = false;\r\n\r\n get DateType() {\r\n return DateType;\r\n }\r\n\r\n constructor(private dateFormatterService: DateFormatterService) { }\r\n\r\n ngOnInit() {\r\n setTimeout(() => {\r\n // this.selectedDate = null;\r\n }, 5000);\r\n if (!this.selectedDateType) {\r\n this.selectedDateType = DateType.Hijri;\r\n }\r\n }\r\n ngOnChanges() {\r\n if (this.range && !this.selectedDate) {\r\n this.selectedDate = { from: undefined, to: undefined };\r\n }\r\n }\r\n\r\n close() {\r\n this.datePicker.close();\r\n }\r\n\r\n clear() {\r\n this.selectedDate = undefined;\r\n this.close();\r\n this.selectedDateChange.emit(null);\r\n }\r\n getSelectedDate(): any {\r\n\r\n if (this.range) {\r\n let formattedFrom = this.dateFormatterService.ToString(this.selectedDate.from);\r\n let formattedTo = this.dateFormatterService.ToString(this.selectedDate.to);\r\n\r\n if (this.selectedDateType == DateType.Hijri) {\r\n\r\n return {\r\n from: momentHijri(formattedFrom, 'iD/iM/iYYYY').locale('en').format(),\r\n to: momentHijri(formattedTo, 'iD/iM/iYYYY').locale('en').format()\r\n };\r\n }\r\n\r\n if (this.selectedDateType == DateType.Gregorian) {\r\n return {\r\n from: moment(formattedFrom, 'D/M/YYYY').locale('en').format(),\r\n to: moment(formattedTo, 'D/M/YYYY').locale('en').format()\r\n };\r\n\r\n }\r\n } else {\r\n let formattedDate = this.dateFormatterService.ToString(this.selectedDate);\r\n\r\n if (this.selectedDateType == DateType.Hijri) {\r\n return momentHijri(formattedDate, 'iD/iM/iYYYY').locale('en').format();\r\n }\r\n\r\n if (this.selectedDateType == DateType.Gregorian) {\r\n return moment(formattedDate, 'D/M/YYYY').locale('en').format();\r\n }\r\n }\r\n }\r\n\r\n dateSelected(value) {\r\n if (this.range) {\r\n this.selectedDate = value;\r\n }\r\n this.selectedDateChange.emit(this.selectedDate);\r\n }\r\n\r\n hijriClick() {\r\n if (this.selectedDateType == DateType.Hijri) {\r\n return;\r\n }\r\n this.selectedDateType = DateType.Hijri;\r\n //to hijri\r\n if (this.range) {\r\n this.selectedDate = {\r\n from: this.dateFormatterService.ToHijri(this.selectedDate.from || null),\r\n to: this.dateFormatterService.ToHijri(this.selectedDate.to || null)\r\n };\r\n } else {\r\n this.selectedDate = this.dateFormatterService.ToHijri(this.selectedDate);\r\n\r\n }\r\n this.selectedDateChange.emit(this.selectedDate);\r\n }\r\n gregClick() {\r\n if (this.selectedDateType == DateType.Gregorian) {\r\n return;\r\n }\r\n this.selectedDateType = DateType.Gregorian;\r\n //to Gregorian\r\n if (this.range) {\r\n this.selectedDate = {\r\n from: this.dateFormatterService.ToGregorian(this.selectedDate.from || null),\r\n to: this.dateFormatterService.ToGregorian(this.selectedDate.to || null)\r\n };\r\n } else {\r\n this.selectedDate = this.dateFormatterService.ToGregorian(this.selectedDate);\r\n }\r\n this.selectedDateChange.emit(this.selectedDate);\r\n }\r\n}\r\n","<div class=\"form-group\" provideParentForm>\r\n <label class=\"requiredInput\" *ngIf=\"showLabel\" for=\"input-birth-Date\">{{ label }} </label>\r\n\r\n <div class=\"input-group\">\r\n <gregorian-date-picker [vertical]=\"vertical\" *ngIf=\"selectedDateType == DateType.Gregorian\" [range]=\"range\"\r\n [(selectedDate)]=\"selectedDate\" (selectedDateChange)=\"dateSelected($event)\" [readonly]=\"readonly\" [min]=\"minGreg\"\r\n [max]=\"maxGreg\" style=\"flex: 1 1 auto;\" [name]=\"label\" [isRequired]=\"isRequired\" [placeHolder]=\"placeHolder\"\r\n [disabled]=\"disabled\">\r\n </gregorian-date-picker>\r\n <hijri-date-picker [vertical]=\"vertical\" *ngIf=\"selectedDateType == DateType.Hijri\" [range]=\"range\"\r\n [(selectedDate)]=\"selectedDate\" (selectedDateChange)=\"dateSelected($event)\" [readonly]=\"readonly\" [min]=\"minHijri\"\r\n [max]=\"maxHijri\" style=\"flex: 1 1 auto;\" [name]=\"label\" [isRequired]=\"isRequired\" [placeHolder]=\"placeHolder\"\r\n [disabled]=\"disabled\">\r\n </hijri-date-picker>\r\n\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-sm {{selectedDateType == DateType.Hijri ? 'btn-info focus active' : 'btn-outline-info'}}\"\r\n (click)=\"hijriClick()\" [disabled]=\"disabledbtn\" type=\"button\">\r\n {{hijriLabel ? hijriLabel : 'Hijri' }}\r\n </button>\r\n <button\r\n class=\"btn btn-sm {{selectedDateType == DateType.Gregorian ? 'btn-info focus active' : 'btn-outline-info'}}\"\r\n (click)=\"gregClick()\" [disabled]=\"disabledbtn\" type=\"button\">\r\n {{GregLabel ? GregLabel : 'Gregorian' }}\r\n </button>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgbDateParserFormatter, NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { CustomNgbDateParserFormatter } from './utils/CustomNgbDateParserFormatter';\r\nimport { DateFormatterService } from './services/date-formatter.service';\r\nimport { GregorianDatepickerComponent } from './hijri-gregorian-datepicker/gregorian-datepicker/gregorian-datepicker.component';\r\nimport { HijriDatepickerComponent } from './hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component';\r\nimport { HijriGregorianDatepickerComponent } from './hijri-gregorian-datepicker/hijri-gregorian-datepicker.component';\r\nimport { ProvideParentFormDirective } from './hijri-gregorian-datepicker/provide-parent-form.directive';\r\n\r\n\r\n/** @ignore */\r\n@NgModule({\r\n declarations: [\r\n HijriGregorianDatepickerComponent,\r\n HijriDatepickerComponent,\r\n GregorianDatepickerComponent,\r\n ProvideParentFormDirective\r\n ],\r\n imports: [\r\n CommonModule ,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n NgbModule\r\n ],\r\n providers: [\r\n {provide: NgbDateParserFormatter, useClass: CustomNgbDateParserFormatter},\r\n DateFormatterService\r\n ],\r\n exports: [ HijriGregorianDatepickerComponent]\r\n})\r\nexport class NgxHijriGregorianDatepickerModule { }\r\n","import { Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\r\n\r\n/** @ignore */\r\n@Directive({\r\n selector: '[clickOutside]'\r\n})\r\nexport class ClickOutsideDirective {\r\n\r\n @Output() public clickOutside = new EventEmitter<void>();\r\n\r\n constructor(private elementRef: ElementRef) { }\r\n\r\n @HostListener('window:click', ['$event.target']) onClick(target) {\r\n const clickedInside = this.elementRef.nativeElement.contains(target);\r\n if (!clickedInside) {\r\n this.clickOutside.emit(target);\r\n }\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, Renderer2 } from '@angular/core';\r\nimport { TranslationService } from '../../Core/services/translation/translation.service';\r\n\r\n/** @ignore */\r\n\r\n@Directive({\r\n selector: '[SetRtl]',\r\n})\r\nexport class SetRtlDirective {\r\n constructor(\r\n private elRef: ElementRef,\r\n private renderer: Renderer2,\r\n private translation: TranslationService\r\n ) {\r\n this.switchClassBasedOnLanguage();\r\n }\r\n\r\n /*Switch rtl class based on the chosen language from Translation Service*/\r\n switchClassBasedOnLanguage() {\r\n this.translation.isArabic.subscribe((arabic) => {\r\n arabic\r\n ? this.renderer.addClass(this.elRef.nativeElement, 'rtl')\r\n : this.renderer.removeClass(this.elRef.nativeElement, 'rtl');\r\n });\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { first } from \"rxjs/operators\";\r\nimport {\r\n NuxeoService,\r\n} from '../../Core/services/nuxeo/nuxeo.service';\r\n@Injectable({ providedIn: \"root\" })\r\nexport class EvaluatorsService {\r\n \r\n constructor(private nuxeoService: NuxeoService) {}\r\n asyncEvery = async (arr, predicate) => {\r\n for (let e of arr) {\r\n if (!await predicate(e)) { return false; }\r\n }\r\n return true;\r\n }\r\n asyncSome = async (arr, predicate) => {\r\n for (let e of arr) {\r\n if (await predicate(e)) { return true; }\r\n }\r\n return false;\r\n };\r\n // tslint:disable-next-line:member-ordering\r\n evaluators = {\r\n AND: async (context, args: any[]): Promise<boolean> => {\r\n if (!args || args.length === 0) {\r\n return false;\r\n }\r\n return await this.asyncEvery(args, async (arg) => {\r\n const evaluator = await context.getEvaluator(arg.value);\r\n if (!evaluator) {\r\n console.warn('evaluator not found: ' + arg.value);\r\n return false;\r\n }\r\n return await evaluator(context, (arg.parameters || []));\r\n });\r\n },\r\n OR: async (context, args: any[]): Promise<boolean> => {\r\n if (!args || args.length === 0) {\r\n return false;\r\n }\r\n return await this.asyncSome\r\n (args, async (arg) => {\r\n const evaluator = await context.getEvaluator(arg.value);\r\n if (!evaluator) {\r\n console.warn('evaluator not found: ' + arg.value);\r\n return false;\r\n }\r\n const res = await evaluator(context, (arg.parameters || []));\r\n return res;\r\n });\r\n },\r\n isStatus: async (context, args) => {\r\n if (args.indexOf(context.entity.state) > -1) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n },\r\n isCreator: async (context, args) => {\r\n //check if user loged in is the creator of that corresp\r\n let owner;\r\n if (context.entity.properties.owner?.properties?.username) {\r\n owner = context.entity.properties.owner?.properties?.username;\r\n } else if (\r\n context.entity.properties['corr:owner']?.properties?.username\r\n ) {\r\n owner = context.entity.properties['corr:owner']?.properties?.username;\r\n } else if (context.entity.properties.owner) {\r\n owner = context.entity.properties.owner;\r\n } else if (context.entity.properties['corr:owner']) {\r\n owner = context.entity.properties['corr:owner'];\r\n }\r\n\r\n if (owner === context.user.properties.username) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n },\r\n isUserInrole : async (context, args) => {\r\n const result = await this.nuxeoService\r\n .isUserInRole(args, '')\r\n .pipe(first())\r\n .toPromise();\r\n return result;\r\n }\r\n };\r\n\r\n\r\n getEvaluator = async (key: string) => {\r\n const eva = this.evaluators;\r\n if (key && key.startsWith(\"!\")) {\r\n const fn = eva[key.substring(1)];\r\n return async (context, args): Promise<boolean> => {\r\n const result = await fn(context, ...args);\r\n return !result;\r\n };\r\n }\r\n return eva[key];\r\n };\r\n\r\n setEvaluators(evaluators) {\r\n this.evaluators = { ...this.evaluators, ...evaluators };\r\n }\r\n getEvaluators() {\r\n return this.evaluators;\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { first , switchMap} from 'rxjs/operators';\r\n import { AppConfigService } from '../../configuration/app-config.service';\r\nimport { NuxeoService } from '../../Core/services/nuxeo/nuxeo.service';\r\n\r\nimport { EvaluatorsService } from './evaluators.service';\r\n/**\r\n * Permission directive shows or hides an element,\r\n * based on a predefined structured condition object in the [conditions.json]{@link ../additional-documentation/conditions-file.html} file.\r\n * it will evaluate the rule and shows or hides an element based on the result.\r\n * this directive can evaluate rules against a document object as well,\r\n * check [conditions.json]{@link ../additional-documentation/conditions-file.html} for more information\r\n * @example\r\n * <div *permission=\"{ name: 'conditionKey', entity: nuxeoDocumentObject }\">\r\n * Element with permissions\r\n * </duv>\r\n * <div *permission=\"{ name: 'conditionKey2' }\">\r\n * Element with permissions 2\r\n * </duv>\r\n * @title\r\n * Permission\r\n */\r\n@Directive({\r\n selector: '[permission]'\r\n})\r\nexport class PermissionsDirective implements OnInit {\r\n\r\n\r\n constructor(private nuxeoService: NuxeoService, private eltRef: ElementRef, private viewContainerRef: ViewContainerRef,\r\n private templateRef: TemplateRef<any>, private appConfigService : AppConfigService,\r\n private evaluatorsService : EvaluatorsService,\r\n \r\n\r\n ) {\r\n\r\n\r\n }\r\n /** permission object */\r\n @Input() permission;\r\n conditions;\r\n\r\n isVisible = false;\r\n context = { entity: null, getEvaluator: null, user: null };\r\n \r\n getEvaluator = async (key: string) => {\r\n const eva = this.evaluatorsService.evaluators;\r\n if (key && key.startsWith('!')) {\r\n const fn = eva[key.substring(1)];\r\n return async (context, args): Promise<boolean> => {\r\n const result = await fn(context, ...args);\r\n return !result;\r\n };\r\n }\r\n return eva[key];\r\n }\r\n\r\n ngOnInit() {\r\n this.getAllRules();\r\n this.context.getEvaluator = this.evaluatorsService.getEvaluator;\r\n if (!this.permission.name) {\r\n\r\n if (!this.isVisible) {\r\n this.isVisible = true;\r\n this.viewContainerRef.createEmbeddedView(this.templateRef);\r\n }\r\n } else {\r\n this.context.entity = this.permission.entity;\r\n this.context.user = this.permission.user || this.nuxeoService.nuxeoClient.user;\r\n this.evaluateRule(this.permission.name, this.context).then((result) => {\r\n if (result) {\r\n if (!this.isVisible) {\r\n this.isVisible = true;\r\n this.viewContainerRef.createEmbeddedView(this.templateRef);\r\n }\r\n } else {\r\n this.isVisible = false;\r\n this.viewContainerRef.clear();\r\n }\r\n });\r\n }\r\n }\r\n\r\n async evaluateRule(ruleId, context?): Promise<boolean> {\r\n const ruleRef = this.getRuleById(ruleId);\r\n context = context || this.context;\r\n\r\n if (ruleRef) {\r\n const evaluator = await this.evaluatorsService.getEvaluator(ruleRef.type);\r\n if (evaluator) {\r\n return await evaluator(context, ruleRef.parameters);\r\n }\r\n } else {\r\n const evaluator = await this.evaluatorsService.getEvaluator(ruleId);\r\n if (evaluator) {\r\n return await evaluator(context);\r\n }\r\n }\r\n }\r\n\r\n getRuleById(id: string) {\r\n return this.conditions[id] ? { ...this.conditions[id] } : null;\r\n }\r\n\r\n getAllRules() {\r\n this.conditions = this.appConfigService.conditons;\r\n \r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, Renderer2 } from '@angular/core';\r\nimport { TranslationService } from '../../Core/services/translation/translation.service';\r\n\r\n/** @ignore */\r\n\r\n@Directive({\r\n selector: '[SetDirRtl]',\r\n})\r\nexport class SetDirRtlDirective {\r\n constructor(\r\n private elRef: ElementRef,\r\n private renderer: Renderer2,\r\n private translation: TranslationService\r\n ) {\r\n this.switchDirBasedOnLanguage();\r\n }\r\n\r\n switchDirBasedOnLanguage() {\r\n this.translation.isArabic.subscribe((arabic) => {\r\n arabic\r\n ? this.renderer.setAttribute(this.elRef.nativeElement, 'dir', 'rtl')\r\n : this.renderer.setAttribute(this.elRef.nativeElement, 'dir', 'ltr');\r\n });\r\n }\r\n}\r\n","import {\n Directive,\n Input,\n OnChanges,\n OnInit,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { NuxeoService } from '../../Core/services/nuxeo/nuxeo.service';\n@Directive({\n selector: '[appHasRole]'\n})\nexport class AppHasRoleDirective implements OnInit, OnChanges {\n /** the role the user must have */\n @Input() appHasRole;\n\n stop$ = new Subject();\n\n isVisible = false;\n\n constructor(\n private viewContainerRef: ViewContainerRef,\n private templateRef: TemplateRef<any>,\n private nuxeoService: NuxeoService\n ) { }\n\n ngOnInit(): void {\n if (this.appHasRole?.role) {\n this.nuxeoService.isUserInRole(this.appHasRole.role, this.appHasRole.code).subscribe(data => {\n if (data || !this.appHasRole) {\n // If it is already visible (which can happen if\n // his roles changed) we do not need to add it a second time\n if (!this.isVisible) {\n // We update the `isVisible` property and add the\n // templateRef to the view using the\n // 'createEmbeddedView' method of the viewContainerRef\n this.isVisible = true;\n this.viewContainerRef.createEmbeddedView(this.templateRef);\n }\n } else {\n // If the user does not have the role,\n // we update the `isVisible` property and clear\n // the contents of the viewContainerRef\n this.isVisible = false;\n this.viewContainerRef.clear();\n }\n });\n } else {\n if (!this.isVisible) {\n // We update the `isVisible` property and add the\n // templateRef to the view using the\n // 'createEmbeddedView' method of the viewContainerRef\n this.isVisible = true;\n this.viewContainerRef.createEmbeddedView(this.templateRef);\n }\n }\n }\n ngOnChanges(){\n this.ngOnInit();\n }\n}\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ClickOutsideDirective } from './clickOutSide/click-outside.directive';\r\nimport { SetRtlDirective } from './rtl/set-rtl.directive';\r\nimport { PermissionsDirective } from './permissions/permissions.directive';\r\nimport { SetDirRtlDirective } from './rtl/set-dir-rtl.directive';\r\nimport { TranslationService } from '../core/services/translation/translation.service';\r\nimport { AppHasRoleDirective } from '../directive/app-has-role/app-has-role.directive';\r\n\r\n/**\r\n * @title\r\n * Directives Module\r\n */\r\n@NgModule({\r\n declarations: [\r\n ClickOutsideDirective,\r\n SetRtlDirective,\r\n PermissionsDirective,\r\n SetDirRtlDirective,\r\n AppHasRoleDirective,\r\n ],\r\n imports: [CommonModule],\r\n exports: [\r\n ClickOutsideDirective,\r\n SetRtlDirective,\r\n PermissionsDirective,\r\n SetDirRtlDirective, \r\n AppHasRoleDirective\r\n ],\r\n providers: [TranslationService]\r\n})\r\nexport class DirectiveModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { from, Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { NuxeoService } from '../nuxeo/nuxeo.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CallApiService {\r\n constructor(private nuxeoService: NuxeoService) {}\r\n\r\n query(queryOptions, options): Observable<any> {\r\n return this.inerQuery(queryOptions, options);\r\n }\r\n\r\n private inerQuery(queryOptions, options): Observable<any> {\r\n return from(\r\n this.nuxeoService.nuxeoClient.repository().query(queryOptions, options)\r\n ).pipe(\r\n map((res: any) => {\r\n if (res.entries.length > 0) {\r\n res.entries.forEach((data) => {\r\n delete data._nuxeo;\r\n delete data._repository;\r\n });\r\n }\r\n return res;\r\n })\r\n );\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { from, Observable, ReplaySubject } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { AppConfigService } from '../../../configuration/app-config.service';\r\nimport { AdapterService } from '../../../Core/adapters/adapter.service';\r\nimport { CallApiService } from '../../../Core/services/callApi/call-api.service';\r\nimport { NuxeoService } from '../../../Core/services/nuxeo/nuxeo.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n })\r\n export class CorrespondenceRelationService {\r\n relationConstants : any ;\r\n public getUpdatedRelation = new ReplaySubject();\r\n incomingConstant;\r\n constructor(\r\n private nuxeoService: NuxeoService,\r\n private configService: AppConfigService,\r\n private callApi: CallApiService, @Inject('environment') private environment\r\n ) {\r\n this.relationConstants = this.configService.myConfiguration['files']['correspondenceRelation'];\r\n this.incomingConstant =\r\n this.configService.myConfiguration.correspondance.incoming;\r\n }\r\n\r\n get_Correspondence_Relation(corr_id,pageprovider,context = {}){\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation(pageprovider, {\r\n url: `${this.environment.nuxeo}${this.environment.customAutomation}`,\r\n })\r\n .context(context)\r\n .input(corr_id)\r\n .execute({\r\n headers: {\r\n properties: '*',\r\n },\r\n })\r\n ).pipe(\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n get_Correspondence_Reply_Relation(corr_id) : Observable<any>{\r\n return this.get_Correspondence_Relation(corr_id,this.relationConstants['Operations']['get_reply_relation'], {\"relationName\" : \"reply\"});\r\n }\r\n\r\n \r\n get_Correspondence_Reply_Relation_Reverse(corr_id) : Observable<any>{\r\n return this.get_Correspondence_Relation(corr_id,this.relationConstants['Operations']['get_reply_relation_reverse']);\r\n}\r\n\r\n get_Correspondence_Relation_WithoutReply(corr_id) : Observable<any>{\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation(this.relationConstants['Operations']['get_without_reply_both_direction'], {\r\n url: `${this.environment.nuxeo}${this.environment.customAutomation}`,\r\n })\r\n .context({})\r\n .input(corr_id)\r\n .execute()\r\n ).pipe(\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n\r\n create_Named_Relation(corr_id : string,relationname : string,targets : []) : Observable<any>{\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation(this.relationConstants['Operations']['create_named_relation'], {\r\n url: `${this.environment.nuxeo}${this.environment.customAutomation}`,\r\n })\r\n .context({\r\n relationName : relationname,\r\n targets: targets\r\n })\r\n .input(corr_id)\r\n .execute()\r\n ).pipe(\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n\r\n Delete_Named_Relation(corr_id : string,relationname : string,target : string) : Observable<any>{\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation(this.relationConstants['Operations']['delete_named_relation'], {\r\n url: `${this.environment.nuxeo}${this.environment.customAutomation}`,\r\n })\r\n .context({\r\n relationName : relationname,\r\n target: target\r\n })\r\n .input(corr_id)\r\n .execute()\r\n ).pipe(\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n}\r\n\r\nsearch(val: string,query : any = ''): Observable<any> {\r\n return this.callApi\r\n .query(\r\n {\r\n pageProvider: 'PP_Correspondences_Elastic',\r\n currentPageIndex: 0,\r\n offset: 0,\r\n pageSize: 1000,\r\n system_fulltext: val,\r\n ...query\r\n },\r\n {\r\n headers: { 'X-NXproperties': '*' },\r\n }\r\n )\r\n .pipe(\r\n map((data) => {\r\n let results = [];\r\n data.entries.map((item) => {\r\n results.push({\r\n // title: item.title,\r\n title: item.properties[\"corr:referenceNumber\"] !== null ? item.properties[\"corr:referenceNumber\"] + \" - \" + item.properties[\"corr:subject\"] : item.properties[\"corr:subject\"],\r\n id: item.uid,\r\n filter: item.title,\r\n number: item.properties[\"corr:referenceNumber\"],\r\n subject: item.properties[\"corr:subject\"]\r\n });\r\n });\r\n return results;\r\n })\r\n );\r\n}\r\n }","import {\r\n Component, EventEmitter, Input, OnInit, Output, ViewChild, ViewEncapsulation,\r\n Optional,\r\n Self,OnChanges,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, FormControl, NgControl } from '@angular/forms';\r\nimport { CorrespondenceRelationService } from '../../../components/correspondence-relation/services/correspondence-realation.service';\r\n\r\n/** Auto complete dropdown component\r\n * @title\r\n * Search Autocomplete\r\n */\r\n@Component({\r\n selector: 'cts-search-autocomplete',\r\n templateUrl: './search-autocomplete.component.html',\r\n styleUrls: ['./search-autocomplete.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class SearchAutocompleteComponent implements ControlValueAccessor, OnChanges {\r\n\r\n @ViewChild(SearchAutocompleteComponent)\r\n searchautocomplete: SearchAutocompleteComponent;\r\n\r\n loading = false;\r\n target: any = {};\r\n @ViewChild('auto') auto;\r\n /** placeholder for the input */\r\n @Input() placeholder;\r\n /** label for the input */\r\n @Input() label;\r\n /** id of correspondance that should be exluded */\r\n @Input()\r\n correspondanceId;\r\n /** event emitter that will fire with selected item info when an item is selected */\r\n @Output() onSelecting = new EventEmitter();\r\n\r\n // function related to value accessor\r\n propagateChange: any = () => { };\r\n validateFn: any = () => { };\r\n public onTouched: any = () => {\r\n /*Empty*/\r\n };\r\n\r\n public get invalid(): boolean {\r\n return this.control ? this.control.invalid : false;\r\n }\r\n\r\n public get showError(): boolean {\r\n if (!this.control) {\r\n return false;\r\n }\r\n\r\n const { dirty, touched } = this.control;\r\n\r\n return this.invalid ? dirty || touched : false;\r\n }\r\n writeValue(value) {\r\n if (value) {\r\n this.target = value;\r\n this.auto.query = this.target?.title;\r\n }\r\n }\r\n\r\n registerOnChange(fn) {\r\n this.propagateChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(c: FormControl) {\r\n return this.validateFn(c);\r\n }\r\n isRequired() {\r\n if (!this.control || !this.control.control.validator) {\r\n return false;\r\n }\r\n\r\n const validator = this.control.control.validator({} as AbstractControl);\r\n return validator && validator.required;\r\n }\r\n hasErrors(): boolean {\r\n return this.showError;\r\n }\r\n reset() {\r\n this.inputCleared();\r\n this.searchautocomplete.reset();\r\n }\r\n\r\n constructor(private corressvc: CorrespondenceRelationService,\r\n @Self() @Optional() public control: NgControl\r\n ) {\r\n this.control.valueAccessor = this;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.correspondanceId = this.correspondanceId;\r\n console.log('id', this.correspondanceId);\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n /**ng-Autocomplete related functions */\r\n alwaysopened: boolean = false;\r\n inputCleared() {\r\n this.documentList = [];\r\n this.auto.close();\r\n this.target = {};\r\n this.propagateChange();\r\n this.onSelecting.emit();\r\n }\r\n\r\n selectItem(item) {\r\n this.target = item;\r\n this.propagateChange(item);\r\n this.onSelecting.emit(item);\r\n\r\n }\r\n isLoading: boolean = false;\r\n documentList: any[] = [];\r\n\r\n onSearchInputChange(val: string) {\r\n if (val?.length == 0) {\r\n return;\r\n }\r\n this.corressvc\r\n .search(val, {\r\n Correspondence_requireReply: true,\r\n Correspondence_replied: false,\r\n })\r\n .subscribe((data) => {\r\n this.documentList = data.filter((correspondance) => {\r\n if (this.correspondanceId) {\r\n return this.correspondanceId != correspondance.id;\r\n } else {\r\n return correspondance;\r\n }\r\n });\r\n // this.documentList = data;\r\n this.isLoading = false;\r\n return this.documentList;\r\n });\r\n }\r\n //disableFilter = (items: any[]) => items;\r\n\r\n close() { }\r\n}\r\n","<div class=\"search-container\">\r\n <ng-container>\r\n <div>\r\n <label class=\"select-label\" >{{ label | translate\r\n }}</label>\r\n </div>\r\n </ng-container>\r\n <!-- [customFilter]=\"disableFilter\" -->\r\n <ng-autocomplete #auto [data]=\"documentList\" [searchKeyword]=\"'filter'\" (selected)='selectItem($event)'\r\n (inputChanged)='onSearchInputChange($event)' (closed)=\"close()\" [itemTemplate]=\"itemTemplate\"\r\n [notFoundTemplate]=\"notFoundTemplate\" [placeholder]=\"'correspondence-relation.searchby' | translate\"\r\n [debounceTime]='1000' [isLoading]=\"isLoading\" (inputCleared)='inputCleared()'>\r\n </ng-autocomplete>\r\n\r\n <ng-template #itemTemplate let-item>\r\n <div class=\"item\">\r\n <span>{{item.title}}</span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #notFoundTemplate>\r\n <div>{{'correspondence-relation.notfound' | translate}}</div>\r\n </ng-template>\r\n</div>","import { Component, Input, OnChanges } from '@angular/core';\r\n\r\n/**\r\n * Reusable component to truncate text, it will add '...' and a read more button if the text is longer than specified,\r\n * Conditions are word count,char count or line break count respectively\r\n * @title\r\n * Read More Component\r\n * @example\r\n *\r\n * <app-read-more\r\n * [charCount]=\"60\"\r\n * [wordCount]=\"12\"\r\n * [lineBreaks]=\"4\"\r\n * [text]=\"data?.description\"\r\n * ></app-read-more>\r\n */\r\n@Component({\r\n selector: 'app-read-more',\r\n template: `\r\n <p class='break-wrap inline' style='white-space: pre-wrap;' [ngClass]=\"{'hidden': fullText}\" [innerHTML]='rmTextShort'></p>\r\n <p class='break-wrap inline' style='white-space: pre-wrap' [ngClass]=\"{'hidden': !fullText}\" [innerHTML]='rmTextFull'></p>\r\n <p class='inline' [ngClass]=\"{'hidden': rmTextFull.length === rmTextShort.length}\">\r\n <small>\r\n <a href='javascript:;' class='text-primary underline' (click)='readMore(true)' [hidden]='!showMore'> {{'more' | translate}}</a>\r\n <a href='javascript:;' (click)='readMore(false)' class='text-primary underline' [hidden]='!showLess'> {{'less' | translate}}</a>\r\n </small>\r\n </p>`\r\n ,\r\n styles: ['p { margin-bottom:6px }']\r\n\r\n})\r\nexport class ReadMoreComponent implements OnChanges {\r\n /** text to be handled */\r\n @Input() text: string;\r\n /** Char count limit */\r\n @Input() charCount = 300;\r\n /** word count limit */\r\n @Input() wordCount = 30;\r\n /** line breaks limit */\r\n @Input() lineBreaks = 4;\r\n fullText = true;\r\n showMore = false;\r\n showLess = false;\r\n rmTextShort = '';\r\n rmTextFull = '';\r\n inputWords = [];\r\n constructor() {\r\n }\r\n\r\n readMore(flag) {\r\n if (flag) {\r\n this.showMore = false;\r\n this.fullText = true;\r\n this.rmTextFull = this.text;\r\n this.showLess = true;\r\n } else {\r\n this.showLess = false;\r\n this.showMore = true;\r\n this.fullText = false;\r\n }\r\n }\r\n\r\n ngOnChanges() {\r\n this.rmTextShort = this.text;\r\n this.rmTextFull = this.text;\r\n this.inputWords = this.text.split(' ');\r\n if (this.inputWords.length > this.wordCount) {\r\n this.fullText = false;\r\n this.showMore = true;\r\n this.rmTextShort = this.inputWords.slice(0, this.wordCount).join(' ') + '...';\r\n } else {\r\n if (this.rmTextShort.length > this.charCount) {\r\n this.fullText = false;\r\n this.showMore = true;\r\n this.rmTextShort = this.rmTextShort.substr(0, this.charCount) + '...'\r\n } else {\r\n const lineBreaks = this.rmTextShort.split(/\\n/g)\r\n if (lineBreaks.length > this.lineBreaks) {\r\n this.fullText = false\r\n this.showMore = true\r\n this.rmTextShort = lineBreaks.slice(0, this.lineBreaks).join('\\n') + '...'\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n/**\r\n * reusable user card component\r\n * @title\r\n * User Card\r\n * @example\r\n *\r\n * <app-user-card [user]=\"NuxeoUserObject\">\r\n * <div class=\"lineOne\">\r\n * Content of card first line\r\n * </div>\r\n * <div class=\"lineOnePart2\">\r\n * Content of card first line second part\r\n * </div>\r\n * <div class=\"lineTwo\">\r\n * Content of card second line\r\n * </div>\r\n * </app-user-card>\r\n */\r\n@Component({\r\n selector: 'app-user-card',\r\n templateUrl: './user-card.component.html',\r\n styleUrls: ['./user-card.component.scss'],\r\n})\r\nexport class UserCardComponent implements OnInit {\r\n /** Nuxeo user object */\r\n @Input()\r\n user;\r\n /** @deprecated diameter of avatar */\r\n @Input()\r\n diameter;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n if (screen.width <= 1536) {\r\n this.diameter = 10;\r\n } else if (screen.width > 1536) {\r\n this.diameter = 12;\r\n }\r\n }\r\n}\r\n","<ng-container *ngIf=\"user?.properties\">\r\n <div class=\"user-card\">\r\n <div class=\"p-1\">\r\n <cts-avatar class=\"card-avatar diameter\" [user]=\"user\" routerLink=\"/users/profile/{{ user.properties.username }}\"></cts-avatar>\r\n </div>\r\n <div class=\"user-content\">\r\n <div class=\"first-line-container\">\r\n <span class=\"first-line\" routerLink=\"/users/profile/{{ user.properties.username }}\">\r\n <ng-content select=\".lineOne\"></ng-content>\r\n </span>\r\n <span>\r\n <ng-content select=\".lineOnePart2 \"></ng-content>\r\n </span>\r\n </div>\r\n\r\n <span class=\"lineTwo\">\r\n <ng-content select=\".lineTwo \"></ng-content>\r\n </span>\r\n </div>\r\n </div>\r\n</ng-container>\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\n\r\n/**\r\n * reusable button with spinner component\r\n * @title\r\n * Button with spinner\r\n * @example\r\n *\r\n * <cts-button\r\n * [theme]=\"'danger'\"\r\n * [size]=\"'regular'\"\r\n * [loading]=\"false\"\r\n * [disabled]=\"false\"\r\n * (onClick)=\"executeAction()\"\r\n * >\r\n * Button Text\r\n * </cts-button>\r\n */\r\n@Component({\r\n selector: 'cts-button',\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ButtonComponent implements OnInit, OnChanges {\r\n /** is button disabled */\r\n @Input()\r\n disabled?;\r\n /** is button loading */\r\n @Input()\r\n loading?;\r\n /** button size large || regular || small */\r\n @Input()\r\n size?= 'regular';\r\n @Input()\r\n /** available themes: primary , blue , green , danger, dark, light-gray, outline-dark */\r\n theme?= 'primary';\r\n classes;\r\n /** button click event */\r\n @Output()\r\n onClick = new EventEmitter();\r\n constructor() { }\r\n\r\n emitClick(): void {\r\n this.onClick.next();\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n //Called before any other lifecycle hook. Use it to inject dependencies, but avoid any serious work here.\r\n //Add '${implements OnChanges}' to the class.\r\n this.setClasses();\r\n }\r\n ngOnInit(): void {\r\n this.setClasses();\r\n }\r\n\r\n setClasses() {\r\n let classes = {\r\n //theme\r\n primary: this.theme === 'primary',\r\n blue: this.theme === 'blue',\r\n green: this.theme === 'green',\r\n danger: this.theme === 'danger',\r\n dark: this.theme === 'dark',\r\n gray: this.theme === 'gray',\r\n 'light-gray': this.theme === 'light-gray',\r\n 'outline-dark': this.theme === 'outline-dark',\r\n //sizes\r\n large: this.size === 'large',\r\n regular: this.size === 'regular',\r\n small: this.size === 'small',\r\n //loading\r\n submitting: this.loading,\r\n //actions\r\n disabled: this.disabled,\r\n };\r\n this.classes = classes;\r\n }\r\n}\r\n","<button\r\n mat-button\r\n [disabled]=\"disabled || loading\"\r\n (click)=\"emitClick()\"\r\n [ngClass]=\"this.classes\"\r\n>\r\n <ng-content *ngIf=\"!loading; else spinner\"></ng-content>\r\n <ng-template #spinner>\r\n <mat-spinner class=\"spinner\" [diameter]=\"25\"></mat-spinner>\r\n </ng-template>\r\n</button>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n/**\r\n * Reusable Component to be shown when no data is present\r\n * @title\r\n * No Data Component\r\n * @example\r\n *\r\n * <cts-no-data\r\n * [message]=\"'PATH.TO.TRANSLATION'\"\r\n * ></cts-no-data>\r\n */\r\n@Component({\r\n selector: 'cts-no-data',\r\n templateUrl: './no-data.component.html',\r\n styleUrls: ['./no-data.component.scss'],\r\n})\r\nexport class NoDataComponent implements OnInit {\r\n /** tralsnation path to the message to be shown */\r\n @Input()\r\n message? = 'noData';\r\n @Input()\r\n border = true;\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","<div class=\"container\" [ngClass]=\"{'no-data-border':border}\">\r\n {{ message || \"noData\" | translate }}\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n/**\r\n * Basic Loading spinner component to be used in lists when loading data\r\n * @title\r\n * Spinner Component\r\n * @example\r\n *\r\n * <ng-container *ngIf=\"loading\">\r\n * <cts-spinner></cts-spinner>\r\n * </ng-container>\r\n */\r\n@Component({\r\n selector: 'cts-spinner',\r\n templateUrl: './spinner.component.html',\r\n styleUrls: ['./spinner.component.scss']\r\n})\r\nexport class SpinnerComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"container\">\r\n <mat-spinner\r\n [value]=\"90\"\r\n [strokeWidth]=\"3\"\r\n overlay=\"true\"\r\n [diameter]=\"25\"\r\n color=\"warn\"\r\n >\r\n </mat-spinner>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UtilityService {\r\n\r\n constructor() { }\r\n\r\n // flips key value\r\n objectFlip(obj): object {\r\n const ret = {};\r\n Object.keys(obj).forEach(key => {\r\n ret[obj[key]] = key;\r\n });\r\n return ret;\r\n }\r\n\r\n parseIfJson(str): any {\r\n try {\r\n return JSON.parse(str);\r\n } catch (e) {\r\n return undefined;\r\n }\r\n }\r\n\r\n // gets value from object by composed key\r\n getValue(target: any, key: string): any {\r\n\r\n if (!target) {\r\n return undefined;\r\n }\r\n\r\n const keys = key.split('.');\r\n key = '';\r\n\r\n do {\r\n key += keys.shift();\r\n const value = target[key];\r\n if (value !== undefined && (typeof value === 'object' || !keys.length)) {\r\n target = value;\r\n key = '';\r\n } else if (!keys.length) {\r\n target = undefined;\r\n } else {\r\n key += '.';\r\n }\r\n } while (keys.length);\r\n\r\n return target;\r\n }\r\n\r\n // merges objects\r\n merge(...objects): any {\r\n const result = {};\r\n\r\n objects.forEach((source) => {\r\n Object.keys(source).forEach((prop) => {\r\n if (prop in result && Array.isArray(result[prop])) {\r\n result[prop] = result[prop].concat(source[prop]);\r\n } else if (prop in result && typeof result[prop] === 'object') {\r\n result[prop] = this.merge(result[prop], source[prop]);\r\n } else {\r\n result[prop] = source[prop];\r\n }\r\n });\r\n });\r\n\r\n return result;\r\n }\r\n\r\n getPlainText(description: string, maxLength?: number): string {\r\n if (!description || !description.length) {\r\n return '';\r\n }\r\n let result = description.replace(/<[^>]*>/g, '').replace('&nbsp;', ' ').replace(/\\r\\n|\\r|\\n/g, ' ');\r\n if (maxLength && maxLength > 4 && result.length > maxLength) {\r\n result = result.substr(0, maxLength - 4) + '...';\r\n }\r\n return result;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { UtilityService } from '../utilities/utility.service';\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AdapterService {\r\n constructor(private utiliService: UtilityService) {}\r\n\r\n filterNullValues(formValue) {\r\n const filtered = {};\r\n for (let key in formValue) {\r\n if (formValue[key]) {\r\n filtered[key] =\r\n !Array.isArray(formValue[key]) && typeof formValue[key] === 'object'\r\n ? { ...this.filterNullValues(formValue[key]) }\r\n : formValue[key];\r\n }\r\n }\r\n return filtered;\r\n }\r\n\r\n adaptIn(item: any, fieldsobj: any) {\r\n const fields = this.utiliService.objectFlip(fieldsobj);\r\n const properties = { ...item.properties };\r\n Object.keys(fields).forEach((key) => {\r\n properties[fields[key]] = item.properties[key];\r\n delete properties[key];\r\n });\r\n item.properties = properties;\r\n return item;\r\n }\r\n\r\n adaptOut(item: any, fieldsobj: any) {\r\n const fields = fieldsobj;\r\n let properties = { ...item };\r\n Object.keys(fields).forEach((key) => {\r\n if (key) {\r\n properties[fields[key]] = item[key];\r\n delete properties[key];\r\n }\r\n });\r\n properties = { ...this.filterNullValues(properties) };\r\n\r\n return properties;\r\n }\r\n}\r\n","import { EventEmitter, Inject } from '@angular/core';\r\nimport { Injectable } from '@angular/core';\r\nimport { from, ReplaySubject } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { AppConfigService } from '../../../configuration/app-config.service';\r\nimport { AdapterService } from '../../../Core/adapters/adapter.service';\r\nimport { NuxeoService } from '../../../Core/services/nuxeo/nuxeo.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ViewerFilesService {\r\n public selectedFileId = new EventEmitter();\r\n public updateViewer = new EventEmitter();\r\n incomingConstant;\r\n constructor(\r\n private configService: AppConfigService,\r\n private adapter: AdapterService,\r\n private nuxeoService: NuxeoService,\r\n @Inject('environment') private environment\r\n ) {\r\n this.incomingConstant =\r\n this.configService.myConfiguration['correspondance']['incoming'];\r\n }\r\n\r\n createAttach(attachment, correspondenceId) {\r\n console.log(attachment);\r\n // console.log(\r\n // this.adapter.adaptOut(attachment, this.incomingConstant.attachments)\r\n // );\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation('AC_UA_Correspondence_Attach_Create', {\r\n url: `${this.environment.nuxeo}${this.environment.customAutomation}`,\r\n })\r\n .input(correspondenceId)\r\n .context({\r\n attachment: this.adapter.adaptOut(\r\n attachment,\r\n this.incomingConstant.attachments\r\n ),\r\n })\r\n .execute()\r\n ).pipe(\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\r\nimport { ViewerFilesService } from '../../../components/correspondence-relation/services/viewer-files.service';\r\n\r\n/**\r\n * Reusable List item component with actions menu for listing a document or a version of a document\r\n * @title\r\n * List item component\r\n * @example\r\n *\r\n * <cts-item-list\r\n * [item]=\"item\"\r\n * [title]=\"item.title\"\r\n * [iconname]=\"'link'\"\r\n * [actions]=\"menu_actions\"\r\n * (actionclicked)=\"handleAction($event)\"\r\n * (itemClicked)='handleItem()'\r\n * [moreclasses]=\"'link-relation'\"\r\n * ></cts-item-list>\r\n */\r\n@Component({\r\n selector: 'cts-item-list',\r\n templateUrl: './item-list.component.html',\r\n styleUrls: ['./item-list.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ItemListComponent implements OnInit {\r\n selectedId;\r\n /** Document Item */\r\n @Input()\r\n item: any;\r\n /** Icon to display */\r\n @Input()\r\n iconname: string;\r\n /** title of the item */\r\n @Input()\r\n title: string;\r\n /** array of actions to be shown in actions menu */\r\n @Input()\r\n actions?: string[];\r\n /** highlight item if item is selected */\r\n @Input()\r\n isselected? = false;\r\n /** provide more classes to be assigned to the item DOM */\r\n @Input()\r\n moreclasses?;\r\n /** event Emitter that fires when item is clicked */\r\n @Output()\r\n itemClicked = new EventEmitter();\r\n /** Action Clicked event Emitter, emits action name and item object when an action is clicked */\r\n @Output()\r\n actionclicked = new EventEmitter();\r\n\r\n itemlistClick() {\r\n // this.isselected = true;\r\n this.itemClicked.next();\r\n }\r\n\r\n menuactionClicked(menu_item_name, item) {\r\n this.actionclicked.next({ action: menu_item_name, item: item });\r\n }\r\n\r\n constructor(private viewerFilesService: ViewerFilesService) { }\r\n\r\n ngOnInit(): void {\r\n this.viewerFilesService.selectedFileId.subscribe((res) => {\r\n this.selectedId = res;\r\n });\r\n }\r\n}\r\n","\r\n<mat-list-item class=\"list-item\" (click)=\"itemlistClick()\" [ngClass]=\"{\r\n 'list-item-selected': selectedId == item.uid\r\n }\">\r\n <div class=\"direction\"><i class=\"incoming bi bi-box-arrow-down\" *ngIf=\"!iconname&&item.direction?.toLowerCase() === 'incoming'\"></i></div>\r\n\r\n <div class=\"direction\"><i class=\"outcoming bi bi-box-arrow-up\" *ngIf=\"!iconname&&item.direction?.toLowerCase() === 'outgoing'\"></i></div>\r\n\r\n <mat-icon *ngIf=\"iconname\" mat-list-icon class=\"icon {{moreclasses}}\">{{\r\n iconname\r\n }}</mat-icon>\r\n\r\n <ng-content select=\".icon\"></ng-content>\r\n\r\n <div class=\"content\">\r\n <div *ngIf=\"title\" mat-line>{{ title }}</div>\r\n <div mat-line>\r\n <ng-content select=\".description\"> </ng-content>\r\n </div>\r\n</div>\r\n <button class=\"menu-item-action\" *ngIf=\"actions?.length\" (click)=\"$event.stopPropagation()\" [matMenuTriggerFor]=\"menu\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n\r\n <mat-menu #menu=\"matMenu\">\r\n <ng-container *ngFor=\"let menu_item of actions\">\r\n <button mat-menu-item (click)=\"menuactionClicked(menu_item.name, item)\">\r\n {{ menu_item.title | translate }}\r\n </button>\r\n </ng-container>\r\n </mat-menu>\r\n</mat-list-item>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { ReadMoreComponent } from './components/read-more/read-more.component';\r\nimport { UserCardComponent } from './components/user-card/user-card.component';\r\nimport { AvatarModule } from '../components/avatar/avatar.module';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { ButtonComponent } from './components/button/button.component';\r\nimport { NoDataComponent } from './components/no-data/no-data.component';\r\nimport { SpinnerComponent } from './components/spinner/spinner.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { AutocompleteLibModule } from 'angular-ng-autocomplete';\r\nimport { ItemListComponent } from './components/item-list/item-list.component';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n/**\r\n * @title\r\n * Shared UI Components\r\n */\r\n@NgModule({\r\n declarations: [ReadMoreComponent, UserCardComponent, ButtonComponent, NoDataComponent, SpinnerComponent, ItemListComponent],\r\n imports: [\r\n AvatarModule,\r\n CommonModule,\r\n RouterModule,\r\n TranslateModule,\r\n MatProgressSpinnerModule,\r\n MatProgressSpinnerModule,\r\n MatIconModule,\r\n MatListModule,\r\n MatMenuModule,\r\n AutocompleteLibModule\r\n ],\r\n exports: [\r\n UserCardComponent,\r\n ReadMoreComponent,\r\n TranslateModule,\r\n ButtonComponent,\r\n NoDataComponent,\r\n SpinnerComponent, \r\n ItemListComponent\r\n ],\r\n})\r\nexport class LibrarySharedModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { DynamicFormBaseItemModel } from '../models/dynamic-form.models';\r\nimport { AppConfigService } from '../../../configuration/app-config.service';\r\nimport { AdapterService } from '../../../Core/adapters/adapter.service';\r\nimport { CallApiService } from '../../../Core/services/callApi/call-api.service';\r\n\r\nexport interface UpdateNotification {\r\n target: any;\r\n changed: any;\r\n}\r\n\r\nexport interface ClickNotification {\r\n target: any;\r\n}\r\n\r\nexport function transformKeyToObject(key: string, value): Object {\r\n const objectLevels: string[] = key.split('.').reverse();\r\n\r\n return objectLevels.reduce<{}>((previousValue, currentValue) => {\r\n return { [currentValue]: previousValue };\r\n }, value);\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DynamicFormUpdateService {\r\n\r\n itemUpdated$ = new Subject<UpdateNotification>();\r\n itemClicked$ = new Subject<ClickNotification>();\r\n validate$ = new Subject();\r\n fields ;\r\n\r\n constructor( private callApi: CallApiService,\r\n private adapter: AdapterService,\r\n private appConfigService : AppConfigService){\r\n this.fields = this.appConfigService.myConfiguration.tables.incomingCorespondance.fields\r\n\r\n }\r\n\r\n update(property: DynamicFormBaseItemModel, newValue: any) {\r\n this.itemUpdated$.next({\r\n target: property,\r\n changed: transformKeyToObject(property.key, newValue)\r\n });\r\n this.validate$.next({\r\n target: property,\r\n changed: newValue\r\n });\r\n }\r\n validate(property: DynamicFormBaseItemModel, newValue: any) {\r\n this.validate$.next({\r\n target: property,\r\n changed: newValue\r\n });\r\n }\r\n clicked(property: DynamicFormBaseItemModel) {\r\n this.itemClicked$.next({\r\n target: property\r\n });\r\n }\r\n\r\n getTextBoxSuggestionResults(pageProvider , params , key , autoCompleteValueKey){\r\n return this.callApi\r\n .query(\r\n {\r\n pageProvider: pageProvider,\r\n ...params,\r\n },\r\n {\r\n headers: {\r\n \"X-NXproperties\": \"*\",\r\n },\r\n }\r\n )\r\n .pipe(\r\n map((data: any) => {\r\n let results = [];\r\n let myInternalResult = data.aggregations[autoCompleteValueKey];\r\n myInternalResult.buckets.map((item) => {\r\n results.push({\r\n title : item.key\r\n });\r\n });\r\n return results;\r\n }),\r\n catchError((err) => {\r\n throw err;\r\n })\r\n )\r\n \r\n }\r\n\r\n}\r\n\r\n\r\n\r\n","import { Component, Input } from '@angular/core';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { DynamicFormUpdateService } from '../../services/dynamic-form-update.service';\r\nimport { DynamicFormBoolItemModel } from '../../models/dynamic-form.models';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n/** @ignore */\r\n\r\n@Component({\r\n selector: 'app-dynamic-form-boolitem',\r\n templateUrl: './dynamic-form-boolitem.component.html',\r\n styleUrls: ['./dynamic-form-boolitem.component.scss']\r\n})\r\nexport class DynamicFormBoolItemComponent {\r\n @Input()\r\n property: DynamicFormBoolItemModel;\r\n\r\n @Input()\r\n editable: boolean;\r\n\r\n constructor(\r\n private dynamicFormUpdateService: DynamicFormUpdateService,\r\n public translate: TranslateService\r\n ) {}\r\n\r\n isEditable() {\r\n return this.editable && this.property.editable;\r\n }\r\n\r\n changed(change: MatCheckboxChange) {\r\n //this.dynamicFormUpdateService.update(this.property, change.checked);\r\n //this.property.value = change.checked;\r\n }\r\n}\r\n","<ng-container *ngIf=\"!property.isEmpty() || isEditable()\">\r\n <div class=\"row gap\">\r\n\r\n <label class=\"col-sm-3\" for=\"formGroupInputSmall\">{{\r\n property.label | translate\r\n }}<span *ngIf=\"property.mandatory\" class=\"text-danger\">*</span></label>\r\n <div class=\"col-sm-9\">\r\n <mat-checkbox [required]=\"property.mandatory\" [attr.data-automation-id]=\"'card-boolean-' + property.key\"\r\n [attr.title]=\"'CORE.METADATA.ACTIONS.TOGGLE' | translate\" [checked]=\"property.displayValue\"\r\n [disabled]=\"!isEditable()\" (change)=\"changed($event)\">\r\n </mat-checkbox>\r\n </div>\r\n </div>\r\n</ng-container>\r\n","import { Components } from 'formiojs';\r\nimport { cloneDeep, unionWith, each, filter, sortBy, isEqual } from 'lodash';\r\n\r\nexport const baseDisplay = [\r\n {\r\n weight: 0,\r\n type: 'textfield',\r\n input: true,\r\n hidden: true,\r\n key: 'key',\r\n label: 'Property Name',\r\n tooltip: 'The name of this field in the API endpoint.',\r\n validate: {\r\n pattern: '(\\\\w|\\\\w[\\\\w-.]*\\\\w)',\r\n patternMessage: 'The property name must only contain alphanumeric characters, underscores, dots and dashes and should not be ended by dash or dot.',\r\n required: true\r\n }\r\n },\r\n {\r\n weight: 0,\r\n type: 'textfield',\r\n input: true,\r\n key: 'label',\r\n label: 'Label - English',\r\n placeholder: 'Field Label',\r\n tooltip: 'The label for this field that will appear next to it.',\r\n validate: {\r\n required: true\r\n }\r\n },\r\n {\r\n weight: 10,\r\n type: 'textfield',\r\n input: true,\r\n key: 'labelAr',\r\n label: 'Label - Arabic',\r\n placeholder: 'Field Label',\r\n tooltip: 'The label for this field that will appear next to it.',\r\n validate: {\r\n required: true\r\n }\r\n },\r\n {\r\n type: 'select',\r\n input: true,\r\n key: 'labelPosition',\r\n label: 'Label Position',\r\n tooltip: 'Position for the label for this field.',\r\n weight: 20,\r\n defaultValue: 'top',\r\n dataSrc: 'values',\r\n data: {\r\n values: [\r\n {\r\n label: 'Top',\r\n value: 'top'\r\n },\r\n {\r\n label: 'Left (Left-aligned)',\r\n value: 'left-left'\r\n },\r\n {\r\n label: 'Left (Right-aligned)',\r\n value: 'left-right'\r\n },\r\n {\r\n label: 'Right (Left-aligned)',\r\n value: 'right-left'\r\n },\r\n {\r\n label: 'Right (Right-aligned)',\r\n value: 'right-right'\r\n },\r\n {\r\n label: 'Bottom',\r\n value: 'bottom'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n type: 'number',\r\n input: true,\r\n key: 'labelWidth',\r\n label: 'Label Width',\r\n tooltip: 'The width of label on line in percentages.',\r\n clearOnHide: false,\r\n weight: 30,\r\n placeholder: '30',\r\n suffix: '%',\r\n validate: {\r\n min: 0,\r\n max: 100\r\n },\r\n conditional: {\r\n json: {\r\n and: [\r\n {\r\n '!==': [\r\n {\r\n var: 'data.labelPosition'\r\n },\r\n 'top'\r\n ]\r\n },\r\n {\r\n '!==': [\r\n {\r\n var: 'data.labelPosition'\r\n },\r\n 'bottom'\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n },\r\n {\r\n type: 'number',\r\n input: true,\r\n key: 'labelMargin',\r\n label: 'Label Margin',\r\n tooltip: 'The width of label margin on line in percentages.',\r\n clearOnHide: false,\r\n weight: 30,\r\n placeholder: '3',\r\n suffix: '%',\r\n validate: {\r\n min: 0,\r\n max: 100\r\n },\r\n conditional: {\r\n json: {\r\n and: [\r\n {\r\n '!==': [\r\n {\r\n var: 'data.labelPosition'\r\n },\r\n 'top'\r\n ]\r\n },\r\n {\r\n '!==': [\r\n {\r\n var: 'data.labelPosition'\r\n },\r\n 'bottom'\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n },\r\n {\r\n weight: 200,\r\n type: 'textarea',\r\n input: true,\r\n key: 'description',\r\n label: 'Description - English',\r\n placeholder: 'Description for this field.',\r\n tooltip: 'The description is text that will appear below the input field.',\r\n editor: 'ace',\r\n as: 'html',\r\n wysiwyg: {\r\n minLines: 3,\r\n isUseWorkerDisabled: true\r\n }\r\n },\r\n {\r\n weight: 200,\r\n type: 'textarea',\r\n input: true,\r\n key: 'descriptionAr',\r\n label: 'Description - Arabic',\r\n placeholder: 'Description for this field.',\r\n tooltip: 'The description is text that will appear below the input field.',\r\n editor: 'ace',\r\n as: 'html',\r\n wysiwyg: {\r\n minLines: 3,\r\n isUseWorkerDisabled: true\r\n }\r\n },\r\n {\r\n weight: 300,\r\n type: 'textarea',\r\n input: true,\r\n key: 'tooltip',\r\n label: 'Tooltip - English',\r\n placeholder: 'To add a tooltip to this field, enter text here.',\r\n tooltip: 'Adds a tooltip to the side of this field.',\r\n editor: 'ace',\r\n as: 'html',\r\n wysiwyg: {\r\n minLines: 3,\r\n isUseWorkerDisabled: true\r\n }\r\n },\r\n {\r\n weight: 300,\r\n type: 'textarea',\r\n input: true,\r\n key: 'tooltipAr',\r\n label: 'Tooltip - Arabic',\r\n placeholder: 'To add a tooltip to this field, enter text here.',\r\n tooltip: 'Adds a tooltip to the side of this field.',\r\n editor: 'ace',\r\n as: 'html',\r\n wysiwyg: {\r\n minLines: 3,\r\n isUseWorkerDisabled: true\r\n }\r\n },\r\n {\r\n weight: 410,\r\n type: 'textfield',\r\n input: true,\r\n key: 'inputMask',\r\n label: 'Input Mask',\r\n tooltip: 'An input mask helps the user with input by ensuring a predefined format.<br><br>9: numeric<br>a: alphabetical<br>*: alphanumeric<br><br>Example telephone mask: (999) 999-9999<br><br>See the <a target=\\'_blank\\' href=\\'https://github.com/RobinHerbots/jquery.inputmask\\'>jquery.inputmask documentation</a> for more information.</a>'\r\n },\r\n {\r\n weight: 411,\r\n type: 'textfield',\r\n input: true,\r\n key: 'inputMaskPlaceholderChar',\r\n label: 'Input Mask Placeholder Char',\r\n tooltip: 'You can specify a char which will be used as a placeholder in the field. <br>E.g., ˍ<br>Make note that placeholder char will be replaced by a space if it is used inside the mask',\r\n validation: {\r\n maxLength: 1\r\n }\r\n },\r\n\r\n {\r\n weight: 1100,\r\n type: 'checkbox',\r\n label: 'Hidden',\r\n tooltip: 'A hidden field is still a part of the form, but is hidden from view.',\r\n key: 'hidden',\r\n input: true\r\n },\r\n {\r\n weight: 1200,\r\n type: 'checkbox',\r\n label: 'Hide Label',\r\n tooltip: 'Hide the label (title, if no label) of this component. This allows you to show the label in the form builder, but not when it is rendered.',\r\n key: 'hideLabel',\r\n input: true\r\n },\r\n\r\n {\r\n weight: 1400,\r\n type: 'checkbox',\r\n label: 'Disabled',\r\n tooltip: 'Disable the form input.',\r\n key: 'disabled',\r\n input: true\r\n }\r\n\r\n];\r\nexport const baseData = [\r\n {\r\n weight: 0,\r\n type: 'checkbox',\r\n label: 'Multiple Values',\r\n tooltip: 'Allows multiple values to be entered for this field.',\r\n key: 'multiple',\r\n input: true\r\n },\r\n {\r\n type: 'textfield',\r\n label: 'Default Value',\r\n key: 'defaultValue',\r\n weight: 5,\r\n placeholder: 'Default Value',\r\n tooltip: 'The will be the value for this field, before user interaction. Having a default value will override the placeholder text.',\r\n input: true\r\n },\r\n\r\n {\r\n type: 'select',\r\n input: true,\r\n key: 'redrawOn',\r\n label: 'Redraw On',\r\n weight: 600,\r\n tooltip: 'Redraw this component if another component changes. This is useful if interpolating parts of the component like the label.',\r\n dataSrc: 'custom',\r\n valueProperty: 'value',\r\n data: {},\r\n conditional: {\r\n json: {\r\n '!': [\r\n {\r\n var: 'data.dataSrc'\r\n }\r\n ]\r\n }\r\n }\r\n },\r\n {\r\n weight: 700,\r\n type: 'checkbox',\r\n label: 'Clear Value When Hidden',\r\n key: 'clearOnHide',\r\n defaultValue: true,\r\n tooltip: 'When a field is hidden, clear the value.',\r\n input: true\r\n },\r\n {\r\n type: 'panel',\r\n title: 'Custom Default Value',\r\n theme: 'default',\r\n collapsible: true,\r\n collapsed: true,\r\n key: 'customDefaultValuePanel',\r\n weight: 1000,\r\n components: [\r\n {\r\n type: 'htmlelement',\r\n tag: 'div',\r\n content: '<p>The following variables are available in all scripts.</p><table class=\"table table-bordered table-condensed table-striped\"><tr><th>form</th><td>The complete form JSON object</td></tr><tr><th>submission</th><td>The complete submission object.</td></tr><tr><th>data</th><td>The complete submission data object.</td></tr><tr><th>row</th><td>Contextual \"row\" data, used within DataGrid, EditGrid, and Container components</td></tr><tr><th>component</th><td>The current component JSON</td></tr><tr><th>instance</th><td>The current component instance.</td></tr><tr><th>value</th><td>The current value of the component.</td></tr><tr><th>moment</th><td>The moment.js library for date manipulation.</td></tr><tr><th>_</th><td>An instance of <a href=\"https://lodash.com/docs/\" target=\"_blank\">Lodash</a>.</td></tr><tr><th>utils</th><td>An instance of the <a href=\"http://formio.github.io/formio.js/docs/identifiers.html#utils\" target=\"_blank\">FormioUtils</a> object.</td></tr><tr><th>util</th><td>An alias for \"utils\".</td></tr></table><br/>'\r\n },\r\n {\r\n type: 'panel',\r\n title: 'JavaScript',\r\n collapsible: true,\r\n collapsed: false,\r\n style: {\r\n 'margin-bottom': '10px'\r\n },\r\n key: 'customDefaultValue-js',\r\n components: [\r\n {\r\n type: 'textarea',\r\n key: 'customDefaultValue',\r\n rows: 5,\r\n editor: 'ace',\r\n hideLabel: true,\r\n as: 'javascript',\r\n input: true\r\n },\r\n {\r\n type: 'htmlelement',\r\n tag: 'div',\r\n content: '<p>Enter custom javascript code.</p><p><h4>Example:</h4><pre>value = data.firstName + \" \" + data.lastName;</pre></p>'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'panel',\r\n title: 'JSONLogic',\r\n collapsible: true,\r\n collapsed: true,\r\n key: 'customDefaultValue-json',\r\n components: [\r\n {\r\n type: 'htmlelement',\r\n tag: 'div',\r\n content: '<p>Execute custom logic using <a href=\"http://jsonlogic.com/\" target=\"_blank\">JSONLogic</a>.</p><p>Full <a href=\"https://lodash.com/docs\" target=\"_blank\">Lodash</a> support is provided using an \"_\" before each operation, such as <code>{\"_sum\": {var: \"data.a\"}}</code></p><p><h4>Example:</h4><pre>{\"cat\": [{\"var\": \"data.firstName\"}, \" \", {\"var\": \"data.lastName\"}]}</pre>'\r\n },\r\n {\r\n type: 'textarea',\r\n key: 'customDefaultValue',\r\n rows: 5,\r\n editor: 'ace',\r\n hideLabel: true,\r\n as: 'json',\r\n input: true\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n type: 'panel',\r\n title: 'Calculated Value',\r\n theme: 'default',\r\n collapsible: true,\r\n collapsed: true,\r\n key: 'calculateValuePanel',\r\n weight: 1100,\r\n components: [\r\n {\r\n type: 'htmlelement',\r\n tag: 'div',\r\n content: '<p>The following variables are available in all scripts.</p><table class=\"table table-bordered table-condensed table-striped\"><tr><th>token</th><td>The decoded JWT token for the authenticated user.</td></tr><tr><th>form</th><td>The complete form JSON object</td></tr><tr><th>submission</th><td>The complete submission object.</td></tr><tr><th>data</th><td>The complete submission data object.</td></tr><tr><th>row</th><td>Contextual \"row\" data, used within DataGrid, EditGrid, and Container components</td></tr><tr><th>component</th><td>The current component JSON</td></tr><tr><th>instance</th><td>The current component instance.</td></tr><tr><th>value</th><td>The current value of the component.</td></tr><tr><th>moment</th><td>The moment.js library for date manipulation.</td></tr><tr><th>_</th><td>An instance of <a href=\"https://lodash.com/docs/\" target=\"_blank\">Lodash</a>.</td></tr><tr><th>utils</th><td>An instance of the <a href=\"http://formio.github.io/formio.js/docs/identifiers.html#utils\" target=\"_blank\">FormioUtils</a> object.</td></tr><tr><th>util</th><td>An alias for \"utils\".</td></tr></table><br/>'\r\n },\r\n {\r\n type: 'panel',\r\n title: 'JavaScript',\r\n collapsible: true,\r\n collapsed: false,\r\n style: {\r\n 'margin-bottom': '10px'\r\n },\r\n key: 'calculateValue-js',\r\n components: [\r\n {\r\n type: 'textarea',\r\n key: 'calculateValue',\r\n rows: 5,\r\n editor: 'ace',\r\n hideLabel: true,\r\n as: 'javascript',\r\n input: true\r\n },\r\n {\r\n type: 'htmlelement',\r\n tag: 'div',\r\n content: '<p>Enter custom javascript code.</p><p><h4>Example:</h4><pre>value = data.a + data.b + data.c;</pre></p>'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'panel',\r\n title: 'JSONLogic',\r\n collapsible: true,\r\n collapsed: true,\r\n key: 'calculateValue-json',\r\n components: [\r\n {\r\n type: 'htmlelement',\r\n tag: 'div',\r\n content: '<p>Execute custom logic using <a href=\"http://jsonlogic.com/\" target=\"_blank\">JSONLogic</a>.</p><p>Full <a href=\"https://lodash.com/docs\" target=\"_blank\">Lodash</a> support is provided using an \"_\" before each operation, such as <code>{\"_sum\": {var: \"data.a\"}}</code></p><p><h4>Example:</h4><pre>{\"+\": [{\"var\": \"data.a\"}, {\"var\": \"data.b\"}, {\"var\": \"data.c\"}]}</pre><p><a target=\"_blank\" href=\"http://formio.github.io/formio.js/app/examples/calculated.html\">Click here for an example</a></p>'\r\n },\r\n {\r\n type: 'textarea',\r\n key: 'calculateValue',\r\n rows: 5,\r\n editor: 'ace',\r\n hideLabel: true,\r\n as: 'json',\r\n input: true\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n\r\n {\r\n type: 'checkbox',\r\n input: true,\r\n weight: 1200,\r\n key: 'allowCalculateOverride',\r\n label: 'Allow Manual Override of Calculated Value',\r\n tooltip: 'When checked, this will allow the user to manually override the calculated value.'\r\n }\r\n];\r\nexport const baseValidation = [\r\n {\r\n weight: 0,\r\n type: 'select',\r\n key: 'validateOn',\r\n defaultValue: 'change',\r\n input: true,\r\n label: 'Validate On',\r\n tooltip: 'Determines when this component should trigger front-end validation.',\r\n dataSrc: 'values',\r\n data: {\r\n values: [\r\n {\r\n label: 'Change',\r\n value: 'change'\r\n },\r\n {\r\n label: 'Blur',\r\n value: 'blur'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n weight: 10,\r\n type: 'checkbox',\r\n label: 'Required',\r\n tooltip: 'A required field must be filled in before the form can be submitted.',\r\n key: 'validate.required',\r\n input: true\r\n },\r\n {\r\n weight: 110,\r\n key: 'validate.minLength',\r\n label: 'Minimum Length',\r\n placeholder: 'Minimum Length',\r\n type: 'number',\r\n tooltip: 'The minimum length requirement this field must meet.',\r\n input: true\r\n },\r\n {\r\n weight: 120,\r\n key: 'validate.maxLength',\r\n label: 'Maximum Length',\r\n placeholder: 'Maximum Length',\r\n type: 'number',\r\n tooltip: 'The maximum length requirement this field must meet.',\r\n input: true\r\n },\r\n {\r\n weight: 125,\r\n key: 'validate.minWords',\r\n label: 'Minimum Word Length',\r\n placeholder: 'Minimum Word Length',\r\n type: 'number',\r\n tooltip: 'The minimum amount of words that can be added to this field.',\r\n input: true\r\n },\r\n {\r\n weight: 126,\r\n key: 'validate.maxWords',\r\n label: 'Maximum Word Length',\r\n placeholder: 'Maximum Word Length',\r\n type: 'number',\r\n tooltip: 'The maximum amount of words that can be added to this field.',\r\n input: true\r\n },\r\n {\r\n weight: 130,\r\n key: 'validate.pattern',\r\n label: 'Regular Expression Pattern',\r\n placeholder: 'Regular Expression Pattern',\r\n type: 'textfield',\r\n tooltip: 'The regular expression pattern test that the field value must pass before the form can be submitted.',\r\n input: true\r\n },\r\n\r\n {\r\n weight: 200,\r\n key: 'validate.customMessage',\r\n label: 'Custom Error Message',\r\n placeholder: 'Custom Error Message',\r\n type: 'textfield',\r\n tooltip: 'Error message displayed if any error occurred.',\r\n input: true\r\n },\r\n {\r\n type: 'panel',\r\n title: 'Custom Validation',\r\n collapsible: true,\r\n collapsed: true,\r\n style: {\r\n 'margin-bottom': '10px'\r\n },\r\n key: 'custom-validation-js',\r\n weight: 300,\r\n components: [\r\n {\r\n type: 'htmlelement',\r\n tag: 'div',\r\n content: '<p>The following variables are available in all scripts.</p><table class=\"table table-bordered table-condensed table-striped\"><tr><th>input</th><td>The value that was input into this component</td></tr><tr><th>form</th><td>The complete form JSON object</td></tr><tr><th>submission</th><td>The complete submission object.</td></tr><tr><th>data</th><td>The complete submission data object.</td></tr><tr><th>row</th><td>Contextual \"row\" data, used within DataGrid, EditGrid, and Container components</td></tr><tr><th>component</th><td>The current component JSON</td></tr><tr><th>instance</th><td>The current component instance.</td></tr><tr><th>value</th><td>The current value of the component.</td></tr><tr><th>moment</th><td>The moment.js library for date manipulation.</td></tr><tr><th>_</th><td>An instance of <a href=\"https://lodash.com/docs/\" target=\"_blank\">Lodash</a>.</td></tr><tr><th>utils</th><td>An instance of the <a href=\"http://formio.github.io/formio.js/docs/identifiers.html#utils\" target=\"_blank\">FormioUtils</a> object.</td></tr><tr><th>util</th><td>An alias for \"utils\".</td></tr></table><br/>'\r\n },\r\n {\r\n type: 'textarea',\r\n key: 'validate.custom',\r\n rows: 5,\r\n editor: 'ace',\r\n hideLabel: true,\r\n as: 'javascript',\r\n input: true\r\n },\r\n {\r\n type: 'htmlelement',\r\n tag: 'div',\r\n content: '\\n <small>\\n <p>Enter custom validation code.</p>\\n <p>You must assign the <strong>valid</strong> variable as either <strong>true</strong> or an error message if validation fails.</p>\\n <h5>Example:</h5>\\n <pre>valid = (input === \\'Joe\\') ? true : \\'Your name must be \"Joe\"\\';</pre>\\n </small>'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'panel',\r\n title: 'JSONLogic Validation',\r\n collapsible: true,\r\n collapsed: true,\r\n key: 'json-validation-json',\r\n weight: 400,\r\n components: [\r\n {\r\n type: 'htmlelement',\r\n tag: 'div',\r\n content: '<p>Execute custom logic using <a href=\"http://jsonlogic.com/\" target=\"_blank\">JSONLogic</a>.</p><h5>Example:</h5><pre>{\\n \"if\": [\\n {\\n \"===\": [\\n {\\n \"var\": \"input\"\\n },\\n \"Bob\"\\n ]\\n },\\n true,\\n \"Your name must be \\'Bob\\'!\"\\n ]\\n}</pre>'\r\n },\r\n {\r\n type: 'textarea',\r\n key: 'validate.json',\r\n hideLabel: true,\r\n rows: 5,\r\n editor: 'ace',\r\n as: 'json',\r\n input: true\r\n }\r\n ]\r\n }\r\n];\r\nexport const baseConditional = [\r\n {\r\n type: 'panel',\r\n title: 'Simple',\r\n key: 'simple-conditional',\r\n theme: 'default',\r\n components: [\r\n {\r\n type: 'select',\r\n input: true,\r\n label: 'This component should Display:',\r\n key: 'conditional.show',\r\n dataSrc: 'values',\r\n data: {\r\n values: [\r\n {\r\n label: 'True',\r\n value: 'true'\r\n },\r\n {\r\n label: 'False',\r\n value: 'false'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n type: 'select',\r\n input: true,\r\n label: 'When the form component:',\r\n key: 'conditional.when',\r\n dataSrc: 'custom',\r\n valueProperty: 'value',\r\n data: {}\r\n },\r\n {\r\n type: 'textfield',\r\n input: true,\r\n label: 'Has the value:',\r\n key: 'conditional.eq'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'panel',\r\n title: 'Advanced Conditions',\r\n theme: 'default',\r\n collapsible: true,\r\n collapsed: true,\r\n key: 'customConditionalPanel',\r\n weight: 110,\r\n components: [\r\n {\r\n type: 'htmlelement',\r\n tag: 'div',\r\n content: '<p>The following variables are available in all scripts.</p><table class=\"table table-bordered table-condensed table-striped\"><tr><th>form</th><td>The complete form JSON object</td></tr><tr><th>submission</th><td>The complete submission object.</td></tr><tr><th>data</th><td>The complete submission data object.</td></tr><tr><th>row</th><td>Contextual \"row\" data, used within DataGrid, EditGrid, and Container components</td></tr><tr><th>component</th><td>The current component JSON</td></tr><tr><th>instance</th><td>The current component instance.</td></tr><tr><th>value</th><td>The current value of the component.</td></tr><tr><th>moment</th><td>The moment.js library for date manipulation.</td></tr><tr><th>_</th><td>An instance of <a href=\"https://lodash.com/docs/\" target=\"_blank\">Lodash</a>.</td></tr><tr><th>utils</th><td>An instance of the <a href=\"http://formio.github.io/formio.js/docs/identifiers.html#utils\" target=\"_blank\">FormioUtils</a> object.</td></tr><tr><th>util</th><td>An alias for \"utils\".</td></tr></table><br/>'\r\n },\r\n {\r\n type: 'panel',\r\n title: 'JavaScript',\r\n collapsible: true,\r\n collapsed: false,\r\n style: {\r\n 'margin-bottom': '10px'\r\n },\r\n key: 'customConditional-js',\r\n components: [\r\n {\r\n type: 'textarea',\r\n key: 'customConditional',\r\n rows: 5,\r\n editor: 'ace',\r\n hideLabel: true,\r\n as: 'javascript',\r\n input: true\r\n },\r\n {\r\n type: 'htmlelement',\r\n tag: 'div',\r\n content: '<p>Enter custom javascript code.</p><p>You must assign the <strong>show</strong> variable a boolean result.</p><p><strong>Note: Advanced Conditional logic will override the results of the Simple Conditional logic.</strong></p><h5>Example</h5><pre>show = !!data.showMe;</pre>'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'panel',\r\n title: 'JSONLogic',\r\n collapsible: true,\r\n collapsed: true,\r\n key: 'customConditional-json',\r\n components: [\r\n {\r\n type: 'htmlelement',\r\n tag: 'div',\r\n content: '<p>Execute custom logic using <a href=\"http://jsonlogic.com/\" target=\"_blank\">JSONLogic</a>.</p><p>Full <a href=\"https://lodash.com/docs\" target=\"_blank\">Lodash</a> support is provided using an \"_\" before each operation, such as <code>{\"_sum\": {var: \"data.a\"}}</code></p><p><a href=\"http://formio.github.io/formio.js/app/examples/conditions.html\" target=\"_blank\">Click here for an example</a></p>'\r\n },\r\n {\r\n type: 'textarea',\r\n key: 'conditional.json',\r\n rows: 5,\r\n editor: 'ace',\r\n hideLabel: true,\r\n as: 'json',\r\n input: true\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\nconst sortAndFilterComponents = (components) => {\r\n return filter(sortBy(components, 'weight'), (item) => !item.ignore);\r\n};\r\nconst unifyComponents = (objValue, srcValue) => {\r\n if (objValue.key && srcValue.key) {\r\n if (objValue.skipMerge || srcValue.skipMerge) {\r\n return false;\r\n }\r\n if (objValue.key === srcValue.key) {\r\n // Create complete objects by including missing keys.\r\n each(objValue, (value, prop) => {\r\n if (objValue.overrideEditForm || !srcValue.hasOwnProperty(prop)) {\r\n srcValue[prop] = value;\r\n }\r\n });\r\n each(srcValue, (value, prop) => {\r\n if (srcValue.overrideEditForm || !objValue.hasOwnProperty(prop)) {\r\n objValue[prop] = value;\r\n }\r\n });\r\n\r\n if (objValue.components) {\r\n srcValue.components = sortAndFilterComponents(\r\n unionWith(objValue.components, srcValue.components, unifyComponents)\r\n );\r\n }\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n return isEqual(objValue, srcValue);\r\n};\r\nexport const baseEditForm = (...extend) => {\r\n\r\n const components = cloneDeep([\r\n {\r\n type: 'tabs',\r\n key: 'tabs',\r\n components: [{\r\n key: 'display',\r\n components: baseDisplay,\r\n label: 'Display',\r\n weight: 0\r\n },\r\n {\r\n key: 'data',\r\n components: baseData,\r\n label: 'Data',\r\n weight: 10\r\n },\r\n {\r\n key: 'validation',\r\n components: baseValidation,\r\n label: 'Validation',\r\n weight: 20\r\n },\r\n {\r\n label: 'Conditional',\r\n key: 'conditional',\r\n weight: 40,\r\n components: baseConditional\r\n }\r\n ]\r\n }\r\n ]).concat(extend.map((items) => ({\r\n type: 'tabs',\r\n key: 'tabs',\r\n components: cloneDeep(items),\r\n })));\r\n return {\r\n components: unionWith(components, unifyComponents).concat({\r\n type: 'hidden',\r\n key: 'type'\r\n })\r\n };\r\n};\r\n","import {\r\n Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, ViewChild, ViewEncapsulation\r\n} from '@angular/core';\r\nimport { Components, FormBuilderComponent } from 'angular-formio';\r\nimport { Utils } from 'formiojs';\r\nimport { cloneDeep } from 'lodash';\r\nimport { baseEditForm } from '../form-wrappers/base-edit-form/base-edit-form';\r\n@Component({\r\n selector: 'app-dynamic-form-builder',\r\n templateUrl: './dynamic-form-builder.component.html',\r\n styleUrls: ['./dynamic-form-builder.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DynamicFormBuilderComponent implements OnChanges, OnInit {\r\n @ViewChild('json') jsonElement?: ElementRef;\r\n @Input()\r\n form: any = {};\r\n @Input()\r\n builder: any = {};\r\n @Input()\r\n builderComponents = {};\r\n @Output()\r\n formUpdated = new EventEmitter();\r\n saving = false;\r\n @ViewChild(FormBuilderComponent, { static: false }) FormBuilderComponent: FormBuilderComponent;\r\n builderOptions = {\r\n noDefaultSubmitButton: true,\r\n builder: {\r\n basic: false,\r\n advanced: false,\r\n data: false,\r\n premium: false,\r\n layout: {\r\n components: {\r\n htmlelement: false,\r\n content: false\r\n }\r\n },\r\n customBasic: {\r\n title: 'Basic Components',\r\n default: true,\r\n weight: 0,\r\n components: {}\r\n }\r\n },\r\n editForm: {\r\n textfield: [\r\n\r\n {\r\n key: 'api',\r\n ignore: true\r\n },\r\n {\r\n key: 'logic',\r\n ignore: true\r\n },\r\n {\r\n key: 'layout',\r\n ignore: true\r\n }\r\n ],\r\n number: [\r\n {\r\n key: 'display'\r\n },\r\n {\r\n key: 'api',\r\n ignore: true\r\n },\r\n {\r\n key: 'logic',\r\n ignore: true\r\n },\r\n {\r\n key: 'layout',\r\n ignore: true\r\n }\r\n ]\r\n }\r\n };\r\n refresher = new EventEmitter();\r\n deletedComponents = {};\r\n // tslint:disable-next-line:variable-name\r\n private _form: any = {};\r\n\r\n constructor() {\r\n const numberEditForm = Components.components.number.editForm();\r\n const textEditForm = Components.components.textfield.editForm();\r\n textEditForm.components[0].components[1].components = textEditForm.components[0].components[1].components.filter(item => !['persistent', 'protected', 'dbIndex', 'encrypted', 'calculateServer'].includes(item.key));\r\n numberEditForm.components[0].components[1].components = numberEditForm.components[0].components[1].components.filter(item => !['persistent', 'protected', 'dbIndex', 'encrypted', 'calculateServer'].includes(item.key));\r\n Components.components.textfield.editForm = () =>\r\n baseEditForm([textEditForm.components[0].components[1]]);\r\n Components.components.number.editForm = () =>\r\n baseEditForm([numberEditForm.components[0].components[1]]);\r\n this._form = this.form;\r\n }\r\n ngOnInit() {\r\n\r\n }\r\n ngOnChanges(changes) {\r\n if (changes.form || changes.builderComponents) {\r\n if (this.form.components) {\r\n Utils.eachComponent(this.form.components, (comp) => {\r\n if (this.builderComponents[comp.key]) {\r\n this.deletedComponents[comp.key] = cloneDeep(this.builderComponents[comp.key]);\r\n delete this.builderComponents[comp.key];\r\n } else if (Object.keys(this.builderComponents).length) {\r\n Utils.findComponent(this.form.components, comp.key, null, (found, path) => {\r\n Utils.removeComponent(this.form.components, path);\r\n this._form = cloneDeep(this.form);\r\n });\r\n }\r\n });\r\n }\r\n this.builderOptions.builder.customBasic.components = cloneDeep(this.builderComponents);\r\n\r\n\r\n this.refresher.next();\r\n }\r\n }\r\n save() {\r\n this.saving = true;\r\n this.form = cloneDeep(this._form);\r\n this.formUpdated.next(this.form);\r\n setTimeout(() => {\r\n this.saving = false;\r\n }, 500);\r\n }\r\n onChange(event: any) {\r\n this.handleComponentChange(event.component, event.type);\r\n\r\n if (['addComponent', 'saveComponent', 'deleteComponent'].indexOf(event.type) > -1) {\r\n this._form = cloneDeep(event.form);\r\n }\r\n\r\n }\r\n\r\n handleComponentChange(component, eventType): void {\r\n if (component.fixedKey) {\r\n component.key = component.fixedKey;\r\n if (component.fixedKey && this.builderOptions.builder.customBasic.components[component.fixedKey] && eventType === 'addComponent') {\r\n this.deletedComponents[component.fixedKey] =\r\n { ...this.builderOptions.builder.customBasic.components[component.fixedKey] };\r\n this.builderOptions.builder.customBasic.components[component.fixedKey] = false;\r\n }\r\n if (component.fixedKey && this.deletedComponents[component.fixedKey] && eventType === 'deleteComponent') {\r\n this.builderOptions.builder.customBasic.components[component.fixedKey] =\r\n { ... this.deletedComponents[component.fixedKey] };\r\n delete this.deletedComponents[component.fixedKey];\r\n }\r\n this.refresher.next();\r\n\r\n } else {\r\n Utils.eachComponent([component], (comp) => {\r\n this.handleComponentChange(comp, eventType);\r\n });\r\n }\r\n }\r\n\r\n\r\n}\r\n","<div class=\"container-fluid\" dir=\"ltr\">\r\n <form-builder [form]=\"form\" [options]=\"builderOptions\" [rebuild]=\"refresher\" (change)=\"onChange($event)\"></form-builder>\r\n <!-- <button class=\"save-form\" (click)=\"save()\">SAVE</button> -->\r\n <div class=\"mx-2 save-form\">\r\n <cts-button\r\n [loading]=\"saving\"\r\n [theme]=\"'primary'\"\r\n [size]=\"'regular'\"\r\n (onClick)=\"save()\"\r\n \r\n >\r\n {{ \"BUTTONS.SAVE\" | translate }}\r\n </cts-button>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n Input,\r\n Optional,\r\n Self,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n NgControl,\r\n} from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n/**\r\n * A checkbox input that can be used inside reactive or template driven forms\r\n * @title\r\n * Checkbox\r\n * @example\r\n * <cts-dynamic-form-checkbox-item\r\n * [label]=\"'test slide'\"\r\n * formControlName=\"checkbox\"\r\n * ></cts-dynamic-form-checkbox-item>\r\n */\r\n@Component({\r\n selector: 'cts-dynamic-form-checkbox-item',\r\n templateUrl: './dynamic-form-checkbox-item.component.html',\r\n styleUrls: ['./dynamic-form-checkbox-item.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DynamicFormCheckboxItemComponent implements ControlValueAccessor {\r\n value;\r\n /** Input Label */\r\n @Input()\r\n label;\r\n /** set input to disabled */\r\n @Input()\r\n disabled: boolean = false;\r\n /** is checkbox checked */\r\n @Input()\r\n checked: boolean = false;\r\n onChange: any = () => { };\r\n onTouched: any = () => { };\r\n constructor(\r\n public translate: TranslateService,\r\n @Self() @Optional() private control: NgControl\r\n ) {\r\n this.control.valueAccessor = this;\r\n }\r\n writeValue(obj: boolean): void {\r\n this.value = obj;\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n isRequired() {\r\n if (!this.control.control.validator) {\r\n return false;\r\n }\r\n\r\n const validator = this.control.control.validator({} as AbstractControl);\r\n return validator && validator.required;\r\n }\r\n setValue(event) {\r\n this.onChange(event.target.checked);\r\n }\r\n}\r\n","<div class=\"checkbox-container\">\r\n <input\r\n [checked]=\"checked\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"value\"\r\n (change)=\"setValue($event)\"\r\n type=\"checkbox\"\r\n />\r\n <label class=\"checkbox-lable\">{{ label | translate }}</label>\r\n</div>\r\n","import { Component, Input, OnDestroy, OnInit, Optional, Self, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, NgControl } from '@angular/forms';\r\nimport { DateAdapter } from '@angular/material/core';\r\nimport { OWL_DATE_TIME_FORMATS } from '@busacca/ng-pick-datetime';\r\nimport { MatDatetimepicker } from '@mat-datetimepicker/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Moment } from 'moment';\r\nimport moment from 'moment-es6';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { UserPreferencesService, UserPreferenceValues } from '../../../../Core/services/user/user-preferences.service';\r\nimport { MomentDateAdapter } from '../../../../Core/utilities/moment-date-adapter';\r\nimport { DynamicFormDateItemModel } from '../../models/dynamic-form.models';\r\nimport { DynamicFormUpdateService } from '../../services/dynamic-form-update.service';\r\n\r\nexport const MY_MOMENT_FORMATS = {\r\n parseInput: 'l LT',\r\n fullPickerInput: 'l LT',\r\n datePickerInput: 'l',\r\n timePickerInput: 'LT',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n};\r\n/** @ignore */\r\n@Component({\r\n providers: [\r\n { provide: OWL_DATE_TIME_FORMATS, useValue: MY_MOMENT_FORMATS }\r\n ],\r\n selector: 'app-dynamic-form-dateitem',\r\n templateUrl: './dynamic-form-dateitem.component.html',\r\n styleUrls: ['./dynamic-form-dateitem.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n\r\n})\r\nexport class DynamicFormDateItemComponent implements OnInit, OnDestroy, ControlValueAccessor {\r\n\r\n\r\n @Input()\r\n label;\r\n\r\n @Input()\r\n disabled = false;\r\n\r\n inEdit = false;\r\n editedValue: string;\r\n errorMessages: string[];\r\n valueSeparator: string;\r\n @Input()\r\n property: DynamicFormDateItemModel;\r\n\r\n @Input()\r\n editable: boolean = true;\r\n\r\n @Input()\r\n displayEmpty: boolean = true;\r\n\r\n @Input()\r\n min = null;\r\n @Input()\r\n max = null;\r\n @Input()\r\n startAt = null;\r\n\r\n @Input()\r\n displayClearAction: boolean = true;\r\n @Input() pickerType: string = 'both';\r\n @Input() selectMode: string = 'single';\r\n @ViewChild('datetimePicker')\r\n public datepicker: MatDatetimepicker<any>;\r\n\r\n valueDate;\r\n dateFormat: string;\r\n @Input() isfilter= false; // showed error when building lib that this property is not exist \r\n @Input() placeholder= ''; // showed error when building lib that this property is not exist \r\n private onDestroy$ = new Subject<boolean>();\r\n\r\n constructor(\r\n private dynamicFormUpdateService: DynamicFormUpdateService,\r\n private dateAdapter: DateAdapter<Moment>,\r\n private userPreferencesService: UserPreferencesService,\r\n public translate: TranslateService,\r\n @Self() @Optional() public control: NgControl\r\n\r\n ) {\r\n this.control.valueAccessor = this;\r\n this.dateFormat = 'mediumDate';\r\n }\r\n onChange: any = () => { };\r\n onTouched: any = () => { };\r\n\r\n isRequired() {\r\n if (!this.control.control.validator) {\r\n return false;\r\n }\r\n\r\n const validator = this.control.control.validator({} as AbstractControl);\r\n return (validator && validator.required);\r\n }\r\n writeValue(obj: any): void {\r\n if (this.selectMode === 'single') {\r\n this.valueDate = moment(obj);\r\n } else {\r\n this.valueDate = obj;\r\n }\r\n\r\n // this.property.value = obj;\r\n\r\n // throw new Error('Method not implemented.');\r\n }\r\n public get invalid(): boolean {\r\n return this.control ? this.control.invalid : false;\r\n }\r\n\r\n public get showError(): boolean {\r\n if (!this.control) {\r\n return false;\r\n }\r\n\r\n const { dirty, touched } = this.control;\r\n\r\n return this.invalid ? (dirty || touched) : false;\r\n }\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n hasErrors(): boolean {\r\n return this.showError;\r\n }\r\n\r\n ngOnInit() {\r\n this.userPreferencesService\r\n .select(UserPreferenceValues.Locale)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(locale => {\r\n // this.dateAdapter.setLocale(locale);\r\n // this.property.locale = locale;\r\n });\r\n\r\n (<MomentDateAdapter>this.dateAdapter).overrideDisplayFormat = 'DD/MM/YYYY';\r\n\r\n /* if (this.property.value) {\r\n this.valueDate = moment(this.property.value);\r\n } */\r\n }\r\n\r\n ngOnDestroy() {\r\n this.onDestroy$.next(true);\r\n this.onDestroy$.complete();\r\n }\r\n\r\n showProperty(): boolean {\r\n return this.displayEmpty || !this.property.isEmpty();\r\n }\r\n\r\n showClearAction(): boolean {\r\n return (\r\n this.displayClearAction &&\r\n (!this.property.isEmpty() || !!this.property.default)\r\n );\r\n }\r\n\r\n isEditable(): boolean {\r\n return this.editable;\r\n }\r\n isDisabled(): boolean {\r\n return this.disabled;\r\n }\r\n showDatePicker() {\r\n this.datepicker.open();\r\n }\r\n\r\n onDateChanged(newDateValue) {\r\n if (this.valueDate) {\r\n if (this.selectMode === 'single') {\r\n const momentDate = moment(this.valueDate, this.dateFormat, true);\r\n if (momentDate.isValid()) {\r\n //this.property.value = momentDate.toDate();\r\n this.onChange(momentDate.toDate());\r\n this.onTouched();\r\n // this.dynamicFormUpdateService.update(this.property, momentDate.toDate());\r\n }\r\n } else {\r\n this.onChange(this.valueDate);\r\n this.onTouched();\r\n }\r\n\r\n } else {\r\n this.onChange(null);\r\n this.onTouched();\r\n }\r\n }\r\n\r\n onDateClear() {\r\n this.valueDate = null;\r\n this.onChange(this.valueDate);\r\n this.onTouched();\r\n // this.dynamicFormUpdateService.update(this.property, null);\r\n //this.property.value = null;\r\n this.property.default = null;\r\n }\r\n}\r\n","<div class=\"app-property-value\">\r\n <div class=\"app-input-wrapper\">\r\n <ng-container *ngIf=\"label\">\r\n <label class=\"\" for=\"formGroupInputSmall\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger m-1\">*</span>\r\n </label>\r\n </ng-container>\r\n <div class=\"input-container\">\r\n <ng-container *ngIf=\"isEditable(); else readOnly\">\r\n\r\n <button *ngIf=\"!isfilter\" type=\"button\" class=\"claendar-icon\" [owlDateTimeTrigger]=\"dt3\">\r\n <i class=\"bi bi-calendar-week icon\"></i> </button>\r\n <input\r\n class=\"form-control\"\r\n [disabled]=\"isDisabled() || null\"\r\n (blur)=\"onTouched($event)\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [selectMode]=\"selectMode\"\r\n [required]=\"isRequired\"\r\n [(ngModel)]=\"valueDate\"\r\n (ngModelChange)=\"onDateChanged($event)\"\r\n autocomplete=\"false\"\r\n [owlDateTimeTrigger]=\"dt3\"\r\n [owlDateTime]=\"dt3\"\r\n placeholder=\"{{ placeholder }}\"\r\n />\r\n <button type=\"button\" *ngIf=\"valueDate\" (click)=\"onDateClear()\" class=\"relative mx-1 clear-date-btn\"\r\n [ngClass]=\"{'d-none': isDisabled()}\">\r\n <i class=\"clear-date-icon material-icons flex mr-1\">&#xE14C;</i>\r\n </button>\r\n <owl-date-time\r\n [startAt]=\"startAt\"\r\n [pickerType]=\"pickerType\"\r\n #dt3\r\n ></owl-date-time>\r\n\r\n <mat-error\r\n [attr.data-automation-id]=\"'card-textitem-error-'\"\r\n class=\"app-textitem-editable-error\"\r\n *ngIf=\"hasErrors()\"\r\n >\r\n <ul>\r\n <li *ngIf=\"control.errors.required\">\r\n {{ \"VALIDATORS.REQUIRED\" | translate }}\r\n </li>\r\n </ul>\r\n </mat-error>\r\n </ng-container>\r\n <ng-template #readOnly>\r\n {{ valueDate | date }}\r\n </ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { DateTimeAdapter, OwlDateTimeIntl } from '@busacca/ng-pick-datetime';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { UserPreferencesService } from '../../../../Core/services/user/user-preferences.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class owlDateTimeIntl extends OwlDateTimeIntl {\r\n cancelBtnLabel = 'Cancel';\r\n setBtnLabel = 'Set';\r\n\r\n private currentLang;\r\n\r\n /** A label for the up second button (used by screen readers). */\r\n upSecondLabel = 'Add a second';\r\n\r\n /** A label for the down second button (used by screen readers). */\r\n downSecondLabel = 'Minus a second';\r\n\r\n /** A label for the up minute button (used by screen readers). */\r\n upMinuteLabel = 'Add a minute';\r\n\r\n /** A label for the down minute button (used by screen readers). */\r\n downMinuteLabel = 'Minus a minute';\r\n\r\n /** A label for the up hour button (used by screen readers). */\r\n upHourLabel = 'Add a hour';\r\n\r\n /** A label for the down hour button (used by screen readers). */\r\n downHourLabel = 'Minus a hour';\r\n\r\n /** A label for the previous month button (used by screen readers). */\r\n prevMonthLabel = 'Previous month';\r\n\r\n /** A label for the next month button (used by screen readers). */\r\n nextMonthLabel = 'Next month';\r\n\r\n /** A label for the previous year button (used by screen readers). */\r\n prevYearLabel = 'Previous year';\r\n\r\n /** A label for the next year button (used by screen readers). */\r\n nextYearLabel = 'Next year';\r\n\r\n /** A label for the previous multi-year button (used by screen readers). */\r\n prevMultiYearLabel = 'Previous 21 years';\r\n\r\n /** A label for the next multi-year button (used by screen readers). */\r\n nextMultiYearLabel = 'Next 21 years';\r\n\r\n /** A label for the 'switch to month view' button (used by screen readers). */\r\n switchToMonthViewLabel = 'Change to month view';\r\n\r\n /** A label for the 'switch to year view' button (used by screen readers). */\r\n switchToMultiYearViewLabel = 'Choose month and year';\r\n\r\n /** A label for the range 'from' in picker info */\r\n rangeFromLabel = 'From';\r\n\r\n /** A label for the range 'to' in picker info */\r\n rangeToLabel = 'To';\r\n\r\n /** A label for the hour12 button (AM) */\r\n hour12AMLabel = 'AM';\r\n\r\n /** A label for the hour12 button (PM) */\r\n hour12PMLabel = 'PM';\r\n\r\n constructor(\r\n private translate: TranslateService,\r\n private userPreference: UserPreferencesService,\r\n private dateTimeAdapter: DateTimeAdapter<any>\r\n ) {\r\n super();\r\n this.getLang();\r\n this.translate.onLangChange.subscribe((lang) => {\r\n this.getLang();\r\n });\r\n }\r\n\r\n public getLang() {\r\n this.currentLang = this.userPreference.locale;\r\n this.dateTimeAdapter.setLocale(this.currentLang);\r\n const properties = Object.getOwnPropertyNames(this);\r\n properties.forEach((property) => {\r\n if (typeof this[property] !== 'string') {\r\n return;\r\n }\r\n this.translate.get('DATETIME_OWL.' + property).subscribe((text) => {\r\n this[property] = text;\r\n });\r\n });\r\n }\r\n}\r\n","export class DepartmentConstants {\r\n public static fields = {\r\n title: 'dc:title',\r\n description: 'dc:description',\r\n agencyCode: 'dept:agencyCode',\r\n arabicName: 'dept:arabicName',\r\n englishName: 'dept:englishName',\r\n deptTypee: 'dept:deptTypee',\r\n isAllowRecExternal: 'dept:isAllowRecExternal',\r\n manager: 'dept:manager',\r\n };\r\n}\r\n","import { EventEmitter, Inject, Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { TreeviewItem } from 'ngx-treeview';\r\nimport { from, Observable, Subject } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { AdapterService } from '../../../../../Core/adapters/adapter.service';\r\nimport { CallApiService } from '../../../../../Core/services/callApi/call-api.service';\r\nimport { NuxeoService } from '../../../../../Core/services/nuxeo/nuxeo.service';\r\nimport { TranslationService } from '../../../../../Core/services/translation/translation.service';\r\nimport { DepartmentConstants } from '../constants/department';\r\nimport { Cacheable, CacheBuster, LocalStorageStrategy } from 'ts-cacheable';\r\nexport const departmentCacheBuster$ = new Subject<void>();\r\nexport const minute = 60000;\r\n/** @ignore */\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DepartmentApiService {\r\n arabic;\r\n constructor(\r\n private CallApiService: CallApiService,\r\n private translation: TranslationService,\r\n private nuxeoService: NuxeoService,\r\n private adapter: AdapterService, \r\n @Inject('environment') private environment\r\n ) {\r\n this.translation.isArabic.subscribe((res) => {\r\n this.arabic = res;\r\n });\r\n }\r\n\r\n @Cacheable({\r\n cacheBusterObserver: departmentCacheBuster$,\r\n storageStrategy: LocalStorageStrategy,\r\n maxAge: 60 * minute,\r\n })\r\n getDepartmentTree(): Observable<any> {\r\n return this.CallApiService.query(\r\n {\r\n pageProvider: 'PP_Department',\r\n currentPageIndex: 0,\r\n offset: 0,\r\n pageSize: 40,\r\n quickFilters: 'Parent Dept',\r\n },\r\n {\r\n headers: {\r\n 'X-NXproperties': '*',\r\n 'enrichers-document': 'children',\r\n depth: 'max',\r\n },\r\n }\r\n );\r\n }\r\n\r\n @Cacheable({\r\n maxCacheCount: 200,\r\n storageStrategy: LocalStorageStrategy,\r\n cacheBusterObserver: departmentCacheBuster$,\r\n maxAge: 120 * minute,\r\n })\r\n getDepartmentDetails(code){\r\n return this.CallApiService.query(\r\n {\r\n pageProvider: 'PP_Department_With_ElasticSearch',\r\n currentPageIndex: 0,\r\n offset: 0,\r\n pageSize: 40,\r\n dublincore_title: code,\r\n },\r\n {\r\n headers: {\r\n 'X-NXproperties': '*',\r\n 'enrichers-document': 'children',\r\n depth: 'max',\r\n },\r\n }\r\n );\r\n }\r\n\r\n @Cacheable({\r\n maxCacheCount: 200,\r\n cacheBusterObserver: departmentCacheBuster$,\r\n storageStrategy: LocalStorageStrategy,\r\n maxAge: 60 * minute,\r\n })\r\n getDepartmentNestedTree(code): Observable<any> {\r\n return this.CallApiService.query(\r\n {\r\n pageProvider: 'PP_Department',\r\n currentPageIndex: 0,\r\n offset: 0,\r\n pageSize: 40,\r\n department_parentDepartmentCode: code,\r\n },\r\n {\r\n headers: {\r\n 'X-NXproperties': '*',\r\n 'enrichers-document': 'children',\r\n depth: 'max',\r\n },\r\n }\r\n );\r\n }\r\n\r\n getDepartment(uid) {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .repository()\r\n .headers({\r\n 'X-NXproperties': '*',\r\n })\r\n .fetch(uid)\r\n ).pipe(\r\n map((data: any) => {\r\n return this.adapter.adaptIn(data, DepartmentConstants.fields);\r\n }),\r\n catchError((err) => {\r\n throw err;\r\n })\r\n );\r\n }\r\n // testing\r\n @CacheBuster({\r\n cacheBusterNotifier: departmentCacheBuster$,\r\n })\r\n createDepartment(Department, parentId) {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation('AC_UA_Depatrment_Create', {\r\n url: `${this.environment.nuxeo}${this.environment.customAutomation}`,\r\n })\r\n .input(parentId)\r\n .context({\r\n department: this.adapter.adaptOut(\r\n Department,\r\n DepartmentConstants.fields\r\n ),\r\n })\r\n .execute()\r\n ).pipe(\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n\r\n @CacheBuster({\r\n cacheBusterNotifier: departmentCacheBuster$,\r\n })\r\n createDepartmentInRoot(Department) {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation('AC_UA_Depatrment_Create_InRoot', {\r\n url: `${this.environment.nuxeo}${this.environment.customAutomation}`,\r\n })\r\n .context({\r\n department: this.adapter.adaptOut(\r\n Department,\r\n DepartmentConstants.fields\r\n ),\r\n })\r\n .execute()\r\n ).pipe(\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n @CacheBuster({\r\n cacheBusterNotifier: departmentCacheBuster$,\r\n })\r\n updateDepartment(Department, departmentId) {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation('AC_UA_Department_Update', {\r\n url: `${this.environment.nuxeo}${this.environment.customAutomation}`,\r\n })\r\n .input(departmentId)\r\n .context({\r\n department: this.adapter.adaptOut(\r\n Department,\r\n DepartmentConstants.fields\r\n ),\r\n })\r\n .execute()\r\n ).pipe(\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n recursiveFill(\r\n entries,\r\n level = 0,\r\n treeview = true,\r\n collapsed = true\r\n ): TreeviewItem[] {\r\n return entries.map((item) => {\r\n let treeViewObj = treeview\r\n ? {\r\n text: this.arabic\r\n ? item.properties\r\n ? item.properties['dept:arabicName']\r\n : '--'\r\n : item.properties\r\n ? item.properties['dept:englishName']\r\n : '--',\r\n value: { ...item, level },\r\n }\r\n : {\r\n text: this.arabic\r\n ? item.properties\r\n ? item.properties['dept:arabicName']\r\n : '--'\r\n : item.properties\r\n ? item.properties['dept:englishName']\r\n : '--',\r\n value: item.title,\r\n };\r\n const treeItem = new TreeviewItem({\r\n ...treeViewObj,\r\n collapsed: level >= 2 && collapsed ? true : false,\r\n });\r\n if (\r\n item.contextParameters &&\r\n item.contextParameters.children.entries.length\r\n ) {\r\n treeItem.children = this.recursiveFill(\r\n item.contextParameters.children.entries,\r\n level + 1\r\n );\r\n }\r\n return treeItem;\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n TreeviewItem,\r\n TreeviewSelection,\r\n DefaultTreeviewI18n,\r\n} from 'ngx-treeview';\r\nimport { TranslationService } from '../../../../Core/services/translation/translation.service';\r\n\r\n/** @ignore */\r\n@Injectable()\r\nexport class DropdownTreeviewSelectI18n extends DefaultTreeviewI18n {\r\n constructor(private translation: TranslationService) {\r\n super();\r\n }\r\n private internalSelectedItem: TreeviewItem;\r\n private internalSelectionLength: number;\r\n\r\n set selectedItem(value: TreeviewItem) {\r\n this.internalSelectedItem = value;\r\n }\r\n\r\n get selectedItem(): TreeviewItem {\r\n return this.internalSelectedItem;\r\n }\r\n\r\n // for multiple\r\n set selectionLength(value: number) {\r\n this.internalSelectionLength = value;\r\n }\r\n get selectionLength(): number {\r\n return this.internalSelectionLength;\r\n }\r\n getFilterPlaceholder(): string {\r\n let placeHolder;\r\n this.translation.isArabic.subscribe((arabic) => {\r\n arabic\r\n ? (placeHolder = 'أدخل رمز القسم للتصفية')\r\n : (placeHolder = 'Type Department Code To Filter ');\r\n });\r\n return placeHolder;\r\n }\r\n getText(selection: TreeviewSelection): string {\r\n let placeHolder;\r\n let suffix;\r\n this.translation.isArabic.subscribe((arabic) => {\r\n arabic\r\n ? (placeHolder = 'الرجاء إختيار القسم')\r\n : (placeHolder = 'Please select Department');\r\n\r\n arabic ? (suffix = 'أقسام مختارة') : (suffix = 'Departments Selected');\r\n });\r\n return this.internalSelectedItem\r\n ? this.internalSelectedItem.text\r\n : this.internalSelectionLength\r\n ? `${this.internalSelectionLength} ${suffix}`\r\n : placeHolder;\r\n }\r\n getFilterNoItemsFoundText(): string {\r\n let noItemText: string;\r\n this.translation.isArabic.subscribe((arabic) => {\r\n arabic\r\n ? (noItemText = 'لايوجد أقسام للعرض')\r\n : (noItemText = 'No Departments Found');\r\n });\r\n return noItemText;\r\n }\r\n}\r\n","import {\r\n trigger,\r\n state,\r\n style,\r\n transition,\r\n animate,\r\n} from '@angular/animations';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ToastrService, ToastPackage, Toast } from 'ngx-toastr';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport {\r\n UserPreferencesService,\r\n UserPreferenceValues,\r\n} from '../../../../Core/services/user/user-preferences.service';\r\nimport { ToastType } from '../../interfaces/toast-type.interface';\r\n\r\n@Component({\r\n selector: 'cts-custom-toastr',\r\n templateUrl: './custom-toastr.component.html',\r\n styleUrls: ['./custom-toastr.component.scss'],\r\n animations: [\r\n // the fade-in/fade-out animation.\r\n trigger('simpleFadeAnimation', [\r\n // the \"in\" style determines the \"resting\" state of the element when it is visible.\r\n state('in', style({ opacity: 1 })),\r\n\r\n // fade in when created. this could also be written as transition('void => *')\r\n transition(':enter', [style({ opacity: 0 }), animate(200)]),\r\n\r\n // fade out when destroyed. this could also be written as transition('void => *')\r\n transition(':leave', animate(400, style({ opacity: 0 }))),\r\n ]),\r\n ],\r\n})\r\nexport class CustomToastrComponent extends Toast implements OnInit {\r\n lang;\r\n type: ToastType;\r\n value:any\r\n private onDestroy$ = new Subject<boolean>();\r\n constructor(\r\n protected toastrService: ToastrService,\r\n public toastPackage: ToastPackage,\r\n private translate: TranslateService,\r\n public userPreferenceService?: UserPreferencesService\r\n ) {\r\n super(toastrService, toastPackage);\r\n }\r\n ngOnInit(): void {\r\n this.type = this.toastPackage.toastRef.componentInstance.type;\r\n this.value = this.toastPackage.toastRef.componentInstance.customMsg;\r\n if (this.userPreferenceService) {\r\n this.userPreferenceService\r\n .select(UserPreferenceValues.Locale)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((locale) => {\r\n this.lang = this.translate.currentLang === 'ar' ? 'rtl' : 'ltr';\r\n });\r\n }\r\n }\r\n setbBackgroundColor() {\r\n let classes = {\r\n success: this.type === 'success',\r\n error: this.type === 'error',\r\n notification: this.type === 'notification',\r\n };\r\n\r\n return classes;\r\n }\r\n setTextColor() {\r\n let classes = {\r\n 'msg-success': this.type === 'success',\r\n 'msg-error': this.type === 'error',\r\n 'msg-notification': this.type === 'notification',\r\n };\r\n return classes;\r\n }\r\n}\r\n","<div\r\n class=\"toast-container\"\r\n [style.display]=\"state.value === 'inactive' ? 'none' : ''\"\r\n [dir]=\"lang\"\r\n [@simpleFadeAnimation]=\"'in'\"\r\n>\r\n <div class=\"icon-container rounded-s-md\" [ngClass]=\"setbBackgroundColor()\">\r\n <ng-container [ngSwitch]=\"type\">\r\n <ng-container *ngSwitchCase=\"'success'\">\r\n <span class=\"bi bi-check2 toast-icon\"></span>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'error'\">\r\n <span class=\"bi bi-x toast-icon\"></span>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'notification'\">\r\n <span class=\"bi bi-bell-fill notification-icon\"></span>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"toast-content-container\">\r\n <div\r\n *ngIf=\"title\"\r\n [class]=\"options.titleClass\"\r\n [attr.aria-label]=\"title\"\r\n class=\"toast-content\"\r\n >\r\n {{ title | translate }}\r\n </div>\r\n <div\r\n *ngIf=\"message\"\r\n role=\"alert\"\r\n aria-live=\"polite\"\r\n [class]=\"options.messageClass\"\r\n [attr.aria-label]=\"message\"\r\n class=\"message\"\r\n [ngClass]=\"setTextColor()\"\r\n >\r\n {{ message | translate : { value:value } }}\r\n </div>\r\n </div>\r\n <div *ngIf=\"options.closeButton\" (click)=\"remove()\" class=\"remove\">\r\n <span style=\"font-size: 26px; color: gray\" aria-hidden=\"true\">&times;</span>\r\n </div>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { ActiveToast, IndividualConfig, ToastrService } from 'ngx-toastr';\r\nimport { CustomToastrComponent } from '../components/custom-toastr/custom-toastr.component';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport {\r\n UserPreferencesService,\r\n UserPreferenceValues,\r\n} from '../../../Core/services/user/user-preferences.service';\r\nimport { ToastType } from '../interfaces/toast-type.interface';\r\nimport { TranslationService } from '../../../Core/services/translation/translation.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CustomToastrService {\r\n private onDestroy$ = new Subject<boolean>();\r\n isArabic: boolean;\r\n constructor(\r\n private translation: TranslationService,\r\n private toastr: ToastrService,\r\n public userPreferenceService?: UserPreferencesService\r\n ) {\r\n this.setDirection();\r\n }\r\n setDirection(): void {\r\n this.translation.isArabic.subscribe((arabic) => {\r\n arabic\r\n ? (this.toastr.toastrConfig.positionClass = 'toast-bottom-left')\r\n : (this.toastr.toastrConfig.positionClass = 'toast-bottom-right');\r\n });\r\n }\r\n show(\r\n type: ToastType,\r\n title,\r\n message,\r\n customOptions?: Partial<IndividualConfig>,\r\n customMsg?\r\n ): ActiveToast<any> {\r\n const activeToast = this.toastr.show(message, title, {\r\n toastComponent: CustomToastrComponent,\r\n closeButton: true,\r\n timeOut: 5000,\r\n enableHtml: true,\r\n toastClass: '',\r\n ...customOptions,\r\n });\r\n activeToast.toastRef.componentInstance.type = type;\r\n activeToast.toastRef.componentInstance.customMsg = customMsg;\r\n return activeToast;\r\n }\r\n \r\n ngOnDestroy(): void {\r\n this.onDestroy$.unsubscribe();\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n OnChanges,\r\n Optional,\r\n Self,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n NgControl,\r\n} from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DynamicFormTextItemModel } from '../../models/dynamic-form.models';\r\nimport { DynamicFormUpdateService } from '../../services/dynamic-form-update.service';\r\n\r\n/**\r\n * A text field input that can be used inside reactive or template driven forms\r\n * @title\r\n * Text Field\r\n * @example\r\n * <app-dynamic-form-textitem\r\n * [horizontalAlign]=\"false\"\r\n * formControlName=\"controlName\"\r\n * [placeholder]=\"'PATH.TO.PLACEHOLDER.STRING'\"\r\n * ></app-dynamic-form-textitem>\r\n */\r\n\r\n@Component({\r\n selector: 'app-dynamic-form-textitem',\r\n templateUrl: './dynamic-form-textitem.component.html',\r\n styleUrls: ['./dynamic-form-textitem.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DynamicFormTextItemComponent\r\n implements OnChanges, ControlValueAccessor\r\n{\r\n static DEFAULT_SEPARATOR = ', ';\r\n\r\n @Input() autoComplete = false; // to get suggestions from backend when user type some letters\r\n @Input() autoComplete_pageProvider = '';\r\n @Input() autoComplete_propertyName = '';\r\n @Input() autoComplete_propertyKey = '';\r\n @Input() autoCompleteValueKey = '';\r\n\r\n /** input type */\r\n @Input()\r\n type = 'text';\r\n /** @deprecated */\r\n @Input()\r\n property: DynamicFormTextItemModel;\r\n /** Field Label */\r\n @Input()\r\n label;\r\n /** is Editable */\r\n @Input()\r\n editable = true;\r\n /** Placeholder string */\r\n @Input() placeholder = '';\r\n /** is disabled */\r\n @Input()\r\n disabled = false;\r\n /** @deprecated */\r\n @Input()\r\n displayEmpty = true;\r\n /** should prevent space */\r\n @Input()\r\n preventSpace = false;\r\n /** DOM element Id */\r\n @Input()\r\n id;\r\n\r\n @ViewChild('editorInput')\r\n private editorInput: any;\r\n\r\n inEdit = false;\r\n editedValue: string;\r\n errorMessages: string[];\r\n valueSeparator: string;\r\n showsuggestedOptions = false;\r\n\r\n constructor(\r\n private dynamicFormUpdateService: DynamicFormUpdateService,\r\n public translate: TranslateService,\r\n @Self() @Optional() public control: NgControl\r\n ) {\r\n this.control.valueAccessor = this;\r\n this.valueSeparator = DynamicFormTextItemComponent.DEFAULT_SEPARATOR;\r\n }\r\n onChange: any = () => {};\r\n onTouched: any = () => {};\r\n\r\n isRequired() {\r\n if (!this.control.control.validator) {\r\n return false;\r\n }\r\n\r\n const validator = this.control.control.validator({} as AbstractControl);\r\n return validator && validator.required;\r\n }\r\n writeValue(obj: any): void {\r\n this.editedValue = obj;\r\n //this.property.value = obj;\r\n\r\n // throw new Error('Method not implemented.');\r\n }\r\n public get invalid(): boolean {\r\n return this.control ? this.control.invalid : false;\r\n }\r\n\r\n public get showError(): boolean {\r\n if (!this.control) {\r\n return false;\r\n }\r\n\r\n const { dirty, touched } = this.control;\r\n\r\n return this.invalid ? dirty || touched : false;\r\n }\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n ngOnChanges(): void {\r\n /*this.editedValue = this.property.multiline\r\n ? this.property.displayValue\r\n : this.property.value;*/\r\n }\r\n\r\n showProperty(): boolean {\r\n return this.displayEmpty || !this.property.isEmpty();\r\n }\r\n\r\n showClickableIcon(): boolean {\r\n return this.hasIcon() && this.editable;\r\n }\r\n\r\n isEditable(): boolean {\r\n return this.editable;\r\n }\r\n isDisabled(): boolean {\r\n return this.disabled;\r\n }\r\n\r\n isClickable(): boolean {\r\n return !!this.property.clickable;\r\n }\r\n\r\n hasIcon(): boolean {\r\n return !!this.property.icon;\r\n }\r\n\r\n hasErrors(): boolean {\r\n return this.showError;\r\n }\r\n allowSpace(e) {\r\n if (this.preventSpace) {\r\n e.preventDefault();\r\n }\r\n }\r\n setEditMode(editStatus: boolean): void {\r\n this.inEdit = editStatus;\r\n setTimeout(() => {\r\n if (this.editorInput) {\r\n this.editorInput?.nativeElement?.click();\r\n }\r\n }, 0);\r\n }\r\n\r\n reset(event: MouseEvent | KeyboardEvent): void {\r\n // event.stopPropagation();\r\n\r\n /*this.editedValue = this.property.multiline\r\n ? this.property.displayValue\r\n : this.property.value;*/\r\n this.setEditMode(false);\r\n this.resetErrorMessages();\r\n }\r\n\r\n private resetErrorMessages() {\r\n this.errorMessages = [];\r\n }\r\n\r\n update(event: MouseEvent | KeyboardEvent): void {\r\n // event.stopPropagation();\r\n const updatedValue = this.prepareValueForUpload(\r\n this.property,\r\n this.editedValue\r\n );\r\n // this.property.value = updatedValue;\r\n this.onChange(updatedValue);\r\n this.onTouched();\r\n // this.dynamicFormUpdateService.update(this.property, updatedValue);\r\n this.setEditMode(false);\r\n this.resetErrorMessages();\r\n }\r\n\r\n prepareValueForUpload(\r\n property: DynamicFormTextItemModel,\r\n value: string\r\n ): string | string[] {\r\n return value;\r\n }\r\n\r\n onTextAreaInputChange() {\r\n this.errorMessages = this.property.getValidationErrors(this.editedValue);\r\n }\r\n\r\n clicked(): void {\r\n if (typeof this.property.clickCallBack === 'function') {\r\n this.property.clickCallBack();\r\n } else {\r\n this.dynamicFormUpdateService.clicked(this.property);\r\n }\r\n }\r\n\r\n selectItem(title) {\r\n this.editedValue = title;\r\n this.update(null);\r\n this.showsuggestedOptions = false;\r\n this.documentList = [];\r\n }\r\n\r\n documentList: any[] = [];\r\n delayedAction;\r\n waitUntilUserFinishTyping() {\r\n if (this.delayedAction) {\r\n clearTimeout(this.delayedAction);\r\n this.delayedAction = setTimeout(() => {\r\n this.onSearchInputChange();\r\n }, 1500);\r\n } else {\r\n this.delayedAction = setTimeout(() => {\r\n this.onSearchInputChange;\r\n }, 1500);\r\n }\r\n }\r\n\r\n onSearchInputChange() {\r\n if (this.autoComplete) {\r\n let val = this.editorInput.nativeElement.value;\r\n if (val?.length == 0) {\r\n return;\r\n }\r\n let params = {\r\n currentPageIndex: 0,\r\n offset: 0,\r\n pageSize: 40,\r\n pageProvider: this.autoComplete_pageProvider,\r\n };\r\n params[this.autoComplete_propertyName] = val;\r\n this.dynamicFormUpdateService\r\n .getTextBoxSuggestionResults(\r\n this.autoComplete_pageProvider,\r\n params,\r\n this.autoComplete_propertyKey,\r\n this.autoCompleteValueKey\r\n )\r\n .subscribe((data) => {\r\n this.documentList = data.filter((option) =>\r\n option.title.toLowerCase().includes(val.toLowerCase())\r\n );\r\n this.showsuggestedOptions = true;\r\n return this.documentList;\r\n });\r\n }\r\n }\r\n\r\n openOptions(value) {\r\n if (this.autoComplete) {\r\n this.showsuggestedOptions = value;\r\n }\r\n }\r\n}\r\n","<div class=\"app-property-value\">\r\n <div class=\"app-input-wrapper\">\r\n <label *ngIf=\"label\" for=\"formGroupInputSmall\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger m-1\">*</span></label\r\n >\r\n <div class=\"\">\r\n <ng-container *ngIf=\"isEditable(); else readOnly\">\r\n <div class=\"new-one\" (clickOutside)=\"openOptions(false)\">\r\n <input\r\n [id]=\"id\"\r\n [attr.disabled]=\"isDisabled() || null\"\r\n [type]=\"type\"\r\n class=\"form-control\"\r\n [ngClass]=\"{'input-filled' : editedValue }\"\r\n (keydown.space)=\"allowSpace($event)\"\r\n #editorInput\r\n [required]=\"isRequired()\"\r\n [(ngModel)]=\"editedValue\"\r\n (ngModelChange)=\"update($event)\"\r\n (keyup)=\"waitUntilUserFinishTyping()\"\r\n [attr.data-automation-id]=\"'card-textitem-editinput-'\"\r\n placeholder=\"{{ placeholder | translate }}\"\r\n (focus)=\"openOptions(true)\"\r\n />\r\n <div *ngIf=\"documentList.length !== 0\" id=\"suggestedoptions\">\r\n <div\r\n class=\"suggestions-wrapper\"\r\n [ngClass]=\"{ 'd-block': showsuggestedOptions }\"\r\n >\r\n <div\r\n class=\"option\"\r\n id=\"suggestedoptions\"\r\n *ngFor=\"let option of documentList\"\r\n (click)=\"selectItem(option.title)\"\r\n >\r\n {{ option.title }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <mat-error\r\n [attr.data-automation-id]=\"'card-textitem-error-'\"\r\n class=\"app-textitem-editable-error\"\r\n *ngIf=\"hasErrors()\"\r\n >\r\n <ul>\r\n <li *ngIf=\"control.errors.required\">\r\n {{ label | translate }} {{ \"VALIDATORS.REQUIRED\" | translate }}\r\n </li>\r\n <li *ngIf=\"control.errors.pattern\">\r\n {{ \"wrong pattern\" | translate }}\r\n </li>\r\n </ul>\r\n </mat-error>\r\n </ng-container>\r\n <ng-template #readOnly>\r\n {{ editedValue }}\r\n </ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Optional,\r\n Output,\r\n Self,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n FormControl,\r\n NgControl,\r\n} from '@angular/forms';\r\nimport { NgSelectComponent } from '@ng-select/ng-select';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Observable } from 'rxjs';\r\n/**\r\n * A dropdown input that can be used inside reactive or template driven forms\r\n * @title\r\n * Dropdown\r\n * @example\r\n * <app-dynamic-form-selectitem\r\n * [data]=\"arrayOfItems\"\r\n * [bindLabel]=\"'bindLabelPropertyName'\"\r\n * [label]=\"'PATH.TO.LABEL.TRANSLATION'\"\r\n * placeholder=\"PATH.TO.PLACEHOLDER.TRANSLATION\"\r\n * [closeOnSelect]=\"true\"\r\n * formControlName=\"controlName\"\r\n * >\r\n * </app-dynamic-form-selectitem>\r\n */\r\n@Component({\r\n selector: 'app-dynamic-form-selectitem',\r\n templateUrl: './dynamic-form-selectitem.component.html',\r\n styleUrls: ['./dynamic-form-selectitem.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DynamicFormSelectItemComponent\r\n implements OnChanges, ControlValueAccessor {\r\n @ViewChild(NgSelectComponent) ngSelectComponent: NgSelectComponent;\r\n /** Field Label */\r\n @Input() label: string;\r\n /** Property name to bind value to */\r\n @Input() bindValue;\r\n /** Property name to bind label to */\r\n @Input() bindLabel;\r\n /** Items array */\r\n @Input() data;\r\n /** Placeholder string */\r\n @Input() placeholder;\r\n /** can select multiple */\r\n @Input() multiple = false;\r\n /** is searchable */\r\n @Input() searchable = false;\r\n /** should close on select */\r\n @Input() closeOnSelect = true;\r\n /** should hide selected items */\r\n @Input() hideSelectedItems = false;\r\n /** is disabled */\r\n @Input() disabled = false;\r\n /** should show clear action */\r\n @Input() clear = true;\r\n /** is vocabulary select */\r\n @Input() voc = false;\r\n /** vocabulary id for translation (for vocabulary select only) */\r\n @Input() vocId: string;\r\n /** Should show loading indicator */\r\n @Input() loading = false;\r\n /** event emitted with selected items */\r\n @Output() onSelectItems = new EventEmitter();\r\n selection = [];\r\n\r\n buffer = [];\r\n bufferSize = 50;\r\n numberOfItemsFromEndBeforeFetchingMore = 10;\r\n\r\n propagateChange: any = () => { };\r\n validateFn: any = () => { };\r\n\r\n public onTouched: any = () => {\r\n /*Empty*/\r\n };\r\n public get invalid(): boolean {\r\n return this.control ? this.control.invalid : false;\r\n }\r\n\r\n public get showError(): boolean {\r\n if (!this.control) {\r\n return false;\r\n }\r\n\r\n const { dirty, touched } = this.control;\r\n\r\n return this.invalid ? dirty || touched : false;\r\n }\r\n constructor(\r\n public translate: TranslateService,\r\n @Self() @Optional() public control: NgControl\r\n ) {\r\n if (this.control) {\r\n this.control.valueAccessor = this;\r\n }\r\n }\r\n\r\n emitSelection(event) {\r\n this.propagateChange(this.selection);\r\n this.onSelectItems.emit(event);\r\n }\r\n\r\n onScrollToEnd() {\r\n this.fetchMore();\r\n }\r\n\r\n private fetchMore() {\r\n this.loading = true;\r\n const len = this.buffer.length;\r\n const more = this.data.slice(len, this.bufferSize + len);\r\n this.buffer = this.data.concat(more);\r\n this.loading = false;\r\n }\r\n\r\n ngOnChanges(changes): void {\r\n if (\r\n changes.data &&\r\n changes.data.currentValue &&\r\n changes.data.previousValue\r\n ) {\r\n this.data = [...changes.data.currentValue];\r\n this.buffer = this.data.slice(0, this.bufferSize);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.buffer = (this.data || []).slice(0, this.bufferSize);\r\n this.buffer.map((item) => {\r\n item.isSelected = false;\r\n });\r\n }\r\n\r\n writeValue(value) {\r\n if (value) {\r\n this.selection = value;\r\n }else{ //added to allow reseting ui when resetting form\r\n this.selection = [];\r\n }\r\n }\r\n registerOnChange(fn) {\r\n this.propagateChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(c: FormControl) {\r\n return this.validateFn(c);\r\n }\r\n isRequired() {\r\n if (!this.control || !this.control.control.validator) {\r\n return false;\r\n }\r\n\r\n const validator = this.control.control.validator({} as AbstractControl);\r\n return validator && validator.required;\r\n }\r\n hasErrors(): boolean {\r\n return this.showError;\r\n }\r\n reset() {\r\n this.ngSelectComponent.handleClearClick();\r\n }\r\n}\r\n","<ng-container *ngIf=\"label\">\r\n <div>\r\n <label class=\"select-label\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger m-1\">*</span></label\r\n >\r\n </div>\r\n</ng-container>\r\n<ng-select\r\n [items]=\"buffer\"\r\n [bindLabel]=\"bindLabel\"\r\n [bindValue]=\"bindValue\"\r\n [placeholder]=\"placeholder\"\r\n [multiple]=\"multiple\"\r\n [clearable]=\"clear\"\r\n [searchable]=\"searchable\"\r\n [closeOnSelect]=\"closeOnSelect\"\r\n [hideSelected]=\"hideSelectedItems\"\r\n [loading]=\"loading\"\r\n (scrollToEnd)=\"onScrollToEnd()\"\r\n (change)=\"emitSelection($event)\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"selection\"\r\n>\r\n <!-- template for viewing options in single and multi select -->\r\n <ng-template\r\n ng-option-tmp\r\n let-item=\"item\"\r\n let-item$=\"item$\"\r\n let-index=\"index\"\r\n >\r\n <div class=\"option-wrapper\">\r\n <span class=\"check-box-wrapper\" *ngIf=\"multiple\">\r\n <input\r\n id=\"item-{{ index }}\"\r\n type=\"checkbox\"\r\n [ngModel]=\"item$.selected\"\r\n />\r\n <span class=\"icon-wrapper\">\r\n <span class=\"bi bi-check2 icon\"></span>\r\n </span>\r\n </span>\r\n <span *ngIf=\"!voc\" class=\"label-wrapper\">\r\n {{ item[bindLabel] | translate }}\r\n </span>\r\n <span *ngIf=\"voc\" class=\"label-wrapper\">\r\n {{ \"vocabulary.\" + vocId + \".\" + item[bindValue] | translate }}\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <!-- template for viewing single select selected value -->\r\n <ng-template ng-label-tmp let-item=\"item\">\r\n <span *ngIf=\"!voc\">\r\n {{ (bindLabel ? item[bindLabel] : item) | translate }}\r\n </span>\r\n <span *ngIf=\"voc\">\r\n {{ \"vocabulary.\" + vocId + \".\" + item[bindValue] | translate }}\r\n </span>\r\n </ng-template>\r\n\r\n <!-- template for viewing multi select selected values -->\r\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\r\n <div class=\"ng-value\" *ngFor=\"let item of items ? items : []\">\r\n <span class=\"ng-value-label\">\r\n {{ (bindLabel ? item[bindLabel] : item) | translate }}\r\n </span>\r\n <span\r\n *ngIf=\"clear\"\r\n class=\"ng-value-icon right\"\r\n (click)=\"clear(item)\"\r\n aria-hidden=\"true\"\r\n >×</span\r\n >\r\n </div>\r\n </ng-template>\r\n</ng-select>\r\n<mat-error\r\n [attr.data-automation-id]=\"'card-textitem-error-'\"\r\n class=\"app-textitem-editable-error\"\r\n *ngIf=\"hasErrors()\"\r\n>\r\n <ul>\r\n <li *ngIf=\"control.errors.required\">\r\n {{ \"VALIDATORS.REQUIRED\" | translate }}\r\n </li>\r\n </ul>\r\n</mat-error>\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { from, Observable, of } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { NuxeoService } from '../../../Core/services/nuxeo/nuxeo.service';\r\nimport { opType } from '../interfaces/op-type.interface';\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class VocabularyApiService {\r\n vocabular = {};\r\n constructor(\r\n private nuxeoService: NuxeoService,\r\n private translate: TranslateService, @Inject('environment') private environment\r\n ) {}\r\n\r\n getVocabularyList(listName): Observable<any> {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation('Directory.SuggestEntries', {})\r\n .params({\r\n directoryName: listName,\r\n dbl10n: false,\r\n localize: true,\r\n lang: this.translate.currentLang,\r\n searchTerm: '',\r\n })\r\n .execute()\r\n );\r\n }\r\n vocabularyOperations(opName: opType, body) {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation(opName, {\r\n url: `${this.environment.nuxeo}${this.environment.customAutomation}`,\r\n })\r\n .context({ vocabulary: body })\r\n .execute()\r\n ).pipe(\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Optional,\r\n Output,\r\n Self,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n FormControl,\r\n NgControl,\r\n} from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { VocabularyApiService } from '../../../vocabulary/services/vocabulary-api.service';\r\nimport { Cacheable, LocalStorageStrategy } from 'ts-cacheable';\r\nimport { DynamicFormSelectItemComponent } from '../dynamic-form-selectitem/dynamic-form-selectitem.component';\r\n\r\n/**\r\n * A vocabulary dropdown input integrated with nuxeo vocabulary API,\r\n * that can be used inside reactive or template driven forms\r\n * @title\r\n * vocabulary dropdown\r\n * @example\r\n * <app-dynamic-form-vocabulary-item\r\n * [label]=\"'PATH.TO.LABEL.TRANSLATION'\"\r\n * [bindLabel]=\"'bindLabelPropertyName'\"\r\n * [bindValue]=\"'bindValuePropertyName'\"\r\n * placeholder=\"'PATH.TO.PLACEHOLDER.TRANSLATION'\"\r\n * [multiple]=\"false\"\r\n * [searchable]=\"false\"\r\n * [closeOnSelect]=\"true\"\r\n * [hideSelectedItems]=\"false\"\r\n * [vocabularyType]=\"'VocabularyKey'\"\r\n * formControlName=\"controlName\"\r\n * >\r\n * </app-dynamic-form-vocabulary-item>\r\n */\r\n@Component({\r\n selector: 'app-dynamic-form-vocabulary-item',\r\n templateUrl: './dynamic-form-vocabulary-item.component.html',\r\n styleUrls: ['./dynamic-form-vocabulary-item.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DynamicFormVocabularyItemComponent\r\n implements ControlValueAccessor {\r\n @ViewChild(DynamicFormSelectItemComponent)\r\n DynamicFormSelectItemComponent: DynamicFormSelectItemComponent;\r\n\r\n data = [];\r\n /** Bind value to property name */\r\n @Input() bindValue;\r\n /** Bind label to property name */\r\n @Input() bindLabel;\r\n /** Placeholder string */\r\n @Input() placeholder;\r\n /** Can select multiple */\r\n @Input() multiple = false;\r\n /** Is searchable */\r\n @Input() searchable = true;\r\n /** Should close on select */\r\n @Input() closeOnSelect = true;\r\n /** Should hide selected items */\r\n @Input() hideSelectedItems = false;\r\n /** Vocabulary list API Key */\r\n @Input() vocabularyType = '';\r\n /** Field Label */\r\n @Input() label;\r\n @Input() cacheable = true;\r\n @Input() shwoAllValues = true\r\n /** Event emitted on value is selected */\r\n @Output() onSelecting = new EventEmitter();\r\n loading = false;\r\n selection;\r\n\r\n // function related to value accessor\r\n propagateChange: any = () => { };\r\n validateFn: any = () => { };\r\n public onTouched: any = () => {\r\n /*Empty*/\r\n };\r\n public get invalid(): boolean {\r\n return this.control ? this.control.invalid : false;\r\n }\r\n\r\n public get showError(): boolean {\r\n if (!this.control) {\r\n return false;\r\n }\r\n\r\n const { dirty, touched } = this.control;\r\n\r\n return this.invalid ? dirty || touched : false;\r\n }\r\n constructor(\r\n private vocabularyApi: VocabularyApiService,\r\n @Self() @Optional() public control: NgControl\r\n ) {\r\n this.control.valueAccessor = this;\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.vocabularyType) {\r\n this.getLisOfOptions(this.vocabularyType);\r\n }\r\n }\r\n\r\n getLisOfOptions(type) {\r\n this.loading = true;\r\n const callApi = this.cacheable\r\n ? this.getCacheableVocabularyList(type)\r\n : this.getVocabularyList(type);\r\n callApi.subscribe((res) => {\r\n this.loading = false;\r\n this.data = !this.shwoAllValues ? res.filter(item => !item.id.includes('archived') && !item.id.includes('draft')) : res;\r\n });\r\n }\r\n\r\n @Cacheable({\r\n maxCacheCount: 1000,\r\n storageStrategy: LocalStorageStrategy,\r\n maxAge: 20000,\r\n })\r\n getCacheableVocabularyList(type) {\r\n return this.vocabularyApi.getVocabularyList(type);\r\n }\r\n getVocabularyList(type) {\r\n return this.vocabularyApi.getVocabularyList(type);\r\n }\r\n getSelecteditems(selectedItems) {\r\n this.propagateChange(this.selection);\r\n this.onSelecting.emit(this.selection);\r\n }\r\n\r\n writeValue(value) {\r\n // if (value) { removed to allow reseting ui when resetting form\r\n this.selection = value;\r\n // }\r\n }\r\n\r\n registerOnChange(fn) {\r\n this.propagateChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(c: FormControl) {\r\n return this.validateFn(c);\r\n }\r\n isRequired() {\r\n if (!this.control || !this.control.control.validator) {\r\n return false;\r\n }\r\n\r\n const validator = this.control.control.validator({} as AbstractControl);\r\n return validator && validator.required;\r\n }\r\n hasErrors(): boolean {\r\n return this.showError;\r\n }\r\n reset() {\r\n this.DynamicFormSelectItemComponent.reset();\r\n }\r\n}\r\n","<ng-container *ngIf=\"label\">\r\n <div>\r\n <label class=\"select-label\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger m-1\">*</span></label\r\n >\r\n </div>\r\n</ng-container>\r\n<app-dynamic-form-selectitem\r\n [voc]=\"true\"\r\n [vocId]=\"vocabularyType\"\r\n [data]=\"data\"\r\n [bindLabel]=\"bindLabel\"\r\n [bindValue]=\"bindValue\"\r\n [placeholder]=\"placeholder\"\r\n [multiple]=\"multiple\"\r\n [searchable]=\"searchable\"\r\n [closeOnSelect]=\"closeOnSelect\"\r\n [hideSelectedItems]=\"hideSelectedItems\"\r\n [loading]=\"loading\"\r\n (onSelectItems)=\"getSelecteditems($event)\"\r\n [(ngModel)]=\"selection\"\r\n></app-dynamic-form-selectitem>\r\n<mat-error\r\n [attr.data-automation-id]=\"'card-textitem-error-'\"\r\n class=\"app-textitem-editable-error\"\r\n *ngIf=\"hasErrors()\"\r\n>\r\n <ul>\r\n <li *ngIf=\"control.errors.required\">\r\n {{ \"VALIDATORS.REQUIRED\" | translate }}\r\n </li>\r\n </ul>\r\n</mat-error>\r\n","import {\r\n Component,\r\n Input,\r\n Optional,\r\n SkipSelf,\r\n Self,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n NgControl,\r\n NG_VALUE_ACCESSOR,\r\n} from '@angular/forms';\r\n\r\n/**\r\n * A toggle input that can be used inside reactive or template driven forms\r\n * @title\r\n * Sliding Toggle\r\n * @example\r\n * <cts-dynamic-form-slide-toggleitem\r\n * [label]=\"'PATH.TO.LABEL.TRANSLATION'\"\r\n * formControlName=\"controlname\"\r\n * >\r\n * </cts-dynamic-form-slide-toggleitem>\r\n */\r\n@Component({\r\n selector: 'cts-dynamic-form-slide-toggleitem',\r\n templateUrl: './dynamic-form-slide-toggleitem.component.html',\r\n styleUrls: ['./dynamic-form-slide-toggleitem.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DynamicFormSlideToggleitemComponent\r\n implements ControlValueAccessor\r\n{\r\n value;\r\n /** Field label */\r\n @Input()\r\n label;\r\n /** is disabled */\r\n @Input()\r\n disabled: boolean = false;\r\n /** is checked */\r\n @Input()\r\n checked: boolean = false;\r\n /** @deprecated Not used */\r\n @Input()\r\n theme: String;\r\n onChange: any = () => {};\r\n onTouched: any = () => {};\r\n constructor(@Self() @Optional() private control: NgControl) {\r\n this.control.valueAccessor = this;\r\n }\r\n writeValue(obj: boolean): void {\r\n this.value = obj;\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n isRequired() {\r\n if (!this.control.control.validator) {\r\n return false;\r\n }\r\n\r\n const validator = this.control.control.validator({} as AbstractControl);\r\n return validator && validator.required;\r\n }\r\n setValue(event) {\r\n this.onChange(event.checked);\r\n }\r\n\r\n ngOnInit(): void {}\r\n}\r\n","<div class=\"dynamic-toggle\">\r\n <mat-slide-toggle\r\n [checked]=\"checked\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"value\"\r\n (change)=\"setValue($event)\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger m-1\"\r\n >*</span\r\n ></mat-slide-toggle\r\n >\r\n</div>\r\n<!-- [required]=\"isRequired()\" -->\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TreeviewItem } from 'ngx-treeview';\r\nimport { CustomToastrService } from '../../../custom-toastr/services/custom-toastr.service';\r\nimport { DocumentsService } from '../../../documents/services/documents.service';\r\nimport { DepartmentManagementService } from '../dynamic-form-department/services/department-management.service';\r\nimport { DepartmentApiService } from '../dynamic-form-department/services/department-api.service';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'cts-department-form',\r\n templateUrl: './department-form.component.html',\r\n styleUrls: ['./department-form.component.scss'],\r\n})\r\nexport class DepartmentFormComponent implements OnInit {\r\n loading = false;\r\n depId;\r\n updateMode = false;\r\n depCode;\r\n item: TreeviewItem;\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data,\r\n public dialogRef: MatDialogRef<DepartmentFormComponent>,\r\n private toastr: CustomToastrService,\r\n private departmentManagementService: DepartmentApiService,\r\n ) {}\r\n departmentForm = new FormGroup({\r\n title: new FormControl(null, [Validators.required ,Validators.pattern(new RegExp(\"^\\\\S*$\"))]),\r\n agencyCode: new FormControl('tdf', Validators.required),\r\n arabicName: new FormControl(null, Validators.required),\r\n englishName: new FormControl(null, Validators.required),\r\n deptTypee: new FormControl(null, Validators.required),\r\n description: new FormControl(null),\r\n isAllowRecExternal: new FormControl(false),\r\n // manager: new FormControl(null),\r\n });\r\n\r\n ngOnInit(): void {\r\n this.depId = this.data.depId;\r\n this.updateMode = this.data.updateMode;\r\n this.depCode = this.data.depCode;\r\n this.item = this.data.item;\r\n if (this.updateMode) {\r\n this.getDepartment();\r\n }\r\n }\r\n\r\n filterNullValues(formValue) {\r\n const filtered = {};\r\n for (let key in formValue) {\r\n if (formValue[key]) {\r\n filtered[key] = formValue[key];\r\n }\r\n }\r\n return filtered;\r\n }\r\n save() {\r\n this.loading = true;\r\n const depObj = this.filterNullValues(this.departmentForm.value);\r\n if (this.depId === 'root') {\r\n this.departmentManagementService.createDepartmentInRoot(depObj).subscribe(\r\n (res) => {\r\n this.loading = false;\r\n this.dialogRef.close(true);\r\n this.toastr.show('success', 'success', 'success');\r\n },\r\n (err) => {\r\n this.loading = false;\r\n this.dialogRef.close(false);\r\n this.toastr.show('error', 'error', 'error');\r\n }\r\n );\r\n } else {\r\n this.departmentManagementService\r\n .createDepartment(depObj, this.depId)\r\n .subscribe(\r\n (res) => {\r\n this.loading = false;\r\n this.dialogRef.close(true);\r\n this.toastr.show('success', 'success', 'success');\r\n },\r\n (err) => {\r\n this.loading = false;\r\n this.toastr.show('error', 'error', 'error');\r\n }\r\n );\r\n }\r\n }\r\n departmentFormPopulate(department) {\r\n this.departmentForm.patchValue({\r\n title: department.title,\r\n arabicName: department.arabicName,\r\n englishName: department.englishName,\r\n deptTypee: department.deptTypee,\r\n description: department.description,\r\n isAllowRecExternal: department.isAllowRecExternal,\r\n });\r\n }\r\n getDepartment() {\r\n this.departmentManagementService\r\n .getDepartment(this.depId)\r\n .subscribe((res) => {\r\n this.departmentFormPopulate(res.properties);\r\n });\r\n }\r\n update() {\r\n this.loading = true;\r\n this.departmentManagementService\r\n .updateDepartment(this.departmentForm.value, this.depId)\r\n .subscribe(\r\n (res) => {\r\n this.loading = false;\r\n this.dialogRef.close(true);\r\n this.toastr.show('success', 'success', 'success');\r\n },\r\n (err) => {\r\n this.loading = false;\r\n this.toastr.show('error', 'error', 'error');\r\n }\r\n );\r\n }\r\n}\r\n","<div SetDirRtl class=\"voc-form\">\r\n <div class=\"voc-form-hedaer\">\r\n {{\r\n \"department_management.form.\" + (updateMode ? \"updateHeader\" : \"header\")\r\n | translate\r\n }}\r\n </div>\r\n <form [formGroup]=\"departmentForm\" class=\"row voc-form-body\">\r\n <div class=\"col-lg-6 col-12\">\r\n <app-dynamic-form-textitem\r\n formControlName=\"title\"\r\n [label]=\"'department_management.form.title'\"\r\n [disabled]=\"updateMode\"\r\n [preventSpace]=\"true\"\r\n ></app-dynamic-form-textitem>\r\n <div class=\"hint-msg\">{{ \"department_management.form.hintMsg\" | translate }}</div>\r\n </div>\r\n <!-- <app-dynamic-form-textitem\r\n class=\"col-lg-6 col-12\"\r\n formControlName=\"agencyCode\"\r\n [label]=\"'department_management.form.AgencyCode'\"\r\n ></app-dynamic-form-textitem> -->\r\n <app-dynamic-form-textitem\r\n class=\"col-lg-6 col-12\"\r\n formControlName=\"arabicName\"\r\n [label]=\"'department_management.form.ArabicName'\"\r\n ></app-dynamic-form-textitem>\r\n <app-dynamic-form-textitem\r\n class=\"col-lg-6 col-12\"\r\n formControlName=\"englishName\"\r\n [label]=\"'department_management.form.EnglishName'\"\r\n ></app-dynamic-form-textitem>\r\n <app-dynamic-form-vocabulary-item\r\n class=\"col-lg-6 col-12\"\r\n [label]=\"'department_management.form.deptTypee'\"\r\n [bindLabel]=\"'label'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{ 'VOCABULARY.SELECT_ITEM' | translate }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"false\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n [vocabularyType]=\"'VOC_DepartmentType'\"\r\n formControlName=\"deptTypee\"\r\n >\r\n </app-dynamic-form-vocabulary-item>\r\n <app-dynamic-form-textitem\r\n class=\"col-lg-6 col-12\"\r\n formControlName=\"description\"\r\n [label]=\"'department_management.form.Description'\"\r\n ></app-dynamic-form-textitem>\r\n <!-- <cts-dynamic-form-select-users\r\n class=\"col-lg-6 col-12\"\r\n formControlName=\"manager\"\r\n [bindValue]=\"\"\r\n [bindLabel]=\"\"\r\n [label]=\"'department_management.form.Manager'\"\r\n [deptTitle]=\"'all'\"\r\n [bindValue]=\"'properties.username'\"\r\n ></cts-dynamic-form-select-users> -->\r\n\r\n <cts-dynamic-form-slide-toggleitem\r\n class=\"col-lg-6 col-12 isAllowRecExternal\"\r\n formControlName=\"isAllowRecExternal\"\r\n [label]=\"'department_management.form.isAllowRecExternal'\"\r\n ></cts-dynamic-form-slide-toggleitem>\r\n </form>\r\n <div class=\"button-group d-flex flex-row-reverse\">\r\n <cts-button\r\n [theme]=\"'danger'\"\r\n size=\"'regular'\"\r\n class=\"voc-form-close\"\r\n mat-dialog-close\r\n >\r\n {{ \"BUTTONS.CLOSE\" | translate }}\r\n </cts-button>\r\n <cts-button\r\n *ngIf=\"!updateMode\"\r\n [loading]=\"loading\"\r\n size=\"'regular'\"\r\n [theme]=\"'primary'\"\r\n class=\"voc-form-submit\"\r\n (onClick)=\"save()\"\r\n [disabled]=\"departmentForm.invalid\"\r\n >\r\n {{ \"BUTTONS.SAVE\" | translate }}\r\n </cts-button>\r\n <cts-button\r\n *ngIf=\"updateMode\"\r\n [loading]=\"loading\"\r\n size=\"'regular'\"\r\n [theme]=\"'primary'\"\r\n class=\"voc-form-submit\"\r\n (onClick)=\"update()\"\r\n [disabled]=\"departmentForm.invalid\"\r\n >\r\n {{ \"BUTTONS.UPDATE\" | translate }}\r\n </cts-button>\r\n </div>\r\n</div>\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { TreeviewItem } from 'ngx-treeview';\r\nimport { from } from 'rxjs';\r\nimport { catchError, map, take } from 'rxjs/operators';\r\nimport { AppConfigService } from '../../../../../configuration/app-config.service';\r\nimport { AdapterService } from '../../../../../Core/adapters/adapter.service';\r\nimport { NuxeoService } from '../../../../../Core/services/nuxeo/nuxeo.service';\r\nimport { DepartmentFormComponent } from '../../department-form/department-form.component';\r\nimport { DepartmentConstants } from '../constants/department';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DepartmentManagementService {\r\n constructor(\r\n private nuxeoService: NuxeoService,\r\n private adapter: AdapterService,\r\n private myConfigService: AppConfigService,\r\n private dialog: MatDialog, @Inject('environment') private environment\r\n ) {}\r\n createDepartment(Department, parentId) {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation('AC_UA_Depatrment_Create', {\r\n url: `${this.environment.nuxeo}${this.environment.customAutomation}`,\r\n })\r\n .input(parentId)\r\n .context({\r\n department: this.adapter.adaptOut(\r\n Department,\r\n DepartmentConstants.fields\r\n ),\r\n })\r\n .execute()\r\n ).pipe(\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n createDepartmentInRoot(Department) {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation('AC_UA_Depatrment_Create_InRoot', {\r\n url: `${this.environment.nuxeo}${this.environment.customAutomation}`,\r\n })\r\n .context({\r\n department: this.adapter.adaptOut(\r\n Department,\r\n DepartmentConstants.fields\r\n ),\r\n })\r\n .execute()\r\n ).pipe(\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n updateDepartment(Department, departmentId) {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation('AC_UA_Department_Update', {\r\n url: `${this.environment.nuxeo}${this.environment.customAutomation}`,\r\n })\r\n .input(departmentId)\r\n .context({\r\n department: this.adapter.adaptOut(\r\n Department,\r\n DepartmentConstants.fields\r\n ),\r\n })\r\n .execute()\r\n ).pipe(\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n getDepartment(uid) {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .repository()\r\n .headers({\r\n 'X-NXproperties': '*',\r\n })\r\n .fetch(uid)\r\n ).pipe(\r\n map((data: any) => {\r\n return this.adapter.adaptIn(data, DepartmentConstants.fields);\r\n }),\r\n catchError((err) => {\r\n throw err;\r\n })\r\n );\r\n }\r\n openFormDialog(\r\n e: string = 'root',\r\n update: boolean = false,\r\n depCode?,\r\n item?: TreeviewItem\r\n ) {\r\n return this.dialog\r\n .open(DepartmentFormComponent, {\r\n width: '55%',\r\n panelClass: 'department-dialog-container',\r\n data: { depId: e, updateMode: update, depCode: depCode, item: item },\r\n })\r\n .afterClosed()\r\n .pipe(take(1));\r\n }\r\n}\r\n// .subscribe((data) => {\r\n// if (data) {\r\n// if (typeof data === 'object' && data.item.value.level == 2) {\r\n// return;\r\n// } else {\r\n// // this.department.getLisOfOptions();\r\n// }\r\n// }\r\n// });\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ViewChild,\r\n OnChanges,\r\n ViewEncapsulation,\r\n OnInit,\r\n OnDestroy,\r\n} from '@angular/core';\r\nimport { isNil } from 'lodash';\r\nimport {\r\n TreeviewI18n,\r\n TreeviewItem,\r\n TreeviewConfig,\r\n DropdownTreeviewComponent,\r\n TreeviewHelper,\r\n} from 'ngx-treeview';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { TranslationService } from '../../../../Core/services/translation/translation.service';\r\nimport { DepartmentManagementService } from '../dynamic-form-department/services/department-management.service';\r\nimport { DepartmentApiService } from '../dynamic-form-department/services/department-api.service';\r\nimport { DropdownTreeviewSelectI18n } from './dropdown-treeview-select-i18n';\r\n/**\r\n * A tree view selector component that can be used in reactive and template driven forms,\r\n * it can be a flat tree or a dropdown\r\n * @title\r\n * Tree view selector\r\n *\r\n * @example\r\n * <app-dynamic-form-treeview-select\r\n * [treeview]=\"false\"\r\n * [multiple]=\"false\"\r\n * [items]=\"itemsTree\"\r\n * (valueChange)=\"onValueChange($event)\"\r\n * [(value)]=\"selectedValue\"\r\n * >\r\n * </app-dynamic-form-treeview-select>\r\n */\r\n@Component({\r\n selector: 'app-dynamic-form-treeview-select',\r\n templateUrl: './dynamic-form-treeview-select.component.html',\r\n styleUrls: ['./dynamic-form-treeview-select.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [{ provide: TreeviewI18n, useClass: DropdownTreeviewSelectI18n }],\r\n})\r\nexport class TreeviewSelectComponent implements OnInit, OnChanges, OnDestroy {\r\n multipleSelection = [];\r\n selectedItem;\r\n selectedParentWithChild = [];\r\n showPlus = false;\r\n preSelected = [];\r\n /** is tree View or dropdown view */\r\n @Input()\r\n treeview = false;\r\n /** use tree view inside form */\r\n @Input()\r\n treeViewAsFormControl = false;\r\n /** Config object */\r\n @Input() config: TreeviewConfig;\r\n /** Items tree */\r\n @Input() items: TreeviewItem[];\r\n /** Selected value */\r\n @Input() value: any;\r\n /** can select multiple */\r\n @Input() multiple: boolean = false;\r\n /** event emitted on value change */\r\n @Output() valueChange = new EventEmitter<any>();\r\n /** event emitted on plus button clicked (for department management) */\r\n @Output() plusClicked = new EventEmitter<any>();\r\n /** event emitted on plus button clicked (for department management) */\r\n @Output() actionClicked = new EventEmitter<any>();\r\n @ViewChild(DropdownTreeviewComponent, { static: false })\r\n dropdownTreeviewComponent: DropdownTreeviewComponent;\r\n filterText: string;\r\n arabic = false;\r\n languageSubscription: Subscription;\r\n onDestroy$: Subject<boolean> = new Subject<boolean>();\r\n\r\n private dropdownTreeviewSelectI18n: DropdownTreeviewSelectI18n;\r\n\r\n // this component is used in two places the flag is this.treeview\r\n\r\n constructor(\r\n public i18n: TreeviewI18n,\r\n private translation: TranslationService,\r\n private departmentApiService: DepartmentApiService,\r\n private departmentManagment: DepartmentManagementService\r\n ) {\r\n this.config = TreeviewConfig.create({\r\n hasAllCheckBox: false,\r\n hasCollapseExpand: false,\r\n hasFilter: true,\r\n maxHeight: 200,\r\n decoupleChildFromParent: true,\r\n });\r\n this.dropdownTreeviewSelectI18n = i18n as DropdownTreeviewSelectI18n;\r\n }\r\n\r\n ngOnInit() {\r\n this.translation.isArabic\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((res) => {\r\n this.arabic = res;\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.onDestroy$.complete();\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.items && this.treeview) {\r\n this.updateSelectedItem();\r\n }\r\n if (!this.treeview && !this.multiple) {\r\n // this. function is to set ui with pre selected value\r\n // delay to make sure that page get the value and send it to here\r\n // we use the value sent to here and search for its item on our items and set it as the selected item\r\n this.items.map((item) => {\r\n this.setPreSeletedItem(item);\r\n });\r\n }\r\n if (\r\n !this.treeview &&\r\n this.multiple &&\r\n this.value &&\r\n this.value.length > 0\r\n ) {\r\n // this.preSelected = this.value;\r\n this.multipleSelection = this.value;\r\n this.dropdownTreeviewSelectI18n.selectionLength =\r\n this.multipleSelection.length;\r\n this.dropdownTreeviewComponent.onSelectedChange([\r\n this.multipleSelection.length,\r\n ]);\r\n }\r\n }\r\n\r\n setPreSeletedItem(item) {\r\n if (item.value === this.value) {\r\n this.select(item);\r\n return;\r\n } else {\r\n if (item.internalChildren) {\r\n item.internalChildren.map((child) => {\r\n this.setPreSeletedItem(child);\r\n });\r\n } else {\r\n return;\r\n }\r\n }\r\n }\r\n\r\n select(item: TreeviewItem): void {\r\n // if (!item.children) {\r\n this.selectItem(item);\r\n // }\r\n }\r\n\r\n private updateSelectedItem(): void {\r\n if (!isNil(this.items)) {\r\n const selectedItem = TreeviewHelper.findItemInList(\r\n this.items,\r\n this.value\r\n );\r\n this.selectItem(selectedItem);\r\n }\r\n }\r\n\r\n private selectItem(item: TreeviewItem): void {\r\n document.body.click();\r\n if (this.dropdownTreeviewSelectI18n.selectedItem !== item) {\r\n this.dropdownTreeviewSelectI18n.selectedItem = item;\r\n if (this.dropdownTreeviewComponent) {\r\n this.dropdownTreeviewComponent.onSelectedChange([item]);\r\n }\r\n\r\n if (item) {\r\n if (this.treeview) {\r\n this.selectedItem = item.value;\r\n // this.valueChange.emit(item.value.title);\r\n this.valueChange.emit(item);\r\n } else {\r\n this.valueChange.emit(item.value);\r\n }\r\n }\r\n }\r\n }\r\n selectMultiple(e, item: TreeviewItem) {\r\n this.selectedParentWithChild = [];\r\n this.getChildernValues(item);\r\n if (e) {\r\n this.multipleSelection = this.multipleSelection.concat(\r\n this.selectedParentWithChild\r\n );\r\n } else {\r\n this.multipleSelection = this.multipleSelection.filter((e) => {\r\n return this.selectedParentWithChild.indexOf(e) < 0;\r\n });\r\n }\r\n\r\n this.dropdownTreeviewSelectI18n.selectionLength =\r\n this.multipleSelection.length;\r\n this.dropdownTreeviewComponent.onSelectedChange([\r\n this.multipleSelection.length,\r\n ]);\r\n this.valueChange.emit(this.multipleSelection);\r\n }\r\n getChildernValues(item: TreeviewItem) {\r\n this.selectedParentWithChild.push(item.value);\r\n if (item.children) {\r\n item.children.forEach((item) => {\r\n this.getChildernValues(item);\r\n });\r\n } else return;\r\n }\r\n\r\n onPlusClicked(e: MouseEvent, item: TreeviewItem): void {\r\n e.stopPropagation();\r\n if (item) {\r\n this.plusClicked.emit(item.value.uid);\r\n }\r\n }\r\n /**\r\n * \r\n * @param e click event \r\n * @param action name of action (add , update)\r\n * @param item TreeviewItem\r\n */\r\n onAction(e: MouseEvent, action: string, item: TreeviewItem) {\r\n e.stopPropagation();\r\n if (item) {\r\n if (action === 'add') {\r\n this.departmentManagment\r\n .openFormDialog(item.value.uid, false, item.value.title, item)\r\n .subscribe((res) => {\r\n this.update(item);\r\n });\r\n }\r\n if (action === 'update') {\r\n this.departmentManagment\r\n .openFormDialog(item.value.uid, true)\r\n .subscribe((res) => {\r\n // this.update(item);\r\n this.departmentApiService.getDepartmentTree().subscribe((res) => {\r\n this.items = this.departmentApiService.recursiveFill(res.entries);\r\n });\r\n });\r\n }\r\n }\r\n }\r\n /**\r\n *due to the business requirements which stated that more than 3 levels will existed the current api support only 3 levels so *we have to inject 3 new levels on each tree end\r\n * @param item TreeviewItem\r\n */\r\n onCollapsed(item: TreeviewItem) {\r\n item.collapsed = !item.collapsed;\r\n if (item.value.level === 2) {\r\n this.departmentApiService\r\n .getDepartmentNestedTree(item.value.title)\r\n .subscribe(\r\n (res) => {\r\n item.children = this.departmentApiService.recursiveFill(\r\n res.entries\r\n );\r\n },\r\n (err) => {}\r\n );\r\n }\r\n }\r\n /**\r\n *due to the business requirements which stated that more than 3 levels will existed the current api support only 3 levels so *we have to inject 3 new levels on each tree end\r\n * @param item TreeviewItem\r\n */\r\n update(item) {\r\n this.departmentApiService\r\n .getDepartmentNestedTree(item.value.title)\r\n .subscribe(\r\n (data) => {\r\n item.children = this.departmentApiService.recursiveFill(\r\n data.entries,\r\n 0,\r\n true,\r\n true\r\n );\r\n },\r\n (err) => {}\r\n );\r\n }\r\n}\r\n","<ng-template\r\n #itemTemplate\r\n let-item=\"item\"\r\n let-onCollapseExpand=\"onCollapseExpand\"\r\n let-onCheckedChange=\"onCheckedChange\"\r\n>\r\n <!-- single -->\r\n <div *ngIf=\"!treeview && !multiple\">\r\n <div\r\n class=\"text-nowrap row-item\"\r\n [ngClass]=\"{ active: item.value === this.value }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapseExpand()\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <label class=\"form-check-label\" (click)=\"select(item)\">{{\r\n item.text\r\n }}</label>\r\n </div>\r\n </div>\r\n <!-- Multiple -->\r\n <div *ngIf=\"!treeview && multiple\">\r\n <div\r\n class=\"text-nowrap row-item\"\r\n [ngClass]=\"{ active: item.value === this.value }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapseExpand()\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <!-- <input\r\n class=\"multiple-checkBox\"\r\n type=\"checkbox\"\r\n [checked]=\"multipleSelection.includes(item.value)\"\r\n (change)=\"selectMultiple($event.target.checked, item)\"\r\n />\r\n\r\n <label class=\"form-check-label\">{{ item.text }}</label> -->\r\n <div class=\"multiple-treeview\">\r\n <mat-checkbox\r\n [checked]=\"multipleSelection.includes(item.value)\"\r\n (change)=\"selectMultiple($event.checked, item)\"\r\n >\r\n <span> {{ item.text }} </span>\r\n </mat-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- treeView -->\r\n <div *ngIf=\"treeview && !treeViewAsFormControl\" class=\"tree-view-container\">\r\n <div\r\n (mouseenter)=\"hoverField.style.display = 'flex'\"\r\n (mouseleave)=\"hoverField.style.display = 'none'\"\r\n class=\"text-nowrap row-item treeview-row\"\r\n [ngClass]=\"{ selected: item.value == selectedItem }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapsed(item)\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <label class=\"form-check-label-treeview\" (click)=\"select(item)\"\r\n >{{ item.text }}\r\n <span #hoverField class=\"hoverField\">\r\n <span\r\n type=\"button\"\r\n matTooltip=\"{{ 'department_management.form.edit' | translate }}\"\r\n (click)=\"onAction($event, 'update', item)\"\r\n >\r\n <li class=\"bi bi-pencil\"></li>\r\n </span>\r\n\r\n <span\r\n type=\"button\"\r\n matTooltip=\"{{\r\n 'department_management.form.toolTip_message' | translate\r\n }}\"\r\n (click)=\"onAction($event, 'add', item)\"\r\n >\r\n <li class=\"bi bi-plus\"></li>\r\n </span>\r\n </span>\r\n </label>\r\n </div>\r\n </div>\r\n <!-- treeView as form control -->\r\n <div *ngIf=\"treeview && treeViewAsFormControl\" class=\"tree-view-container\">\r\n <div\r\n class=\"text-nowrap row-item treeview-row-form-control\"\r\n [ngClass]=\"{ 'selected-form-control': item.value == selectedItem }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapsed(item)\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n \r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <label class=\"form-check-label-treeview\" (click)=\"select(item)\"\r\n >{{ item.text }}\r\n </label>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<ng-template\r\n #headerTemplate\r\n let-config=\"config\"\r\n let-item=\"item\"\r\n let-onCollapseExpand=\"onCollapseExpand\"\r\n let-onCheckedChange=\"onCheckedChange\"\r\n let-onFilterTextChange=\"onFilterTextChange\"\r\n>\r\n <div *ngIf=\"config.hasFilter\" class=\"row row-filter\">\r\n <div class=\"col-12\">\r\n <input\r\n class=\"form-control\"\r\n type=\"text\"\r\n [placeholder]=\"i18n.getFilterPlaceholder()\"\r\n [(ngModel)]=\"filterText\"\r\n (ngModelChange)=\"onFilterTextChange($event)\"\r\n />\r\n </div>\r\n </div>\r\n <div *ngIf=\"config.hasAllCheckBox || config.hasCollapseExpand\" class=\"row\">\r\n <div class=\"col-12\">\r\n <label *ngIf=\"config.hasAllCheckBox\" (click)=\"select(item)\">\r\n <strong>{{ i18n.getAllCheckboxText() }}</strong>\r\n </label>\r\n <label\r\n *ngIf=\"config.hasCollapseExpand\"\r\n class=\"float-right\"\r\n (click)=\"onCollapseExpand()\"\r\n >\r\n <i\r\n [title]=\"i18n.getTooltipCollapseExpandText(item.collapsed)\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span *ngSwitchCase=\"true\" class=\"bi bi-arrows-angle-expand\"></span>\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-arrows-angle-contract\"\r\n ></span>\r\n </i>\r\n </label>\r\n </div>\r\n </div>\r\n <div *ngIf=\"config.hasDivider\" class=\"dropdown-divider\"></div>\r\n</ng-template>\r\n\r\n<ng-container *ngIf=\"!treeview && !multiple\">\r\n <ngx-dropdown-treeview\r\n [config]=\"config\"\r\n [headerTemplate]=\"headerTemplate\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-dropdown-treeview\r\n></ng-container>\r\n<ng-container *ngIf=\"!treeview && multiple\">\r\n <div class=\"multiple-tree-view\">\r\n <ngx-dropdown-treeview\r\n [config]=\"config\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-dropdown-treeview>\r\n </div>\r\n</ng-container>\r\n<ng-container *ngIf=\"treeview && !treeViewAsFormControl\">\r\n <div class=\"tree-view\">\r\n <ngx-treeview\r\n [config]=\"config\"\r\n [headerTemplate]=\"headerTemplate\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-treeview>\r\n </div>\r\n</ng-container>\r\n<ng-container *ngIf=\"treeview && treeViewAsFormControl\">\r\n <div class=\"tree-view-form-control\">\r\n <ngx-treeview\r\n [config]=\"config\"\r\n [headerTemplate]=\"headerTemplate\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-treeview>\r\n </div>\r\n</ng-container>\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output,\r\n Self,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n FormControl,\r\n NgControl,\r\n} from '@angular/forms';\r\nimport { TreeviewItem } from 'ngx-treeview';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { first } from 'rxjs/operators';\r\nimport { TranslationService } from '../../../../Core/services/translation/translation.service';\r\nimport { DepartmentApiService } from './services/department-api.service';\r\n\r\n/**\r\n * A department tree dropdown input already with departments backend,\r\n * that can be used inside reactive or template driven forms\r\n * @title\r\n * Department tree dropdown\r\n * @example\r\n * <app-dynamic-form-department\r\n * label=\"Field Label\"\r\n * placeholder=\"Placeholder text\"\r\n * formControlName=\"controlName\"\r\n * >\r\n * </app-dynamic-form-department>\r\n */\r\n@Component({\r\n selector: 'app-dynamic-form-department',\r\n templateUrl: './dynamic-form-department.component.html',\r\n styleUrls: ['./dynamic-form-department.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DynamicFormDepartmentComponent\r\n implements ControlValueAccessor, OnInit, OnDestroy\r\n{\r\n data = [];\r\n /** is tree View or dropdown view */\r\n @Input() treeview = false;\r\n /** use tree view inside form */\r\n @Input()\r\n treeViewAsFormControl = false;\r\n /** Placeholder text */\r\n @Input() placeholder;\r\n /** Can select multiple */\r\n @Input() multiple = false;\r\n /** is tree searchable */\r\n @Input() searchable = true;\r\n /** Input Field label */\r\n @Input() label;\r\n /** emitted when item is selected */\r\n @Output() onSelecting = new EventEmitter();\r\n /** emitted when action is clicked */\r\n @Output() actionClicked = new EventEmitter();\r\n loading = false;\r\n selection;\r\n arabic = false;\r\n languageSubscription: Subscription;\r\n // function related to value accessor\r\n propagateChange: any = () => {};\r\n validateFn: any = () => {};\r\n public onTouched: any = () => {\r\n /*Empty*/\r\n };\r\n public get invalid(): boolean {\r\n return this.control ? this.control.invalid : false;\r\n }\r\n\r\n public get showError(): boolean {\r\n if (!this.control) {\r\n return false;\r\n }\r\n\r\n const { dirty, touched } = this.control;\r\n\r\n return this.invalid ? dirty || touched : false;\r\n }\r\n constructor(\r\n private translation: TranslationService,\r\n private departmentApi: DepartmentApiService,\r\n @Self() @Optional() public control: NgControl\r\n ) {\r\n this.control.valueAccessor = this;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.languageSubscription = this.translation.isArabic.subscribe(\r\n async (res) => {\r\n this.arabic = res;\r\n await this.getLisOfOptions();\r\n this.writeValue(this.selection);\r\n }\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.languageSubscription ? this.languageSubscription.unsubscribe() : '';\r\n }\r\n\r\n async recursiveFill(entries, level = 0): Promise<TreeviewItem[]> {\r\n return await Promise.all(\r\n entries.map(async (item) => {\r\n let treeViewObj = this.treeview\r\n ? {\r\n text: this.arabic\r\n ? item.properties\r\n ? item.properties['dept:arabicName']\r\n : '--'\r\n : item.properties\r\n ? item.properties['dept:englishName']\r\n : '--',\r\n value: { ...item, level },\r\n }\r\n : {\r\n text: this.arabic\r\n ? item.properties\r\n ? item.properties['dept:arabicName']\r\n : '--'\r\n : item.properties\r\n ? item.properties['dept:englishName']\r\n : '--',\r\n value: this.multiple ? item.uid : item.title,\r\n };\r\n\r\n const treeItem = new TreeviewItem({\r\n ...treeViewObj,\r\n collapsed: level >= 2 && this.treeview ? true : false,\r\n ...(this.multiple && { checked: false }),\r\n });\r\n if (\r\n item.contextParameters &&\r\n item.contextParameters.children.entries.length\r\n ) {\r\n if (\r\n !this.treeview &&\r\n (level == 2 || (level > 2 && (level + 1) % 3 == 0))\r\n ) {\r\n const extended = await this.departmentApi\r\n .getDepartmentNestedTree(item.title)\r\n .pipe(first())\r\n .toPromise();\r\n treeItem.children = await this.recursiveFill(\r\n extended.entries,\r\n level + 1\r\n );\r\n } else {\r\n treeItem.children = await this.recursiveFill(\r\n item.contextParameters.children.entries,\r\n level + 1\r\n );\r\n }\r\n }\r\n return treeItem;\r\n })\r\n );\r\n }\r\n async getLisOfOptions() {\r\n this.departmentApi.getDepartmentTree().subscribe(async (res) => {\r\n this.loading = false;\r\n this.data = await this.recursiveFill(res.entries);\r\n });\r\n }\r\n\r\n getSelecteditems(selectedItems): void {\r\n this.propagateChange(selectedItems);\r\n this.onSelecting.emit(selectedItems);\r\n }\r\n\r\n writeValue(value): void {\r\n if (value) {\r\n this.selection = value;\r\n }\r\n }\r\n\r\n registerOnChange(fn): void {\r\n this.propagateChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(c: FormControl): any {\r\n return this.validateFn(c);\r\n }\r\n isRequired(): boolean {\r\n if (!this.control || !this.control.control.validator) {\r\n return false;\r\n }\r\n\r\n const validator = this.control.control.validator({} as AbstractControl);\r\n return validator && validator.required;\r\n }\r\n hasErrors(): boolean {\r\n return this.showError;\r\n }\r\n // onPlusClicked(e) {\r\n // this.plusClicked.next(e);\r\n // }\r\n // onAction(e) {\r\n // this.actionClicked.emit(e);\r\n // }\r\n}\r\n","<ng-container *ngIf=\"label\">\r\n <div>\r\n <label class=\"select-label\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger m-1\">*</span></label\r\n >\r\n </div>\r\n</ng-container>\r\n<app-dynamic-form-treeview-select\r\n [treeview]=\"treeview\"\r\n [treeViewAsFormControl]=\"treeViewAsFormControl\"\r\n [multiple]=\"multiple\"\r\n [items]=\"data\"\r\n (valueChange)=\"getSelecteditems($event)\"\r\n [(value)]=\"selection\"\r\n class=\"dropdown-wrapper\"\r\n [ngClass]=\"{'input-filled' : selection && selection.length > 0 }\"\r\n>\r\n</app-dynamic-form-treeview-select>\r\n<mat-error\r\n [attr.data-automation-id]=\"'card-textitem-error-'\"\r\n class=\"app-textitem-editable-error\"\r\n *ngIf=\"hasErrors()\"\r\n>\r\n <ul>\r\n <li *ngIf=\"control.errors.required\">\r\n {{ \"VALIDATORS.REQUIRED\" | translate }}\r\n </li>\r\n </ul>\r\n</mat-error>\r\n","import {\r\n Component,\r\n ViewChild,\r\n OnInit,\r\n Optional,\r\n Self,\r\n Input,\r\n ViewEncapsulation,\r\n EventEmitter,\r\n Output,\r\n} from '@angular/core';\r\nimport { NgbDate, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport * as momentjs from 'moment';\r\nconst moment = momentjs;\r\n\r\nimport * as moment_ from 'moment-hijri';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n NgControl,\r\n} from '@angular/forms';\r\nimport { DateType } from '../../../hijri-gregorian-datepicker/utils/consts';\r\nimport { DateFormatterService } from '../../../hijri-gregorian-datepicker/services/date-formatter.service';\r\nconst momentHijri = moment_;\r\n/**\r\n * A Hijri and gregorian datepicker\r\n * that can be used inside reactive or template driven forms\r\n * @title\r\n * Hijri Gregorian Datepicker\r\n *\r\n * @example\r\n * <cts-dynamic-form-hijri-dateitem\r\n * formControlName=\"controlName\"\r\n * label=\"PATH.TO.LABEL.TRANSLATION\"\r\n * [minGreg]=\"maxDate\"\r\n * >\r\n * </cts-dynamic-form-hijri-dateitem>\r\n */\r\n@Component({\r\n selector: 'cts-dynamic-form-hijri-dateitem',\r\n templateUrl: './dynamic-form-hijri-dateitem.component.html',\r\n styleUrls: ['./dynamic-form-hijri-dateitem.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DynamicFormHijriDateitemComponent\r\n implements OnInit, ControlValueAccessor {\r\n /** Minimum Hijri Date */\r\n @Input()\r\n minHijri: NgbDate;\r\n /** Max Hijri Date */\r\n @Input()\r\n maxHijri: NgbDate;\r\n /** Minimum Gregorian Date */\r\n @Input()\r\n minGreg: NgbDate;\r\n /** Max Gregorian Date */\r\n @Input()\r\n maxGreg: NgbDate;\r\n /** Field Label */\r\n @Input()\r\n label;\r\n /** Is input disabled */\r\n @Input()\r\n isDisabled: boolean;\r\n /** is input a range picker */\r\n @Input()\r\n range: boolean;\r\n /** list inputs vertically (for range only) */\r\n @Input()\r\n vertical = false;\r\n /** Sets picker to readonly mode */\r\n @Input()\r\n isReadOnly: boolean = true;\r\n /** Emitted when the value changes */\r\n @Output()\r\n valueChanged: EventEmitter<any> = new EventEmitter();\r\n date: any;\r\n dateString: string;\r\n selectedDateType = DateType.Gregorian;\r\n onChange: any = () => { };\r\n onTouched: any = () => { };\r\n\r\n @ViewChild('datePicker') startDatePicker: any;\r\n\r\n constructor(\r\n private dateFormatterService: DateFormatterService,\r\n @Self() @Optional() private control: NgControl\r\n ) {\r\n this.control.valueAccessor = this;\r\n if (!this.range) {\r\n // this.date = this.dateFormatterService.GetTodayGregorian();\r\n }\r\n }\r\n writeValue(obj: any): void {\r\n if (obj) {\r\n if (!this.range) {\r\n this.date = this.dateFormatterService.ToGregorianDateStruct(obj, '');\r\n } else if (obj.from && obj.to) {\r\n this.date = {\r\n from: this.dateFormatterService.ToGregorianDateStruct(obj.from, ''),\r\n to: this.dateFormatterService.ToGregorianDateStruct(obj.to, '')\r\n\r\n }\r\n }\r\n }else{\r\n this.date = null; // to reset ui too\r\n }\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void { }\r\n ngOnInit(): void { }\r\n ngAfterViewInit(): void {\r\n //Called after ngAfterContentInit when the component's view has been initialized. Applies to components only.\r\n //Add 'implements AfterViewInit' to the class.\r\n // console.log('startDatePicker', this.startDatePicker);\r\n }\r\n\r\n removelable() { }\r\n\r\n setValue(event) {\r\n this.dateString = this.startDatePicker.getSelectedDate();\r\n if (this.dateString !== 'Invalid date') {\r\n this.onChange(this.dateString);\r\n }\r\n }\r\n isRequired() {\r\n if (!this.control?.control || !this.control.control.validator) {\r\n return false;\r\n }\r\n\r\n const validator = this.control.control.validator({} as AbstractControl);\r\n return validator && validator.required;\r\n }\r\n}\r\n","<ng-container *ngIf=\"label\">\r\n <div>\r\n <label class=\"hijri-date-lable\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger m-1\">*</span></label\r\n >\r\n </div>\r\n</ng-container>\r\n<div class=\"hijri-date-container\">\r\n <hijri-gregorian-datepicker\r\n [placeHolder]=\"'datePlaceHolder' | translate\"\r\n [(selectedDate)]=\"date\"\r\n [isRequired]=\"true\"\r\n [GregLabel]=\"'gregorian' | translate\"\r\n [hijriLabel]=\"'hijri' |translate\"\r\n [selectedDateType]=\"selectedDateType\"\r\n [disabled]=\"isDisabled\"\r\n [readonly]=\"isReadOnly\"\r\n [minHijri]=\"minHijri\"\r\n [maxHijri]=\"maxHijri\"\r\n [minGreg]=\"minGreg\"\r\n [maxGreg]=\"maxGreg\"\r\n [range]=\"range\"\r\n [vertical]=\"vertical\"\r\n (selectedDateChange)=\"setValue($event)\"\r\n #datePicker\r\n >\r\n </hijri-gregorian-datepicker>\r\n</div>\r\n","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n/** @ignore */\r\n\r\n@Directive({\r\n selector: '[appDynamicFormContentProxy]'\r\n})\r\nexport class DynamicFormContentProxyDirective {\r\n constructor(public viewContainerRef: ViewContainerRef) {}\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { DynamicFormUpdateService } from '../../services/dynamic-form-update.service';\r\nimport { DynamicFormMapItemModel } from '../../models/dynamic-form.models';\r\n\r\n/** @ignore */\r\n\r\n@Component({\r\n selector: 'app-dynamic-form-mapitem',\r\n templateUrl: './dynamic-form-mapitem.component.html',\r\n styleUrls: ['./dynamic-form-mapitem.component.scss']\r\n})\r\nexport class DynamicFormMapItemComponent {\r\n @Input()\r\n property: DynamicFormMapItemModel;\r\n\r\n @Input()\r\n displayEmpty: boolean = true;\r\n\r\n constructor(private dynamicFormUpdateService: DynamicFormUpdateService) {}\r\n\r\n showProperty() {\r\n return this.displayEmpty || !this.property.isEmpty();\r\n }\r\n\r\n isClickable() {\r\n return this.property.clickable;\r\n }\r\n\r\n clicked(): void {\r\n this.dynamicFormUpdateService.clicked(this.property);\r\n }\r\n}\r\n","<div\r\n [attr.data-automation-id]=\"'card-mapitem-label-' + property.key\"\r\n class=\"app-property-label\"\r\n *ngIf=\"showProperty()\"\r\n>\r\n {{ property.label | translate }}\r\n</div>\r\n<div class=\"app-property-value\">\r\n <div>\r\n <span\r\n *ngIf=\"!isClickable(); else elseBlock\"\r\n [attr.data-automation-id]=\"'card-mapitem-value-' + property.key\"\r\n >\r\n <span *ngIf=\"showProperty()\">{{ property.displayValue }}</span>\r\n </span>\r\n <ng-template #elseBlock>\r\n <span\r\n class=\"app-mapitem-clickable-value\"\r\n (click)=\"clicked()\"\r\n [attr.data-automation-id]=\"'card-mapitem-value-' + property.key\"\r\n >\r\n <span *ngIf=\"showProperty(); else elseEmptyValueBlock\">{{\r\n property.displayValue\r\n }}</span>\r\n </span>\r\n </ng-template>\r\n </div>\r\n <ng-template #elseEmptyValueBlock>\r\n {{ property.default | translate }}\r\n </ng-template>\r\n</div>\r\n","import { Type } from '@angular/core';\r\n\r\nexport function getType(type: any): any {\r\n const res = () => type;\r\n return res;\r\n}\r\nexport interface DynamicComponentModel {\r\n type: string;\r\n}\r\nexport type DynamicComponentResolveFunction = (\r\n model: DynamicComponentModel\r\n) => Type<{}>;\r\nexport class DynamicComponentResolver {\r\n static fromType(type: Type<{}>): DynamicComponentResolveFunction {\r\n return getType(type);\r\n }\r\n}\r\n\r\nexport abstract class DynamicComponentMapper {\r\n protected defaultValue: Type<{}> = undefined;\r\n protected types: { [key: string]: DynamicComponentResolveFunction } = {};\r\n\r\n /**\r\n * Gets the currently active DynamicComponentResolveFunction for a field type.\r\n * @param type The type whose resolver you want\r\n * @param defaultValue Default type returned for types that are not yet mapped\r\n * @returns Resolver function\r\n */\r\n getComponentTypeResolver(\r\n type: string,\r\n defaultValue: Type<{}> = this.defaultValue\r\n ): DynamicComponentResolveFunction {\r\n if (type) {\r\n return (\r\n this.types[type] || DynamicComponentResolver.fromType(defaultValue)\r\n );\r\n }\r\n return DynamicComponentResolver.fromType(defaultValue);\r\n }\r\n\r\n /**\r\n * Sets or optionally replaces a DynamicComponentResolveFunction for a field type.\r\n * @param type The type whose resolver you want to set\r\n * @param resolver The new resolver function\r\n * @param override The new resolver will only replace an existing one if this parameter is true\r\n */\r\n setComponentTypeResolver(\r\n type: string,\r\n resolver: DynamicComponentResolveFunction,\r\n override: boolean = true\r\n ) {\r\n if (!type) {\r\n throw new Error(`type is null or not defined`);\r\n }\r\n\r\n if (!resolver) {\r\n throw new Error(`resolver is null or not defined`);\r\n }\r\n\r\n const existing = this.types[type];\r\n if (existing && !override) {\r\n throw new Error(\r\n `already mapped, use override option if you intend replacing existing mapping.`\r\n );\r\n }\r\n\r\n this.types[type] = resolver;\r\n }\r\n\r\n /**\r\n * Finds the component type that is needed to render a form field.\r\n * @param model Form field model for the field to render\r\n * @param defaultValue Default type returned for field types that are not yet mapped.\r\n * @returns Component type\r\n */\r\n resolveComponentType(\r\n model: DynamicComponentModel,\r\n defaultValue: Type<{}> = this.defaultValue\r\n ): Type<{}> {\r\n if (model) {\r\n const resolver = this.getComponentTypeResolver(model.type, defaultValue);\r\n return resolver(model);\r\n }\r\n return defaultValue;\r\n }\r\n}\r\n","import { Injectable, Type } from '@angular/core';\r\nimport { DynamicFormDateItemComponent } from '../components/dynamic-form-dateitem/dynamic-form-dateitem.component';\r\nimport { DynamicFormMapItemComponent } from '../components/dynamic-form-mapitem/dynamic-form-mapitem.component';\r\nimport { DynamicFormTextItemComponent } from '../components/dynamic-form-textitem/dynamic-form-textitem.component';\r\nimport { DynamicFormSelectItemComponent } from '../components/dynamic-form-selectitem/dynamic-form-selectitem.component';\r\nimport { DynamicFormBoolItemComponent } from '../components/dynamic-form-boolitem/dynamic-form-boolitem.component';\r\n\r\n\r\nimport {\r\n DynamicComponentMapper,\r\n DynamicComponentModel,\r\n DynamicComponentResolver,\r\n DynamicComponentResolveFunction\r\n} from './dynamic-component-mapper.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CardItemTypeService extends DynamicComponentMapper {\r\n protected defaultValue: Type<{}> = DynamicFormTextItemComponent;\r\n\r\n protected types: { [key: string]: DynamicComponentResolveFunction } = {\r\n text: DynamicComponentResolver.fromType(DynamicFormTextItemComponent),\r\n select: DynamicComponentResolver.fromType(DynamicFormSelectItemComponent),\r\n int: DynamicComponentResolver.fromType(DynamicFormTextItemComponent),\r\n float: DynamicComponentResolver.fromType(DynamicFormTextItemComponent),\r\n date: DynamicComponentResolver.fromType(DynamicFormDateItemComponent),\r\n datetime: DynamicComponentResolver.fromType(DynamicFormDateItemComponent),\r\n bool: DynamicComponentResolver.fromType(DynamicFormBoolItemComponent),\r\n map: DynamicComponentResolver.fromType(DynamicFormMapItemComponent),\r\n\r\n };\r\n\r\n getComponentTypeResolver(\r\n type: string,\r\n defaultValue: Type<{}> = this.defaultValue\r\n ): DynamicComponentResolveFunction {\r\n if (type) {\r\n return (\r\n this.types[type] || DynamicComponentResolver.fromType(defaultValue)\r\n );\r\n }\r\n return DynamicComponentResolver.fromType(defaultValue);\r\n }\r\n resolveComponentType(\r\n model: DynamicComponentModel,\r\n defaultValue: Type<{}> = this.defaultValue\r\n ): Type<{}> {\r\n if (model) {\r\n const resolver = this.getComponentTypeResolver(model.type, defaultValue);\r\n return resolver(model);\r\n }\r\n return defaultValue;\r\n }\r\n}\r\n","import {\r\n Component,\r\n ComponentFactoryResolver,\r\n Input,\r\n OnChanges,\r\n SimpleChange,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { CardItemTypeService } from '../../services/card-item-types.service';\r\nimport { DynamicFormContentProxyDirective } from '../../directives/dynamic-form-content-proxy.directive';\r\nimport { DynamicFormItem } from '../../interfaces/dynamic-form-item.interface';\r\n\r\n/** @ignore */\r\n@Component({\r\n selector: 'app-dynamic-form-item-dispatcher',\r\n template: '<ng-template appDynamicFormContentProxy></ng-template>',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DynamicFormItemDispatcherComponent implements OnChanges {\r\n @Input()\r\n property: DynamicFormItem;\r\n\r\n @Input()\r\n editable: boolean;\r\n\r\n @Input()\r\n displayEmpty: boolean = true;\r\n\r\n @Input()\r\n displayNoneOption: boolean = true;\r\n\r\n @Input()\r\n displayClearAction: boolean = true;\r\n\r\n @ViewChild(DynamicFormContentProxyDirective, { static: true })\r\n private content: DynamicFormContentProxyDirective;\r\n\r\n private loaded: boolean = false;\r\n private componentReference: any = null;\r\n\r\n public ngOnInit;\r\n public ngDoCheck;\r\n\r\n constructor(\r\n private cardItemTypeService: CardItemTypeService,\r\n private resolver: ComponentFactoryResolver\r\n ) {\r\n const dynamicLifeCycleMethods = [\r\n 'ngOnInit',\r\n 'ngDoCheck',\r\n 'ngAfterContentInit',\r\n 'ngAfterContentChecked',\r\n 'ngAfterViewInit',\r\n 'ngAfterViewChecked',\r\n 'ngOnDestroy'\r\n ];\r\n\r\n dynamicLifeCycleMethods.forEach(method => {\r\n this[method] = this.proxy.bind(this, method);\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (!this.loaded) {\r\n this.loadComponent();\r\n this.loaded = true;\r\n }\r\n\r\n Object.keys(changes)\r\n .map(changeName => [changeName, changes[changeName]])\r\n .forEach(([inputParamName, simpleChange]: [string, SimpleChange]) => {\r\n this.componentReference.instance[inputParamName] =\r\n simpleChange.currentValue;\r\n });\r\n\r\n this.proxy('ngOnChanges', changes);\r\n }\r\n\r\n private loadComponent() {\r\n const factoryClass = this.cardItemTypeService.resolveComponentType(\r\n this.property\r\n );\r\n\r\n const factory = this.resolver.resolveComponentFactory(factoryClass);\r\n this.componentReference = this.content.viewContainerRef.createComponent(\r\n factory\r\n );\r\n this.componentReference.instance.editable = this.editable;\r\n this.componentReference.instance.property = this.property;\r\n this.componentReference.instance.displayEmpty = this.displayEmpty;\r\n this.componentReference.instance.displayNoneOption = this.displayNoneOption;\r\n this.componentReference.instance.displayClearAction = this.displayClearAction;\r\n }\r\n\r\n private proxy(methodName, ...args) {\r\n if (this.componentReference.instance[methodName]) {\r\n this.componentReference.instance[methodName].apply(\r\n this.componentReference.instance,\r\n args\r\n );\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Optional,\r\n Output,\r\n Self,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n NgControl,\r\n} from '@angular/forms';\r\nimport { json } from '@rxweb/reactive-form-validators';\r\n/**\r\n * Options group input that can be used inside reactive or template driven forms\r\n * @title\r\n * Options Group\r\n * @example\r\n * <cts-dynamic-form-options\r\n * [label]=\"'Choose an item'\"\r\n * [data]=\"arrayOfItems\"\r\n * [bindLabel]=\"'name'\"\r\n * [bindValue]=\"'id'\"\r\n * [multiple]=\"false\"\r\n * formControlName=\"option\">\r\n * </cts-dynamic-form-options>\r\n */\r\n@Component({\r\n selector: 'cts-dynamic-form-options',\r\n templateUrl: './dynamic-form-options.component.html',\r\n styleUrls: ['./dynamic-form-options.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DynamicFormOptionsComponent implements ControlValueAccessor {\r\n /** Radio group label */\r\n @Input()\r\n label;\r\n /** array of options */\r\n @Input()\r\n data;\r\n /** bind label to option object property */\r\n @Input() bindLabel: string;\r\n /** bind value to option object property */\r\n @Input() bindValue: string;\r\n /** can select multiple (checkboxes) or (radios) */\r\n @Input() multiple = false;\r\n // @Output() onSelectItems = new EventEmitter();\r\n\r\n selection = [];\r\n selectedItem: any;\r\n onChange: any = () => {};\r\n onTouched: any = () => {};\r\n constructor(@Self() @Optional() private control: NgControl) {\r\n this.control.valueAccessor = this;\r\n }\r\n ngOnInit(): void { }\r\n\r\n writeValue(value) {\r\n if (value && this.multiple) {\r\n this.selection = [...value];\r\n }\r\n if (value && !this.multiple) {\r\n this.selectedItem = value;\r\n }\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n throw new Error('Method not implemented.');\r\n }\r\n isRequired() {\r\n if (!this.control || !this.control.control.validator) {\r\n return false;\r\n }\r\n\r\n const validator = this.control.control.validator({} as AbstractControl);\r\n return validator && validator.required;\r\n }\r\n\r\n //multiple functions\r\n emitSelection(value, isChecked: boolean) {\r\n if (isChecked) {\r\n this.selection.push(value);\r\n } else {\r\n this.selection = this.selection.filter((item) => {\r\n return typeof value === 'object'\r\n ? JSON.stringify(value) != JSON.stringify(item)\r\n : value != item;\r\n });\r\n }\r\n this.onChange(this.selection);\r\n }\r\n containsValue(value, list: any[]) {\r\n return typeof value === 'object'\r\n ? list.some((elem) => JSON.stringify(elem) === JSON.stringify(value))\r\n : list.includes(value);\r\n }\r\n\r\n // !multiple functions\r\n onSelectedItemChanged(event) {\r\n this.onChange(this.selectedItem);\r\n }\r\n}\r\n","<!-- template for viewing single select selected value -->\r\n<ng-container *ngIf=\"multiple\">\r\n <ng-container *ngIf=\"label\">\r\n <div>\r\n <label class=\"radio-label\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger m-1\">*</span></label\r\n >\r\n </div>\r\n </ng-container>\r\n <div class=\"option-wrapper\" *ngFor=\"let item of data ; let i = index\">\r\n <span>\r\n <input\r\n id=\"item-{{ i }}\"\r\n type=\"checkbox\"\r\n (change)=\"\r\n emitSelection(\r\n bindValue ? item[bindValue] : item,\r\n $event.target.checked\r\n )\r\n \"\r\n [checked]=\"containsValue(bindValue ? item[bindValue] : item, selection)\"\r\n />\r\n </span>\r\n <span class=\"label-wrapper\">\r\n {{ (bindLabel ? item[bindLabel] : item) | translate }}\r\n </span>\r\n </div>\r\n</ng-container>\r\n<ng-container *ngIf=\"!multiple\">\r\n <ng-container *ngIf=\"label\">\r\n <div>\r\n <label class=\"radio-label\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger m-1\">*</span></label\r\n >\r\n </div>\r\n </ng-container>\r\n <div class=\"radio-option\">\r\n <mat-radio-group\r\n [(ngModel)]=\"selectedItem\"\r\n (ngModelChange)=\"onSelectedItemChanged($event)\"\r\n class=\"radio-group\"\r\n >\r\n <mat-radio-button\r\n class=\"radio-button\"\r\n *ngFor=\"let item of data\"\r\n [value]=\"bindValue ? item[bindValue] : item\"\r\n >\r\n {{ (bindLabel ? item[bindLabel] : item) | translate }}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </div>\r\n</ng-container>\r\n<!-- template for viewing multi select selected values -->\r\n<!-- [checked]=\"containsValue(bindValue ? item[bindValue] : item,selectedItem)\" -->\r\n","import { EventEmitter, Inject, Injectable } from '@angular/core';\r\nimport { from, Observable, ReplaySubject } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { NuxeoService } from '../../../Core/services/nuxeo/nuxeo.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TagsApiService {\r\n public getUpdatedFile = new EventEmitter();\r\n\r\n constructor(private nuxeoService: NuxeoService, @Inject('environment') private environment) {}\r\n\r\n addTagsToCorrespondence(correspondenceId, tags: string[]) {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation('AC_UA_Correspondence_Tag_Create', {\r\n url: `${this.environment.nuxeo}${this.environment.customAutomation}`,\r\n })\r\n .input(correspondenceId)\r\n .context({\r\n tags: tags.toString(),\r\n })\r\n .execute()\r\n ).pipe(\r\n catchError((err) => {\r\n throw err;\r\n })\r\n );\r\n }\r\n deleteTagsToCorrespondence(correspondenceId, tag) {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation('AC_UA_Correspondence_Tag_Delete', {\r\n url: `${this.environment.nuxeo}${this.environment.customAutomation}`,\r\n })\r\n .input(correspondenceId)\r\n .context({\r\n tags: tag,\r\n })\r\n .execute()\r\n ).pipe(\r\n catchError((err) => {\r\n throw err;\r\n })\r\n );\r\n }\r\n tagsSuggestion(term: string): Observable<any> {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation('Tag.Suggestion', {\r\n url: `${this.environment.nuxeo}${this.environment.customAutomation}`,\r\n })\r\n .params({\r\n searchTerm: term,\r\n })\r\n .context({})\r\n .execute()\r\n );\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n OnInit,\r\n Optional,\r\n Self,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n NgControl,\r\n} from '@angular/forms';\r\nimport { concat, Observable, of, Subject } from 'rxjs';\r\nimport {\r\n debounceTime,\r\n distinctUntilChanged,\r\n tap,\r\n switchMap,\r\n catchError,\r\n} from 'rxjs/operators';\r\nimport { TagsApiService } from '../../../cts-tags/services/tags-api.service';\r\n\r\n/**\r\n * A tags dropdown input integrated with tags API,\r\n * that can be used inside reactive or template driven forms\r\n * @title\r\n * tags dropdown\r\n * @example\r\n * <cts-dynamic-form-select-tag\r\n * formControlName=\"controlName\"\r\n * [label]=\"'PATH.TO.TRANSLATION'\"\r\n * ></cts-dynamic-form-select-tag>\r\n */\r\n@Component({\r\n selector: 'cts-dynamic-form-select-tag',\r\n templateUrl: './dynamic-form-select-tag.component.html',\r\n styleUrls: ['./dynamic-form-select-tag.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DynamicFormSelectTagComponent\r\n implements OnInit, ControlValueAccessor\r\n{\r\n /** Field Label */\r\n @Input() label: string;\r\n\r\n tags$: Observable<any[]>;\r\n tagsLoading = false;\r\n tagsInput$ = new Subject<string>();\r\n selectedTags;\r\n tagsList: any[];\r\n onChange: any = () => {};\r\n onTouched: any = () => {};\r\n constructor(\r\n @Self() @Optional() private control: NgControl,\r\n private tagsApiService: TagsApiService\r\n ) {\r\n if (this.control) {\r\n this.control.valueAccessor = this;\r\n }\r\n }\r\n writeValue(value) {\r\n if (value) {\r\n this.selectedTags = this.buildTagObj(value);\r\n }\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {}\r\n\r\n ngOnInit(): void {\r\n this.loadTags();\r\n }\r\n emitSelection(event) {\r\n let tags = [];\r\n this.selectedTags.forEach((tagObj) => {\r\n tags.push(tagObj.id || tagObj.displayLabel);\r\n });\r\n this.onChange(tags);\r\n }\r\n private loadTags() {\r\n this.tags$ = concat(\r\n of([]), // default items\r\n this.tagsInput$.pipe(\r\n debounceTime(200),\r\n distinctUntilChanged(),\r\n tap(() => (this.tagsLoading = true)),\r\n switchMap((term) =>\r\n this.tagsApiService.tagsSuggestion(term).pipe(\r\n catchError(() => of([])), // empty list on error\r\n tap(() => (this.tagsLoading = false))\r\n )\r\n )\r\n )\r\n );\r\n }\r\n isRequired() {\r\n if (!this.control || !this.control.control.validator) {\r\n return false;\r\n }\r\n\r\n const validator = this.control.control.validator({} as AbstractControl);\r\n return validator && validator.required;\r\n }\r\n buildTagObj(value) {\r\n let arrayOfTags = [];\r\n value.forEach((tag) => {\r\n arrayOfTags.push({ id: tag, displayLabel: tag });\r\n });\r\n console.log(\"arrayOfTags\",arrayOfTags)\r\n return arrayOfTags;\r\n }\r\n}\r\n","<ng-container *ngIf=\"label\">\r\n <div>\r\n <label class=\"select-label\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger m-1\">*</span></label\r\n >\r\n </div>\r\n</ng-container>\r\n<div class=\"tags\">\r\n <ng-select\r\n [items]=\"tags$ | async\"\r\n bindLabel=\"displayLabel\"\r\n [addTag]=\"true\"\r\n [addTagText]=\"'Tags.add' | translate\"\r\n [multiple]=\"true\"\r\n [hideSelected]=\"true\"\r\n [minTermLength]=\"2\"\r\n [loading]=\"tagsLoading\"\r\n [typeToSearchText]=\"'Tags.typeToSearchText' | translate\"\r\n [typeahead]=\"tagsInput$\"\r\n [(ngModel)]=\"selectedTags\"\r\n (change)=\"emitSelection($event)\"\r\n required\r\n [placeholder]=\"'Tags.placeholder' | translate\"\r\n >\r\n </ng-select>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { from, Observable } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { NuxeoService } from '../../../../../Core/services/nuxeo/nuxeo.service';\r\n\r\n\r\n/** @ignore */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UsersInDepartmentsApiService {\r\n constructor(private nuxeoService: NuxeoService) {}\r\n getAllUsers(params = {}): Observable<any> {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .request('user/search')\r\n .queryParams({ q: '*', ...params })\r\n .get()\r\n ).pipe(\r\n catchError((err) => {\r\n throw err;\r\n })\r\n );\r\n }\r\n getUsersSuggestions(username: string, params = {}): Observable<any> {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .request('user/search')\r\n .queryParams({ q: username, ...params })\r\n .get()\r\n ).pipe(\r\n catchError((err) => {\r\n throw err;\r\n })\r\n );\r\n }\r\n getCtsUsers(deptTitle, params = {}): Observable<any> {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .request(`group-members/all-members/cts_role_${deptTitle}`)\r\n .queryParams({ q: '*', ...params })\r\n .get()\r\n ).pipe(\r\n catchError((err) => {\r\n throw err;\r\n })\r\n );\r\n }\r\n}\r\n// .request(`cts_role_${deptTitle}`)\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Optional,\r\n Output,\r\n Self,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n NgControl,\r\n FormControl,\r\n AbstractControl,\r\n} from '@angular/forms';\r\nimport { NgSelectComponent } from '@ng-select/ng-select';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Observable } from 'rxjs';\r\nimport { UsersInDepartmentsApiService } from '../dynamic-form-select-users/services/user-api.service';\r\n\r\n/**\r\n * @ignore\r\n * User selector\r\n */\r\n@Component({\r\n selector: 'cts-dynamic-form-select-user-filter',\r\n templateUrl: './dynamic-form-select-user-filter.component.html',\r\n styleUrls: ['./dynamic-form-select-user-filter.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DynamicFormSelectUserFilterComponent\r\n implements OnChanges, ControlValueAccessor\r\n{\r\n @ViewChild('ngSelectComponent') ngSelectComponent: NgSelectComponent;\r\n data = [];\r\n @Input() deptTitle: string;\r\n @Input() label: string;\r\n @Input() bindValue;\r\n @Input() bindLabel;\r\n @Input() placeholder;\r\n @Input() multiple = false;\r\n @Input() searchable = false;\r\n @Input() closeOnSelect = true;\r\n @Input() hideSelectedItems = false;\r\n @Input() preSelectedValues;\r\n @Input() isAsync = false;\r\n @Input() attachSource = false;\r\n @Input() source$: Observable<any>;\r\n @Input() hideLoaded = false;\r\n @Input() loading = false;\r\n @Input() disabled = false;\r\n @Input() filter: string[];\r\n @Output() onSelectItems = new EventEmitter();\r\n selection;\r\n buffer = [];\r\n bufferSize = 50;\r\n numberOfItemsFromEndBeforeFetchingMore = 10;\r\n\r\n propagateChange: any = () => {};\r\n validateFn: any = () => {};\r\n\r\n public onTouched: any = () => {\r\n /*Empty*/\r\n };\r\n pageIndex: number = 0;\r\n isNextPageAvailable: boolean;\r\n public get invalid(): boolean {\r\n return this.control ? this.control.invalid : false;\r\n }\r\n\r\n public get showError(): boolean {\r\n if (!this.control) {\r\n return false;\r\n }\r\n\r\n const { dirty, touched } = this.control;\r\n\r\n return this.invalid ? dirty || touched : false;\r\n }\r\n constructor(\r\n private userApiService: UsersInDepartmentsApiService,\r\n public translate: TranslateService,\r\n @Self() @Optional() public control: NgControl\r\n ) {\r\n if (this.control) {\r\n this.control.valueAccessor = this;\r\n }\r\n }\r\n\r\n emitSelection(event) {\r\n this.propagateChange(this.selection);\r\n this.onSelectItems.emit(event);\r\n }\r\n\r\n onScrollToEnd() {\r\n this.fetchMore();\r\n if (this.isNextPageAvailable) {\r\n this.getDepartments(++this.pageIndex);\r\n }\r\n }\r\n\r\n private fetchMore() {\r\n this.loading = true;\r\n const len = this.buffer.length;\r\n const more = this.data.slice(len, this.bufferSize + len);\r\n this.buffer = this.data.concat(more);\r\n this.loading = false;\r\n }\r\n x = ['imad12', 'rasha'];\r\n y = 'imad12';\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const isFirstChange = Object.values(changes).some((c) => c.isFirstChange());\r\n if (!isFirstChange) {\r\n this.getDepartments();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.getDepartments();\r\n setTimeout(() => {\r\n // to make select render selected values to were send from out side\r\n //delay to allow outside to get data and send it to here\r\n if (this.preSelectedValues) {\r\n this.selection = this.preSelectedValues;\r\n }\r\n }, 10000);\r\n }\r\n\r\n writeValue(value) {\r\n if (value) {\r\n this.selection = value;\r\n }\r\n }\r\n registerOnChange(fn) {\r\n this.propagateChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(c: FormControl) {\r\n return this.validateFn(c);\r\n }\r\n isRequired() {\r\n if (!this.control || !this.control.control.validator) {\r\n return false;\r\n }\r\n\r\n const validator = this.control.control.validator({} as AbstractControl);\r\n return validator && validator.required;\r\n }\r\n hasErrors(): boolean {\r\n return this.showError;\r\n }\r\n getDepartments(page = 0) {\r\n if (this.deptTitle === 'all') {\r\n this.userApiService\r\n .getAllUsers({\r\n currentPageIndex: page,\r\n pageSize: 20,\r\n })\r\n .subscribe((data) => {\r\n let filterData = data.entries.filter((user) => {\r\n const includedInFilter = this.filter.includes(user.id);\r\n return !includedInFilter;\r\n });\r\n this.data = this.data.concat(filterData);\r\n this.isNextPageAvailable = data.isNextPageAvailable;\r\n this.buffer = (this.data || []).slice(0, this.bufferSize);\r\n this.buffer.map((item) => {\r\n item.isSelected = false;\r\n });\r\n });\r\n } else {\r\n this.userApiService\r\n .getCtsUsers(this.deptTitle, {\r\n currentPageIndex: page,\r\n pageSize: 20,\r\n })\r\n .subscribe((data) => {\r\n this.data = this.data.concat(data.users);\r\n this.isNextPageAvailable = data.isNextPageAvailable;\r\n this.buffer = (this.data || []).slice(0, this.bufferSize);\r\n this.buffer.map((item) => {\r\n item.isSelected = false;\r\n });\r\n });\r\n }\r\n }\r\n\r\n reset() {\r\n this.ngSelectComponent.handleClearClick();\r\n }\r\n}\r\n","<ng-container *ngIf=\"label\">\r\n <div>\r\n <label class=\"select-label\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger m-1\">*</span></label\r\n >\r\n </div>\r\n</ng-container>\r\n<div class=\"user-select\" [ngClass]=\"{ 'multiple-wrapper': multiple }\" SetRtl>\r\n <ng-select\r\n #ngSelectComponent\r\n [items]=\"buffer\"\r\n [bindLabel]=\"bindLabel\"\r\n [bindValue]=\"bindValue\"\r\n [placeholder]=\"placeholder\"\r\n [multiple]=\"multiple\"\r\n [searchable]=\"searchable\"\r\n [closeOnSelect]=\"closeOnSelect\"\r\n [hideSelected]=\"hideSelectedItems\"\r\n [loading]=\"loading\"\r\n (scrollToEnd)=\"onScrollToEnd()\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"selection\"\r\n (change)=\"emitSelection($event)\"\r\n >\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <span\r\n style=\"\r\n display: flex;\r\n align-items: center;\r\n column-gap: 4px;\r\n font-size: 16px;\r\n \"\r\n >\r\n <div style=\"width: 30px; height: 30px\">\r\n <cts-avatar [user]=\"item\"></cts-avatar>\r\n </div>\r\n <div class=\"user-name\">\r\n {{ item.properties.firstName }} {{ item.properties.lastName }}\r\n </div>\r\n <div>\r\n <span\r\n class=\"ng-value-icon right\"\r\n (click)=\"clear(item)\"\r\n aria-hidden=\"true\"\r\n >×</span\r\n >\r\n </div>\r\n </span>\r\n </ng-template>\r\n\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span\r\n style=\"\r\n display: flex;\r\n align-items: center;\r\n column-gap: 4px;\r\n font-size: 16px;\r\n \"\r\n >\r\n <div style=\"width: 30px; height: 30px\">\r\n <cts-avatar [user]=\"item\"></cts-avatar>\r\n </div>\r\n <div>\r\n {{ item.properties.firstName }} {{ item.properties.lastName }}\r\n </div>\r\n\r\n <div></div>\r\n </span>\r\n </ng-template>\r\n </ng-select>\r\n</div>\r\n<mat-error\r\n [attr.data-automation-id]=\"'card-textitem-error-'\"\r\n class=\"app-textitem-editable-error\"\r\n *ngIf=\"hasErrors()\"\r\n>\r\n <ul>\r\n <li *ngIf=\"control.errors.required\">\r\n {{ \"VALIDATORS.REQUIRED\" | translate }}\r\n </li>\r\n </ul>\r\n</mat-error>\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n Optional,\r\n Output,\r\n Self,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n FormControl,\r\n NgControl,\r\n} from '@angular/forms';\r\nimport { NgSelectComponent } from '@ng-select/ng-select';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Observable, of, Subject } from 'rxjs';\r\nimport {\r\n catchError,\r\n debounceTime,\r\n distinctUntilChanged,\r\n switchMap,\r\n tap,\r\n} from 'rxjs/operators';\r\nimport { TranslationService } from '../../../../Core/services/translation/translation.service';\r\nimport { UsersInDepartmentsApiService } from './services/user-api.service';\r\nimport * as _ from 'lodash';\r\nimport { Cacheable } from 'ts-cacheable';\r\n/**\r\n * Users dropdown input integrated with users API,\r\n * that can be used inside reactive or template driven forms\r\n * @title\r\n * Users dropdown\r\n * @example\r\n * <cts-dynamic-form-select-users\r\n * formControlName=\"controlName\"\r\n * [bindValue]=\"bindToProperty\"\r\n * [bindLabel]=\"'bindToLabel'\"\r\n * [searchable]=\"true\"\r\n * [label]=\"'PATH.TO.TRANSLATION'\"\r\n * [deptTitle]=\"'all'\"\r\n * ></cts-dynamic-form-select-users>\r\n */\r\nconst minute = 60000;\r\n@Component({\r\n selector: 'cts-dynamic-form-select-users',\r\n templateUrl: './dynamic-form-select-users.component.html',\r\n styleUrls: ['./dynamic-form-select-users.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DynamicFormSelectUsersComponent\r\n implements OnChanges, OnDestroy, ControlValueAccessor\r\n{\r\n @ViewChild('ngSelectComponent') ngSelectComponent: NgSelectComponent;\r\n selectionstrg: string;\r\n data = [];\r\n allUsers: boolean;\r\n userNameInput$ = new Subject<string>();\r\n /** filter users by department (departmentName | all) */\r\n @Input() deptTitle: string;\r\n /** Field Label */\r\n @Input() label: string;\r\n /** Bind value to object property */\r\n @Input() bindValue;\r\n /** Bind label to object property */\r\n @Input() bindLabel;\r\n /** Placeholder text */\r\n @Input() placeholder;\r\n /** Can select multiple */\r\n @Input() multiple = false;\r\n /** is dropdown searchable */\r\n @Input() searchable = false;\r\n /** should close dropdown on value selection */\r\n @Input() closeOnSelect = true;\r\n /** should hide selected items */\r\n @Input() hideSelectedItems = false;\r\n /** Pre Selected values */\r\n @Input() preSelectedValues;\r\n /** is Disabled */\r\n @Input() disabled = false;\r\n /** List of usernames that should be exluded */\r\n @Input() filter: string[] = [];\r\n /** event emitted when item is selected */\r\n @Output() onSelectItems = new EventEmitter();\r\n loading = false;\r\n selection;\r\n buffer = [];\r\n bufferSize = 1000;\r\n numberOfItemsFromEndBeforeFetchingMore = 10;\r\n suffix;\r\n\r\n propagateChange: any = () => {};\r\n validateFn: any = () => {};\r\n\r\n public onTouched: any = () => {\r\n /*Empty*/\r\n };\r\n pageIndex: number = 0;\r\n isNextPageAvailable: boolean;\r\n public get invalid(): boolean {\r\n return this.control ? this.control.invalid : false;\r\n }\r\n\r\n public get showError(): boolean {\r\n if (!this.control) {\r\n return false;\r\n }\r\n\r\n const { dirty, touched } = this.control;\r\n\r\n return this.invalid ? dirty || touched : false;\r\n }\r\n constructor(\r\n private userApiService: UsersInDepartmentsApiService,\r\n public translate: TranslateService,\r\n private translation: TranslationService,\r\n @Self() @Optional() public control: NgControl\r\n ) {\r\n if (this.control) {\r\n this.control.valueAccessor = this;\r\n }\r\n }\r\n\r\n emitSelection(event) {\r\n if (this.multiple) {\r\n this.selectionstrg = `${this.selection.length} ${this.suffix}`;\r\n }\r\n this.propagateChange(this.selection);\r\n this.onSelectItems.emit(event);\r\n }\r\n\r\n onScrollToEnd() {\r\n this.fetchMore();\r\n ++this.pageIndex;\r\n if (this.isNextPageAvailable && this.allUsers) {\r\n this.getDepartments(this.pageIndex);\r\n }\r\n }\r\n\r\n private fetchMore() {\r\n this.loading = true;\r\n const len = this.buffer.length;\r\n const more = this.data.slice(len, this.bufferSize + len);\r\n this.buffer = this.data.concat(more);\r\n this.loading = false;\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.deptTitle && !changes.deptTitle?.firstChange) {\r\n this.data = [];\r\n this.buffer = [];\r\n this.getDepartments();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.allUsers = this.deptTitle === 'all' ? true : false;\r\n this.selection = this.multiple ? [] : undefined;\r\n if (this.allUsers) {\r\n this.loadUsers();\r\n }\r\n this.getDepartments();\r\n this.translation.isArabic.subscribe((ar) => {\r\n ar\r\n ? (this.suffix = 'مستخدم تم إختياره')\r\n : (this.suffix = 'Users Selected');\r\n if (this.multiple) {\r\n this.selectionstrg = `${this.selection.length} ${this.suffix}`;\r\n }\r\n });\r\n }\r\n writeValue(value) {\r\n if (value) {\r\n this.selection = value;\r\n if (this.multiple) {\r\n this.selectionstrg = `${this.selection.length} ${this.suffix}`;\r\n }\r\n }\r\n }\r\n\r\n compareFn(item, selected) {\r\n console.log(\"item 1\", item);\r\n console.log(\"Item 2\", selected);\r\n return item.id === selected.id;\r\n }\r\n registerOnChange(fn) {\r\n this.propagateChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(c: FormControl) {\r\n return this.validateFn(c);\r\n }\r\n isRequired() {\r\n if (!this.control || !this.control.control.validator) {\r\n return false;\r\n }\r\n\r\n const validator = this.control.control.validator({} as AbstractControl);\r\n return validator && validator.required;\r\n }\r\n hasErrors(): boolean {\r\n return this.showError;\r\n }\r\n getDepartments(page = 0) {\r\n if (this.deptTitle) {\r\n if (this.allUsers) {\r\n this.getAllUsers(page).subscribe((data) => {\r\n let newData = this.constructUserArray(data.entries, 'id');\r\n this.data = this.data.concat(newData);\r\n this.isNextPageAvailable = data.isNextPageAvailable;\r\n this.buffer = (this.data || []).slice(0, this.bufferSize);\r\n this.buffer.map((item) => {\r\n item.isSelected = false;\r\n });\r\n this.loading = false; // for loading spinner\r\n });\r\n } else {\r\n this.getCtsUsers(this.deptTitle).subscribe((data) => {\r\n let newData = this.constructUserArray(\r\n data.users,\r\n 'properties.username'\r\n );\r\n this.data = this.data.concat(newData);\r\n this.isNextPageAvailable = data.isNextPageAvailable;\r\n this.buffer = (this.data || []).slice(0, this.bufferSize);\r\n this.buffer.map((item) => {\r\n item.isSelected = false;\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n // @Cacheable({\r\n // maxCacheCount: 1000,\r\n // maxAge: 20000,\r\n // })\r\n getAllUsers(page = 0): Observable<any> {\r\n return this.userApiService.getAllUsers({\r\n currentPageIndex: page,\r\n pageSize: 20,\r\n });\r\n }\r\n\r\n getCtsUsers(deptTitle): Observable<any> {\r\n return this.userApiService.getCtsUsers(deptTitle);\r\n }\r\n\r\n @Cacheable({\r\n maxCacheCount: 1000,\r\n maxAge: 5 * minute,\r\n })\r\n getUsersSuggestions(term): Observable<any> {\r\n return this.userApiService.getUsersSuggestions(term);\r\n }\r\n private loadUsers() {\r\n this.userNameInput$\r\n .pipe(\r\n debounceTime(200),\r\n distinctUntilChanged(),\r\n tap(() => (this.loading = true)),\r\n switchMap((term) => {\r\n if (term && term.length) {\r\n return this.getUsersSuggestions(term);\r\n } else {\r\n return this.getAllUsers();\r\n }\r\n })\r\n )\r\n .subscribe(\r\n (data: any) => {\r\n if (data.entries.length) {\r\n let newData = this.constructUserArray(data.entries, 'id');\r\n this.buffer = (newData || []).slice(0, this.bufferSize);\r\n this.isNextPageAvailable = data.isNextPageAvailable;\r\n this.loading = false;\r\n } else {\r\n this.buffer = [];\r\n this.loading = false;\r\n }\r\n },\r\n (err) => {\r\n this.loading = false;\r\n this.buffer = [];\r\n }\r\n );\r\n }\r\n private constructUserArray(data, filterValue: string) {\r\n let ConstructedData: any[];\r\n ConstructedData = this.insertFUllName(data);\r\n ConstructedData = this.filterUsers(data, filterValue);\r\n return ConstructedData;\r\n }\r\n\r\n private insertFUllName(data) {\r\n return data.map((user) => {\r\n user.fullName = `${user.properties.firstName} ${user.properties.lastName}`;\r\n });\r\n }\r\n private filterUsers(data, path: string) {\r\n let filterData = data.filter((user) => {\r\n const includedInFilter =\r\n this.filter.includes(_.get(user, path)) ||\r\n _.get(user, path) === 'Administrator';\r\n return !includedInFilter;\r\n });\r\n return filterData;\r\n }\r\n\r\n reset() {\r\n this.ngSelectComponent.handleClearClick();\r\n }\r\n ngOnDestroy(): void {\r\n this.userNameInput$.unsubscribe();\r\n }\r\n}\r\n","<ng-container *ngIf=\"label\">\r\n <div>\r\n <label class=\"select-label\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger m-1\">*</span></label\r\n >\r\n </div>\r\n</ng-container>\r\n<div class=\"user-select\" [ngClass]=\"{ 'multiple-wrapper': multiple }\" SetRtl>\r\n <ng-select\r\n #ngSelectComponent\r\n [items]=\"buffer\"\r\n [bindLabel]=\"bindLabel\"\r\n [placeholder]=\"\r\n multiple && selection.length > 0 ? selectionstrg : placeholder\r\n \"\r\n [multiple]=\"multiple\"\r\n [searchable]=\"searchable\"\r\n [closeOnSelect]=\"closeOnSelect\"\r\n [hideSelected]=\"hideSelectedItems\"\r\n [loading]=\"loading\"\r\n (scrollToEnd)=\"onScrollToEnd()\"\r\n [disabled]=\"disabled\"\r\n [typeahead]=\"userNameInput$\"\r\n [compareWith]=\"compareFn\"\r\n [(ngModel)]=\"selection\"\r\n (change)=\"emitSelection($event)\"\r\n >\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <span\r\n style=\"\r\n display: flex;\r\n align-items: center;\r\n column-gap: 4px;\r\n font-size: 16px;\r\n \"\r\n >\r\n <div style=\"width: 30px; height: 30px\">\r\n <cts-avatar [user]=\"item\"></cts-avatar>\r\n </div>\r\n <div class=\"user-name\">\r\n {{ item.properties.firstName }} {{ item.properties.lastName }}\r\n </div>\r\n <div>\r\n <span\r\n class=\"ng-value-icon right\"\r\n (click)=\"clear(item)\"\r\n aria-hidden=\"true\"\r\n >×</span\r\n >\r\n </div>\r\n </span>\r\n </ng-template>\r\n\r\n <ng-template\r\n ng-option-tmp\r\n let-item=\"item\"\r\n let-item$=\"item$\"\r\n let-index=\"index\"\r\n >\r\n <span\r\n style=\"\r\n display: flex;\r\n align-items: center;\r\n column-gap: 4px;\r\n font-size: 16px;\r\n \"\r\n >\r\n <mat-checkbox\r\n *ngIf=\"multiple\"\r\n id=\"item-{{ index }}\"\r\n [ngModel]=\"item$.selected\"\r\n (click)=\"(false)\"\r\n ></mat-checkbox>\r\n <div style=\"width: 30px; height: 30px\">\r\n <cts-avatar [user]=\"item\"></cts-avatar>\r\n </div>\r\n <div>\r\n {{ item.properties.firstName }} {{ item.properties.lastName }}\r\n </div>\r\n\r\n <div></div>\r\n </span>\r\n </ng-template>\r\n </ng-select>\r\n</div>\r\n<mat-error\r\n [attr.data-automation-id]=\"'card-textitem-error-'\"\r\n class=\"app-textitem-editable-error\"\r\n *ngIf=\"hasErrors()\"\r\n>\r\n <ul>\r\n <li *ngIf=\"control.errors.required\">\r\n {{ \"VALIDATORS.REQUIRED\" | translate }}\r\n </li>\r\n </ul>\r\n</mat-error>\r\n","import {\r\n Component,\r\n Input,\r\n OnChanges,\r\n Optional,\r\n Self,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n NgControl,\r\n} from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DynamicFormTextItemModel } from '../../models/dynamic-form.models';\r\nimport { DynamicFormUpdateService } from '../../services/dynamic-form-update.service';\r\n\r\n/**\r\n * A textarea input that can be used inside reactive or template driven forms\r\n * @title\r\n * Textarea\r\n * @example\r\n * <app-dynamic-form-textarea\r\n * [horizontalAlign]=\"false\"\r\n * formControlName=\"controlName\"\r\n * [placeholder]=\"'PATH.TO.PLACEHOLDER.STRING'\"\r\n * ></app-dynamic-form-textarea>\r\n */\r\n@Component({\r\n selector: 'app-dynamic-form-textarea',\r\n templateUrl: './dynamic-form-textarea.component.html',\r\n styleUrls: ['./dynamic-form-textarea.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DynamicFormTextareaComponent\r\n implements OnChanges, ControlValueAccessor\r\n{\r\n static DEFAULT_SEPARATOR = ', ';\r\n /** @deprecated */\r\n @Input()\r\n property: DynamicFormTextItemModel;\r\n\r\n /** Field Label */\r\n @Input()\r\n label;\r\n /** is editable */\r\n @Input()\r\n editable = true;\r\n /** is dsisabled */\r\n @Input()\r\n disabled = false;\r\n /** DOM element Id */\r\n @Input()\r\n id;\r\n /** Input placeholder */\r\n @Input() placeholder = '';\r\n /** @deprecated */\r\n @Input()\r\n displayEmpty = true;\r\n\r\n /** make label and control side by side not vertical */\r\n @Input() horizontalAlign = true;\r\n\r\n @ViewChild('editorInput')\r\n private editorInput: any;\r\n\r\n inEdit = false;\r\n editedValue: string;\r\n errorMessages: string[];\r\n valueSeparator: string;\r\n\r\n constructor(\r\n private dynamicFormUpdateService: DynamicFormUpdateService,\r\n public translate: TranslateService,\r\n @Self() @Optional() public control: NgControl\r\n ) {\r\n this.control.valueAccessor = this;\r\n this.valueSeparator = DynamicFormTextareaComponent.DEFAULT_SEPARATOR;\r\n }\r\n onChange: any = () => {};\r\n onTouched: any = () => {};\r\n\r\n isRequired() {\r\n if (!this.control.control.validator) {\r\n return false;\r\n }\r\n\r\n const validator = this.control.control.validator({} as AbstractControl);\r\n return validator && validator.required;\r\n }\r\n writeValue(obj: any): void {\r\n this.editedValue = obj;\r\n // this.property.value = obj;\r\n\r\n // throw new Error('Method not implemented.');\r\n }\r\n public get invalid(): boolean {\r\n return this.control ? this.control.invalid : false;\r\n }\r\n\r\n public get showError(): boolean {\r\n if (!this.control) {\r\n return false;\r\n }\r\n\r\n const { dirty, touched } = this.control;\r\n\r\n return this.invalid ? dirty || touched : false;\r\n }\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n ngOnChanges(): void {\r\n // this.editedValue = this.property.multiline\r\n // ? this.property.displayValue\r\n // : this.property.value;\r\n }\r\n\r\n showProperty(): boolean {\r\n return this.displayEmpty || !this.property.isEmpty();\r\n }\r\n\r\n showClickableIcon(): boolean {\r\n return this.hasIcon() && this.editable;\r\n }\r\n\r\n isEditable(): boolean {\r\n return this.editable;\r\n }\r\n isDisabled(): boolean {\r\n return this.disabled;\r\n }\r\n\r\n isClickable(): boolean {\r\n return !!this.property.clickable;\r\n }\r\n\r\n hasIcon(): boolean {\r\n return !!this.property.icon;\r\n }\r\n\r\n hasErrors(): boolean {\r\n return this.showError;\r\n }\r\n\r\n setEditMode(editStatus: boolean): void {\r\n this.inEdit = editStatus;\r\n setTimeout(() => {\r\n if (this.editorInput) {\r\n this.editorInput.nativeElement.click();\r\n }\r\n }, 0);\r\n }\r\n\r\n reset(event: MouseEvent | KeyboardEvent): void {\r\n event.stopPropagation();\r\n\r\n /*\r\n this.editedValue = this.property.multiline\r\n ? this.property.displayValue\r\n : this.property.value; */\r\n this.setEditMode(false);\r\n this.resetErrorMessages();\r\n }\r\n\r\n private resetErrorMessages() {\r\n this.errorMessages = [];\r\n }\r\n\r\n update(event: MouseEvent | KeyboardEvent): void {\r\n event.stopPropagation();\r\n const updatedValue = this.prepareValueForUpload(\r\n this.property,\r\n this.editedValue\r\n );\r\n // this.property.value = updatedValue;\r\n this.onChange(updatedValue);\r\n this.onTouched();\r\n // this.dynamicFormUpdateService.update(this.property, updatedValue);\r\n this.setEditMode(false);\r\n this.resetErrorMessages();\r\n }\r\n\r\n prepareValueForUpload(\r\n property: DynamicFormTextItemModel,\r\n value: string\r\n ): string | string[] {\r\n return value;\r\n }\r\n\r\n onTextAreaInputChange() {\r\n if (this.property) {\r\n this.errorMessages = this.property.getValidationErrors(this.editedValue);\r\n }\r\n }\r\n\r\n clicked(): void {\r\n if (typeof this.property.clickCallBack === 'function') {\r\n this.property.clickCallBack();\r\n } else {\r\n this.dynamicFormUpdateService.clicked(this.property);\r\n }\r\n }\r\n}\r\n","<div class=\"app-property-value\">\r\n <div class=\"app-input-wrapper\" [ngClass]=\"{'row' : horizontalAlign}\">\r\n\r\n <label *ngIf=\"label\" for=\"formGroupInputSmall\" [ngClass]=\"{'col-3' : horizontalAlign}\">{{\r\n label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger\">*</span></label>\r\n <div [ngClass]=\"{'col-9' : horizontalAlign}\">\r\n <ng-container *ngIf=\"isEditable(); else readOnly\">\r\n <textarea [id]='id' class=\"form-control \" placeholder=\"{{placeholder | translate}}\" [attr.disabled]=\"isDisabled() || null\" #editorInput matTextareaAutosize\r\n matAutosizeMinRows=\"3\" matAutosizeMaxRows=\"5\" [(ngModel)]=\"editedValue\" (input)=\"onTextAreaInputChange()\"\r\n (keyup)=\"update($event)\" [attr.data-automation-id]=\"'card-textitem-edittextarea-' \"></textarea>\r\n <mat-error [attr.data-automation-id]=\"'card-textitem-error-'\" class=\"app-textitem-editable-error\"\r\n *ngIf=\"hasErrors()\">\r\n <ul>\r\n <li *ngIf=\"control.errors.required\">\r\n {{ 'VALIDATORS.REQUIRED' | translate }}\r\n </li>\r\n </ul>\r\n </mat-error>\r\n </ng-container>\r\n <ng-template #readOnly>\r\n {{editedValue}}\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FieldsAdapterService {\r\n\r\n /* this.builderComponents = {\r\n VOC_CorrespondenceCategory: {\r\n title: 'Category',\r\n icon: 'terminal',\r\n schema: {\r\n 'customOptions.vocId': 'VOC_CorrespondenceCategory',\r\n label: 'Category',\r\n type: 'vocabulary',\r\n fixedKey: 'VOC_CorrespondenceCategory',\r\n input: true\r\n }\r\n },\r\n VOC_CorrespondenceClass: {\r\n title: 'Correspondence Class',\r\n icon: 'terminal',\r\n schema: {\r\n 'customOptions.vocId': 'VOC_CorrespondenceClass',\r\n label: 'Correspondence Class',\r\n type: 'vocabulary',\r\n fixedKey: 'VOC_CorrespondenceClass',\r\n input: true\r\n }\r\n },\r\n VOC_CorrespondenceClassfication: {\r\n title: 'Correspondence Classfication',\r\n icon: 'terminal',\r\n schema: {\r\n 'customOptions.vocId': 'VOC_CorrespondenceClassfication',\r\n label: 'Correspondence Classfication',\r\n type: 'vocabulary',\r\n fixedKey: 'VOC_CorrespondenceClassfication',\r\n input: true\r\n }\r\n },\r\n VOC_CorrespondenceDeliveryType: {\r\n title: 'Correspondence Delivery Type',\r\n icon: 'terminal',\r\n schema: {\r\n 'customOptions.vocId': 'VOC_CorrespondenceDeliveryType',\r\n label: 'Correspondence Delivery Type',\r\n type: 'vocabulary',\r\n fixedKey: 'VOC_CorrespondenceDeliveryType',\r\n input: true\r\n }\r\n },\r\n VOC_CorrespondencePriority: {\r\n title: 'Correspondence Priority',\r\n icon: 'terminal',\r\n schema: {\r\n 'customOptions.vocId': 'VOC_CorrespondencePriority',\r\n label: 'Correspondence Priority',\r\n type: 'vocabulary',\r\n fixedKey: 'VOC_CorrespondencePriority',\r\n input: true\r\n }\r\n },\r\n VOC_CorrespondenceSecrecyLevel: {\r\n title: 'Correspondence Secrecy Level',\r\n icon: 'terminal',\r\n schema: {\r\n 'customOptions.vocId': 'VOC_CorrespondenceSecrecyLevel',\r\n label: 'Correspondence Secrecy Level',\r\n type: 'vocabulary',\r\n fixedKey: 'VOC_CorrespondenceSecrecyLevel',\r\n input: true\r\n }\r\n }\r\n };*/\r\n adapt(fields): any {\r\n const builderComponents = {};\r\n fields = Object.keys(fields).map(fieldKey => {\r\n const constraints = fields[fieldKey].constraints;\r\n const vocabularySearch = constraints.filter(item => item.name === 'directoryResolver');\r\n const vocabulary = vocabularySearch.length ? vocabularySearch[0].parameters.directory : null;\r\n const adaptedField = {\r\n title: fieldKey,\r\n icon: 'terminal',\r\n schema: {\r\n // 'validate.required': constraints.filter(item => item.name === 'NotNullConstraint').length > 0,\r\n label: fieldKey,\r\n type: '',\r\n fixedKey: fieldKey,\r\n input: true\r\n }\r\n };\r\n\r\n switch (fields[fieldKey].type) {\r\n case 'string':\r\n adaptedField.schema.type = 'textfield';\r\n if (vocabulary) {\r\n adaptedField.schema.type = 'vocabulary';\r\n adaptedField.schema['customOptions.vocId'] = vocabulary;\r\n }\r\n break;\r\n case 'boolean':\r\n adaptedField.schema.type = 'toggle';\r\n break;\r\n case 'string[]':\r\n adaptedField.schema.type = 'textfield';\r\n // tslint:disable-next-line:no-string-literal\r\n adaptedField.schema['multiple'] = true;\r\n break;\r\n case 'long':\r\n adaptedField.schema.type = 'number';\r\n break;\r\n case 'date':\r\n adaptedField.schema.type = 'customdate';\r\n }\r\n return adaptedField;\r\n });\r\n fields.forEach(field => {\r\n builderComponents[field.schema.fixedKey] = field;\r\n });\r\n return builderComponents;\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { from, Observable } from 'rxjs';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { AppConfigService } from '../../../../configuration/app-config.service';\r\nimport { NuxeoService } from '../../../../Core/services/nuxeo/nuxeo.service';\r\nimport { FieldsAdapterService } from './fields.adapter';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class FormBuilderService {\r\n dynamicFieldsOperations;\r\n myPrefix = '';\r\n constructor(\r\n private nuxeoService: NuxeoService,\r\n private configService: AppConfigService,\r\n private fieldsAdapter: FieldsAdapterService, @Inject('environment') private environment) {\r\n\r\n this.dynamicFieldsOperations = this.configService.myConfiguration.dynamicForms.operations;\r\n }\r\n\r\n // getSchema(schema): Observable<any> {\r\n // return from(this.nuxeoService.nuxeoClient.request(`/config/schemas/${schema}`)\r\n // .get({\r\n // headers: {\r\n // 'fetch.schema': 'fields'\r\n // }\r\n // })).pipe(\r\n // map((data: any) => this.fieldsAdapter.adapt(data.fields))\r\n // );\r\n // }\r\n\r\n getSchemaComponents(type){\r\n return from(this.nuxeoService.nuxeoClient.request(`config/facets/${type}`)\r\n .get({\r\n headers: {\r\n 'fetch.schema': 'fields'\r\n }\r\n })).pipe(\r\n map((data: any) => {\r\n this.myPrefix = data.schemas[0].prefix;\r\n return this.fieldsAdapter.adapt(data.schemas[0].fields)\r\n })\r\n );\r\n }\r\n\r\n createFormJson(type , jsonObject){\r\n jsonObject['prefix']=this.myPrefix;\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation('AC_UA_DynamicForm_Create', {\r\n url: `${this.environment.nuxeo}${this.environment.customAutomation}`,\r\n })\r\n .context({\r\n \"schema\":type,\r\n \"json\":jsonObject\r\n })\r\n .execute()\r\n ).pipe(\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n }))\r\n \r\n }\r\n\r\n getDynamicForm(type) {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation(this.dynamicFieldsOperations.getFormJson, {\r\n url: `${this.environment.nuxeo}${this.environment.customAutomation}`,\r\n })\r\n .context({\r\n \"schema\": type\r\n })\r\n .execute({\r\n headers: {\r\n properties: '*',\r\n },\r\n })\r\n ).pipe(\r\n map(res => {\r\n let myData = JSON.parse(res['entries'][0]['properties']['note:note']);\r\n this.myPrefix = myData.prefix;\r\n return myData;\r\n }),\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n\r\n adaptOutDynamicFields(data) {\r\n let myAdaptedData = {};\r\n\r\n Object.keys({...data}).map(key => {\r\n myAdaptedData[this.myPrefix + ':' + key] = data[key];\r\n })\r\n\r\n return myAdaptedData;\r\n }\r\n \r\n adaptInDynamicFields(data) {\r\n let myAdaptedData = {};\r\n\r\n Object.keys({...data}).map(key => {\r\n if(key.includes(this.myPrefix + ':')){\r\n myAdaptedData[key.replace(this.myPrefix+':','')] = data[key];\r\n }\r\n })\r\n\r\n return myAdaptedData;\r\n }\r\n}\r\n","import {\r\n Component, EventEmitter, Input, OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output, ViewEncapsulation\r\n} from '@angular/core';\r\nimport { FormBuilderService } from './form-builder.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Utils } from 'formiojs';\r\nimport { Subscription } from 'rxjs';\r\n\r\n/** @ignore */\r\n\r\n@Component({\r\n selector: 'app-dynamic-form',\r\n templateUrl: './dynamic-form.component.html',\r\n styleUrls: ['./dynamic-form.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DynamicFormComponent implements OnChanges, OnInit , OnDestroy{\r\n @Input()\r\n form: any = {};\r\n @Input()\r\n data: any = null;\r\n @Input()\r\n readOnly = false;\r\n @Output()\r\n change = new EventEmitter();\r\n submission = {};\r\n translations: {};\r\n // tslint:disable-next-line:no-output-native\r\n renderOptions = {};\r\n refresher = new EventEmitter();\r\nlangSubscription : Subscription;\r\n\r\n constructor(private formBuilderServic: FormBuilderService, public translate: TranslateService) { }\r\n\r\n\r\n\r\n ngOnInit(): void {\r\n this.langSubscription = this.translate.onLangChange.subscribe(event => {\r\n this.refresher.emit(event.lang);\r\n });\r\n }\r\n ngOnChanges(changes) {\r\n if (this.data) {\r\n this.submission = {\r\n data: this.formBuilderServic.adaptInDynamicFields(this.data)\r\n }\r\n }\r\n\r\n const translations = {};\r\n const translationsAr = {};\r\n Utils.eachComponent(this.form.components, (comp) => {\r\n translations[comp.label] = comp.label;\r\n translations[comp.description] = comp.description;\r\n translations[comp.tooltip] = comp.tooltip;\r\n translationsAr[comp.label] = comp.labelAr;\r\n translationsAr[comp.description] = comp.descriptionAr;\r\n translationsAr[comp.tooltip] = comp.tooltipAr;\r\n });\r\n this.renderOptions = {\r\n\r\n language: this.translate.currentLang,\r\n i18n: {\r\n ar: translationsAr,\r\n en: translations\r\n }\r\n };\r\n }\r\n\r\n ngOnDestroy(){\r\n this.langSubscription ? this.langSubscription.unsubscribe() : '';\r\n }\r\n excuteFunction(event) {\r\n // this.FormBuilderService.adaptOutDynamicFields(formChange.data);\r\n // let data = event.data;\r\n // let p = this.formBuilderServic.myPrefix;\r\n // let myAdaptedData = {};\r\n // // for ( let key in data){\r\n // // data[this.formBuilderServic.myPrefix + key] = data[key];\r\n // // delete data[key];\r\n // // }\r\n // Object.keys({...data}).map(key => {\r\n // myAdaptedData[p + ':' + key] = data[key];\r\n // })\r\n // this.change.emit(myAdaptedData);\r\n\r\n if (event.data) {\r\n let myformValue = {\r\n valid : event.isValid,\r\n data : this.formBuilderServic.adaptOutDynamicFields(event.data)\r\n }\r\n this.change.emit(myformValue)\r\n }\r\n }\r\n}\r\n","<div class=\"container-fluid\">\r\n <formio [form]=\"form\" (change)=\"excuteFunction($event)\" [renderOptions]=\"renderOptions\" [language]=\"refresher\" [submission]=\"submission\"></formio>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormioCustomComponent } from 'angular-formio';\r\n\r\n@Component({\r\n selector: 'app-date-wrapper',\r\n templateUrl: './date-wrapper.component.html',\r\n styleUrls: ['./date-wrapper.component.scss']\r\n})\r\nexport class DateWrapperComponent implements FormioCustomComponent<any> {\r\n @Input()\r\n value: number;\r\n\r\n\r\n @Input()\r\n fixedKey: string;\r\n\r\n @Output()\r\n valueChange = new EventEmitter<any>();\r\n\r\n @Input()\r\n disabled: boolean;\r\n\r\n constructor() {\r\n }\r\n\r\n excuteFunction(event){\r\n // set timout to fix issue of date reading with null in page ( since value still be with undefined when emitting)\r\n setTimeout(() => {\r\n console.log(this.value)\r\n this.valueChange.emit(event);\r\n }, 1000);\r\n }\r\n}\r\n","<cts-dynamic-form-hijri-dateitem [(ngModel)]=\"value\" (valueChanged)=\"excuteFunction($event)\">\r\n</cts-dynamic-form-hijri-dateitem>\r\n","import { Injector } from '@angular/core';\r\nimport { FormioCustomComponentInfo, registerCustomFormioComponent } from 'angular-formio';\r\nimport { Components } from 'formiojs';\r\nimport { DateWrapperComponent } from './date-wrapper.component';\r\nimport { baseEditForm } from '../base-edit-form/base-edit-form';\r\n\r\nconst editForm = () => baseEditForm();\r\n\r\nconst COMPONENT_OPTIONS: FormioCustomComponentInfo = {\r\n type: 'customdate',\r\n selector: 'customdate-selector',\r\n title: 'customdate',\r\n group: 'basic',\r\n icon: 'fa fa-star',\r\n fieldOptions: ['customOptions', 'fixedKey'],\r\n editForm\r\n};\r\n\r\n\r\nexport function registerDateComponent(injector: Injector) {\r\n registerCustomFormioComponent(COMPONENT_OPTIONS, DateWrapperComponent, injector);\r\n}\r\n","import { ThrowStmt } from '@angular/compiler';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormioCustomComponent } from 'angular-formio';\r\n\r\n@Component({\r\n selector: 'app-vocabulary-wrapper',\r\n templateUrl: './vocabulary-wrapper.component.html',\r\n styleUrls: ['./vocabulary-wrapper.component.scss']\r\n})\r\nexport class VocabularyWrapperComponent implements FormioCustomComponent<number> {\r\n @Input()\r\n value: number;\r\n\r\n @Input()\r\n vocId: string;\r\n\r\n @Input()\r\n fixedKey: string;\r\n\r\n @Input()\r\n someField: string;\r\n @Input()\r\n customOptions: string;\r\n\r\n @Output()\r\n valueChange = new EventEmitter<number>();\r\n\r\n @Input()\r\n disabled: boolean;\r\n\r\n constructor() {\r\n }\r\n\r\n executeFunction(event){\r\n this.valueChange.emit(event);\r\n }\r\n}\r\n","<app-dynamic-form-vocabulary-item *ngIf=\"vocId\"\r\n[bindLabel]=\"'displayLabel'\"\r\n[bindValue]=\"'displayLabel'\"\r\n[(ngModel)]=\"value\"\r\n(onSelecting)=\"executeFunction($event)\"\r\n[vocabularyType]=\"vocId\">\r\n</app-dynamic-form-vocabulary-item>\r\n","import { Injector } from '@angular/core';\r\nimport { FormioCustomComponentInfo, registerCustomFormioComponent } from 'angular-formio';\r\nimport { Components } from 'formiojs';\r\nimport { VocabularyWrapperComponent } from './vocabulary-wrapper.component';\r\nimport { baseEditForm } from '../base-edit-form/base-edit-form';\r\n\r\nconst editForm = () => baseEditForm([\r\n {\r\n key: 'display',\r\n components: [\r\n {\r\n type: 'textfield',\r\n label: 'vocabulary key',\r\n key: 'customOptions.vocId',\r\n disabled: true,\r\n weight: -1\r\n }\r\n ]\r\n }\r\n]);\r\nconst COMPONENT_OPTIONS: FormioCustomComponentInfo = {\r\n type: 'vocabulary',\r\n selector: 'vocabulary-selector',\r\n title: 'vocabulary',\r\n group: 'basic',\r\n icon: 'fa fa-star',\r\n fieldOptions: ['customOptions', 'customOptions.vocId', 'fixedKey'],\r\n editForm\r\n};\r\n\r\n\r\nexport function registerVocabularyComponent(injector: Injector) {\r\n registerCustomFormioComponent(COMPONENT_OPTIONS, VocabularyWrapperComponent, injector);\r\n}\r\n","import { AfterViewInit, ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, Optional, Self } from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, NgControl } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'cts-dynamic-form-field',\r\n templateUrl: './dynamic-form-field.component.html',\r\n styleUrls: ['./dynamic-form-field.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DynamicFormFieldComponent implements OnInit, OnDestroy, ControlValueAccessor {\r\n @Input() disabled = false;\r\n @Input() field;\r\n value: any;\r\n private onDestroy$ = new Subject<boolean>();\r\n\r\n constructor(\r\n public translate: TranslateService,\r\n @Self() @Optional() private control: NgControl\r\n\r\n ) {\r\n this.control.valueAccessor = this;\r\n\r\n }\r\n onChange: any = () => { };\r\n onTouched: any = () => { };\r\n public get invalid(): boolean {\r\n return this.control ? this.control.invalid : false;\r\n }\r\n\r\n public get showError(): boolean {\r\n if (!this.control) {\r\n return false;\r\n }\r\n\r\n const { dirty, touched } = this.control;\r\n\r\n return this.invalid ? (dirty || touched) : false;\r\n }\r\n Validator = (control: AbstractControl): { [key: string]: boolean } | null => {\r\n\r\n if (!this.value.isValid) {\r\n return { formValidator: true };\r\n }\r\n return null;\r\n }\r\n isRequired(): boolean {\r\n if (!this.control.control.validator) {\r\n return false;\r\n }\r\n\r\n const validator = this.control.control.validator({} as AbstractControl);\r\n return (validator && validator.required);\r\n }\r\n writeValue(value: any): void {\r\n\r\n this.value = value;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.control.control.setValidators([this.Validator]);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n\r\n\r\n ngOnDestroy(): void {\r\n this.onDestroy$.next(true);\r\n this.onDestroy$.complete();\r\n }\r\n\r\n\r\n onChanged(value): void {\r\n console.log(value);\r\n this.value = value;\r\n this.onChange(value);\r\n this.onTouched();\r\n\r\n }\r\n\r\n}\r\n","<formio [form]=\"field\" (change)=\"onChanged($event)\"></formio>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cts-toggle-wrapper',\r\n templateUrl: './toggle-wrapper.component.html',\r\n styleUrls: ['./toggle-wrapper.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ToggleWrapperComponent {\r\n @Input()\r\n value: number;\r\n\r\n @Input()\r\n fixedKey: string;\r\n\r\n @Input()\r\n customOptions: string;\r\n\r\n @Output()\r\n valueChange = new EventEmitter<number>();\r\n\r\n @Input()\r\n disabled: boolean;\r\n\r\n constructor() {\r\n }\r\n\r\n executeFunction(event) {\r\n this.valueChange.emit(event);\r\n }\r\n}\r\n\r\n","<cts-dynamic-form-slide-toggleitem [disabled]=\"disabled\" [(ngModel)]=\"value\" (ngModelChange)=\"executeFunction($event)\"></cts-dynamic-form-slide-toggleitem>\r\n","import { Injector } from '@angular/core';\r\nimport { FormioCustomComponentInfo, registerCustomFormioComponent } from 'angular-formio';\r\nimport { baseEditForm } from '../base-edit-form/base-edit-form';\r\nimport { ToggleWrapperComponent } from './toggle-wrapper.component';\r\n\r\nconst editForm = () => baseEditForm();\r\nconst COMPONENT_OPTIONS: FormioCustomComponentInfo = {\r\n type: 'toggle',\r\n selector: 'toggle-selector',\r\n title: 'toggle',\r\n group: 'basic',\r\n icon: 'fa fa-star',\r\n fieldOptions: ['customOptions', 'fixedKey'],\r\n editForm\r\n};\r\n\r\n\r\nexport function registerToggleComponent(injector: Injector) {\r\n registerCustomFormioComponent(COMPONENT_OPTIONS, ToggleWrapperComponent, injector);\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Utils } from 'formiojs';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { TranslationService } from '../../../../Core/services/translation/translation.service';\r\n\r\n@Component({\r\n selector: 'cts-dynamic-form-viewer',\r\n templateUrl: './dynamic-form-viewer.component.html',\r\n styleUrls: ['./dynamic-form-viewer.component.scss']\r\n})\r\nexport class DynamicFormViewerComponent implements OnInit {\r\n @Input()\r\n form: any = {};\r\n @Input()\r\n data: any = null;\r\n list = [];\r\n isArabic = false;\r\n constructor( private translate: TranslateService, private translation : TranslationService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.translation.isArabic.subscribe(res => {\r\n this.isArabic = res ;\r\n const translations = {};\r\n const translationsAr = {};\r\n Utils.eachComponent(this.form.components, (comp) => {\r\n this.list.push({\r\n labelAr : comp.labelAr,\r\n labelEn : comp.label,\r\n customOptions: comp.customOptions,\r\n value : this.data[this.form.prefix + ':' + comp.key],\r\n type : comp.type\r\n })\r\n \r\n });\r\n })\r\n \r\n }\r\n}\r\n","<div class=\"dynamic-fields-values\">\r\n <div class=\"fields-title\">\r\n {{ \"CREATE.CORRESP_FORM_VIEWER\" | translate }}\r\n </div>\r\n <div class=\"values-wrapper\">\r\n <div class=\"single-field-value\" *ngFor=\"let item of list\">\r\n <div class=\"title\" *ngIf=\"!isArabic\">{{ item.labelEn }}</div>\r\n <div class=\"title\" *ngIf=\"isArabic\">{{ item.labelAr }}</div>\r\n <ng-container [ngSwitch]=\"item?.type\">\r\n <ng-container *ngSwitchCase=\"'vocabulary'\">\r\n <div class=\"value\">{{ 'vocabulary.' + item.customOptions.vocId + '.' + item.value | translate}}</div> \r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'toggle'\">\r\n <div class=\"value\">{{ '' + item.value | translate}}</div> \r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <div class=\"value\">{{ item.value}}</div> \r\n </ng-container>\r\n </ng-container>\r\n \r\n </div>\r\n </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Injector, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport {\r\n OwlDateTimeIntl, OwlDateTimeModule, OwlMomentDateTimeModule\r\n} from '@busacca/ng-pick-datetime';\r\nimport {\r\n MatDatetimepickerModule,\r\n MatNativeDatetimeModule\r\n} from '@mat-datetimepicker/core';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { FormioModule } from 'angular-formio';\r\nimport { AutocompleteLibModule } from 'angular-ng-autocomplete';\r\nimport { TreeviewModule } from 'ngx-treeview';\r\nimport { DirectiveModule } from '../../directive/directive.module';\r\nimport { SearchAutocompleteComponent } from '../../shared/components/search-autocomplete/search-autocomplete.component';\r\nimport { LibrarySharedModule } from '../../shared/libraryShared.module';\r\n// import { AvatarModule } from '../avatar/avatar.module';\r\nimport { AvatarModule } from '../avatar/avatar.module';\r\nimport { NgxHijriGregorianDatepickerModule } from '../hijri-gregorian-datepicker/ngx-hijri-gregorian-datepicker.module';\r\nimport { DynamicFormBoolItemComponent } from './components/dynamic-form-boolitem/dynamic-form-boolitem.component';\r\nimport { DynamicFormBuilderComponent } from './components/dynamic-form-builder/dynamic-form-builder.component';\r\nimport { DynamicFormCheckboxItemComponent } from './components/dynamic-form-checkbox-item/dynamic-form-checkbox-item.component';\r\nimport { DynamicFormDateItemComponent } from './components/dynamic-form-dateitem/dynamic-form-dateitem.component';\r\nimport { owlDateTimeIntl } from './components/dynamic-form-dateitem/owlDateTimeIntl';\r\nimport { DynamicFormDepartmentComponent } from './components/dynamic-form-department/dynamic-form-department.component';\r\nimport { DynamicFormHijriDateitemComponent } from './components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component';\r\nimport { DynamicFormItemDispatcherComponent } from './components/dynamic-form-item-dispatcher/dynamic-form-item-dispatcher.component';\r\nimport { DynamicFormMapItemComponent } from './components/dynamic-form-mapitem/dynamic-form-mapitem.component';\r\nimport { DynamicFormOptionsComponent } from './components/dynamic-form-options/dynamic-form-options.component';\r\nimport { DynamicFormSelectTagComponent } from './components/dynamic-form-select-tag/dynamic-form-select-tag.component';\r\nimport { DynamicFormSelectUserFilterComponent } from './components/dynamic-form-select-user-filter/dynamic-form-select-user-filter.component';\r\nimport { DynamicFormSelectUsersComponent } from './components/dynamic-form-select-users/dynamic-form-select-users.component';\r\nimport { DynamicFormSelectItemComponent } from './components/dynamic-form-selectitem/dynamic-form-selectitem.component';\r\nimport { DynamicFormSlideToggleitemComponent } from './components/dynamic-form-slide-toggleitem/dynamic-form-slide-toggleitem.component';\r\nimport { DynamicFormTextareaComponent } from './components/dynamic-form-textarea/dynamic-form-textarea.component';\r\nimport { DynamicFormTextItemComponent } from './components/dynamic-form-textitem/dynamic-form-textitem.component';\r\nimport { TreeviewSelectComponent } from './components/dynamic-form-treeview-select/dropdown-treeview-select.component';\r\nimport { DynamicFormVocabularyItemComponent } from './components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component';\r\nimport { DynamicFormComponent } from './components/dynamic-form/dynamic-form.component';\r\nimport { DateWrapperComponent } from './components/form-wrappers/date-wrapper/date-wrapper.component';\r\nimport { registerDateComponent } from './components/form-wrappers/date-wrapper/date-wrapper.formio';\r\nimport { VocabularyWrapperComponent } from './components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.component';\r\nimport { registerVocabularyComponent } from './components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.formio';\r\nimport { DynamicFormContentProxyDirective } from './directives/dynamic-form-content-proxy.directive';\r\nimport { DynamicFormFieldComponent } from './components/dynamic-form-field/dynamic-form-field.component';\r\nimport { ToggleWrapperComponent } from './components/form-wrappers/toggle-wrapper/toggle-wrapper.component';\r\nimport { registerToggleComponent } from './components/form-wrappers/toggle-wrapper/toggle-wrapper.formio';\r\nimport { DynamicFormViewerComponent } from './components/dynamic-form-viewer/dynamic-form-viewer.component';\r\nimport { DepartmentFormComponent } from './components/department-form/department-form.component';\r\n\r\n/**\r\n * @title\r\n * Dynamic Form Module\r\n */\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n TreeviewModule,\r\n FormsModule,\r\n LibrarySharedModule,\r\n OwlDateTimeModule,\r\n OwlMomentDateTimeModule,\r\n ReactiveFormsModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n MatCheckboxModule,\r\n MatInputModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatMenuModule,\r\n MatDatetimepickerModule,\r\n MatNativeDatetimeModule,\r\n NgSelectModule,\r\n MatSlideToggleModule,\r\n NgxHijriGregorianDatepickerModule,\r\n MatRadioModule,\r\n AvatarModule,\r\n DirectiveModule,\r\n MatTooltipModule,\r\n TranslateModule,\r\n AutocompleteLibModule,\r\n FormioModule\r\n ],\r\n declarations: [\r\n DynamicFormComponent,\r\n TreeviewSelectComponent,\r\n DynamicFormDepartmentComponent,\r\n DynamicFormBoolItemComponent,\r\n DynamicFormDateItemComponent,\r\n DynamicFormMapItemComponent,\r\n DynamicFormTextItemComponent,\r\n DynamicFormSelectItemComponent,\r\n DynamicFormItemDispatcherComponent,\r\n DynamicFormContentProxyDirective,\r\n DynamicFormTextareaComponent,\r\n DynamicFormSlideToggleitemComponent,\r\n DynamicFormVocabularyItemComponent,\r\n DynamicFormHijriDateitemComponent,\r\n DynamicFormCheckboxItemComponent,\r\n DynamicFormOptionsComponent,\r\n DynamicFormSelectUsersComponent,\r\n DynamicFormSelectUserFilterComponent,\r\n DynamicFormSelectTagComponent,\r\n SearchAutocompleteComponent,\r\n VocabularyWrapperComponent,\r\n DateWrapperComponent,\r\n DynamicFormComponent,\r\n DynamicFormBuilderComponent,\r\n DynamicFormFieldComponent,\r\n ToggleWrapperComponent,\r\n DynamicFormViewerComponent,\r\n DepartmentFormComponent\r\n\r\n ],\r\n entryComponents: [\r\n TreeviewSelectComponent,\r\n DynamicFormDepartmentComponent,\r\n DynamicFormBoolItemComponent,\r\n DynamicFormDateItemComponent,\r\n DynamicFormMapItemComponent,\r\n DynamicFormTextItemComponent,\r\n DynamicFormSelectItemComponent,\r\n DynamicFormTextareaComponent,\r\n DynamicFormSlideToggleitemComponent,\r\n DynamicFormHijriDateitemComponent,\r\n DynamicFormVocabularyItemComponent,\r\n SearchAutocompleteComponent,\r\n VocabularyWrapperComponent,\r\n DateWrapperComponent\r\n ],\r\n exports: [\r\n TreeviewSelectComponent,\r\n DynamicFormDepartmentComponent,\r\n DynamicFormComponent,\r\n DynamicFormBoolItemComponent,\r\n DynamicFormDateItemComponent,\r\n DynamicFormMapItemComponent,\r\n DynamicFormTextItemComponent,\r\n DynamicFormSelectItemComponent,\r\n DynamicFormTextareaComponent,\r\n DynamicFormSlideToggleitemComponent,\r\n DynamicFormVocabularyItemComponent,\r\n DynamicFormHijriDateitemComponent,\r\n DynamicFormCheckboxItemComponent,\r\n DynamicFormOptionsComponent,\r\n DynamicFormSelectUsersComponent,\r\n DynamicFormSelectUserFilterComponent,\r\n DynamicFormSelectTagComponent,\r\n SearchAutocompleteComponent,\r\n DynamicFormComponent,\r\n DynamicFormBuilderComponent,\r\n DynamicFormFieldComponent,\r\n DynamicFormViewerComponent,\r\n TranslateModule,\r\n DepartmentFormComponent\r\n ],\r\n providers: [{ provide: OwlDateTimeIntl, useClass: owlDateTimeIntl }],\r\n})\r\nexport class DynamicFormModule {\r\n formioRegisters = () => ([\r\n registerVocabularyComponent,\r\n registerDateComponent,\r\n registerToggleComponent\r\n ])\r\n constructor(injector: Injector) {\r\n this.formioRegisters().forEach(registerar => {\r\n try {\r\n registerar(injector);\r\n } catch (e) {\r\n\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\n/**\r\n * A reusable card component to display various types of contents\r\n *\r\n * ![Screenshot-1](../screenshots/card.png)\r\n * @title\r\n * Card\r\n * @example\r\n *\r\n * <app-card>\r\n * <h3 class=\"title\">\r\n * Card title\r\n * </h3>\r\n * <div class=\"toolbar\">\r\n * <button class=\"btn-primary\"> Action Button </button>\r\n * </div>\r\n * <div class=\"body\">\r\n * </div>\r\n * </app-card>\r\n */\r\n@Component({\r\n selector: 'app-card',\r\n templateUrl: './card.component.html',\r\n styleUrls: ['./card.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class CardComponent implements OnInit {\r\n /** card has no body */\r\n @Input()\r\n noBody?= false;\r\n /** is card dark */\r\n @Input()\r\n dark?= false;\r\n /** enable/disable shadow */\r\n constructor() { }\r\n\r\n ngOnInit(): void { }\r\n}\r\n","<div\r\n class=\"app-card\"\r\n [ngClass]=\"{\r\n 'dark-app-card ': dark\r\n }\"\r\n>\r\n <div class=\"card-inner\">\r\n <div\r\n [ngClass]=\"{\r\n hidden: title.childNodes.length == 0 && toolbar.childNodes.length == 0\r\n }\"\r\n class=\"card-title\"\r\n >\r\n <div class=\"title-padder\">\r\n <!-- title Area -->\r\n <span #title>\r\n <ng-content select=\".title\"></ng-content>\r\n </span>\r\n <!-- toolbar Area -->\r\n <div class=\"toolbar\" #toolbar>\r\n <ng-content select=\".toolbar\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- body area -->\r\n <div class=\"card-body\" *ngIf=\"!noBody\">\r\n <ng-content select=\".body\"></ng-content>\r\n </div>\r\n <div class=\"no-items\">\r\n <p class=\"message\">\r\n <ng-content select=\".no-content\"></ng-content>\r\n </p>\r\n </div>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CardComponent } from './card.component';\r\n\r\n/**\r\n * @title\r\n * Card Module\r\n */\r\n@NgModule({\r\n declarations: [CardComponent],\r\n imports: [CommonModule],\r\n exports: [CardComponent],\r\n providers: [],\r\n})\r\nexport class CardModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { CustomToastrComponent } from './components/custom-toastr/custom-toastr.component';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { ToastrModule} from 'ngx-toastr'\r\n/** @ignore */\r\n@NgModule({\r\n declarations: [CustomToastrComponent],\r\n imports: [\r\n CommonModule, \r\n MatIconModule , \r\n TranslateModule , \r\n ToastrModule.forRoot({preventDuplicates: true})\r\n ],\r\n entryComponents: [CustomToastrComponent],\r\n exports:[TranslateModule , ToastrModule]\r\n})\r\nexport class CustomToastrModule {}\r\n","import { Component, Inject, ViewEncapsulation } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { CustomToastrService } from '../custom-toastr/services/custom-toastr.service';\r\nimport { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\r\n\r\n/**\r\n * A material dialog confirm component that will ask the user for confirmation,\r\n * then shows a loader and execute a function and only close the dialog after the action is complete\r\n *\r\n *\r\n * ![screenshot-1](../screenshots/dialog.png)\r\n *\r\n * ### Usage Example\r\n * ~~~ts\r\n * let actionFunction = () => {\r\n * return this.someService.observableFunction();\r\n * };\r\n * return this.dialog\r\n * .open(ConfirmCallerDialogComponent, {\r\n * data: {\r\n * call: actionFunction,\r\n * title: 'path.to.title.translation',\r\n * toastrTitle: 'path.to.success.title',\r\n * toastrMsg: 'path.to.success.message',\r\n * },\r\n * })\r\n * .afterClosed()\r\n * .pipe(take(1))\r\n * .subscribe((data) => {\r\n * if (data) {\r\n * // do something on success\r\n * }\r\n * });\r\n * ~~~\r\n * @title\r\n * Confirm dialog\r\n */\r\n@Component({\r\n templateUrl: './confirm-caller.dialog.html',\r\n encapsulation: ViewEncapsulation.None,\r\n styleUrls: ['./confirm-caller.dialog.scss'],\r\n host: { class: 'confirm-caller' },\r\n})\r\nexport class ConfirmCallerDialogComponent {\r\n calling = false;\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data,\r\n public dialogRef: MatDialogRef<ConfirmDialogComponent>,\r\n private toastr: CustomToastrService\r\n ) {}\r\n makeCall() {\r\n this.calling = true;\r\n this.data.call(this.data).subscribe(\r\n (data) => {\r\n this.calling = false;\r\n this.dialogRef.close(data);\r\n this.toastr.show('success', this.data.toastrTitle, this.data.toastrMsg);\r\n },\r\n (error) => {\r\n this.calling = false;\r\n this.toastr.show('error', 'Error', 'genericError');\r\n }\r\n );\r\n }\r\n}\r\n","<div [dir]=\"'dir' | translate\">\r\n <h1 class=\"dialog-title\">{{data.title | translate}}</h1>\r\n <div>\r\n <div>{{data.message | translate}}</div>\r\n </div>\r\n\r\n <div mat-dialog-actions>\r\n <!-- <cts-button\r\n [theme]=\"'primary'\"\r\n [size]=\"'regular'\"\r\n [disabled]=\"calling\"\r\n (onClick)=\"makeCall()\"\r\n >\r\n {{ 'Yes' | translate}}\r\n </cts-button> -->\r\n\r\n <button class=\"btn confirm\" [disabled]=\"calling\"\r\n (click)=\"makeCall()\">\r\n {{ 'Yes' | translate}}\r\n </button>\r\n\r\n <button class=\"btn btn-light\" [mat-dialog-close]=\"false\">\r\n {{'Cancel' | translate}}\r\n </button>\r\n </div>\r\n</div>\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n/** @ignore */\r\n@Component({\r\n selector: 'app-confirm-dialog',\r\n templateUrl: './confirm-dialog.component.html',\r\n styleUrls: ['./confirm-dialog.component.scss']\r\n})\r\nexport class ConfirmDialogComponent implements OnInit {\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data, public dialogRef: MatDialogRef<ConfirmDialogComponent>) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n\r\n}\r\n","<div dir=\"{{'dir' | translate}}\">\r\n <div class=\"content-container\">\r\n <span class=\"content-span full-width\">{{ data.message | translate }}</span>\r\n </div>\r\n <div class=\"button-group\">\r\n <button mat-flat-button id=\"no-button\" [mat-dialog-close]=\"false\">\r\n {{ 'No' | translate}}\r\n </button>\r\n <button mat-flat-button id=\"yes-button\" [mat-dialog-close]=\"true\">\r\n {{ 'Yes' | translate}}\r\n </button>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ConfirmCallerDialogComponent } from './confirm-caller.dialog';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { LibrarySharedModule } from '../../shared/libraryShared.module';\r\n\r\n/**\r\n * @title\r\n * Confirm Dialog Module\r\n */\r\n@NgModule({\r\n declarations: [ConfirmCallerDialogComponent, ConfirmDialogComponent],\r\n imports: [MatDialogModule, CommonModule,LibrarySharedModule, TranslateModule],\r\n exports: [TranslateModule,ConfirmCallerDialogComponent, ConfirmDialogComponent],\r\n providers: [],\r\n})\r\nexport class ConfirmCallerModule { }\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n/**\r\n * you can use this component for any pagination\r\n *\r\n * ![Screenshot-1](../screenshots/pagination.png)\r\n * @title\r\n * Pagination\r\n *\r\n * @example\r\n * <cts-pagination\r\n * [page]=\"pageNumber\"\r\n * (change)=\"PaginationChange($event)\"\r\n * [size]=\"PageSize\"\r\n * [count]=\"totalRecords\">\r\n * </cts-pagination>\r\n */\r\n@Component({\r\n selector: 'cts-pagination',\r\n templateUrl: './pagination.component.html',\r\n styleUrls: ['./pagination.component.scss']\r\n})\r\nexport class PaginationComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n /** Page Size */\r\n @Input()\r\n set size(val: number) {\r\n this._size = val;\r\n this.pages = this.calcPages();\r\n }\r\n\r\n get size(): number {\r\n return this._size;\r\n }\r\n\r\n /** Total records count */\r\n @Input()\r\n set count(val: number) {\r\n this._count = val;\r\n this.pages = this.calcPages();\r\n }\r\n\r\n get count(): number {\r\n return this._count;\r\n }\r\n /** Page Number */\r\n @Input()\r\n set page(val: number) {\r\n this._page = val;\r\n this.pages = this.calcPages();\r\n }\r\n\r\n get page(): number {\r\n return this._page;\r\n }\r\n /** Pages Count */\r\n get totalPages(): number {\r\n const count = this.size < 1 ? 1 : Math.ceil(this.count / this.size);\r\n return Math.max(count || 0, 1);\r\n }\r\n /** Page changed event */\r\n @Output() change: EventEmitter<any> = new EventEmitter();\r\n\r\n _count: number = 0;\r\n _page: number = 1;\r\n _size: number = 0;\r\n pages: any;\r\n\r\n canPrevious(): boolean {\r\n return this.page > 1;\r\n }\r\n\r\n canNext(): boolean {\r\n return this.page < this.totalPages;\r\n }\r\n\r\n prevPage(): void {\r\n this.selectPage(this.page - 1);\r\n }\r\n\r\n nextPage(): void {\r\n this.selectPage(this.page + 1);\r\n }\r\n\r\n selectPage(page: number): void {\r\n if (page > 0 && page <= this.totalPages && page !== this.page) {\r\n this.page = page;\r\n\r\n this.change.emit(\r\n page\r\n );\r\n }\r\n }\r\n\r\n calcPages(page?: number): any[] {\r\n const pages = [];\r\n let startPage = 1;\r\n let endPage = this.totalPages;\r\n const maxSize = 5;\r\n const isMaxSized = maxSize < this.totalPages;\r\n\r\n page = page || this.page;\r\n\r\n if (isMaxSized) {\r\n startPage = page - Math.floor(maxSize / 2);\r\n endPage = page + Math.floor(maxSize / 2);\r\n\r\n if (startPage < 1) {\r\n startPage = 1;\r\n endPage = Math.min(startPage + maxSize - 1, this.totalPages);\r\n } else if (endPage > this.totalPages) {\r\n startPage = Math.max(this.totalPages - maxSize + 1, 1);\r\n endPage = this.totalPages;\r\n }\r\n }\r\n\r\n for (let num = startPage; num <= endPage; num++) {\r\n pages.push({\r\n number: num,\r\n text: <string>(<any>num)\r\n });\r\n }\r\n\r\n return pages;\r\n }\r\n}\r\n","<ul class=\"pagination\" SetRtl *ngIf=\"pages.length > 1\">\r\n <li class=\"rotat-icon\" [class.disabled]=\"!canPrevious()\">\r\n <a\r\n role=\"button\"\r\n aria-label=\"go to previous page\"\r\n href=\"javascript:void(0)\"\r\n (click)=\"prevPage()\"\r\n >\r\n <i class=\"bi bi-caret-left\"></i>\r\n </a>\r\n </li>\r\n <li\r\n role=\"button\"\r\n [attr.aria-label]=\"'page ' + pg.number\"\r\n class=\"pages\"\r\n *ngFor=\"let pg of pages\"\r\n [class.active]=\"pg.number === page\"\r\n >\r\n <a href=\"javascript:void(0)\" (click)=\"selectPage(pg.number)\">\r\n {{ pg.text }}\r\n </a>\r\n </li>\r\n <li class=\"rotat-icon\" [class.disabled]=\"!canNext()\">\r\n <a\r\n role=\"button\"\r\n aria-label=\"go to next page\"\r\n href=\"javascript:void(0)\"\r\n (click)=\"nextPage()\"\r\n >\r\n <i class=\"bi bi-caret-right\"></i>\r\n </a>\r\n </li>\r\n</ul>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PaginationComponent } from './pagination/pagination.component';\r\nimport { DirectiveModule } from '../../directive/directive.module';\r\n\r\n\r\n/**\r\n * @title\r\n * Pagination Module\r\n */\r\n@NgModule({\r\n declarations: [PaginationComponent],\r\n imports: [\r\n CommonModule,\r\n DirectiveModule\r\n ],\r\n exports:[\r\n PaginationComponent\r\n ]\r\n})\r\nexport class PaginationModule { }\r\n","export class DocumentsConstants {\r\n public static pageProvider = {\r\n meeting: {\r\n name: 'PP_Meeting_CTDocuments',\r\n headers: { 'X-NXproperties': '*' },\r\n },\r\n committee: {\r\n name: 'PP_Committee_CTDocuments',\r\n headers: {\r\n 'X-NXproperties': '*',\r\n 'X-NXfetch-document': 'dc:creator,dc:lastContributor',\r\n },\r\n },\r\n agendaItem: {\r\n name: 'PP_AgendaItem_CTDocuments',\r\n headers: { 'X-NXproperties': '*' },\r\n },\r\n meetingAgenda: {\r\n name: 'PP_Meeting_AgendaDocuments',\r\n headers: { 'X-NXproperties': '*' },\r\n },\r\n meetingMom: {\r\n name: 'PP_Meeting_MoMDocuments',\r\n headers: { 'X-NXproperties': '*' },\r\n },\r\n documentAttachments: {\r\n name: 'PP_Document_Attachments',\r\n headers: { 'X-NXproperties': '*' },\r\n },\r\n documentAttachmentsWithAggregation: {\r\n name: 'PP_CTAttachment',\r\n headers: {\r\n 'properties': '*',\r\n 'fetch-document': 'properties',\r\n 'fetch-aggregate': 'key',\r\n 'translate-directoryEntry':'label'\r\n },\r\n },\r\n correspondenceAttachments: {\r\n name: 'PP_CorrespondenceAttachments',\r\n headers: {\r\n 'properties': '*',\r\n 'fetch-document': 'properties',\r\n 'fetch-aggregate': 'key',\r\n 'translate-directoryEntry':'label'\r\n },\r\n },\r\n };\r\n public static documentTypes = {\r\n attachment: 'CTAttachment',\r\n agendaDocument: 'AgendaDocument',\r\n MoMDocument: 'MoMDocument',\r\n };\r\n public static operations = {\r\n createVersion: 'AC_UA_CTS_Version_Create',\r\n createMemoVersion : 'AC_UA_Version_Create',\r\n getVersions: 'Document.GetVersions',\r\n lock: 'AC_UA_Document_Lock',\r\n lockMemo: 'Document.Lock',\r\n unlock: 'AC_UA_Document_Unlock',\r\n unlockMemo: 'Document.Unlock'\r\n };\r\n public static quickFilters = {\r\n resolution: 'Resolution',\r\n committee: 'Committee',\r\n task: 'Workflow',\r\n };\r\n public static vocabulary = {};\r\n public static fields = {\r\n creator: 'dc:creator',\r\n content: 'file:content',\r\n title: 'dc:title',\r\n created: 'dc:created',\r\n docRefId: 'ct_attach:docRefId',\r\n docRefTypes: 'ct_attach:docRefTypes',\r\n committeeName: 'comm:committeeName',\r\n meetingId: 'comm:meetingId',\r\n committeeId: 'comm:committeeId',\r\n committeeCode: 'comm:committeeCode',\r\n meetingCode: 'comm:meetingCode',\r\n thumbnail: 'thumb:thumbnail',\r\n major_version: 'uid:major_version',\r\n minor_version: 'uid:minor_version',\r\n };\r\n}\r\n","import { EventEmitter, Inject, Injectable } from '@angular/core';\r\nimport { combineLatest, from, Observable, ReplaySubject, Subject } from 'rxjs';\r\nimport { catchError, map, switchMap } from 'rxjs/operators';\r\nimport { AppConfigService } from '../../../configuration/app-config.service';\r\nimport { AdapterService } from '../../../Core/adapters/adapter.service';\r\nimport { NuxeoService } from '../../../Core/services/nuxeo/nuxeo.service';\r\nimport { DocumentsConstants } from '../constants/documents';\r\n\r\n/** @ignore */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DocumentsService {\r\n value = new ReplaySubject(1);\r\n public getupdatedDocument = new EventEmitter();\r\n\r\n reFetch = new Subject<boolean>();\r\n incomingConstant;\r\n constructor(\r\n private nuxeoService: NuxeoService,\r\n private documentsAdapter: AdapterService,\r\n private configService: AppConfigService, @Inject('environment') private environment\r\n ) {\r\n // setTimeout(() => {\r\n this.incomingConstant =\r\n this.configService.myConfiguration['correspondance']['incoming'];\r\n // }, 2000);\r\n }\r\n\r\n informValue(value) {\r\n let arr = [];\r\n arr.push(value);\r\n this.value.next(value);\r\n }\r\n getDocument(uid) {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .repository()\r\n .headers({\r\n ...DocumentsConstants.pageProvider.committee.headers,\r\n 'X-NXfetch-document': 'lock,dc:creator,corr:cc,cts_common:department,corr:owner',\r\n 'X-NXenrichers-document': 'tags,permissions',\r\n })\r\n .fetch(uid)\r\n ).pipe(\r\n map((data: any) => {\r\n // i commented this since i am adapting in data coming inside the page not here\r\n // return this.documentsAdapter.adaptIn(data, DocumentsConstants.fields);\r\n delete data._nuxeo;\r\n delete data._repository;\r\n return data;\r\n }),\r\n catchError((err) => {\r\n throw err;\r\n })\r\n );\r\n }\r\n getDocumentAttachmentsWithAggregation(params = {}): Observable<any> {\r\n return from(\r\n this.nuxeoService.nuxeoClient.repository().query(\r\n {\r\n pageProvider:\r\n DocumentsConstants.pageProvider.documentAttachmentsWithAggregation\r\n .name,\r\n ...params,\r\n },\r\n {\r\n headers:\r\n DocumentsConstants.pageProvider.documentAttachmentsWithAggregation\r\n .headers,\r\n }\r\n )\r\n ).pipe(\r\n map((data: any) => {\r\n data.entries.map((item) =>\r\n this.documentsAdapter.adaptIn(item, DocumentsConstants.fields)\r\n );\r\n return data;\r\n }),\r\n catchError((err) => {\r\n throw err;\r\n })\r\n );\r\n }\r\n updateDocument(doc, params = {}) {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .repository()\r\n .headers({\r\n ...DocumentsConstants.pageProvider.committee.headers,\r\n 'fetch-document': 'lock,comm:committeeId,comm:meetingId',\r\n })\r\n .update(doc, params)\r\n ).pipe(\r\n map((data: any) => {\r\n return this.documentsAdapter.adaptIn(data, DocumentsConstants.fields);\r\n }),\r\n catchError((err) => {\r\n throw err;\r\n })\r\n );\r\n }\r\n createVersion(docId, version = 'major'): Observable<any> {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation(DocumentsConstants.operations.createVersion, {\r\n url: `${this.environment.nuxeo}${this.environment.customAutomation}`,\r\n })\r\n .input(docId)\r\n .params({\r\n version,\r\n })\r\n .execute()\r\n ).pipe(\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n\r\n createMemoVersion(docId, version = 'major'): Observable<any> {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation(DocumentsConstants.operations.createMemoVersion, {\r\n url: `${this.environment.nuxeo}${this.environment.customAutomation}`,\r\n })\r\n .input(docId)\r\n .params({\r\n version,\r\n })\r\n .execute()\r\n ).pipe(\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n\r\n getVersions(docId): Observable<any> {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation(DocumentsConstants.operations.getVersions)\r\n .input(docId)\r\n .params()\r\n .execute({\r\n headers: DocumentsConstants.pageProvider.committee.headers,\r\n })\r\n ).pipe(\r\n map((data: any) => {\r\n data.entries.map((item) =>\r\n this.documentsAdapter.adaptIn(item, this.incomingConstant.attachments)\r\n );\r\n return data;\r\n }),\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n lockDocument(docId, mode): Observable<any> {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation(DocumentsConstants.operations.lock)\r\n .input(docId)\r\n .params({\r\n mode: mode,\r\n })\r\n .execute({\r\n headers: {\r\n ...DocumentsConstants.pageProvider.committee.headers,\r\n 'X-NXfetch-document': 'lock,dc:creator',\r\n 'X-NXenrichers-document': 'tags',\r\n },\r\n })\r\n ).pipe(\r\n map((item) =>\r\n this.documentsAdapter.adaptIn(item, DocumentsConstants.fields)\r\n ),\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n lockMemoDocument(docId): Observable<any> {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation(DocumentsConstants.operations.lockMemo)\r\n .input(docId)\r\n .params()\r\n .execute({\r\n headers: {\r\n ...DocumentsConstants.pageProvider.committee.headers,\r\n 'X-NXfetch-document': 'lock,dc:creator',\r\n 'X-NXenrichers-document': 'tags',\r\n },\r\n })\r\n ).pipe(\r\n map(item => {return item}),\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n unlockDocument(docId): Observable<any> {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation(DocumentsConstants.operations.unlock)\r\n .input(docId)\r\n .params()\r\n .execute({\r\n headers: {\r\n ...DocumentsConstants.pageProvider.committee.headers,\r\n 'X-NXfetch-document': 'lock,dc:creator',\r\n 'X-NXenrichers-document': 'tags',\r\n },\r\n })\r\n ).pipe(\r\n map((item) =>\r\n this.documentsAdapter.adaptIn(item, DocumentsConstants.fields)\r\n ),\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n\r\n unlockMemoDocument(docId): Observable<any> {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation(DocumentsConstants.operations.unlockMemo)\r\n .input(docId)\r\n .params()\r\n .execute({\r\n headers: {\r\n ...DocumentsConstants.pageProvider.committee.headers,\r\n 'X-NXfetch-document': 'lock,dc:creator',\r\n 'X-NXenrichers-document': 'tags',\r\n },\r\n })\r\n ).pipe(\r\n map(item => {return item}),\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n\r\n deleteDocument(path: any) {\r\n return from(this.nuxeoService.nuxeoClient.repository().delete(path)).pipe(\r\n catchError((err) => {\r\n throw err;\r\n })\r\n );\r\n }\r\n uploadBatch(files): Observable<any> {\r\n return combineLatest([\r\n ...files.map((file) => {\r\n const nuxeoBlob = this.nuxeoService.createBlob(file);\r\n return from(\r\n this.nuxeoService.nuxeoClient.batchUpload().upload(nuxeoBlob)\r\n );\r\n }),\r\n ]).pipe(\r\n map((uploadedFiles: any) => {\r\n files.forEach((file, i) => {\r\n uploadedFiles[i].title = file.name;\r\n });\r\n return uploadedFiles;\r\n })\r\n );\r\n }\r\n createDoc(uploadedFile, path, params, docParams = {}) {\r\n const doc = {\r\n 'entity-type': 'document',\r\n name: uploadedFile.title,\r\n type: 'file',\r\n ...docParams,\r\n properties: {\r\n title: uploadedFile.title,\r\n content: uploadedFile.blob,\r\n ...params,\r\n },\r\n };\r\n\r\n const repo = this.nuxeoService.nuxeoClient.repository();\r\n return from(\r\n repo.create(`${path}`, {\r\n ...doc,\r\n properties: this.documentsAdapter.adaptOut(\r\n doc.properties,\r\n DocumentsConstants.fields\r\n ),\r\n })\r\n );\r\n }\r\n uploadDocument(file, path, params, docParams = {}): Observable<any> {\r\n return this.uploadBatch(file).pipe(\r\n switchMap((uploadedFile) => {\r\n return this.createDoc(uploadedFile, path, params, docParams).pipe(\r\n map((createdDocument) => createdDocument),\r\n catchError((err) => {\r\n throw err;\r\n })\r\n );\r\n }),\r\n catchError((err) => {\r\n throw err;\r\n })\r\n );\r\n }\r\n getDocuments(ancestorId, provider, params = {}): Observable<any> {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .repository()\r\n // .enricher('document', 'acls')\r\n .query(\r\n {\r\n pageProvider: DocumentsConstants.pageProvider[provider].name,\r\n // ct_attachment_docRefId: ancestorId,\r\n CtsCommon_correspondence: ancestorId,\r\n ...params,\r\n },\r\n {\r\n headers: DocumentsConstants.pageProvider[provider].headers,\r\n }\r\n )\r\n ).pipe(\r\n map((data: any) => {\r\n data.entries.map((item) =>\r\n this.documentsAdapter.adaptIn(item, this.incomingConstant.attachments)\r\n );\r\n return data;\r\n }),\r\n catchError((err) => {\r\n throw err;\r\n })\r\n );\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { delay, take, takeUntil } from 'rxjs/operators';\r\nimport { NuxeoService } from '../../../../Core/services/nuxeo/nuxeo.service';\r\nimport { ConfirmCallerDialogComponent } from '../../../confirm-caller/confirm-caller.dialog';\r\nimport { CustomToastrService } from '../../../custom-toastr/services/custom-toastr.service';\r\nimport { DocumentsConstants } from '../../constants/documents';\r\nimport { DocumentsService } from '../../services/documents.service';\r\n\r\n/**\r\n * A reusable component to list attachments,\r\n * attachments can be provided as input, or can be queried using providerName and/or ancestorId\r\n * @title\r\n * Documents list\r\n *\r\n * @example\r\n *\r\n * <app-documents-list\r\n * [items]=\"ArrayOfDocumentsOrBatch\"\r\n * [disablePagination]=\"false\"\r\n * [batchList]=\"true\"\r\n * [canPreview]=\"false\"\r\n * (deleteSuccess)=\"onDelete($event)\"\r\n * ></app-documents-list>\r\n */\r\n@Component({\r\n selector: 'app-documents-list',\r\n templateUrl: './documents-list.component.html',\r\n styleUrls: ['./documents-list.component.scss'],\r\n})\r\nexport class DocumentsListComponent implements OnInit, OnChanges, OnDestroy {\r\n /** Ancestor ID */\r\n @Input()\r\n ancestorId;\r\n /** Attachments provider name */\r\n @Input()\r\n provider;\r\n @Input()\r\n /** Should disable Pagination */\r\n disablePagination = false;\r\n /** @deprecated not used */\r\n @Input()\r\n containerClasses: string;\r\n /** @deprecated not used */\r\n @Input()\r\n itemsClasses: string;\r\n /** documents or batch items array */\r\n @Input()\r\n items = [];\r\n /** Event emitter if provided and emitted will cause the list to refresh the list */\r\n @Input()\r\n notifier = null;\r\n /** Can open in viewer */\r\n @Input()\r\n canPreview = true;\r\n /** Wether items input is documents or batchList */\r\n @Input()\r\n batchList = false;\r\n /** Wether to delete actual document on Delete button click or to just emit delete event */\r\n @Input()\r\n dontDelete = false;\r\n /** wether to show or hide delete action */\r\n @Input()\r\n canDelete = true;\r\n /** Provider quick filters */\r\n @Input()\r\n quickFilters;\r\n /** added to diffrentiate between memo view and correspondance view */\r\n @Input() memoView = false;\r\n /** Emitted on delete action */\r\n @Output()\r\n deleteSuccess = new EventEmitter();\r\n /** Emitted on delete action */\r\n @Output()\r\n /** Emitted on documents load with count information */\r\n documentsCount = new EventEmitter<number>();\r\n p = 1;\r\n count = 5;\r\n totalRecords;\r\n isNextPageAvailable = true;\r\n isFetching = false;\r\n onDestroy$: Subject<boolean> = new Subject<boolean>();\r\n /** Emitted when a document is selected */\r\n @Output()\r\n documentSelect: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n constructor(\r\n private documentsApi: DocumentsService,\r\n private nuxeoApi: NuxeoService,\r\n private toastr: CustomToastrService,\r\n private dialog: MatDialog,\r\n private router: Router\r\n ) { }\r\n\r\n getDocuments() {\r\n if (this.provider) {\r\n this.isFetching = true;\r\n this.documentsApi\r\n .getDocuments(this.ancestorId, this.provider, {\r\n currentPageIndex: this.p - 1,\r\n pageSize: this.count,\r\n quickFilters: DocumentsConstants.quickFilters[this.quickFilters],\r\n })\r\n .subscribe((data) => {\r\n this.totalRecords = data.totalSize;\r\n this.isNextPageAvailable = data.isNextPageAvailable;\r\n this.items = data.entries;\r\n this.documentsCount.emit(this.totalRecords);\r\n this.isFetching = false;\r\n });\r\n }\r\n }\r\n isCreator(item) {\r\n return !this.batchList\r\n ? item.properties.creator === this.nuxeoApi.nuxeoClient.user.id\r\n : true;\r\n }\r\n deleteDocument(event, item) {\r\n let deleteDocument = () => {\r\n return this.documentsApi.deleteDocument(item.path);\r\n };\r\n event.stopPropagation();\r\n if (this.canDelete) {\r\n if (!this.batchList) {\r\n this.dialog\r\n .open(ConfirmCallerDialogComponent, {\r\n width: '400px',\r\n data: {\r\n call: deleteDocument,\r\n title: 'genericConfirm',\r\n toastrTitle: '',\r\n toastrMsg: 'documents.deleteSuccess',\r\n },\r\n })\r\n .afterClosed()\r\n .pipe(take(1))\r\n .subscribe((data) => {\r\n if (data) {\r\n if (!this.dontDelete) {\r\n this.deleteSuccess.next(item);\r\n this.items.length == 1 ? (this.p = this.p - 1) : this.p;\r\n if (this.p === 0) {\r\n this.p = 1;\r\n }\r\n this.getDocuments();\r\n } else {\r\n this.deleteSuccess.next(item);\r\n this.items.splice(this.items.indexOf(item), 1);\r\n }\r\n }\r\n });\r\n } else {\r\n this.deleteSuccess.next(item);\r\n }\r\n }\r\n\r\n // this.confirmationDialog\r\n // .openConfirmDialog('genericConfirm')\r\n // .afterClosed()\r\n // .subscribe((data) => {\r\n // if (data) {\r\n // if (!this.dontDelete) {\r\n // this.documentsApi\r\n // .deleteDocument(item.path)\r\n // .subscribe((data) => {\r\n // this.toastr\r\n // .success('documents.deleteSuccess', 'success')\r\n // .onShown.pipe(take(1))\r\n // .subscribe(() => {\r\n // this.deleteSuccess.next(item);\r\n // this.getDocuments();\r\n // });\r\n // });\r\n // } else {\r\n // this.deleteSuccess.next(item);\r\n // this.items.splice(this.items.indexOf(item), 1);\r\n // }\r\n // }\r\n // });\r\n }\r\n onChange(event) {\r\n this.p = event;\r\n this.getDocuments();\r\n }\r\n\r\n preview(docId) {\r\n if (this.canPreview) {\r\n if (this.memoView) {\r\n this.router.navigate([{ outlets: { viewer: ['memo', docId] } }], {\r\n queryParams: { location: this.router.url },\r\n });\r\n } else {\r\n this.router.navigate([{ outlets: { viewer: ['view', docId] } }], {\r\n queryParams: { location: this.router.url },\r\n });\r\n }\r\n } else {\r\n this.documentsApi.getDocument(docId).subscribe(\r\n (file) => {\r\n this.documentSelect.emit({\r\n urlFileContent: file.properties.content.data,\r\n docId: '' + docId,\r\n title: file.title,\r\n });\r\n },\r\n (error) => {\r\n console.error(error);\r\n this.toastr\r\n .show('error', 'error', error.message)\r\n .onShown.subscribe(() => { });\r\n }\r\n );\r\n }\r\n }\r\n ngOnInit(): void {\r\n this.getDocuments();\r\n if (this.notifier) {\r\n this.notifier.pipe(takeUntil(this.onDestroy$)).subscribe(() => {\r\n this.getDocuments();\r\n });\r\n }\r\n this.documentsApi.reFetch.subscribe((value) => {\r\n if (value) {\r\n this.getDocuments();\r\n }\r\n });\r\n }\r\n ngOnChanges(): void {\r\n this.getDocuments();\r\n }\r\n ngOnDestroy(): void {\r\n this.onDestroy$.next(true);\r\n this.onDestroy$.complete();\r\n }\r\n}\r\n","<ng-container *ngIf=\"!isFetching; else spinner\">\r\n <div *ngIf=\"items.length; else noEntry\">\r\n <div class=\"doc-list\">\r\n <div class=\"doc-item\" (click)=\"preview(item.uid)\" *ngFor=\"\r\n let item of items\r\n ;\r\n let last = last\r\n \">\r\n <div class=\"item-content\">\r\n <mat-icon class=\"file-icon\">file_copy</mat-icon>\r\n {{ item.title }}\r\n </div>\r\n <button *ngIf=\"canDelete && isCreator(item)\" (click)=\"deleteDocument($event, item)\"\r\n class=\"btn btn-outline-danger btn-no-border\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"{ 'hidden': disablePagination }\" class=\"wrapping-pagination my-3\">\r\n <cts-pagination [page]=\"p\" (change)=\"onChange($event)\"\r\n [size]=\"count\" [count]=\"totalRecords\">\r\n </cts-pagination>\r\n </div>\r\n </div>\r\n <ng-template #noEntry>\r\n <!-- <app-no-entry [msg]=\"'documents.noEntry'\"></app-no-entry> -->\r\n <cts-no-data\r\n [message]=\"'documents.noEntry'\"\r\n ></cts-no-data>\r\n </ng-template>\r\n</ng-container>\r\n<ng-template #spinner>\r\n <mat-spinner class=\"centered-spinner\"></mat-spinner>\r\n</ng-template>\r\n","import { APP_BASE_HREF, DatePipe } from '@angular/common';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter, Inject,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport Dynamsoft from 'dwt';\r\nimport { DocumentsService } from '../../services/documents.service';\r\n\r\n/**\r\n * Document Scan is a reusable nuxeo API & Scanner integrated component,\r\n * that utilizes the scanner to create and upload PDF file as a batch, then provide\r\n * that batch for consumption\r\n *\r\n * @title\r\n * Document Scan\r\n *\r\n * @example\r\n *\r\n * <app-document-scan\r\n * (file)=\"onSuccess($event)\"\r\n * ></app-document-scan>\r\n */\r\n@Component({\r\n selector: 'app-document-scan',\r\n templateUrl: './document-scan.component.html',\r\n styleUrls: ['./document-scan.component.scss'],\r\n host: { class: 'scanner' },\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ScanComponent implements OnInit, AfterViewInit {\r\n uploadedFile;\r\n /** Event emitted when a batch is uploaded */\r\n @Output()\r\n file: EventEmitter<any> = new EventEmitter();\r\n\r\n DWObject;\r\n selectSources: HTMLSelectElement;\r\n DWTSourceCount = 0;\r\n filename = '';\r\n containerId = 'dwtcontrolContainer';\r\n bWASM = Dynamsoft.Lib.env.bMobile || Dynamsoft.DWT.UseLocalService;\r\n _iLeft;\r\n _iTop;\r\n _iRight;\r\n _iBottom;\r\n _strTempStr = '';\r\n re = /^\\d+$/;\r\n strre = /^[\\s\\w]+$/;\r\n refloat = /^\\d+\\.*\\d*$/i;\r\n innerHTML: string;\r\n constructor(\r\n public translate: TranslateService,\r\n public documentsService: DocumentsService,\r\n public datePipe: DatePipe,\r\n @Inject(APP_BASE_HREF) private baseHref: string\r\n ) { }\r\n ngOnInit(): void {\r\n Dynamsoft.DWT.ResourcesPath = this.baseHref + '/assets/dwt-resources';\r\n ///\r\n Dynamsoft.DWT.AutoLoad = true;\r\n ///\r\n // const width = window.outerWidth * 0.3;\r\n // const height = window.outerHeight * 0.3;\r\n Dynamsoft.DWT.Containers = [\r\n {\r\n WebTwainId: 'DWTObject',\r\n ContainerId: 'dwtcontrolContainer',\r\n Width: '100%',\r\n Height: '100%'\r\n }\r\n ];\r\n\r\n Dynamsoft.DWT.ProductKey =\r\n 't0152KQMAAHbz+p2tyQK8lJZ+mCg1fSy4YcR37VyB9/xWDyO5Crr9vh18RXW7loYCSa4V+f+toPCW8QmoZunsU/sV6vlByVobCbYhOgaxiJA7peIaw928i9FqcNPnNGXWnflg/xj0aQwnjNqm7GdsupmPHbKfuTWcMGqbbubG9Pcc0hD3U8hWM8vIcMKobWrmq6FGkmv8A0T7orc=';\r\n // Dynamsoft.DWT.Trial = false;\r\n // Dynamsoft.DWT.Debug = false; // only for debugger output\r\n\r\n ///\r\n Dynamsoft.DWT.IfAddMD5InUploadHeader = false;\r\n\r\n ///\r\n Dynamsoft.DWT.IfConfineMaskWithinTheViewer = false;\r\n Dynamsoft.MSG = {\r\n ConvertingToBase64: this.translate.instant(\r\n 'scanner.ConvertingToBase64'\r\n ),\r\n ConvertingToBlob: this.translate.instant(\r\n 'scanner.ConvertingToBlob'\r\n ),\r\n Downloading: this.translate.instant('scanner.Downloading'),\r\n Encoding: this.translate.instant('scanner.Encoding'),\r\n Err_BrowserNotSupportWasm: this.translate.instant(\r\n 'scanner.Err_BrowserNotSupportWasm'\r\n ),\r\n Init_AllJsLoaded: Dynamsoft.MSG.Init_AllJsLoaded,\r\n Init_CheckDWT: Dynamsoft.MSG.Init_CheckDWT,\r\n Init_CheckDWTVersion: Dynamsoft.MSG.Init_CheckDWTVersion,\r\n Init_CheckingLicense: Dynamsoft.MSG.Init_CheckingLicense,\r\n Init_CompilingWasm: Dynamsoft.MSG.Init_CompilingWasm,\r\n Init_ConfiguringDWT: Dynamsoft.MSG.Init_ConfiguringDWT,\r\n Init_CreatingDWT: Dynamsoft.MSG.Init_CreatingDWT,\r\n Init_DownloadingWasm: Dynamsoft.MSG.Init_DownloadingWasm,\r\n Init_FireBeforeInitEvt: Dynamsoft.MSG.Init_FireBeforeInitEvt,\r\n Init_GetLicenseInfoForDWT: Dynamsoft.MSG.Init_GetLicenseInfoForDWT,\r\n Init_InitActiveX: Dynamsoft.MSG.Init_InitActiveX,\r\n Init_InitDynamsoftService: Dynamsoft.MSG.Init_InitDynamsoftService,\r\n Init_InitH5: Dynamsoft.MSG.Init_InitH5,\r\n Init_InitWasm: Dynamsoft.MSG.Init_InitWasm,\r\n Init_LoadingViewerJs: Dynamsoft.MSG.Init_LoadingViewerJs,\r\n Init_LookingLicense: Dynamsoft.MSG.Init_LookingLicense,\r\n Init_SetLicenseForDWT: Dynamsoft.MSG.Init_SetLicenseForDWT,\r\n Loading: this.translate.instant('scanner.Loading'),\r\n LoadingPdf: this.translate.instant('scanner.LoadingPdf'),\r\n LoadingTiff: this.translate.instant('scanner.LoadingTiff'),\r\n SavingPdf: this.translate.instant('scanner.SavingPdf'),\r\n SavingTiff: this.translate.instant('scanner.SavingTiff'),\r\n Uploading: this.translate.instant('scanner.Uploading')\r\n };\r\n Dynamsoft.DWT.CustomizableDisplayInfo = {\r\n errorMessages: this.translate.instant('scanner.errorMessages'),\r\n\r\n // launch\r\n generalMessages: this.translate.instant('scanner.generalMessages'),\r\n\r\n customProgressText: this.translate.instant(\r\n 'scanner.customProgressText'\r\n ),\r\n\r\n // image editor\r\n buttons: this.translate.instant('scanner.buttons'),\r\n\r\n dialogText: this.translate.instant('scanner.dialogText')\r\n };\r\n\r\n Dynamsoft.DWT.OnWebTwainReady = (): any => {\r\n this.pageonload();\r\n this.Dynamsoft_OnReady();\r\n };\r\n Dynamsoft.DWT.Load();\r\n }\r\n ngAfterViewInit() {\r\n this.pageonload();\r\n }\r\n\r\n pageonload() {\r\n this.HideLoadImageForLinux();\r\n const twainsource: any = document.getElementById('source');\r\n if (twainsource) {\r\n twainsource.options.length = 0;\r\n twainsource.options.add(\r\n new Option(this.translate.instant('scanner.pleaseWait'), '0')\r\n );\r\n twainsource.options[0].selected = true;\r\n }\r\n\r\n this.initiateInputs();\r\n }\r\n\r\n HideLoadImageForLinux() {\r\n const o = document.getElementById('liLoadImage');\r\n if (o) {\r\n if (Dynamsoft.Lib.env.bLinux) { o.style.display = 'none'; }\r\n else { o.style.display = ''; }\r\n }\r\n }\r\n\r\n initiateInputs() {\r\n const allinputs = document.getElementsByTagName('input');\r\n for (let i = 0; i < allinputs.length; i++) {\r\n if (allinputs[i].type === 'checkbox') {\r\n allinputs[i].checked = false;\r\n } else if (allinputs[i].type === 'text') {\r\n allinputs[i].value = '';\r\n }\r\n }\r\n\r\n if (Dynamsoft.Lib.env.bIE === true && Dynamsoft.Lib.env.bWin64 === true) {\r\n let o = document.getElementById('samplesource64bit');\r\n if (o) { o.style.display = 'inline'; }\r\n\r\n o = document.getElementById('samplesource32bit');\r\n if (o) { o.style.display = 'none'; }\r\n }\r\n }\r\n\r\n initDllForChangeImageSize() {\r\n const vInterpolationMethod: any = document.getElementById(\r\n 'InterpolationMethod'\r\n );\r\n vInterpolationMethod.options.length = 0;\r\n vInterpolationMethod.options.add(new Option('NearestNeighbor', '1'));\r\n vInterpolationMethod.options.add(new Option('Bilinear', '2'));\r\n vInterpolationMethod.options.add(new Option('Bicubic', '3'));\r\n }\r\n\r\n setDefaultValue() {\r\n const vGray: any = document.getElementById('Gray');\r\n if (vGray) { vGray.checked = true; }\r\n\r\n const varImgTypepng2: any = document.getElementById('imgTypepng2');\r\n if (varImgTypepng2) { varImgTypepng2.checked = true; }\r\n const varImgTypepng: any = document.getElementById('imgTypepng');\r\n if (varImgTypepng) { varImgTypepng.checked = true; }\r\n\r\n const _strDefaultSaveImageName = 'WebTWAINImage';\r\n const _txtFileNameforSave: any = document.getElementById(\r\n 'txt_fileNameforSave'\r\n );\r\n if (_txtFileNameforSave) {\r\n _txtFileNameforSave.value = _strDefaultSaveImageName;\r\n }\r\n\r\n const _txtFileName: any = document.getElementById('txt_fileName');\r\n if (_txtFileName) { _txtFileName.value = _strDefaultSaveImageName; }\r\n\r\n const _chkMultiPageTIFF_save: any = document.getElementById(\r\n 'MultiPageTIFF_save'\r\n );\r\n if (_chkMultiPageTIFF_save) { _chkMultiPageTIFF_save.disabled = true; }\r\n const _chkMultiPagePDF_save: any = document.getElementById(\r\n 'MultiPagePDF_save'\r\n );\r\n if (_chkMultiPagePDF_save) { _chkMultiPagePDF_save.disabled = true; }\r\n const _chkMultiPageTIFF: any = document.getElementById('MultiPageTIFF');\r\n if (_chkMultiPageTIFF) { _chkMultiPageTIFF.disabled = true; }\r\n const _chkMultiPagePDF: any = document.getElementById('MultiPagePDF');\r\n if (_chkMultiPagePDF) { _chkMultiPagePDF.disabled = true; }\r\n }\r\n\r\n // Check if the control is fully loaded.\r\n Dynamsoft_OnReady() {\r\n const liNoScanner = document.getElementById('pNoScanner');\r\n // If the ErrorCode is 0, it means everything is fine for the control. It is fully loaded.\r\n this.DWObject = Dynamsoft.DWT.GetWebTwain('dwtcontrolContainer');\r\n if (this.DWObject) {\r\n if (this.DWObject.ErrorCode === 0) {\r\n this.DWObject.LogLevel = 0;\r\n this.DWObject.IfAllowLocalCache = true;\r\n this.DWObject.ImageCaptureDriverType = 4;\r\n this.setDefaultValue();\r\n\r\n this.DWObject.RegisterEvent(\r\n 'OnTopImageInTheViewChanged',\r\n this.Dynamsoft_OnTopImageInTheViewChanged\r\n );\r\n this.DWObject.RegisterEvent(\r\n 'OnMouseClick',\r\n this.Dynamsoft_OnMouseClick\r\n );\r\n\r\n let twainsource: any = document.getElementById('source');\r\n if (!twainsource) {\r\n twainsource = document.getElementById('webcamsource');\r\n }\r\n\r\n const vCount = this.DWObject.SourceCount;\r\n this.DWTSourceCount = vCount;\r\n\r\n if (twainsource) {\r\n twainsource.options.length = 0;\r\n for (let i = 0; i < vCount; i++) {\r\n twainsource.options.add(\r\n new Option(this.DWObject.GetSourceNameItems(i), i.toString())\r\n );\r\n }\r\n }\r\n\r\n // If source list need to be displayed, fill in the source items.\r\n if (vCount === 0) {\r\n if (liNoScanner) {\r\n if (Dynamsoft.Lib.env.bWin) {\r\n liNoScanner.style.display = 'block';\r\n liNoScanner.style.textAlign = 'center';\r\n } else { liNoScanner.style.display = 'none'; }\r\n }\r\n }\r\n\r\n if (vCount > 0) {\r\n this.source_onchange();\r\n }\r\n\r\n if (Dynamsoft.Lib.env.bWin) { this.DWObject.MouseShape = false; }\r\n\r\n const btnScan: any = document.getElementById('btnScan');\r\n if (btnScan) {\r\n if (vCount === 0) { btnScan.disabled = true; }\r\n else {\r\n btnScan.disabled = false;\r\n }\r\n }\r\n\r\n if (!Dynamsoft.Lib.env.bWin && vCount > 0) {\r\n if (document.getElementById('lblShowUI')) {\r\n document.getElementById('lblShowUI').style.display = 'none';\r\n }\r\n if (document.getElementById('ShowUI')) {\r\n document.getElementById('ShowUI').style.display = 'none';\r\n }\r\n } else {\r\n if (document.getElementById('lblShowUI')) {\r\n document.getElementById('lblShowUI').style.display = '';\r\n }\r\n if (document.getElementById('ShowUI')) {\r\n document.getElementById('ShowUI').style.display = '';\r\n }\r\n }\r\n\r\n this.initDllForChangeImageSize();\r\n\r\n this._iLeft = 0;\r\n this._iTop = 0;\r\n this._iRight = 0;\r\n this._iBottom = 0;\r\n\r\n for (let i = 0; i < document.links.length; i++) {\r\n if (document.links[i].className === 'ShowtblLoadImage') {\r\n document.links[i].onclick = this.showtblLoadImage_onclick;\r\n }\r\n if (document.links[i].className === 'ClosetblLoadImage') {\r\n document.links[i].onclick = this.closetblLoadImage_onclick;\r\n }\r\n }\r\n if (vCount === 0) {\r\n if (Dynamsoft.Lib.env.bWin) {\r\n if (\r\n document.getElementById('aNoScanner') &&\r\n window['bDWTOnlineDemo']\r\n ) {\r\n if (document.getElementById('div_ScanImage').style.display === '') {\r\n this.showtblLoadImage_onclick();\r\n }\r\n }\r\n if (document.getElementById('Resolution')) {\r\n document.getElementById('Resolution').style.display = 'none';\r\n }\r\n }\r\n } else {\r\n const divBlank = document.getElementById('divBlank');\r\n if (divBlank) { divBlank.style.display = 'none'; }\r\n }\r\n\r\n this.updatePageInfo();\r\n const ua = navigator.userAgent.toLowerCase();\r\n if (!ua.indexOf('msie 6.0')) {\r\n }\r\n\r\n this.DWObject.RegisterEvent(\r\n 'OnPostTransfer',\r\n this.Dynamsoft_OnPostTransfer\r\n );\r\n this.DWObject.RegisterEvent(\r\n 'OnPostLoad',\r\n this.Dynamsoft_OnPostLoadfunction\r\n );\r\n this.DWObject.RegisterEvent(\r\n 'OnPostAllTransfers',\r\n this.Dynamsoft_OnPostAllTransfers\r\n );\r\n this.DWObject.RegisterEvent(\r\n 'OnImageAreaSelected',\r\n this.Dynamsoft_OnImageAreaSelected\r\n );\r\n this.DWObject.RegisterEvent(\r\n 'OnImageAreaDeSelected',\r\n this.Dynamsoft_OnImageAreaDeselected\r\n );\r\n this.DWObject.RegisterEvent(\r\n 'OnGetFilePath',\r\n this.Dynamsoft_OnGetFilePath\r\n );\r\n }\r\n }\r\n }\r\n\r\n showtblLoadImage_onclick() {\r\n switch (document.getElementById('tblLoadImage').style.visibility) {\r\n case 'hidden':\r\n document.getElementById('tblLoadImage').style.visibility = 'visible';\r\n document.getElementById('Resolution').style.visibility = 'hidden';\r\n break;\r\n case 'visible':\r\n document.getElementById('tblLoadImage').style.visibility = 'hidden';\r\n document.getElementById('Resolution').style.visibility = 'visible';\r\n break;\r\n default:\r\n break;\r\n }\r\n if (document.getElementById('pNoScanner')) {\r\n // document.getElementById(\"tblLoadImage\").style.top = ds_gettop(document.getElementById(\"pNoScanner\")) + pNoScanner.offsetHeight + \"px\";\r\n // document.getElementById(\"tblLoadImage\").style.left = ds_getleft(document.getElementById(\"pNoScanner\")) + 0 + \"px\";\r\n }\r\n return false;\r\n }\r\n\r\n closetblLoadImage_onclick() {\r\n document.getElementById('tblLoadImage').style.visibility = 'hidden';\r\n document.getElementById('Resolution').style.visibility = 'visible';\r\n return false;\r\n }\r\n\r\n // --------------------------------------------------------------------------------------\r\n // ************************** Used a lot *****************************\r\n // --------------------------------------------------------------------------------------\r\n updatePageInfo() {\r\n const totalImage: any = document.getElementById('DW_TotalImage');\r\n const currentImage: any = document.getElementById('DW_CurrentImage');\r\n if (totalImage) { totalImage.value = this.DWObject.HowManyImagesInBuffer; }\r\n if (currentImage) {\r\n currentImage.value = this.DWObject.CurrentImageIndexInBuffer + 1;\r\n }\r\n }\r\n\r\n appendMessage(strMessage) {\r\n this._strTempStr += strMessage;\r\n const _divMessageContainer = document.getElementById('DWTemessage');\r\n if (_divMessageContainer) {\r\n _divMessageContainer.innerHTML = this._strTempStr;\r\n _divMessageContainer.scrollTop = _divMessageContainer.scrollHeight;\r\n }\r\n }\r\n\r\n checkIfImagesInBuffer() {\r\n if (this.DWObject.HowManyImagesInBuffer === 0) {\r\n this.appendMessage('There is no image in buffer.<br />');\r\n return false;\r\n } else { return true; }\r\n }\r\n\r\n checkErrorString() {\r\n return this.checkErrorStringWithErrorCode(\r\n this.DWObject.ErrorCode,\r\n this.DWObject.ErrorString\r\n );\r\n }\r\n\r\n checkErrorStringWithErrorCode(errorCode, errorString, responseString = null) {\r\n if (errorCode === 0) {\r\n this.appendMessage(\r\n '<span style=\\'color:#cE5E04\\'><b>' + errorString + '</b></span><br />'\r\n );\r\n\r\n return true;\r\n }\r\n if (errorCode === -2115) {\r\n // Cancel file dialog\r\n return true;\r\n }\r\n else {\r\n if (errorCode === -2003) {\r\n const ErrorMessageWin = window.open(\r\n '',\r\n 'ErrorMessage',\r\n 'height=500,width=750,top=0,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no'\r\n );\r\n ErrorMessageWin.document.writeln(responseString); // this.DWObject.HTTPPostResponseString);\r\n }\r\n this.appendMessage(\r\n '<span style=\\'color:#cE5E04\\'><b>' + errorString + '</b></span><br />'\r\n );\r\n return false;\r\n }\r\n }\r\n // --------------------------------------------------------------------------------------\r\n // ************************** Used a lot *****************************\r\n // --------------------------------------------------------------------------------------\r\n ds_getleft(el) {\r\n let tmp = el.offsetLeft;\r\n el = el.offsetParent;\r\n while (el) {\r\n tmp += el.offsetLeft;\r\n el = el.offsetParent;\r\n }\r\n return tmp;\r\n }\r\n ds_gettop(el) {\r\n let tmp = el.offsetTop;\r\n el = el.offsetParent;\r\n while (el) {\r\n tmp += el.offsetTop;\r\n el = el.offsetParent;\r\n }\r\n return tmp;\r\n }\r\n\r\n Over_Out_DemoImage(obj, url) {\r\n obj.src = url;\r\n }\r\n source_onchange() {\r\n if (document.getElementById('divTwainType')) {\r\n document.getElementById('divTwainType').style.display = '';\r\n }\r\n\r\n if (document.getElementById('source')) {\r\n const cIndex = (document.getElementById('source') as HTMLSelectElement)\r\n .selectedIndex;\r\n if (Dynamsoft.Lib.env.bMac) {\r\n const strSourceName = this.DWObject.GetSourceNameItems(cIndex);\r\n if (strSourceName.indexOf('ICA') === 0) {\r\n if (document.getElementById('lblShowUI')) {\r\n document.getElementById('lblShowUI').style.display = 'none';\r\n }\r\n if (document.getElementById('ShowUI')) {\r\n document.getElementById('ShowUI').style.display = 'none';\r\n }\r\n } else {\r\n if (document.getElementById('lblShowUI')) {\r\n document.getElementById('lblShowUI').style.display = '';\r\n }\r\n if (document.getElementById('ShowUI')) {\r\n document.getElementById('ShowUI').style.display = '';\r\n }\r\n }\r\n } else { this.DWObject.SelectSourceByIndex(cIndex); }\r\n }\r\n }\r\n\r\n mediaType_onchange() {\r\n const MediaType: any = document.getElementById('MediaType');\r\n if (MediaType && MediaType.options.length > 0) {\r\n const valueMediaType = MediaType.options[MediaType.selectedIndex].text;\r\n if (valueMediaType !== '') {\r\n if (!this.DWObject.Addon.Webcam.SetMediaType(valueMediaType)) {\r\n this.appendMessage('<b>Error setting MediaType value: </b>');\r\n this.appendMessage(\r\n '<span style=\\'color:#cE5E04\\'><b>' +\r\n this.DWObject.ErrorString +\r\n '</b></span><br />'\r\n );\r\n return;\r\n }\r\n }\r\n }\r\n\r\n const ResolutionWebcam: any = document.getElementById('ResolutionWebcam');\r\n if (ResolutionWebcam) {\r\n ResolutionWebcam.options.length = 0;\r\n const aryResolution = this.DWObject.Addon.Webcam.GetResolution();\r\n const countResolution = aryResolution.GetCount();\r\n for (let i = 0; i < countResolution; i++) {\r\n const value = aryResolution.Get(i);\r\n ResolutionWebcam.options.add(new Option(value, value));\r\n }\r\n }\r\n }\r\n\r\n /*-----------------Acquire Image---------------------*/\r\n\r\n acquireImage() {\r\n const cIndex = (document.getElementById('source') as HTMLSelectElement)\r\n .selectedIndex;\r\n if (cIndex < 0) { return; }\r\n\r\n this.DWObject.SelectSourceByIndex(cIndex);\r\n this.DWObject.CloseSource();\r\n this.DWObject.OpenSource();\r\n this.DWObject.IfShowUI = (document.getElementById(\r\n 'ShowUI'\r\n ) as HTMLInputElement).checked;\r\n\r\n let i;\r\n for (i = 0; i < 3; i++) {\r\n if (\r\n (document.getElementsByName('PixelType').item(i) as HTMLInputElement)\r\n .checked === true\r\n ) {\r\n this.DWObject.PixelType = i;\r\n }\r\n }\r\n if (this.DWObject.ErrorCode !== 0) {\r\n this.appendMessage('<b>Error setting PixelType value: </b>');\r\n this.appendMessage(\r\n '<span style=\\'color:#cE5E04\\'><b>' +\r\n this.DWObject.ErrorString +\r\n '</b></span><br />'\r\n );\r\n }\r\n this.DWObject.Resolution = (document.getElementById(\r\n 'Resolution'\r\n ) as HTMLInputElement).value;\r\n if (this.DWObject.ErrorCode !== 0) {\r\n this.appendMessage('<b>Error setting Resolution value: </b>');\r\n this.appendMessage(\r\n '<span style=\\'color:#cE5E04\\'><b>' +\r\n this.DWObject.ErrorString +\r\n '</b></span><br />'\r\n );\r\n }\r\n\r\n const bADFChecked = (document.getElementById('ADF') as HTMLInputElement)\r\n .checked;\r\n this.DWObject.IfFeederEnabled = bADFChecked;\r\n if (bADFChecked === true && this.DWObject.ErrorCode !== 0) {\r\n this.appendMessage('<b>Error setting ADF value: </b>');\r\n this.appendMessage(\r\n '<span style=\\'color:#cE5E04\\'><b>' +\r\n this.DWObject.ErrorString +\r\n '</b></span><br />'\r\n );\r\n }\r\n\r\n const bDuplexChecked = (document.getElementById(\r\n 'Duplex'\r\n ) as HTMLInputElement).checked;\r\n this.DWObject.IfDuplexEnabled = bDuplexChecked;\r\n if (bDuplexChecked === true && this.DWObject.ErrorCode !== 0) {\r\n this.appendMessage('<b>Error setting Duplex value: </b>');\r\n this.appendMessage(\r\n '<span style=\\'color:#cE5E04\\'><b>' +\r\n this.DWObject.ErrorString +\r\n '</b></span><br />'\r\n );\r\n }\r\n if (\r\n Dynamsoft.Lib.env.bWin ||\r\n (!Dynamsoft.Lib.env.bWin && this.DWObject.ImageCaptureDriverType === 0)\r\n ) {\r\n this.appendMessage(\r\n 'Pixel Type: ' +\r\n this.DWObject.PixelType +\r\n '<br />Resolution: ' +\r\n this.DWObject.Resolution +\r\n '<br />'\r\n );\r\n }\r\n this.DWObject.IfDisableSourceAfterAcquire = true;\r\n this.DWObject.AcquireImage();\r\n }\r\n\r\n /*-----------------Load Image---------------------*/\r\n btnLoadImagesOrPDFs_onclick() {\r\n const OnPDFSuccess = () => {\r\n this.appendMessage('Loaded an image successfully.<br/>');\r\n this.updatePageInfo();\r\n };\r\n\r\n const OnPDFFailure = (errorCode, errorString) => {\r\n this.checkErrorStringWithErrorCode(errorCode, errorString);\r\n };\r\n\r\n this.DWObject.IfShowFileDialog = true;\r\n this.DWObject.Addon.PDF.SetResolution(200);\r\n this.DWObject.Addon.PDF.SetConvertMode(\r\n Dynamsoft.DWT.EnumDWT_ConvertMode.CM_RENDERALL\r\n );\r\n this.DWObject.LoadImageEx(\r\n '',\r\n Dynamsoft.DWT.EnumDWT_ImageType.IT_ALL,\r\n OnPDFSuccess,\r\n OnPDFFailure\r\n );\r\n }\r\n\r\n // --------------------------------------------------------------------------------------\r\n // ************************** Edit Image ******************************\r\n\r\n // --------------------------------------------------------------------------------------\r\n btnShowImageEditor_onclick() {\r\n if (!this.checkIfImagesInBuffer()) {\r\n return;\r\n }\r\n this.DWObject.ShowImageEditor();\r\n }\r\n\r\n btnRotateRight_onclick() {\r\n if (!this.checkIfImagesInBuffer()) {\r\n return;\r\n }\r\n this.DWObject.RotateRight(this.DWObject.CurrentImageIndexInBuffer);\r\n this.appendMessage('<b>Rotate right: </b>');\r\n if (this.checkErrorString()) {\r\n return;\r\n }\r\n }\r\n btnRotateLeft_onclick() {\r\n if (!this.checkIfImagesInBuffer()) {\r\n return;\r\n }\r\n this.DWObject.RotateLeft(this.DWObject.CurrentImageIndexInBuffer);\r\n this.appendMessage('<b>Rotate left: </b>');\r\n if (this.checkErrorString()) {\r\n return;\r\n }\r\n }\r\n\r\n btnRotate180_onclick() {\r\n if (!this.checkIfImagesInBuffer()) {\r\n return;\r\n }\r\n this.DWObject.Rotate(this.DWObject.CurrentImageIndexInBuffer, 180, true);\r\n this.appendMessage('<b>Rotate 180: </b>');\r\n if (this.checkErrorString()) {\r\n return;\r\n }\r\n }\r\n\r\n btnMirror_onclick() {\r\n if (!this.checkIfImagesInBuffer()) {\r\n return;\r\n }\r\n this.DWObject.Mirror(this.DWObject.CurrentImageIndexInBuffer);\r\n this.appendMessage('<b>Mirror: </b>');\r\n if (this.checkErrorString()) {\r\n return;\r\n }\r\n }\r\n btnFlip_onclick() {\r\n if (!this.checkIfImagesInBuffer()) {\r\n return;\r\n }\r\n this.DWObject.Flip(this.DWObject.CurrentImageIndexInBuffer);\r\n this.appendMessage('<b>Flip: </b>');\r\n if (this.checkErrorString()) {\r\n return;\r\n }\r\n }\r\n\r\n /*----------------------Crop Method---------------------*/\r\n btnCrop_onclick() {\r\n if (!this.checkIfImagesInBuffer()) {\r\n return;\r\n }\r\n if (\r\n this._iLeft !== 0 ||\r\n this._iTop !== 0 ||\r\n this._iRight !== 0 ||\r\n this._iBottom !== 0\r\n ) {\r\n this.DWObject.Crop(\r\n this.DWObject.CurrentImageIndexInBuffer,\r\n this._iLeft,\r\n this._iTop,\r\n this._iRight,\r\n this._iBottom\r\n );\r\n this._iLeft = 0;\r\n this._iTop = 0;\r\n this._iRight = 0;\r\n this._iBottom = 0;\r\n this.appendMessage('<b>Crop: </b>');\r\n if (this.checkErrorString()) {\r\n return;\r\n }\r\n return;\r\n } else {\r\n this.appendMessage(\r\n '<b>Crop: </b>failed. Please first select the area you\\'d like to crop.<br />'\r\n );\r\n }\r\n }\r\n /*----------------Change Image Size--------------------*/\r\n btnChangeImageSize_onclick() {\r\n if (!this.checkIfImagesInBuffer()) {\r\n return;\r\n }\r\n switch (document.getElementById('ImgSizeEditor').style.visibility) {\r\n case 'visible':\r\n document.getElementById('ImgSizeEditor').style.visibility = 'hidden';\r\n break;\r\n case 'hidden':\r\n document.getElementById('ImgSizeEditor').style.visibility = 'visible';\r\n break;\r\n default:\r\n break;\r\n }\r\n // document.getElementById(\"ImgSizeEditor\").style.top = ds_gettop(document.getElementById(\"btnChangeImageSize\")) + document.getElementById(\"btnChangeImageSize\").offsetHeight + 15 + \"px\";\r\n // document.getElementById(\"ImgSizeEditor\").style.left = ds_getleft(document.getElementById(\"btnChangeImageSize\")) - 14 + \"px\";\r\n\r\n const iWidth = this.DWObject.GetImageWidth(\r\n this.DWObject.CurrentImageIndexInBuffer\r\n );\r\n if (iWidth !== -1) {\r\n (document.getElementById('img_width') as HTMLInputElement).value = iWidth;\r\n }\r\n const iHeight = this.DWObject.GetImageHeight(\r\n this.DWObject.CurrentImageIndexInBuffer\r\n );\r\n if (iHeight !== -1) {\r\n (document.getElementById(\r\n 'img_height'\r\n ) as HTMLInputElement).value = iHeight;\r\n }\r\n }\r\n btnCancelChange_onclick() {\r\n document.getElementById('ImgSizeEditor').style.visibility = 'hidden';\r\n }\r\n\r\n btnChangeImageSizeOK_onclick() {\r\n document.getElementById('img_height').className = '';\r\n document.getElementById('img_width').className = '';\r\n if (\r\n !this.re.test(\r\n (document.getElementById('img_height') as HTMLInputElement).value\r\n )\r\n ) {\r\n document.getElementById('img_height').className += ' invalid';\r\n document.getElementById('img_height').focus();\r\n this.appendMessage('Please input a valid <b>height</b>.<br />');\r\n return;\r\n }\r\n if (\r\n !this.re.test(\r\n (document.getElementById('img_width') as HTMLInputElement).value\r\n )\r\n ) {\r\n document.getElementById('img_width').className += ' invalid';\r\n document.getElementById('img_width').focus();\r\n this.appendMessage('Please input a valid <b>width</b>.<br />');\r\n return;\r\n }\r\n this.DWObject.ChangeImageSize(\r\n this.DWObject.CurrentImageIndexInBuffer,\r\n (document.getElementById('img_width') as HTMLInputElement).value,\r\n (document.getElementById('img_height') as HTMLInputElement).value,\r\n (document.getElementById('InterpolationMethod') as HTMLSelectElement)\r\n .selectedIndex + 1\r\n );\r\n this.appendMessage('<b>Change Image Size: </b>');\r\n if (this.checkErrorString()) {\r\n document.getElementById('ImgSizeEditor').style.visibility = 'hidden';\r\n return;\r\n }\r\n }\r\n // --------------------------------------------------------------------------------------\r\n // ************************** Save Image***********************************\r\n // --------------------------------------------------------------------------------------\r\n\r\n\r\n btnSave_onclick() {\r\n if (!this.checkIfImagesInBuffer()) {\r\n return;\r\n }\r\n const strimgType_save = 'pdf';\r\n\r\n this.DWObject.IfShowFileDialog = true;\r\n const _txtFileNameforSave: any = document.getElementById('txt_fileName');\r\n if (_txtFileNameforSave) { _txtFileNameforSave.className = ''; }\r\n let bSave: any = false;\r\n\r\n const strFilePath = _txtFileNameforSave.value + '.' + strimgType_save;\r\n\r\n const OnSuccess = () => {\r\n this.appendMessage('<b>Save Image: </b>');\r\n this.checkErrorStringWithErrorCode(0, 'Successful.');\r\n };\r\n\r\n const OnFailure = (errorCode, errorString) => {\r\n this.checkErrorStringWithErrorCode(errorCode, errorString);\r\n };\r\n\r\n bSave = this.DWObject.SaveAllAsPDF(strFilePath, OnSuccess, OnFailure);\r\n\r\n if (bSave) { this.appendMessage('<b>Save Image: </b>'); }\r\n if (this.checkErrorString()) {\r\n return;\r\n }\r\n }\r\n // --------------------------------------------------------------------------------------\r\n // ************************** Upload Image***********************************\r\n // --------------------------------------------------------------------------------------\r\n makeid(length) {\r\n let result = '';\r\n const characters =\r\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n const charactersLength = characters.length;\r\n for (let i = 0; i < length; i++) {\r\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\r\n }\r\n return result;\r\n }\r\n\r\n convertToBlob() {\r\n const pages = [];\r\n for (let index = 0; index < this.DWObject?.HowManyImagesInBuffer; index++) {\r\n pages.push(index);\r\n }\r\n this.DWObject.ConvertToBlob(\r\n pages,\r\n Dynamsoft.DWT.EnumDWT_ImageType.IT_PDF,\r\n (result, indices, type) => {\r\n result.lastModifiedDate = new Date();\r\n result.name = 'scan-' + this.datePipe.transform(result.lastModifiedDate, 'dd-MM-yyyy') + '.pdf';\r\n this.documentsService.uploadBatch([result]).subscribe((batch) => {\r\n batch.forEach(doc => {\r\n this.file.next(doc);\r\n });\r\n });\r\n },\r\n function (errorCode, errorString) {\r\n console.log(errorString);\r\n }\r\n );\r\n }\r\n\r\n\r\n // --------------------------------------------------------------------------------------\r\n // ************************** Navigator functions***********************************\r\n // --------------------------------------------------------------------------------------\r\n\r\n btnFirstImage_onclick() {\r\n if (!this.checkIfImagesInBuffer()) {\r\n return;\r\n }\r\n this.DWObject.CurrentImageIndexInBuffer = 0;\r\n this.updatePageInfo();\r\n }\r\n\r\n btnPreImage_wheel() {\r\n if (this.DWObject.HowManyImagesInBuffer !== 0) { this.btnPreImage_onclick(); }\r\n }\r\n\r\n btnNextImage_wheel() {\r\n if (this.DWObject.HowManyImagesInBuffer !== 0) { this.btnNextImage_onclick(); }\r\n }\r\n\r\n btnPreImage_onclick() {\r\n if (!this.checkIfImagesInBuffer()) {\r\n return;\r\n } else if (this.DWObject.CurrentImageIndexInBuffer === 0) {\r\n return;\r\n }\r\n this.DWObject.CurrentImageIndexInBuffer =\r\n this.DWObject.CurrentImageIndexInBuffer - 1;\r\n this.updatePageInfo();\r\n }\r\n btnNextImage_onclick() {\r\n if (!this.checkIfImagesInBuffer()) {\r\n return;\r\n } else if (\r\n this.DWObject.CurrentImageIndexInBuffer ===\r\n this.DWObject.HowManyImagesInBuffer - 1\r\n ) {\r\n return;\r\n }\r\n this.DWObject.CurrentImageIndexInBuffer =\r\n this.DWObject.CurrentImageIndexInBuffer + 1;\r\n this.updatePageInfo();\r\n }\r\n\r\n btnLastImage_onclick() {\r\n if (!this.checkIfImagesInBuffer()) {\r\n return;\r\n }\r\n this.DWObject.CurrentImageIndexInBuffer =\r\n this.DWObject.HowManyImagesInBuffer - 1;\r\n this.updatePageInfo();\r\n }\r\n\r\n btnRemoveCurrentImage_onclick() {\r\n if (!this.checkIfImagesInBuffer()) {\r\n return;\r\n }\r\n this.DWObject.RemoveAllSelectedImages();\r\n if (this.DWObject.HowManyImagesInBuffer === 0) {\r\n (document.getElementById(\r\n 'DW_TotalImage'\r\n ) as HTMLInputElement).value = this.DWObject.HowManyImagesInBuffer;\r\n (document.getElementById('DW_CurrentImage') as HTMLInputElement).value =\r\n '';\r\n return;\r\n } else {\r\n this.updatePageInfo();\r\n }\r\n }\r\n\r\n btnRemoveAllImages_onclick() {\r\n if (!this.checkIfImagesInBuffer()) {\r\n return;\r\n }\r\n this.DWObject.RemoveAllImages();\r\n (document.getElementById('DW_TotalImage') as HTMLInputElement).value = '0';\r\n (document.getElementById('DW_CurrentImage') as HTMLInputElement).value = '';\r\n }\r\n setlPreviewMode() {\r\n const varNum = parseInt(\r\n (\r\n (document.getElementById('DW_PreviewMode') as HTMLSelectElement)\r\n .selectedIndex + 1\r\n ).toString(),\r\n 10\r\n );\r\n const btnCrop: any = document.getElementById('btnCrop');\r\n if (btnCrop) {\r\n let tmpstr = btnCrop.src;\r\n if (varNum > 1) {\r\n tmpstr = tmpstr.replace('Crop.', 'Crop_gray.');\r\n btnCrop.src = tmpstr;\r\n btnCrop.onclick = function () { };\r\n } else {\r\n tmpstr = tmpstr.replace('Crop_gray.', 'Crop.');\r\n btnCrop.src = tmpstr;\r\n btnCrop.onclick = () => {\r\n this.btnCrop_onclick();\r\n };\r\n }\r\n }\r\n\r\n this.DWObject.SetViewMode(varNum, varNum);\r\n if (Dynamsoft.Lib.env.bMac || Dynamsoft.Lib.env.bLinux) {\r\n return;\r\n } else if (\r\n (document.getElementById('DW_PreviewMode') as HTMLSelectElement)\r\n .selectedIndex !== 0\r\n ) {\r\n this.DWObject.MouseShape = true;\r\n } else {\r\n this.DWObject.MouseShape = false;\r\n }\r\n }\r\n\r\n // --------------------------------------------------------------------------------------\r\n // *********************************radio response***************************************\r\n // --------------------------------------------------------------------------------------\r\n rdTIFF_onclick() {\r\n const _chkMultiPageTIFF: any = document.getElementById('MultiPageTIFF');\r\n _chkMultiPageTIFF.disabled = false;\r\n _chkMultiPageTIFF.checked = false;\r\n\r\n const _chkMultiPagePDF: any = document.getElementById('MultiPagePDF');\r\n _chkMultiPagePDF.checked = false;\r\n _chkMultiPagePDF.disabled = true;\r\n }\r\n\r\n rdPDF_onclick() {\r\n const _chkMultiPageTIFF: any = document.getElementById('MultiPageTIFF');\r\n _chkMultiPageTIFF.checked = false;\r\n _chkMultiPageTIFF.disabled = true;\r\n\r\n const _chkMultiPagePDF: any = document.getElementById('MultiPagePDF');\r\n _chkMultiPagePDF.disabled = false;\r\n _chkMultiPagePDF.checked = true;\r\n }\r\n\r\n rd_onclick() {\r\n const _chkMultiPageTIFF: any = document.getElementById('MultiPageTIFF');\r\n _chkMultiPageTIFF.checked = false;\r\n _chkMultiPageTIFF.disabled = true;\r\n\r\n const _chkMultiPagePDF: any = document.getElementById('MultiPagePDF');\r\n _chkMultiPagePDF.checked = false;\r\n _chkMultiPagePDF.disabled = true;\r\n }\r\n\r\n // --------------------------------------------------------------------------------------\r\n // ************************** Dynamic Web TWAIN Events***********************************\r\n // --------------------------------------------------------------------------------------\r\n\r\n Dynamsoft_OnPostTransfer = () => {\r\n this.updatePageInfo();\r\n }\r\n\r\n Dynamsoft_OnPostLoadfunction = (path, name, type) => {\r\n this.updatePageInfo();\r\n }\r\n\r\n Dynamsoft_OnPostAllTransfers = () => {\r\n this.DWObject.CloseSource();\r\n this.updatePageInfo();\r\n this.checkErrorString();\r\n }\r\n\r\n Dynamsoft_OnMouseClick = index => {\r\n this.updatePageInfo();\r\n }\r\n\r\n Dynamsoft_OnMouseRightClick = index => {\r\n // To add\r\n }\r\n\r\n Dynamsoft_OnImageAreaSelected = (index, left, top, right, bottom) => {\r\n this._iLeft = left;\r\n this._iTop = top;\r\n this._iRight = right;\r\n this._iBottom = bottom;\r\n }\r\n\r\n Dynamsoft_OnImageAreaDeselected = index => {\r\n this._iLeft = 0;\r\n this._iTop = 0;\r\n this._iRight = 0;\r\n this._iBottom = 0;\r\n }\r\n\r\n Dynamsoft_OnMouseDoubleClick() {\r\n return;\r\n }\r\n\r\n Dynamsoft_OnTopImageInTheViewChanged = index => {\r\n this._iLeft = 0;\r\n this._iTop = 0;\r\n this._iRight = 0;\r\n this._iBottom = 0;\r\n this.DWObject.CurrentImageIndexInBuffer = index;\r\n this.updatePageInfo();\r\n }\r\n\r\n Dynamsoft_OnGetFilePath = (bSave, count, index, path, name) => { };\r\n}\r\n","<div id=\"DWTcontainer\">\r\n <div id=\"DWTcontainerTop\">\r\n <div id=\"divEdit\">\r\n <ul class=\"operateGrp\">\r\n <li>\r\n <img src=\"./assets/dwt-resources/Images/ShowEditor.png\" [title]=\"'scanner.showImageEditor' | translate\"\r\n [alt]=\"'scanner.showImageEditor' | translate\" id=\"btnEditor\" (click)=\"btnShowImageEditor_onclick()\" />\r\n </li>\r\n <li>\r\n <img src=\"./assets/dwt-resources/Images/RotateLeft.png\" [title]=\"'scanner.rotateLeft' | translate\"\r\n [alt]=\"'scanner.rotateLeft' | translate\" id=\"btnRotateL\" (click)=\"btnRotateLeft_onclick()\" />\r\n </li>\r\n <li>\r\n <img src=\"./assets/dwt-resources/Images/RotateRight.png\" [title]=\"'scanner.rotateRight' | translate\"\r\n [alt]=\"'scanner.rotateRight' | translate\" id=\"btnRotateR\" (click)=\"btnRotateRight_onclick()\" />\r\n </li>\r\n <li>\r\n <img src=\"./assets/dwt-resources/Images/Rotate180.png\" [alt]=\"'scanner.rotate180' | translate\"\r\n [title]=\"'scanner.rotate180' | translate\" (click)=\"btnRotate180_onclick()\" />\r\n </li>\r\n <li>\r\n <img src=\"./assets/dwt-resources/Images/Mirror.png\" [title]=\"'scanner.mirror' | translate\"\r\n [alt]=\"'scanner.mirror' | translate\" id=\"btnMirror\" (click)=\"btnMirror_onclick()\" />\r\n </li>\r\n <li>\r\n <img src=\"./assets/dwt-resources/Images/Flip.png\" [title]=\"'scanner.flip' | translate\"\r\n [alt]=\"'scanner.flip' | translate\" id=\"btnFlip\" (click)=\"btnFlip_onclick()\" />\r\n </li>\r\n <li>\r\n <img src=\"./assets/dwt-resources/Images/RemoveSelectedImages.png\"\r\n [title]=\"'scanner.removeSelected' | translate\" [alt]=\"'scanner.removeSelected' | translate\"\r\n id=\"DW_btnRemoveCurrentImage\" (click)=\"btnRemoveCurrentImage_onclick()\" />\r\n </li>\r\n <li>\r\n <img src=\"./assets/dwt-resources/Images/RemoveAllImages.png\" [title]=\"'scanner.removeAll' | translate\"\r\n [alt]=\"'scanner.removeAll' | translate\" id=\"DW_btnRemoveAllImages\" (click)=\"btnRemoveAllImages_onclick()\" />\r\n </li>\r\n <li>\r\n <img src=\"./assets/dwt-resources/Images/ChangeSize.png\" [title]=\"'scanner.resize' | translate\"\r\n [alt]=\"'scanner.resize' | translate\" id=\"btnChangeImageSize\" (click)=\"btnChangeImageSize_onclick()\" />\r\n </li>\r\n <li>\r\n <img src=\"./assets/dwt-resources/Images/Crop.png\" [title]=\"'scanner.crop' | translate\"\r\n [alt]=\"'scanner.crop' | translate\" id=\"btnCrop\" (click)=\"btnCrop_onclick()\" />\r\n </li>\r\n </ul>\r\n <div id=\"ImgSizeEditor\" style=\"visibility:hidden\">\r\n <ul>\r\n <li>\r\n <label for=\"img_height\">{{ 'scanner.newHeight' | translate }} :\r\n <input type=\"text\" id=\"img_height\" style=\"width:50%;\" size=\"10\" />\r\n {{ 'scanner.pixel' | translate }}</label>\r\n </li>\r\n <li>\r\n <label for=\"img_width\">{{ 'scanner.newWidth' | translate }} :&nbsp;\r\n <input type=\"text\" id=\"img_width\" style=\"width:50%;\" size=\"10\" />\r\n {{ 'scanner.pixel' | translate }}</label>\r\n </li>\r\n <li>\r\n {{ 'scanner.InterpolationMethod' | translate }}:\r\n <select size=\"1\" id=\"InterpolationMethod\">\r\n <option value=\"\"></option>\r\n </select>\r\n </li>\r\n <li style=\"text-align:center;\">\r\n <input type=\"button\" value=\" OK \" id=\"btnChangeImageSizeOK\" (click)=\"btnChangeImageSizeOK_onclick()\" />\r\n <input type=\"button\" value=\" Cancel \" id=\"btnCancelChange\" (click)=\"btnCancelChange_onclick()\" />\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div id=\"dwtcontrolContainer\"></div>\r\n <div id=\"btnGroupBtm\">\r\n <div class=\"ct-lt\">\r\n {{ 'scanner.page' | translate }}:\r\n <input id=\"DW_btnFirstImage\" (click)=\"btnFirstImage_onclick()\" type=\"button\" value=\" |< \" />&nbsp;\r\n <input id=\"DW_btnPreImage\" (click)=\"btnPreImage_onclick()\" type=\"button\" value=\" < \" />&nbsp;&nbsp;\r\n <input type=\"text\" size=\"2\" id=\"DW_CurrentImage\" readonly=\"readonly\" />\r\n /\r\n <input type=\"text\" size=\"2\" id=\"DW_TotalImage\" readonly=\"readonly\" />&nbsp;&nbsp;\r\n <input id=\"DW_btnNextImage\" (click)=\"btnNextImage_onclick()\" type=\"button\" value=\"> \" />&nbsp;\r\n <input id=\"DW_btnLastImage\" (click)=\"btnLastImage_onclick()\" type=\"button\" value=\">| \" />\r\n </div>\r\n <div class=\"ct-rt\">\r\n {{ 'scanner.preview' | translate }}:\r\n <select size=\"1\" id=\"DW_PreviewMode\" (change)=\"setlPreviewMode()\">\r\n <option value=\"0\">1X1</option>\r\n <option value=\"1\">2X2</option>\r\n <option value=\"2\">3X3</option>\r\n <option value=\"3\">4X4</option>\r\n <option value=\"4\">5X5</option>\r\n </select><br />\r\n </div>\r\n </div>\r\n </div>\r\n <div id=\"ScanWrapper\">\r\n <div id=\"divScanner\" class=\"divinput\">\r\n <div id=\"div_ScanImage\" class=\"divTableStyle\">\r\n <ul id=\"ulScaneImageHIDE\">\r\n <li>\r\n <label for=\"source\">\r\n <p>{{ 'scanner.source' | translate }}:</p>\r\n </label>\r\n <select size=\"1\" id=\"source\" style=\"position:relative;\" (change)=\"source_onchange()\">\r\n <option value=\"\"></option>\r\n </select>\r\n </li>\r\n <li style=\"display:none;\" id=\"pNoScanner\">\r\n <a href=\"javascript: void(0)\" class=\"ShowtblLoadImage\" style=\"color:#fe8e14\" id=\"aNoScanner\">(No TWAIN\r\n compatible drivers detected)</a>\r\n </li>\r\n <li id=\"divProductDetail\">\r\n <ul id=\"divTwainType\">\r\n <li>\r\n <label id=\"lblShowUI\" for=\"ShowUI\">\r\n <input type=\"checkbox\" id=\"ShowUI\" />{{\r\n 'scanner.ShowUI' | translate\r\n }}&nbsp;</label>\r\n <label for=\"ADF\">\r\n <input type=\"checkbox\" id=\"ADF\" />{{\r\n 'scanner.AutoFeeder' | translate\r\n }}&nbsp;</label>\r\n <label for=\"Duplex\">\r\n <input type=\"checkbox\" id=\"Duplex\" />{{\r\n 'scanner.Duplex' | translate\r\n }}</label>\r\n </li>\r\n <li>\r\n {{ 'scanner.PixelType' | translate }}:\r\n <label for=\"BW\" style=\"margin-left:5px;\">\r\n <input type=\"radio\" id=\"BW\" name=\"PixelType\" />{{\r\n 'scanner.B&W' | translate\r\n }}</label>\r\n <label for=\"Gray\">\r\n <input type=\"radio\" id=\"Gray\" name=\"PixelType\" />{{\r\n 'scanner.Gray' | translate\r\n }}</label>\r\n <label for=\"RGB\">\r\n <input type=\"radio\" id=\"RGB\" name=\"PixelType\" />{{\r\n 'scanner.Color' | translate\r\n }}</label>\r\n </li>\r\n <li>\r\n <span>{{ 'scanner.Resolution' | translate }}:&nbsp;</span><select size=\"1\" id=\"Resolution\">\r\n <option value=\"100\">100</option>\r\n <option value=\"150\">150</option>\r\n <option value=\"200\">200</option>\r\n <option value=\"300\" selected>300</option>\r\n </select>\r\n </li>\r\n </ul>\r\n </li>\r\n\r\n <button (click)=\"btnLoadImagesOrPDFs_onclick()\" type=\"button\" class=\"btn\">\r\n <i class=\"bi bi-upload icon\"></i>\r\n <span> {{ 'scanner.load' | translate }}</span>\r\n </button>\r\n <button id=\"btnScan\" disabled=\"disabled\" (click)=\"acquireImage()\" type=\"button\" class=\"btn mx-2\">\r\n <i class=\"bi bi-upc-upload icon\"></i>\r\n <span> {{ 'scanner.scan' | translate }}</span>\r\n </button>\r\n </ul>\r\n </div>\r\n\r\n <div class=\"row gap\">\r\n <div class=\"col-12 mt-2\">\r\n <button class=\"btn\" [disabled]=\"DWObject?.HowManyImagesInBuffer === 0\" color=\"primary\"\r\n (click)=\"convertToBlob()\">\r\n {{ 'scanner.upload' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { combineLatest } from 'rxjs';\r\nimport { CustomToastrService } from '../../../custom-toastr/services/custom-toastr.service';\r\nimport { DocumentsService } from '../../services/documents.service';\r\n\r\n/**\r\n * Document upload is a reusable API integrated upload button component,\r\n * that can be configured to suit the needs of required implementation,\r\n * it is possible to upload batch and create a document, or just upload a batch and\r\n * consume it any other way.\r\n *\r\n * @title\r\n * Document Upload\r\n *\r\n * @example\r\n *\r\n * <app-document-upload\r\n * [allowedTypes]=\"'application/pdf'\"\r\n * [createDocument]=\"false\"\r\n * (uploadSuccess)=\"onUploadSuccess($event)\"\r\n * (uploadError)=\"onUploadError($event)\"\r\n * >\r\n * <button> UPLOAD FILE </button>\r\n * </app-document-upload>\r\n */\r\n@Component({\r\n selector: 'app-document-upload',\r\n templateUrl: './document-upload.component.html',\r\n styleUrls: ['./document-upload.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DocumentUploadComponent {\r\n /** Allowed Upload Types */\r\n @Input()\r\n allowedTypes = 'application/pdf,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation';\r\n /** Params to be sent with properties when creating a document */\r\n @Input()\r\n params = {};\r\n /** Path in witch a document will be created */\r\n @Input()\r\n path;\r\n /** Max allowed upload size */\r\n @Input()\r\n maxSize = 1145728;\r\n /** Params to be sent with body when creating a document */\r\n @Input()\r\n docParams = {};\r\n /** Can upload multiple files at once */\r\n @Input()\r\n multiple = false;\r\n /** should create document after batch upload */\r\n @Input()\r\n createDocument = true;\r\n /** Max allowed number of files size */\r\n @Input()\r\n allowedMaxNumberOfFiles = 10;\r\n /** Event emitted on document upload success, it will have document or batch object based on configuration */\r\n @Output()\r\n uploadSuccess = new EventEmitter();\r\n /** Event emitted when an error occurs while attempting upload */\r\n @Output()\r\n uploadError = new EventEmitter();\r\n uploading = false;\r\n @ViewChild('fileInput') fileInput;\r\n\r\n constructor(\r\n private documentsApi: DocumentsService,\r\n private customToastrService: CustomToastrService\r\n ) { }\r\n\r\n triggerUpload(): void {\r\n this.fileInput.nativeElement.click();\r\n }\r\n\r\n isSizeChecked(file) {\r\n if (file.size <= this.maxSize) {\r\n return true;\r\n }\r\n else\r\n this.customToastrService.show(\r\n 'error',\r\n 'error',\r\n 'ERRORS.SIZE',\r\n {},\r\n `${(this.maxSize / (1024 * 1024)).toFixed(2)}MB` \r\n );\r\n this.uploadError.next('errors.size');\r\n return false;\r\n }\r\n\r\n isTypeChecked(file) {\r\n let arr = this.allowedTypes.split(',');\r\n if (arr.indexOf(file.type) > -1)\r\n return true\r\n else {\r\n this.customToastrService.show(\r\n 'error',\r\n 'error',\r\n 'ERRORS.TYPE',\r\n {},\r\n this.allowedTypes.replace(/image|application/gi, '').replace(/[/]/g, '').toUpperCase()\r\n );\r\n this.uploadError.next('errors.type');\r\n return false;\r\n }\r\n }\r\n\r\n isMaxNumberOfFiles(selectedFiles) {\r\n if (selectedFiles.length <= this.allowedMaxNumberOfFiles)\r\n return true\r\n else {\r\n this.customToastrService.show(\r\n 'error',\r\n 'error',\r\n 'ERRORS.MAX_NUMBER_OF_FILES',\r\n {},\r\n this.allowedMaxNumberOfFiles\r\n );\r\n this.uploadError.next('errors.maxNumberOfFiles');\r\n return false;\r\n }\r\n }\r\n\r\n uploadDocument(files): void {\r\n let selectedFiles = Object.keys(files).map(key => files[key]);\r\n selectedFiles = selectedFiles.filter(file => {\r\n if (this.isMaxNumberOfFiles(selectedFiles)) {\r\n if (this.isSizeChecked(file) && this.isTypeChecked(file)) {\r\n return file;\r\n }\r\n }\r\n });\r\n if (selectedFiles.length) {\r\n this.uploading = true;\r\n\r\n this.documentsApi.uploadBatch(selectedFiles)\r\n .subscribe((files) => {\r\n if (this.createDocument) {\r\n combineLatest([\r\n ...files.map((file) => this.documentsApi.createDoc(file, this.path, this.params, this.docParams))\r\n ]).subscribe(docs => {\r\n docs.forEach(doc => {\r\n this.uploadSuccess.next(doc);\r\n });\r\n this.uploading = false;\r\n this.fileInput.nativeElement.value = '';\r\n });\r\n } else {\r\n files.forEach(doc => {\r\n this.uploadSuccess.next(doc);\r\n });\r\n this.uploading = false;\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n\r\n\r\n }, (err) => {\r\n this.uploadError.next(err);\r\n this.uploading = false;\r\n this.fileInput.nativeElement.value = '';\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n","<input type=\"file\" class=\"hidden\" #fileInput [accept]=\"allowedTypes\" [multiple]=\"multiple\"\r\n (change)=\"uploadDocument($event.target.files)\">\r\n<div #template [ngClass]=\"{'hidden': template.childNodes.length == 0}\" (click)=\"triggerUpload()\"\r\n class=\"upload-container\">\r\n <ng-content></ng-content>\r\n</div>\r\n<div *ngIf=\"template.childNodes.length == 0\" class=\"default-upload\" (click)=\"triggerUpload()\">\r\n <div class=\"upload-section\" style=\"color:#465573;\">\r\n <mat-icon class=\"upload-icon\">upload</mat-icon>\r\n <h3 class=\"upload-title\">\r\n {{'documents.uploadDocuments'| translate }}</h3>\r\n <p class=\"upload-desc\">\r\n {{'documents.maxSize'| translate }} {{maxSize | FileSize}}</p>\r\n </div>\r\n <div>\r\n <mat-icon class=\"m-2\" style=\"color:#465573;\">file_copy</mat-icon>\r\n </div>\r\n</div>\r\n<mat-progress-bar mode=\"indeterminate\" *ngIf=\"uploading\"></mat-progress-bar>\r\n","import { Component, EventEmitter, Input } from '@angular/core';\r\nimport { delay, take } from 'rxjs/operators';\r\nimport { CustomToastrService } from '../../../custom-toastr/services/custom-toastr.service';\r\nimport { DocumentsConstants } from '../../constants/documents';\r\n\r\n/** @ignore */\r\n@Component({\r\n selector: 'app-documents',\r\n templateUrl: './documents.component.html',\r\n styleUrls: ['./documents.component.scss'],\r\n})\r\nexport class DocumentsComponent {\r\n @Input()\r\n ancestorId;\r\n @Input()\r\n quickFilters;\r\n @Input()\r\n params = {};\r\n @Input()\r\n provider;\r\n @Input()\r\n path;\r\n @Input()\r\n canUploadRoles = null;\r\n @Input()\r\n multiple = false;\r\n @Input()\r\n maxSize = 3145728;\r\n items = [];\r\n isFetching = false;\r\n uploading = false;\r\n notifier = new EventEmitter();\r\n documentConstants = DocumentsConstants;\r\n constructor(private toastr: CustomToastrService) {}\r\n\r\n onError(error): void {\r\n this.toastr.show('error', 'error', error ? error : 'genericError');\r\n }\r\n onSuccess(files): void {\r\n this.toastr.show('success', 'success', 'documents.addSuccess');\r\n this.notifier.next();\r\n }\r\n onDelete(event): void {\r\n this.toastr.show('success', 'success', 'documents.deleteSuccess');\r\n }\r\n}\r\n","<app-card>\r\n <h3 class=\"title text-lg font-bold\">\r\n {{ \"documents.title\" | translate }}\r\n </h3>\r\n\r\n\r\n <div class=\"body\">\r\n <app-document-upload [multiple]=\"multiple\" *appHasRole=\"canUploadRoles\" [docParams]=\"{type:documentConstants.documentTypes.attachment}\"\r\n [path]=\"this.path\" [params]=\"this.params\" (uploadSuccess)=\"onSuccess($event)\" (uploadError)=\"onError($event)\">\r\n </app-document-upload>\r\n <app-documents-list [quickFilters]=\"quickFilters\" [notifier]=\"notifier\" [ancestorId]=\"ancestorId\"\r\n [provider]=\"provider\" (deleteSuccess)=\"onDelete($event)\">\r\n </app-documents-list>\r\n\r\n </div>\r\n</app-card>\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { take, takeUntil } from 'rxjs/operators';\r\nimport { NuxeoService } from '../../../../Core/services/nuxeo/nuxeo.service';\r\nimport { ConfirmCallerDialogComponent } from '../../../confirm-caller/confirm-caller.dialog';\r\nimport { CustomToastrService } from '../../../custom-toastr/services/custom-toastr.service';\r\nimport { DocumentsConstants } from '../../constants/documents';\r\nimport { DocumentsService } from '../../services/documents.service';\r\n\r\n/**\r\n * A component that will list attachments batch with edit form for each item\r\n * @title\r\n * Batch attachments List\r\n *\r\n * @example\r\n *\r\n * <cts-attachments-list\r\n * [items]=\"files\"\r\n * [disablePagination]=\"true\"\r\n * [batchList]=\"true\"\r\n * [canPreview]=\"false\"\r\n * [item]=\"file\"\r\n * (documentsCount)=\"getAttachmentsCount($event)\"\r\n * (deleteSuccess)=\"onDeleteNewAttachment($event)\"\r\n * >\r\n * </cts-attachments-list>\r\n */\r\n@Component({\r\n selector: 'cts-attachments-list',\r\n templateUrl: './attachments-list.component.html',\r\n styleUrls: ['./attachments-list.component.scss'],\r\n})\r\nexport class AttachmentsListComponent implements OnInit, OnChanges, OnDestroy {\r\n /** @deprecated */\r\n @Input()\r\n ancestorId;\r\n /** @deprecated */\r\n @Input()\r\n provider;\r\n /** Batch list */\r\n @Input()\r\n items = [];\r\n @Input()\r\n batchList = false;\r\n @Input()\r\n dontDelete = false;\r\n @Input()\r\n canDelete = true;\r\n @Input()\r\n item;\r\n @Output()\r\n deleteSuccess = new EventEmitter();\r\n @Output()\r\n documentsCount = new EventEmitter<number>();\r\n\r\n onDestroy$: Subject<boolean> = new Subject<boolean>();\r\n @Output()\r\n documentSelect: EventEmitter<any> = new EventEmitter<any>();\r\n public attachmentForm = new FormGroup({\r\n attachmentCard: new FormArray([]),\r\n });\r\n\r\n constructor(private nuxeoApi: NuxeoService) {}\r\n\r\n ngOnInit(): void {\r\n this.attachmentForm.valueChanges.subscribe((res) => {\r\n console.log('form value', this.attachmentForm.value.attachmentCard);\r\n });\r\n }\r\n ngOnChanges(): void {\r\n // (this.attachmentForm.controls['attachmentCard'] as FormArray).clear();\r\n // this.fillForm(this.items);\r\n if (this.item) {\r\n this.transformItem(this.item);\r\n }\r\n }\r\n\r\n isCreator(item) {\r\n return !this.batchList\r\n ? item.properties.creator.id === this.nuxeoApi.nuxeoClient.user.id\r\n : true;\r\n }\r\n deleteDocument(event, item) {\r\n event.stopPropagation();\r\n this.deleteSuccess.next(item);\r\n }\r\n\r\n fillForm(items: any[]) {\r\n items.forEach((item) => {\r\n let fileFormGroup = new FormGroup({\r\n item: new FormControl(item),\r\n attachmentId: new FormControl('abc123'),\r\n barcode: new FormControl('123454332'),\r\n classification: new FormControl(null),\r\n category: new FormControl(null),\r\n type: new FormControl('PDF'),\r\n title: new FormControl(item.title.split('.').slice(0, -1).join('.')),\r\n remarks: new FormControl(null),\r\n // isObject: new FormControl(false),\r\n extension: new FormControl(item.title.split('.').pop()),\r\n content: new FormControl({\r\n 'upload-batch': item.blob['upload-batch'],\r\n 'upload-fileId': item.blob['upload-fileId'],\r\n 'mime-type': 'application/pdf',\r\n }),\r\n });\r\n this.addAttachmentCard(fileFormGroup);\r\n });\r\n }\r\n\r\n transformItem(item) {\r\n let fileFormGroup = new FormGroup({\r\n item: new FormControl(item),\r\n attachmentId: new FormControl('abc123'),\r\n barcode: new FormControl('123454332'),\r\n classification: new FormControl(null),\r\n category: new FormControl(null),\r\n type: new FormControl('PDF'),\r\n title: new FormControl(item.title.split('.').slice(0, -1).join('.')),\r\n remarks: new FormControl(null),\r\n // isObject: new FormControl(false),\r\n extension: new FormControl(item.title.split('.').pop()),\r\n content: new FormControl({\r\n 'upload-batch': item.blob['upload-batch'],\r\n 'upload-fileId': item.blob['upload-fileId'],\r\n 'mime-type': 'application/pdf',\r\n }),\r\n });\r\n this.addAttachmentCard(fileFormGroup);\r\n }\r\n addAttachmentCard(formGroup: FormGroup) {\r\n const arrayControl = <FormArray>(\r\n this.attachmentForm.controls['attachmentCard']\r\n );\r\n arrayControl.push(formGroup);\r\n }\r\n delInput(index: number): void {\r\n const arrayControl = <FormArray>(\r\n this.attachmentForm.controls['attachmentCard']\r\n );\r\n arrayControl.removeAt(index);\r\n }\r\n ngOnDestroy(): void {\r\n this.onDestroy$.next(true);\r\n this.onDestroy$.complete();\r\n }\r\n\r\n getControls() {\r\n return (this.attachmentForm.get('attachmentCard') as FormArray).controls;\r\n }\r\n}\r\n","<ng-container>\r\n <div class=\"doc-list\">\r\n <ng-container>\r\n <form [formGroup]=\"attachmentForm\">\r\n <div formArrayName=\"attachmentCard\">\r\n <div\r\n class=\"doc-item\"\r\n *ngFor=\"\r\n let attachmentCardControl of attachmentForm.get('attachmentCard')[\r\n 'controls'\r\n ];\r\n let i = index\r\n \"\r\n >\r\n <!-- (click)=\"preview(item.uid)\" -->\r\n <div class=\"file-icon\">\r\n <mat-icon>file_copy</mat-icon>\r\n </div>\r\n <div\r\n [formGroupName]=\"i\"\r\n class=\"attachmentForm-container row no-gutters\"\r\n >\r\n <div class=\"formControl-wrapper col-12 col-xl-6\">\r\n <app-dynamic-form-textitem\r\n placeholder=\"{{ 'Title' | translate }}\"\r\n class=\"textitem\"\r\n formControlName=\"title\"\r\n \r\n >\r\n </app-dynamic-form-textitem>\r\n <app-dynamic-form-textitem\r\n placeholder=\"{{\r\n 'CREATE.ATTACHMENTS.REMARKS_PLACE_HOLDER' | translate\r\n }}\"\r\n class=\"textitem\"\r\n formControlName=\"remarks\"\r\n >\r\n </app-dynamic-form-textitem>\r\n </div>\r\n <div class=\"formControl-wrapper col-12 col-xl-6\">\r\n <app-dynamic-form-vocabulary-item\r\n class=\"voc-form-control\"\r\n [bindLabel]=\"'label'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{ 'VOCABULARY.TYPE' | translate }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"false\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n [vocabularyType]=\"'VOC_CorrespondenceAttachmentType'\"\r\n formControlName=\"category\"\r\n >\r\n </app-dynamic-form-vocabulary-item>\r\n <app-dynamic-form-vocabulary-item\r\n class=\"voc-form-control\"\r\n [bindLabel]=\"'label'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{ 'VOCABULARY.CLASSIFICATION' | translate }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"false\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n [vocabularyType]=\"'VOC_CorrespondenceAttachClassification'\"\r\n formControlName=\"classification\"\r\n >\r\n </app-dynamic-form-vocabulary-item>\r\n </div>\r\n <!-- <div class=\"formControl-toggleitem col-2 col-xl-2\">\r\n <cts-dynamic-form-slide-toggleitem\r\n label=\"{{ 'CREATE.ATTACHMENTS.ISOBJECT' | translate }}\"\r\n formControlName=\"isObject\"\r\n ></cts-dynamic-form-slide-toggleitem>\r\n </div> -->\r\n </div>\r\n <div class=\"btn-wrapper\">\r\n <button\r\n (click)=\"delInput(i)\"\r\n class=\"btn btn-outline-danger btn-no-border\"\r\n >\r\n <!-- deleteDocument($event, attachmentCardControl.value.item) -->\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </ng-container>\r\n </div>\r\n</ng-container>\r\n<ng-template #spinner>\r\n <mat-spinner class=\"centered-spinner\"></mat-spinner>\r\n</ng-template>\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { DocumentsService } from '../../services/documents.service';\r\n\r\n/**\r\n * A component that will list specific correspondence attachments with edit form for each item\r\n * @title\r\n * Attachments List\r\n *\r\n * @example\r\n *\r\n * <cts-attachments-page-provider\r\n * [provider]=\"'providerName'\"\r\n * [ancestorId]=\"ancestorId\"\r\n * (deleteSuccess)=\"onDeleteAttachment($event)\"\r\n * >\r\n * </cts-attachments-page-provider>\r\n */\r\n@Component({\r\n selector: 'cts-attachments-page-provider',\r\n templateUrl: './attachments-page-provider.component.html',\r\n styleUrls: ['./attachments-page-provider.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AttachmentsPageProviderComponent implements OnInit {\r\n /** Provider name */\r\n @Input()\r\n provider;\r\n /** Ancestor ID */\r\n @Input()\r\n ancestorId;\r\n /** Emitted on attachment delete */\r\n @Output()\r\n deleteSuccess = new EventEmitter();\r\n /** Emits total documents count when they're loaded */\r\n @Output()\r\n documentsCount = new EventEmitter<number>();\r\n isFetching: boolean;\r\n attachments = [];\r\n totalRecords: number;\r\n constructor(private documentsApi: DocumentsService) { }\r\n\r\n ngOnInit(): void {\r\n this.getAttachments();\r\n }\r\n\r\n getAttachments() {\r\n if (this.provider) {\r\n this.isFetching = true;\r\n this.documentsApi\r\n .getDocuments(this.ancestorId, this.provider, {})\r\n .subscribe((data) => {\r\n this.totalRecords = data.totalSize;\r\n this.attachments = data.entries;\r\n this.documentsCount.emit(this.totalRecords);\r\n this.isFetching = false;\r\n });\r\n }\r\n }\r\n deleteDocument(event, attachment) {\r\n event.stopPropagation();\r\n this.attachments = this.attachments.filter((item) => {\r\n return attachment.uid != item.uid;\r\n });\r\n this.deleteSuccess.emit(attachment.uid);\r\n }\r\n}\r\n","<div *ngIf=\"attachments.length !== 0\" class=\"doc-list\">\r\n <div *ngFor=\"let Attachment of attachments\" class=\"doc-item\">\r\n <div class=\"file-icon\">\r\n <mat-icon>file_copy</mat-icon>\r\n </div>\r\n <div class=\"attachment-container row no-gutters\">\r\n <div class=\"attachment-wrapper col-10 col-xl-6\">\r\n <div>\r\n {{ Attachment.title }}\r\n </div>\r\n <div>\r\n {{ Attachment.properties.remarks }}\r\n </div>\r\n </div>\r\n <div class=\"attachment-wrapper col-10 col-xl-4\">\r\n <div>\r\n {{ Attachment.properties.classification ? Attachment.properties.classification.properties.label : '--'}}\r\n </div>\r\n <div>\r\n {{ Attachment.properties.category ?Attachment.properties.category.properties.label :'--' }}\r\n </div>\r\n </div>\r\n <!-- <div class=\"attachment-wrapper isObject col-10 col-xl-2\">\r\n {{ Attachment.properties.isObject }}\r\n </div> -->\r\n </div>\r\n <div>\r\n <button\r\n (click)=\"deleteDocument($event, Attachment)\"\r\n class=\"btn btn-outline-danger btn-no-border\"\r\n >\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { RouterModule } from '@angular/router';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { DirectiveModule } from '../../directive/directive.module';\r\nimport { PipesModule } from '../../pipes/pipes.module';\r\nimport { CardModule } from '../card/card.module';\r\nimport { ConfirmCallerModule } from '../confirm-caller/confirm-caller.module';\r\nimport { PaginationModule } from '../pagination/pagination.module';\r\nimport { DocumentsListComponent } from './components/document-list/documents-list.component';\r\nimport { ScanComponent } from './components/document-scan/document-scan.component';\r\nimport { DocumentUploadComponent } from './components/document-upload/document-upload.component';\r\nimport { DocumentsComponent } from './components/documents/documents.component';\r\nimport { AttachmentsListComponent } from './components/attachments-list/attachments-list.component';\r\nimport { DynamicFormModule } from '../dynamic-form/dynamic-form.module';\r\nimport { AttachmentsPageProviderComponent } from './components/attachments-page-provider/attachments-page-provider.component';\r\nimport { LibrarySharedModule } from '../../shared/libraryShared.module';\r\n\r\n/**\r\n * @title\r\n * Documents Module\r\n */\r\n@NgModule({\r\n declarations: [\r\n DocumentsComponent,\r\n DocumentsListComponent,\r\n DocumentUploadComponent,\r\n ScanComponent,\r\n AttachmentsListComponent,\r\n AttachmentsPageProviderComponent\r\n ],\r\n imports: [\r\n MatButtonModule,\r\n CommonModule,\r\n TranslateModule,\r\n PaginationModule,\r\n ConfirmCallerModule,\r\n RouterModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatIconModule,\r\n MatDialogModule,\r\n DirectiveModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n PipesModule,\r\n CardModule,\r\n DynamicFormModule,\r\n LibrarySharedModule\r\n ],\r\n exports: [\r\n DocumentsComponent,\r\n DocumentsListComponent,\r\n DocumentUploadComponent,\r\n ScanComponent,\r\n AttachmentsListComponent,\r\n AttachmentsPageProviderComponent\r\n ],\r\n providers: [],\r\n})\r\nexport class DocumentsModule { }\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cts-data-viewer',\r\n templateUrl: './data-viewer.component.html',\r\n styleUrls: ['./data-viewer.component.scss']\r\n})\r\nexport class DataViewerComponent implements OnInit {\r\n @Input() label = '';\r\n @Input() value = '';\r\n @Input() vertical = false;\r\n @Input() customClass;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"my-dynamic-viewer {{customClass}}\" \r\n[ngClass]=\"{'vertical' : vertical === true}\">\r\n <div class=\"my-label\">{{label | translate}}</div>\r\n <div class=\"my-value\"> \r\n <span class=\"direction-img\">\r\n <i class=\"bi bi-box-arrow-down incoming\"></i>\r\n <i class=\"bi bi-box-arrow-up outgoing\"></i>\r\n </span>\r\n <span class=\"text\">\r\n {{value ? value : '-'}}\r\n </span>\r\n \r\n </div> \r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cts-boolean-viewer',\r\n templateUrl: './boolean-viewer.component.html',\r\n styleUrls: ['./boolean-viewer.component.scss']\r\n})\r\nexport class BooleanViewerComponent implements OnInit {\r\n @Input() label = '';\r\n @Input() value = false;\r\n @Input() trueValue = 'Yes';\r\n @Input() falseValue = 'No';\r\n @Input() vertical = false;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"my-dynamic-viewer\" [ngClass]=\"{'vertical' : vertical === true}\">\r\n <div class=\"my-label\">{{label | translate}}</div>\r\n <div class=\"my-value\"> {{value ? (trueValue | translate) : (falseValue | translate)}}</div>\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n/**\r\n * A component to display a dropdown value\r\n * @title\r\n * Vocabulary Viewer\r\n */\r\n@Component({\r\n selector: 'cts-dropdown-viewer',\r\n templateUrl: './dropdown-viewer.component.html',\r\n styleUrls: ['./dropdown-viewer.component.scss']\r\n})\r\nexport class DropdownViewerComponent implements OnInit {\r\n /** Label of field */\r\n @Input() label = '';\r\n /** Value of field */\r\n @Input() value = '';\r\n /** Vocabulary Key */\r\n @Input() dropdownId = '';\r\n /** is vertical */\r\n @Input() vertical = false;\r\n /** hide the label */\r\n @Input() withOutLabel = false;\r\n vocabularyIds = {\r\n \"category\":\"VOC_CorrespondenceCategory\",\r\n \"class\":\"VOC_CorrespondenceClass\",\r\n \"classfication\":\"VOC_CorrespondenceClassfication\",\r\n \"deliveryType\":\"VOC_CorrespondenceDeliveryType\",\r\n \"direction\":\"VOC_CorrespondenceDirection\",\r\n \"priority\":\"VOC_CorrespondencePriority\",\r\n \"secrecyLevel\":\"VOC_CorrespondenceSecrecyLevel\",\r\n \"correspondenceType\":\"VOC_CorrespondenceType\",\r\n \"departmentType\":\"VOC_DepartmentType\",\r\n \"incCorrespondenceStatus\":\"VOC_IncCorrespondenceStatus\",\r\n \"rejectionCode\":\"VOC_NCARejectionCode\",\r\n \"outCorrespondenceStatus\":\"VOC_OutCorrespondenceStatus\"\r\n }\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"my-dynamic-viewer\" [ngClass]=\"{'vertical' : vertical === true , 'with-out-label': withOutLabel}\">\r\n <div class=\"my-label\" *ngIf=\"!withOutLabel\">{{label | translate}}</div>\r\n <div class=\"my-value\"> {{value ? (\"vocabulary.\" + vocabularyIds[dropdownId] + \".\" + value| translate ): '-'}}</div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport * as moment_ from 'moment-hijri';\r\nimport { AppConfigService } from '../../../configuration/app-config.service';\r\n\r\n@Component({\r\n selector: 'cts-date-viewer',\r\n templateUrl: './date-viewer.component.html',\r\n styleUrls: ['./date-viewer.component.scss']\r\n})\r\nexport class DateViewerComponent implements OnInit {\r\n @Input() label = '';\r\n @Input() value = '';\r\n @Input() vertical = false;\r\n @Input() formate = \"EEEE, MMMM d, y\";\r\n @Input() hijri = false;\r\n @Input() withOutLabel = false;\r\n hijriDate;\r\n constructor(private appConfig : AppConfigService) { \r\n this.formate = this.appConfig.myConfiguration['dateFormate'];\r\n }\r\n\r\n ngOnInit(): void {\r\n // if(this.hijri){\r\n // let m = moment_('1442-11-7T12:00:00.000+02:00', 'iYYYY/iM/iD'); // Parse a Hijri date.\r\n // this.hijriDate = m.format(\"iYYYY iMMMM iD\"); // 1410/8/28 is 1990/3/25\r\n // // this.hijriDate = moment(this.value).format('iYYYY-iM-iD');\r\n // }\r\n }\r\n\r\n}\r\n","<div class=\"my-dynamic-viewer\" [ngClass]=\"{'vertical' : vertical === true , 'with-out-label': withOutLabel}\">\r\n <div class=\"my-label\" *ngIf=\"!withOutLabel\">{{label | translate}}</div>\r\n <div class=\"my-value\" *ngIf=\"!hijri\"> {{value | localizedDate : formate}}</div>\r\n <div class=\"my-value\" *ngIf=\"hijri\">{{value | hijriDate}}</div>\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n/**\r\n * A component to display a list of users\r\n * @title\r\n * List Viewer\r\n */\r\n@Component({\r\n selector: 'cts-list-viewer',\r\n templateUrl: './list-viewer.component.html',\r\n styleUrls: ['./list-viewer.component.scss']\r\n})\r\nexport class ListViewerComponent implements OnInit {\r\n /** label to be shown */\r\n @Input() label = '';\r\n /** list of CC user */\r\n @Input() data = [];\r\n /** Further info required */\r\n @Input() vertical = false;\r\n show = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"container\">\r\n <div>{{label | translate}}</div>\r\n <span class=\"title\" (click)=\"show = !show\" *ngIf=\"data.length > 2\">\r\n {{\r\n (show ? \"CREATE.SHOW_LESS\" : \"CREATE.SHOW_MORE\")\r\n | translate\r\n }}\r\n </span>\r\n</div>\r\n<div class=\"two-columns\" [class.show]=\"show\" *ngIf=\"data.length \">\r\n <ng-container *ngFor=\"let elem of data\">\r\n <div class=\"wrapper\">\r\n <span class=\"avatar-wrapper\">\r\n <cts-avatar [user]=\"elem\"></cts-avatar>\r\n </span>\r\n <span class=\"fullName\">\r\n {{ elem?.properties?.firstName }} {{ elem?.properties?.lastName }}\r\n </span>\r\n </div>\r\n </ng-container>\r\n</div>\r\n<div class=\"no-data-section\" *ngIf=\"data.length === 0\">\r\n {{\"CREATE.NO_USERS\" | translate}}\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { switchMap, tap } from 'rxjs/operators';\r\nimport { TranslationService } from '../../../Core/services/translation/translation.service';\r\nimport { Cacheable, LocalStorageStrategy } from 'ts-cacheable';\r\nimport { DocumentsService } from '../../documents/services/documents.service';\r\nimport {\r\n DepartmentApiService,\r\n departmentCacheBuster$,\r\n minute,\r\n} from '../../../components/dynamic-form/components/dynamic-form-department/services/department-api.service';\r\n\r\n@Component({\r\n selector: 'cts-department-viewer',\r\n templateUrl: './department-viewer.component.html',\r\n styleUrls: ['./department-viewer.component.scss'],\r\n})\r\nexport class DepartmentViewerComponent implements OnInit {\r\n departmentName: string;\r\n isArabic: boolean;\r\n loading: boolean;\r\n /** Label of field */\r\n @Input() label = '';\r\n /** Value of field */\r\n @Input() value = '';\r\n /** Vocabulary Key */\r\n @Input() dropdownId = '';\r\n /** is vertical */\r\n @Input() vertical = false;\r\n /** hide the label */\r\n @Input() withOutLabel = false;\r\n /**only text*/\r\n @Input() noStyle = false;\r\n constructor(\r\n private translation: TranslationService,\r\n private DepartmentApiService: DepartmentApiService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.translation.isArabic\r\n .pipe(\r\n tap((res) => (this.isArabic = res)),\r\n switchMap((res) => {\r\n return this.getDepartment(this.value);\r\n })\r\n )\r\n .subscribe(\r\n (res) => {\r\n console.log('results', res);\r\n if (res.entries.length > 0) {\r\n this.departmentName = this.isArabic\r\n ? res.entries[0].properties['dept:arabicName']\r\n : res.entries[0].properties['dept:englishName'];\r\n } else {\r\n this.departmentName = this.value;\r\n }\r\n },\r\n (err) => {\r\n this.departmentName = this.value;\r\n }\r\n );\r\n }\r\n\r\n getDepartment(id): Observable<any> {\r\n // return this.documentsService.getDocument(id);\r\n return this.DepartmentApiService.getDepartmentDetails(id);\r\n }\r\n}\r\n","<ng-container *ngIf=\"!noStyle\">\r\n <div\r\n class=\"my-dynamic-viewer\"\r\n [ngClass]=\"{ vertical: vertical === true, 'with-out-label': withOutLabel }\"\r\n >\r\n <div class=\"my-label\" *ngIf=\"!withOutLabel\">{{ label | translate }}</div>\r\n <div *ngIf=\"departmentName\" class=\"my-value\">\r\n {{ departmentName }}\r\n </div>\r\n </div>\r\n</ng-container>\r\n<ng-container *ngIf=\"noStyle\">\r\n {{ departmentName }}\r\n</ng-container>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AvatarModule } from '../avatar/avatar.module';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { DataViewerComponent } from './data-viewer/data-viewer.component';\r\nimport { BooleanViewerComponent } from './boolean-viewer/boolean-viewer.component';\r\nimport { DropdownViewerComponent } from './dropdown-viewer/dropdown-viewer.component';\r\nimport { DateViewerComponent } from './date-viewer/date-viewer.component';\r\nimport { PipesModule } from '../../pipes/pipes.module';\r\nimport { ListViewerComponent } from './list-viewer/list-viewer.component';\r\nimport { DepartmentViewerComponent } from './department-viewer/department-viewer.component';\r\n/**\r\n * @title\r\n * Dynamic view module\r\n */\r\n@NgModule({\r\n declarations: [\r\n DataViewerComponent,\r\n BooleanViewerComponent,\r\n DropdownViewerComponent,\r\n DateViewerComponent,\r\n ListViewerComponent,\r\n DepartmentViewerComponent,\r\n ],\r\n imports: [CommonModule, TranslateModule, PipesModule, AvatarModule],\r\n exports: [\r\n DataViewerComponent,\r\n BooleanViewerComponent,\r\n DateViewerComponent,\r\n DropdownViewerComponent,\r\n ListViewerComponent,\r\n DepartmentViewerComponent\r\n ],\r\n})\r\nexport class DynamicViewModule {}\r\n","export class DocumentTemplatesConstants {\r\n public static pageProvider = {\r\n documentTemplates: {\r\n name: 'PP_CTDocumentTemplates',\r\n headers: {\r\n 'X-NXproperties': '*'\r\n },\r\n constants: {\r\n systemPathParamName: 'system_path',\r\n systemPathParamDefaultValue: '/default-domain/workspaces/CTS/CTS Templates',\r\n }\r\n },\r\n };\r\n public static operations = {\r\n parse: 'AC_UA_ParseTemplateDocument',\r\n render: 'AC_UA_RenderTemplateDocument',\r\n mergeAndParse: 'AC_UA_MergeAndParseTemplateDocument',\r\n mergeAndRender: 'AC_UA_MergeAndRenderTemplateDocument',\r\n reflectTemplateToCorrespondence: 'AC_UA_ReflectTemplateToCorrespondence'\r\n };\r\n public static quickFilters = {\r\n };\r\n public static vocabulary = {editorSidebarVoc: 'VOC_DocumentEditorCorrespondenceFields'};\r\n public static fields = {\r\n creator: 'dc:creator',\r\n content: 'file:content',\r\n title: 'dc:title',\r\n created: 'dc:created',\r\n major_version: 'uid:major_version',\r\n minor_version: 'uid:minor_version',\r\n };\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { combineLatest, from, Observable, ReplaySubject, Subject } from 'rxjs';\r\nimport { catchError, map, switchMap } from 'rxjs/operators';\r\nimport { AppConfigService } from '../../../configuration/app-config.service';\r\nimport { AdapterService } from '../../../Core/adapters/adapter.service';\r\nimport { NuxeoService } from '../../../Core/services/nuxeo/nuxeo.service';\r\nimport {DocumentTemplatesConstants} from '../constants/document-templates';\r\nimport {DocumentsConstants} from '../constants/documents';\r\nimport {HttpClient} from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DocumentTemplatesService {\r\n value = new ReplaySubject(1);\r\n reFetch = new Subject<boolean>();\r\n // templatesRootPath = '';\r\n constructor(\r\n private nuxeoService: NuxeoService,\r\n private documentsAdapter: AdapterService,\r\n private httpClient: HttpClient,\r\n @Inject('environment') private environment\r\n ) {\r\n }\r\n\r\n informValue(value): void {\r\n const arr = [];\r\n arr.push(value);\r\n this.value.next(value);\r\n }\r\n getDocumentTemplate(uid): Observable<any> {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .repository()\r\n .headers({\r\n ...DocumentTemplatesConstants.pageProvider.documentTemplates.headers,\r\n 'X-NXfetch-document': 'lock,dc:creator',\r\n 'X-NXenrichers-document': 'tags',\r\n })\r\n .fetch(uid)\r\n ).pipe(\r\n map((data: any) => {\r\n return this.documentsAdapter.adaptIn(data, DocumentTemplatesConstants.fields);\r\n }),\r\n catchError((err) => {\r\n throw err;\r\n })\r\n );\r\n }\r\n getDocumentTemplatesWithAggregation(params = {}): Observable<any> {\r\n if (!params) {\r\n params = {};\r\n }\r\n if (!params[DocumentTemplatesConstants.pageProvider.documentTemplates.constants.systemPathParamName]) {\r\n params[DocumentTemplatesConstants.pageProvider.documentTemplates.constants.systemPathParamName]\r\n = DocumentTemplatesConstants.pageProvider.documentTemplates.constants.systemPathParamDefaultValue;\r\n }\r\n return from(\r\n this.nuxeoService.nuxeoClient.repository().query(\r\n {\r\n pageProvider:\r\n DocumentTemplatesConstants.pageProvider.documentTemplates.name,\r\n ...params,\r\n },\r\n {\r\n headers:\r\n DocumentTemplatesConstants.pageProvider.documentTemplates.headers,\r\n }\r\n )\r\n ).pipe(\r\n map((data: any) => {\r\n data.entries.map((item) =>\r\n this.documentsAdapter.adaptIn(item, DocumentTemplatesConstants.fields)\r\n );\r\n return data;\r\n }),\r\n catchError((err) => {\r\n throw err;\r\n })\r\n );\r\n }\r\n parseTemplate(templateId): Observable<any> {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation(DocumentTemplatesConstants.operations.parse, {\r\n url: `${this.environment.nuxeo}${this.environment.customAutomation}`,\r\n })\r\n .input(templateId)\r\n .params({})\r\n .execute()\r\n ).pipe(\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n renderTemplate(templateId): Observable<any> {\r\n return this.httpClient.post(`${this.environment.nuxeo}${this.environment.customAutomation}/${DocumentTemplatesConstants.operations.render}`,\r\n {input: templateId}, {responseType: 'blob'}\r\n ).pipe(\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n mergeAndParseTemplate(templateId, mergeDocumentId): Observable<any> {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation(DocumentTemplatesConstants.operations.mergeAndParse, {\r\n url: `${this.environment.nuxeo}${this.environment.customAutomation}`,\r\n })\r\n .input(templateId)\r\n .params({})\r\n .context({\r\n mergeDocumentId\r\n })\r\n .execute()\r\n ).pipe(\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n mergeAndRenderTemplate(templateId, mergeDocumentId): Observable<any> {\r\n return this.httpClient.post(`${this.environment.nuxeo}${this.environment.customAutomation}/${DocumentTemplatesConstants.operations.mergeAndRender}`,\r\n {input: templateId, context: {mergeDocumentId}}, {responseType: 'blob'}\r\n ).pipe(\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n reflectTemplateToCorrespondence(correspondenceId): Observable<any> {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation(DocumentTemplatesConstants.operations.reflectTemplateToCorrespondence, {\r\n url: `${this.environment.nuxeo}${this.environment.customAutomation}`,\r\n })\r\n .input(correspondenceId)\r\n .params({})\r\n .context({\r\n })\r\n .execute()\r\n ).pipe(\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as momentjs from 'moment';\r\nimport * as moment_ from 'moment-hijri';\r\nconst moment = momentjs;\r\nconst momentHijri = moment_;\r\n\r\n@Injectable(\r\n {\r\n providedIn: 'root'\r\n }\r\n)\r\nexport class DateHelperService {\r\n constructor() {\r\n\r\n }\r\n gregorianToHijri(dateString, format = 'iYYYY-iMM-iD') {\r\n return momentHijri(dateString, '').locale('en').format(format)\r\n }\r\n hijriToGregorian(dateString, format = 'YYYY-MM-DDThh:mm:ss.000Z') {\r\n return momentHijri(dateString, 'iYYYY-iM-iDThh:mm:ss.000Z').locale('en').format(format)\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { ColumnMode, SelectionType } from '@swimlane/ngx-datatable/public-api';\r\nimport { NuxeoService } from '../../../Core/services/nuxeo/nuxeo.service';\r\n/**\r\n * this component is a multi-purpose dynamically generated dumb data table that can be configured to show any list of data,\r\n * for more information on configuring the table\r\n * and the json structure for the inputs please check [Configuration File]{@link ../additional-documentation/config-file.html}\r\n * ![Screenshot-1](../screenshots/dynamicTable.png)\r\n *\r\n * ### related Links:\r\n * - [Pagination Component]{@link PaginationComponent}\r\n * - [Dynamic Table]{@link DynamicTableComponent}\r\n * - [Configuration File]{@link ../additional-documentation/config-file.html}\r\n *\r\n * @title\r\n * Data Table\r\n *\r\n * @example\r\n *\r\n * <cts-table\r\n * [rows]=\"rows\"\r\n * [columns]=\"columns\"\r\n * [responsiveColumns]=\"responsiveColumns\"\r\n * [rowCursor]=\"rowCursor\"\r\n * [fullWidth]=\"fullWidth\"\r\n * [entityType]=\"entityType\"\r\n * [prefix]=\"prefix\"\r\n * [totalRecords]=\"totalRecords\"\r\n * [tableMode]=\"tableMode\"\r\n * [tableActions]=\"tableActions\"\r\n * (onRowSelected)=\"rowDetails($event)\"\r\n * (actionOnRow)=\"performAction($event)\"\r\n * (onSorting)=\"onSort($event)\"\r\n * ></cts-table>\r\n *\r\n */\r\n@Component({\r\n selector: 'cts-table',\r\n templateUrl: './table.component.html',\r\n styleUrls: ['./table.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class TableComponent implements OnInit {\r\n /** event to emit when selecting single row */\r\n @Output() onRowSelected = new EventEmitter();\r\n /** event to emit when selecting single row Icon */\r\n @Output() onIconSelected = new EventEmitter();\r\n /** event to emit when perform action on row (delte, edit, ... ) */\r\n @Output() actionOnRow = new EventEmitter();\r\n /** event t emit when sorting table */\r\n @Output() onSorting = new EventEmitter();\r\n /** aray of rows passed from out side the component */\r\n @Input() rows;\r\n /** array of columns paased from out side the component */\r\n @Input() columns;\r\n /** array of columns paased from out side the component for smaller screens */\r\n @Input() responsiveColumns;\r\n /** to define the page in which table is being used */\r\n @Input() entityType: string;\r\n /** static path for translation passed from out side according to each page translation path */\r\n @Input() prefix = '';\r\n /** @deprecated */\r\n @Input() pageCount;\r\n /** Total Recordscount */\r\n @Input() totalRecords;\r\n /** @deprecated */\r\n @Input() rowCursor = false;\r\n /** Max full width in PX | auto */\r\n @Input() fullWidth = 'auto';\r\n /** Vocabulary Translation prefix */\r\n @Input() vocItemTranslationPrefix;\r\n /** Table Mode: list | card */\r\n @Input() tableMode = 'list';\r\n /** action to be in card mode */\r\n @Input() tableActions;\r\n @Input() defultSort = null;\r\n tableWidth = 'auto';\r\n tableColumns = [];\r\n currentRow;\r\n selected = [];\r\n pageNumber = 1;\r\n\r\n constructor(public nuxeoService : NuxeoService) { }\r\n\r\n ngOnInit(): void {\r\n this.onResize(window.innerWidth);\r\n }\r\n\r\n // function to be executed when clicking on single row\r\n rowDetails(event) {\r\n if (event.type !== 'mouseenter') {\r\n if (event.type === 'click' && event.column.prop !== '') {\r\n this.currentRow = event.row;\r\n this.onRowSelected.emit(this.currentRow);\r\n }\r\n }\r\n }\r\n iconSelected(event: MouseEvent, row) {\r\n event.stopPropagation();\r\n this.onIconSelected.emit(row);\r\n }\r\n\r\n //function to handle all operations on single row (delete , edit , ...)\r\n performAction(singleRow, actionType) {\r\n this.actionOnRow.emit({\r\n type: actionType,\r\n row: singleRow,\r\n });\r\n }\r\n\r\n // handle checkbox if table has ones\r\n onSelect(event) {\r\n // console.log('on select row click');\r\n }\r\n\r\n // handle sorting functionality of the table\r\n onSort(event) {\r\n let sort = {\r\n sortBy: event.column.headerClass,\r\n sortOrder: event.newValue,\r\n };\r\n this.onSorting.emit(sort);\r\n }\r\n\r\n assignTableColumns(event) {\r\n this.onResize(event.target.innerWidth);\r\n }\r\n\r\n onResize(width) {\r\n if (width > 1400) {\r\n this.tableWidth = 'auto';\r\n } else {\r\n this.tableWidth = this.fullWidth;\r\n }\r\n if (width < 768) {\r\n this.tableColumns = [];\r\n this.tableColumns = this.responsiveColumns;\r\n } else {\r\n this.tableColumns = [];\r\n this.tableColumns = this.columns;\r\n }\r\n }\r\n\r\n cardSelected(card) {\r\n this.onRowSelected.emit(card);\r\n }\r\n}\r\n","<div [style]=\"'width:' + tableWidth\" *ngIf=\"tableMode === 'list'\">\r\n <ngx-datatable\r\n class=\"large-table\"\r\n [rows]=\"rows\"\r\n [columnMode]=\"'force'\"\r\n [externalSorting]=\"true\"\r\n (activate)=\"rowDetails($event)\"\r\n (select)=\"onSelect($event)\"\r\n (sort)=\"onSort($event)\"\r\n (window:resize)=\"assignTableColumns($event)\"\r\n [rowHeight]=\"'auto'\"\r\n [selected]=\"selected\"\r\n [selectionType]=\"'single'\"\r\n [sorts]=\"[{ prop: defultSort?.name, dir: defultSort?.dir }]\"\r\n >\r\n <!-- | translate -->\r\n <ng-container *ngFor=\"let column of tableColumns; let i = index\">\r\n <ngx-datatable-column\r\n *ngIf=\"column.display\"\r\n [sortable]=\"column.sortable\"\r\n [name]=\"prefix + column.name | translate\"\r\n [prop]=\"column.prop\"\r\n [resizeable]=\"false\"\r\n [draggable]=\"false\"\r\n [maxWidth]=\"column.size\"\r\n [headerClass]=\"column.headerClass ? column.headerClass : ''\"\r\n >\r\n <ng-template\r\n let-row=\"row\"\r\n let-value=\"value\"\r\n let-index=\"index\"\r\n ngx-datatable-cell-template\r\n >\r\n <ng-container *ngIf=\"column.type === 'text'\">\r\n <div class=\"cell-text-wrapper\">\r\n {{ value ? value : \"--\" }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'vocabulary'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-dropdown-viewer\r\n [withOutLabel]=\"true\"\r\n [value]=\"value\"\r\n [dropdownId]=\"column.vocabularyId\"\r\n ></cts-dropdown-viewer>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'VocCell'\">\r\n <div class=\"cell-text-wrapper\">\r\n {{ (value ? column.vocabularyId + '.' + value : \"--\") | translate }}\r\n </div>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"column.type === 'VocItem'\">\r\n <div class=\"cell-text-wrapper\">\r\n {{ vocItemTranslationPrefix + value | translate }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.type === 'department'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-department-viewer\r\n [noStyle]=\"true\"\r\n [value]=\"value\"\r\n >\r\n </cts-department-viewer>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'status'\">\r\n <div class=\"status-wrapper\">\r\n <span class=\"value {{ value }}\">{{\r\n \"STATS.\" + value | translate\r\n }}</span>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'role'\">\r\n <div class=\"cell-text-wrapper\">\r\n {{ \"role.\" + (value ? value : \"--\") | translate }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'direction'\">\r\n <div\r\n (click)=\"iconSelected($event, row)\"\r\n class=\"status-wrapper {{ value }} {{ row.state }}\"\r\n >\r\n <span matTooltip=\"{{ 'STATS.' + row.state | translate }}\">\r\n <i\r\n class=\"bi bi-box-arrow-down\"\r\n *ngIf=\"row.type === 'IncomingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"bi bi-box-arrow-up outgoing\"\r\n *ngIf=\"row.type === 'OutgoingCorrespondence'\"\r\n ></i>\r\n </span>\r\n <!-- <span class=\"value {{ value }}\">{{ \"STATS.\" + value | translate }}</span> -->\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'actions' && rows.length !== 0\">\r\n <div class=\"actions-wrapper\">\r\n <!-- <span class=\"bi bi-trash delete-icon\" (click)=\"performAction(row , 'delete')\"></span> -->\r\n <i\r\n class=\"bi bi-pencil-square edit-icon\"\r\n matTooltip=\"{{ 'UPDATE' | translate }}\"\r\n (click)=\"performAction(row, 'edit')\"\r\n *ngIf=\"entityType === 'voc-table'\"\r\n ></i>\r\n <i\r\n class=\"bi bi-trash\"\r\n matTooltip=\"{{ 'delete' | translate }}\"\r\n (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"\r\n entityType === 'voc-table' || entityType === 'department' ||\r\n entityType === 'signers'\r\n \"\r\n ></i>\r\n\r\n <i\r\n class=\"bi bi-plus-square\"\r\n matTooltip=\"{{ 'USER_MANGMENT.addToDepartment' | translate }}\"\r\n (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"entityType === 'users' && row.isInitial\"\r\n ></i>\r\n \r\n <span *ngFor=\"let action of column.actions\">\r\n <i\r\n *permission=\"{ name: action.permission, entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n class=\"{{ action.icon }}\"\r\n matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"\r\n ></i>\r\n </span>\r\n\r\n <!-- <i\r\n *permission=\"{ name: 'registerCorrespondance', entity: row }\"\r\n class=\"bi bi-box-arrow-in-right\"\r\n matTooltip=\"{{ 'LISTING.REGISTER' | translate }}\"\r\n (click)=\"performAction(row, 'register')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'sendCorrespondance', entity: row }\"\r\n class=\"bi bi-envelope\"\r\n matTooltip=\"{{ 'LISTING.SEND' | translate }}\"\r\n (click)=\"performAction(row, 'send')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'closeCorrespondance', entity: row }\"\r\n class=\"bi bi-x-circle\"\r\n matTooltip=\"{{ 'LISTING.CLOSE' | translate }}\"\r\n (click)=\"performAction(row, 'close')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'archiveCorrespondance', entity: row }\"\r\n class=\"bi bi-folder-symlink\"\r\n matTooltip=\"{{ 'LISTING.ARCHIVE' | translate }}\"\r\n (click)=\"performAction(row, 'archive')\"\r\n ></i> -->\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'date'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-date-viewer\r\n [withOutLabel]=\"true\"\r\n [value]=\"value\"\r\n ></cts-date-viewer>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ng-container>\r\n </ngx-datatable>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === 'card'\">\r\n <div class=\"cards-container\">\r\n <div class=\"single-card\" *ngFor=\"let row of rows\">\r\n <div class=\"memo-title\">\r\n <span>\r\n {{ row.properties.referenceNumber }}\r\n </span>\r\n <span class=\"action-wrap\">\r\n <span class=\"action\" *ngFor=\"let action of tableActions\">\r\n <i\r\n *permission=\"{ name: action.permission, entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n class=\"{{ action.icon }}\"\r\n matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"\r\n ></i>\r\n </span>\r\n <button\r\n *permission=\"{ name: 'deleteMemo', entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n (click)=\"performAction(row, 'deleteMemo')\"\r\n >\r\n <i\r\n class=\"bi bi-trash\"\r\n matTooltip=\"{{ 'LISTING.ONLY_DELETE' | translate }}\"\r\n ></i>\r\n </button>\r\n <span\r\n class=\"publish-state\"\r\n *permission=\"{ name: 'memoPublished', entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n >\r\n {{ \"MEMOS.PUBLISHED\" | translate }}\r\n </span>\r\n </span>\r\n </div>\r\n <div\r\n class=\"memo-body\"\r\n *ngFor=\"let property of columns\"\r\n (click)=\"cardSelected(row)\"\r\n >\r\n <div class=\"key\">{{ prefix + property.key | translate }}</div>\r\n <div class=\"value\">\r\n <div class=\"text\" *ngIf=\"property.type === 'text'\">\r\n {{ row.properties[property.value] }}\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'date'\">\r\n {{ row.properties[property.value] | localizedDate: \"MMMM d, y\" }}\r\n <!-- <cts-date-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\" ></cts-date-viewer> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\r\nimport { PipesModule } from '../../pipes/pipes.module';\r\nimport { TableComponent } from './table/table.component';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { DirectiveModule } from '../../directive/directive.module';\r\nimport { DynamicViewModule } from '../dynamic-view/dynamic-view.module';\r\n\r\n/**\r\n * @title\r\n * Table Module\r\n */\r\n@NgModule({\r\n declarations: [TableComponent],\r\n imports: [\r\n CommonModule,\r\n NgxDatatableModule,\r\n PipesModule,\r\n TranslateModule,\r\n MatTooltipModule,\r\n DirectiveModule,\r\n DynamicViewModule,\r\n MatTooltipModule\r\n ],\r\n exports:[\r\n TableComponent,\r\n NgxDatatableModule\r\n ]\r\n})\r\nexport class TableModule { }\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\n\r\n/**\r\n * Dyanamic filter is a component that leverages Nuxeo Elastic search aggregation buckets data to dynamically\r\n * generate data filtering checkbox groups & emits checkbox selection for consumption\r\n * @title\r\n * Dynamic Filter\r\n *\r\n * @example\r\n *\r\n * <cts-dynamic-filter\r\n * [entityType]=\"entityType\"\r\n * [filters]=\"aggregationBuckets\"\r\n * [id]=\"aggregationId\"\r\n * [selections]=\"aggregationSelection\"\r\n * [title]=\"aggregationField\"\r\n * [prefix]=\"'search'\"\r\n * (onFilterSelected)=\"FilterSelected($event)\">\r\n * </cts-dynamic-filter>\r\n */\r\n@Component({\r\n selector: 'cts-dynamic-filter',\r\n templateUrl: './dynamic-filter.component.html',\r\n styleUrls: ['./dynamic-filter.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DynamicFilterComponent implements OnInit {\r\n /** emits array of filters */\r\n @Output() onFilterSelected = new EventEmitter();\r\n public _selections;\r\n\r\n /** title of the filters group */\r\n @Input()\r\n title = '';\r\n @Input()\r\n /** filters group */\r\n filters;\r\n /** new filters coming from the backend based on the selection */\r\n @Input()\r\n set selections(val) {\r\n this._selections = val;\r\n }\r\n /** Aggregation ID */\r\n @Input()\r\n id;\r\n @Input()\r\n entityType;\r\n /** static path for translation passed from out side according to each page translation path */\r\n @Input()\r\n prefix;\r\n /** special type for department */\r\n @Input()\r\n department: boolean = false;\r\n more = false;\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n onFilterSelect(committeeName, e) {\r\n if (e) {\r\n this._selections.push(committeeName);\r\n this.onFilterSelected.emit({\r\n filter: {\r\n [this.id]: JSON.stringify([...this._selections]),\r\n },\r\n type: this.entityType,\r\n });\r\n } else {\r\n this._selections = this._selections.filter((e) => {\r\n return e != committeeName;\r\n });\r\n this.onFilterSelected.emit({\r\n filter: {\r\n [this.id]: JSON.stringify([...this._selections]),\r\n },\r\n type: this.entityType,\r\n });\r\n }\r\n }\r\n\r\n EntityType(fetchedKey) {\r\n if (!this.department) {\r\n const typeObj = typeof fetchedKey === 'object' && fetchedKey !== null;\r\n if (typeObj) {\r\n return fetchedKey['entity-type'];\r\n } else {\r\n return false;\r\n }\r\n }else {\r\n return 'department'\r\n }\r\n }\r\n}\r\n","<div class=\"aggregation-container\">\r\n <div class=\"search-title\">\r\n {{ prefix + \".\" + title | translate }}\r\n </div>\r\n <ng-container *ngIf=\"filters\">\r\n <ng-container *ngFor=\"let group of filters; index as i\">\r\n <div *ngIf=\"i < 5 || more\" class=\"search-checkbox\">\r\n <!-- <input\r\n [checked]=\"_selections.includes(group.key)\"\r\n type=\"checkbox\"\r\n (change)=\"onFilterSelect(group.key, $event.target.checked)\"\r\n /> -->\r\n <!-- <div class=\"mx-8\">\r\n <span [ngSwitch]=\"EntityType(group.fetchedKey)\">\r\n <span *ngSwitchCase=\"'directoryEntry'\">\r\n {{\r\n \"vocabulary.\" + group.fetchedKey.directoryName + \".\" + group.key\r\n | translate\r\n }}\r\n </span>\r\n <span *ngSwitchCase=\"'user'\">\r\n {{\r\n group.fetchedKey.properties.firstName +\r\n \" \" +\r\n group.fetchedKey.properties.lastName\r\n }}\r\n </span>\r\n <span *ngSwitchDefault>\r\n {{ prefix + \".\" + \"buckets.\" + group.key | translate }}\r\n </span>\r\n </span>\r\n <bdi>({{ group.docCount }})</bdi>\r\n </div> -->\r\n <mat-checkbox\r\n [checked]=\"_selections.includes(group.key)\"\r\n (change)=\"onFilterSelect(group.key, $event.checked)\"\r\n >\r\n <span [ngSwitch]=\"EntityType(group.fetchedKey)\">\r\n <span *ngSwitchCase=\"'directoryEntry'\">\r\n {{\r\n \"vocabulary.\" + group.fetchedKey.directoryName + \".\" + group.key\r\n | translate\r\n }}\r\n </span>\r\n <span *ngSwitchCase=\"'user'\">\r\n {{\r\n group.fetchedKey.properties.firstName +\r\n \" \" +\r\n group.fetchedKey.properties.lastName\r\n }}\r\n </span>\r\n <span *ngSwitchCase=\"'department'\">\r\n <cts-department-viewer\r\n [noStyle]=\"true\"\r\n [value]=\"group.key\"\r\n >\r\n </cts-department-viewer>\r\n <!-- {{group.key}} -->\r\n </span>\r\n <span *ngSwitchDefault>\r\n {{ prefix + \".\" + \"buckets.\" + group.key | translate }}\r\n </span>\r\n </span>\r\n <bdi>({{ group.docCount }})</bdi></mat-checkbox\r\n >\r\n </div>\r\n </ng-container>\r\n <div *ngIf=\"filters.length > 5\" class=\"more\">\r\n <button class=\"btn-more\" (click)=\"more = !more\">\r\n {{\r\n more\r\n ? (prefix + \".\" + \"viewless\" | translate)\r\n : (prefix + \".\" + \"viewmore\" | translate)\r\n }}\r\n </button>\r\n </div>\r\n </ng-container>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DynamicFilterComponent } from './dynamic-filter/dynamic-filter.component';\r\nimport { PipesModule } from '../../pipes/pipes.module';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { DynamicViewModule } from '../dynamic-view/dynamic-view.module';\r\n\r\n/**\r\n * @title\r\n * Dynamic Filter Module\r\n */\r\n@NgModule({\r\n declarations: [DynamicFilterComponent],\r\n imports: [CommonModule, PipesModule, TranslateModule, MatCheckboxModule , DynamicViewModule],\r\n exports: [DynamicFilterComponent],\r\n})\r\nexport class DynamicFilterModule {}\r\n","import { Injectable , EventEmitter} from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DynamicTableService {\r\n refreshData = new EventEmitter();\r\n constructor() { }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { from, Subscription } from 'rxjs';\r\nimport { catchError, filter, map } from 'rxjs/operators';\r\nimport { CallApiService } from '../../../Core/services/callApi/call-api.service';\r\nimport { AdapterService } from '../../../Core/adapters/adapter.service';\r\nimport { DynamicTableService } from '../services/dynamic-table.service';\r\n/**\r\n * this component is an additional layer that uses [Table Component]{@link TableComponent} internally,\r\n * you can use this component to configure a page provider listing out of the box easily,\r\n * and it will handle all of the basic features such as getting data from API, Listing, Pagination, sorting and filtering\r\n * ![Screenshot-1](../screenshots/dynamicTable.png)\r\n * @title\r\n * Dynamic Table\r\n * @example\r\n *\r\n * <cts-dynamic-table\r\n * [columns]=\"columns\"\r\n * [responsiveColumns]=\"responsiveColumns\"\r\n * [fullWidth]=\"fullWidth\"\r\n * [pageSize]=\"PageSize\"\r\n * [pageProvider]=\"pageProvider\"\r\n * [quickFilter]=\"filter\"\r\n * [sortingBy]=\"sortingBy\"\r\n * [entityType]=\"'all'\"\r\n * [fields]=\"fields\"\r\n * [prefix]=\"prefix\"\r\n * [rowCursor]=\"true\"\r\n * [queryParam]=\"queryParam\"\r\n * [headers]=\"headers\"\r\n * (onRowSelected)=\"openViewer($event)\"\r\n * (actionOnRow)=\"performAction($event)\">\r\n * </cts-dynamic-table>\r\n */\r\n@Component({\r\n selector: 'cts-dynamic-table',\r\n templateUrl: './dynamic-table.component.html',\r\n styleUrls: ['./dynamic-table.component.scss'],\r\n})\r\n\r\nexport class DynamicTableComponent implements OnInit, OnDestroy {\r\n /** event to emit when selecting single row */\r\n @Output() onRowSelected = new EventEmitter();\r\n /** event to emit when perform action on row (delte, edit, ... ) */\r\n @Output() actionOnRow = new EventEmitter();\r\n /** event to emit to the higher level when getting data from api is finished */\r\n @Output() onGettingData = new EventEmitter();\r\n /** Array of columns */\r\n @Input() columns;\r\n /** Array of columns on smaller screens */\r\n @Input() responsiveColumns?;\r\n /** Defines the page in which table is being used */\r\n @Input() entityType: string;\r\n /** Translations prefix */\r\n @Input() prefix = '';\r\n /** Headers to be sent with API Request */\r\n @Input() headers;\r\n /** Fields keymap to be mapped in the adapter */\r\n @Input() fields;\r\n /** Page Provider name that will be used to retrieve data */\r\n @Input() pageProvider;\r\n /** Controls number of items per page in table */\r\n @Input() pageSize;\r\n /** Sorting column */\r\n @Input() sortingBy?= {};\r\n @Input() queryParam?= {};\r\n @Input() quickFilter?;\r\n /** Controls if it report page */\r\n @Input() report;\r\n /** to make cursor when hover on row or not */\r\n @Input() rowCursor?;\r\n @Input() fullWidth?= 'auto';\r\n /** 'list' for noraml table 'card' for cards mode like in memos */\r\n @Input() tableMode = 'list';\r\n /** action to be used in case of card mode */\r\n @Input() tableActions;\r\n @Input() defultSort = [{ prop: 'properties.createdAt' , dir: 'desc' }];\r\n @Input() range;\r\n filterParams = {};\r\n pageNum = 1;\r\n rows = [];\r\n totalRecords = 0;\r\n myDataSubscription: Subscription;\r\n loading;\r\n sorting = false;\r\n constructor(\r\n private adapter: AdapterService,\r\n private callApi: CallApiService,\r\n private dynamicTableService: DynamicTableService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.myDataSubscription = this.dynamicTableService.refreshData.subscribe(filterData => {\r\n if (filterData) {\r\n this.filterParams = { ...filterData };\r\n // reset page number when start new filtering\r\n this.pageNum = 1;\r\n }\r\n this.getData();\r\n });\r\n this.getData();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.myDataSubscription ? this.myDataSubscription.unsubscribe() : '';\r\n }\r\n\r\n ngOnChanges(simpleChange: SimpleChanges) {\r\n const isFirstChange = Object.values(simpleChange).some((c) =>\r\n c.isFirstChange()\r\n );\r\n if (isFirstChange) {\r\n return;\r\n }\r\n if (\r\n (simpleChange.queryParam &&\r\n simpleChange.queryParam.previousValue !==\r\n simpleChange.queryParam.currentValue) ||\r\n (simpleChange.quickFilter &&\r\n simpleChange.quickFilter.previousValue !==\r\n simpleChange.quickFilter.currentValue)\r\n ) {\r\n this.pageNum = 1; // reset page number befor recalling api with filters\r\n this.getData();\r\n }\r\n }\r\n\r\n getData() {\r\n this.loading = true;\r\n let params = {\r\n ...this.filterParams, // used to get filter data and set it in our params\r\n ...this.queryParam, // used to get params from our config\r\n ...this.sortingBy,\r\n ...this.quickFilter,\r\n currentPageIndex: this.pageNum - 1,\r\n pageSize: this.pageSize,\r\n offset: 0,\r\n dublincore_created_agg: this.range\r\n };\r\n\r\n // don't refresh all table in case of sorting only\r\n if (!this.sorting) { // used to not refreshing all table in case of sorting since table lose sorting state when refresh all table\r\n this.rows = []; // used to refresh table to feel changes in actions when perform action and need to refresh actions\r\n }\r\n this.sorting = false; // reset sorting status to false and for next sorting func sorting set it to true again\r\n this.callApi\r\n .query(\r\n {\r\n pageProvider: this.pageProvider,\r\n ...params,\r\n },\r\n {\r\n headers: this.headers,\r\n }\r\n )\r\n .pipe(\r\n map((data: any) => {\r\n data.entries.map((item) => this.adapter.adaptIn(item, this.fields));\r\n return data;\r\n }),\r\n catchError((err) => {\r\n throw err;\r\n })\r\n )\r\n .subscribe((res) => {\r\n this.loading = false;\r\n res.entries.forEach((element) => {\r\n console.log(\"element\", element);\r\n if (element.properties && element.properties?.creator && element.properties.creator?.properties) {\r\n element.properties.creator =\r\n element.properties.creator?.properties?.firstName +\r\n ' ' +\r\n element.properties.creator?.properties?.lastName;\r\n }\r\n if (element.properties && element.properties?.assignee) {\r\n element.properties.assignee = element.properties?.assignee.fullName\r\n }\r\n });\r\n this.totalRecords = res.resultsCount;\r\n this.rows = res.entries;\r\n console.log(\"data\", res.entries)\r\n this.onGettingData.emit(res);\r\n });\r\n }\r\n\r\n // function to be executed when clicking on single row\r\n rowDetails(event) {\r\n this.onRowSelected.emit(event);\r\n }\r\n\r\n //function to handle all operations on single row (delete , edit , ...)\r\n performAction(action) {\r\n this.actionOnRow.emit(action);\r\n }\r\n\r\n // handle sorting functionality of the table\r\n onSort(sortObject) {\r\n this.sortingBy = sortObject;\r\n this.sorting = true;\r\n this.getData();\r\n }\r\n\r\n public PaginationChange(event) {\r\n this.pageNum = event;\r\n this.getData();\r\n }\r\n}\r\n","<div class=\"wrapping\">\r\n <div class=\"table-reposition\">\r\n <cts-table\r\n *ngIf=\"rows.length\"\r\n [rows]=\"rows\"\r\n [columns]=\"columns\"\r\n [responsiveColumns]=\"responsiveColumns\"\r\n [rowCursor]=\"rowCursor\"\r\n [fullWidth]=\"fullWidth\"\r\n [entityType]=\"entityType\"\r\n [prefix]=\"prefix\"\r\n [totalRecords]=\"totalRecords\"\r\n [tableMode]=\"tableMode\"\r\n [tableActions]=\"tableActions\"\r\n [defultSort]=\"defultSort\"\r\n (onRowSelected)=\"rowDetails($event)\"\r\n (actionOnRow)=\"performAction($event)\"\r\n (onSorting)=\"onSort($event)\"\r\n ></cts-table>\r\n </div>\r\n <ng-container *ngIf=\"loading\">\r\n <cts-spinner></cts-spinner>\r\n </ng-container>\r\n <div\r\n class=\"d-flex justify-content-center align-items-center my-3\"\r\n *ngIf=\"rows.length\"\r\n >\r\n <cts-pagination\r\n [page]=\"pageNum\"\r\n (change)=\"PaginationChange($event)\"\r\n [size]=\"pageSize\"\r\n [count]=\"totalRecords\"\r\n ></cts-pagination>\r\n </div>\r\n\r\n <div class=\"empty-state\" *ngIf=\"rows.length === 0\">\r\n <div class=\"text\">{{ 'noData' | translate}}</div>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DynamicTableComponent } from './dynamic-table/dynamic-table.component';\r\nimport { TableModule } from '../table/table.module';\r\nimport { PaginationModule } from '../../components/pagination/pagination.module';\r\nimport { LibrarySharedModule } from '../../shared/libraryShared.module';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n\r\n/**\r\n * @title\r\n * Dynamic Table API\r\n */\r\n@NgModule({\r\n declarations: [DynamicTableComponent],\r\n imports: [\r\n CommonModule,\r\n TableModule,\r\n PaginationModule,\r\n LibrarySharedModule,\r\n TranslateModule\r\n ],\r\n exports:[\r\n DynamicTableComponent\r\n ]\r\n})\r\nexport class DynamicTableModule { }\r\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DocumentsConstants } from '../../../components/documents/constants/documents';\r\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\r\nimport * as _ from 'lodash';\r\n\r\n/**\r\n * Dynamic search component uses [Dynamic Table]{@link DynamicTableComponent} & [Dynamic Filter]{@link DynamicFilterComponent} internally,\r\n * and utilizes its inputs to perform advanced search and filtering on any nuxeo Provider\r\n * @title\r\n * Dynamic Search\r\n *\r\n * @example\r\n * <cts-dynamic-search\r\n * [pageProvider]=\"'pageProviderName'\"\r\n * [columns]=\"columnsArray\"\r\n * [responsiveColumns]=\"responsiveColumnsArray\"\r\n * [entityType]=\"'documents'\"\r\n * [prefix]=\"prefix\"\r\n * [fields]=\"fields\"\r\n * [headers]=\"headers\"\r\n * [sortingBy]=\"sortingBy\"\r\n * [pageSize]=\"PageSize\"\r\n * >\r\n * </cts-dynamic-search>\r\n */\r\n@Component({\r\n selector: 'cts-dynamic-search',\r\n templateUrl: './dynamic-search.component.html',\r\n styleUrls: ['./dynamic-search.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DynamicSearchComponent implements OnInit {\r\n text: string;\r\n aggregations;\r\n /** Array of columns */\r\n @Input() columns;\r\n /** Array of columns on smaller screens */\r\n @Input() responsiveColumns?;\r\n /** Defines the page in which table is being used */\r\n @Input() entityType: string;\r\n /** Translations prefix */\r\n @Input() prefix = '';\r\n /** Headers to be sent with API Request */\r\n @Input() headers;\r\n /** Fields keymap to be mapped in the adapter */\r\n @Input() fields;\r\n /** Page Provider name that will be used to retrieve data */\r\n @Input() pageProvider;\r\n /** Controls number of items per page in table */\r\n @Input() pageSize;\r\n /** Sorting column */\r\n @Input() sortingBy?= {};\r\n\r\n queryParams = {};\r\n filter;\r\n filters;\r\n searchForm = new FormGroup({\r\n text: new FormControl(null),\r\n });\r\n loading = false;\r\n totalRecords;\r\n openFilter: boolean;\r\n @Input()\r\n sortingArray;\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n public breakpointObserver: BreakpointObserver\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.text = this.route.snapshot.queryParams['search_query'];\r\n this.searchInputPopulate();\r\n this.updateQueryParams({ system_fulltext: this.text });\r\n this.route.queryParams.subscribe((params) => {\r\n if (\r\n (this.text !== params['search_query'] && params['search_query']) ||\r\n (params['search_query']?.length == 0 &&\r\n this.text !== params['search_query'])\r\n ) {\r\n this.text = params['search_query'];\r\n this.searchInputPopulate();\r\n this.updateQueryParams({ system_fulltext: this.text });\r\n }\r\n });\r\n this.breakpoint();\r\n }\r\n\r\n updateQueryParams(newQueryparams: object) {\r\n this.queryParams = {\r\n ...this.queryParams,\r\n ...newQueryparams,\r\n };\r\n }\r\n\r\n searchInputPopulate() {\r\n this.searchForm.patchValue({\r\n text: this.text,\r\n });\r\n }\r\n FilterSelected(val: any) {\r\n this.loading = true;\r\n this.filters = { ...this.filters, ...val.filter }; //store filters\r\n this.updateQueryParams(this.filters);\r\n }\r\n\r\n paginationChange(event) { }\r\n\r\n getTableData(data) {\r\n this.loading = false;\r\n this.aggregations = Object.entries(data.aggregations).map((item) => {\r\n return item[1];\r\n });\r\n this.aggregations = this.aggregations.filter((item) =>\r\n this.sortingArray.includes(item.id)\r\n );\r\n this.aggregations = _.sortBy(this.aggregations, (item) => {\r\n return this.sortingArray.indexOf(item.id);\r\n });\r\n console.log('aggregations', this.aggregations);\r\n this.totalRecords = data.totalSize;\r\n }\r\n submitForm() {\r\n this.router.navigate(['.'], {\r\n relativeTo: this.route,\r\n queryParams: {\r\n search_query: this.searchForm.controls.text.value,\r\n },\r\n });\r\n }\r\n\r\n openViewer(row) {\r\n this.router.navigate([{ outlets: { viewer: ['view', row['uid']] } }], {\r\n queryParams: { location: this.router.url },\r\n });\r\n }\r\n onOpenFilter() {\r\n this.openFilter = !this.openFilter;\r\n }\r\n\r\n breakpoint() {\r\n this.breakpointObserver\r\n .observe(['(min-width: 1200px)'])\r\n .subscribe((result) => {\r\n if (result.matches) {\r\n this.openFilter = false;\r\n }\r\n });\r\n }\r\n}\r\n","<div class=\"search-toolbar d-md-flex d-xl-none\">\r\n <button (click)=\"onOpenFilter()\" class=\"my-button\">\r\n <span> {{ \"FILTER\" | translate }}</span>\r\n <i class=\"bi bi-filter\" *ngIf=\"!openFilter\"></i>\r\n <i class=\"bi bi-x\" *ngIf=\"openFilter\"></i>\r\n </button>\r\n <div *ngIf=\"openFilter\">\r\n <i class=\"bi bi-caret-up-fill arrow-up\"></i>\r\n </div>\r\n</div>\r\n<div class=\"row wrapper\">\r\n <div class=\"popup-filter px-3 d-flex d-xl-none\" *ngIf=\"openFilter\">\r\n <form\r\n [formGroup]=\"searchForm\"\r\n class=\"search-form\"\r\n (ngSubmit)=\"submitForm()\"\r\n >\r\n <input\r\n class=\"search-input\"\r\n type=\"text\"\r\n formControlName=\"text\"\r\n [placeholder]=\"'search.search' | translate\"\r\n />\r\n <div (click)=\"submitForm()\" class=\"search-icon bi bi-search\"></div>\r\n </form>\r\n <ng-container *ngIf=\"aggregations; else progressSpinner\">\r\n <div *ngFor=\"let aggregation of aggregations\">\r\n <ng-container *ngIf=\"aggregation.buckets.length > 0\">\r\n <cts-dynamic-filter\r\n [entityType]=\"entityType\"\r\n [filters]=\"aggregation.buckets\"\r\n [id]=\"aggregation.id\"\r\n [selections]=\"aggregation.selection\"\r\n [title]=\"aggregation.field\"\r\n [prefix]=\"'search'\"\r\n [department]=\"aggregation.field === 'corr:to' ||aggregation.field === 'corr:from'\"\r\n (onFilterSelected)=\"FilterSelected($event)\"\r\n ></cts-dynamic-filter>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-xl-3 search-sideMenu d-none d-xl-block\">\r\n <form\r\n [formGroup]=\"searchForm\"\r\n class=\"search-form\"\r\n (ngSubmit)=\"submitForm()\"\r\n >\r\n <input\r\n class=\"search-input\"\r\n type=\"text\"\r\n formControlName=\"text\"\r\n [placeholder]=\"'search.search' | translate\"\r\n />\r\n <div (click)=\"submitForm()\" class=\"search-icon bi bi-search\"></div>\r\n </form>\r\n <ng-container *ngIf=\"aggregations; else progressSpinner\">\r\n <div *ngFor=\"let aggregation of aggregations\">\r\n <ng-container *ngIf=\"aggregation.buckets.length > 0\">\r\n <cts-dynamic-filter\r\n [entityType]=\"entityType\"\r\n [filters]=\"aggregation.buckets\"\r\n [id]=\"aggregation.id\"\r\n [selections]=\"aggregation.selection\"\r\n [title]=\"aggregation.field\"\r\n [prefix]=\"'search'\"\r\n [department]=\"aggregation.field === 'corr:to' ||aggregation.field === 'corr:from'\"\r\n (onFilterSelected)=\"FilterSelected($event)\"\r\n ></cts-dynamic-filter>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-12 col-xl-9\">\r\n <app-card>\r\n <div class=\"title\">\r\n <h3>\r\n {{ \"search.header\" | translate }}\r\n </h3>\r\n </div>\r\n <div class=\"body\">\r\n <div *ngIf=\"aggregations\" class=\"table-toolbar\">\r\n <div class=\"result-count\">\r\n <span>\r\n {{\r\n \"search.\" + \"resultsNumber\"\r\n | translate: { value: totalRecords ? totalRecords : 0 }\r\n }}\r\n </span>\r\n </div>\r\n <!-- <form\r\n [formGroup]=\"searchForm\"\r\n class=\"search-form\"\r\n (ngSubmit)=\"submitForm()\"\r\n >\r\n <input\r\n class=\"search-input\"\r\n type=\"text\"\r\n formControlName=\"text\"\r\n [placeholder]=\"'search.search' | translate\"\r\n />\r\n <div (click)=\"submitForm()\" class=\"search-icon bi bi-search\"></div>\r\n </form> -->\r\n </div>\r\n <cts-dynamic-table\r\n [pageSize]=\"pageSize\"\r\n [columns]=\"columns\"\r\n [responsiveColumns]=\"responsiveColumns\"\r\n [pageProvider]=\"pageProvider\"\r\n [quickFilter]=\"filter\"\r\n [entityType]=\"entityType\"\r\n [fields]=\"fields\"\r\n [queryParam]=\"queryParams\"\r\n [headers]=\"headers\"\r\n [prefix]=\"prefix\"\r\n [sortingBy]=\"sortingBy\"\r\n (onRowSelected)=\"openViewer($event)\"\r\n (onGettingData)=\"getTableData($event)\"\r\n ></cts-dynamic-table>\r\n </div>\r\n </app-card>\r\n </div>\r\n <ng-template #progressSpinner>\r\n <div class=\"progress-spinner\">\r\n <mat-spinner color=\"warn\" [diameter]=\"25\"></mat-spinner>\r\n </div>\r\n </ng-template>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CardModule } from '../card/card.module';\r\nimport { DynamicFilterModule } from '../dynamic-filter/dynamic-filter.module';\r\nimport { DynamicFormModule } from '../dynamic-form/dynamic-form.module';\r\nimport { DynamicTableModule } from '../dynamic-table/dynamic-table.module';\r\nimport { DynamicSearchComponent } from './dynamic-search/dynamic-search.component';\r\n\r\n/**\r\n * @title\r\n * Dynamic Search Module\r\n */\r\n@NgModule({\r\n declarations: [DynamicSearchComponent],\r\n imports: [\r\n CommonModule,\r\n CardModule,\r\n DynamicTableModule,\r\n DynamicFilterModule,\r\n DynamicFormModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n TranslateModule,\r\n MatProgressSpinnerModule,\r\n ],\r\n exports: [DynamicSearchComponent],\r\n})\r\nexport class DynamicSearchModule {}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'cts-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SelectComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class SelectComponent implements OnInit, OnChanges {\r\n // @Input() addTag = false;\r\n // @Input() groupBy;\r\n // @Input() searchFn = null;\r\n // @Input() trackByFn = null;\r\n // @Input() required;\r\n // @Input() disabled = false;\r\n @Input() label: string;\r\n @Input() bindValue;\r\n @Input() bindLabel;\r\n @Input() data;\r\n @Input() placeholder;\r\n @Input() multiple = false;\r\n @Input() searchable = false;\r\n @Input() closeOnSelect = true;\r\n @Input() hideSelectedItems = false;\r\n @Input() isAsync = false;\r\n @Input() attachSource = false;\r\n @Input() source$: Observable<any>;\r\n @Input() hideLoaded = false;\r\n @Input() loading = false;\r\n @Input() disabled = false;\r\n @Output() onSelectItems = new EventEmitter();\r\n selection = [];\r\n buffer = [];\r\n bufferSize = 50;\r\n numberOfItemsFromEndBeforeFetchingMore = 10;\r\n\r\n propagateChange: any = () => {};\r\n validateFn: any = () => {};\r\n\r\n public onTouched: any = () => {\r\n /*Empty*/\r\n };\r\n\r\n constructor(public translate: TranslateService) {}\r\n\r\n emitSelection(event) {\r\n this.propagateChange(this.selection);\r\n this.onSelectItems.emit(event);\r\n }\r\n\r\n onScrollToEnd() {\r\n this.fetchMore();\r\n }\r\n\r\n private fetchMore() {\r\n this.loading = true;\r\n const len = this.buffer.length;\r\n const more = this.data.slice(len, this.bufferSize + len);\r\n this.buffer = this.data.concat(more);\r\n this.loading = false;\r\n }\r\n\r\n ngOnChanges(changes): void {\r\n if (\r\n changes.data &&\r\n changes.data.currentValue &&\r\n changes.data.previousValue\r\n ) {\r\n this.data = [...changes.data.currentValue];\r\n this.buffer = this.data.slice(0, this.bufferSize);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.buffer = (this.data || []).slice(0, this.bufferSize);\r\n this.buffer.map((item) => {\r\n item.isSelected = false;\r\n });\r\n }\r\n\r\n writeValue(value) {\r\n if (value) {\r\n this.selection = value;\r\n }\r\n }\r\n registerOnChange(fn) {\r\n this.propagateChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(c: FormControl) {\r\n return this.validateFn(c);\r\n }\r\n}\r\n","<ng-container *ngIf=\"label\">\r\n <div>\r\n <label class=\"select-label\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"false\" class=\"text-danger m-1\">*</span></label\r\n >\r\n </div>\r\n</ng-container>\r\n<ng-select\r\n [items]=\"buffer\"\r\n [bindLabel]=\"bindLabel\"\r\n [bindValue]=\"bindValue\"\r\n [placeholder]=\"placeholder\"\r\n [multiple]=\"multiple\"\r\n [searchable]=\"searchable\"\r\n [closeOnSelect]=\"closeOnSelect\"\r\n [hideSelected]=\"hideSelectedItems\"\r\n [loading]=\"loading\"\r\n (scrollToEnd)=\"onScrollToEnd()\"\r\n (change)=\"emitSelection($event)\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"selection\"\r\n>\r\n <!-- template for viewing options in single and multi select -->\r\n <ng-template\r\n ng-option-tmp\r\n let-item=\"item\"\r\n let-item$=\"item$\"\r\n let-index=\"index\"\r\n >\r\n <div class=\"option-wrapper\">\r\n <span class=\"check-box-wrapper\" *ngIf=\"multiple\">\r\n <input\r\n id=\"item-{{ index }}\"\r\n type=\"checkbox\"\r\n [ngModel]=\"item$.selected\"\r\n />\r\n <span class=\"icon-wrapper\">\r\n <span class=\"bi bi-check2 icon\"></span>\r\n </span>\r\n </span>\r\n <span class=\"label-wrapper\">\r\n {{ item[bindLabel] | translate }}\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <!-- template for viewing single select selected value -->\r\n <ng-template ng-label-tmp let-item=\"item\">\r\n {{ (bindLabel ? item[bindLabel] : item) | translate }}\r\n </ng-template>\r\n\r\n <!-- template for viewing multi select selected values -->\r\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\r\n <div class=\"ng-value\" *ngFor=\"let item of items ? items : []\">\r\n <span class=\"ng-value-label\">\r\n {{ (bindLabel ? item[bindLabel] : item) | translate }}\r\n </span>\r\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\" aria-hidden=\"true\"\r\n >×</span\r\n >\r\n </div>\r\n </ng-template>\r\n</ng-select>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SelectComponent } from './select/select.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n\r\n/** @ignore */\r\n@NgModule({\r\n declarations: [SelectComponent],\r\n imports: [\r\n CommonModule,\r\n NgSelectModule,\r\n FormsModule,\r\n TranslateModule\r\n ],\r\n exports: [\r\n SelectComponent\r\n ]\r\n})\r\nexport class SelectModule {}\r\n","import { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { VocabularyApiService } from '../services/vocabulary-api.service';\r\n@Component({\r\n selector: 'cts-vocabulary',\r\n templateUrl: './vocabulary.component.html',\r\n styleUrls: ['./vocabulary.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => VocabularyComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class VocabularyComponent implements OnInit {\r\n data = [];\r\n @Input() bindValue;\r\n @Input() bindLabel;\r\n @Input() placeholder;\r\n @Input() multiple = false;\r\n @Input() searchable = true;\r\n @Input() closeOnSelect = true;\r\n @Input() hideSelectedItems = false;\r\n @Input() isAsync = false;\r\n @Input() attachSource = false;\r\n @Input() source$: Observable<any>;\r\n @Input() hideLoaded = false;\r\n @Input() vocabularyType = '';\r\n\r\n @Output() onSelecting = new EventEmitter();\r\n loading= false;\r\n selection=[];\r\n\r\n // function related to value accessor\r\n propagateChange: any = () => { };\r\n validateFn: any = () => { };\r\n public onTouched: any = () => { /*Empty*/ }\r\n\r\n constructor(private vocabularyApi : VocabularyApiService) { }\r\n\r\n ngOnInit(): void {\r\n if(this.vocabularyType){\r\n this.getLisOfOptions(this.vocabularyType);\r\n }\r\n }\r\n\r\n getLisOfOptions(type){\r\n this.loading = true;\r\n this.vocabularyApi.getVocabularyList(type).subscribe(res => {\r\n this.loading = false;\r\n this.data = res;\r\n });\r\n }\r\n\r\n getSelecteditems(selectedItems){\r\n this.propagateChange(selectedItems);\r\n this.onSelecting.emit(selectedItems);\r\n }\r\n\r\n writeValue(value) {\r\n if (value) {\r\n this.selection = value;\r\n }\r\n }\r\n\r\n registerOnChange(fn) {\r\n this.propagateChange = fn;\r\n }\r\n\r\n registerOnTouched(fn : any) {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(c: FormControl) {\r\n return this.validateFn(c);\r\n }\r\n\r\n}\r\n","<app-dynamic-form-selectitem\r\n [data]=\"data\"\r\n [bindLabel]=\"bindLabel\"\r\n [bindValue]=\"bindValue\"\r\n [placeholder]=\"placeholder\"\r\n [multiple]=\"multiple\"\r\n [searchable]=\"searchable\"\r\n [closeOnSelect]=\"closeOnSelect\"\r\n [hideSelectedItems]=\"hideSelectedItems\"\r\n [loading]=\"loading\"\r\n (onSelectItems)=\"getSelecteditems($event)\"\r\n></app-dynamic-form-selectitem>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { VocabularyComponent } from './vocabulary/vocabulary.component';\r\nimport { SelectModule } from '../select/select.module';\r\nimport { DynamicFormModule } from '../dynamic-form/dynamic-form.module';\r\n// import { CoreModule } from '../../core/core.module';\r\n\r\n/** @ignore */\r\n@NgModule({\r\n declarations: [VocabularyComponent],\r\n imports: [\r\n CommonModule,\r\n SelectModule,\r\n DynamicFormModule\r\n ],\r\n exports : [\r\n VocabularyComponent\r\n ]\r\n})\r\nexport class VocabularyModule { }\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { TranslationService } from '../../../Core/services/translation/translation.service';\r\nimport moment from 'moment-es6';\r\ninterface ChartData {\r\n chartData: {};\r\n options: {};\r\n}\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ChartDataService {\r\n refreshData = new EventEmitter();\r\n private prefix = 'STATS.';\r\n private isArabic: boolean;\r\n private size: number = 8;\r\n \r\n private totalNumber = [\r\n {\r\n beforeDraw: (chart) => {\r\n if (chart.config.options.elements.center) {\r\n // Get ctx from string\r\n var ctx = chart.chart.ctx;\r\n\r\n // Get options from the center object in options\r\n var centerConfig = chart.config.options.elements.center;\r\n var fontStyle = centerConfig.fontStyle || 'Arial';\r\n var txt = centerConfig.text;\r\n var color = centerConfig.color || '#000';\r\n var maxFontSize = centerConfig.maxFontSize || 75;\r\n var sidePadding = centerConfig.sidePadding || 20;\r\n var sidePaddingCalculated =\r\n (sidePadding / 100) * (chart.innerRadius * 2);\r\n // Start with a base font of 30px\r\n ctx.font = '30px ' + fontStyle;\r\n\r\n // Get the width of the string and also the width of the element minus 10 to give it 5px side padding\r\n var stringWidth = ctx.measureText(txt).width;\r\n var elementWidth = chart.innerRadius * 2 - sidePaddingCalculated;\r\n\r\n // Find out how much the font can grow in width.\r\n var widthRatio = elementWidth / stringWidth;\r\n var newFontSize = Math.floor(30 * widthRatio);\r\n var elementHeight = chart.innerRadius * 2;\r\n\r\n // Pick a new font size so it will not be larger than the height of label.\r\n var fontSizeToUse = Math.min(newFontSize, elementHeight, maxFontSize);\r\n var minFontSize = centerConfig.minFontSize;\r\n var lineHeight = centerConfig.lineHeight || 25;\r\n var wrapText = false;\r\n\r\n if (minFontSize === undefined) {\r\n minFontSize = 20;\r\n }\r\n\r\n if (minFontSize && fontSizeToUse < minFontSize) {\r\n fontSizeToUse = minFontSize;\r\n wrapText = true;\r\n }\r\n\r\n // Set font settings to draw it correctly.\r\n ctx.textAlign = 'center';\r\n ctx.textBaseline = 'middle';\r\n var centerX = (chart.chartArea.left + chart.chartArea.right) / 2;\r\n var centerY = (chart.chartArea.top + chart.chartArea.bottom) / 2;\r\n ctx.font = '14' + 'px ' + fontStyle;\r\n ctx.fillStyle = color;\r\n\r\n if (!wrapText) {\r\n ctx.fillText(txt, centerX, centerY);\r\n return;\r\n }\r\n\r\n var words = txt.split(' ');\r\n var line = '';\r\n var lines = [];\r\n\r\n // Break words up into multiple lines if necessary\r\n for (var n = 0; n < words.length; n++) {\r\n var testLine = line + words[n] + ' ';\r\n var metrics = ctx.measureText(testLine);\r\n var testWidth = metrics.width;\r\n if (testWidth > elementWidth && n > 0) {\r\n lines.push(line);\r\n line = words[n] + ' ';\r\n } else {\r\n line = testLine;\r\n }\r\n }\r\n\r\n // Move the center up depending on line height and number of lines\r\n centerY -= (lines.length / 2) * lineHeight;\r\n\r\n for (var n = 0; n < lines.length; n++) {\r\n ctx.fillText(lines[n], centerX, centerY);\r\n centerY += lineHeight;\r\n }\r\n //Draw text in center\r\n ctx.fillText(line, centerX, centerY);\r\n }\r\n },\r\n },\r\n ];\r\n constructor(\r\n private translate: TranslateService,\r\n private translation: TranslationService\r\n ) {\r\n this.translation.isArabic.subscribe((arabic) => {\r\n arabic ? (this.isArabic = arabic) : (this.isArabic = arabic);\r\n });\r\n }\r\n /**\r\n *\r\n * @param data data fetched from back-end\r\n * @param totalItems totalItems from the backedn\r\n * @param prefix for Translations\r\n * @returns\r\n */\r\n multiSeriesPieChart(data): ChartData {\r\n const provideColors = data.colors;\r\n const prefix = data.prefix;\r\n const totalItems = data.totalItems;\r\n let dataArr = [];\r\n let labels = [];\r\n //for aggregations\r\n let itemCount: number = 0;\r\n let otherItemsCount: number;\r\n\r\n dataArr = data.data.slice(0, this.size).map((item, index) => {\r\n const numbers = data.data.map((item1, index1) =>\r\n index === index1 ? item.count : 0\r\n );\r\n const colors = data.data.slice(0, this.size).map((item1, index1) => {\r\n return provideColors[item1.label];\r\n });\r\n numbers.push(data.totalItems - item.count);\r\n\r\n colors.push('#f7f8f9');\r\n return {\r\n data: numbers,\r\n totalItems: data.totalItems,\r\n backgroundColor: colors,\r\n };\r\n });\r\n labels = data.data\r\n .slice(0, this.size)\r\n .map(\r\n (item) =>\r\n `${this.translate.instant(prefix + item.label)} (${item.count})`\r\n );\r\n const chartData = {\r\n datasets: dataArr,\r\n labels: labels,\r\n };\r\n\r\n const options = {\r\n type: 'doughnut',\r\n data: chartData,\r\n plugins: this.totalNumber,\r\n showCount: true,\r\n countSize: '18px',\r\n options: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n tooltips: { enabled: false },\r\n cutoutPercentage: 30,\r\n legend: {\r\n labels: {\r\n usePointStyle: true,\r\n boxWidth: 8,\r\n },\r\n position: 'left',\r\n rtl: this.isArabic ? true : false,\r\n },\r\n elements: {\r\n center: {\r\n text: `${\r\n totalItems >= 1000\r\n ? parseFloat((totalItems / 1000).toFixed(2)) + 'K'\r\n : totalItems\r\n }`,\r\n color: '#596973', // Default is #000000\r\n fontStyle: 'Arial', // Default is Arial\r\n sidePadding: 20, // Default is 20 (as a percentage)\r\n minFontSize: 20, // Default is 20 (in px), set to false and text will not wrap.\r\n lineHeight: 25, // Default is 25 (in px), used for when text wraps\r\n },\r\n },\r\n },\r\n };\r\n return { options: options, chartData: chartData };\r\n }\r\n\r\n doughnutChart(data): ChartData {\r\n const provideColors = data.colors;\r\n const prefix = data.prefix;\r\n const totalItems = data.data.totalItems;\r\n let backgroundColor = [];\r\n let dataArr = [];\r\n let labels = [];\r\n //for aggregations\r\n let itemCount: number = 0;\r\n let otherItemsCount: number;\r\n data.data.data.slice(0, this.size).forEach((item, index) => {\r\n backgroundColor.push(provideColors[item.label]);\r\n dataArr.push(item.count);\r\n itemCount = itemCount + item.count;\r\n });\r\n labels = data.data.data.slice(0, this.size).map((item, index) => {\r\n return `${this.translate.instant(prefix + item.label)} (${item.count})`;\r\n });\r\n //aggregate other data\r\n otherItemsCount = totalItems - itemCount;\r\n if (otherItemsCount > 0) {\r\n backgroundColor.push(provideColors['other']);\r\n dataArr.push(otherItemsCount);\r\n labels.push(\r\n `${this.translate.instant(prefix + 'other')} (${otherItemsCount})`\r\n );\r\n }\r\n const chartData = {\r\n datasets: [\r\n {\r\n backgroundColor: backgroundColor,\r\n data: dataArr,\r\n },\r\n ],\r\n labels: labels,\r\n };\r\n\r\n const options = {\r\n type: 'doughnut',\r\n data: chartData,\r\n showCount: true,\r\n countSize: '18px',\r\n plugins: this.totalNumber,\r\n options: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n tooltips: { enabled: true },\r\n cutoutPercentage: 30,\r\n legend: {\r\n labels: {\r\n usePointStyle: true,\r\n boxWidth: 8,\r\n },\r\n display: true,\r\n position: this.isArabic ? 'right' : 'left',\r\n rtl: this.isArabic ? true : false,\r\n },\r\n elements: {\r\n center: {\r\n text: `${\r\n totalItems >= 1000\r\n ? parseFloat((totalItems / 1000).toFixed(2)) + 'K'\r\n : totalItems\r\n }`,\r\n color: '#596973', // Default is #000000\r\n fontStyle: 'Arial', // Default is Arial\r\n sidePadding: 20, // Default is 20 (as a percentage)\r\n minFontSize: 20, // Default is 20 (in px), set to false and text will not wrap.\r\n lineHeight: 25, // Default is 25 (in px), used for when text wraps\r\n },\r\n },\r\n },\r\n };\r\n return { options: options, chartData: chartData };\r\n }\r\n\r\n lineChart(data): ChartData {\r\n data = this.groupObjectBykeyLine(data.data);\r\n console.log('chart data', data);\r\n this.isArabic ? moment.locale('ar-sa') : moment.locale('en-us');\r\n const chartData = data;\r\n const options = {\r\n type: 'line',\r\n data: chartData,\r\n options: {\r\n maintainAspectRatio: false,\r\n scales: {\r\n xAxes: [\r\n {\r\n ticks: {\r\n autoSkip: true,\r\n maxTicksLimit: 12,\r\n source: 'labels',\r\n },\r\n type: 'time',\r\n time: {\r\n unit: 'week',\r\n displayFormats: {\r\n week: 'DD-MM-yyyy',\r\n },\r\n },\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n ticks: {\r\n min: 0,\r\n precision: 0,\r\n },\r\n },\r\n ],\r\n },\r\n title: {\r\n display: true,\r\n text: '',\r\n },\r\n legend: {\r\n labels: {\r\n // usePointStyle: true,\r\n boxWidth: 12,\r\n },\r\n // position: 'bottom',\r\n rtl: this.isArabic ? true : false,\r\n },\r\n },\r\n };\r\n return { options, chartData };\r\n }\r\n\r\n GroupedBarChart(data): ChartData {\r\n data = this.groupObjectBykey(data.data);\r\n this.isArabic ? moment.locale('ar-sa') : moment.locale('en-us');\r\n const chartData = data;\r\n const options = {\r\n type: 'bar',\r\n data: chartData,\r\n options: {\r\n plugins: {\r\n outlabels: {\r\n display: false,\r\n },\r\n labels: false,\r\n },\r\n barValueSpacing: 20,\r\n scales: {\r\n yAxes: [\r\n {\r\n ticks: {\r\n min: 0,\r\n precision: 0,\r\n },\r\n },\r\n ],\r\n },\r\n legend: {\r\n // position: 'bottom',\r\n labels: {\r\n boxWidth: 12,\r\n },\r\n rtl: this.isArabic ? true : false,\r\n },\r\n },\r\n };\r\n return { options, chartData };\r\n }\r\n\r\n BarChart(data): ChartData {\r\n const provideColors = data.colors;\r\n const prefix = data.prefix;\r\n const totalItems = data.totalItems;\r\n let backgroundColor = [];\r\n let dataArr = [];\r\n let labels = [];\r\n data.data.data.forEach((item, index) => {\r\n backgroundColor.push(\"#2e62df\");\r\n dataArr.push(item.count);\r\n });\r\n labels = data.data.data.map((item, index) => {\r\n return `${item.label}`;\r\n });\r\n const chartData = {\r\n datasets: [\r\n {\r\n backgroundColor: backgroundColor,\r\n data: dataArr,\r\n barPercentage: 0.4,\r\n barThickness: 24,\r\n maxBarThickness: 30,\r\n minBarLength: 2,\r\n },\r\n ],\r\n labels: labels,\r\n };\r\n\r\n const options = {\r\n type: 'bar',\r\n data: chartData,\r\n options: {\r\n plugins: {\r\n outlabels: {\r\n display: false,\r\n },\r\n labels: false,\r\n },\r\n barValueSpacing: 20,\r\n scales: {\r\n yAxes: [\r\n {\r\n ticks: {\r\n min: 0,\r\n precision: 0,\r\n },\r\n },\r\n ],\r\n },\r\n legend: {\r\n // position: 'bottom',\r\n display: false,\r\n // labels: {\r\n // boxWidth: 12,\r\n // },\r\n // rtl: this.isArabic ? true : false,\r\n },\r\n },\r\n };\r\n return { options: options, chartData: chartData };\r\n }\r\n\r\n outlabeledPieChart(data): ChartData {\r\n const provideColors = data.colors;\r\n const prefix = data.prefix;\r\n const totalItems = data.totalItems;\r\n let backgroundColor = [];\r\n let dataArr = [];\r\n let labels = [];\r\n data.data.data.forEach((item, index) => {\r\n backgroundColor.push(provideColors[item.label]);\r\n dataArr.push(item.count);\r\n });\r\n labels = data.data.data.map((item, index) => {\r\n return `${item.label}`;\r\n });\r\n const chartData = {\r\n datasets: [\r\n {\r\n backgroundColor: backgroundColor,\r\n data: dataArr,\r\n },\r\n ],\r\n labels: labels,\r\n };\r\n\r\n const options = {\r\n type: 'outlabeledPie',\r\n data: chartData,\r\n\r\n options: {\r\n // title: {\r\n // display: true,\r\n // text: prefix.length > 0 ? `${this.translate.instant(prefix)}` : '',\r\n // },\r\n zoomOutPercentage: 55,\r\n plugins: {\r\n legend: false,\r\n outlabels: {\r\n lineWidth: 0.8,\r\n lineColor: '#b4bac6',\r\n text: '%l %p',\r\n color: 'white',\r\n stretch: 25,\r\n font: {\r\n resizable: true,\r\n minSize: 12,\r\n maxSize: 18,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n return { options: options, chartData: chartData };\r\n }\r\n\r\n pieChart(data): ChartData {\r\n const provideColors = data.colors;\r\n const prefix = data.prefix;\r\n const totalItems = data.totalItems;\r\n let backgroundColor = [];\r\n let dataArr = [];\r\n let labels = [];\r\n data.data.data.forEach((item, index) => {\r\n backgroundColor.push(provideColors[item.label]);\r\n dataArr.push(item.count);\r\n });\r\n labels = data.data.data.map((item, index) => {\r\n return `${item.label}`;\r\n });\r\n const chartData = {\r\n datasets: [\r\n {\r\n backgroundColor: backgroundColor,\r\n data: dataArr,\r\n },\r\n ],\r\n labels: labels,\r\n };\r\n\r\n const options = {\r\n type: 'pie',\r\n data: chartData,\r\n\r\n options: {\r\n title: {\r\n display: true,\r\n text: prefix.length > 0 ? `${this.translate.instant(prefix)}` : '',\r\n },\r\n zoomOutPercentage: 55,\r\n legend: {\r\n labels: {\r\n usePointStyle: true,\r\n boxWidth: 8,\r\n },\r\n // position: 'left',\r\n rtl: this.isArabic ? true : false,\r\n },\r\n plugins: {\r\n outlabels: {\r\n display: false,\r\n },\r\n },\r\n },\r\n };\r\n return { options: options, chartData: chartData };\r\n }\r\n\r\n private groupObjectBykey = (data) => {\r\n let nameIndices = {};\r\n let statusHash = {};\r\n let chartData = { labels: [], datasets: [] };\r\n data.forEach((item) => {\r\n if (!(item.label in nameIndices)) {\r\n nameIndices[item.label] = chartData.labels.push(item.label) - 1;\r\n chartData.datasets.forEach((a) => {\r\n a.data.push(0);\r\n });\r\n }\r\n if (!statusHash[item.status]) {\r\n statusHash[item.status] = {\r\n label: `${this.translate.instant(item.status)} (${item.totalItems})`,\r\n ...(item.status === 'Incoming' && {\r\n backgroundColor: '#00dca5',\r\n }),\r\n ...(item.status === 'Outgoing' && {\r\n backgroundColor: '#fbb62c',\r\n }),\r\n data: chartData.labels.map(() => {\r\n return 0;\r\n }),\r\n barPercentage: 0.4,\r\n barThickness: 24,\r\n maxBarThickness: 30,\r\n minBarLength: 2,\r\n };\r\n chartData.datasets.push(statusHash[item.status]);\r\n }\r\n statusHash[item.status].data[nameIndices[item.label]] = item.count;\r\n });\r\n\r\n return chartData;\r\n };\r\n\r\n private groupObjectBykeyLine = (data) => {\r\n data.sort((left, right) => {\r\n return moment.utc(left.id).diff(moment.utc(right.id));\r\n });\r\n let nameIndices = {};\r\n let statusHash = {};\r\n let chartData = { labels: [], datasets: [] };\r\n data.forEach((item) => {\r\n if (!(item.id in nameIndices)) {\r\n nameIndices[item.id] = chartData.labels.push(item.id) - 1;\r\n chartData.datasets.forEach((a) => {\r\n a.data.push(0);\r\n });\r\n }\r\n if (!statusHash[item.status]) {\r\n statusHash[item.status] = {\r\n label: `${this.translate.instant(item.status)} (${item.totalItems})`,\r\n ...(item.status === 'Incoming' && {\r\n borderColor: '#00dca5',\r\n }),\r\n ...(item.status === 'Outgoing' && {\r\n borderColor: '#fbb62c',\r\n }),\r\n fill: false,\r\n lineTension: 0,\r\n data: chartData.labels.map(() => {\r\n return 0;\r\n }),\r\n };\r\n chartData.datasets.push(statusHash[item.status]);\r\n }\r\n statusHash[item.status].data[nameIndices[item.id]] = item.count;\r\n });\r\n\r\n return chartData;\r\n };\r\n \r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { Chart } from \"chart.js\";\r\nimport { Observable, Subject , Subscription, forkJoin} from \"rxjs\";\r\nimport { map, takeUntil, debounceTime } from \"rxjs/operators\";\r\nimport { CallApiService } from \"../../../Core/services/callApi/call-api.service\";\r\nimport { ChartDataService } from \"../services/chart-data.service\";\r\nimport * as _ from 'lodash';\r\nimport { Router } from '@angular/router';\r\nimport 'chartjs-plugin-piechart-outlabels';\r\nimport 'chartjs-plugin-labels';\r\n/** @ignore */\r\n@Component({\r\n selector: \"cts-dynamic-chart\",\r\n templateUrl: \"./dynamic-chart.component.html\",\r\n styleUrls: [\"./dynamic-chart.component.scss\"],\r\n})\r\nexport class DynamicChartComponent implements OnInit, OnChanges, OnDestroy {\r\n @ViewChild('revenueLineChart', { static: false }) chart: ElementRef;\r\n @Input()\r\n prefix = 'STATS.'; // for translation\r\n @Input()\r\n chartType; // functions exist inside ChartDataService\r\n @Input() randomColors: boolean = false;\r\n private chartObj;\r\n private onDestroy$ = new Subject<boolean>();\r\n creatChart = new Subject<any>();\r\n @Input() pageProvider; // define api to get the data from\r\n @Input() headers = {}; // headers in constants\r\n @Input() observable; // observable in case of call api is called from outside the component\r\n @Input() aggregations;\r\n @Input() quickFilters;\r\n @Input() systemCurrentLifeCycleState;\r\n @Input() range = '[\"from_now-7d_to_now\"]';\r\n @Input() label;\r\n @Input()\r\n selectedRange = \"week\"; // range to be filterd on\r\n @Input() colors: any = {\r\n inProgress: '#3c3cf0',\r\n registered: '#5a1496',\r\n draft: '#596973',\r\n archived: '#fbb62c',\r\n closed: '#00dca5',\r\n assigned: '#fd6670',\r\n undefined: '#f7f8f9',\r\n other: '#f17205',\r\n };\r\n data: any = [];\r\n isFetching: boolean = false;\r\n charts: [];\r\n @Input()\r\n randomColor: boolean = false;\r\n @Input()\r\n fetchedKey;\r\n @Input()\r\n pageProviderTwo;\r\n @Input()\r\n quickFilterTwo;\r\n @Input()\r\n combinedData = false;\r\n @Input()\r\n statusOne;\r\n @Input()\r\n statusTwo;\r\n @Input()\r\n min;\r\n @Input()\r\n max;\r\n @Input()\r\n width;\r\n @Input()\r\n height;\r\n @Input()\r\n card = false;\r\n @Input()\r\n cardTitle = '';\r\n myDataSubscription: Subscription;\r\n constructor(\r\n public translate: TranslateService,\r\n public changeDetector: ChangeDetectorRef,\r\n private callApi: CallApiService,private router: Router,\r\n public chartData: ChartDataService\r\n ) {\r\n Chart.defaults.global.defaultFontFamily = \"FS Albert Arabic Web\";\r\n Chart.defaults.global.defaultFontSize = 13;\r\n this.translate.onLangChange\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((data) => {\r\n this.creatChart.next();\r\n });\r\n }\r\n createChart() {\r\n this.creatChart.pipe(debounceTime(500)).subscribe((res) => {\r\n this.getData().subscribe((data) => {\r\n this.data = data;\r\n this.changeDetector.detectChanges();\r\n let randomColors = {};\r\n if (this.randomColors) {\r\n data.data.forEach((item) => {\r\n randomColors[item.label] = this.stringToHslColor(\r\n `${item.label}`,\r\n 40,\r\n 70\r\n );\r\n });\r\n }\r\n this.colors = this.randomColors ? randomColors : this.colors;\r\n const { options, chartData } = this.chartData[this.chartType]({\r\n data: data,\r\n colors: this.colors,\r\n prefix: this.prefix,\r\n });\r\n if (data.data?.length || data.length) {\r\n if (!this.chartObj) {\r\n const ctx = this.chart.nativeElement.getContext('2d');\r\n this.chartObj = new Chart(ctx, options);\r\n } else {\r\n this.chartObj.chart.data = chartData;\r\n this.chartObj.update();\r\n }\r\n } else {\r\n // const ctx = this.chart.nativeElement.getContext('2d');\r\n // let noOptions = {\r\n // type: options.type,\r\n // data: {\r\n // datasets: [],\r\n // },\r\n // options: {},\r\n // };\r\n // this.chartObj = new Chart(ctx, noOptions);\r\n // this.chartObj.chart.data = [];\r\n }\r\n });\r\n });\r\n }\r\n\r\n updateStats() {\r\n this.createChart();\r\n }\r\n\r\n async ngOnInit() {\r\n setTimeout(() => {\r\n this.createChart();\r\n this.creatChart.next();\r\n });\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n const minChanged = changes.min && !changes.min?.firstChange;\r\n const maxChanged = changes.max && !changes.max?.firstChange;\r\n const rangeChanged = changes.range && !changes.range?.firstChange;\r\n if (minChanged || maxChanged || rangeChanged) {\r\n setTimeout(() => {\r\n this.creatChart.next();\r\n });\r\n }\r\n }\r\n ngOnDestroy() {\r\n this.myDataSubscription ? this.myDataSubscription.unsubscribe() : '';\r\n this.onDestroy$.next(true);\r\n this.onDestroy$.complete();\r\n this.creatChart.unsubscribe();\r\n }\r\n getData(): Observable<any> {\r\n this.isFetching = true;\r\n if (this.combinedData) {\r\n return this.getCombinedData(\r\n this.pageProvider,\r\n this.quickFilters,\r\n this.range,\r\n this.pageProviderTwo,\r\n this.quickFilterTwo,\r\n this.statusOne,\r\n this.statusTwo\r\n );\r\n } else {\r\n return this.callApi\r\n .query(\r\n {\r\n pageProvider: this.pageProvider,\r\n currentPageIndex: 0,\r\n offset: 0,\r\n pageSize: 1,\r\n dublincore_created_agg: this.range,\r\n quickFilters: this.quickFilters,\r\n dublincore_created_min: this.min,\r\n dublincore_created_max: this.max,\r\n system_currentLifeCycleState_3: JSON.stringify(\r\n this.systemCurrentLifeCycleState\r\n ),\r\n },\r\n {\r\n headers: this.headers,\r\n }\r\n )\r\n .pipe(\r\n map((data) => {\r\n const items = data.aggregations[this.aggregations].buckets\r\n ? data.aggregations[this.aggregations].buckets.map((item) => ({\r\n label: this.fetchedKey\r\n ? _.get(item, this.fetchedKey)\r\n : item.key,\r\n count: item.docCount,\r\n }))\r\n : [];\r\n this.isFetching = false;\r\n return {\r\n data: items,\r\n totalItems: data.totalSize,\r\n };\r\n })\r\n );\r\n }\r\n }\r\n\r\n getCombinedData(\r\n pageProviderOne,\r\n quickFilterOne,\r\n selectedRange,\r\n pageProviderTwo,\r\n quickFilterTwo,\r\n statusOne,\r\n statusTwo\r\n ) {\r\n const getOutgoing$ = this.callApi\r\n .query(\r\n {\r\n pageProvider: pageProviderOne,\r\n currentPageIndex: 0,\r\n offset: 0,\r\n pageSize: 1,\r\n dublincore_created_agg: selectedRange,\r\n quickFilters: quickFilterOne,\r\n dublincore_created_min: this.min,\r\n dublincore_created_max: this.max,\r\n system_currentLifeCycleState_3: JSON.stringify(\r\n this.systemCurrentLifeCycleState\r\n ),\r\n },\r\n {\r\n headers: this.headers,\r\n }\r\n )\r\n .pipe(\r\n map((data) => {\r\n const items = data.aggregations[this.aggregations].buckets\r\n ? data.aggregations[this.aggregations].buckets.map((item) => ({\r\n label: this.fetchedKey\r\n ? _.get(item, this.fetchedKey)\r\n : item.key,\r\n count: item.docCount,\r\n id: item.key,\r\n status: statusOne,\r\n totalItems: data.totalSize,\r\n }))\r\n : [];\r\n return {\r\n data: items,\r\n totalItems: data.totalSize,\r\n };\r\n })\r\n );\r\n const getIncoming$ = this.callApi\r\n .query(\r\n {\r\n pageProvider: pageProviderTwo,\r\n currentPageIndex: 0,\r\n offset: 0,\r\n pageSize: 1,\r\n dublincore_created_agg: selectedRange,\r\n quickFilters: quickFilterTwo,\r\n dublincore_created_min: this.min,\r\n dublincore_created_max: this.max,\r\n system_currentLifeCycleState_3: JSON.stringify(\r\n this.systemCurrentLifeCycleState\r\n ),\r\n },\r\n {\r\n headers: this.headers,\r\n }\r\n )\r\n .pipe(\r\n map((data) => {\r\n const items = data.aggregations[this.aggregations].buckets\r\n ? data.aggregations[this.aggregations].buckets.map((item) => ({\r\n label: this.fetchedKey\r\n ? _.get(item, this.fetchedKey)\r\n : item.key,\r\n count: item.docCount,\r\n id: item.key,\r\n status: statusTwo,\r\n totalItems: data.totalSize,\r\n }))\r\n : [];\r\n return {\r\n data: items,\r\n totalItems: data.totalSize,\r\n };\r\n })\r\n );\r\n return forkJoin([getOutgoing$, getIncoming$]).pipe(\r\n map((data) => {\r\n let combinedData = [...data[0].data, ...data[1].data];\r\n this.isFetching = false;\r\n return combinedData;\r\n })\r\n );\r\n }\r\n\r\n previewCorrespondences() {\r\n console.log(\"params\",this.systemCurrentLifeCycleState)\r\n let queryParams;\r\n if (this.combinedData) {\r\n queryParams = {\r\n combinedData: this.combinedData,\r\n pageProvider: this.pageProvider,\r\n headers: JSON.stringify(this.headers),\r\n range: this.range,\r\n aggregations: this.aggregations,\r\n quickFilterOne: this.quickFilters,\r\n quickFilterTwo: this.quickFilterTwo,\r\n systemCurrentLifeCycleState: this.systemCurrentLifeCycleState,\r\n statusOne: this.statusOne,\r\n statusTwo: this.statusTwo,\r\n min: this.min,\r\n max: this.max,\r\n };\r\n } else {\r\n queryParams = {\r\n combinedData: this.combinedData,\r\n pageProvider: this.pageProvider,\r\n quickFilterOne: this.quickFilters,\r\n headers: JSON.stringify(this.headers),\r\n range: this.range,\r\n aggregations: this.aggregations,\r\n systemCurrentLifeCycleState: this.systemCurrentLifeCycleState,\r\n min: this.min,\r\n max: this.max,\r\n };\r\n }\r\n this.router.navigate(['report', 'chart-details'], {\r\n queryParams: queryParams,\r\n });\r\n }\r\n \r\n stringToHslColor(str, s, l) {\r\n var hash = 0;\r\n for (var i = 0; i < str.length; i++) {\r\n hash = str.charCodeAt(i) + ((hash << 5) - hash);\r\n }\r\n var h = hash % 360;\r\n return 'hsl(' + h + ', ' + s + '%, ' + l + '%)';\r\n }\r\n}\r\n","<div class=\"card-continer\" *ngIf=\"card; else test\">\r\n <div class=\"chart-card-header\">\r\n <div class=\"chart-card-title\">{{ cardTitle | translate }}</div>\r\n <button class=\"chart-card-button\" (click)=\"previewCorrespondences()\">\r\n {{ \"report.Preview\" | translate }}\r\n </button>\r\n </div>\r\n <ng-container *ngIf=\"isFetching\">\r\n <cts-spinner></cts-spinner>\r\n </ng-container>\r\n <div class=\"stat\" [style.height.px]=\"height\">\r\n <div [hidden]=\"data.data?.length == 0 || data.length == 0\">\r\n <canvas #revenueLineChart [height]=\"height\" [width]=\"width\"></canvas>\r\n </div>\r\n <div class=\"no-stats\" *ngIf=\"data.data?.length == 0 || data.length == 0\">\r\n <span>{{ \"STATS.noData\" | translate }}</span>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #test>\r\n <div class=\"stat\">\r\n <canvas #revenueLineChart [height]=\"height\" [width]=\"width\"></canvas>\r\n </div>\r\n</ng-template>\r\n\r\n","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { Chart } from 'chart.js';\r\n/**\r\n * A UI doughnut chart component\r\n *\r\n * ![Screenshot-1](../screenshots/singleChart.png)\r\n * @title\r\n * doughnut chart\r\n *\r\n * @example\r\n * <cts-dynamic-single-chart\r\n * [totalItems]=\"totalItems\"\r\n * [label]=\"label\"\r\n * [count]=\"count\"\r\n * [colorCode]=\"arrayOfColors\"\r\n * ></cts-dynamic-single-chart>\r\n */\r\n@Component({\r\n selector: 'cts-dynamic-single-chart',\r\n templateUrl: './dynamic-single-chart.component.html',\r\n styleUrls: ['./dynamic-single-chart.component.scss'],\r\n})\r\nexport class DynamicSingleChartComponent implements OnInit {\r\n /** Total Items */\r\n @Input()\r\n totalItems;\r\n /** Chart count */\r\n @Input()\r\n count;\r\n /** Chart label */\r\n @Input()\r\n label: string;\r\n /** array of color codes for chart */\r\n @Input()\r\n colorCode = [];\r\n @ViewChild('myChart') chart: ElementRef;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void { }\r\n \r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n\r\n const ctx = this.chart.nativeElement.getContext('2d');\r\n let myChart = new Chart(ctx, {\r\n type: 'doughnut',\r\n data: {\r\n datasets: [\r\n {\r\n label: '# of Votes',\r\n data: [this.count, this.totalItems],\r\n backgroundColor: this.colorCode,\r\n },\r\n ],\r\n },\r\n plugins: [\r\n {\r\n beforeDraw: function (chart) {\r\n if (chart.config.options.elements.center) {\r\n // Get ctx from string\r\n var ctx = chart.chart.ctx;\r\n\r\n // Get options from the center object in options\r\n var centerConfig = chart.config.options.elements.center;\r\n var fontStyle = centerConfig.fontStyle || 'Arial';\r\n var txt = centerConfig.text;\r\n var color = centerConfig.color || '#000';\r\n var maxFontSize = centerConfig.maxFontSize || 75;\r\n var sidePadding = centerConfig.sidePadding || 20;\r\n var sidePaddingCalculated =\r\n (sidePadding / 100) * (chart.innerRadius * 2);\r\n // Start with a base font of 30px\r\n ctx.font = '30px ' + fontStyle;\r\n\r\n // Get the width of the string and also the width of the element minus 10 to give it 5px side padding\r\n var stringWidth = ctx.measureText(txt).width;\r\n var elementWidth = chart.innerRadius * 2 - sidePaddingCalculated;\r\n\r\n // Find out how much the font can grow in width.\r\n var widthRatio = elementWidth / stringWidth;\r\n var newFontSize = Math.floor(30 * widthRatio);\r\n var elementHeight = chart.innerRadius * 2;\r\n\r\n // Pick a new font size so it will not be larger than the height of label.\r\n var fontSizeToUse = Math.min(\r\n newFontSize,\r\n elementHeight,\r\n maxFontSize\r\n );\r\n var minFontSize = centerConfig.minFontSize;\r\n var lineHeight = centerConfig.lineHeight || 25;\r\n var wrapText = false;\r\n\r\n if (minFontSize === undefined) {\r\n minFontSize = 20;\r\n }\r\n\r\n if (minFontSize && fontSizeToUse < minFontSize) {\r\n fontSizeToUse = minFontSize;\r\n wrapText = true;\r\n }\r\n\r\n // Set font settings to draw it correctly.\r\n ctx.textAlign = 'center';\r\n ctx.textBaseline = 'middle';\r\n var centerX =\r\n (chart.chartArea.left + chart.chartArea.right) / 1.97;\r\n var centerY = (chart.chartArea.top + chart.chartArea.bottom) / 2;\r\n ctx.font = '14' + 'px ' + fontStyle;\r\n ctx.fillStyle = color;\r\n\r\n if (!wrapText) {\r\n ctx.fillText(txt, centerX, centerY);\r\n return;\r\n }\r\n\r\n var words = txt.split(' ');\r\n var line = '';\r\n var lines = [];\r\n\r\n // Break words up into multiple lines if necessary\r\n for (var n = 0; n < words.length; n++) {\r\n var testLine = line + words[n] + ' ';\r\n var metrics = ctx.measureText(testLine);\r\n var testWidth = metrics.width;\r\n if (testWidth > elementWidth && n > 0) {\r\n lines.push(line);\r\n line = words[n] + ' ';\r\n } else {\r\n line = testLine;\r\n }\r\n }\r\n\r\n // Move the center up depending on line height and number of lines\r\n centerY -= (lines.length / 2) * lineHeight;\r\n\r\n for (var n = 0; n < lines.length; n++) {\r\n ctx.fillText(lines[n], centerX, centerY);\r\n centerY += lineHeight;\r\n }\r\n //Draw text in center\r\n ctx.fillText(line, centerX, centerY);\r\n }\r\n },\r\n },\r\n ],\r\n options: {\r\n responsive: true,\r\n outlabels: {\r\n display: false,\r\n },\r\n plugins: {\r\n outlabels: {\r\n display: false,\r\n },\r\n labels: false\r\n },\r\n tooltips: { enabled: false },\r\n elements: {\r\n center: {\r\n text: `${\r\n this.count >= 1000\r\n ? parseFloat((this.count / 1000).toFixed(2)) + 'K'\r\n : this.count\r\n }`,\r\n color: '#596973', // Default is #000000\r\n fontStyle: 'Arial', // Default is Arial\r\n sidePadding: 20, // Default is 20 (as a percentage)\r\n minFontSize: 20, // Default is 20 (in px), set to false and text will not wrap.\r\n lineHeight: 25, // Default is 25 (in px), used for when text wraps\r\n },\r\n },\r\n },\r\n });\r\n }, 200);\r\n }\r\n}\r\n","<div class=\"chart\">\r\n <canvas width=\"70\" height=\"70\" #myChart></canvas>\r\n <label class=\"chart-lable\">{{ \"STATS.\" + label | translate }}</label>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DynamicChartComponent } from './dynamic-chart/dynamic-chart.component';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { DynamicSingleChartComponent } from './dynamic-single-chart/dynamic-single-chart.component';\r\nimport { LibrarySharedModule } from '../../shared/libraryShared.module';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n/**\r\n * @title\r\n * Chart Module\r\n */\r\n@NgModule({\r\n declarations: [\r\n DynamicChartComponent, \r\n DynamicSingleChartComponent \r\n ],\r\n imports: [CommonModule, TranslateModule , LibrarySharedModule , MatTooltipModule],\r\n exports: [\r\n DynamicChartComponent,\r\n DynamicSingleChartComponent],\r\n})\r\nexport class DynamicChartModule {}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n/**\r\n * A UI component to view an array of users\r\n *\r\n * ![Screenshot-1](../screenshots/usersCard.png)\r\n * @title\r\n * Users Card\r\n *\r\n * @example\r\n * <app-users-card [title]=\"'List of users'\" [members]=\"users\"></app-users-card>\r\n */\r\n@Component({\r\n selector: 'app-users-card',\r\n templateUrl: './users-card.component.html',\r\n styleUrls: ['./users-card.component.scss']\r\n})\r\nexport class UsersCardComponent implements OnInit {\r\n /** Array of Nuxeo user objects */\r\n @Input()\r\n members = [];\r\n /** Card title */\r\n @Input()\r\n title = '';\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n}\r\n","<app-card>\r\n <h3 class=\"title\">\r\n {{ title | translate }}\r\n </h3>\r\n\r\n <div class=\"body\">\r\n <div class=\"images-container\">\r\n <ng-container *ngFor=\"let member of members\">\r\n <cts-avatar\r\n class=\"member-avatar\"\r\n matTooltip=\"{{ member.properties.user.properties.firstName }} {{\r\n member.properties.user.properties.lastName\r\n }} - {{ member.properties.role }}\" matTooltipClass=\"tdf-tooltip\" [user]=\"member?.properties?.user\"\r\n *ngIf=\"member?.properties?.user\"\r\n [routerLink]=\"['/users', 'profile', member?.properties.user?.properties.username]\">\r\n </cts-avatar>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</app-card>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UsersCardComponent } from './users-card.component';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CardModule } from '../card/card.module';\r\nimport { AvatarModule } from '../avatar/avatar.module';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { RouterModule } from '@angular/router';\r\n/**\r\n * @title\r\n * Users card module\r\n */\r\n@NgModule({\r\n declarations: [UsersCardComponent],\r\n imports: [CommonModule, TranslateModule, MatTooltipModule, CardModule, AvatarModule , RouterModule],\r\n exports: [UsersCardComponent , RouterModule],\r\n providers: [],\r\n})\r\nexport class UsersCardModule { }\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-notification-item',\r\n styleUrls: ['./notification-item.component.scss'],\r\n templateUrl: './notification-item.component.html',\r\n host: { class: 'notification-item' },\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class NotificationItemComponent {\r\n @Input() notification;\r\n @Output() update: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(private router: Router) {}\r\n\r\n stop(event) {\r\n event.stopPropagation();\r\n }\r\n toggleRead(event) {\r\n this.update.emit({ action: 'status', notification: this.notification });\r\n }\r\n\r\n /* async showOptions(event) {\r\n event.stopPropagation();\r\n const popover = await this.popoverCtrl.create({\r\n component: NotificationOptionsComponent,\r\n cssClass: 'notification-options',\r\n event: event,\r\n showBackdrop: false,\r\n });\r\n await popover.present();\r\n const { data } = await popover.onDidDismiss();\r\n if (data && this.notification) {\r\n this.updateNotification(data);\r\n\r\n }\r\n\r\n } */\r\n updateNotification(data) {\r\n this.update.emit({ action: data, notification: this.notification });\r\n }\r\n navigateToDetais(corrId) {\r\n if (corrId) {\r\n this.router.navigate(\r\n [\r\n {\r\n outlets: { viewer: ['view', corrId] },\r\n },\r\n ],\r\n {\r\n queryParams: { location: this.router.url },\r\n }\r\n );\r\n }\r\n }\r\n}\r\n","<mat-list-item (click)=\"navigateToDetais(notification.data.correspondenceId)\" [ngClass]=\"{ unread: notification.status != 'READ' }\">\r\n <p mat-line class=\"wrap\">{{ notification?.content }}</p>\r\n <p mat-line class=\"time-ago\">{{ notification?.sendDate | timeAgo }}</p>\r\n <button\r\n class=\"mat-icon-button\"\r\n (click)=\"stop($event)\"\r\n [matMenuTriggerFor]=\"appMenu\"\r\n mat-icon-button\r\n >\r\n <mat-icon class=\"mat-24\">more_vert</mat-icon>\r\n </button>\r\n <mat-menu #appMenu=\"matMenu\">\r\n <div (click)=\"stop($event)\">\r\n <mat-list-item\r\n (click)=\"toggleRead($event)\"\r\n class=\"user-option mat-menu-item\"\r\n >\r\n <mat-icon *ngIf=\"notification.status === 'READ'\" class=\"option-icon\"\r\n >check_circle_outline</mat-icon\r\n >\r\n <mat-icon *ngIf=\"notification.status != 'READ'\" class=\"option-icon\"\r\n >check_circle</mat-icon\r\n >\r\n {{\r\n (notification.status === \"READ\"\r\n ? \"notifications.markAsUnread\"\r\n : \"notifications.markAsRead\"\r\n ) | translate\r\n }}\r\n </mat-list-item>\r\n <mat-list-item\r\n (click)=\"updateNotification('delete')\"\r\n class=\"user-option mat-menu-item\"\r\n >\r\n <mat-icon class=\"option-icon\">remove_circle</mat-icon>\r\n {{ \"notifications.delete\" | translate }}\r\n </mat-list-item>\r\n </div>\r\n </mat-menu>\r\n</mat-list-item>\r\n","import { Component } from '@angular/core';\r\n\r\n/**\r\n * Sorting Options Popovermenu\r\n */\r\n@Component({\r\n selector: 'app-notification-options',\r\n templateUrl: './notification-options.component.html',\r\n styleUrls: ['./notification-options.component.scss']\r\n})\r\nexport class NotificationOptionsComponent {\r\n constructor() {}\r\n delete() {\r\n // this.popoverCtrl.dismiss('delete');\r\n }\r\n}\r\n","<!-- <ion-list no-padding no-margin lines=\"none\">\r\n <ion-item (click)=\"delete()\">\r\n <ion-label>\r\n {{'notifications.delete' | translate}}\r\n </ion-label>\r\n </ion-item>\r\n</ion-list> -->\r\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Toast, ToastPackage, ToastrService } from 'ngx-toastr';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport {\r\n UserPreferencesService,\r\n UserPreferenceValues,\r\n} from '../../../../Core/services/user/user-preferences.service';\r\n\r\n@Component({\r\n selector: 'app-notification-toast',\r\n templateUrl: './notification-toast.component.html',\r\n styleUrls: ['./notification-toast.component.scss'],\r\n // encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class NotificationToastComponent extends Toast implements OnInit {\r\n id;\r\n lang;\r\n private onDestroy$ = new Subject<boolean>();\r\n constructor(\r\n protected toastrService: ToastrService,\r\n public toastPackage: ToastPackage,\r\n private router: Router,\r\n public userPreferenceService?: UserPreferencesService\r\n ) {\r\n super(toastrService, toastPackage);\r\n }\r\n ngOnInit(): void {\r\n this.id = this.toastPackage.toastRef.componentInstance.id;\r\n if (this.userPreferenceService) {\r\n this.userPreferenceService\r\n .select(UserPreferenceValues.Locale)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((locale) => {\r\n this.lang = locale === 'ar' ? 'rtl' : 'ltr';\r\n });\r\n }\r\n }\r\n navigateToDetais() {\r\n // this.router.navigate(\r\n // [\r\n // {\r\n // outlets: { viewer: ['view', this.id] },\r\n // },\r\n // ],\r\n // {\r\n // queryParams: { location: this.router.url },\r\n // }\r\n // );\r\n }\r\n}\r\n// <div class=\"col-span-1 cursor-pointer text-lg text-gray-300 flex justify-end\">\r\n// X\r\n// </div>\r\n","<div\r\n class=\"toast-container\"\r\n [style.display]=\"state.value === 'inactive' ? 'none' : ''\"\r\n [dir]=\"lang\"\r\n>\r\n <ng-container (click)=\"navigateToDetais()\">\r\n <div class=\"icon-container rounded-s-md\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25.667\"\r\n height=\"30\"\r\n viewBox=\"0 0 21.667 26\"\r\n >\r\n <g\r\n id=\"Group_1724\"\r\n data-name=\"Group 1724\"\r\n transform=\"translate(-1562 -49)\"\r\n >\r\n <g\r\n id=\"Group_1714\"\r\n data-name=\"Group 1714\"\r\n transform=\"translate(1562 49)\"\r\n >\r\n <path\r\n id=\"Path_6882\"\r\n data-name=\"Path 6882\"\r\n d=\"M63.661,18.322a7.256,7.256,0,0,1-2.577-5.552V9.75a7.589,7.589,0,0,0-6.5-7.5V1.083a1.083,1.083,0,1,0-2.167,0v1.17a7.589,7.589,0,0,0-6.5,7.5v3.02a7.264,7.264,0,0,1-2.587,5.561,1.9,1.9,0,0,0,1.233,3.336H62.438a1.9,1.9,0,0,0,1.223-3.344Z\"\r\n transform=\"translate(-42.667)\"\r\n fill=\"#fff\"\r\n />\r\n <path\r\n id=\"Path_6883\"\r\n data-name=\"Path 6883\"\r\n d=\"M181.6,451.25a4.069,4.069,0,0,0,3.98-3.25h-7.96A4.069,4.069,0,0,0,181.6,451.25Z\"\r\n transform=\"translate(-170.768 -425.25)\"\r\n fill=\"#fff\"\r\n />\r\n </g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div class=\"toast-content-container\">\r\n <div\r\n *ngIf=\"title\"\r\n [class]=\"options.titleClass\"\r\n [attr.aria-label]=\"title\"\r\n class=\"toast-content\"\r\n >\r\n {{ title }}\r\n </div>\r\n <div\r\n *ngIf=\"message\"\r\n role=\"alert\"\r\n aria-live=\"polite\"\r\n [class]=\"options.messageClass\"\r\n [attr.aria-label]=\"message\"\r\n class=\"message\"\r\n >\r\n {{ message }}\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div *ngIf=\"options.closeButton\" (click)=\"remove()\" class=\"remove\">\r\n <mat-icon class=\"\">close</mat-icon>\r\n </div>\r\n</div>\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { EventEmitter, Inject, Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { KeycloakService } from 'keycloak-angular';\r\nimport { from, Observable, of, ReplaySubject } from 'rxjs';\r\nimport { catchError, map, publishReplay, refCount } from 'rxjs/operators';\r\nimport * as SockJS from 'sockjs-client';\r\nimport { NuxeoService } from '../../Core/services/nuxeo/nuxeo.service';\r\nimport * as Stomp from 'webstomp-client';\r\nimport { ChartDataService } from '../dynamic-chart/services/chart-data.service';\r\n\r\n@Injectable()\r\nexport class NotificationsService {\r\n stompClient = null;\r\n subscriber = null;\r\n connection: Promise<any>;\r\n connectedPromise: any = null;\r\n listenerObserver: EventEmitter<any> = new EventEmitter();\r\n update: ReplaySubject<any> = new ReplaySubject(1);\r\n alreadyConnectedOnce = false;\r\n pageSize = 15;\r\n\r\n private subscription: Stomp.Subscription;\r\n\r\n private _notifications = [];\r\n get notifications(): any {\r\n return this._notifications;\r\n }\r\n private _notificationsCount = 0;\r\n get notificationsCount(): number {\r\n return this._notificationsCount;\r\n }\r\n base = '';\r\n profile = { id: this.nuxeoService.nuxeoClient.user.id };\r\n constructor(\r\n private http: HttpClient,\r\n public router: Router,\r\n public nuxeoService: NuxeoService,\r\n private keycloak: KeycloakService,\r\n private chartData: ChartDataService, @Inject('environment') private environment\r\n ) {\r\n if (this.profile.id) {\r\n this.getCount().subscribe(() => {\r\n this.connect();\r\n this.subscribe();\r\n });\r\n }\r\n // setInterval(() => {\r\n // this.testNotification().subscribe((res) => {\r\n // this.chartData.refreshData.emit();\r\n // });\r\n // }, 10000);\r\n }\r\n getCount() {\r\n return this.doCountNew(this.profile.id).pipe(\r\n map((data) => {\r\n this._notificationsCount = data;\r\n this.update.next();\r\n return data;\r\n })\r\n );\r\n }\r\n reset() {\r\n this._notifications = [];\r\n this._notificationsCount = 0;\r\n }\r\n\r\n fetchNotifications() {\r\n return this.getNotifications(this.profile.id, {\r\n page:\r\n this._notifications.length > 0\r\n ? Math.ceil(this._notifications.length / this.pageSize)\r\n : 0,\r\n size: this.pageSize,\r\n paged: true,\r\n sort: 'sendDate,desc',\r\n sorted: true,\r\n }).pipe(\r\n map((notifications: any) => {\r\n if (notifications.items) {\r\n this._notifications = this._notifications.concat(notifications.items);\r\n return notifications;\r\n } else {\r\n this._notifications = [];\r\n return [];\r\n }\r\n }),\r\n catchError(() => {\r\n this._notifications = [];\r\n return [];\r\n })\r\n );\r\n }\r\n resetCount() {\r\n this._notificationsCount = 0;\r\n }\r\n markAllAsRead() {\r\n this.doMarkAllAsRead(this.profile.id).subscribe(() => {\r\n this._notifications.forEach((item) => (item.status = 'READ'));\r\n });\r\n }\r\n updateStatus(notification, onOpen = false) {\r\n const bool =\r\n notification.status === 'UN_READ' ||\r\n notification.status === 'NEW' ||\r\n onOpen;\r\n if (bool) {\r\n this.doMarkAsRead(notification.id).subscribe(() => {\r\n notification.status = 'READ';\r\n this.getCount().subscribe(() => {});\r\n });\r\n } else {\r\n this.doMarkAsUnread(notification.id).subscribe(() => {\r\n notification.status = 'UN_READ';\r\n this.getCount().subscribe(() => {});\r\n });\r\n }\r\n }\r\n deleteNotification(notification) {\r\n this.doDeleteNotification(notification.id).subscribe(() => {\r\n this._notifications.filter((item, index) => {\r\n if (item.id === notification.id) {\r\n this._notifications.splice(index, 1);\r\n return;\r\n }\r\n });\r\n this.update.next();\r\n });\r\n }\r\n getNotifications(userId, queryParams = {}) {\r\n const endpoint = `${this.environment.notifications}/api/system-notifications/all/${userId}`;\r\n return this.http\r\n .get<any>(endpoint, { observe: 'response', params: queryParams })\r\n .pipe(\r\n map((resp) => ({\r\n totalCount: resp.headers.get('x-total-count'),\r\n items: resp.body.map((item) => item),\r\n })),\r\n catchError(this.handleError('getNotifications', [])),\r\n publishReplay(1),\r\n refCount()\r\n );\r\n }\r\n doCountNew(userId, queryParams = {}) {\r\n const endpoint = `${this.environment.notifications}/api/system-notifications/countNew/${userId}`;\r\n return this.http\r\n .get<any>(endpoint, { params: queryParams })\r\n .pipe(catchError(this.handleError('countNew', [])));\r\n }\r\n doResetCountNew(userId, queryParams = {}) {\r\n const endpoint = `${this.environment.notifications}/api/system-notifications/resetCount/${userId}`;\r\n return this.http\r\n .put<any>(endpoint, { params: queryParams })\r\n .pipe(catchError(this.handleError('resetCountNew', [])));\r\n }\r\n doCountUnread(userId, queryParams = {}) {\r\n const endpoint = `${this.environment.notifications}/api/system-notifications/countUnRead/${userId}`;\r\n return this.http\r\n .get<any>(endpoint, { params: queryParams })\r\n .pipe(catchError(this.handleError('countUnread', [])));\r\n }\r\n doMarkAllAsRead(userId, queryParams = {}) {\r\n const endpoint = `${this.environment.notifications}/api/system-notifications/markAllAsRead/${userId}`;\r\n return this.http\r\n .put<any>(endpoint, { params: queryParams })\r\n .pipe(catchError(this.handleError('markAllAsRead', [])));\r\n }\r\n doMarkAsRead(notificationId, queryParams = {}) {\r\n const endpoint = `${this.environment.notifications}/api/system-notifications/markAsRead/${notificationId}`;\r\n return this.http\r\n .put<any>(endpoint, { params: queryParams })\r\n .pipe(catchError(this.handleError('markAsRead', [])));\r\n }\r\n doMarkAsUnread(notificationId, queryParams = {}) {\r\n const endpoint = `${this.environment.notifications}/api/system-notifications/markAsUnRead/${notificationId}`;\r\n return this.http\r\n .put<any>(endpoint, { params: queryParams })\r\n .pipe(catchError(this.handleError('markAsUnread', [])));\r\n }\r\n doDeleteNotification(notificationId, queryParams = {}) {\r\n const endpoint = `${this.environment.notifications}/api/system-notifications/${notificationId}`;\r\n return this.http\r\n .delete<any>(endpoint, { params: queryParams })\r\n .pipe(catchError(this.handleError('deleteNotification', [])));\r\n }\r\n private handleError<T>(operation = 'operation', result?: T) {\r\n return (error: any): Observable<T> => {\r\n // TODO: send the error to remote logging infrastructure\r\n console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n console.log(`${operation} failed: ${error.message}`);\r\n\r\n // Let the app keep running by returning an empty result.\r\n result['status'] = error.status;\r\n if (error.error.hasOwnProperty('message')) {\r\n result['message'] = error.error.message;\r\n result['type'] = error.error.type;\r\n }\r\n\r\n return of(result as T);\r\n };\r\n }\r\n async connect() {\r\n if (this.connectedPromise === null) {\r\n this.connection = this.createConnection();\r\n }\r\n // building absolute path so that websocket doesn't fail when deploying with a context path\r\n let url;\r\n url = `${this.environment.notifications}/websocket/ekhaa`; //url\r\n const socket = new SockJS(url);\r\n this.stompClient = Stomp.over(socket);\r\n const headers = {\r\n // Upgrade: 'websocket',\r\n // Connection: 'Upgrade',\r\n token: `${await this.keycloak.getToken()}`,\r\n };\r\n if (!this.alreadyConnectedOnce) {\r\n this.stompClient.connect(headers, () => {\r\n this.alreadyConnectedOnce = true;\r\n this.connectedPromise('success');\r\n this.connectedPromise = null;\r\n });\r\n }\r\n }\r\n\r\n disconnect() {\r\n if (this.stompClient !== null && this.alreadyConnectedOnce) {\r\n this.stompClient.disconnect();\r\n this.stompClient = null;\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n this.subscription = null;\r\n }\r\n this.alreadyConnectedOnce = false;\r\n } else if (this.connectedPromise) {\r\n this.connection.then(() => {\r\n this.disconnect();\r\n });\r\n }\r\n }\r\n\r\n subscribe() {\r\n if (this.connection) {\r\n this.connection.then(() => {\r\n if (this.stompClient) {\r\n this.subscriber = this.stompClient.subscribe(\r\n '/user/topic/notification',\r\n (data) => {\r\n const notification = JSON.parse(data.body);\r\n this._notifications.unshift(notification);\r\n this.getCount().subscribe(() => {});\r\n this.listenerObserver.emit(notification);\r\n }\r\n );\r\n }\r\n });\r\n }\r\n }\r\n\r\n unsubscribe() {\r\n if (this.subscriber !== null) {\r\n this.subscriber.unsubscribe();\r\n }\r\n this.disconnect();\r\n }\r\n\r\n private createConnection(): Promise<any> {\r\n return new Promise((resolve, reject) => (this.connectedPromise = resolve));\r\n }\r\n\r\n testNotification(): Observable<any> {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .operation('System.Notification', {\r\n url: `${this.environment.nuxeo}${this.environment.customAutomation}`,\r\n })\r\n .params({\r\n applicationKey: 'ctsn',\r\n notificationKey: 'NotificationWhenOutgoingCorrespondneceApprove',\r\n apiData:\r\n '{\"id\": \"a7ed629e-c8ea-4e84-8b83-329009515878\",\"schema\": \"Correspondence\"}',\r\n data: '{}',\r\n groupsId: [],\r\n usersId: ['cts_sec'],\r\n })\r\n .input('a7ed629e-c8ea-4e84-8b83-329009515878')\r\n .execute()\r\n ).pipe(\r\n catchError((err) => {\r\n console.log(err);\r\n throw err;\r\n })\r\n );\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, OnDestroy } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { NotificationsService } from '../../notifications.service';\r\n\r\n/**\r\n * Notifications Modal Component\r\n */\r\n@Component({\r\n selector: 'app-notifications-list',\r\n templateUrl: './notifications-list.component.html',\r\n styleUrls: ['./notifications-list.component.scss'],\r\n host: { class: 'notification-list' }\r\n})\r\nexport class NotificationsListComponent implements OnDestroy {\r\n get notifications() {\r\n return this.notificationsService.notifications;\r\n }\r\n _itemHeight = 79;\r\n get itemHeight(): number {\r\n return this._itemHeight;\r\n }\r\n set itemHeight(value: number) {\r\n this._itemHeight = value;\r\n }\r\n _divider = true;\r\n get divider(): boolean {\r\n return this._divider;\r\n }\r\n set divider(value: boolean) {\r\n this._divider = value;\r\n }\r\n _all = true;\r\n get all(): boolean {\r\n return this._all;\r\n }\r\n set all(value: boolean) {\r\n this._all = value;\r\n }\r\n _title = 'notifications.title';\r\n get title(): string {\r\n return this._title;\r\n }\r\n set title(value: string) {\r\n this._title = value;\r\n }\r\n throttle = 300;\r\n scrollDistance = 7;\r\n scrollUpDistance = 2;\r\n loading = false;\r\n hasMore = true;\r\n constructor(\r\n public notificationsService: NotificationsService,\r\n private ref: ChangeDetectorRef,\r\n public datePipe: DatePipe\r\n ) {}\r\n\r\n markAllAsRead() {\r\n this.notificationsService.markAllAsRead();\r\n }\r\n \r\n openNotification(notification) {\r\n if (notification.status === 'UN_READ' || notification.status === 'NEW') {\r\n this.notificationsService.updateStatus(notification, true);\r\n }\r\n // do something when notification clicked\r\n }\r\n onUpdate(data) {\r\n if (data.notification) {\r\n switch (data.action) {\r\n case 'delete':\r\n this.notificationsService.deleteNotification(data.notification);\r\n break;\r\n case 'status':\r\n this.notificationsService.updateStatus(data.notification);\r\n break;\r\n }\r\n }\r\n }\r\n trackBy(index, item) {\r\n return item.id;\r\n }\r\n handleOpen(item) {\r\n // this.modalController.dismiss();\r\n this.notificationsService.updateStatus(item, true);\r\n }\r\n\r\n compareDate = (item, itemIndex, items) => {\r\n if (!this.divider) {\r\n return null;\r\n }\r\n const today = new Date();\r\n const itemDate = new Date(item.sendDate);\r\n const isToday =\r\n itemDate.getDate() === today.getDate() &&\r\n itemDate.getMonth() === today.getMonth() &&\r\n itemDate.getFullYear() === today.getFullYear();\r\n const prevItem = items[itemIndex - 1];\r\n let isPrevToday = 0;\r\n if (prevItem) {\r\n const NextItemDate = new Date(prevItem.sendDate);\r\n isPrevToday =\r\n NextItemDate.getDate() === today.getDate() &&\r\n NextItemDate.getMonth() === today.getMonth() &&\r\n NextItemDate.getFullYear() === today.getFullYear()\r\n ? 2\r\n : 1;\r\n }\r\n if (!isToday && (isPrevToday === 0 || isPrevToday === 2)) {\r\n return 'notifications.earlier';\r\n }\r\n if (isToday && (isPrevToday === 0 || isPrevToday === 1)) {\r\n return 'notifications.new';\r\n }\r\n return null;\r\n };\r\n\r\n getItemHeight = () => {\r\n return this.itemHeight;\r\n };\r\n\r\n goToDetails(notification) {}\r\n\r\n onScrollDown() {\r\n if (this.hasMore) {\r\n this.fetchMore();\r\n }\r\n }\r\n fetchMore() {\r\n this.loading = true;\r\n this.notificationsService.fetchNotifications().subscribe(data => {\r\n this.loading = false;\r\n if (\r\n data['items'].length === 0 ||\r\n data['items'].length < this.notificationsService.pageSize\r\n ) {\r\n this.hasMore = false;\r\n }\r\n this.ref.markForCheck();\r\n });\r\n }\r\n ngOnDestroy() {\r\n this.notificationsService.reset();\r\n }\r\n close() {\r\n // this.modalController.dismiss();\r\n }\r\n}\r\n","<div class=\"toolbar\">\r\n <div class=\"title\">\r\n <div>{{ \"notifications.notifications\" | translate }}</div>\r\n </div>\r\n <div class=\"flex justify-end\">\r\n <button\r\n mat-button\r\n (click)=\"markAllAsRead()\"\r\n size=\"small\"\r\n fill=\"none\"\r\n class=\"markAllAsRead-btn\"\r\n >\r\n {{ \"notifications.markAllAsRead\" | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n<!-- [matTooltip]=\"'notifications.markAllAsRead' | translate\"\r\n [matTooltipPosition]=\"'before'\" -->\r\n<div *ngIf=\"!notifications?.length\" class=\"no-notifications\">\r\n <p>\r\n {{ \"notifications.noNotifications\" | translate }}\r\n </p>\r\n</div>\r\n<div\r\n infiniteScroll\r\n [scrollWindow]=\"false\"\r\n [infiniteScrollDistance]=\"scrollDistance\"\r\n [infiniteScrollThrottle]=\"throttle\"\r\n (scrolled)=\"onScrollDown()\"\r\n class=\"notifications-container scroll\"\r\n>\r\n <mat-list class=\"\">\r\n <ng-container\r\n *ngFor=\"\r\n let notification of notifications;\r\n let i = index;\r\n trackBy: trackBy\r\n \"\r\n >\r\n <!-- <mat-divider class=\"marginize\"></mat-divider> -->\r\n <app-notification-item\r\n (click)=\"openNotification(notification)\"\r\n (update)=\"onUpdate($event)\"\r\n [notification]=\"notification\"\r\n ></app-notification-item>\r\n </ng-container>\r\n <div\r\n *ngIf=\"loading\"\r\n style=\"display: grid; place-items: center; margin-top: 10px\"\r\n >\r\n <mat-spinner [diameter]=\"48\" style=\"margin: 0 auto\"></mat-spinner>\r\n </div>\r\n </mat-list>\r\n</div>\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n OnDestroy,\r\n OnInit,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ActiveToast, ToastrService } from 'ngx-toastr';\r\nimport { take } from 'rxjs/internal/operators/take';\r\nimport { TimeAgoPipe } from '../../../../pipes/time-ago.pipe';\r\nimport { NotificationsService } from '../../notifications.service';\r\nimport { NotificationToastComponent } from '../notification-toast/notification-toast.component';\r\n\r\n@Component({\r\n selector: 'app-notifications-button',\r\n templateUrl: './notifications-button.component.html',\r\n styleUrls: ['./notifications-button.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class NotificationsButtonComponent implements OnInit, OnDestroy {\r\n get notificationsCount() {\r\n return this.notificationsService.notificationsCount;\r\n }\r\n\r\n subscription;\r\n updater;\r\n constructor(\r\n public notificationsService: NotificationsService,\r\n public translate: TranslateService,\r\n public toastr: ToastrService,\r\n public TimeAgo: TimeAgoPipe,\r\n public router: Router,\r\n private ref: ChangeDetectorRef\r\n ) {}\r\n /*\r\n async openNotifications(event) {\r\n const dir = this.translate.instant('dir');\r\n const notificationsModal = await this.modalController.create({\r\n cssClass: 'side-modal notifications',\r\n enterAnimation: dir === 'rtl' ? slideInRtl : slideIn,\r\n leaveAnimation: dir === 'rtl' ? slideOutRtl : slideOut,\r\n component: NotificationsModalComponent,\r\n showBackdrop: false\r\n });\r\n return await notificationsModal.present().then(() => {\r\n this.notificationsService.resetCount();\r\n\r\n });\r\n }\r\n */\r\n getNotifications() {\r\n this.notificationsService.fetchNotifications().subscribe(() => {\r\n this.notificationsService.resetCount();\r\n });\r\n }\r\n ngOnInit() {\r\n this.subscription = this.notificationsService.listenerObserver.subscribe(\r\n (activity) => {\r\n this.showToastr(activity)\r\n .onTap.pipe(take(1))\r\n .subscribe(() => {\r\n this.notificationsService.updateStatus(activity, true);\r\n if (activity.data?.correspondenceId) {\r\n this.router.navigate(\r\n [\r\n {\r\n outlets: {\r\n viewer: ['view', activity.data.correspondenceId],\r\n },\r\n },\r\n ],\r\n {\r\n queryParams: { location: this.router.url },\r\n }\r\n );\r\n }\r\n });\r\n this.ref.markForCheck();\r\n }\r\n );\r\n\r\n this.updater = this.notificationsService.update.subscribe((data) => {\r\n this.ref.detectChanges();\r\n });\r\n // setTimeout(() => {\r\n // this.showToastr({\r\n // sendDate:\"111\",\r\n // content:\"test\",\r\n // data:{\r\n // correspondenceId:\"f9c36fe1-7054-4f81-a89b-096ad24a03b5\"\r\n // }\r\n // }).onTap.pipe(take(1)).subscribe(() => {\r\n // // this.notificationsService.updateStatus(activity, true);\r\n // console.log(\"here\")\r\n // })\r\n // }, 1000);\r\n }\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n this.updater.unsubscribe();\r\n this.notificationsService.unsubscribe();\r\n }\r\n // test() {\r\n // this.toastr.show(`dsssdsds`, 'here is the content of the notification ', {\r\n // toastComponent: NotificationToastComponent,\r\n // closeButton: true,\r\n // // extendedTimeOut: 0,\r\n // timeOut: 10000,\r\n // // tapToDismiss: false,\r\n // enableHtml: true,\r\n // positionClass:\r\n // this.translate.instant('dir') === 'rtl'\r\n // ? 'toast-bottom-left'\r\n // : 'toast-bottom-right',\r\n // toastClass: 'notification-toast',\r\n // });\r\n // }\r\n\r\n showToastr(activity): ActiveToast<any> {\r\n const activeToast = this.toastr.show(\r\n `${this.TimeAgo.transform(activity.sendDate)}`,\r\n activity.content,\r\n {\r\n toastComponent: NotificationToastComponent,\r\n closeButton: true,\r\n timeOut: 10000,\r\n enableHtml: true,\r\n positionClass:\r\n this.translate.instant('dir') === 'rtl'\r\n ? 'toast-bottom-left'\r\n : 'toast-bottom-right',\r\n toastClass: 'notification-toast',\r\n }\r\n );\r\n activeToast.toastRef.componentInstance.id = activity.data.correspondenceId;\r\n\r\n return activeToast;\r\n }\r\n}\r\n","<div [matMenuTriggerFor]=\"langMenu\" class=\"notification\" (click)=\"getNotifications()\" class=\"search-wrapper\">\r\n <span matBadgeSize=\"small\" matBadge=\"{{ notificationsCount }}\" matBadgeColor=\"warn\" matbadgeposition=\"before\"\r\n class=\"bi bi-bell bell\"></span>\r\n</div>\r\n<mat-menu class=\"mat-menu-panel myMenu notification-list\" #langMenu=\"matMenu\">\r\n <app-notifications-list></app-notifications-list>\r\n</mat-menu>\r\n","import { CommonModule, DatePipe } from '@angular/common';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\r\nimport { NotificationItemComponent } from './components/notification-item/notification-item.component';\r\nimport { NotificationOptionsComponent } from './components/notification-options/notification-options.component';\r\nimport { NotificationsButtonComponent } from './components/notifications-button/notifications-button.component';\r\nimport { NotificationsListComponent } from './components/notifications-list/notifications-list.component';\r\nimport { NotificationsService } from './notifications.service';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport {\r\n MatProgressSpinner,\r\n MatProgressSpinnerModule,\r\n} from '@angular/material/progress-spinner';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { NotificationToastComponent } from './components/notification-toast/notification-toast.component';\r\nimport { PipesModule } from '../../pipes/pipes.module';\r\n\r\n/** @ignore */\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n InfiniteScrollModule,\r\n MatListModule,\r\n PipesModule,\r\n MatMenuModule,\r\n MatIconModule,\r\n TranslateModule,\r\n MatProgressSpinnerModule,\r\n MatTooltipModule,\r\n InfiniteScrollModule,\r\n MatBadgeModule,\r\n TranslateModule,\r\n MatToolbarModule\r\n ],\r\n declarations: [\r\n NotificationsListComponent,\r\n NotificationsButtonComponent,\r\n NotificationItemComponent,\r\n NotificationOptionsComponent,\r\n NotificationToastComponent,\r\n ],\r\n exports: [\r\n NotificationsListComponent,\r\n NotificationsButtonComponent,\r\n NotificationItemComponent,\r\n NotificationOptionsComponent,\r\n ],\r\n providers: [\r\n DatePipe,\r\n NotificationsService,\r\n ],\r\n entryComponents: [\r\n NotificationsListComponent,\r\n NotificationsButtonComponent,\r\n NotificationItemComponent,\r\n NotificationOptionsComponent,\r\n ],\r\n})\r\nexport class NotificationsModule {}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\n\r\n/**\r\n * A component for filtering that can be generated dynamically by providing inputs object,\r\n * which will generate a form for filtering and emit the form value on filtering.\r\n *\r\n * @title\r\n * Filter Component\r\n *\r\n * @example\r\n * <cts-filter [fields]=\"filterFields\" (onFiltering)=\"filterData($event)\"></cts-filter>\r\n */\r\n@Component({\r\n selector: 'cts-filter',\r\n templateUrl: './filter.component.html',\r\n styleUrls: ['./filter.component.scss']\r\n})\r\nexport class FilterComponent implements OnInit {\r\n /** Fields array */\r\n @Input() fields = [];\r\n /** Filter title */\r\n @Input() filterTitle = 'Filter';\r\n /** Emits values on filter button click */\r\n @Output() onFiltering = new EventEmitter();\r\n filterForm: FormGroup;\r\n constructor(private formBuilder: FormBuilder) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initiateForm();\r\n let data = JSON.parse(sessionStorage.getItem('dataSource'))\r\n this.filterForm.patchValue({\r\n subject: data?.Correspondence_subject,\r\n externalNumber: data?.Correspondence_externalCorrespondenceNumber,\r\n from: data?.Correspondence_from,\r\n refrenceNumber: data?.Correspondence_referenceNumber,\r\n secrecyLevel: data?.Correspondence_secrecyLevel,\r\n to: data?.Correspondence_to,\r\n toDate: data?.dublincore_created_max,\r\n fromDate: data?.dublincore_created_min,\r\n state: data?.system_currentLifeCycleState\r\n });\r\n }\r\n\r\n initiateForm() {\r\n let controls = {};\r\n this.fields.map(field => {\r\n controls[field.formControlName] = this.formBuilder.control('')\r\n })\r\n this.filterForm = this.formBuilder.group(controls);\r\n }\r\n\r\n constructSubmission(param: boolean = true) {\r\n let submisionObject = {};\r\n this.fields.map(field => {\r\n if (field.type === 'rang') {\r\n submisionObject[field.minQueryParamName] = this.filterForm.value[field.formControlName] ? this.filterForm.value[field.formControlName].from : null;\r\n submisionObject[field.maxQueryParamName] = this.filterForm.value[field.formControlName] ? this.filterForm.value[field.formControlName].to : null;\r\n } else {\r\n submisionObject[field.queryParamName] = this.filterForm.value[field.formControlName] ? this.filterForm.value[field.formControlName] : '';\r\n }\r\n });\r\n if (param)\r\n sessionStorage.setItem('dataSource', JSON.stringify(submisionObject));\r\n this.onFiltering.emit(submisionObject);\r\n console.log(submisionObject);\r\n }\r\n\r\n filter() {\r\n this.constructSubmission();\r\n }\r\n\r\n reset() {\r\n this.filterForm.reset();\r\n sessionStorage.removeItem('dataSource');\r\n this.constructSubmission(false);\r\n }\r\n}\r\n\r\n","<div class=\"filter-wrapper\">\r\n <div class=\"filter-title\">\r\n <!-- {{filterTitle | translate}} -->\r\n </div>\r\n <div class=\"iner-filter-wrapper\" *ngIf=\"filterForm\">\r\n <form [formGroup]=\"filterForm\">\r\n <div class=\"single-control-wrapper\" *ngFor=\"let field of fields\">\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'text'\">\r\n <app-dynamic-form-textitem\r\n [label]=\"field.label\"\r\n [formControlName]=\"field.formControlName\"\r\n placeholder=\"{{ 'CREATE.PLACE_HOLDER' | translate }} {{\r\n field.placeholder | translate\r\n }}\"\r\n >\r\n </app-dynamic-form-textitem>\r\n </div>\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'dropdown'\">\r\n <app-dynamic-form-vocabulary-item\r\n [shwoAllValues]=\"false\"\r\n [label]=\"field.label\"\r\n [bindLabel]=\"field.bindLabel\"\r\n [bindValue]=\"field.bindValue\"\r\n [placeholder]=\"field.placeholder | translate\"\r\n [multiple]=\"field.multiple\"\r\n [searchable]=\"field.searchable\"\r\n [closeOnSelect]=\"field.closeOnSelect\"\r\n [hideSelectedItems]=\"field.hideSelectedItems\"\r\n [vocabularyType]=\"field.vocabularyType\"\r\n [formControlName]=\"field.formControlName\"\r\n >\r\n </app-dynamic-form-vocabulary-item>\r\n </div>\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'rang'\">\r\n <cts-dynamic-form-hijri-dateitem [label]=\"field.label\" [formControlName]=\"field.formControlName\"[range]=\"true\" [vertical]=\"false\" >\r\n </cts-dynamic-form-hijri-dateitem>\r\n </div>\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'department'\">\r\n <app-dynamic-form-department\r\n [label]=\"field.label\"\r\n placeholder=\"{{ 'CREATE.PLACE_HOLDER' | translate }} {{\r\n field.placeholder | translate\r\n }}\"\r\n [formControlName]=\"field.formControlName\"\r\n >\r\n </app-dynamic-form-department>\r\n </div>\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'toggle'\">\r\n <cts-dynamic-form-slide-toggleitem\r\n [label]=\"field.label\"\r\n [formControlName]=\"field.formControlName\"\r\n ></cts-dynamic-form-slide-toggleitem>\r\n </div>\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'date'\">\r\n <cts-dynamic-form-hijri-dateitem\r\n [formControlName]=\"field.formControlName\"\r\n [label]=\"field.label\"\r\n >\r\n </cts-dynamic-form-hijri-dateitem>\r\n </div>\r\n \r\n\r\n </div>\r\n\r\n </form>\r\n \r\n </div>\r\n <div class=\"form-actions\">\r\n <button class=\"my-button mx-2\" type=\"button\" (click)=\"filter()\"> {{'FILTER' | translate}}</button>\r\n <button class=\"my-button reset mx-2\" type=\"button\" (click)=\"reset()\"> {{'reset' | translate}}</button>\r\n </div>\r\n</div>\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FilterComponent } from './filter/filter.component';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { DynamicFormModule } from '../dynamic-form/dynamic-form.module';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\n/**\r\n * @title\r\n * Filter Module\r\n */\r\n@NgModule({\r\n declarations: [\r\n FilterComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n TranslateModule ,\r\n DynamicFormModule,\r\n FormsModule,\r\n ReactiveFormsModule\r\n ],\r\n exports:[\r\n FilterComponent\r\n ]\r\n})\r\nexport class FilterModule { }\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n/**\r\n * @ignore\r\n */\r\n@Component({\r\n selector: 'app-comment-item',\r\n templateUrl: './comment-item.component.html',\r\n styleUrls: ['./comment-item.component.scss']\r\n})\r\nexport class CommentItemComponent implements OnInit {\r\n @Input()\r\n comment;\r\n @Input()\r\n loaderType = 'scroll';\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n console.log(\"comment comment\" , this.comment)\r\n }\r\n}\r\n","<div class=\"comment-item\">\r\n <app-user-card [user]=\"comment.Commenter\" [diameter]=\"12\">\r\n <div class=\"lineOne\">\r\n {{ comment.Commenter.properties.firstName }}\r\n {{ comment.Commenter.properties.lastName }}\r\n </div>\r\n <div class=\"lineOnePart2\">\r\n <span class=\"date\" matTooltip='{{ comment?.creationDate | localizedDate:\r\n \"fullDate\"}}' matTooltipClass=\"tdf-tooltip\" TooltipPosition='below'>\r\n <span class=\"px-1\">|</span>{{ comment?.creationDate | timeAgo }}</span>\r\n </div>\r\n <div class=\"lineTwo\">\r\n <app-read-more class=\"comment-text\" [text]=\"comment?.text\" [wordCount]=\"loaderType === 'scroll' ? 20 : 60\">\r\n </app-read-more>\r\n </div>\r\n </app-user-card>\r\n</div>\r\n","export class CommentConstants {\r\n public static pageProvider = {\r\n comments: {\r\n name: 'PP_Comments', headers: {\r\n 'X-NXproperties': '*',\r\n 'X-NXenrichers-document': 'dc:contributors',\r\n 'X-NXRepository': 'default'\r\n }\r\n }\r\n\r\n };\r\n public static operations = {};\r\n public static fields = {\r\n ancestorIds: 'comment:ancestorIds',\r\n author: 'comment:author',\r\n creationDate: 'comment:creationDate',\r\n modificationDate: 'comment:modificationDate',\r\n parentId: 'comment:parentId',\r\n text: 'comment:text',\r\n contributors: 'dc:contributors',\r\n created: 'dc:created',\r\n creator: 'dc:creator',\r\n description: 'dc:description'\r\n };\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { from, Observable } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { AdapterService } from '../../../Core/adapters/adapter.service';\r\nimport { NuxeoService } from '../../../Core/services/nuxeo/nuxeo.service';\r\nimport { CommentConstants } from '../constants/comment';\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CommentApiService {\r\n constructor(private nuxeoService: NuxeoService, private commentAdapter: AdapterService , @Inject('environment') private environment) { }\r\n\r\n getComments(parentId, params = {}): Observable<any> {\r\n\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .request(`${this.environment.commentsApi}/pp/${CommentConstants.pageProvider.comments.name}`)\r\n .queryParams({\r\n queryParams: parentId,\r\n ...params\r\n })\r\n .get({\r\n headers: CommentConstants.pageProvider.comments.headers,\r\n })\r\n ).pipe(\r\n map((data: any) => {\r\n // data.entries.map((item) => this.commentAdapter.adaptIn(item));\r\n return data;\r\n }),\r\n catchError((err) => {\r\n throw err;\r\n })\r\n );\r\n\r\n\r\n }\r\n createComment(comment, id): Observable<any> {\r\n return from(\r\n this.nuxeoService.nuxeoClient\r\n .request(`id/${id}/@comment`)\r\n .queryParams({ properties: '*' })\r\n .post({\r\n body: { 'entity-type': 'comment', ...comment },\r\n })\r\n ).pipe(\r\n catchError((err) => {\r\n throw err;\r\n })\r\n );\r\n }\r\n}\r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { browser } from 'protractor';\r\nimport { CommentApiService } from '../../services/comment-api.service';\r\n/**\r\n * @ignore\r\n */\r\n@Component({\r\n selector: 'app-comments-list',\r\n templateUrl: './comments-list.component.html',\r\n styleUrls: ['./comments-list.component.scss'],\r\n})\r\nexport class CommentsListComponent implements OnInit {\r\n @Input()\r\n entityId;\r\n @Input()\r\n pageSize = 4;\r\n @Input()\r\n loaderType = 'scroll';\r\n comments = [];\r\n throttle = 0;\r\n distance = 2;\r\n p = 0;\r\n\r\n public totalRecords;\r\n fetching = false;\r\n infiniteScrollDisabled = false;\r\n @ViewChild('scrollDiv') scrollDiv;\r\n constructor(\r\n private commentApiService: CommentApiService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.getComments(this.p);\r\n }\r\n\r\n getComments = (page, reset = false) => {\r\n this.fetching = !reset;\r\n if (reset) {\r\n this.scrollDiv.nativeElement.scroll(0, 0);\r\n }\r\n this.commentApiService.getComments(this.entityId, {\r\n currentPageIndex: page,\r\n pageSize: this.pageSize\r\n }).subscribe((res) => {\r\n console.log('comment', res)\r\n this.fetching = false;\r\n this.totalRecords = res.resultsCount;\r\n this.comments = reset ? res.entries : this.comments.concat(res.entries);\r\n this.infiniteScrollDisabled = !res.isNextPageAvailable;\r\n });\r\n }\r\n onScroll(event): void {\r\n this.getComments(++this.p);\r\n }\r\n}\r\n","<div\r\n class=\"scroll-div overflow-auto dark-scroll\"\r\n #scrollDiv\r\n infinite-scroll\r\n [scrollWindow]=\"false\"\r\n [infiniteScrollDistance]=\"distance\"\r\n [infiniteScrollDisabled]=\"infiniteScrollDisabled\"\r\n [infiniteScrollThrottle]=\"throttle\"\r\n (scrolled)=\"onScroll($event)\"\r\n>\r\n <app-comment-item\r\n [loaderType]=\"loaderType\"\r\n class=\"mb-2\"\r\n *ngFor=\"let comment of comments\"\r\n [comment]=\"comment\"\r\n >\r\n </app-comment-item>\r\n <div *ngIf=\"fetching && loaderType === 'scroll'\">\r\n <mat-spinner [diameter]=\"30\"></mat-spinner>\r\n </div>\r\n <div\r\n class=\"button-wrapper\"\r\n *ngIf=\"!infiniteScrollDisabled && loaderType === 'button'\"\r\n >\r\n <cts-button\r\n [theme]=\"'outline-dark'\"\r\n [size]=\"'regular'\"\r\n (onClick)=\"onScroll($event)\"\r\n [loading]=\"fetching\"\r\n >\r\n {{ \"comment.loadMore\" | translate }}\r\n </cts-button>\r\n </div>\r\n</div>\r\n\r\n<div\r\n *ngIf=\"comments.length === 0 && !fetching\"\r\n class=\"No-Items flex justify-center\"\r\n>\r\n <cts-no-data [message]=\"'comment.nocomment'\"></cts-no-data>\r\n</div>\r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { browser } from 'protractor';\r\nimport { NuxeoService } from '../../../../Core/services/nuxeo/nuxeo.service';\r\nimport { CommentApiService } from '../../services/comment-api.service';\r\nimport { CommentsListComponent } from '../comments-list/comments-list.component';\r\n\r\n/**\r\n * A component to display and add comments on a nuxeo document\r\n *\r\n * ![Screenshot-1](../screenshots/comments.png)\r\n * @title\r\n * Comments dashlet\r\n * @example\r\n *\r\n * <app-comments-dashlet\r\n * [row]=\"false\"\r\n * [entityId]=\"file.uid\"\r\n * [showaddcomment]=\"true\"\r\n * ></app-comments-dashlet>\r\n */\r\n@Component({\r\n selector: 'app-comments-dashlet',\r\n templateUrl: './comments-dashlet.component.html',\r\n styleUrls: ['./comments-dashlet.component.scss'],\r\n})\r\nexport class CommentsDashletComponent implements OnInit {\r\n /** nuxeo document ID */\r\n @Input()\r\n entityId;\r\n /** toggle view mode row / column */\r\n /** Correspondance */\r\n @Input()\r\n correspondence;\r\n @Input()\r\n row?= true;\r\n /** disable/enable add comment section */\r\n @Input()\r\n showaddcomment?= true;\r\n comment;\r\n comments = [];\r\n throttle = 0;\r\n distance = 2;\r\n saving = false;\r\n totalRecords;\r\n @ViewChild(CommentsListComponent, { static: false })\r\n commentsList: CommentsListComponent;\r\n constructor(\r\n private translateService: TranslateService,\r\n private commentApiService: CommentApiService,\r\n public nuxeoService: NuxeoService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n\r\n\r\n onPost() {\r\n this.saving = true;\r\n let data = {\r\n author: this.nuxeoService.nuxeoClient.user.id,\r\n text: this.comment,\r\n };\r\n this.commentApiService.createComment(data, this.entityId).subscribe(\r\n (res) => {\r\n this.comment = '';\r\n this.saving = false;\r\n this.commentsList.p = 0;\r\n this.commentsList.getComments(0, true);\r\n },\r\n (error) => {\r\n this.saving = false;\r\n }\r\n );\r\n }\r\n}\r\n","<div class=\"comments-container\">\r\n <div class=\"comments-title\">\r\n {{ \"comment.comment\" | translate }} ({{ commentsList?.totalRecords }})\r\n </div>\r\n <div class=\"body\">\r\n <div class=\"comments-list-container\">\r\n <div *ngIf=\"showaddcomment\">\r\n <div class=\"comment-box\" *permission=\"{\r\n name: 'comments',\r\n entity: correspondence , user: nuxeoService.nuxeoClient.user\r\n }\">\r\n <div class=\"comment-input\">\r\n <textarea\r\n class=\"comment-area\"\r\n name=\"description\"\r\n id=\"description\"\r\n type=\"text\"\r\n rows=\"3\"\r\n required\r\n matTextareaAutosize\r\n matAutosizeMinRows=\"5\"\r\n matAutosizeMaxRows=\"10\"\r\n [(ngModel)]=\"comment\"\r\n [placeholder]=\"'comment.placeHolder' | translate\"\r\n #commentText=\"ngModel\"\r\n ></textarea>\r\n </div>\r\n <div class=\"add-container\">\r\n <div class=\"button-wrapper\">\r\n <cts-button\r\n [loading]=\"saving\"\r\n [theme]=\"'green'\"\r\n [size]=\"'regular'\"\r\n (click)=\"onPost()\"\r\n >\r\n {{ \"comment.add\" | translate }}\r\n </cts-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"comment-list\"\r\n [ngClass]=\"{ 'fix-height col-6': row, 'col-12': !row }\"\r\n >\r\n <app-comments-list\r\n [loaderType]=\"row ? 'scroll' : 'button'\"\r\n [pageSize]=\"row ? 4 : 9\"\r\n [entityId]=\"entityId\"\r\n >\r\n </app-comments-list>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { RouterModule } from '@angular/router';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\r\nimport { DirectiveModule } from '../../directive/directive.module';\r\nimport { PipesModule } from '../../pipes/pipes.module';\r\nimport { LibrarySharedModule } from '../../shared/libraryShared.module';\r\nimport { CardModule } from '../card/card.module';\r\nimport { CommentItemComponent } from './components/comment-item/comment-item.component';\r\nimport { CommentsDashletComponent } from './components/comments-dashlet/comments-dashlet.component';\r\nimport { CommentsListComponent } from './components/comments-list/comments-list.component';\r\n\r\n/**\r\n * @title\r\n * Comments Module\r\n * \r\n */\r\n@NgModule({\r\n declarations: [\r\n CommentsDashletComponent,\r\n CommentsListComponent,\r\n CommentItemComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n LibrarySharedModule,\r\n InfiniteScrollModule,\r\n FormsModule,\r\n CardModule,\r\n PipesModule,\r\n TranslateModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n MatTooltipModule,\r\n DirectiveModule\r\n ],\r\n exports: [CommentsDashletComponent ],\r\n providers: [],\r\n})\r\nexport class CommentsModule {}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NuxeoService } from '../../../Core/services/nuxeo/nuxeo.service';\r\n\r\n@Component({\r\n selector: 'cts-create-entity',\r\n templateUrl: './create-entity.component.html',\r\n styleUrls: ['./create-entity.component.scss']\r\n})\r\nexport class CreateEntityComponent implements OnInit {\r\n @Input() createActions: Array<any> = [\r\n {\r\n title: 'CREATE.INCOMING',\r\n link: 'create/create-incoming',\r\n iconName: 'bi bi-box-arrow-down',\r\n permission : \"entityCreateIncoming\"\r\n },\r\n {\r\n title: 'CREATE.OUTGOING',\r\n link: 'create/create-outgoing',\r\n iconName: 'bi bi-box-arrow-up',\r\n permission : \"entityCreateOutgoing\"\r\n },\r\n {\r\n title: 'MEMOS.ADD_MEMO',\r\n link: 'memos/create-memo',\r\n iconName: 'bi bi-folder2',\r\n permission : \"entityCreateMemo\"\r\n } \r\n ];\r\n openMenu = false;\r\n constructor(private router: Router , public nuxeoService: NuxeoService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ToggleMenu(){\r\n this.openMenu = !this.openMenu;\r\n }\r\n\r\n actionCleciked(action){\r\n this.openMenu = false;\r\n this.router.navigate([action.link])\r\n }\r\n\r\n closeSideMenu(event){\r\n if(event.id !== \"trigger\") this.openMenu = false;\r\n }\r\n\r\n}\r\n","<div class=\"entity-iner-wrapper\" SetRtl (clickOutside)=\"closeSideMenu($event)\">\r\n\r\n <div class=\"entity-types\" [ngClass]=\"{'hide-menu': openMenu === false}\">\r\n <div *ngFor=\"let action of createActions\" (click)=\"actionCleciked(action)\">\r\n <div class=\"single-entity\" *permission=\"{name: action.permission , user: nuxeoService.nuxeoClient.user }\"> \r\n <div class=\"entity-name\">{{action.title | translate}}</div>\r\n <div class=\"entity-icon\">\r\n <span class=\"{{action.iconName}}\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"add-close\" (click)=\"ToggleMenu()\">\r\n <span class=\"bi bi-plus add\" id=\"trigger\" *ngIf=\"!openMenu\"></span>\r\n <span class=\"bi bi-x close-icon\" *ngIf=\"openMenu\"></span>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CreateEntityComponent } from './create-entity/create-entity.component';\r\nimport { DirectiveModule } from '../../directive/directive.module';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n\r\n/** @ignore */\r\n\r\n@NgModule({\r\n declarations: [CreateEntityComponent],\r\n imports: [\r\n CommonModule,\r\n DirectiveModule,\r\n TranslateModule,\r\n DirectiveModule\r\n ],\r\n exports:[\r\n CreateEntityComponent\r\n ]\r\n})\r\nexport class CreateEntityModule { }\r\n","import {\r\n Component,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { concat, Observable, of, Subject } from 'rxjs';\r\nimport {\r\n distinctUntilChanged,\r\n tap,\r\n switchMap,\r\n catchError,\r\n debounceTime,\r\n} from 'rxjs/operators';\r\nimport { NuxeoService } from '../../../../Core/services/nuxeo/nuxeo.service';\r\nimport { TagsApiService } from '../../services/tags-api.service';\r\n/**\r\n * a reusable component that allows to add or delete tags to a nuxeo document\r\n * ![Screenshot-1](../screenshots/tags.png)\r\n * @title\r\n * Tags\r\n */\r\n@Component({\r\n selector: 'cts-correspondence-tags',\r\n templateUrl: './correspondence-tags.component.html',\r\n styleUrls: ['./correspondence-tags.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class CorrespondenceTagsComponent implements OnInit, OnChanges {\r\n removable = false;\r\n loading = false;\r\n @Input()\r\n correspondence;\r\n correspondenceId;\r\n tagsList: any[];\r\n\r\n tagsFrom = new FormGroup({\r\n tag: new FormControl(null, Validators.required),\r\n });\r\n constructor(private tagsApiService: TagsApiService , public nuxeoService : NuxeoService) { }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.tagsList = this.correspondence.contextParameters ? this.correspondence.contextParameters.tags : [];\r\n }\r\n\r\n ngOnInit(): void {\r\n this.correspondenceId = this.correspondence.uid;\r\n this.tagsList = this.correspondence.contextParameters.tags;\r\n }\r\n\r\n addTag() {\r\n this.loading = true;\r\n if (this.tagsFrom.valid) {\r\n this.tagsApiService\r\n .addTagsToCorrespondence(this.correspondenceId, this.tagsFrom.value.tag)\r\n .subscribe(\r\n (res) => {\r\n this.loading = false;\r\n this.tagsApiService.getUpdatedFile.next(); // add > service -> vwer sub updae \r\n },\r\n (err) => {\r\n this.loading = false;\r\n }\r\n );\r\n }\r\n }\r\n deleteTag(tagId) {\r\n this.tagsApiService\r\n .deleteTagsToCorrespondence(this.correspondenceId, tagId)\r\n .subscribe(\r\n (res) => {\r\n this.tagsApiService.getUpdatedFile.next();\r\n },\r\n (err) => { }\r\n );\r\n }\r\n}\r\n","<div class=\"tags-header\">\r\n <div>{{ \"Tags.tags\" | translate }}</div>\r\n <div\r\n [matTooltip]=\"'Tags.toolTip' | translate\"\r\n class=\"allowEdit-tag-btn\"\r\n *permission=\"{ name: 'addTag', entity: correspondence, user: nuxeoService.nuxeoClient.user }\"\r\n (click)=\"removable = !removable\"\r\n >\r\n <span class=\"bi bi-pencil-fill\" *ngIf=\"!removable\"></span>\r\n <span class=\"close-icon bi bi-x\" *ngIf=\"removable\"></span>\r\n </div>\r\n</div>\r\n<div class=\"tags-wrapper\">\r\n <ng-container *ngIf=\"removable\">\r\n <div class=\"add-tag-container\">\r\n <div class=\"tag-form-container\">\r\n <form [formGroup]=\"tagsFrom\">\r\n <cts-dynamic-form-select-tag formControlName=\"tag\">\r\n </cts-dynamic-form-select-tag>\r\n </form>\r\n </div>\r\n <div class=\"add-tag-btn\">\r\n <cts-button\r\n [disabled]=\"this.tagsFrom.invalid\"\r\n [loading]=\"loading\"\r\n (onClick)=\"addTag()\"\r\n >{{ \"BUTTONS.ADD\" | translate }}</cts-button\r\n >\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"tagsList.length > 0; else noEntry\">\r\n <div class=\"tags-list-container row\">\r\n <mat-chip-list *ngFor=\"let tag of tagsList\">\r\n <mat-chip [removable]=\"removable\" (removed)=\"deleteTag(tag)\"\r\n >{{ tag }} <mat-icon matChipRemove *ngIf=\"removable\">cancel</mat-icon>\r\n </mat-chip>\r\n </mat-chip-list>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #noEntry>\r\n <cts-no-data [message]=\"'Tags.noEntry'\" [border]=\"false\"></cts-no-data>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { CorrespondenceTagsComponent } from './components/correspondence-tags/correspondence-tags.component';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { LibrarySharedModule } from '../../shared/libraryShared.module';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { DynamicFormModule } from '../dynamic-form/dynamic-form.module';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { DirectiveModule } from '../../directive/directive.module';\r\n\r\n/**\r\n * @title\r\n * Tags Module\r\n */\r\n@NgModule({\r\n declarations: [CorrespondenceTagsComponent],\r\n imports: [\r\n CommonModule,\r\n TranslateModule,\r\n MatChipsModule,\r\n NgSelectModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n LibrarySharedModule,\r\n MatIconModule,\r\n DynamicFormModule,\r\n MatTooltipModule,\r\n DirectiveModule\r\n ],\r\n exports: [CorrespondenceTagsComponent],\r\n})\r\nexport class CtsTagsModule {}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cts-activity',\r\n templateUrl: './activity.component.html',\r\n styleUrls: ['./activity.component.scss']\r\n})\r\nexport class ActivityComponent implements OnInit {\r\n\r\n @Input()\r\n user;\r\n /** Field for something */\r\n @Input()\r\n lineOneClass: string;\r\n @Input()\r\n lineTwoClass;\r\n @Input()\r\n lineOnePart2;\r\n constructor() { }\r\n\r\n ngOnInit(): void { }\r\n\r\n}\r\n","<ng-container *ngIf=\"user?.properties\">\r\n <div class=\"avtivity-wrapper\">\r\n <div class=\"user-image-wrapper\">\r\n <cts-avatar\r\n class=\"cursor-pointer block diameter\"\r\n [user]=\"user\"\r\n routerLink=\"/users/profile/{{ user.properties.username }}\"\r\n ></cts-avatar>\r\n </div>\r\n <div class=\"user-data-wraper\">\r\n <div class=\"first-data-row\">\r\n <span\r\n class=\"data-link\"\r\n routerLink=\"/users/profile/{{ user.properties.username }}\"\r\n >\r\n <ng-content select=\".lineOne\"></ng-content>\r\n </span>\r\n <span class=\"data-link-part2 {{ lineOnePart2 }}\">\r\n <ng-content select=\".lineOnePart2 \"></ng-content>\r\n </span>\r\n </div>\r\n\r\n <span class=\"lineTwo {{ lineTwoClass }}\">\r\n <ng-content select=\".lineTwo \"></ng-content>\r\n </span>\r\n </div>\r\n </div>\r\n</ng-container>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ActivityComponent } from './activity/activity.component';\r\nimport { AvatarModule } from '../avatar/avatar.module';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n\r\n\r\n/**\r\n * @ignore\r\n */\r\n@NgModule({\r\n declarations: [ActivityComponent ],\r\n imports: [\r\n CommonModule,\r\n AvatarModule,\r\n RouterModule\r\n ],\r\n exports:[\r\n ActivityComponent,\r\n RouterModule\r\n ]\r\n})\r\nexport class ActivityModule { }\r\n","import {\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnInit,\r\n Renderer2,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Router } from '@angular/router';\r\n@Component({\r\n selector: 'cts-activity-line',\r\n templateUrl: './activity-line.component.html',\r\n styleUrls: ['./activity-line.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ActivityLineComponent implements OnInit {\r\n @Input() item;\r\n @Input() documentTitle;\r\n @ViewChild('myParentWrapper') myParent;\r\n constructor(\r\n private element: ElementRef,\r\n private translate: TranslateService,\r\n private router: Router,\r\n private renderer: Renderer2\r\n ) {}\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n // this.translate.get('ACTIVITY_LOG.' + this.item.eventName).subscribe((translateText: string) => {\r\n // console.log(translateText)\r\n // this.element.nativeElement.innerHTML = translateText;\r\n // // this.cdRef.detectChanges();\r\n\r\n const navigationElements = Array.prototype.slice.call(\r\n this.myParent.nativeElement.getElementsByClassName('myLink')\r\n );\r\n navigationElements.forEach((elem) => {\r\n this.renderer.listen(elem, 'click', (event) => {\r\n event.preventDefault();\r\n let myClasses = event.target.className;\r\n if (this.item.eventName === 'meeting_published') {\r\n if (myClasses.includes('publishMeetingParent')) {\r\n console.log('publish Meeting parent div clicked');\r\n } else if (myClasses.includes('publishMeetingchild')) {\r\n console.log('publish Meeting child div clicked');\r\n }\r\n } else if (this.item.eventName === 'meeting_created') {\r\n if (myClasses.includes('creatMeetingParent')) {\r\n console.log('creat Meeting parent div clicked');\r\n } else if (myClasses.includes('creatMeetingChild')) {\r\n console.log('creat Meeting child div clicked');\r\n }\r\n } else if (this.item.eventName === 'meeting_resolutionAdded') {\r\n if (myClasses.includes('resolutionParent')) {\r\n console.log('Resolution parent div clicked');\r\n } else if (myClasses.includes('resolutionChild')) {\r\n console.log('Resolution child div clicked');\r\n }\r\n }\r\n });\r\n });\r\n // });\r\n }, 2000);\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n navigateto(link) {\r\n console.log(link);\r\n }\r\n}\r\n","<div class=\"activity-line-wrapper\" #myParentWrapper>\r\n <h3\r\n [innerHTML]=\"\r\n 'ACTIVITY_LOG.' + item.eventName\r\n | translate\r\n : {\r\n creator:\r\n item.creator.properties?.firstName +\r\n ' ' +\r\n item.creator.properties?.lastName,\r\n param2: item\r\n }\r\n \"\r\n ></h3>\r\n</div>\r\n\r\n<!-- <div class=\"d-flex\">\r\n <div class=\"myLink link publishMeetingParent\">{{ creator }}</div>\r\n <div class=\"mx-1\">published the meeting</div>\r\n <div class=\"myLink link publishMeetingchild\" id=\"child1\">{{ param2 }}</div>\r\n</div> -->\r\n","export class ActivityLogConstants {\r\n public static pageProvider = {\r\n buisnesslog: {\r\n name: 'PP_BusinessLog',\r\n headers: { 'X-NXproperties': '*', 'X-NXfetch-document': 'dc:creator' },\r\n },\r\n };\r\n\r\n public static quickFilters = {\r\n meetinglogs: {\r\n name: 'meetinglogs',\r\n active: false,\r\n },\r\n committeelogs: {\r\n name: 'committeelogs',\r\n active: false,\r\n },\r\n };\r\n public static events = {\r\n meeting_created: 'meeting_created',\r\n meeting_modified: 'meeting_modified',\r\n meeting_cancelled: 'meeting_cancelled',\r\n committee_created: 'committee_created',\r\n committee_modified: 'committee_modified',\r\n committee_deleted: 'committee_deleted',\r\n committee_categoryAdded: 'committee_categoryAdded',\r\n committee_memberAdded: 'committee_memberAdded',\r\n committee_memberRemoved: 'committee_memberRemoved',\r\n meeting_published: 'meeting_published',\r\n meeting_completed: 'meeting_completed',\r\n meeting_closed: 'meeting_closed',\r\n meeting_started: 'meeting_started',\r\n meeting_rsvp: 'meeting_rsvp',\r\n meeting_resolutionAdded: 'meeting_resolutionAdded',\r\n meeting_resolutionRemoved: 'meeting_resolutionRemoved',\r\n meeting_memberInvited: 'meeting_memberInvited',\r\n meeting_memberRemoved: 'meeting_memberRemoved',\r\n document_attachmentAdded: 'document_attachmentAdded',\r\n document_pollAnswered: 'document_pollAnswered',\r\n document_pollAdded: 'document_pollAdded',\r\n document_pollRemoved: 'document_pollRemoved',\r\n document_discussionAdded: 'document_discussionAdded',\r\n document_discussionRemoved: 'document_discussionRemoved',\r\n };\r\n public static fields = {\r\n documentId: 'bl:documentId',\r\n documentLifecycle: 'bl:documentLifecycle',\r\n documentName: 'bl:documentName',\r\n documentPath: ' bl:documentPath',\r\n documentTypes: 'bl:documentTypes',\r\n eventCategory: 'bl:eventCategory',\r\n eventComment: 'bl:eventComment',\r\n eventDate: 'bl:eventDate',\r\n eventName: 'bl:eventName',\r\n eventTypes: 'bl:eventTypes',\r\n extendedInfo: 'bl:extendedInfo',\r\n person: 'bl:person',\r\n contributors: 'dc:contributors',\r\n coverage: 'dc:coverage',\r\n created: 'dc:created',\r\n creator: 'dc:creator',\r\n description: 'dc:description',\r\n expired: 'dc:expired',\r\n format: 'dc:format',\r\n issued: 'dc:issued',\r\n language: 'dc:language',\r\n lastContributor: 'dc:lastContributor',\r\n modified: 'dc:modified',\r\n nature: 'dc:nature',\r\n publisher: 'dc:publisher',\r\n rights: 'dc:rights',\r\n source: 'dc:source',\r\n subjects: 'dc:subjects',\r\n title: 'dc:title',\r\n valid: 'dc:valid',\r\n major_version: 'uid:major_version',\r\n minor_version: 'uid:minor_version',\r\n uid: 'uid:uid',\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { CallApiService } from '../../../Core/services/callApi/call-api.service';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { ActivityLogConstants } from '../constants/activitylog';\r\nimport { AdapterService } from '../../../Core/adapters/adapter.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ActivityLogService {\r\n constructor(\r\n private adapter: AdapterService,\r\n private callApi: CallApiService\r\n ) {}\r\n\r\n getActivityLog(documentId, params = {}): Observable<any> {\r\n return this.callApi\r\n .query(\r\n {\r\n pageProvider: ActivityLogConstants.pageProvider.buisnesslog.name,\r\n businesslog_documentId: documentId,\r\n ...params,\r\n },\r\n {\r\n headers: ActivityLogConstants.pageProvider.buisnesslog.headers,\r\n }\r\n )\r\n .pipe(\r\n map((data: any) => {\r\n data.entries.map((item) =>\r\n this.adapter.adaptIn(item, ActivityLogConstants.fields)\r\n );\r\n return data;\r\n }),\r\n catchError((err) => {\r\n throw err;\r\n })\r\n );\r\n }\r\n}\r\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cts-single-activity',\r\n templateUrl: './single-activity.component.html',\r\n styleUrls: ['./single-activity.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class SingleActivityComponent implements OnInit {\r\n @Input()\r\n item;\r\n @Input()\r\n documentTitle;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n }\r\n}\r\n","<ng-container *ngIf=\"item\">\r\n <div class=\"avtivity-wrapper\">\r\n <div class=\"avtivity-point {{ item.documentLifecycle }}\"></div>\r\n <div class=\"avtivity-panal {{ item.documentLifecycle }}\">\r\n <div class=\"avtivity-corr-status {{ item.documentLifecycle }}\">\r\n {{ \"STATS.\" + item.documentLifecycle | translate }}\r\n </div>\r\n <div class=\"avtivity-heading\">\r\n <div class=\"avtivity-title\">\r\n <div class=\"status\">{{ \"ACTIVITY_LOG.status.\" + item.eventName | translate }}</div>\r\n <div class=\"\">\r\n {{ item.creator.properties?.firstName }}\r\n {{ item.creator.properties?.lastName }}\r\n </div>\r\n </div>\r\n <div class=\"avtivity-date\">\r\n <div>{{ item.eventDate | localizedDate: \"M/d/y\" }}</div>\r\n <div>{{ item.eventDate | localizedDate: \"h:mm a\" }}</div>\r\n </div>\r\n </div>\r\n <div class=\"avtivity-body\">\r\n <cts-activity-line\r\n [item]=\"item\"\r\n [documentTitle]=\"item.documentName\"\r\n ></cts-activity-line>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<!-- <div class=\"d-flex\">\r\n <div class=\"myLink link creator\" id=\"parent3\">{{ creator }}</div>\r\n <div class=\"mx-1\">send the correspondence</div>\r\n <div class=\"myLink link\" id=\"child3\">{{ param2 }}</div>\r\n <div class=\"myLink to\" id=\"child3\">to</div>\r\n <div class=\"myLink link\" id=\"child3\">{{corr:to}}</div>\r\n <div class=\"myLink link\" id=\"child3\">and assigned it to</div>\r\n <div class=\"myLink link\" id=\"child3\">{{corr:owner}}</div>\r\n</div> -->\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { ActivityLogService } from '../../services/activity-log.service';\r\n\r\n@Component({\r\n selector: 'cts-latest-activity',\r\n templateUrl: './latest-activity.component.html',\r\n styleUrls: ['./latest-activity.component.scss'],\r\n})\r\nexport class LatestActivityComponent implements OnInit {\r\n @Input()\r\n documentId;\r\n @Input() documentTitle;\r\n @Output()\r\n success = new EventEmitter();\r\n\r\n p = 1;\r\n count = 5;\r\n totalRecords = 0;\r\n isFetching = false;\r\n activitylog = [];\r\n\r\n constructor(private activityLogSer: ActivityLogService) {}\r\n\r\n ngOnInit(): void {\r\n // this.getActivities();\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.getActivities();\r\n }\r\n getActivities() {\r\n this.isFetching = true;\r\n this.activityLogSer\r\n .getActivityLog(this.documentId.uid, {\r\n currentPageIndex: this.p - 1,\r\n // pageSize: this.count,\r\n })\r\n .subscribe(\r\n (data) => {\r\n // this.activitylog = [];\r\n let i = 1;\r\n data.entries.map((item) => {\r\n i++;\r\n item.properties.extendedInfo = item.properties.extendedInfo.reduce(\r\n (obj, item) => ((obj[item.key] = item.value), obj),\r\n {}\r\n );\r\n this.activitylog.push({\r\n ...item.properties,\r\n });\r\n });\r\n this.totalRecords = data.totalSize;\r\n this.isFetching = false;\r\n this.success.emit(true);\r\n },\r\n (err) => {\r\n // this.success.emit(false);\r\n }\r\n );\r\n }\r\n\r\n onChangePagination(e) {\r\n this.p = e;\r\n this.getActivities();\r\n }\r\n\r\n onScroll(){\r\n this.p ++\r\n this.getActivities();\r\n\r\n }\r\n}\r\n","<div\r\n [scrollWindow]=\"false\"\r\n infiniteScroll\r\n [infiniteScrollDistance]=\"2\"\r\n [infiniteScrollThrottle]=\"50\"\r\n (scrolled)=\"onScroll()\"\r\n class=\"activity-body\"\r\n>\r\n <div class=\"activity-area\">\r\n <div *ngFor=\"let item of activitylog; let i = index\">\r\n <cts-single-activity [item]=\"item\" [documentTitle]=\"documentTitle\">\r\n </cts-single-activity>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- <cts-single-activity [user]=\"item.creator\">\r\n <div class=\"lineOne\">\r\n <span class=\"\">\r\n {{ item.creator.properties?.firstName }}\r\n {{ item.creator.properties?.lastName }} // commented\r\n </span>\r\n <cts-activity-line [item]=\"item\" [documentTitle]=\"documentTitle\">\r\n </cts-activity-line>\r\n </div>\r\n <div class=\"lineOnePart2\">\r\n <span class=\"mx-2\">\r\n {{item.eventName}} commented \r\n </span>\r\n </div>\r\n <div class=\"lineTwo\">\r\n <span class=\"\" style=\"width: fit-content\">\r\n {{ item.eventDate | localizedDate: \"EEEE, MMMM d, y\" }}\r\n </span>\r\n </div>\r\n </cts-single-activity> -->\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { PipesModule } from '../../pipes/pipes.module';\r\nimport { ActivityModule } from '../activity/activity.module';\r\nimport { CardModule } from '../card/card.module';\r\nimport { PaginationModule } from '../pagination/pagination.module';\r\nimport { ActivityLineComponent } from './components/activity-line/activity-line.component';\r\nimport { LatestActivityComponent } from './components/latest-activity/latest-activity.component';\r\nimport { SingleActivityComponent } from './components/single-activity/single-activity.component';\r\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\r\n\r\n/**\r\n * @ignore\r\n */\r\n@NgModule({\r\n declarations: [LatestActivityComponent, ActivityLineComponent, SingleActivityComponent],\r\n imports: [\r\n CommonModule,\r\n PaginationModule,\r\n TranslateModule,\r\n ActivityModule,\r\n CardModule,\r\n PipesModule,\r\n InfiniteScrollModule\r\n ],\r\n exports:[\r\n LatestActivityComponent\r\n ]\r\n})\r\nexport class LatestActivityModule { }\r\n","import { Component, Input, OnInit, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cts-viewer-log',\r\n templateUrl: './viewer-log.component.html',\r\n styleUrls: ['./viewer-log.component.scss'],\r\n encapsulation:ViewEncapsulation.None\r\n})\r\nexport class ViewerLogComponent implements OnInit {\r\n loading = true;\r\n @Input()\r\n correspondence;\r\n\r\n constructor() {}\r\n\r\n logSuccess(e) {\r\n if(e){\r\n this.loading = false\r\n }\r\n }\r\n ngOnInit(): void {}\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.correspondence = this.correspondence;\r\n }\r\n}\r\n","<ng-container *ngIf=\"correspondence\">\r\n <cts-latest-activity\r\n [documentId]=\"correspondence\"\r\n (success)=\"logSuccess($event)\"\r\n ></cts-latest-activity>\r\n <span class=\"log-bar\">\r\n <mat-progress-bar *ngIf=\"loading\" mode=\"indeterminate\"></mat-progress-bar>\r\n </span>\r\n</ng-container>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LatestActivityModule } from '../latest-activity/latest-activity.module';\r\nimport { ViewerLogComponent } from './components/viewer-log/viewer-log.component';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\n\r\n@NgModule({\r\n declarations: [ViewerLogComponent],\r\n imports: [CommonModule, LatestActivityModule, MatProgressBarModule],\r\n exports: [ViewerLogComponent],\r\n})\r\nexport class ViewerLogModule {}\r\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { take } from 'rxjs/operators';\r\nimport { AdapterService } from '../../../../Core/adapters/adapter.service';\r\nimport { ConfirmCallerDialogComponent } from '../../../confirm-caller/confirm-caller.dialog';\r\nimport { DocumentsService } from '../../../documents/services/documents.service';\r\nimport { ViewerFilesService } from '../../services/viewer-files.service';\r\nimport { CorrespondenceRelationService } from '../../services/correspondence-realation.service';\r\n\r\n@Component({\r\n selector: 'cts-correspondence-relation-list',\r\n templateUrl: './correspondence-relation-list.component.html',\r\n styleUrls: ['./correspondence-relation-list.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class CorrespondenceRelationListComponent implements OnInit {\r\n @Input()\r\n correspondence_id;\r\n @Input()\r\n reload: boolean = false;\r\n relateddoc: any[] = [];\r\n menu_actions = [\r\n { title: 'correspondence-relation.view_corr', name: 'view' },\r\n { title: 'correspondence-relation.delete', name: 'delete' },\r\n ];\r\n constructor(\r\n private relationsvc: CorrespondenceRelationService,\r\n private dialog: MatDialog,\r\n private viewerFilesService: ViewerFilesService,\r\n private documentsApi: DocumentsService,\r\n private adapter: AdapterService\r\n ) {}\r\n ngOnInit(): void {\r\n this.loadData();\r\n this.relationsvc.getUpdatedRelation.subscribe((res) => {\r\n this.loadData();\r\n });\r\n }\r\n loadData() {\r\n this.relationsvc\r\n .get_Correspondence_Relation_WithoutReply(this.correspondence_id)\r\n .subscribe((result) => {\r\n let resultarray = result.value;\r\n let resultsgrouped = resultarray.reduce((r, a) => {\r\n r[a.relationId] = [...(r[a.relationId] || []), a];\r\n return r;\r\n }, {});\r\n this.relateddoc = [];\r\n for (let group of Object.entries(resultsgrouped)) {\r\n this.relateddoc.push(group);\r\n }\r\n });\r\n }\r\n onDeleteClick(relateddoc) {\r\n let functionToPerform = () => {\r\n return this.relationsvc.Delete_Named_Relation(\r\n this.correspondence_id,\r\n relateddoc.relationId,\r\n relateddoc.uid\r\n );\r\n };\r\n let title = '';\r\n let msg = '';\r\n this.openDialog(\r\n functionToPerform,\r\n 'Success',\r\n 'correspondence-relation.deleted_success'\r\n ).subscribe((data) => {\r\n if (data) {\r\n this.relationsvc.getUpdatedRelation.next();\r\n }\r\n });\r\n }\r\n openDialog(functionToPerform, title, msg) {\r\n return this.dialog\r\n .open(ConfirmCallerDialogComponent, {\r\n width: '400px',\r\n data: {\r\n call: functionToPerform,\r\n title: 'genericConfirm',\r\n toastrTitle: title,\r\n toastrMsg: msg,\r\n },\r\n })\r\n .afterClosed()\r\n .pipe(take(1));\r\n }\r\n\r\n view_Corres(relation) {\r\n let url = window.location.href;\r\n window.open(url.replace(this.correspondence_id, relation.uid), '_blank');\r\n }\r\n\r\n showCorrespondenceInViewer(relation) {\r\n this.documentsApi.getDocument(relation.uid).subscribe((file) => {\r\n let adaptedFile = this.adapter.adaptIn(\r\n { ...file },\r\n this.relationsvc.incomingConstant['fields']\r\n );\r\n this.viewerFilesService.updateViewer.next(adaptedFile);\r\n });\r\n }\r\n\r\n handleMenuItemClicked(event) {\r\n if (event.action === 'view') {\r\n this.view_Corres(event.item);\r\n } else if (event.action === 'delete') {\r\n this.onDeleteClick(event.item);\r\n }\r\n }\r\n}\r\n","<div class=\"relations-list\" *ngIf=\"relateddoc.length > 0\">\r\n <ng-container>\r\n <div *ngFor=\"let group of relateddoc; first as isFirst\">\r\n <mat-accordion class=\"example-headers-align\" multi>\r\n <mat-expansion-panel [expanded]=\"isFirst\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ group[0] }}\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <mat-list>\r\n <div class=\"mat-list-items\" *ngFor=\"let item of group[1]\">\r\n <cts-item-list\r\n [item]=\"item\"\r\n [title]=\"item.title\"\r\n [iconname]=\"'link'\"\r\n [actions]=\"menu_actions\"\r\n (actionclicked)=\"handleMenuItemClicked($event)\"\r\n (itemClicked)=\"showCorrespondenceInViewer(item)\"\r\n [moreclasses]=\"'link-relation'\"\r\n ></cts-item-list>\r\n </div>\r\n </mat-list>\r\n </ng-template>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n </div>\r\n </ng-container>\r\n</div>\r\n<div class=\"nocontent\" *ngIf=\"relateddoc.length === 0\">\r\n <p>{{ \"correspondence-relation.nocontent\" | translate }}</p>\r\n</div>\r\n","import {\r\n Component,\r\n Inject,\r\n OnInit,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { CorrespondenceRelationService } from '../../services/correspondence-realation.service';\r\n\r\n@Component({\r\n selector: 'cts-correspondence-relation-create-form',\r\n templateUrl: './correspondence-relation-create-form.component.html',\r\n styleUrls: ['./correspondence-relation-create-form.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class CorrespondenceRelationCreateFormComponent implements OnInit {\r\n visible = true;\r\n selectable = true;\r\n removable = true;\r\n createform: FormGroup;\r\n related_corr: any[] = [];\r\n exist: boolean = false;\r\n isLoading: boolean = false;\r\n documentList = [];\r\n exist_relations_list: any[] = [];\r\n correspondanceId;\r\n constructor(\r\n private _formBuilder: FormBuilder,\r\n private corressvc: CorrespondenceRelationService,\r\n public dialogRef: MatDialogRef<CorrespondenceRelationCreateFormComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {}\r\n\r\n /**dialog actions */\r\n onSaveClick() {\r\n this.dialogRef.close({\r\n docs: this.related_corr.map((corre) => corre.id),\r\n relationname: this.createform.value.relationname,\r\n });\r\n \r\n }\r\n\r\n onCloseoClick() {\r\n this.dialogRef.close();\r\n }\r\n\r\n /*************************************************** */\r\n @ViewChild('auto') auto;\r\n ngOnInit(): void {\r\n this.exist_relations_list = this.data.exist_relations_list;\r\n this.correspondanceId = this.data.correspondance.uid;\r\n console.log('related', this.data);\r\n this.dialogRef.updateSize('50%', '85%');\r\n this.createform = this._formBuilder.group({\r\n relationname: ['', Validators.required],\r\n });\r\n }\r\n\r\n on_remove_relation_Chip(relation) {\r\n this.related_corr.splice(this.related_corr.indexOf(relation), 1);\r\n }\r\n\r\n /**ng-Autocomplete related functions */\r\n alwaysopened: boolean = false;\r\n clearSerachInput() {\r\n this.documentList = [];\r\n if (this.auto) this.auto.query = '';\r\n }\r\n\r\n is_relation_exist(relation): boolean {\r\n if(this.exist_relations_list.length == 0) return false;\r\n let exist_relation = this.exist_relations_list.filter(\r\n (exist_relation) =>\r\n exist_relation.relationId === this.createform.value.relationname &&\r\n exist_relation.uid === relation.id\r\n );\r\n this.exist = exist_relation.length > 0;\r\n return this.exist;\r\n }\r\n\r\n is_corresp_added(corresp) {\r\n let exist_corresp = this.related_corr.filter((exist_corresp) => {\r\n return exist_corresp.id === corresp.id;\r\n });\r\n return exist_corresp.length > 0;\r\n }\r\n selectItem(item) {\r\n this.auto.query = this.auto.toHighlight;\r\n if (this.is_relation_exist(item)) return;\r\n else if (this.is_corresp_added(item)) return;\r\n else {\r\n this.related_corr.push(item);\r\n }\r\n }\r\n\r\n keep_Autocomplete_Results_Open() {\r\n if (this.alwaysopened) {\r\n this.auto.filteredList = this.documentList;\r\n this.auto.isOpen = true;\r\n this.auto.isFocused = true;\r\n }\r\n }\r\n\r\n onSearchInputChange(val: string) {\r\n if (val?.length == 0) {\r\n return;\r\n }\r\n this.corressvc.search(val).subscribe((data) => {\r\n console.log(\"documentList\",data)\r\n this.documentList = data.filter((correspondance) => {\r\n return this.correspondanceId != correspondance.id;\r\n });\r\n this.isLoading = false;\r\n this.alwaysopened = this.documentList.length > 0;\r\n return this.documentList;\r\n });\r\n }\r\n disableFilter = (items: any[]) => items;\r\n\r\n inputCleared() {\r\n this.documentList = [];\r\n this.alwaysopened = false;\r\n }\r\n\r\n reset() {\r\n this.related_corr = [];\r\n this.clearSerachInput();\r\n this.exist = false;\r\n }\r\n}\r\n","<div class=\"correspondence-relation-container\" SetDirRtl style=\"height: 80%; width: 100%\">\r\n <div class=\"correspondence-relation-title\">\r\n {{ \"correspondence-relation.add\" | translate }}\r\n </div>\r\n <!-- <mat-divider></mat-divider> -->\r\n <div mat-dialog-content [formGroup]=\"createform\">\r\n <div class=\"vocabulary-list\">\r\n <app-dynamic-form-vocabulary-item\r\n [label]=\"'correspondence-relation.relation-type'\"\r\n [bindLabel]=\"'label'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{ 'VOCABULARY.SELECT_ITEM' | translate }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"false\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n [vocabularyType]=\"'VOC_CorrespondenceRelationsNames'\"\r\n formControlName=\"relationname\"\r\n (onSelecting)=\"reset()\"\r\n >\r\n </app-dynamic-form-vocabulary-item>\r\n </div>\r\n\r\n <div class=\"search-container\" *ngIf=\"createform.value.relationname\">\r\n <ng-autocomplete\r\n #auto\r\n [data]=\"documentList\"\r\n [searchKeyword]=\"'filter'\"\r\n (selected)=\"selectItem($event)\"\r\n (inputChanged)=\"onSearchInputChange($event)\"\r\n [customFilter]=\"disableFilter\"\r\n (closed)=\"keep_Autocomplete_Results_Open()\"\r\n [itemTemplate]=\"itemTemplate\"\r\n [notFoundTemplate]=\"notFoundTemplate\"\r\n [placeholder]=\"'correspondence-relation.searchby' | translate\"\r\n [debounceTime]=\"1000\"\r\n [isLoading]=\"isLoading\"\r\n (inputCleared)=\"inputCleared()\"\r\n >\r\n </ng-autocomplete>\r\n\r\n <ng-template #itemTemplate let-item>\r\n <div class=\"item\">\r\n <span>{{ item.title }}</span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #notFoundTemplate>\r\n <div>{{ \"correspondence-relation.notfound\" | translate }}</div>\r\n </ng-template>\r\n\r\n <div class=\"chip-list\" *ngIf=\"related_corr.length > 0\">\r\n <mat-chip-list #chipList aria-label=\"corr selection\">\r\n <mat-chip\r\n *ngFor=\"let corr of related_corr\"\r\n [selectable]=\"selectable\"\r\n [removable]=\"removable\"\r\n (removed)=\"on_remove_relation_Chip(corr)\"\r\n >\r\n {{ corr.title }}\r\n <mat-icon matChipRemove *ngIf=\"removable\">cancel</mat-icon>\r\n </mat-chip>\r\n </mat-chip-list>\r\n </div>\r\n <div class=\"exist-relation\">\r\n <span *ngIf=\"exist\">\r\n {{ \"correspondence-relation.exist\" | translate }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"button-group d-flex flex-row-reverse\">\r\n <cts-button\r\n [theme]=\"'danger'\"\r\n size=\"'regular'\"\r\n class=\"voc-form-close\"\r\n mat-dialog-close\r\n >\r\n {{ \"BUTTONS.CLOSE\" | translate }}\r\n </cts-button>\r\n <cts-button\r\n (onClick)=\"onSaveClick()\"\r\n [theme]=\"'primary'\"\r\n size=\"'regular'\"\r\n [disabled]=\"\r\n !this.createform.controls.relationname.valid || related_corr.length == 0\r\n \"\r\n >\r\n {{ \"correspondence-relation.save\" | translate }}\r\n </cts-button>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\nimport { CorrespondenceRelationService } from '../../services/correspondence-realation.service';\r\n\r\n@Component({\r\n selector: 'cts-correspondence-relation-reply',\r\n templateUrl: './correspondence-relation-reply.component.html',\r\n styleUrls: ['../correspondence-relation-list/correspondence-relation-list.component.scss']\r\n})\r\nexport class CorrespondenceRelationReplyComponent implements OnInit {\r\n replyrelation : any[] = [];\r\n @Input()\r\n correspondence_id :string;\r\n@Output()\r\nactionclicked = new EventEmitter();\r\n\r\nfireAction(item,action = 'show') {\r\n this.actionclicked.next({action : action , item : item});\r\n}\r\n\r\n menu_actions = [{title : 'correspondence-relation.view_corr' , name:'view'}];\r\n constructor(private corres_relationsvc: CorrespondenceRelationService) { }\r\n\r\n ngOnInit(): void {\r\n this.corres_relationsvc\r\n .get_Correspondence_Reply_Relation_Reverse(this.correspondence_id)\r\n .subscribe((res) => {\r\n if (res.entries.length > 0) {\r\n this.replyrelation = res.entries.map(item => { return {title: item.title,uid: item.uid ,type :item.type, filecontent : item.properties['file:content'] , direction : item.properties['corr:direction']\r\n }});\r\n \r\n // this.replyrelation = {\r\n // title: res.entries[0].title,\r\n // uid: res.entries[0].uid,\r\n // };\r\n }\r\n });\r\n }\r\n\r\n}\r\n","<div class=\"relations-list\" *ngIf=\"replyrelation.length > 0\">\r\n <ng-container>\r\n <mat-list>\r\n <div class=\"mat-list-items\" *ngFor=\"let item of replyrelation\">\r\n <cts-item-list\r\n [item]=\"item\"\r\n [title]=\"item.title\"\r\n [actions]=\"menu_actions\"\r\n (actionclicked)=\"fireAction(item, 'view')\"\r\n (itemClicked)=\"fireAction(item)\"\r\n ></cts-item-list>\r\n </div>\r\n </mat-list>\r\n </ng-container>\r\n</div>\r\n<div class=\"nocontent\" *ngIf=\"replyrelation.length === 0\">\r\n <p>{{ \"correspondence-relation.nocontentreply\" | translate }}</p>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\r\nimport { CustomToastrService } from '../../../custom-toastr/services/custom-toastr.service';\r\nimport { CorrespondenceRelationService } from '../../services/correspondence-realation.service';\r\nimport { take } from 'rxjs/operators';\r\nimport { ConfirmCallerDialogComponent } from '../../../confirm-caller/confirm-caller.dialog';\r\nimport { CorrespondenceRelationCreateFormComponent } from '../correspondence-relation-create-form/correspondence-relation-create-form.component';\r\nimport { DocumentsService } from '../../../documents/services/documents.service';\r\nimport { ViewerFilesService } from '../../services/viewer-files.service';\r\nimport { UserPreferencesService } from '../../../../Core/services/user/user-preferences.service';\r\nimport { NuxeoService } from '../../../../Core/services/nuxeo/nuxeo.service';\r\n@Component({\r\n selector: 'cts-correspondence-relation',\r\n templateUrl: './correspondence-relation.component.html',\r\n styleUrls: ['./correspondence-relation.component.scss'],\r\n})\r\nexport class CorrespondenceRelationComponent implements OnInit {\r\n @Input()\r\n corr_id;\r\n /** Correspondance */\r\n @Input()\r\n correspondance;\r\n relations_list: any;\r\n reload: boolean = false;\r\n constructor(\r\n public dialog: MatDialog,\r\n private corrrelationsvc: CorrespondenceRelationService,\r\n private toastr: CustomToastrService,\r\n private viewerFilesService: ViewerFilesService,\r\n private documentsApi: DocumentsService,\r\n private userPreference: UserPreferencesService,\r\n public nuxeoService : NuxeoService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getallrelated();\r\n this.corrrelationsvc.getUpdatedRelation.subscribe((res) => {\r\n this.getallrelated();\r\n });\r\n }\r\n\r\n openDialog() {\r\n let data = {};\r\n if (this.relations_list)\r\n data = {\r\n exist_relations_list: this.relations_list.value,\r\n correspondance: this.correspondance,\r\n };\r\n else data = { exist_relations_list: [] };\r\n const dialogConfig = new MatDialogConfig();\r\n dialogConfig.data = data;\r\n dialogConfig.direction =\r\n this.userPreference.locale === 'ar' ? 'rtl' : 'ltr';\r\n dialogConfig.panelClass = 'custom-dialog-container';\r\n dialogConfig.width = '50%';\r\n const dialogRef = this.dialog.open(\r\n CorrespondenceRelationCreateFormComponent,\r\n dialogConfig\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.corrrelationsvc\r\n .create_Named_Relation(this.corr_id, result.relationname, result.docs)\r\n .subscribe(\r\n (data) => {\r\n this.reload = true;\r\n this.corrrelationsvc.getUpdatedRelation.next();\r\n this.toastr.show(\r\n 'success',\r\n 'success',\r\n 'Realation Successfuly added'\r\n );\r\n },\r\n (err) => {\r\n this.toastr.show('error', 'error', 'Failed to add relation');\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n getallrelated() {\r\n this.corrrelationsvc\r\n .get_Correspondence_Relation_WithoutReply(this.corr_id)\r\n .subscribe((results) => {\r\n this.relations_list = results;\r\n });\r\n }\r\n\r\n handleActions(event) {\r\n if (event.action === 'view') {\r\n this.view_Corres(event.item);\r\n } else if (event.action === 'delete') {\r\n this.deleteRelation(event.item);\r\n } else if (event.action === 'show') {\r\n this.showCorrespondenceInViewer(event.item.uid);\r\n }\r\n }\r\n\r\n view_Corres(relation) {\r\n let url = window.location.href;\r\n window.open(url.replace(this.corr_id, relation.uid), '_blank');\r\n }\r\n\r\n showCorrespondenceInViewer(corres_id) {\r\n this.documentsApi.getDocument(corres_id).subscribe((file) => {\r\n this.viewerFilesService.updateViewer.next(file);\r\n });\r\n }\r\n openConfirmDialog(functionToPerform, title, msg) {\r\n return this.dialog\r\n .open(ConfirmCallerDialogComponent, {\r\n width: '400px',\r\n data: {\r\n call: functionToPerform,\r\n title: 'genericConfirm',\r\n toastrTitle: title,\r\n toastrMsg: msg,\r\n },\r\n })\r\n .afterClosed()\r\n .pipe(take(1));\r\n }\r\n deleteRelation(relateddoc) {\r\n let functionToPerform = () => {\r\n return this.corrrelationsvc.Delete_Named_Relation(\r\n this.corr_id,\r\n relateddoc.relationId,\r\n relateddoc.uid\r\n );\r\n };\r\n let title = '';\r\n let msg = '';\r\n this.openConfirmDialog(\r\n functionToPerform,\r\n 'Success',\r\n 'correspondence-relation.deleted_success'\r\n ).subscribe((data) => {\r\n if (data) {\r\n this.corrrelationsvc.getUpdatedRelation.next();\r\n }\r\n });\r\n }\r\n}\r\n","<div class=\"relations-container\">\r\n <div class=\"mb-3\">\r\n <div class=\"subheader\">\r\n <div>{{ \"correspondence-relation.title\" | translate }}</div>\r\n <div *permission=\"{\r\n name: 'AddRelatedCorrespondence',\r\n entity: correspondance , user: nuxeoService.nuxeoClient.user\r\n }\" (click)=\"openDialog()\"><mat-icon>add</mat-icon></div>\r\n </div>\r\n <cts-correspondence-relation-list\r\n [correspondence_id]=\"corr_id\"\r\n [reload]=\"reload\"\r\n ></cts-correspondence-relation-list>\r\n </div>\r\n\r\n <div class=\"mb-2\">\r\n <div class=\"subheader\">\r\n <div>{{ \"correspondence-relation.reply_relation\" | translate }}</div>\r\n </div>\r\n <cts-correspondence-relation-reply\r\n [correspondence_id]=\"corr_id\"\r\n (actionclicked)=\"handleActions($event)\"\r\n ></cts-correspondence-relation-reply>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { DocumentsService } from '../../../documents/services/documents.service';\r\nimport { ViewerFilesService } from '../../services/viewer-files.service';\r\n\r\n\r\n/**\r\n * A component that views document versions\r\n * @title\r\n * Viewer Versions\r\n *\r\n * @example\r\n *\r\n * <cts-versions\r\n * [file]=\"file\"\r\n * ></cts-versions>\r\n */\r\n@Component({\r\n selector: 'cts-versions',\r\n templateUrl: './versions.component.html',\r\n styleUrls: ['./versions.component.scss']\r\n})\r\nexport class VersionsComponent implements OnInit, OnChanges {\r\n /** Current selected version (in viewer) */\r\n @Input()\r\n selectedVersion;\r\n /** Document object */\r\n @Input()\r\n file;\r\n versions = [];\r\n constructor(\r\n private viewerFilesService: ViewerFilesService,\r\n private documentsApi: DocumentsService\r\n\r\n ) { }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.file && changes.file.currentValue &&\r\n changes.file.previousValue) {\r\n this.getVersions();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getVersions();\r\n }\r\n\r\n\r\n getVersions() {\r\n this.documentsApi.getVersions(this.file.uid).subscribe((data) => {\r\n this.versions = data.entries.reverse();\r\n // this.versions.shift();\r\n\r\n });\r\n }\r\n\r\n showVersion(version) {\r\n this.viewerFilesService.updateViewer.next(version);\r\n }\r\n\r\n}\r\n","<div class=\"viewer-attachments\">\r\n <div class=\"subheader\">\r\n <div> {{ \"viewer.current\" | translate }}</div>\r\n\r\n </div>\r\n <div class=\"attachments-list\">\r\n <mat-list>\r\n <div class=\"mat-list-items\">\r\n <cts-item-list [item]=\"file\" [title]=\"file.title\" [iconname]=\"'description'\" [moreclasses]=\"'text-danger'\"\r\n (itemClicked)=\"showVersion(file)\">\r\n <div class=\"description\">\r\n {{ file.properties.major_version }}.{{\r\n file.properties.minor_version\r\n }}\r\n -\r\n {{ file.lastModified | localizedDate }}\r\n </div>\r\n </cts-item-list>\r\n </div>\r\n </mat-list>\r\n </div>\r\n</div>\r\n\r\n<div class=\"viewer-attachments\" *ngIf=\"versions.length > 0\">\r\n <div class=\"subheader\">\r\n <div>{{ \"viewer.origin\" | translate }}</div>\r\n </div>\r\n <div class=\"attachments-list\">\r\n <mat-list>\r\n <div class=\"mat-list-items\">\r\n <cts-item-list\r\n [item]=\"versions[versions.length -1]\"\r\n [title]=\"versions[versions.length -1].title\"\r\n [iconname]=\"'description'\"\r\n [moreclasses]=\"'text-danger'\"\r\n (itemClicked)=\"showVersion(versions[versions.length -1])\"\r\n >\r\n \r\n </cts-item-list>\r\n </div>\r\n </mat-list>\r\n </div>\r\n</div>\r\n\r\n<div class=\"viewer-attachments\">\r\n <div class=\"subheader\">\r\n <div> {{ \"viewer.history\" | translate }}</div>\r\n\r\n </div>\r\n <div class=\"attachments-list\" *ngIf=\"versions.length > 0\">\r\n <ng-container >\r\n\r\n\r\n <mat-list>\r\n <div class=\"mat-list-items\" *ngFor=\"let version of versions ;let cnt = count; let i = index\">\r\n <cts-item-list [item]=\"version\" [title]=\"version.title + ' - ' + ( cnt - (i-1) - 1 ) \" [iconname]=\"'description'\"\r\n [moreclasses]=\"'text-danger'\" (itemClicked)=\"showVersion(version)\">\r\n <div class=\"description\">\r\n {{ version.properties.major_version }}.{{\r\n version.properties.minor_version\r\n }}\r\n -\r\n {{ version.lastModified | localizedDate }}\r\n <span class=\"font-weight-bold\">\r\n {{\r\n version.properties.lastContributor.properties.firstName +\r\n \" \" +\r\n version.properties.lastContributor.properties.lastName\r\n }}\r\n </span>\r\n </div>\r\n </cts-item-list>\r\n </div>\r\n </mat-list>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"versions.length === 0\">\r\n <cts-no-data></cts-no-data>\r\n </div>\r\n</div>\r\n<ng-template #noEntry>\r\n \r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CorrespondenceRelationListComponent } from './components/correspondence-relation-list/correspondence-relation-list.component';\r\nimport { CorrespondenceRelationComponent } from './components/correspondence-relation/correspondence-relation.component';\r\nimport { CorrespondenceRelationCreateFormComponent } from './components/correspondence-relation-create-form/correspondence-relation-create-form.component';\r\nimport { DynamicFormModule } from '../dynamic-form/dynamic-form.module';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { DynamicSearchModule } from '../dynamic-search/dynamic-search.module';\r\nimport { AutocompleteLibModule } from 'angular-ng-autocomplete';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { SelectModule } from '../select/select.module';\r\nimport { LayoutModule } from '@angular/cdk/layout';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { LibrarySharedModule } from '../../shared/libraryShared.module';\r\nimport { CorrespondenceRelationReplyComponent } from './components/correspondence-relation-reply/correspondence-relation-reply.component';\r\nimport { DirectiveModule } from '../../directive/directive.module';\r\nimport { VersionsComponent } from './components/versions/versions.component';\r\nimport { PipesModule } from '../../pipes/pipes.module';\r\n/** @ignore */\r\n\r\n@NgModule({\r\n declarations: [\r\n CorrespondenceRelationListComponent,\r\n CorrespondenceRelationComponent,\r\n CorrespondenceRelationCreateFormComponent,\r\n CorrespondenceRelationReplyComponent,\r\n VersionsComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n DynamicFormModule,\r\n TranslateModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatDialogModule,\r\n DynamicSearchModule,\r\n MatIconModule,\r\n NgSelectModule,\r\n SelectModule,\r\n AutocompleteLibModule,\r\n LayoutModule,\r\n MatChipsModule,\r\n MatMenuModule,\r\n MatListModule,\r\n MatIconModule,\r\n MatExpansionModule,\r\n LibrarySharedModule,\r\n DirectiveModule,\r\n PipesModule\r\n ],\r\n exports: [CorrespondenceRelationComponent , VersionsComponent],\r\n})\r\nexport class CorrespondenceRelationModule {}\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\nimport { observable, Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PdftronService {\r\n mode: String = '';\r\n instance;\r\n stampAnnots: any[] = [];\r\n signatureAnnotations: any[] = [];\r\n pdfTronStream = new EventEmitter();\r\n constructor() {}\r\n async disableQrCodeModifybeforesave() {\r\n for (let stampAnnot of this.stampAnnots) {\r\n stampAnnot.ReadOnly = true;\r\n }\r\n }\r\n\r\n clearSignatureAnnotations() {\r\n this.signatureAnnotations = [];\r\n }\r\n async removeSignatureAnnotaionsbeforesave() {\r\n this.instance.annotManager.off('annotationChanged');\r\n this.instance.annotManager.deleteAnnotation(this.signatureAnnotations);\r\n }\r\n\r\n getSignatureAnnotaionsInfo() {\r\n let signatureInfo = this.signatureAnnotations.map((item) => {\r\n let PageHeight = this.instance.docViewer.getPageHeight(item.PageNumber);\r\n let PageWidth = this.instance.docViewer.getPageWidth(item.PageNumber);\r\n let yConst = this.modifySignatureAnnotaionHeightAndWidth(\r\n PageHeight,\r\n PageWidth\r\n ).y;\r\n // let xConst = this.modifySignatureAnnotaionHeightAndWidth(\r\n // PageHeight,\r\n // PageWidth\r\n // ).x;\r\n return {\r\n pageno: item.PageNumber,\r\n //x: item.X + xConst,\r\n x: item.X,\r\n y: item.Y + yConst,\r\n height: item.getHeight(),\r\n width: item.getWidth(),\r\n };\r\n });\r\n return signatureInfo;\r\n }\r\n modifySignatureAnnotaionHeightAndWidth(PageHeight, PageWidth) {\r\n const standardHeight = 842;\r\n const standardWidth = 595;\r\n let y: number = 0;\r\n let x: number = 0;\r\n //height\r\n if (standardHeight > PageHeight || standardHeight < PageHeight) {\r\n y = standardHeight - PageHeight;\r\n }\r\n // widht\r\n if (standardWidth > PageWidth || standardWidth < PageWidth) {\r\n x = standardWidth - PageWidth;\r\n }\r\n return { y, x };\r\n }\r\n addSignature(base64) {\r\n if (this.instance) {\r\n let currentPage = this.instance.docViewer.getCurrentPage();\r\n\r\n this.instance.annotManager.setReadOnly(false);\r\n this.instance.disableElements([\r\n 'toolbarGroup-Shapes',\r\n 'toolbarGroup-Edit',\r\n 'toolbarGroup-Insert',\r\n 'toolbarGroup-Annotate',\r\n ]);\r\n const signatureAnnot = new this.instance.Annotations.StampAnnotation();\r\n signatureAnnot.PageNumber = currentPage;\r\n signatureAnnot.X = 100;\r\n signatureAnnot.Y = 250;\r\n signatureAnnot.Width = 140;\r\n signatureAnnot.Height = 60;\r\n const keepAsSVG = false;\r\n signatureAnnot.setImageData(base64, keepAsSVG);\r\n signatureAnnot.Author = this.instance.annotManager.getCurrentUser();\r\n\r\n this.instance.annotManager.addAnnotation(signatureAnnot);\r\n this.instance.annotManager.redrawAnnotation(signatureAnnot);\r\n this.pdfTronStream.next({ action: 'addStamp', params: { base64 } });\r\n\r\n this.signatureAnnotations.push(signatureAnnot);\r\n this.instance.annotManager.on(\r\n 'annotationChanged',\r\n (annotations, action) => {\r\n if (action === 'modify') {\r\n annotations.forEach((changedannot) => {\r\n // this.signatureAnnotations.forEach(function(item,i) {\r\n // if (item.Id == changedannot.Id) item = changedannot;\r\n // });\r\n let index = this.signatureAnnotations\r\n .map((item) => item.Id)\r\n .indexOf(changedannot.Id);\r\n if (index > -1) {\r\n this.signatureAnnotations[index] = changedannot;\r\n }\r\n });\r\n } else if (action === 'delete') {\r\n annotations.forEach((changedannot) => {\r\n let index = this.signatureAnnotations\r\n .map((item) => item.Id)\r\n .indexOf(changedannot.Id);\r\n if (index > -1) {\r\n this.signatureAnnotations.splice(index, 1);\r\n }\r\n });\r\n }\r\n }\r\n );\r\n } else {\r\n console.error('No pdfTron instance');\r\n }\r\n }\r\n addStamp(url) {\r\n if (this.instance) {\r\n this.instance.annotManager.setReadOnly(false);\r\n this.instance.disableElements([\r\n 'toolbarGroup-Shapes',\r\n 'toolbarGroup-Edit',\r\n 'toolbarGroup-Insert',\r\n 'toolbarGroup-Annotate',\r\n ]);\r\n this.pdfTronStream.next({ action: 'addStamp', params: { url } });\r\n let stampAnnot = new this.instance.Annotations.StampAnnotation();\r\n stampAnnot.PageNumber = 1;\r\n stampAnnot.X = 0;\r\n stampAnnot.Y = 0;\r\n stampAnnot.Width = 150;\r\n stampAnnot.Height = 78;\r\n const keepAsSVG = false;\r\n stampAnnot.ReadOnly = false;\r\n stampAnnot.setImageData(url, keepAsSVG);\r\n stampAnnot.Author = this.instance.annotManager.getCurrentUser();\r\n this.instance.annotManager.addAnnotation(stampAnnot);\r\n this.instance.annotManager.redrawAnnotation(stampAnnot);\r\n this.stampAnnots.push(stampAnnot);\r\n } else {\r\n console.error('No pdfTron instance');\r\n }\r\n }\r\n addWatermark(text) {\r\n text = new Array(100 * 2).join(text + ' '); // number of lines\r\n if (this.instance) {\r\n this.instance.docViewer.setWatermark({\r\n custom: (ctx, pageNumber, pageWidth, pageHeight) => {\r\n // ctx is an instance of CanvasRenderingContext2D\r\n ctx.fillStyle = '#d9dce2';\r\n ctx.font = '16pt Arial';\r\n ctx.globalAlpha = 0.3;\r\n let txtHeight = 50;\r\n const lineNumber = pageWidth > pageHeight ? pageWidth : pageHeight;\r\n for (var i = 0; i < Math.ceil((lineNumber * 1.5) / txtHeight); i++) {\r\n ctx.save();\r\n ctx.rotate(-45);\r\n ctx.fillText(text, 0, i * txtHeight);\r\n ctx.restore();\r\n }\r\n },\r\n });\r\n } else {\r\n console.error('No pdfTron instance');\r\n }\r\n }\r\n\r\n removeWatermark(){\r\n this.instance.docViewer.setWatermark({});\r\n this.instance.docViewer.refreshAll();\r\n this.instance.docViewer.updateView();\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n Inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport WebViewer, { CoreControls } from '@pdftron/webviewer';\r\nimport { NuxeoService } from '../../../Core/services/nuxeo/nuxeo.service';\r\nimport { PdftronService } from './pdftron.service';\r\nimport { APP_BASE_HREF } from '@angular/common';\r\nimport { SecurePipe } from '../../../pipes/secure.pipe';\r\n\r\n/**\r\n * A reusable file viewer based on PDFTron Library\r\n * @title\r\n * PDFTron Viewer\r\n * @example\r\n * <app-pdftron\r\n * [fileData]=\"fileData\"\r\n * [editMode]=\"false\"\r\n * [docId]=\"fileId\"\r\n * [fileTitle]=\"file.title\"\r\n * >\r\n * </app-pdftron>\r\n */\r\n@Component({\r\n selector: 'app-pdftron',\r\n templateUrl: './pdftron.component.html',\r\n styleUrls: ['./pdftron.component.scss'],\r\n providers: [SecurePipe],\r\n})\r\nexport class PdftronComponent\r\n implements OnInit, AfterViewInit, OnDestroy, OnChanges\r\n{\r\n @ViewChild('fileViewer') viewerRef: ElementRef;\r\n webViewerInstance;\r\n /** Disable/Enable Annotation */\r\n @Input()\r\n editMode: boolean;\r\n @Input() actionClicked = false; // used to know if there is action clicked outside to start edit mode or not\r\n isDocumentLoading: boolean;\r\n isFetching: boolean;\r\n /** Document title */\r\n @Input()\r\n fileTitle: string;\r\n /** Document ID */\r\n @Input()\r\n docId: string;\r\n @Input()\r\n DOCUMENT_TYPE = 'application/pdf';\r\n @Input()\r\n fileData;\r\n @Input()\r\n fitMode: 'FitWidth' | 'FitPage' | 'Zoom' = 'FitWidth';\r\n @Input()\r\n correspondance;\r\n constructor(\r\n public cdr: ChangeDetectorRef,\r\n private pdftronService: PdftronService,\r\n private nuxeo: NuxeoService,\r\n @Inject(APP_BASE_HREF) private baseHref: string,\r\n private securePipe: SecurePipe,\r\n @Inject('environment') private environment\r\n ) {}\r\n\r\n async ngOnInit(): Promise<void> {}\r\n\r\n async ngAfterViewInit(): Promise<void> {\r\n if (this.fileTitle.endsWith('.ppt')) {\r\n this.DOCUMENT_TYPE = 'application/vnd.ms-powerpoint';\r\n } else if (this.fileTitle.endsWith('.pptx')) {\r\n this.DOCUMENT_TYPE =\r\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation';\r\n } else if (this.fileTitle.endsWith('.doc')) {\r\n this.DOCUMENT_TYPE = 'application/msword';\r\n } else if (this.fileTitle.endsWith('.docx')) {\r\n this.DOCUMENT_TYPE =\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';\r\n }\r\n WebViewer(\r\n {\r\n path: this.baseHref + '/assets/pdftrons',\r\n forceClientSideInit: true,\r\n streaming: true,\r\n licenseKey: this.environment.pdftronLicenceKey,\r\n disabledElements: ['downloadButton'],\r\n\r\n },\r\n this.viewerRef.nativeElement\r\n ).then(async (instance) => {\r\n this.pdftronService.instance = this.webViewerInstance = instance;\r\n this.addDownloadButton();\r\n this.loadDocument();\r\n });\r\n }\r\n addDownloadButton() {\r\n this.webViewerInstance.setHeaderItems((header) => {\r\n header.push({\r\n type: 'actionButton',\r\n img: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" fill=\"currentColor\" class=\"bi bi-file-earmark-arrow-down\" viewBox=\"0 0 16 16\"> <path d=\"M8.5 6.5a.5.5 0 0 0-1 0v3.793L6.354 9.146a.5.5 0 1 0-.708.708l2 2a.5.5 0 0 0 .708 0l2-2a.5.5 0 0 0-.708-.708L8.5 10.293V6.5z\"/> <path d=\"M14 14V4.5L9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2zM9.5 3A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h5.5v2z\"/></svg>',\r\n title: 'Download',\r\n onClick: () => {\r\n let url = this.correspondance.properties.content.data;\r\n let fileName = this.correspondance.properties.content.name;\r\n if (url && fileName) {\r\n let safeUrl = this.securePipe.transform(url);\r\n safeUrl.subscribe((url: any) => {\r\n const link = document.createElement('a');\r\n link.style.display = 'none';\r\n link.href = url.changingThisBreaksApplicationSecurity;\r\n link.download = fileName;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n });\r\n }\r\n },\r\n });\r\n });\r\n }\r\n addWatermark() {\r\n const userinfo = this.nuxeo.nuxeoClient.user.properties;\r\n this.pdftronService.addWatermark(\r\n `${userinfo.username} `\r\n // `${userinfo.firstName} ${\r\n // userinfo.lastName\r\n // } `\r\n );\r\n }\r\n loadDocument(): void {\r\n if (!this.webViewerInstance || !this.fileData) {\r\n return;\r\n }\r\n const { docViewer, annotManager, Annotations } = this.webViewerInstance;\r\n docViewer.on('documentLoaded', () => {\r\n let fitMode = this.webViewerInstance.FitMode.FitWidth;\r\n if (this.fitMode === 'FitPage') {\r\n fitMode = this.webViewerInstance.FitMode.FitPage;\r\n } else if (this.fitMode === 'Zoom') {\r\n fitMode = this.webViewerInstance.FitMode.Zoom;\r\n }\r\n this.webViewerInstance.setFitMode(fitMode);\r\n });\r\n if (!this.editMode) {\r\n this.webViewerInstance.annotManager.setReadOnly(true);\r\n // instance.enableTools([]);\r\n }\r\n this.webViewerInstance.loadDocument(\r\n new Blob([new Uint8Array(this.fileData)], { type: this.DOCUMENT_TYPE }),\r\n {\r\n filename: this.fileTitle,\r\n }\r\n );\r\n\r\n this.isFetching = false;\r\n if (this.environment.enableViewerWaterMark) {\r\n this.addWatermark();\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n async exportAsBlob(): Promise<Blob> {\r\n const doc = this.webViewerInstance.docViewer.getDocument();\r\n const xfdfString =\r\n await this.webViewerInstance.annotManager.exportAnnotations();\r\n const data = await doc.getFileData({\r\n // saves the document with annotations in it\r\n xfdfString,\r\n });\r\n const arr = new Uint8Array(data);\r\n const blob = new Blob([arr], { type: this.DOCUMENT_TYPE });\r\n return Promise.resolve(blob);\r\n }\r\n\r\n toggleEdit(): void {\r\n if (!this.actionClicked) {\r\n // action clicked is not clicked then no update mode opened\r\n this.webViewerInstance.disableElements([\r\n 'toolbarGroup-Shapes',\r\n 'toolbarGroup-Edit',\r\n 'toolbarGroup-Insert',\r\n 'toolbarGroup-Annotate',\r\n ]);\r\n this.webViewerInstance.annotManager.setReadOnly(true);\r\n } else {\r\n //edit mode opened and must be when action is clicked\r\n this.webViewerInstance.enableElements([\r\n 'toolbarGroup-Shapes',\r\n 'toolbarGroup-Edit',\r\n 'toolbarGroup-Insert',\r\n 'toolbarGroup-Annotate',\r\n ]);\r\n this.webViewerInstance.annotManager.setReadOnly(false);\r\n // this.webViewerInstance.setToolbarGroup('toolbarGroup-Annotate');\r\n }\r\n }\r\n ngOnChanges(changes): void {\r\n if (this.webViewerInstance) {\r\n this.toggleEdit();\r\n if (\r\n changes.urlFileContent &&\r\n changes.urlFileContent.previousValue &&\r\n changes.urlFileContent.previousValue !==\r\n changes.urlFileContent.currentValue\r\n ) {\r\n this.ngOnDestroy();\r\n this.ngOnInit();\r\n this.ngAfterViewInit();\r\n }\r\n }\r\n }\r\n private pdfTronEvent(event) {\r\n if (this[event.action]) {\r\n // method exists in the component\r\n // this[event.action](event.params); // call it\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n if (this.webViewerInstance) {\r\n this.webViewerInstance.closeDocument().then(() => {\r\n console.log('document closed!');\r\n });\r\n this.pdftronService.instance = this.webViewerInstance = null;\r\n }\r\n }\r\n}\r\n","<div #fileViewer style=\"width: 100%; height: 100%;\"></div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PdftronComponent } from './pdftron/pdftron.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [PdftronComponent],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports:[\r\n PdftronComponent\r\n ]\r\n})\r\nexport class PdfTronModule { }\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { KeycloakService } from 'keycloak-angular';\r\nimport { NuxeoService } from '../nuxeo/nuxeo.service';\r\nimport { UserPreferencesService } from '../user/user-preferences.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InitializationService {\r\n\r\n constructor(\r\n private keycloak: KeycloakService,\r\n private nuxeoService: NuxeoService, \r\n private userPreferences: UserPreferencesService, \r\n @Inject('environment') private environment\r\n ) { }\r\n\r\n initializer() {\r\n return new Promise(async (resolve, reject) => {\r\n try {\r\n await this.keycloak.init({\r\n config: this.environment.keycloak,\r\n loadUserProfileAtStartUp: false,\r\n initOptions: {\r\n onLoad: 'login-required',\r\n checkLoginIframe: false\r\n },\r\n enableBearerInterceptor: true,\r\n bearerExcludedUrls: [\r\n '/assets/', '/cts/assets/'\r\n ],\r\n });\r\n const kc = this.keycloak.getKeycloakInstance();\r\n this.nuxeoService.init()\r\n .then((client) => {\r\n this.userPreferences.setStoragePrefix(client.user.id);\r\n resolve(true);\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n reject(err);\r\n });\r\n\r\n } catch (error) {\r\n reject(error);\r\n }\r\n\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DateAdapter } from '@angular/material/core';\r\nimport { isMoment, Moment } from 'moment';\r\nimport moment from 'moment-es6';\r\n\r\n@Injectable()\r\nexport class MomentDateAdapter extends DateAdapter<Moment> {\r\n\r\n private localeData: any = moment.localeData();\r\n\r\n overrideDisplayFormat: string;\r\n\r\n getYear(date: Moment): number {\r\n return date.year();\r\n }\r\n\r\n getMonth(date: Moment): number {\r\n return date.month();\r\n }\r\n\r\n getDate(date: Moment): number {\r\n return date.date();\r\n }\r\n\r\n getDayOfWeek(date: Moment): number {\r\n return date.day();\r\n }\r\n\r\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\r\n switch (style) {\r\n case 'long':\r\n return this.localeData.months();\r\n case 'short':\r\n return this.localeData.monthsShort();\r\n case 'narrow':\r\n return this.localeData.monthsShort().map((month) => month[0]);\r\n default:\r\n return [];\r\n }\r\n }\r\n\r\n getDateNames(): string[] {\r\n const dateNames: string[] = [];\r\n for (let date = 1; date <= 31; date++) {\r\n dateNames.push(String(date));\r\n }\r\n\r\n return dateNames;\r\n }\r\n\r\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\r\n switch (style) {\r\n case 'long':\r\n return this.localeData.weekdays();\r\n case 'short':\r\n return this.localeData.weekdaysShort();\r\n case 'narrow':\r\n return this.localeData.weekdaysShort();\r\n default:\r\n return [];\r\n }\r\n }\r\n\r\n getYearName(date: Moment): string {\r\n return String(date.year());\r\n }\r\n\r\n getFirstDayOfWeek(): number {\r\n return this.localeData.firstDayOfWeek();\r\n }\r\n\r\n getNumDaysInMonth(date: Moment): number {\r\n return date.daysInMonth();\r\n }\r\n\r\n clone(date: Moment): Moment {\r\n const locale = this.locale || 'en';\r\n return date.clone().locale(locale);\r\n }\r\n\r\n createDate(year: number, month: number, date: number): Moment {\r\n return moment([year, month, date]);\r\n }\r\n\r\n today(): Moment {\r\n const locale = this.locale || 'en';\r\n return moment().locale(locale);\r\n }\r\n\r\n parse(value: any, parseFormat: any): Moment {\r\n const locale = this.locale || 'en';\r\n\r\n if (value && typeof value === 'string') {\r\n let m = moment(value, parseFormat, locale, true);\r\n if (!m.isValid()) {\r\n // use strict parsing because Moment's parser is very forgiving, and this can lead to undesired behavior.\r\n m = moment(value, this.overrideDisplayFormat, locale, true);\r\n }\r\n if (m.isValid()) {\r\n // if user omits year, it defaults to 2001, so check for that issue.\r\n if (m.year() === 2001 && value.indexOf('2001') === -1) {\r\n // if 2001 not actually in the value string, change to current year\r\n const currentYear = new Date().getFullYear();\r\n m.set('year', currentYear);\r\n // if date is in the future, set previous year\r\n if (m.isAfter(moment())) {\r\n m.set('year', currentYear - 1);\r\n }\r\n }\r\n }\r\n return m;\r\n }\r\n\r\n return value ? moment(value).locale(locale) : null;\r\n }\r\n\r\n format(date: Moment, displayFormat: any): string {\r\n date = this.clone(date);\r\n displayFormat = this.overrideDisplayFormat ? this.overrideDisplayFormat : displayFormat;\r\n\r\n if (date && date.format) {\r\n return date.format(displayFormat);\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n addCalendarYears(date: Moment, years: number): Moment {\r\n return date.clone().add(years, 'y');\r\n }\r\n\r\n addCalendarMonths(date: Moment, months: number): Moment {\r\n return date.clone().add(months, 'M');\r\n }\r\n\r\n addCalendarDays(date: Moment, days: number): Moment {\r\n return date.clone().add(days, 'd');\r\n }\r\n\r\n getISODateString(date: Moment): string {\r\n return date.toISOString();\r\n }\r\n\r\n setLocale(locale: any): void {\r\n super.setLocale(locale);\r\n\r\n this.localeData = moment.localeData(locale);\r\n }\r\n\r\n compareDate(first: Moment, second: Moment): number {\r\n return first.diff(second, 'seconds', true);\r\n }\r\n\r\n sameDate(first: any | Moment, second: any | Moment): boolean {\r\n if (first == null) {\r\n // same if both null\r\n return second == null;\r\n } else if (isMoment(first)) {\r\n return first.isSame(second);\r\n } else {\r\n const isSame = super.sameDate(first, second);\r\n return isSame;\r\n }\r\n }\r\n\r\n clampDate(date: Moment, min?: any | Moment, max?: any | Moment): Moment {\r\n if (min && date.isBefore(min)) {\r\n return min;\r\n } else if (max && date.isAfter(max)) {\r\n return max;\r\n } else {\r\n return date;\r\n }\r\n }\r\n\r\n isDateInstance(date: any) {\r\n let isValidDateInstance = false;\r\n\r\n if (date) {\r\n isValidDateInstance = date._isAMomentObject;\r\n }\r\n\r\n return isValidDateInstance;\r\n }\r\n\r\n isValid(date: Moment): boolean {\r\n return date.isValid();\r\n }\r\n\r\n toIso8601(date: Moment): string {\r\n return this.clone(date).format();\r\n }\r\n\r\n fromIso8601(iso8601String: string): Moment | null {\r\n const locale = this.locale || 'en';\r\n const d = moment(iso8601String, moment.ISO_8601).locale(locale);\r\n return this.isValid(d) ? d : null;\r\n }\r\n\r\n invalid(): Moment {\r\n return moment.invalid();\r\n }\r\n}\r\n","/*\r\n * Public API Surface of nuxeo-development-framework\r\n */\r\n\r\nexport * from './lib/nuxeo-development-framework.service';\r\nexport * from './lib/nuxeo-development-framework.component';\r\nexport * from './lib/nuxeo-development-framework.module';\r\n\r\n\r\n// export all components \r\nexport * from './lib/components/avatar/avatar.module';\r\nexport * from './lib/components/avatar/avatar/avatar.component';\r\nexport * from './lib/components/hijri-gregorian-datepicker/ngx-hijri-gregorian-datepicker.module';\r\nexport * from './lib/components/hijri-gregorian-datepicker/services/date-formatter.service';\r\nexport * from './lib/components/dynamic-form/dynamic-form.module';\r\nexport * from './lib/components/dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component';\r\nexport * from './lib/components/vocabulary/services/vocabulary-api.service';\r\nexport * from './lib/components/vocabulary/interfaces/op-type.interface';\r\nexport * from './lib/components/dynamic-form/components/dynamic-form-department/services/department-api.service';\r\nexport * from './lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component';\r\nexport * from './lib/components/dynamic-form/components/dynamic-form-select-users/dynamic-form-select-users.component';\r\nexport * from './lib/components/card/card.module';\r\nexport * from './lib/components/custom-toastr/custom-toastr.module';\r\nexport * from './lib/components/confirm-caller/confirm-caller.module';\r\nexport * from './lib/components/confirm-caller/confirm-dialog/confirm-dialog.component'\r\nexport * from './lib/components/confirm-caller/confirm-caller.dialog'\r\nexport * from './lib/components/documents/documents.module';\r\nexport * from './lib/components/dynamic-view/dynamic-view.module';\r\nexport * from './lib/components/pagination/pagination.module';\r\nexport * from './lib/components/documents/services/documents.service';\r\nexport * from './lib/components/documents/services/document-templates.service';\r\nexport * from './lib/components/custom-toastr/services/custom-toastr.service';\r\nexport * from './lib/components/hijri-gregorian-datepicker/services/date-helper.service';\r\nexport * from './lib/components/documents/components/attachments-list/attachments-list.component';\r\nexport * from './lib/components/correspondence-relation/services/correspondence-realation.service';\r\nexport * from './lib/components/documents/constants/documents';\r\nexport * from './lib/components/documents/constants/document-templates';\r\nexport * from './lib/components/table/table.module';\r\nexport * from './lib/components/dynamic-search/dynamic-search.module';\r\nexport * from './lib/components/select/select.module';\r\nexport * from './lib/components/dynamic-table/dynamic-table.module';\r\nexport * from './lib/components/dynamic-table/services/dynamic-table.service';\r\nexport * from './lib/components/dynamic-search/dynamic-search/dynamic-search.component';\r\nexport * from './lib/components/dynamic-form/components/dynamic-form/form-builder.service';\r\nexport * from './lib/components/cts-tags/services/tags-api.service';\r\nexport * from './lib/components/vocabulary/vocabulary.module';\r\nexport * from './lib/components/dynamic-chart/dynamic-chart.module';\r\nexport * from './lib/components/dynamic-chart/services/chart-data.service';\r\nexport * from './lib/components/users-card/users-card.module';\r\nexport * from './lib/components/notifications/notifications.module';\r\nexport * from './lib/components/filter/filter.module';\r\nexport * from './lib/Core/core.module';\r\nexport * from './lib/components/comments/comments.module';\r\nexport * from './lib/components/create-entity/create-entity.module';\r\nexport * from './lib/components/cts-tags/cts-tags.module';\r\nexport * from './lib/components/latest-activity/latest-activity.module';\r\nexport * from './lib/components/viewer-log/viewer-log.module';\r\nexport * from './lib/components/correspondence-relation/correspondence-relation.module';\r\nexport * from './lib/components/correspondence-relation/services/viewer-files.service';\r\nexport * from './lib/components/pdf-tron/pdf-tron.module';\r\nexport * from './lib/components/pdf-tron/pdftron/pdftron.service';\r\nexport * from './lib/components/pdf-tron/pdftron/pdftron.component';\r\nexport * from './lib/components/dynamic-form/components/dynamic-form-boolitem/dynamic-form-boolitem.component';\r\nexport * from './lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-gregorian-datepicker.component';\r\nexport * from './lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component';\r\nexport * from './lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/gregorian-datepicker/gregorian-datepicker.component';\r\nexport * from './lib/components/dynamic-form/components/dynamic-form-builder/dynamic-form-builder.component';\r\nexport * from './lib/components/dynamic-form/components/dynamic-form-checkbox-item/dynamic-form-checkbox-item.component';\r\nexport * from './lib/components/dynamic-form/components/dynamic-form-dateitem/dynamic-form-dateitem.component';\r\nexport * from './lib/components/dynamic-form/components/dynamic-form-mapitem/dynamic-form-mapitem.component';\r\nexport * from './lib/components/dynamic-form/components/dynamic-form-textitem/dynamic-form-textitem.component';\r\nexport * from './lib/components/dynamic-form/components/dynamic-form-selectitem/dynamic-form-selectitem.component';\r\nexport * from './lib/components/dynamic-form/components/dynamic-form-options/dynamic-form-options.component';\r\nexport * from './lib/components/dynamic-form/components/dynamic-form-select-tag/dynamic-form-select-tag.component';\r\nexport * from './lib/components/dynamic-form/components/dynamic-form-select-user-filter/dynamic-form-select-user-filter.component';\r\nexport * from './lib/components/dynamic-form/components/dynamic-form-slide-toggleitem/dynamic-form-slide-toggleitem.component';\r\nexport * from './lib/components/dynamic-form/components/dynamic-form-textarea/dynamic-form-textarea.component';\r\nexport * from './lib/components/dynamic-form/components/department-form/department-form.component';\r\nexport * from './lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component';\r\nexport * from './lib/components/dynamic-form/components/dynamic-form/dynamic-form.component';\r\nexport * from './lib/components/dynamic-form/components/dynamic-form-field/dynamic-form-field.component';\r\nexport * from './lib/components/dynamic-form/components/dynamic-form-viewer/dynamic-form-viewer.component';\r\nexport * from './lib/components/card/card.component';\r\nexport * from './lib/components/documents/components/document-list/documents-list.component';\r\nexport * from './lib/components/documents/components/document-scan/document-scan.component';\r\nexport * from './lib/components/documents/components/document-upload/document-upload.component';\r\nexport * from './lib/components/documents/components/documents/documents.component';\r\nexport * from './lib/components/correspondence-relation/components/versions/versions.component';\r\nexport * from './lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component';\r\nexport * from './lib/components/viewer-log/components/viewer-log/viewer-log.component';\r\nexport * from './lib/components/latest-activity/components/latest-activity/latest-activity.component';\r\nexport * from './lib/components/cts-tags/components/correspondence-tags/correspondence-tags.component';\r\nexport * from './lib/components/create-entity/create-entity/create-entity.component';\r\nexport * from './lib/components/comments/components/comments-dashlet/comments-dashlet.component';\r\nexport * from './lib/components/notifications/components/notification-item/notification-item.component';\r\nexport * from './lib/components/notifications/components/notification-options/notification-options.component';\r\nexport * from './lib/components/notifications/components/notifications-button/notifications-button.component';\r\nexport * from './lib/components/notifications/components/notifications-list/notifications-list.component';\r\nexport * from './lib/components/filter/filter/filter.component';\r\nexport * from './lib/components/users-card/users-card.component';\r\nexport * from './lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component';\r\nexport * from './lib/components/dynamic-chart/dynamic-single-chart/dynamic-single-chart.component';\r\nexport * from './lib/components/vocabulary/vocabulary/vocabulary.component';\r\nexport * from './lib/components/select/select/select.component';\r\nexport * from './lib/components/dynamic-table/dynamic-table/dynamic-table.component';\r\nexport * from './lib/components/table/table/table.component';\r\nexport * from './lib/components/dynamic-view/department-viewer/department-viewer.component';\r\nexport * from './lib/components/dynamic-view/date-viewer/date-viewer.component';\r\nexport * from './lib/components/dynamic-view/boolean-viewer/boolean-viewer.component';\r\nexport * from './lib/components/dynamic-view/data-viewer/data-viewer.component';\r\nexport * from './lib/components/dynamic-view/dropdown-viewer/dropdown-viewer.component';\r\nexport * from './lib/components/dynamic-view/list-viewer/list-viewer.component';\r\nexport * from './lib/components/documents/components/attachments-page-provider/attachments-page-provider.component';\r\nexport * from './lib/components/pagination/pagination/pagination.component';\r\nexport * from './lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component';\r\n\r\n\r\n\r\n// export all from shared module \r\nexport * from './lib/shared/libraryShared.module';\r\nexport * from './lib/shared/components/button/button.component';\r\nexport * from './lib/shared/components/item-list/item-list.component';\r\nexport * from './lib/shared/components/no-data/no-data.component';\r\nexport * from './lib/shared/components/read-more/read-more.component';\r\nexport * from './lib/shared/components/search-autocomplete/search-autocomplete.component';\r\nexport * from './lib/shared/components/spinner/spinner.component';\r\nexport * from './lib/shared/components/user-card/user-card.component';\r\n\r\n\r\n\r\n// export all from core module \r\nexport * from './lib/Core/services/callApi/call-api.service';\r\nexport * from './lib/Core/services/nuxeo/nuxeo.service';\r\nexport * from './lib/Core/services/translation/translation.service';\r\nexport * from './lib/Core/services/translation/translate-loader.service';\r\nexport * from './lib/Core/services/user/user-preferences.service';\r\nexport * from './lib/Core/services/localStorag/local-storag.service';\r\nexport * from './lib/Core/services/initialization/initialization.service';\r\nexport * from './lib/Core/services/roles/roles.service';\r\nexport * from './lib/Core/models/component.model';\r\nexport * from './lib/Core/enums/language.enum';\r\nexport * from './lib/Core/adapters/adapter.service';\r\nexport * from './lib/Core/utilities/moment-date-adapter';\r\n\r\n\r\n// export all pipes\r\nexport * from './lib/pipes/pipes.module';\r\nexport * from './lib/pipes/time-ago.pipe';\r\nexport * from './lib/pipes/localized-date.pipe';\r\nexport * from './lib/pipes/secure.pipe';\r\nexport * from './lib/pipes/secure-html.pipe';\r\nexport * from './lib/pipes/multi-value.pipe';\r\nexport * from './lib/pipes/file-size.pipe';\r\nexport * from './lib/pipes/hijri-date.pipe';\r\n\r\n//export all directives\r\nexport * from './lib/directive/directive.module';\r\nexport * from './lib/directive/clickOutSide/click-outside.directive';\r\nexport * from './lib/directive/permissions/permissions.directive';\r\nexport * from './lib/directive/rtl/set-rtl.directive';\r\nexport * from './lib/directive/app-has-role/app-has-role.directive';\r\nexport * from './lib/directive/rtl/set-dir-rtl.directive';\r\n\r\n\r\n//export all configuration\r\nexport * from './lib/configuration/app-config.service';\r\nexport * from './lib/configuration/helpers/app-initializer';\r\n\r\n\r\n\r\n// Eval\r\nexport * from './lib/directive/permissions/evaluators.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Injectable","Component","map","retry","catchError","throwError","of","Observable","forkJoin","LocalStoragService","UserPreferenceValues","BehaviorSubject","distinctUntilChanged","UserPreferencesService","Lang","Nuxeo","doFetch","Unmarshallers","Authentication","RolesService","Inject","from","NuxeoService","APP_BASE_HREF","TRANSLATION_PROVIDER","InjectionToken","TranslationService","Optional","registerLocaleData","localeAr","localeEn","CommonModule","HttpClientModule","KeycloakAngularModule","RxReactiveFormsModule","TranslateModule","TreeviewModule","ToastrModule","TranslateStore","TranslateService","TranslateLoader","APP_INITIALIZER","NgModule","FormsModule","ReactiveFormsModule","Pipe","Input","Subject","takeUntil","DatePipe","moment","moment_","NgbDateParserFormatter","momentjs","momentHijri","NgbDate","ControlContainer","SkipSelf","NgForm","Directive","EventEmitter","ViewEncapsulation","ViewChild","Output","NgbDatepickerI18n","NgbCalendar","NgbCalendarIslamicUmalqura","NgbModule","HostListener","first","ReplaySubject","Self","RouterModule","MatProgressSpinnerModule","MatIconModule","MatListModule","MatMenuModule","AutocompleteLibModule","filter","sortBy","each","unionWith","isEqual","cloneDeep","Components","Utils","FormBuilderComponent","OWL_DATE_TIME_FORMATS","OwlDateTimeIntl","minute","TreeviewItem","Cacheable","LocalStorageStrategy","CacheBuster","DefaultTreeviewI18n","Toast","trigger","state","style","transition","animate","NgSelectComponent","FormGroup","FormControl","Validators","MAT_DIALOG_DATA","take","TreeviewConfig","isNil","TreeviewHelper","TreeviewI18n","DropdownTreeviewComponent","concat","debounceTime","tap","switchMap","_","editForm","COMPONENT_OPTIONS","registerCustomFormioComponent","ChangeDetectionStrategy","OwlDateTimeModule","OwlMomentDateTimeModule","MatDatepickerModule","MatNativeDateModule","MatCheckboxModule","MatInputModule","MatButtonModule","MatDatetimepickerModule","MatNativeDatetimeModule","NgSelectModule","MatSlideToggleModule","MatRadioModule","MatTooltipModule","FormioModule","MatDialogModule","combineLatest","Dynamsoft","FormArray","MatProgressBarModule","NgxDatatableModule","NG_VALUE_ACCESSOR","forwardRef","Chart","publishReplay","refCount","SockJS","Stomp","InfiniteScrollModule","MatBadgeModule","MatToolbarModule","MatChipsModule","MatDialogConfig","LayoutModule","MatExpansionModule","WebViewer","isMoment","DateAdapter"],"mappings":"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"}