@tsi-developpement/tsi-shared-ui 0.0.1

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 (558) hide show
  1. package/esm2022/lib/consts/app-providers.mjs +11 -0
  2. package/esm2022/lib/consts/html-template.const.mjs +40 -0
  3. package/esm2022/lib/consts/index.mjs +8 -0
  4. package/esm2022/lib/consts/localization-key.mjs +12 -0
  5. package/esm2022/lib/consts/locals.const.mjs +8 -0
  6. package/esm2022/lib/consts/queryParamNames.const.mjs +11 -0
  7. package/esm2022/lib/consts/themes.mjs +5 -0
  8. package/esm2022/lib/consts/tsi-consts.mjs +45 -0
  9. package/esm2022/lib/end-points/authorization-endpoints.mjs +35 -0
  10. package/esm2022/lib/end-points/baseuri.mjs +11 -0
  11. package/esm2022/lib/end-points/endpoints.mjs +208 -0
  12. package/esm2022/lib/end-points/import-export-endpoint.mjs +35 -0
  13. package/esm2022/lib/end-points/index.mjs +7 -0
  14. package/esm2022/lib/end-points/presentation-settings-endpoints.mjs +13 -0
  15. package/esm2022/lib/end-points/reporting-endpoints.mjs +55 -0
  16. package/esm2022/lib/end-points/shared-endpoint.mjs +12 -0
  17. package/esm2022/lib/end-points/user-identity-endpoints.mjs +61 -0
  18. package/esm2022/lib/enums/Language.mjs +9 -0
  19. package/esm2022/lib/enums/auto-complete.mjs +6 -0
  20. package/esm2022/lib/enums/button-type.enum.mjs +6 -0
  21. package/esm2022/lib/enums/claim-types.mjs +15 -0
  22. package/esm2022/lib/enums/code-format.mjs +6 -0
  23. package/esm2022/lib/enums/component-use-modes-enum.mjs +19 -0
  24. package/esm2022/lib/enums/css-units.mjs +10 -0
  25. package/esm2022/lib/enums/decimal-format.mjs +8 -0
  26. package/esm2022/lib/enums/display-types.mjs +35 -0
  27. package/esm2022/lib/enums/filter-operator-type.mjs +34 -0
  28. package/esm2022/lib/enums/form-validation-error.mjs +7 -0
  29. package/esm2022/lib/enums/grid-selection-mode.mjs +7 -0
  30. package/esm2022/lib/enums/grid-sort-mode.mjs +7 -0
  31. package/esm2022/lib/enums/http-method-types.mjs +6 -0
  32. package/esm2022/lib/enums/index.mjs +25 -0
  33. package/esm2022/lib/enums/input-types.mjs +20 -0
  34. package/esm2022/lib/enums/layout-orientation.mjs +6 -0
  35. package/esm2022/lib/enums/logout-reason-enum.mjs +8 -0
  36. package/esm2022/lib/enums/modal-size-enum.mjs +10 -0
  37. package/esm2022/lib/enums/report-type.mjs +9 -0
  38. package/esm2022/lib/enums/status.mjs +9 -0
  39. package/esm2022/lib/enums/text-box-type.mjs +7 -0
  40. package/esm2022/lib/enums/tooltipPosition.enum.mjs +8 -0
  41. package/esm2022/lib/enums/tsi-component-enum.mjs +40 -0
  42. package/esm2022/lib/enums/type-import.mjs +6 -0
  43. package/esm2022/lib/functions/array.functions.mjs +8 -0
  44. package/esm2022/lib/functions/index.mjs +3 -0
  45. package/esm2022/lib/functions/modal-open.function.mjs +69 -0
  46. package/esm2022/lib/guards/admin.guard.mjs +37 -0
  47. package/esm2022/lib/guards/auth.guard.mjs +30 -0
  48. package/esm2022/lib/guards/index.mjs +4 -0
  49. package/esm2022/lib/guards/permission.guard.mjs +32 -0
  50. package/esm2022/lib/interfaces/configuration/configuration.mjs +2 -0
  51. package/esm2022/lib/interfaces/generic-form/generic-form.mjs +118 -0
  52. package/esm2022/lib/interfaces/generic-types/dictionary.mjs +2 -0
  53. package/esm2022/lib/interfaces/grid/grid-configuration.mjs +2 -0
  54. package/esm2022/lib/interfaces/index.mjs +12 -0
  55. package/esm2022/lib/interfaces/modal/dynamic.component.mjs +7 -0
  56. package/esm2022/lib/interfaces/modal/modal-size.mjs +2 -0
  57. package/esm2022/lib/interfaces/pagination/pagination-base.mjs +2 -0
  58. package/esm2022/lib/interfaces/select-list/combo-status-model.mjs +10 -0
  59. package/esm2022/lib/interfaces/settings/app-settings.mjs +2 -0
  60. package/esm2022/lib/interfaces/styles/css-size-property.mjs +17 -0
  61. package/esm2022/lib/interfaces/translation/translation.mjs +2 -0
  62. package/esm2022/lib/models/Notes/Note.mjs +7 -0
  63. package/esm2022/lib/models/application/configuration/endpoint-infos.mjs +3 -0
  64. package/esm2022/lib/models/application/configuration/entity-delete-behavior.mjs +2 -0
  65. package/esm2022/lib/models/authorization/authorization-token-mapper.mjs +24 -0
  66. package/esm2022/lib/models/authorization/authorization-token.mjs +2 -0
  67. package/esm2022/lib/models/common/component-descriminator.mjs +2 -0
  68. package/esm2022/lib/models/common/entity-properties.mjs +2 -0
  69. package/esm2022/lib/models/common/entity-validations.mjs +2 -0
  70. package/esm2022/lib/models/common/event-schema.mjs +2 -0
  71. package/esm2022/lib/models/common/key-value-pair.mjs +2 -0
  72. package/esm2022/lib/models/entity-info/entity-info.mjs +29 -0
  73. package/esm2022/lib/models/filter/filter-by-existing-values.mjs +7 -0
  74. package/esm2022/lib/models/filter/paged-result-request-base.mjs +13 -0
  75. package/esm2022/lib/models/filter/search-field.mjs +2 -0
  76. package/esm2022/lib/models/import-export/import-export.mjs +15 -0
  77. package/esm2022/lib/models/index.mjs +38 -0
  78. package/esm2022/lib/models/journalisation-application/journalisation-application.mjs +10 -0
  79. package/esm2022/lib/models/journalisation-application/status-history.mjs +3 -0
  80. package/esm2022/lib/models/layout/layout-config.mjs +2 -0
  81. package/esm2022/lib/models/modal/bs-modal.mjs +6 -0
  82. package/esm2022/lib/models/presentation-settings/presentation-settings.mjs +8 -0
  83. package/esm2022/lib/models/progress-bar/progress-bar-create-request.mjs +2 -0
  84. package/esm2022/lib/models/progress-bar/progress-bar-response.mjs +8 -0
  85. package/esm2022/lib/models/progress-bar/progress-bar-update-request.mjs +3 -0
  86. package/esm2022/lib/models/remote-services-utility/subscription-result.mjs +17 -0
  87. package/esm2022/lib/models/reporting/json-data-connection.mjs +2 -0
  88. package/esm2022/lib/models/reporting/optional-endpoints.mjs +2 -0
  89. package/esm2022/lib/models/reporting/report-template-response.mjs +2 -0
  90. package/esm2022/lib/models/reporting/report-to-edit-template.mjs +2 -0
  91. package/esm2022/lib/models/reporting/report-to-print.mjs +2 -0
  92. package/esm2022/lib/models/reporting/report-to-template.mjs +2 -0
  93. package/esm2022/lib/models/settings/devise.mjs +3 -0
  94. package/esm2022/lib/models/settings/fichier.mjs +6 -0
  95. package/esm2022/lib/models/settings/type-fichier.mjs +3 -0
  96. package/esm2022/lib/models/tsi-card/tsi-card.mjs +3 -0
  97. package/esm2022/lib/models/user-identity/login-response.mjs +7 -0
  98. package/esm2022/lib/models/user-identity/tenant.mjs +3 -0
  99. package/esm2022/lib/models/user-identity/user-identity.mjs +3 -0
  100. package/esm2022/lib/models/workflow/workflow.mjs +14 -0
  101. package/esm2022/lib/package-initializer.mjs +7 -0
  102. package/esm2022/lib/pipes/cut-label.pipe.mjs +23 -0
  103. package/esm2022/lib/pipes/index.mjs +8 -0
  104. package/esm2022/lib/pipes/localize.pipe.mjs +51 -0
  105. package/esm2022/lib/pipes/modal-label.pipe.mjs +37 -0
  106. package/esm2022/lib/pipes/shorten.pipe.mjs +20 -0
  107. package/esm2022/lib/pipes/to-number.pipe.mjs +20 -0
  108. package/esm2022/lib/pipes/tsi-currency.pipe.mjs +29 -0
  109. package/esm2022/lib/pipes/tsi-decimal.pipe.mjs +21 -0
  110. package/esm2022/lib/providers/index.mjs +2 -0
  111. package/esm2022/lib/providers/shared-ui-tsi.provider.mjs +15 -0
  112. package/esm2022/lib/routes/admin.routes.mjs +5 -0
  113. package/esm2022/lib/routes/app.routes.mjs +7 -0
  114. package/esm2022/lib/routes/identity.routes.mjs +4 -0
  115. package/esm2022/lib/routes/index.mjs +5 -0
  116. package/esm2022/lib/routes/manage-reporting.routes.mjs +5 -0
  117. package/esm2022/lib/services/Component-Finder/tsi-component-finder.service.mjs +22 -0
  118. package/esm2022/lib/services/Import-Export/modele-import.service.mjs +59 -0
  119. package/esm2022/lib/services/Note/Note.service.mjs +35 -0
  120. package/esm2022/lib/services/UserIdentity/identity-platform-authentication.service.mjs +29 -0
  121. package/esm2022/lib/services/UserIdentity/user-identity.service.mjs +40 -0
  122. package/esm2022/lib/services/application/api-explorer.service.mjs +24 -0
  123. package/esm2022/lib/services/application/app.layout.service.mjs +97 -0
  124. package/esm2022/lib/services/application/parametres-application-parambase.service.mjs +20 -0
  125. package/esm2022/lib/services/authorization/authorization.service.mjs +124 -0
  126. package/esm2022/lib/services/authorization/identity-manager.service.mjs +97 -0
  127. package/esm2022/lib/services/base/crud-base.service.mjs +38 -0
  128. package/esm2022/lib/services/configuration/entity-configuration.service.mjs +49 -0
  129. package/esm2022/lib/services/currentUser/currentUser.service.mjs +49 -0
  130. package/esm2022/lib/services/date-helper.service.mjs +133 -0
  131. package/esm2022/lib/services/dialog-data.service.mjs +32 -0
  132. package/esm2022/lib/services/fichier/fichier-upload.service.mjs +44 -0
  133. package/esm2022/lib/services/fichier/fichier.service.mjs +20 -0
  134. package/esm2022/lib/services/formula.service.mjs +20 -0
  135. package/esm2022/lib/services/generator/html-template-generator.service.mjs +196 -0
  136. package/esm2022/lib/services/index.mjs +41 -0
  137. package/esm2022/lib/services/journalisation/journalisation-application.service.mjs +23 -0
  138. package/esm2022/lib/services/journalisation/status-history.service.mjs +23 -0
  139. package/esm2022/lib/services/layout/layout-helper.service.mjs +72 -0
  140. package/esm2022/lib/services/modal/tsi-bs-modal.service.mjs +37 -0
  141. package/esm2022/lib/services/modal/tsi-modal.service.mjs +21 -0
  142. package/esm2022/lib/services/module-code/module-code.service.mjs +31 -0
  143. package/esm2022/lib/services/module-main-parameter.service.mjs +31 -0
  144. package/esm2022/lib/services/notification/error-response-manager.service.mjs +57 -0
  145. package/esm2022/lib/services/notification/tsi-confirmation.service.mjs +37 -0
  146. package/esm2022/lib/services/notification/tsi-message.service.mjs +54 -0
  147. package/esm2022/lib/services/notification/tsi-notification.service.mjs +47 -0
  148. package/esm2022/lib/services/presentation-setting/presentation-designer-base.service.mjs +26 -0
  149. package/esm2022/lib/services/presentation-setting/presentation-designer.service.mjs +58 -0
  150. package/esm2022/lib/services/presentation-setting/presentation-setting.service.mjs +39 -0
  151. package/esm2022/lib/services/progress-bar/progress-bar-helper.service.mjs +39 -0
  152. package/esm2022/lib/services/progress-bar/progress-bar.service.mjs +30 -0
  153. package/esm2022/lib/services/record-info-popup.service.mjs +21 -0
  154. package/esm2022/lib/services/reporting/dashboard-module.service.mjs +24 -0
  155. package/esm2022/lib/services/reporting/reporting.service.mjs +111 -0
  156. package/esm2022/lib/services/settings/app-settings.service.mjs +47 -0
  157. package/esm2022/lib/services/settings/keyboard-shortcut.service.mjs +30 -0
  158. package/esm2022/lib/services/status/entityStatus.service.mjs +21 -0
  159. package/esm2022/lib/services/translation/translation.service.mjs +71 -0
  160. package/esm2022/lib/services/validation/entity-validations.service.mjs +21 -0
  161. package/esm2022/lib/services/validation/generic-validation-state.service.mjs +30 -0
  162. package/esm2022/lib/services/validation/input-registry.service.mjs +25 -0
  163. package/esm2022/lib/services/workflow/workflow-configuration.service.mjs +80 -0
  164. package/esm2022/lib/shared.module.mjs +643 -0
  165. package/esm2022/lib/tsi-base/components/app-base/app-base.component.mjs +101 -0
  166. package/esm2022/lib/tsi-base/components/tsi-base/tsi-base.component.mjs +25 -0
  167. package/esm2022/lib/tsi-base/components/tsi-form-base/tsi-form-base.component.mjs +645 -0
  168. package/esm2022/lib/tsi-base/components/tsi-list-base/tsi-list-base.component.mjs +514 -0
  169. package/esm2022/lib/tsi-base/index.mjs +6 -0
  170. package/esm2022/lib/tsi-base/tsi-input-base/tsi-input-base.component.mjs +141 -0
  171. package/esm2022/lib/tsi-components/alert-import-message/alert-import-message.component.mjs +19 -0
  172. package/esm2022/lib/tsi-components/button-components/Tsi-Submit-Button/tsi-submit-button.component.mjs +40 -0
  173. package/esm2022/lib/tsi-components/button-components/tsi-button/tsi-button.component.mjs +75 -0
  174. package/esm2022/lib/tsi-components/create-or-edit-entity-informations/create-or-edit-entity-informations.component.mjs +173 -0
  175. package/esm2022/lib/tsi-components/create-or-edit-modele-import/create-or-edit-modele-import.component.mjs +201 -0
  176. package/esm2022/lib/tsi-components/index.mjs +80 -0
  177. package/esm2022/lib/tsi-components/input-components/editable-grid/editable-grid.component.mjs +643 -0
  178. package/esm2022/lib/tsi-components/input-components/tsi-checkbox/tsi-checkbox.component.mjs +120 -0
  179. package/esm2022/lib/tsi-components/input-components/tsi-currency-other-input/tsi-currency-other-input.component.mjs +53 -0
  180. package/esm2022/lib/tsi-components/input-components/tsi-currency-societe-input/tsi-currency-societe-input.component.mjs +62 -0
  181. package/esm2022/lib/tsi-components/input-components/tsi-date-picker/tsi-date-picker.component.mjs +116 -0
  182. package/esm2022/lib/tsi-components/input-components/tsi-decimal-input/tsi-decimal-input.component.mjs +51 -0
  183. package/esm2022/lib/tsi-components/input-components/tsi-file-manager/tsi-file-manager.component.mjs +195 -0
  184. package/esm2022/lib/tsi-components/input-components/tsi-formula-box/tsi-formula-box.component.mjs +54 -0
  185. package/esm2022/lib/tsi-components/input-components/tsi-integer/tsi-integer.component.mjs +55 -0
  186. package/esm2022/lib/tsi-components/input-components/tsi-radio-button/tsi-radio-button.component.mjs +43 -0
  187. package/esm2022/lib/tsi-components/input-components/tsi-rate-input/tsi-rate-input.component.mjs +56 -0
  188. package/esm2022/lib/tsi-components/input-components/tsi-search-combo/tsi-search-combo.component.mjs +649 -0
  189. package/esm2022/lib/tsi-components/input-components/tsi-text-area/tsi-text-area.component.mjs +44 -0
  190. package/esm2022/lib/tsi-components/input-components/tsi-text-box/tsi-text-box.component.mjs +50 -0
  191. package/esm2022/lib/tsi-components/input-components/tsi-time-picker/tsi-time-picker.component.mjs +65 -0
  192. package/esm2022/lib/tsi-components/logout-popup/logout-popup.component.mjs +12 -0
  193. package/esm2022/lib/tsi-components/manage-import-export/manage-import-export.component.mjs +435 -0
  194. package/esm2022/lib/tsi-components/manage-reporting/add-report-popup/add-report-popup.component.mjs +148 -0
  195. package/esm2022/lib/tsi-components/manage-reporting/manage-reporting.component.mjs +1075 -0
  196. package/esm2022/lib/tsi-components/message-components/tsi-error-message/tsi-error-message.component.mjs +31 -0
  197. package/esm2022/lib/tsi-components/message-components/tsi-info-message/tsi-info-message.component.mjs +24 -0
  198. package/esm2022/lib/tsi-components/message-components/tsi-redirection-message/tsi-redirection-message.component.mjs +19 -0
  199. package/esm2022/lib/tsi-components/message-components/tsi-success-message/tsi-success-message.component.mjs +22 -0
  200. package/esm2022/lib/tsi-components/modal-component/modal.component.mjs +138 -0
  201. package/esm2022/lib/tsi-components/modal-loader/modal-loader.component.mjs +58 -0
  202. package/esm2022/lib/tsi-components/output-components/display-nested-prop/display-nested-prop.component.mjs +32 -0
  203. package/esm2022/lib/tsi-components/output-components/tsi-checkbox-display/tsi-checkbox-display.component.mjs +18 -0
  204. package/esm2022/lib/tsi-components/output-components/tsi-currency-other-display/tsi-currency-other-display.component.mjs +17 -0
  205. package/esm2022/lib/tsi-components/output-components/tsi-currency-societe-display/tsi-currency-societe-display.component.mjs +57 -0
  206. package/esm2022/lib/tsi-components/output-components/tsi-date-display/tsi-date-display.component.mjs +27 -0
  207. package/esm2022/lib/tsi-components/output-components/tsi-decimal-display/tsi-decimal-display.component.mjs +25 -0
  208. package/esm2022/lib/tsi-components/output-components/tsi-display-grid/tsi-display-grid.component.mjs +139 -0
  209. package/esm2022/lib/tsi-components/output-components/tsi-generic-grid/tsi-generic-grid.component.mjs +1509 -0
  210. package/esm2022/lib/tsi-components/output-components/tsi-image-display/tsi-image-display.component.mjs +144 -0
  211. package/esm2022/lib/tsi-components/output-components/tsi-integer-display/tsi-integer-display.component.mjs +13 -0
  212. package/esm2022/lib/tsi-components/output-components/tsi-label/tsi-label.component.mjs +24 -0
  213. package/esm2022/lib/tsi-components/output-components/tsi-label-legend/tsi-label-legend.component.mjs +18 -0
  214. package/esm2022/lib/tsi-components/output-components/tsi-legend/tsi-legend.component.mjs +20 -0
  215. package/esm2022/lib/tsi-components/output-components/tsi-paragraph/tsi-paragraph.component.mjs +17 -0
  216. package/esm2022/lib/tsi-components/output-components/tsi-rate-display/tsi-rate-display.component.mjs +30 -0
  217. package/esm2022/lib/tsi-components/output-components/tsi-time-display/tsi-time-display.component.mjs +17 -0
  218. package/esm2022/lib/tsi-components/output-components/tsi-view-grid/tsi-view-grid.component.mjs +427 -0
  219. package/esm2022/lib/tsi-components/reporting/reporting.component.mjs +667 -0
  220. package/esm2022/lib/tsi-components/spinner/spinner.component.mjs +15 -0
  221. package/esm2022/lib/tsi-components/tsi-bubble-info/tsi-bubble-info.component.mjs +21 -0
  222. package/esm2022/lib/tsi-components/tsi-calender/context-menu/context-menu.component.mjs +46 -0
  223. package/esm2022/lib/tsi-components/tsi-calender/tsi-calender.component.mjs +297 -0
  224. package/esm2022/lib/tsi-components/tsi-card/tsi-card.component.mjs +64 -0
  225. package/esm2022/lib/tsi-components/tsi-card-list/tsi-card-list.component.mjs +112 -0
  226. package/esm2022/lib/tsi-components/tsi-change-password/tsi-change-password.component.mjs +39 -0
  227. package/esm2022/lib/tsi-components/tsi-code-generator/tsi-code-generator.component.mjs +83 -0
  228. package/esm2022/lib/tsi-components/tsi-divider/tsi-divider.component.mjs +18 -0
  229. package/esm2022/lib/tsi-components/tsi-form/tsi-form.component.mjs +305 -0
  230. package/esm2022/lib/tsi-components/tsi-form-modal-footer/tsi-form-modal-footer.component.mjs +15 -0
  231. package/esm2022/lib/tsi-components/tsi-generic-crud/tsi-generic-crud.component.mjs +883 -0
  232. package/esm2022/lib/tsi-components/tsi-generic-form/tsi-generic-form.component.mjs +149 -0
  233. package/esm2022/lib/tsi-components/tsi-kanban/tsi-kanban.component.mjs +231 -0
  234. package/esm2022/lib/tsi-components/tsi-log-event-history/tsi-log-event-history.component.mjs +119 -0
  235. package/esm2022/lib/tsi-components/tsi-modal/tsi-modal.component.mjs +25 -0
  236. package/esm2022/lib/tsi-components/tsi-modal-footer/tsi-modal-footer.component.mjs +119 -0
  237. package/esm2022/lib/tsi-components/tsi-modal-header/tsi-modal-header.component.mjs +54 -0
  238. package/esm2022/lib/tsi-components/tsi-notes-avertir/tsi-notes-avertir.component.mjs +27 -0
  239. package/esm2022/lib/tsi-components/tsi-notes-createoredit/tsi-notes.component.mjs +123 -0
  240. package/esm2022/lib/tsi-components/tsi-notes-grid/tsi-notes-grid.component.mjs +41 -0
  241. package/esm2022/lib/tsi-components/tsi-popup-text-viewer/tsi-popup-text-viewer.component.mjs +187 -0
  242. package/esm2022/lib/tsi-components/tsi-progress-bar/tsi-progress-bar.component.mjs +170 -0
  243. package/esm2022/lib/tsi-components/tsi-search-box/tsi-search-box.component.mjs +142 -0
  244. package/esm2022/lib/tsi-components/tsi-send-mail/tsi-send-mail.component.mjs +37 -0
  245. package/esm2022/lib/tsi-components/tsi-tab-panel/tsi-tab-panel.component.mjs +52 -0
  246. package/esm2022/lib/tsi-components/tsi-tab-view/tsi-tab-view.component.mjs +46 -0
  247. package/esm2022/lib/tsi-components/tsi-tenants/tsi-tenants.component.mjs +122 -0
  248. package/esm2022/lib/tsi-components/tsi-tooltip/tsi-tooltip.component.mjs +21 -0
  249. package/esm2022/lib/tsi-components/tsi-upload-fiche/tsi-upload-fiche.component.mjs +186 -0
  250. package/esm2022/lib/tsi-components/tsi-upload-grid/tsi-upload-grid.component.mjs +54 -0
  251. package/esm2022/lib/tsi-directives/auto-select.directive.mjs +33 -0
  252. package/esm2022/lib/tsi-directives/busy.directive.mjs +32 -0
  253. package/esm2022/lib/tsi-directives/dynamic-component-loader/ad.directive.mjs +16 -0
  254. package/esm2022/lib/tsi-directives/index.mjs +8 -0
  255. package/esm2022/lib/tsi-directives/module-main-parameter.directive.mjs +16 -0
  256. package/esm2022/lib/tsi-directives/presentation-designer-base.directive.mjs +238 -0
  257. package/esm2022/lib/tsi-directives/presentation-designer.directive.mjs +205 -0
  258. package/esm2022/lib/tsi-directives/validation.directive.mjs +85 -0
  259. package/esm2022/lib/tsi-helpers/compoent-reference.helper.mjs +7 -0
  260. package/esm2022/lib/tsi-helpers/date-helper.mjs +21 -0
  261. package/esm2022/lib/tsi-helpers/export-excel.helper.mjs +40 -0
  262. package/esm2022/lib/tsi-helpers/filter-helper.mjs +126 -0
  263. package/esm2022/lib/tsi-helpers/grid-col-style.helper.mjs +7 -0
  264. package/esm2022/lib/tsi-helpers/guid.helper.mjs +19 -0
  265. package/esm2022/lib/tsi-helpers/helpers.mjs +9 -0
  266. package/esm2022/lib/tsi-helpers/index.mjs +13 -0
  267. package/esm2022/lib/tsi-helpers/mapping-helper.mjs +10 -0
  268. package/esm2022/lib/tsi-helpers/object.helper.mjs +6 -0
  269. package/esm2022/lib/tsi-helpers/primeng-translate-config.mjs +55 -0
  270. package/esm2022/lib/tsi-helpers/storage-manager.mjs +33 -0
  271. package/esm2022/lib/tsi-helpers/type-registry.helper.mjs +49 -0
  272. package/esm2022/lib/types/enum-description.type.mjs +2 -0
  273. package/esm2022/lib/types/index.mjs +3 -0
  274. package/esm2022/lib/types/time-only.mjs +42 -0
  275. package/esm2022/public-api.mjs +21 -0
  276. package/esm2022/tsi-developpement-tsi-shared-ui.mjs +5 -0
  277. package/esm2022/tsi-tsi-shared-ui.mjs +5 -0
  278. package/fesm2022/tsi-developpement-tsi-shared-ui.mjs +17486 -0
  279. package/fesm2022/tsi-developpement-tsi-shared-ui.mjs.map +1 -0
  280. package/fesm2022/tsi-tsi-shared-ui.mjs +17486 -0
  281. package/fesm2022/tsi-tsi-shared-ui.mjs.map +1 -0
  282. package/index.d.ts +5 -0
  283. package/lib/consts/app-providers.d.ts +4 -0
  284. package/lib/consts/html-template.const.d.ts +12 -0
  285. package/lib/consts/index.d.ts +7 -0
  286. package/lib/consts/localization-key.d.ts +11 -0
  287. package/lib/consts/locals.const.d.ts +7 -0
  288. package/lib/consts/queryParamNames.const.d.ts +10 -0
  289. package/lib/consts/themes.d.ts +4 -0
  290. package/lib/consts/tsi-consts.d.ts +40 -0
  291. package/lib/end-points/authorization-endpoints.d.ts +31 -0
  292. package/lib/end-points/baseuri.d.ts +10 -0
  293. package/lib/end-points/endpoints.d.ts +205 -0
  294. package/lib/end-points/import-export-endpoint.d.ts +33 -0
  295. package/lib/end-points/index.d.ts +6 -0
  296. package/lib/end-points/presentation-settings-endpoints.d.ts +11 -0
  297. package/lib/end-points/reporting-endpoints.d.ts +53 -0
  298. package/lib/end-points/shared-endpoint.d.ts +9 -0
  299. package/lib/end-points/user-identity-endpoints.d.ts +59 -0
  300. package/lib/enums/Language.d.ts +9 -0
  301. package/lib/enums/auto-complete.d.ts +4 -0
  302. package/lib/enums/button-type.enum.d.ts +4 -0
  303. package/lib/enums/claim-types.d.ts +13 -0
  304. package/lib/enums/code-format.d.ts +4 -0
  305. package/lib/enums/component-use-modes-enum.d.ts +17 -0
  306. package/lib/enums/css-units.d.ts +8 -0
  307. package/lib/enums/decimal-format.d.ts +6 -0
  308. package/lib/enums/display-types.d.ts +17 -0
  309. package/lib/enums/filter-operator-type.d.ts +18 -0
  310. package/lib/enums/form-validation-error.d.ts +11 -0
  311. package/lib/enums/grid-selection-mode.d.ts +5 -0
  312. package/lib/enums/grid-sort-mode.d.ts +5 -0
  313. package/lib/enums/http-method-types.d.ts +4 -0
  314. package/lib/enums/index.d.ts +24 -0
  315. package/lib/enums/input-types.d.ts +18 -0
  316. package/lib/enums/layout-orientation.d.ts +4 -0
  317. package/lib/enums/logout-reason-enum.d.ts +6 -0
  318. package/lib/enums/modal-size-enum.d.ts +10 -0
  319. package/lib/enums/report-type.d.ts +7 -0
  320. package/lib/enums/status.d.ts +7 -0
  321. package/lib/enums/text-box-type.d.ts +5 -0
  322. package/lib/enums/tooltipPosition.enum.d.ts +6 -0
  323. package/lib/enums/tsi-component-enum.d.ts +37 -0
  324. package/lib/enums/type-import.d.ts +4 -0
  325. package/lib/functions/array.functions.d.ts +1 -0
  326. package/lib/functions/index.d.ts +1 -0
  327. package/lib/functions/modal-open.function.d.ts +9 -0
  328. package/lib/guards/admin.guard.d.ts +14 -0
  329. package/lib/guards/auth.guard.d.ts +12 -0
  330. package/lib/guards/index.d.ts +3 -0
  331. package/lib/guards/permission.guard.d.ts +2 -0
  332. package/lib/interfaces/configuration/configuration.d.ts +10 -0
  333. package/lib/interfaces/generic-form/generic-form.d.ts +45 -0
  334. package/lib/interfaces/generic-types/dictionary.d.ts +3 -0
  335. package/lib/interfaces/grid/grid-configuration.d.ts +116 -0
  336. package/lib/interfaces/index.d.ts +11 -0
  337. package/lib/interfaces/modal/dynamic.component.d.ts +18 -0
  338. package/lib/interfaces/modal/modal-size.d.ts +4 -0
  339. package/lib/interfaces/pagination/pagination-base.d.ts +46 -0
  340. package/lib/interfaces/select-list/combo-status-model.d.ts +8 -0
  341. package/lib/interfaces/settings/app-settings.d.ts +4 -0
  342. package/lib/interfaces/styles/css-size-property.d.ts +10 -0
  343. package/lib/interfaces/translation/translation.d.ts +10 -0
  344. package/lib/models/Notes/Note.d.ts +25 -0
  345. package/lib/models/application/configuration/endpoint-infos.d.ts +6 -0
  346. package/lib/models/application/configuration/entity-delete-behavior.d.ts +6 -0
  347. package/lib/models/authorization/authorization-token-mapper.d.ts +4 -0
  348. package/lib/models/authorization/authorization-token.d.ts +16 -0
  349. package/lib/models/common/component-descriminator.d.ts +4 -0
  350. package/lib/models/common/entity-properties.d.ts +5 -0
  351. package/lib/models/common/entity-validations.d.ts +7 -0
  352. package/lib/models/common/event-schema.d.ts +6 -0
  353. package/lib/models/common/key-value-pair.d.ts +4 -0
  354. package/lib/models/entity-info/entity-info.d.ts +37 -0
  355. package/lib/models/filter/filter-by-existing-values.d.ts +6 -0
  356. package/lib/models/filter/paged-result-request-base.d.ts +16 -0
  357. package/lib/models/filter/search-field.d.ts +35 -0
  358. package/lib/models/import-export/import-export.d.ts +28 -0
  359. package/lib/models/index.d.ts +37 -0
  360. package/lib/models/journalisation-application/journalisation-application.d.ts +39 -0
  361. package/lib/models/journalisation-application/status-history.d.ts +12 -0
  362. package/lib/models/layout/layout-config.d.ts +3 -0
  363. package/lib/models/modal/bs-modal.d.ts +5 -0
  364. package/lib/models/presentation-settings/presentation-settings.d.ts +14 -0
  365. package/lib/models/progress-bar/progress-bar-create-request.d.ts +8 -0
  366. package/lib/models/progress-bar/progress-bar-response.d.ts +10 -0
  367. package/lib/models/progress-bar/progress-bar-update-request.d.ts +9 -0
  368. package/lib/models/remote-services-utility/subscription-result.d.ts +15 -0
  369. package/lib/models/reporting/json-data-connection.d.ts +6 -0
  370. package/lib/models/reporting/optional-endpoints.d.ts +8 -0
  371. package/lib/models/reporting/report-template-response.d.ts +13 -0
  372. package/lib/models/reporting/report-to-edit-template.d.ts +29 -0
  373. package/lib/models/reporting/report-to-print.d.ts +18 -0
  374. package/lib/models/reporting/report-to-template.d.ts +19 -0
  375. package/lib/models/settings/devise.d.ts +9 -0
  376. package/lib/models/settings/fichier.d.ts +14 -0
  377. package/lib/models/settings/type-fichier.d.ts +4 -0
  378. package/lib/models/tsi-card/tsi-card.d.ts +9 -0
  379. package/lib/models/user-identity/login-response.d.ts +8 -0
  380. package/lib/models/user-identity/tenant.d.ts +5 -0
  381. package/lib/models/user-identity/user-identity.d.ts +5 -0
  382. package/lib/models/workflow/workflow.d.ts +36 -0
  383. package/lib/package-initializer.d.ts +1 -0
  384. package/lib/pipes/cut-label.pipe.d.ts +7 -0
  385. package/lib/pipes/index.d.ts +7 -0
  386. package/lib/pipes/localize.pipe.d.ts +11 -0
  387. package/lib/pipes/modal-label.pipe.d.ts +10 -0
  388. package/lib/pipes/shorten.pipe.d.ts +7 -0
  389. package/lib/pipes/to-number.pipe.d.ts +7 -0
  390. package/lib/pipes/tsi-currency.pipe.d.ts +10 -0
  391. package/lib/pipes/tsi-decimal.pipe.d.ts +7 -0
  392. package/lib/providers/index.d.ts +1 -0
  393. package/lib/providers/shared-ui-tsi.provider.d.ts +8 -0
  394. package/lib/routes/admin.routes.d.ts +4 -0
  395. package/lib/routes/app.routes.d.ts +6 -0
  396. package/lib/routes/identity.routes.d.ts +3 -0
  397. package/lib/routes/index.d.ts +4 -0
  398. package/lib/routes/manage-reporting.routes.d.ts +4 -0
  399. package/lib/services/Component-Finder/tsi-component-finder.service.d.ts +10 -0
  400. package/lib/services/Import-Export/modele-import.service.d.ts +21 -0
  401. package/lib/services/Note/Note.service.d.ts +15 -0
  402. package/lib/services/UserIdentity/identity-platform-authentication.service.d.ts +13 -0
  403. package/lib/services/UserIdentity/user-identity.service.d.ts +15 -0
  404. package/lib/services/application/api-explorer.service.d.ts +13 -0
  405. package/lib/services/application/app.layout.service.d.ts +47 -0
  406. package/lib/services/application/parametres-application-parambase.service.d.ts +10 -0
  407. package/lib/services/authorization/authorization.service.d.ts +46 -0
  408. package/lib/services/authorization/identity-manager.service.d.ts +23 -0
  409. package/lib/services/base/crud-base.service.d.ts +20 -0
  410. package/lib/services/configuration/entity-configuration.service.d.ts +22 -0
  411. package/lib/services/currentUser/currentUser.service.d.ts +26 -0
  412. package/lib/services/date-helper.service.d.ts +32 -0
  413. package/lib/services/dialog-data.service.d.ts +12 -0
  414. package/lib/services/fichier/fichier-upload.service.d.ts +15 -0
  415. package/lib/services/fichier/fichier.service.d.ts +10 -0
  416. package/lib/services/formula.service.d.ts +10 -0
  417. package/lib/services/generator/html-template-generator.service.d.ts +28 -0
  418. package/lib/services/index.d.ts +40 -0
  419. package/lib/services/journalisation/journalisation-application.service.d.ts +12 -0
  420. package/lib/services/journalisation/status-history.service.d.ts +12 -0
  421. package/lib/services/layout/layout-helper.service.d.ts +25 -0
  422. package/lib/services/modal/tsi-bs-modal.service.d.ts +16 -0
  423. package/lib/services/modal/tsi-modal.service.d.ts +9 -0
  424. package/lib/services/module-code/module-code.service.d.ts +18 -0
  425. package/lib/services/module-main-parameter.service.d.ts +12 -0
  426. package/lib/services/notification/error-response-manager.service.d.ts +13 -0
  427. package/lib/services/notification/tsi-confirmation.service.d.ts +11 -0
  428. package/lib/services/notification/tsi-message.service.d.ts +13 -0
  429. package/lib/services/notification/tsi-notification.service.d.ts +18 -0
  430. package/lib/services/presentation-setting/presentation-designer-base.service.d.ts +14 -0
  431. package/lib/services/presentation-setting/presentation-designer.service.d.ts +19 -0
  432. package/lib/services/presentation-setting/presentation-setting.service.d.ts +16 -0
  433. package/lib/services/progress-bar/progress-bar-helper.service.d.ts +19 -0
  434. package/lib/services/progress-bar/progress-bar.service.d.ts +16 -0
  435. package/lib/services/record-info-popup.service.d.ts +10 -0
  436. package/lib/services/reporting/dashboard-module.service.d.ts +11 -0
  437. package/lib/services/reporting/reporting.service.d.ts +32 -0
  438. package/lib/services/settings/app-settings.service.d.ts +13 -0
  439. package/lib/services/settings/keyboard-shortcut.service.d.ts +9 -0
  440. package/lib/services/status/entityStatus.service.d.ts +11 -0
  441. package/lib/services/translation/translation.service.d.ts +20 -0
  442. package/lib/services/validation/entity-validations.service.d.ts +10 -0
  443. package/lib/services/validation/generic-validation-state.service.d.ts +15 -0
  444. package/lib/services/validation/input-registry.service.d.ts +11 -0
  445. package/lib/services/workflow/workflow-configuration.service.d.ts +28 -0
  446. package/lib/shared.module.d.ts +141 -0
  447. package/lib/tsi-base/components/app-base/app-base.component.d.ts +28 -0
  448. package/lib/tsi-base/components/tsi-base/tsi-base.component.d.ts +11 -0
  449. package/lib/tsi-base/components/tsi-form-base/tsi-form-base.component.d.ts +118 -0
  450. package/lib/tsi-base/components/tsi-list-base/tsi-list-base.component.d.ts +85 -0
  451. package/lib/tsi-base/index.d.ts +5 -0
  452. package/lib/tsi-base/tsi-input-base/tsi-input-base.component.d.ts +34 -0
  453. package/lib/tsi-components/alert-import-message/alert-import-message.component.d.ts +10 -0
  454. package/lib/tsi-components/button-components/Tsi-Submit-Button/tsi-submit-button.component.d.ts +16 -0
  455. package/lib/tsi-components/button-components/tsi-button/tsi-button.component.d.ts +26 -0
  456. package/lib/tsi-components/create-or-edit-entity-informations/create-or-edit-entity-informations.component.d.ts +31 -0
  457. package/lib/tsi-components/create-or-edit-modele-import/create-or-edit-modele-import.component.d.ts +52 -0
  458. package/lib/tsi-components/index.d.ts +79 -0
  459. package/lib/tsi-components/input-components/editable-grid/editable-grid.component.d.ts +127 -0
  460. package/lib/tsi-components/input-components/tsi-checkbox/tsi-checkbox.component.d.ts +30 -0
  461. package/lib/tsi-components/input-components/tsi-currency-other-input/tsi-currency-other-input.component.d.ts +18 -0
  462. package/lib/tsi-components/input-components/tsi-currency-societe-input/tsi-currency-societe-input.component.d.ts +21 -0
  463. package/lib/tsi-components/input-components/tsi-date-picker/tsi-date-picker.component.d.ts +38 -0
  464. package/lib/tsi-components/input-components/tsi-decimal-input/tsi-decimal-input.component.d.ts +14 -0
  465. package/lib/tsi-components/input-components/tsi-file-manager/tsi-file-manager.component.d.ts +45 -0
  466. package/lib/tsi-components/input-components/tsi-formula-box/tsi-formula-box.component.d.ts +17 -0
  467. package/lib/tsi-components/input-components/tsi-integer/tsi-integer.component.d.ts +19 -0
  468. package/lib/tsi-components/input-components/tsi-radio-button/tsi-radio-button.component.d.ts +16 -0
  469. package/lib/tsi-components/input-components/tsi-rate-input/tsi-rate-input.component.d.ts +16 -0
  470. package/lib/tsi-components/input-components/tsi-search-combo/tsi-search-combo.component.d.ts +92 -0
  471. package/lib/tsi-components/input-components/tsi-text-area/tsi-text-area.component.d.ts +17 -0
  472. package/lib/tsi-components/input-components/tsi-text-box/tsi-text-box.component.d.ts +21 -0
  473. package/lib/tsi-components/input-components/tsi-time-picker/tsi-time-picker.component.d.ts +23 -0
  474. package/lib/tsi-components/logout-popup/logout-popup.component.d.ts +5 -0
  475. package/lib/tsi-components/manage-import-export/manage-import-export.component.d.ts +64 -0
  476. package/lib/tsi-components/manage-reporting/add-report-popup/add-report-popup.component.d.ts +151 -0
  477. package/lib/tsi-components/manage-reporting/manage-reporting.component.d.ts +109 -0
  478. package/lib/tsi-components/message-components/tsi-error-message/tsi-error-message.component.d.ts +15 -0
  479. package/lib/tsi-components/message-components/tsi-info-message/tsi-info-message.component.d.ts +13 -0
  480. package/lib/tsi-components/message-components/tsi-redirection-message/tsi-redirection-message.component.d.ts +9 -0
  481. package/lib/tsi-components/message-components/tsi-success-message/tsi-success-message.component.d.ts +13 -0
  482. package/lib/tsi-components/modal-component/modal.component.d.ts +25 -0
  483. package/lib/tsi-components/modal-loader/modal-loader.component.d.ts +27 -0
  484. package/lib/tsi-components/output-components/display-nested-prop/display-nested-prop.component.d.ts +14 -0
  485. package/lib/tsi-components/output-components/tsi-checkbox-display/tsi-checkbox-display.component.d.ts +6 -0
  486. package/lib/tsi-components/output-components/tsi-currency-other-display/tsi-currency-other-display.component.d.ts +7 -0
  487. package/lib/tsi-components/output-components/tsi-currency-societe-display/tsi-currency-societe-display.component.d.ts +19 -0
  488. package/lib/tsi-components/output-components/tsi-date-display/tsi-date-display.component.d.ts +10 -0
  489. package/lib/tsi-components/output-components/tsi-decimal-display/tsi-decimal-display.component.d.ts +9 -0
  490. package/lib/tsi-components/output-components/tsi-display-grid/tsi-display-grid.component.d.ts +41 -0
  491. package/lib/tsi-components/output-components/tsi-generic-grid/tsi-generic-grid.component.d.ts +231 -0
  492. package/lib/tsi-components/output-components/tsi-image-display/tsi-image-display.component.d.ts +46 -0
  493. package/lib/tsi-components/output-components/tsi-integer-display/tsi-integer-display.component.d.ts +6 -0
  494. package/lib/tsi-components/output-components/tsi-label/tsi-label.component.d.ts +8 -0
  495. package/lib/tsi-components/output-components/tsi-label-legend/tsi-label-legend.component.d.ts +6 -0
  496. package/lib/tsi-components/output-components/tsi-legend/tsi-legend.component.d.ts +9 -0
  497. package/lib/tsi-components/output-components/tsi-paragraph/tsi-paragraph.component.d.ts +6 -0
  498. package/lib/tsi-components/output-components/tsi-rate-display/tsi-rate-display.component.d.ts +10 -0
  499. package/lib/tsi-components/output-components/tsi-time-display/tsi-time-display.component.d.ts +7 -0
  500. package/lib/tsi-components/output-components/tsi-view-grid/tsi-view-grid.component.d.ts +97 -0
  501. package/lib/tsi-components/reporting/reporting.component.d.ts +103 -0
  502. package/lib/tsi-components/spinner/spinner.component.d.ts +8 -0
  503. package/lib/tsi-components/tsi-bubble-info/tsi-bubble-info.component.d.ts +9 -0
  504. package/lib/tsi-components/tsi-calender/context-menu/context-menu.component.d.ts +25 -0
  505. package/lib/tsi-components/tsi-calender/tsi-calender.component.d.ts +50 -0
  506. package/lib/tsi-components/tsi-card/tsi-card.component.d.ts +25 -0
  507. package/lib/tsi-components/tsi-card-list/tsi-card-list.component.d.ts +35 -0
  508. package/lib/tsi-components/tsi-change-password/tsi-change-password.component.d.ts +21 -0
  509. package/lib/tsi-components/tsi-code-generator/tsi-code-generator.component.d.ts +23 -0
  510. package/lib/tsi-components/tsi-divider/tsi-divider.component.d.ts +6 -0
  511. package/lib/tsi-components/tsi-form/tsi-form.component.d.ts +91 -0
  512. package/lib/tsi-components/tsi-form-modal-footer/tsi-form-modal-footer.component.d.ts +8 -0
  513. package/lib/tsi-components/tsi-generic-crud/tsi-generic-crud.component.d.ts +156 -0
  514. package/lib/tsi-components/tsi-generic-form/tsi-generic-form.component.d.ts +28 -0
  515. package/lib/tsi-components/tsi-kanban/tsi-kanban.component.d.ts +68 -0
  516. package/lib/tsi-components/tsi-log-event-history/tsi-log-event-history.component.d.ts +35 -0
  517. package/lib/tsi-components/tsi-modal/tsi-modal.component.d.ts +10 -0
  518. package/lib/tsi-components/tsi-modal-footer/tsi-modal-footer.component.d.ts +38 -0
  519. package/lib/tsi-components/tsi-modal-header/tsi-modal-header.component.d.ts +19 -0
  520. package/lib/tsi-components/tsi-notes-avertir/tsi-notes-avertir.component.d.ts +13 -0
  521. package/lib/tsi-components/tsi-notes-createoredit/tsi-notes.component.d.ts +21 -0
  522. package/lib/tsi-components/tsi-notes-grid/tsi-notes-grid.component.d.ts +12 -0
  523. package/lib/tsi-components/tsi-popup-text-viewer/tsi-popup-text-viewer.component.d.ts +41 -0
  524. package/lib/tsi-components/tsi-progress-bar/tsi-progress-bar.component.d.ts +38 -0
  525. package/lib/tsi-components/tsi-search-box/tsi-search-box.component.d.ts +44 -0
  526. package/lib/tsi-components/tsi-send-mail/tsi-send-mail.component.d.ts +21 -0
  527. package/lib/tsi-components/tsi-tab-panel/tsi-tab-panel.component.d.ts +18 -0
  528. package/lib/tsi-components/tsi-tab-view/tsi-tab-view.component.d.ts +17 -0
  529. package/lib/tsi-components/tsi-tenants/tsi-tenants.component.d.ts +39 -0
  530. package/lib/tsi-components/tsi-tooltip/tsi-tooltip.component.d.ts +9 -0
  531. package/lib/tsi-components/tsi-upload-fiche/tsi-upload-fiche.component.d.ts +35 -0
  532. package/lib/tsi-components/tsi-upload-grid/tsi-upload-grid.component.d.ts +13 -0
  533. package/lib/tsi-directives/auto-select.directive.d.ts +9 -0
  534. package/lib/tsi-directives/busy.directive.d.ts +11 -0
  535. package/lib/tsi-directives/dynamic-component-loader/ad.directive.d.ts +8 -0
  536. package/lib/tsi-directives/index.d.ts +7 -0
  537. package/lib/tsi-directives/module-main-parameter.directive.d.ts +8 -0
  538. package/lib/tsi-directives/presentation-designer-base.directive.d.ts +41 -0
  539. package/lib/tsi-directives/presentation-designer.directive.d.ts +37 -0
  540. package/lib/tsi-directives/validation.directive.d.ts +18 -0
  541. package/lib/tsi-helpers/compoent-reference.helper.d.ts +5 -0
  542. package/lib/tsi-helpers/date-helper.d.ts +6 -0
  543. package/lib/tsi-helpers/export-excel.helper.d.ts +5 -0
  544. package/lib/tsi-helpers/filter-helper.d.ts +12 -0
  545. package/lib/tsi-helpers/grid-col-style.helper.d.ts +5 -0
  546. package/lib/tsi-helpers/guid.helper.d.ts +6 -0
  547. package/lib/tsi-helpers/helpers.d.ts +4 -0
  548. package/lib/tsi-helpers/index.d.ts +12 -0
  549. package/lib/tsi-helpers/mapping-helper.d.ts +5 -0
  550. package/lib/tsi-helpers/object.helper.d.ts +3 -0
  551. package/lib/tsi-helpers/primeng-translate-config.d.ts +54 -0
  552. package/lib/tsi-helpers/storage-manager.d.ts +8 -0
  553. package/lib/tsi-helpers/type-registry.helper.d.ts +34 -0
  554. package/lib/types/enum-description.type.d.ts +3 -0
  555. package/lib/types/index.d.ts +2 -0
  556. package/lib/types/time-only.d.ts +17 -0
  557. package/package.json +24 -0
  558. package/public-api.d.ts +17 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsi-tsi-shared-ui.mjs","sources":["../../../projects/tsi-shared-ui/src/lib/pipes/cut-label.pipe.ts","../../../projects/tsi-shared-ui/src/lib/enums/Language.ts","../../../projects/tsi-shared-ui/src/lib/end-points/baseuri.ts","../../../projects/tsi-shared-ui/src/lib/end-points/authorization-endpoints.ts","../../../projects/tsi-shared-ui/src/lib/end-points/endpoints.ts","../../../projects/tsi-shared-ui/src/lib/end-points/import-export-endpoint.ts","../../../projects/tsi-shared-ui/src/lib/end-points/reporting-endpoints.ts","../../../projects/tsi-shared-ui/src/lib/end-points/user-identity-endpoints.ts","../../../projects/tsi-shared-ui/src/lib/services/translation/translation.service.ts","../../../projects/tsi-shared-ui/src/lib/pipes/localize.pipe.ts","../../../projects/tsi-shared-ui/src/lib/enums/component-use-modes-enum.ts","../../../projects/tsi-shared-ui/src/lib/pipes/modal-label.pipe.ts","../../../projects/tsi-shared-ui/src/lib/pipes/shorten.pipe.ts","../../../projects/tsi-shared-ui/src/lib/pipes/to-number.pipe.ts","../../../projects/tsi-shared-ui/src/lib/consts/locals.const.ts","../../../projects/tsi-shared-ui/src/lib/pipes/tsi-currency.pipe.ts","../../../projects/tsi-shared-ui/src/lib/consts/tsi-consts.ts","../../../projects/tsi-shared-ui/src/lib/pipes/tsi-decimal.pipe.ts","../../../projects/tsi-shared-ui/src/lib/tsi-directives/auto-select.directive.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/spinner/spinner.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/spinner/spinner.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-directives/busy.directive.ts","../../../projects/tsi-shared-ui/src/lib/tsi-directives/module-main-parameter.directive.ts","../../../projects/tsi-shared-ui/src/lib/tsi-base/components/tsi-base/tsi-base.component.ts","../../../projects/tsi-shared-ui/src/lib/enums/auto-complete.ts","../../../projects/tsi-shared-ui/src/lib/enums/claim-types.ts","../../../projects/tsi-shared-ui/src/lib/enums/code-format.ts","../../../projects/tsi-shared-ui/src/lib/enums/css-units.ts","../../../projects/tsi-shared-ui/src/lib/enums/decimal-format.ts","../../../projects/tsi-shared-ui/src/lib/enums/display-types.ts","../../../projects/tsi-shared-ui/src/lib/enums/filter-operator-type.ts","../../../projects/tsi-shared-ui/src/lib/enums/form-validation-error.ts","../../../projects/tsi-shared-ui/src/lib/enums/grid-selection-mode.ts","../../../projects/tsi-shared-ui/src/lib/enums/grid-sort-mode.ts","../../../projects/tsi-shared-ui/src/lib/enums/http-method-types.ts","../../../projects/tsi-shared-ui/src/lib/enums/input-types.ts","../../../projects/tsi-shared-ui/src/lib/enums/layout-orientation.ts","../../../projects/tsi-shared-ui/src/lib/enums/logout-reason-enum.ts","../../../projects/tsi-shared-ui/src/lib/enums/modal-size-enum.ts","../../../projects/tsi-shared-ui/src/lib/enums/report-type.ts","../../../projects/tsi-shared-ui/src/lib/enums/status.ts","../../../projects/tsi-shared-ui/src/lib/enums/text-box-type.ts","../../../projects/tsi-shared-ui/src/lib/enums/tsi-component-enum.ts","../../../projects/tsi-shared-ui/src/lib/enums/type-import.ts","../../../projects/tsi-shared-ui/src/lib/enums/button-type.enum.ts","../../../projects/tsi-shared-ui/src/lib/enums/tooltipPosition.enum.ts","../../../projects/tsi-shared-ui/src/lib/services/validation/entity-validations.service.ts","../../../projects/tsi-shared-ui/src/lib/services/validation/generic-validation-state.service.ts","../../../projects/tsi-shared-ui/src/lib/tsi-helpers/storage-manager.ts","../../../projects/tsi-shared-ui/src/lib/services/layout/layout-helper.service.ts","../../../projects/tsi-shared-ui/src/lib/services/validation/input-registry.service.ts","../../../projects/tsi-shared-ui/src/lib/tsi-base/tsi-input-base/tsi-input-base.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-checkbox/tsi-checkbox.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-checkbox/tsi-checkbox.component.html","../../../projects/tsi-shared-ui/src/lib/models/authorization/authorization-token-mapper.ts","../../../projects/tsi-shared-ui/src/lib/models/filter/filter-by-existing-values.ts","../../../projects/tsi-shared-ui/src/lib/models/filter/paged-result-request-base.ts","../../../projects/tsi-shared-ui/src/lib/models/import-export/import-export.ts","../../../projects/tsi-shared-ui/src/lib/models/modal/bs-modal.ts","../../../projects/tsi-shared-ui/src/lib/models/remote-services-utility/subscription-result.ts","../../../projects/tsi-shared-ui/src/lib/models/settings/devise.ts","../../../projects/tsi-shared-ui/src/lib/models/settings/fichier.ts","../../../projects/tsi-shared-ui/src/lib/models/presentation-settings/presentation-settings.ts","../../../projects/tsi-shared-ui/src/lib/models/settings/type-fichier.ts","../../../projects/tsi-shared-ui/src/lib/models/workflow/workflow.ts","../../../projects/tsi-shared-ui/src/lib/models/entity-info/entity-info.ts","../../../projects/tsi-shared-ui/src/lib/models/user-identity/user-identity.ts","../../../projects/tsi-shared-ui/src/lib/models/progress-bar/progress-bar-response.ts","../../../projects/tsi-shared-ui/src/lib/models/progress-bar/progress-bar-update-request.ts","../../../projects/tsi-shared-ui/src/lib/models/tsi-card/tsi-card.ts","../../../projects/tsi-shared-ui/src/lib/models/journalisation-application/journalisation-application.ts","../../../projects/tsi-shared-ui/src/lib/models/journalisation-application/status-history.ts","../../../projects/tsi-shared-ui/src/lib/models/application/configuration/endpoint-infos.ts","../../../projects/tsi-shared-ui/src/lib/services/workflow/workflow-configuration.service.ts","../../../projects/tsi-shared-ui/src/lib/services/presentation-setting/presentation-designer-base.service.ts","../../../projects/tsi-shared-ui/src/lib/tsi-directives/presentation-designer-base.directive.ts","../../../projects/tsi-shared-ui/src/lib/tsi-helpers/type-registry.helper.ts","../../../projects/tsi-shared-ui/src/lib/tsi-helpers/guid.helper.ts","../../../projects/tsi-shared-ui/src/lib/services/configuration/entity-configuration.service.ts","../../../projects/tsi-shared-ui/src/lib/services/modal/tsi-modal.service.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/button-components/tsi-button/tsi-button.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/button-components/tsi-button/tsi-button.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/message-components/tsi-success-message/tsi-success-message.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/message-components/tsi-success-message/tsi-success-message.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/message-components/tsi-info-message/tsi-info-message.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/message-components/tsi-info-message/tsi-info-message.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/message-components/tsi-error-message/tsi-error-message.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/message-components/tsi-error-message/tsi-error-message.component.html","../../../projects/tsi-shared-ui/src/lib/services/notification/tsi-message.service.ts","../../../projects/tsi-shared-ui/src/lib/services/notification/tsi-notification.service.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-bubble-info/tsi-bubble-info.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-bubble-info/tsi-bubble-info.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-search-combo/tsi-search-combo.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-search-combo/tsi-search-combo.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-currency-other-input/tsi-currency-other-input.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-currency-other-input/tsi-currency-other-input.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-helpers/filter-helper.ts","../../../projects/tsi-shared-ui/src/lib/services/application/parametres-application-parambase.service.ts","../../../projects/tsi-shared-ui/src/lib/services/settings/app-settings.service.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-currency-societe-input/tsi-currency-societe-input.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-currency-societe-input/tsi-currency-societe-input.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-helpers/primeng-translate-config.ts","../../../projects/tsi-shared-ui/src/lib/types/time-only.ts","../../../projects/tsi-shared-ui/src/lib/services/date-helper.service.ts","../../../projects/tsi-shared-ui/src/lib/services/authorization/identity-manager.service.ts","../../../projects/tsi-shared-ui/src/lib/services/application/app.layout.service.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-date-picker/tsi-date-picker.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-date-picker/tsi-date-picker.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-decimal-input/tsi-decimal-input.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-decimal-input/tsi-decimal-input.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-integer/tsi-integer.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-integer/tsi-integer.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-rate-input/tsi-rate-input.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-rate-input/tsi-rate-input.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-text-box/tsi-text-box.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-text-box/Tsi-Text-Box.component.html","../../../projects/tsi-shared-ui/src/lib/services/formula.service.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-formula-box/tsi-formula-box.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-formula-box/Tsi-Formula-Box.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-time-picker/tsi-time-picker.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-time-picker/tsi-time-picker.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-checkbox-display/tsi-checkbox-display.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-checkbox-display/tsi-checkbox-display.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-currency-other-display/tsi-currency-other-display.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-currency-other-display/tsi-currency-other-display.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-currency-societe-display/tsi-currency-societe-display.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-currency-societe-display/tsi-currency-societe-display.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-date-display/tsi-date-display.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-date-display/tsi-date-display.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-decimal-display/tsi-decimal-display.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-decimal-display/tsi-decimal-display.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-integer-display/tsi-integer-display.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-integer-display/tsi-integer-display.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-rate-display/tsi-rate-display.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-rate-display/tsi-rate-display.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-time-display/tsi-time-display.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-time-display/tsi-time-display.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/editable-grid/editable-grid.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/editable-grid/editable-grid.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-helpers/export-excel.helper.ts","../../../projects/tsi-shared-ui/src/lib/functions/modal-open.function.ts","../../../projects/tsi-shared-ui/src/lib/functions/array.functions.ts","../../../projects/tsi-shared-ui/src/lib/functions/index.ts","../../../projects/tsi-shared-ui/src/lib/consts/html-template.const.ts","../../../projects/tsi-shared-ui/src/lib/services/generator/html-template-generator.service.ts","../../../projects/tsi-shared-ui/src/lib/services/notification/error-response-manager.service.ts","../../../projects/tsi-shared-ui/src/lib/services/status/entityStatus.service.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-radio-button/tsi-radio-button.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-radio-button/tsi-radio-button.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-label/tsi-label.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-label/Tsi-Label.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-search-box/tsi-search-box.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-search-box/tsi-search-box.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-base/components/app-base/app-base.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-base/components/app-base/app-base.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-card/tsi-card.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-card/tsi-card.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-card-list/tsi-card-list.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-card-list/tsi-card-list.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-image-display/tsi-image-display.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-image-display/tsi-image-display.component.html","../../../projects/tsi-shared-ui/src/lib/consts/localization-key.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-kanban/tsi-kanban.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-kanban/tsi-kanban.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-calender/context-menu/context-menu.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-calender/context-menu/context-menu.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-calender/tsi-calender.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-calender/tsi-calender.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/display-nested-prop/display-nested-prop.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/display-nested-prop/display-nested-prop.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-generic-grid/tsi-generic-grid.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-generic-grid/tsi-generic-grid.component.html","../../../projects/tsi-shared-ui/src/lib/consts/queryParamNames.const.ts","../../../projects/tsi-shared-ui/src/lib/services/reporting/reporting.service.ts","../../../projects/tsi-shared-ui/src/lib/end-points/shared-endpoint.ts","../../../projects/tsi-shared-ui/src/lib/services/record-info-popup.service.ts","../../../projects/tsi-shared-ui/src/lib/services/base/crud-base.service.ts","../../../projects/tsi-shared-ui/src/lib/services/fichier/fichier.service.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/reporting/reporting.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/reporting/reporting.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-view-grid/tsi-view-grid.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-view-grid/tsi-view-grid.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-form-modal-footer/tsi-form-modal-footer.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-form-modal-footer/tsi-form-modal-footer.component.html","../../../projects/tsi-shared-ui/src/lib/services/presentation-setting/presentation-designer.service.ts","../../../projects/tsi-shared-ui/src/lib/consts/app-providers.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-notes-avertir/tsi-notes-avertir.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-notes-avertir/tsi-notes-avertir.component.html","../../../projects/tsi-shared-ui/src/lib/services/journalisation/journalisation-application.service.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-log-event-history/tsi-log-event-history.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-log-event-history/tsi-log-event-history.component.html","../../../projects/tsi-shared-ui/src/lib/services/dialog-data.service.ts","../../../projects/tsi-shared-ui/src/lib/services/journalisation/status-history.service.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-popup-text-viewer/tsi-popup-text-viewer.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-popup-text-viewer/tsi-popup-text-viewer.component.html","../../../projects/tsi-shared-ui/src/lib/services/fichier/fichier-upload.service.ts","../../../projects/tsi-shared-ui/src/lib/services/Note/Note.service.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-generic-crud/tsi-generic-crud.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-generic-crud/tsi-generic-crud.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-directives/presentation-designer.directive.ts","../../../projects/tsi-shared-ui/src/lib/tsi-directives/validation.directive.ts","../../../projects/tsi-shared-ui/src/lib/tsi-directives/dynamic-component-loader/ad.directive.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/alert-import-message/alert-import-message.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/alert-import-message/alert-import-message.component.html","../../../projects/tsi-shared-ui/src/lib/consts/themes.ts","../../../projects/tsi-shared-ui/src/lib/services/Component-Finder/tsi-component-finder.service.ts","../../../projects/tsi-shared-ui/src/lib/services/currentUser/currentUser.service.ts","../../../projects/tsi-shared-ui/src/lib/services/Import-Export/modele-import.service.ts","../../../projects/tsi-shared-ui/src/lib/services/modal/tsi-bs-modal.service.ts","../../../projects/tsi-shared-ui/src/lib/services/module-code/module-code.service.ts","../../../projects/tsi-shared-ui/src/lib/services/notification/tsi-confirmation.service.ts","../../../projects/tsi-shared-ui/src/lib/end-points/presentation-settings-endpoints.ts","../../../projects/tsi-shared-ui/src/lib/services/presentation-setting/presentation-setting.service.ts","../../../projects/tsi-shared-ui/src/lib/services/progress-bar/progress-bar-helper.service.ts","../../../projects/tsi-shared-ui/src/lib/services/progress-bar/progress-bar.service.ts","../../../projects/tsi-shared-ui/src/lib/services/settings/keyboard-shortcut.service.ts","../../../projects/tsi-shared-ui/src/lib/services/UserIdentity/identity-platform-authentication.service.ts","../../../projects/tsi-shared-ui/src/lib/services/UserIdentity/user-identity.service.ts","../../../projects/tsi-shared-ui/src/lib/services/application/api-explorer.service.ts","../../../projects/tsi-shared-ui/src/lib/routes/identity.routes.ts","../../../projects/tsi-shared-ui/src/lib/services/authorization/authorization.service.ts","../../../projects/tsi-shared-ui/src/lib/services/module-main-parameter.service.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-modal-header/tsi-modal-header.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-modal-header/tsi-modal-header.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-form/tsi-form.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-form/tsi-form.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-base/components/tsi-form-base/tsi-form-base.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-base/components/tsi-form-base/tsi-form-base.component.html","../../../projects/tsi-shared-ui/src/lib/models/Notes/Note.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-text-area/tsi-text-area.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-text-area/Tsi-Text-Area.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-modal-footer/tsi-modal-footer.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-modal-footer/tsi-modal-footer.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-notes-createoredit/tsi-notes.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-notes-createoredit/tsi-notes.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-helpers/compoent-reference.helper.ts","../../../projects/tsi-shared-ui/src/lib/tsi-helpers/date-helper.ts","../../../projects/tsi-shared-ui/src/lib/tsi-helpers/grid-col-style.helper.ts","../../../projects/tsi-shared-ui/src/lib/tsi-helpers/helpers.ts","../../../projects/tsi-shared-ui/src/lib/tsi-helpers/mapping-helper.ts","../../../projects/tsi-shared-ui/src/lib/tsi-helpers/object.helper.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/create-or-edit-modele-import/create-or-edit-modele-import.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/create-or-edit-modele-import/create-or-edit-modele-import.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/manage-import-export/manage-import-export.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/manage-import-export/manage-import-export.component.html","../../../projects/tsi-shared-ui/src/lib/services/reporting/dashboard-module.service.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/manage-reporting/add-report-popup/add-report-popup.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/manage-reporting/add-report-popup/add-report-popup.component.html","../../../projects/tsi-shared-ui/src/lib/interfaces/generic-form/generic-form.ts","../../../projects/tsi-shared-ui/src/lib/interfaces/modal/dynamic.component.ts","../../../projects/tsi-shared-ui/src/lib/interfaces/select-list/combo-status-model.ts","../../../projects/tsi-shared-ui/src/lib/interfaces/styles/css-size-property.ts","../../../projects/tsi-shared-ui/src/lib/routes/app.routes.ts","../../../projects/tsi-shared-ui/src/lib/routes/manage-reporting.routes.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/manage-reporting/manage-reporting.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/manage-reporting/manage-reporting.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/modal-loader/modal-loader.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/modal-loader/modal-loader.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-change-password/tsi-change-password.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-change-password/tsi-change-password.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-code-generator/tsi-code-generator.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-code-generator/tsi-code-generator.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-divider/tsi-divider.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-divider/tsi-divider.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-paragraph/tsi-paragraph.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-paragraph/tsi-paragraph.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-generic-form/tsi-generic-form.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-generic-form/tsi-generic-form.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-modal/tsi-modal.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-modal/tsi-modal.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-send-mail/tsi-send-mail.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-send-mail/tsi-send-mail.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-tab-panel/tsi-tab-panel.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-tab-panel/tsi-tab-panel.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-tab-view/tsi-tab-view.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-tab-view/tsi-tab-view.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-tooltip/tsi-tooltip.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-tooltip/tsi-tooltip.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-file-manager/tsi-file-manager.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/input-components/tsi-file-manager/tsi-file-manager.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-upload-fiche/tsi-upload-fiche.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-upload-fiche/tsi-upload-fiche.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-base/components/tsi-list-base/tsi-list-base.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-base/components/tsi-list-base/tsi-list-base.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-upload-grid/tsi-upload-grid.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-upload-grid/tsi-upload-grid.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/button-components/Tsi-Submit-Button/tsi-submit-button.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/button-components/Tsi-Submit-Button/tsi-submit-button.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-display-grid/tsi-display-grid.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-display-grid/tsi-display-grid.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-label-legend/tsi-label-legend.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-label-legend/tsi-label-legend.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-legend/tsi-legend.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/output-components/tsi-legend/tsi-legend.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/message-components/tsi-redirection-message/tsi-redirection-message.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/message-components/tsi-redirection-message/tsi-redirection-message.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/logout-popup/logout-popup.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/logout-popup/logout-popup.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/create-or-edit-entity-informations/create-or-edit-entity-informations.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/create-or-edit-entity-informations/create-or-edit-entity-informations.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-notes-grid/tsi-notes-grid.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-notes-grid/tsi-notes-grid.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-progress-bar/tsi-progress-bar.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-progress-bar/tsi-progress-bar.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-tenants/tsi-tenants.component.ts","../../../projects/tsi-shared-ui/src/lib/tsi-components/tsi-tenants/tsi-tenants.component.html","../../../projects/tsi-shared-ui/src/lib/tsi-components/modal-component/modal.component.ts","../../../projects/tsi-shared-ui/src/lib/guards/admin.guard.ts","../../../projects/tsi-shared-ui/src/lib/guards/auth.guard.ts","../../../projects/tsi-shared-ui/src/lib/guards/permission.guard.ts","../../../projects/tsi-shared-ui/src/lib/routes/admin.routes.ts","../../../projects/tsi-shared-ui/src/lib/providers/shared-ui-tsi.provider.ts","../../../projects/tsi-shared-ui/src/lib/package-initializer.ts","../../../projects/tsi-shared-ui/src/lib/shared.module.ts","../../../projects/tsi-shared-ui/src/public-api.ts","../../../projects/tsi-shared-ui/src/tsi-tsi-shared-ui.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'CutLabel'\r\n})\r\nexport class CutLabelPipe implements PipeTransform {\r\n transform(value: string): string {\r\n if (!value) {\r\n return value;\r\n }\r\n const delimiterIndex = value.indexOf('|');\r\n if (delimiterIndex === -1) {\r\n return value;\r\n }\r\n return value.substring(0, delimiterIndex);\r\n }\r\n}","export enum LanguagesCodes {\r\n Francais = \"FR\",\r\n Arabe = \"AR\",\r\n Anglais = \"EN\"\r\n}\r\n\r\nexport class LanguageInformations{\r\n languageCode ?: LanguagesCodes;\r\n isRightToLeftMode ?: boolean\r\n}","export const Segment = {\r\n base: \"\",\r\n reportingServiceBase: \"\",\r\n dashboardingAppUrl: \"\",\r\n identityPlatformUrlApi: \"\",\r\n identityPlatformUrlFront: \"\",\r\n appBaseHref: \"\",\r\n remoteLocalizationServiceBaseUrl : \"\",\r\n production : false\r\n}","import { Segment } from \"./baseuri\"\r\n\r\nexport const AuthorizationSegments = {\r\n //** Controllers */\r\n db : \"DB\",\r\n authentication : 'Authentication',\r\n multiTenancy : 'MultiTenancy',\r\n menu : 'AppMenu',\r\n authorization : 'Authorization', \r\n //** Actions */\r\n login:'login',\r\n register:'register',\r\n verifyCode:'verifyCode',\r\n resendVerificationCode:'resendVerificationCode',\r\n proceedLogin:'proceedLogin',\r\n logout:'Logout',\r\n logoutWithToken:'LogoutWithToken',\r\n lockOpen:'LockOpen',\r\n generate: 'generate',\r\n checkPermissions: 'checkPermission',\r\n connectionAsKeyValuePair : 'GetConnectionStringAsKeyValuePair',\r\n getConnectedUsers : 'GetConnectedUsers',\r\n getMyTenants: 'my-tenants',\r\n deleteUnconfirmedUsers : \"deleteUnconfirmedUsers\"\r\n}\r\n\r\nexport const AuthorizationEndpoints = {\r\n register: () => `${Segment.base}/${AuthorizationSegments.multiTenancy}/${AuthorizationSegments.register}`,\r\n \r\n\r\n proceedLogin: (username : string, tenantUid : string) => `${Segment.base}/${AuthorizationSegments.multiTenancy}/${AuthorizationSegments.proceedLogin}/${username}/${tenantUid}`,\r\n logoutWithToken: () => `${Segment.base}/${AuthorizationSegments.authentication}/${AuthorizationSegments.logoutWithToken}`,\r\n getMenuItems: () => `${Segment.base}/${AuthorizationSegments.menu}/${AuthorizationSegments.generate}`,\r\n \r\n checkPermission: (permission : string) => `${Segment.base}/${AuthorizationSegments.authorization}/${AuthorizationSegments.checkPermissions}/${permission}`,\r\n getAvailableConnectionStrings : ()=> `${Segment.base}/${AuthorizationSegments.db}/${AuthorizationSegments.connectionAsKeyValuePair}`,\r\n getConnectedUsers : ()=> `${Segment.base}/${AuthorizationSegments.authentication}/${AuthorizationSegments.getConnectedUsers}`,\r\n\r\n getMyTenants : ()=> `${Segment.base}/${AuthorizationSegments.multiTenancy}/${AuthorizationSegments.getMyTenants}`,\r\n}\r\n\r\n","import { Segment } from \"./baseuri\";\r\n\r\nexport const AdministrationSegments = {\r\n fichier: 'Fichier',\r\n allMinimal: 'allminimal',\r\n minimal: 'minimal',\r\n allAsKeyValuePair: 'allAsKeyValuePair',\r\n asKeyValuePair: 'asKeyValuePair',\r\n groupe: 'groupe',\r\n utilisateur: 'Utilisateur',\r\n admin: 'admin',\r\n utilisateurAffectation: 'UtilisateurAffectation',\r\n dbUpdate: 'DBUpdate',\r\n getLangueEnum: 'getLangueEnum',\r\n getNiveauEnum: 'getNiveauEnum',\r\n getConnexionEnum: 'getConnexionEnum',\r\n getAffichageAlerteEnum: 'getAffichageAlerteEnum',\r\n classw: 'Classw',\r\n importAllWorkflowClasses: \"ImportAllWorkflowClasses\",\r\n classwEtat: 'ClasswEtat',\r\n workflowEtat: 'WorkflowEtat',\r\n workflow: 'Workflow',\r\n alert: 'Alert',\r\n entityConfiguration: 'EntityConfiguration',\r\n workflowEtatSuivant: 'WorkflowEtatSuivant',\r\n workflowEtatFonctionnalite: 'WorkflowEtatFonctionnalite',\r\n personne: 'personne',\r\n workflowInstance: 'WorkflowInstance',\r\n fonctionnalite: 'Fonctionnalite',\r\n VhistoriqueWorkflow: 'HistoriqueWorkflow',\r\n VtableauDeBordWorkflow: 'TableauDeBordWorkflow',\r\n vgestionDesDroits: 'GestionDesDroits',\r\n vgestionDesDroitsPersonnalisee: 'GestionDroitsCustomFonctionnalities',\r\n module: 'Module',\r\n menu: 'menu',\r\n sousMenu: 'sousMenu',\r\n getAllMenusAsKeyValuePairByModuleId: 'getAllMenusAsKeyValuePairByModuleId',\r\n getAllSousMenusAsKeyValuePairByMenuId:\r\n 'getAllSousMenusAsKeyValuePairByMenuId',\r\n getAllFonctionnalitesAsKeyValuePairBySousMenuId:\r\n 'getAllFonctionnalitesAsKeyValuePairBySousMenuId',\r\n getAllTypeFonctionnaliteEnum: 'getAllTypeFonctionnaliteEnum',\r\n getById: 'getbyid',\r\n getAll: 'getall',\r\n getAllPaged: 'getallpaged',\r\n add: 'add',\r\n update: 'update',\r\n delete: 'delete',\r\n getEnum: 'getenum',\r\n getByCurrentUser: 'GetByCurrentUser',\r\n getenumchoixtypeADMINISTRATION: 'getenumchoixtypeADMINISTRATION',\r\n getcreatemodel: 'getcreatemodel',\r\n createADMINISTRATION: 'createADMINISTRATION',\r\n getByParamUser: 'getByParamUser',\r\n getAllByCurrentUserId: 'getAllByCurrentUserId',\r\n getAsKeyValuePairByClasswId: 'getAsKeyValuePairByClasswId',\r\n getAsKeyValuePairByWorkflowId: 'getAsKeyValuePairByWorkflowId',\r\n updateWorkflowList: 'updateWorkflowList',\r\n getFonctionnaliteAsKeyValuePairByWorkflowId: 'getWorkflowEtatFonctionnaliteAsKeyValuePairByWorkflowEtatId',\r\n getWorkflowEtatSuivantAsKeyValuePairByWorkflowEtatId: 'getWorkflowEtatSuivantAsKeyValuePairByWorkflowEtatId',\r\n getWorkflowAsKeyValuePairByClasswId: 'getWorkflowAsKeyValuePairByClasswId',\r\n getWorkflowInstanceAsKeyValuePairByWorkflowId:\r\n 'getWorkflowInstanceAsKeyValuePairByWorkflowId',\r\n getAllClasswByNom: 'getAllClasswByNom',\r\n getClasswByNom: 'getClasswByNom',\r\n getAllClasswEtatAsKeyPairValue: 'ClasswEtatAsKeyValuePair',\r\n GetAllFonctionnaliteWorkflowClassW: 'GetAllFonctionnaliteWorkflowClassW',\r\n getCurrentUser: 'getCurrentUser',\r\n getCurrentUserWithRoles: 'getCurrentUserWithRoles',\r\n getSqlFiles: 'getSqlFiles',\r\n getSqlText: 'getSqlText',\r\n executeSqlFiles: 'executeScript',\r\n executeAllSqlFiles: 'executeAllScripts',\r\n journalApplication: 'JournalApplication',\r\n statusHistory: 'StatusHistory',\r\n classe: 'Classe',\r\n groupeFonctionnalite: 'GroupeFonctionnalite',\r\n toEnableAllSelectedPermissions: 'toEnableAllSelectedPermissions',\r\n toDisableAllSelectedPermissions: 'toDisableAllSelectedPermissions',\r\n toEnableAllFiltredPermissions: 'toEnableAllFiltredPermissions',\r\n toDisableAllFiltredPermissions: 'toDisableAllFiltredPermissions',\r\n getWorkflowEntityInformation: 'GetWorkflowEntityInformation',\r\n getWorkflowEtatSuivant: 'getWorkflowEtatSuivant',\r\n updateEntityWorkflowInformation: 'UpdateWorkflowInstance',\r\n updateCurrentUserLight: 'updateCurrentUserLight',\r\n clearPassword: 'clearPassword',\r\n changePassword: 'changePassword',\r\n changePasswordInvalid: 'changePasswordInvalid',\r\n entityInfo: 'entityinfo',\r\n entityInfoAndRelations: 'entity-info-and-relations',\r\n getAllFiltredByIdObject: 'getAllFiltredByIdObject',\r\n getAllFiltredByUidObjet: 'getAllFiltredByUidObjet',\r\n getAllPagedAsync: 'GetAllPagedAsync',\r\n updateMasterParameters: 'UpdateMasterParameters',\r\n getMasterParameters: 'GetMasterParameters',\r\n getConnectedUsers: 'GetConnectedUsers',\r\n getWorkflowEtatFormByClassName: \"GetWorkflowEtatFormByClassName\",\r\n entityInfoController: \"EntityInfo\",\r\n getWorkflowConditionPassageOperatorEnum: \"getWorkflowConditionPassageOperatorEnum\",\r\n getByCodeModule: 'GetByCodeModule',\r\n getDescriminatorClassValues : 'GetDescriminatorClassValues',\r\n formulaire : 'Formulaire',\r\n getAllTypeColonneEnumAsync:'getAllTypeColonneEnumAsync',\r\n getTypeColonneEnumAsync: 'getTypeColonneEnumAsync',\r\n getAffectationUtilisateur : 'GetAffectationUtilisateur',\r\n modeleImport: 'ModeleImport',\r\n colonneByClassNameAsKeyValuePair: 'coloneByClassNameAsKeyValuePair',\r\n Note : 'Notes',\r\n status : \"Status\",\r\n getEntityStatusAsKeyValuePair : \"getEntityStatusAsKeyValuePair\",\r\n getMenuData: 'GetMenuData',\r\n apiExplorer: \"ApiExplorer\",\r\n byBusinessClass: \"byBusinessClass\",\r\n entityRelations: \"entity-relations\",\r\n entityValidations: \"EntityValidationsInfo\",\r\n endpointsInfo: 'endpoints-info'\r\n};\r\n\r\nexport const AdministrationEndpoints = {\r\n getAllEntityStatus:(classeName: string | undefined) => `${Segment.base}/${AdministrationSegments.status}/${AdministrationSegments.getEntityStatusAsKeyValuePair}/${classeName}`,\r\n getAffectationUtilisateur: (type: string) =>\r\n `${Segment.base}/${AdministrationSegments.utilisateurAffectation}/${AdministrationSegments.getAffectationUtilisateur}/${type}`,\r\n getAllFiltredByIdObject: (targetId: string) =>\r\n `${Segment.base}/${AdministrationSegments.journalApplication}/${AdministrationSegments.getAllFiltredByIdObject}/${targetId}`,\r\n getAllFiltredByUidObject: (objectId: string) =>\r\n `${Segment.base}/${AdministrationSegments.statusHistory}/${AdministrationSegments.getAllFiltredByUidObjet}/${objectId}`,\r\n getAllClassw: () => `${Segment.base}/${AdministrationSegments.classw}`,\r\n getAllClasswMinimal: () =>\r\n `${Segment.base}/${AdministrationSegments.classw}/${AdministrationSegments.allMinimal}`,\r\n getClasswMinimal: () =>\r\n `${Segment.base}/${AdministrationSegments.classw}/${AdministrationSegments.minimal}`,\r\n getAllClasswEtat: () =>\r\n `${Segment.base}/${AdministrationSegments.classwEtat}`,\r\n getAllClasswEtatMinimal: () =>\r\n `${Segment.base}/${AdministrationSegments.classwEtat}/${AdministrationSegments.allMinimal}`,\r\n getClasswEtatMinimal: () =>\r\n `${Segment.base}/${AdministrationSegments.classwEtat}/${AdministrationSegments.minimal}`,\r\n getWorkflowEtatAsKeyValuePair: () =>\r\n `${Segment.base}/${AdministrationSegments.workflowEtat}/${AdministrationSegments.asKeyValuePair}`,\r\n getWorkflowEtatFonctionnaliteAsKeyValuePair: () =>\r\n `${Segment.base}/${AdministrationSegments.workflowEtatFonctionnalite}/${AdministrationSegments.asKeyValuePair}`,\r\n getAllWorkflowEtatFonctionnaliteAsKeyValuePair: () =>\r\n `${Segment.base}/${AdministrationSegments.workflowEtatFonctionnalite}/${AdministrationSegments.allAsKeyValuePair}`,\r\n getAsKeyValuePairByClasswId: (id?: string) =>\r\n `${Segment.base}/${AdministrationSegments.classwEtat}/${AdministrationSegments.getAsKeyValuePairByClasswId}/${id}`,\r\n getAsKeyValuePairByWorkflowId: (id?: string) =>\r\n `${Segment.base}/${AdministrationSegments.workflowEtat}/${AdministrationSegments.getAsKeyValuePairByWorkflowId}/${id}`,\r\n updateWorkflowList: () =>\r\n `${Segment.base}/${AdministrationSegments.workflowEtatSuivant}/${AdministrationSegments.updateWorkflowList}/`,\r\n getFonctionnaliteAsKeyValuePairByWorkflowEtatUid: (id?: string) =>\r\n `${Segment.base}/${AdministrationSegments.workflowEtatFonctionnalite}/${AdministrationSegments.getFonctionnaliteAsKeyValuePairByWorkflowId}/${id}`,\r\n getAllClasswEtatAsKeyPairValue: () =>\r\n `${Segment.base}/${AdministrationSegments.classwEtat}/${AdministrationSegments.getAllClasswEtatAsKeyPairValue}`,\r\n getAllWorkflow: () => `${Segment.base}/${AdministrationSegments.workflow}`,\r\n getAllWorkflowAsKeyValuePair: () =>\r\n `${Segment.base}/${AdministrationSegments.workflow}/${AdministrationSegments.allAsKeyValuePair}`,\r\n getWorkflowAsKeyValuePair: () =>\r\n `${Segment.base}/${AdministrationSegments.workflow}/${AdministrationSegments.asKeyValuePair}`,\r\n getAllFonctionnalite: () =>\r\n `${Segment.base}/${AdministrationSegments.fonctionnalite}/${AdministrationSegments.allAsKeyValuePair}`,\r\n getAllFonctionnaliteWorkflowByClassW: (classeW?: string) =>\r\n `${Segment.base}/${AdministrationSegments.fonctionnalite}/${AdministrationSegments.GetAllFonctionnaliteWorkflowClassW}/${classeW}`,\r\n getFonctionnaliteAsKeyValuePair: () =>\r\n `${Segment.base}/${AdministrationSegments.fonctionnalite}/${AdministrationSegments.asKeyValuePair}`,\r\n getFonctionnaliteAutoriseAsKeyValuePair: () =>\r\n `${Segment.base}/${AdministrationSegments.workflowEtatFonctionnalite}/${AdministrationSegments.asKeyValuePair}`,\r\n getAllTypeFonctionnaliteEnum: () =>\r\n `${Segment.base}/${AdministrationSegments.fonctionnalite}/${AdministrationSegments.getAllTypeFonctionnaliteEnum}`,\r\n getAllWorkflowInstance: () =>\r\n `${Segment.base}/${AdministrationSegments.workflowInstance}`,\r\n getAllWorkflowInstanceAsKeyValuePair: () =>\r\n `${Segment.base}/${AdministrationSegments.workflowInstance}/${AdministrationSegments.allAsKeyValuePair}`,\r\n getWorkflowInstanceAsKeyValuePair: () =>\r\n `${Segment.base}/${AdministrationSegments.workflowInstance}/${AdministrationSegments.asKeyValuePair}`,\r\n getWorkflowAsKeyValuePairByClasswId: (id?: string) =>\r\n `${Segment.base}/${AdministrationSegments.workflow}/${AdministrationSegments.getWorkflowAsKeyValuePairByClasswId}/${id}`,\r\n getWorkflowInstanceAsKeyValuePairByWorkflowId: (id?: string) =>\r\n `${Segment.base}/${AdministrationSegments.workflowInstance}/${AdministrationSegments.getWorkflowInstanceAsKeyValuePairByWorkflowId}/${id}`,\r\n getAllGroupeMinimal: () =>\r\n `${Segment.base}/${AdministrationSegments.groupe}/${AdministrationSegments.allMinimal}`,\r\n getGroupeMinimal: () =>\r\n `${Segment.base}/${AdministrationSegments.groupe}/${AdministrationSegments.minimal}`,\r\n getLangueEnum: () =>\r\n `${Segment.base}/${AdministrationSegments.utilisateur}/${AdministrationSegments.getLangueEnum}`,\r\n getNiveauEnum: () =>\r\n `${Segment.base}/${AdministrationSegments.utilisateur}/${AdministrationSegments.getNiveauEnum}`,\r\n getConnexionEnum: () =>\r\n `${Segment.base}/${AdministrationSegments.utilisateur}/${AdministrationSegments.getConnexionEnum}`,\r\n getAdminConnexionEnum: () =>\r\n `${Segment.base}/${AdministrationSegments.admin}/${AdministrationSegments.getConnexionEnum}`,\r\n getAffichageAlerteEnum: () =>\r\n `${Segment.base}/${AdministrationSegments.utilisateur}/${AdministrationSegments.getAffichageAlerteEnum}`,\r\n getFonctionnalitesAsKeyValuePair: () =>\r\n `${Segment.base}/${AdministrationSegments.vgestionDesDroits}/${AdministrationSegments.asKeyValuePair}`,\r\n getAllFonctionnalitesAsKeyValuePairBySousMenuId: (\r\n moduleId?: string,\r\n menuId?: string,\r\n sousMenuId?: string\r\n ) =>\r\n `${Segment.base}/${AdministrationSegments.vgestionDesDroits}/${AdministrationSegments.getAllFonctionnalitesAsKeyValuePairBySousMenuId}/${moduleId}/${menuId}/${sousMenuId}`,\r\n enableAllSelectedPermissions: () =>\r\n `${Segment.base}/${AdministrationSegments.groupeFonctionnalite}/${AdministrationSegments.toEnableAllSelectedPermissions}`,\r\n disableAllSelectedPermissions: () =>\r\n `${Segment.base}/${AdministrationSegments.groupeFonctionnalite}/${AdministrationSegments.toDisableAllSelectedPermissions}`,\r\n enableAllFiltredPermissions: () =>\r\n `${Segment.base}/${AdministrationSegments.groupeFonctionnalite}/${AdministrationSegments.toEnableAllFiltredPermissions}`,\r\n disableAllFiltredPermissions: () =>\r\n `${Segment.base}/${AdministrationSegments.groupeFonctionnalite}/${AdministrationSegments.toDisableAllFiltredPermissions}`,\r\n getModuleMinimal: () =>\r\n `${Segment.base}/${AdministrationSegments.module}/${AdministrationSegments.minimal}`,\r\n getAllModuleMinimal: () =>\r\n `${Segment.base}/${AdministrationSegments.module}/${AdministrationSegments.allMinimal}`,\r\n getMenuMinimal: () =>\r\n `${Segment.base}/${AdministrationSegments.menu}/${AdministrationSegments.minimal}`,\r\n getAllMenusAsKeyValuePairByModuleId: (id?: string) =>\r\n `${Segment.base}/${AdministrationSegments.menu}/${AdministrationSegments.getAllMenusAsKeyValuePairByModuleId}/${id}`,\r\n getSousMenuAsKeyValuePair: () =>\r\n `${Segment.base}/${AdministrationSegments.sousMenu}/${AdministrationSegments.asKeyValuePair}`,\r\n getAllSousMenusAsKeyValuePairByMenuId: (id?: string) =>\r\n `${Segment.base}/${AdministrationSegments.sousMenu}/${AdministrationSegments.getAllSousMenusAsKeyValuePairByMenuId}/${id}`,\r\n GetCurrentUser: () =>\r\n `${Segment.base}/${AdministrationSegments.utilisateur}/${AdministrationSegments.getCurrentUser}`,\r\n GetCurrentUserWithRoles: () =>\r\n `${Segment.base}/${AdministrationSegments.utilisateur}/${AdministrationSegments.getCurrentUserWithRoles}`,\r\n GetSqlFiles: () =>\r\n `${Segment.base}/${AdministrationSegments.dbUpdate}/${AdministrationSegments.getSqlFiles}`,\r\n GetSqlText: (id: string) =>\r\n `${Segment.base}/${AdministrationSegments.dbUpdate}/${AdministrationSegments.getSqlText}/${id}`,\r\n ExecuteSqlFiles: () =>\r\n `${Segment.base}/${AdministrationSegments.dbUpdate}/${AdministrationSegments.executeSqlFiles}`,\r\n ExecuteAllSqlFiles: () =>\r\n `${Segment.base}/${AdministrationSegments.dbUpdate}/${AdministrationSegments.executeAllSqlFiles}`,\r\n getAllUtilisateurMinimal: () =>\r\n `${Segment.base}/${AdministrationSegments.utilisateur}/${AdministrationSegments.allMinimal}`,\r\n getUtilisateurMinimal: () =>\r\n `${Segment.base}/${AdministrationSegments.utilisateur}/${AdministrationSegments.minimal}`,\r\n getAllClasseMinimal: () =>\r\n `${Segment.base}/${AdministrationSegments.journalApplication}/${AdministrationSegments.allMinimal}`,\r\n getClasseMinimal: () =>\r\n `${Segment.base}/${AdministrationSegments.journalApplication}/${AdministrationSegments.minimal}`,\r\n getEntityWorklfowInstanceInformation: () =>\r\n `${Segment.base}/${AdministrationSegments.workflowInstance}/${AdministrationSegments.getWorkflowEntityInformation}`,\r\n getWorkflowEtatSuivantByWorkflowEtat: (workflowEtatUid: string) =>\r\n `${Segment.base}/${AdministrationSegments.workflowEtat}/${AdministrationSegments.getWorkflowEtatSuivant}/${workflowEtatUid}`,\r\n updateEntityWorkflowInformation: () =>\r\n `${Segment.base}/${AdministrationSegments.workflowInstance}/${AdministrationSegments.updateEntityWorkflowInformation}`,\r\n updateCurrentUserLight: () => `${Segment.base}/${AdministrationSegments.utilisateur}/${AdministrationSegments.updateCurrentUserLight}`,\r\n importAllWorkflowClasses: () => `${Segment.base}/${AdministrationSegments.classw}/${AdministrationSegments.importAllWorkflowClasses}`,\r\n clearPassword: () => `${Segment.base}/${AdministrationSegments.utilisateur}/${AdministrationSegments.clearPassword}`,\r\n changePassword: () => `${Segment.base}/${AdministrationSegments.utilisateur}/${AdministrationSegments.changePassword}`,\r\n updateMasterParameters: () => `${Segment.base}/${AdministrationSegments.admin}/${AdministrationSegments.updateMasterParameters}`,\r\n changePasswordInvalid: () => `${Segment.base}/${AdministrationSegments.utilisateur}/${AdministrationSegments.changePasswordInvalid}`,\r\n getEntityInformations: (businessClassName: string) => `${Segment.base}/${AdministrationSegments.entityConfiguration}/${AdministrationSegments.entityInfo}/${businessClassName}`,\r\n getEntityInformationsAndRelations: (businessClass: string) =>`${Segment.base}/${AdministrationSegments.entityConfiguration}/${AdministrationSegments.entityInfoAndRelations}/${businessClass}`,\r\n GetAllEntitiesInformations :() => `${Segment.base}/${AdministrationSegments.entityConfiguration}/${AdministrationSegments.entityInfo}/${AdministrationSegments.getAll}`,\r\n createOrUpdateEntityInformations: () => `${Segment.base}/${AdministrationSegments.entityConfiguration}`,\r\n deleteEntityInformations: (className: string) => `${Segment.base}/${AdministrationSegments.entityConfiguration}/${className}`,\r\n getClasswByNom: () =>\r\n `${Segment.base}/${AdministrationSegments.classw}/${AdministrationSegments.getClasswByNom}`,\r\n getEntityColumns: (businessClassName: string) => `${Segment.base}/${AdministrationSegments.entityInfoController}/${AdministrationSegments.allAsKeyValuePair}/${businessClassName}`,\r\n getWorkflowConditionPassageOperatorEnum: () => `${Segment.base}/${AdministrationSegments.workflow}/${AdministrationSegments.getWorkflowConditionPassageOperatorEnum}`,\r\n getConnectedUsers: () => `${Segment.base}/${AdministrationSegments.admin}/${AdministrationSegments.getConnectedUsers}`,\r\n getWorkflowEtatFormByClassName: (className: string) => `${Segment.base}/${AdministrationSegments.workflowEtat}/${AdministrationSegments.getWorkflowEtatFormByClassName}/${className}`,\r\n // getAlertByCodeModule: () => `${Segment.base}/${AdministrationSegments.alert}/${AdministrationSegments.getByCodeModule}`,\r\n getAlertByCodeModule: (codeModule: string, alertDisplay: string) => `${Segment.base}/${AdministrationSegments.alert}/${codeModule}/${alertDisplay}`,\r\n\r\n getColonnesByClassNameAsKeyValuePair: (\r\n parentEntityName: string,\r\n columnName?: string\r\n ) =>\r\n `${Segment.base}/${AdministrationSegments.modeleImport}/${AdministrationSegments.colonneByClassNameAsKeyValuePair}/${parentEntityName}/${columnName}`,\r\n\r\n getDescriminatorValuesByClassName :(className : string) => `${Segment.base}/${AdministrationSegments.workflow}/${AdministrationSegments.getDescriminatorClassValues}/${className}`,\r\n\r\n getAllTypeColonneEnumAsync: () => \r\n `${Segment.base}/${AdministrationSegments.formulaire}/${AdministrationSegments.getAllTypeColonneEnumAsync}`,\r\n\r\n\r\n getMenuInfo: () => `${Segment.base}/${AdministrationSegments.menu}/${AdministrationSegments.getMenuData}`,\r\n refreshMenu: () => `${Segment.base}/${AdministrationSegments.menu}/${AdministrationSegments.getMenuData}`,\r\n getApiAsKeyValuePair: () => `${Segment.base}/${AdministrationSegments.apiExplorer}/${AdministrationSegments.asKeyValuePair}`,\r\n getAllApiAsKeyValuePair: () => `${Segment.base}/${AdministrationSegments.apiExplorer}/${AdministrationSegments.allAsKeyValuePair}`,\r\n getAllApiAsKeyValuePairByBusinessClassName:\r\n (businessClass?: string) => `${Segment.base}/${AdministrationSegments.apiExplorer}/${AdministrationSegments.allAsKeyValuePair}/${AdministrationSegments.byBusinessClass}/${businessClass}`,\r\n getEntityRelations: () => `${Segment.base}/${AdministrationSegments.apiExplorer}/${AdministrationSegments.entityRelations}`,\r\n getEntityValidations: (businessClass: string) => `${Segment.base}/${AdministrationSegments.entityValidations}/${businessClass}`, \r\n getEndpointsInfos: (businessClass: string) => `${Segment.base}/${AdministrationSegments.apiExplorer}/${AdministrationSegments.endpointsInfo}/${businessClass}`,\r\n\r\n};\r\n","import { Segment } from \"./baseuri\";\r\n\r\nexport const ImportExportSegments = {\r\n modeleImport: 'ModeleImport',\r\n colonneByClassNameAsKeyValuePair: 'coloneByClassNameAsKeyValuePair',\r\n classChildsAsKeyValuePair: 'getClassChilds',\r\n colonneByNameAndClassNameAsKeyValuePair:\r\n 'coloneByNameAndClassNameAsKeyValuePair',\r\n executeImport: 'ExecuteImport',\r\n executeExport: 'ExecuteExport',\r\n executeExportJson: 'ExecuteExportJson',\r\n executeExportJsonServer: 'ExecuteExportJsonServer',\r\n executeImportJson: 'ExecuteImportJson',\r\n executeImportJsonFromServer: 'ExecuteImportJsonFromServer',\r\n getTypeImportEnum: 'type-import-enum',\r\n getJsonFiles: 'getJsonFiles',\r\n getImportHistory: 'getImportHistory',\r\n deleteImport: 'deleteImport',\r\n executeImportWithoutModel: 'ExecuteImportWithoutModel',\r\n};\r\n\r\nexport const ImportExportEndPoints = {\r\n getTypeNatureDocumentEnum: () =>\r\n `${Segment.base}/${ImportExportSegments.modeleImport}/${ImportExportSegments.getTypeImportEnum}`,\r\n getColonnesByClassNameAsKeyValuePair: (\r\n parentEntityName: string,\r\n columnName?: string\r\n ) =>\r\n `${Segment.base}/${ImportExportSegments.modeleImport}/${ImportExportSegments.colonneByClassNameAsKeyValuePair}/${parentEntityName}/${columnName}`,\r\n getColonneByNameAndClassNameAsKeyValuePair: (\r\n name?: string,\r\n className?: string\r\n ) =>\r\n `${Segment.base}/${ImportExportSegments.modeleImport}/${ImportExportSegments.colonneByNameAndClassNameAsKeyValuePair}/${name}/${className}`,\r\n executeImport: (id: string) =>\r\n `${Segment.base}/${ImportExportSegments.modeleImport}/${ImportExportSegments.executeImport}/${id}`,\r\n executeExport: (id: string) =>\r\n `${Segment.base}/${ImportExportSegments.modeleImport}/${ImportExportSegments.executeExport}/${id}`,\r\n executeExportJson: (id: string) =>\r\n `${Segment.base}/${ImportExportSegments.modeleImport}/${ImportExportSegments.executeExportJson}/${id}`,\r\n executeExportJsonServer: (id: string) =>\r\n `${Segment.base}/${ImportExportSegments.modeleImport}/${ImportExportSegments.executeExportJsonServer}/${id}`,\r\n executeImportJson: () =>\r\n `${Segment.base}/${ImportExportSegments.modeleImport}/${ImportExportSegments.executeImportJson}`,\r\n executeImportJsonFromServer: (fileName: string, classe: string) =>\r\n `${Segment.base}/${ImportExportSegments.modeleImport}/${ImportExportSegments.executeImportJsonFromServer}/${classe}/${fileName}`,\r\n getClassChildsAsKeyValuePair: (className?: string) =>\r\n `${Segment.base}/${ImportExportSegments.modeleImport}/${ImportExportSegments.classChildsAsKeyValuePair}/${className}`,\r\n getJsonFiles: (classe: string) =>\r\n `${Segment.base}/${ImportExportSegments.modeleImport}/${ImportExportSegments.getJsonFiles}/${classe}`,\r\n getImportHistory: (classe: string) =>\r\n `${Segment.base}/${ImportExportSegments.modeleImport}/${ImportExportSegments.getImportHistory}/${classe}`,\r\n deleteImport: (codeImport: string, classe: string) =>\r\n `${Segment.base}/${ImportExportSegments.modeleImport}/${ImportExportSegments.deleteImport}/${classe}/${codeImport}`,\r\n executeImportWithoutModel: () =>\r\n `${Segment.base}/${ImportExportSegments.modeleImport}/${ImportExportSegments.executeImportWithoutModel}`,\r\n};\r\n","import { Segment } from \"./baseuri\"\r\n\r\nexport const ReportingSegments = {\r\n reporting : 'ReportingApp',\r\n addReportToBuiltIn:'add-to-build-in',\r\n getDefaultReportTemplate :'default-template',\r\n report:'Report',\r\n formname: 'formname',\r\n reportToEditTemplate: 'ReportToEditTemplate',\r\n addReportToEditTemplate: 'add',\r\n editReportToEditTemplate: 'edit',\r\n reportToPrint: 'ReportToPrint',\r\n reportToTemplate: 'ReportToTemplate',\r\n uploadfile: 'uploadfile',\r\n export: 'export',\r\n exportToPdf: 'exportToPdf',\r\n default: 'default',\r\n multiple: 'multiple',\r\n byform: 'byform',\r\n withoutForm: 'withoutform',\r\n allformname: 'allformname',\r\n updatelayout: 'updatelayout',\r\n defaultReportTemplate: 'default-template',\r\n addFromBuiltInTemplate: 'upsert-from-builtin-template',\r\n addToBuiltInTemplate: 'upsert-to-builtin-template',\r\n makeReportTemplateLayoutAsDefault :'make-report-layout-as-default-layout-style',\r\n getReportDescriminator :'get-report-descriminator',\r\n deleteDefaultReportTemplateFile : 'delete-default-report-template-file',\r\n dashboardModule: 'dashboardmodule',\r\n}\r\n\r\nexport const ReportingEndpoints = {\r\n\r\n addToBuiltInTemplate: (reportUid : string)=>`${Segment.base}/${ReportingSegments.reporting}/${ReportingSegments.addReportToBuiltIn}/${reportUid}`,\r\n\r\n getDefaultReportTemplate: (formName: string)=>`${Segment.base}/${ReportingSegments.reporting}/${ReportingSegments.getDefaultReportTemplate}/${formName}`,\r\n\r\ngetReports: (key: string, descriminatorValue?: string) =>\r\n `${Segment.reportingServiceBase}/api/${ReportingSegments.report}/${ReportingSegments.byform}/${key}${descriminatorValue ? '/' + descriminatorValue : ''}`,\r\n \r\n getEditionPersoReports: ()=>`${Segment.reportingServiceBase}/api/${ReportingSegments.report}/${ReportingSegments.withoutForm}`,\r\n\r\n getReportTemplateById: (key: string)=>`${Segment.reportingServiceBase}/api/${ReportingSegments.report}/${key}`,\r\n\r\n addFromBuiltInTemplate: (formName: string,templateName : string, descriminatorValue ?: string)=>`${Segment.reportingServiceBase}/api/${ReportingSegments.report}/${ReportingSegments.addFromBuiltInTemplate}/${formName}/${templateName}${descriminatorValue ? '/' + descriminatorValue : ''}`,\r\n \r\n deleteDefaultReportTemplate: (formName: string,templateName : string)=>`${Segment.base}/${ReportingSegments.reporting}/${ReportingSegments.deleteDefaultReportTemplateFile}/${formName}/${templateName}`,\r\n\r\n\r\n addReportToModel:() =>`${Segment.reportingServiceBase}/api/${ReportingSegments.reportToTemplate}`,\r\n\r\n addReportToPrint: () =>`${Segment.reportingServiceBase}/api/${ReportingSegments.reportToPrint}`,\r\n\r\n addReportToEditTemplate: () => `${Segment.reportingServiceBase}/api/${ReportingSegments.reportToEditTemplate}/${ReportingSegments.addReportToEditTemplate}`,\r\n \r\n editReportToEditTemplate: () => `${Segment.reportingServiceBase}/api/${ReportingSegments.reportToEditTemplate}/${ReportingSegments.editReportToEditTemplate}`,\r\n\r\n getAvailableFormNames: () => `${Segment.reportingServiceBase}/api/${ReportingSegments.report}/${ReportingSegments.allformname}`,\r\n\r\n exportReportFile: (reportTemplateUid: string) => `${Segment.reportingServiceBase}/api/${ReportingSegments.report}/${ReportingSegments.export}/${reportTemplateUid}`,\r\n\r\n exportReportFileToPdf: (reportTemplateUid: string) => `${Segment.reportingServiceBase}/api/${ReportingSegments.report}/${ReportingSegments.exportToPdf}/${reportTemplateUid}`,\r\n\r\nuploadReportFile: (discriminatorValue?: string) =>\r\n `${Segment.reportingServiceBase}/api/${ReportingSegments.report}/${ReportingSegments.uploadfile}${discriminatorValue ? `/${discriminatorValue}` : ''}`,\r\n\r\n deleteReport: (uid: string)=>`${Segment.reportingServiceBase}/api/${ReportingSegments.report}/${uid}`,\r\n\r\n setDefaultReport: (id: number)=>`${Segment.reportingServiceBase}/api/${ReportingSegments.report}/${ReportingSegments.default}/${id}`,\r\n\r\n getDefaultReport: ()=>`${Segment.reportingServiceBase}/api/${ReportingSegments.report}/${ReportingSegments.default}`,\r\n\r\n deleteMultipleReports: ()=>`${Segment.reportingServiceBase}/api/${ReportingSegments.report}/${ReportingSegments.multiple}`,\r\n\r\n updateReportLayout: (id: number) => `${Segment.reportingServiceBase}/api/${ReportingSegments.report}/${ReportingSegments.updatelayout}/${id}`,\r\n \r\n \r\n makeReportLayoutAsDefaultLayout: () => `${Segment.base}/${ReportingSegments.reporting}/${ReportingSegments.makeReportTemplateLayoutAsDefault}`,\r\n \r\n getReportDescriminator: (entityName: string, propertyName: string, propertyValue: string) => \r\n `${Segment.base}/${ReportingSegments.reporting}/${ReportingSegments.getReportDescriminator}/${entityName}/${propertyName}/${propertyValue}`,\r\n\r\n getReportTemplateByModuleCode: (moduleCode: string) => `${Segment.reportingServiceBase}/api/${ReportingSegments.dashboardModule}/${moduleCode}`,\r\n\r\n}\r\n\r\n","import { Segment } from \"./baseuri\"\r\n\r\nexport const IdentityPlatformSegments = {\r\n tenants: 'Tenants',\r\n users: 'Users',\r\n userTenants: 'UserTenants',\r\n parametres: \"Parametres\",\r\n connectedUsers: \"ConnectedUsers\",\r\n getAllPaged: 'getAllPaged',\r\n minimal: 'minimal',\r\n allMinimal: 'allMinimal',\r\n lockOpen: \"lockOpen\",\r\n logoutUser: \"LogoutUser\",\r\n authentication: \"Authentication\",\r\n login: \"login\",\r\n proceedLogin: \"proceedLogin\",\r\n logout: \"Logout\",\r\n changePasswordInvalid: \"ChangePasswordInvalid\",\r\n clearPassword: \"ClearPassword\",\r\n updateCurrentUserLight: \"UpdateCurrentUserLight\",\r\n getCurrentUser: \"GetCurrentUser\",\r\n getCurrentUserTenants: \"GetCurrentUserTenants\",\r\n progressBar: \"ProgressBar\",\r\n getProgressBarByProcessName: \"getProgressBarByProcessName\",\r\n}\r\n\r\n\r\nexport const IdentityPlatformEndpoints = {\r\n getAllUsersMinimal: () => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.users}/${IdentityPlatformSegments.allMinimal}`,\r\n getUserMinimal: () => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.users}/${IdentityPlatformSegments.minimal}`,\r\n getAllTenantsMinimal: () => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.tenants}/${IdentityPlatformSegments.allMinimal}`,\r\n getTenantMinimal: () => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.tenants}/${IdentityPlatformSegments.minimal}`,\r\n createTenant: () => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.tenants}`,\r\n updateTenant: (uid: string) => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.tenants}/${uid}`,\r\n deleteTenant: (uid: string) => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.tenants}/${uid}`,\r\n getAllPaged: () => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.tenants}/${IdentityPlatformSegments.getAllPaged}`,\r\n getTenantById: (uid: string) => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.tenants}/${uid}`,\r\n createUserTenant: () => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.userTenants}`,\r\n updateUserTenant: (uid: string) => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.userTenants}/${uid}`,\r\n deleteUserTenant: (uid: string) => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.userTenants}/${uid}`,\r\n getAllUserTenantPaged: () => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.userTenants}/${IdentityPlatformSegments.getAllPaged}`,\r\n getUserTenantById: (uid: string) => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.userTenants}/${uid}`,\r\n createUser: () => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.users}`,\r\n updateUser: (uid: string) => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.users}/${uid}`,\r\n deleteUser: (uid: string) => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.users}/${uid}`,\r\n getAllUserPaged: () => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.users}/${IdentityPlatformSegments.getAllPaged}`,\r\n getUserById: (uid: string) => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.users}/${uid}`,\r\n lockOpen: () => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.users}/${IdentityPlatformSegments.lockOpen}`,\r\n changePasswordInvalid: () => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.users}/${IdentityPlatformSegments.changePasswordInvalid}`,\r\n getMasterParameters: () => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.parametres}`,\r\n updateMasterParameters: () => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.parametres}`,\r\n getConnectedUsers: () => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.connectedUsers}`,\r\n logoutWithToken: () => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.connectedUsers}/${IdentityPlatformSegments.logoutUser}`,\r\n login: () => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.authentication}/${IdentityPlatformSegments.login}`,\r\n proceedLogin: () => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.authentication}/${IdentityPlatformSegments.proceedLogin}`,\r\n logout: () => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.authentication}/${IdentityPlatformSegments.logout}`,\r\n getCurrentUser: () => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.users}/${IdentityPlatformSegments.getCurrentUser}`,\r\n clearPassword: () => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.users}/${IdentityPlatformSegments.clearPassword}`,\r\n getCurrentUserTenants: () => `${Segment.identityPlatformUrlApi}/${IdentityPlatformSegments.tenants}/${IdentityPlatformSegments.getCurrentUserTenants}`,\r\n \r\n updateProgressBar: (id: string) => `${Segment.base}/${IdentityPlatformSegments.progressBar}/${id}`,\r\n createProgressBar: () => `${Segment.base}/${IdentityPlatformSegments.progressBar}`,\r\n getProgressBarByProcessName: (processName: string) => `${Segment.base}/${IdentityPlatformSegments.progressBar}/${IdentityPlatformSegments.getProgressBarByProcessName}/${processName}`,\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { firstValueFrom, Observable, Subject } from 'rxjs';\r\nimport { ILocalizationDS } from '../../interfaces';\r\nimport { LanguageInformations, LanguagesCodes } from '../../enums/Language';\r\nimport { Segment } from '../../end-points';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TranslationService {\r\n //#region local vars\r\n private _localizationDS: ILocalizationDS = { translations: [] };\r\n private _languagesInformations: LanguageInformations[] = [] \r\n private _traductionFileUpdatedSubject = new Subject<boolean>();\r\n\r\n\r\n traductionFileUpdatedSubject$ = this._traductionFileUpdatedSubject.asObservable()\r\n\r\n public get localizationDS(): ILocalizationDS {\r\n if (this._localizationDS) {\r\n return this._localizationDS;\r\n }\r\n else {\r\n return { translations: [] };\r\n }\r\n }\r\n //#endregion\r\n\r\n constructor(private _httpClient: HttpClient) {\r\n this.initLanguageInformations()\r\n }\r\n\r\n public get languagesInformations() : LanguageInformations[]{\r\n return this._languagesInformations\r\n }\r\n\r\n initLanguageInformations() {\r\n this._languagesInformations = [{\r\n languageCode: LanguagesCodes.Francais,\r\n isRightToLeftMode: false\r\n },\r\n {\r\n languageCode: LanguagesCodes.Arabe,\r\n isRightToLeftMode: true\r\n },\r\n {\r\n languageCode: LanguagesCodes.Anglais,\r\n isRightToLeftMode: false\r\n }]\r\n }\r\n\r\n async loadLocalizationDS(): Promise<void> {\r\n try {\r\n let ds = await firstValueFrom(this.localizationDSRequest());\r\n if (ds) {\r\n this._localizationDS = ds;\r\n \r\n // TODO @MedAli & @Hassen : fix app performance\r\n //this._traductionFileUpdatedSubject.next(true)\r\n }\r\n else {\r\n this._localizationDS = { translations: [] };\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n\r\n private localizationDSRequest(): Observable<ILocalizationDS> {\r\n return this._httpClient.get<ILocalizationDS>(`${Segment.remoteLocalizationServiceBaseUrl}/Traduction`);\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslationService } from '../services/translation/translation.service';\r\nimport { ITranslation } from '../interfaces';\r\n// import { TranslationService } from '@services/translation/translation.service';\r\n\r\n@Pipe({\r\n name: 'localize',\r\n // TODO @MedAli & @Hassen : fix app performance\r\n // pure: false\r\n})\r\nexport class LocalizePipe implements PipeTransform {\r\n\r\n private translations: Array<ITranslation>;\r\n \r\n constructor(private _translationService : TranslationService\r\n ){\r\n this.translations = this._translationService.localizationDS.translations\r\n // TODO @MedAli & @Hassen : fix app performance\r\n // this._translationService.traductionFileUpdatedSubject$.subscribe({\r\n // next: () => {\r\n // this.translations = this._translationService.localizationDS.translations;\r\n // }\r\n // });\r\n}\r\n\r\n transform(key: string| string[], ...args: unknown[]): string {\r\n // let translations : Array<ITranslation> = this._translationService.localizationDS.translations;\r\n if (Array.isArray(key)) {\r\n let result : String[]=[] ;\r\n key.forEach(k => {\r\n if(this.translations && this.translations.length > 0){\r\n let translation = this.translations.find(t => t.key == k);\r\n if(translation){\r\n result.push(translation.value);\r\n }\r\n }\r\n });\r\n return result.join('<br>');\r\n }else{\r\n if(this.translations && this.translations.length > 0){\r\n let translation = this.translations.find(t => t.key == key);\r\n if(translation){\r\n return translation.value;\r\n }\r\n }\r\n }\r\n return key;\r\n\r\n }\r\n\r\n}\r\n","export enum Component_Modes {\r\n\r\n /*** Components use modes ***/\r\n\r\n EDIT = \"EDIT\",\r\n\r\n CREATE = \"CREATE\",\r\n\r\n DELETE = \"DELETE\",\r\n\r\n CONSULT = \"CONSULT\",\r\n\r\n DUPLICATE = \"DUPLICATE\"\r\n\r\n }\r\n\r\n export const Modes = {\r\n\r\n /*** Components use modes ***/\r\n\r\n edit : \"EDIT\",\r\n\r\n create : \"CREATE\",\r\n\r\n ComboAdd : \"COMBOADD\",\r\n\r\n delete : \"DELETE\",\r\n\r\n consult : \"CONSULT\",\r\n\r\n duplicate : \"DUPLICATE\"\r\n\r\n }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { LocalizePipe } from './localize.pipe';\r\nimport { Modes } from '../enums/component-use-modes-enum';\r\n\r\n@Pipe({\r\n name: 'modalLabel'\r\n})\r\nexport class ModalLabelPipe implements PipeTransform {\r\n\r\n constructor(private _localizePipe: LocalizePipe) { }\r\n\r\n transform(value: unknown, mode?: string, label?: string): string {\r\n if(label != undefined){\r\n \r\n if (mode == Modes.edit) {\r\n return this._localizePipe.transform(\"Edit\") + \" \" + this._localizePipe.transform(label);\r\n }\r\n if (mode == Modes.create) {\r\n return this._localizePipe.transform(\"Create\") + \" \" + this._localizePipe.transform(label);\r\n }\r\n if (mode == Modes.delete) {\r\n return this._localizePipe.transform(\"Delete\") + \" \" + this._localizePipe.transform(label);\r\n }\r\n if (mode == Modes.consult) {\r\n return (\r\n this._localizePipe.transform('Consult') +\r\n ' ' +\r\n this._localizePipe.transform(label)\r\n );\r\n }\r\n }\r\n throw new Error('No mode have been set to ModalLabelPipe');\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'shorten',\r\n standalone : true\r\n})\r\nexport class ShortenPipe implements PipeTransform {\r\n\r\n transform(value: string, limit: number = 20): unknown {\r\n if (value.length > limit) {\r\n return value.slice(0, limit) + '...';\r\n }\r\n return value;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'toNumber'\r\n})\r\nexport class ToNumberPipe implements PipeTransform {\r\n\r\n transform(value: any | undefined): number {\r\n if (value == undefined || value == null) {\r\n return 0;\r\n }\r\n let retNumber = Number(value);\r\n return isNaN(retNumber) ? 0 : retNumber;\r\n }\r\n\r\n}\r\n","export const locals = {\r\n arabicLocal: 'ar-SA',\r\n frenchLocal: 'fr-FR',\r\n };\r\n\r\n export const rtlModeKeys = {\r\n rtlModeEnabled: 'rtlModeEnabled',\r\n };","import { CurrencyPipe } from '@angular/common';\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\nimport { locals } from '../consts/locals.const';\r\n\r\n@Pipe({\r\n name: 'tsiCurrency',\r\n})\r\nexport class TsiCurrencyPipe implements PipeTransform {\r\n \r\n constructor(private currencyPipe: CurrencyPipe) { }\r\n\r\n transform(\r\n value: number | undefined,\r\n currencyCode: string,\r\n display: 'code' | 'symbol' | 'symbol-narrow' | string = 'symbol',\r\n digitsInfo: string = '',\r\n locale: string = 'en-US'\r\n ): string | null {\r\n let formattedValue = this.currencyPipe.transform(\r\n value,\r\n currencyCode,\r\n display,\r\n digitsInfo,\r\n locale\r\n );\r\n\r\n if (locale != locals.arabicLocal) {\r\n return formattedValue;\r\n }\r\n\r\n if (!formattedValue) return null;\r\n\r\n const currencySymbol = formattedValue.match(/[^0-9,.]/g)?.join('') || '';\r\n formattedValue = formattedValue.replace(currencySymbol, '');\r\n\r\n return `${formattedValue} ${currencySymbol}`;\r\n }\r\n}\r\n","\r\nexport const DateFormatDisplay = \"dd-MM-yyyy\";\r\nexport const DateTimeFormatDisplay = \"dd-MM-yyyy HH:mm:ss\"\r\nexport const SeparateurMillier = \",\";\r\nexport const SeparateurDecimal = \".\";\r\n\r\n//date consts\r\n//for date picker use primeng masks\r\nexport const DatePickerDateFormat = \"dd/mm/yy\";\r\nexport const DatePickerTimeFormat = \"HH:mm:ss\";\r\nexport const DatePickerDateTimeFormat = \"dd/mm/yy HH:mm:ss\";\r\n\r\n//for masks supported by typescript Date class\r\nexport const TS_ValidDateFormat = \"yyyy-MM-dd\";\r\nexport const TS_ValidTimeFormat = \"HH:mm:ss\";\r\nexport const TS_ValidDateTimeFormat = \"dd/MM/yyyy HH:mm:ss\";\r\n\r\n//for usual formatting use date pipe masks\r\nexport const DateFormat = \"dd/MM/yyyy\";\r\nexport const TimeFormat = \"HH:mm:ss\";\r\nexport const DateTimeFormat = \"dd/MM/yyyy HH:mm:ss\";\r\n\r\nexport const TimeZoneLocale = \"UTC\";\r\n\r\nexport const ApiDateTimeFormat: string = 'yyyy-MM-ddTHH:mm:ss';\r\n\r\nexport const tokenQueryParamName: string = \"token\";\r\n\r\nexport const DefaultSocieteDevise = {\r\n uid: undefined,\r\n nombreDecimales: 3,\r\n codeDevise: 'TND',\r\n numeroDevise: undefined,\r\n libelleDevise: undefined,\r\n nombreDevises: undefined,\r\n compteBancaireDefaut: undefined,\r\n}\r\n\r\nexport const authorization = {\r\n encryptedAuthTokenName: 'enc_auth_token',\r\n};\r\n\r\nexport const userLanguage = {\r\n userLanguage: 'UserLanguage',\r\n};\r\n\r\nexport const menuItems = {\r\n menuItems: 'menu_items',\r\n};\r\n\r\nexport const defaultCardHeader = {\r\n image: './assets/images/default-card-header-img.jpg'\r\n}\r\n\r\n export const requestHeaderNames = {\r\n duplicate: \"X-Duplicate\"\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SeparateurDecimal, SeparateurMillier } from '../consts/tsi-consts';\r\n\r\n@Pipe({\r\n name: 'TsiDecimalPipe'\r\n})\r\nexport class TsiDecimalPipe implements PipeTransform {\r\n transform(value: any, ...args: unknown[]): unknown {\r\n\r\n let regexSepDeciaml = /\\,/g;\r\n let regexSepMillier = /\\s/g;\r\n\r\n let result = value.toString().replace(regexSepDeciaml, SeparateurDecimal);\r\n let resulSepM = result.replace(regexSepMillier, SeparateurMillier);\r\n return resulSepM;\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[autoSelect]'\r\n})\r\nexport class AutoSelectDirective {\r\n constructor(private el: ElementRef) { }\r\n\r\n @HostListener('focusin') onFocus() {\r\n setTimeout(() => {\r\n let input: HTMLInputElement | HTMLTextAreaElement | null = null;\r\n\r\n if (this.el.nativeElement.tagName === 'INPUT' || this.el.nativeElement.tagName === 'TEXTAREA') {\r\n input = this.el.nativeElement;\r\n } else {\r\n input = this.el.nativeElement.querySelector('input, textarea');\r\n }\r\n\r\n if (input && document.activeElement === input) {\r\n input.select();\r\n }\r\n }, 10);\r\n }\r\n\r\n}","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-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=\"spinner-container flex align-items-center justify-content-center\">\r\n <div class=\"d-flex justify-content-center\">\r\n <p-progressSpinner></p-progressSpinner>\r\n </div>\r\n</div>\r\n","import { ComponentFactoryResolver, ComponentRef, Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { SpinnerComponent } from '../tsi-components/spinner/spinner.component';\r\n\r\n@Directive({\r\n selector: '[busy]'\r\n})\r\nexport class BusyDirective {\r\n @Input()\r\n set busy(isLoading: boolean) {\r\n if (isLoading) {\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(SpinnerComponent);\r\n this.view.createComponent(componentFactory);\r\n } else {\r\n this.view.clear();\r\n this.view.createEmbeddedView(this.template);\r\n }\r\n };\r\n constructor(private view: ViewContainerRef,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private template: TemplateRef<AnimationPlayState>) {\r\n\r\n }\r\n}\r\n","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appModuleMainParameter]'\r\n})\r\nexport class ModuleMainParameterDirective {\r\n\r\n constructor(public viewContainerRef: ViewContainerRef) { }\r\n\r\n}\r\n","import { AfterContentChecked, ChangeDetectorRef, Component, inject, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-tsi-base',\r\n template: ''\r\n})\r\nexport class TsiBaseComponent implements OnInit, AfterContentChecked {\r\n\r\n myStyleClass: string = 'p-0 tsi-component'\r\n constructor(protected cdRef?: ChangeDetectorRef) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n if (this.cdRef != undefined) {\r\n this.cdRef.detectChanges();\r\n }\r\n }\r\n}","export enum AutoComplete {\r\n Off = 'off',\r\n NewPassword = 'new-password'\r\n}\r\n","export enum ClaimTypes {\r\n TenantUid = 'TenantUid',\r\n PrimarySid = 'http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid',\r\n Email = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress',\r\n Name = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name',\r\n NameIdentifier = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier',\r\n Surname = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname',\r\n Langue = \"Langue\",\r\n Role = \"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\",\r\n Actor = \"http://schemas.xmlsoap.org/ws/2009/09/identity/claims/actor\",\r\n IsSaasAdmin = 'IsSaasAdmin',\r\n IsTenantAdmin = 'IsTenantAdmin',\r\n}\r\n","export enum CodeFormat{\r\n Numero = 999999,\r\n Code = '999999'\r\n}","export enum CSSUnits {\r\n PRECENT = \"%\",\r\n EM = \"em\",\r\n REM = \"rem\",\r\n PX = \"px\",\r\n VH = \"vh\",\r\n VW = \"vw\"\r\n}\r\n","export enum DecimalFormat {\r\n FORMAT_NUM_DECIAMl_ONE = '1.1-1',\r\n FORMAT_NUM_DECIAMl_TWO = '1.2-2',\r\n FORMAT_NUM_DECIAMl_THREE = '1.3-3',\r\n FORMAT_NUM_DECIAMl_FOUR = '1.4-4',\r\n}\r\n","export enum DisplayTypes {\r\n CURRENCY_SOCIETE_DISPLAY = 'currency-Societe-Display',\r\n DATE_DISPLAY = 'date-Display',\r\n DATETIME_DISPLAY = 'date-time-Display',\r\n CHECKBOX_DISPLAY = 'checkBox-Display',\r\n RATE_DISPLAY = 'rate-Display',\r\n CURRENCY_OTHER_DISPLAY = 'currency-Other-Display',\r\n DECIMAL_DISPLAY = 'decimal-Display',\r\n INTEGER_DISPLAY = 'integer-Display',\r\n NESTED_PROP_DISPLAY = 'display-Nested-Prop',\r\n TEXT_DISPLAY = 'text-Display',\r\n IMAGE_DISPLAY = 'image-Display' \r\n}\r\n\r\nexport const NumericDisplayTypes: string[] = [\r\n DisplayTypes.INTEGER_DISPLAY,\r\n DisplayTypes.RATE_DISPLAY,\r\n DisplayTypes.CURRENCY_SOCIETE_DISPLAY,\r\n DisplayTypes.CURRENCY_OTHER_DISPLAY,\r\n DisplayTypes.DECIMAL_DISPLAY\r\n]\r\n\r\nexport const DisplayTypeColors: { [key in DisplayTypes]: string } = {\r\n [DisplayTypes.CURRENCY_SOCIETE_DISPLAY]: 'currencySociete-grid',\r\n [DisplayTypes.DATE_DISPLAY]: 'date-grid',\r\n [DisplayTypes.DATETIME_DISPLAY]: 'date-time-grid',\r\n [DisplayTypes.CHECKBOX_DISPLAY]: 'checkBox-grid',\r\n [DisplayTypes.RATE_DISPLAY]: 'rate-grid',\r\n [DisplayTypes.CURRENCY_OTHER_DISPLAY]: 'currencyOther-grid',\r\n [DisplayTypes.DECIMAL_DISPLAY]: 'decimal-grid',\r\n [DisplayTypes.INTEGER_DISPLAY]: 'integer-grid',\r\n [DisplayTypes.NESTED_PROP_DISPLAY]: 'nested-grid',\r\n [DisplayTypes.TEXT_DISPLAY]: 'text-grid',\r\n [DisplayTypes.IMAGE_DISPLAY]: 'image-Display',\r\n};","import { EnumDescription } from \"../types/enum-description.type\";\r\n\r\nexport enum FilterOperatorType {\r\n EQUAL = 0,\r\n LESSOREQUAL = 1,\r\n GREATEROREQUAL = 2,\r\n LESS = 3,\r\n GREATER = 4,\r\n NOTEQUAL = 5,\r\n CONTAINS = 6,\r\n STARTSWITH = 7,\r\n ENDSWITH = 8,\r\n DATEIS = 9,\r\n DATEISNOT = 10,\r\n DATEISBEFORE = 11,\r\n DATEISAFTER = 12,\r\n NOTCONTAINS = 13\r\n}\r\n\r\nexport const FilterOperatorTypeDescriptions : EnumDescription<number> = {\r\n\r\n [FilterOperatorType.EQUAL]: \"shared_filter_operator_type_equal\",\r\n\r\n [FilterOperatorType.LESSOREQUAL]: \"shared_filter_operator_type_less_or_equal\",\r\n\r\n [FilterOperatorType.GREATEROREQUAL]: \"shared_filter_operator_type_greater_or_equal\",\r\n\r\n [FilterOperatorType.LESS]: \"shared_filter_operator_type_less\",\r\n\r\n [FilterOperatorType.GREATER]: \"shared_filter_operator_type_greater\",\r\n\r\n [FilterOperatorType.NOTEQUAL]: \"shared_filter_operator_type_not_equal\",\r\n\r\n [FilterOperatorType.CONTAINS]: \"shared_filter_operator_type_contains\",\r\n\r\n [FilterOperatorType.STARTSWITH]: \"shared_filter_operator_type_starts_with\",\r\n\r\n [FilterOperatorType.ENDSWITH]: \"shared_filter_operator_type_ends_with\",\r\n\r\n [FilterOperatorType.DATEIS]: \"shared_filter_operator_type_date_is\",\r\n\r\n [FilterOperatorType.DATEISNOT]: \"shared_filter_operator_type_date_is_not\",\r\n\r\n [FilterOperatorType.DATEISBEFORE]: \"shared_filter_operator_type_date_is_before\",\r\n\r\n [FilterOperatorType.DATEISAFTER]: \"shared_filter_operator_type_date_is_after\",\r\n\r\n [FilterOperatorType.NOTCONTAINS]: \"shared_filter_operator_type_not_contains\",\r\n\r\n};\r\n","export enum FormValidationError {\r\n Required = 'Required',\r\n MaxLength = 'MaxLength',\r\n OutOfRange = 'OutOfRange'\r\n}\r\n\r\nexport interface FormValidityResult {\r\n isValid: boolean;\r\n error: string | undefined;\r\n inputName: string | undefined;\r\n data: any;\r\n}","export enum GridSelectionMode {\r\n Multiple = 'multiple',\r\n Single = 'single',\r\n None = ''\r\n}\r\n","export enum GridSortMode {\r\n Multiple = 'multiple',\r\n Single = 'single',\r\n None = ''\r\n}\r\n","export enum HttpMethodType {\r\n POST = 'Post',\r\n GET = 'Get'\r\n}","\r\nexport enum InputTypes {\r\n COMBOBOX = 'combobox',\r\n DATE = 'date',\r\n DATETIME = 'datetime',\r\n CHECKBOX = 'checkBox',\r\n CURRENCY_SOCIETE_INPUT = 'currency-Societe-Input',\r\n CURRENCY_OTHER_INPUT = 'currency-Other-Input',\r\n DECIMAL_INPUT = 'decimal-Input',\r\n INTEGER = 'integer',\r\n RATE_INPUT = 'Rate-Input',\r\n SEARCH_COMBO = 'SearchCombo',\r\n TEXT_BOX = 'textbox',\r\n TEXTBOX = \"TEXTBOX\",\r\n FORMULA_TEXT_BOX = 'FORMULA_TEXT_BOX',\r\n TIME = 'time',\r\n IMAGE_INPUT = 'image-Input',\r\n RADIO_BUTTON = 'radio-button',\r\n}","export enum LayoutOrientation {\r\n horizontal,\r\n vertical\r\n}\r\n","\r\nexport enum logoutReasonEnum {\r\n VOLONTARY = 'VOLONTARY',\r\n INACTIVITY = 'INACTIVITY',\r\n ADMIN_ACTION = 'ADMIN_ACTION',\r\n EXPIRED_TOKEN = 'EXPIRED_TOKEN'\r\n}","import { IModalSize } from \"../interfaces/modal/modal-size\";\r\n\r\nexport class ModalSizeEnum {\r\n static readonly ExtraSmall: IModalSize ={width: '30vw',height: '30vh'};\r\n static readonly XSmall: IModalSize ={width: '40vw',height: '40vh'};\r\n static readonly Small: IModalSize ={width: '50vw',height: '50vh'};\r\n static readonly XMedium: IModalSize = {width: '65vw',height: '65vh'};\r\n static readonly Medium: IModalSize = {width: '70vw',height: '70vh'};\r\n static readonly Large: IModalSize ={width: '80vw',height: '80vh'};\r\n static readonly ExtraLarge: IModalSize ={width: '90vw',height: '90vh'};\r\n\r\n}\r\n","export enum TsiReportType {\r\n List = 1,\r\n Form = 2,\r\n Custom = 3,\r\n Dashboard = 4,\r\n RTF = 5, \r\n}\r\n","export enum Status {\r\n NotFound = 0,\r\n DomainError = 1,\r\n Success = 2,\r\n Unknown = 3,\r\n HasChild = 4,\r\n}","export enum TextBoxType {\r\n PASSWORD = \"password\",\r\n EMAIL=\"email\",\r\n TEL = \"tel\"\r\n}\r\n","export enum TsiComponentEnum { \r\n CheckboxDisplay = 0,\r\n CurrencyOtherDisplay,\r\n CurrencySocieteDisplay,\r\n DateDisplay,\r\n DecimalDisplay,\r\n IntegerDisplay,\r\n Label,\r\n Paragraph,\r\n RateDisplay,\r\n DisplayGrid,\r\n \r\n EditableGrid,\r\n SearchCombo,\r\n Checkbox,\r\n CurrencyOtherInput,\r\n CurrencySocieteInput,\r\n DatePicker,\r\n DecimalInput,\r\n Integer,\r\n RadioButton,\r\n RateInput,\r\n TextArea,\r\n TextBox,\r\n\r\n\r\n \r\n ModalLoader,\r\n GenericCrud,\r\n GenericGrid,\r\n Modal,\r\n ModalFooter,\r\n ModalHeader,\r\n /**/\r\n SubmitButton,\r\n FormBase,\r\n ErrorMessage,\r\n SuccessMessage,\r\n TabPanel,\r\n TabView,\r\n\r\n Tab\r\n}\r\n","export enum TypeImportEnum{\r\n OrdreColonne = 'O',\r\n TitreColonne = 'T'\r\n}","export enum ButtonType {\r\n Button = 'button',\r\n Submit = 'submit',\r\n}\r\n","export enum TooltipPosition {\r\n Top = \"top\",\r\n Right = \"right\",\r\n Bottom = \"bottom\",\r\n Left = \"left\"\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { EntityValidations } from '../../models/common/entity-validations';\r\nimport { AdministrationEndpoints } from '../../end-points';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EntityValidationsService {\r\n\r\n constructor(protected _httpClient: HttpClient){}\r\n\r\n getEntityValidations(businessClass: string){\r\n return this._httpClient.get<EntityValidations[]>(AdministrationEndpoints.getEntityValidations(businessClass));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { EntityValidationsService } from './entity-validations.service';\r\nimport { firstValueFrom, Observable, Subject } from 'rxjs';\r\nimport { EntityValidations } from '../../models/common/entity-validations';\r\n\r\n@Injectable()\r\nexport class GenericValidationStateService {\r\n private _entityValidationInfos: EntityValidations[] = [];\r\n private _entityValidationInfosLoaded: Subject<void> = new Subject<void>();\r\n\r\n entityValidationInfosLoaded: Observable<void> = this._entityValidationInfosLoaded.asObservable();\r\n\r\n constructor(private _entityValidationService: EntityValidationsService) { }\r\n\r\n async loadEntityValidationInfos(businessClass: string) {\r\n if (!businessClass) return;\r\n\r\n var entityValidationInfosResponse = await firstValueFrom(this._entityValidationService.getEntityValidations(businessClass));\r\n if (entityValidationInfosResponse && Array.isArray(entityValidationInfosResponse) && entityValidationInfosResponse.length > 0) {\r\n this._entityValidationInfos = entityValidationInfosResponse;\r\n\r\n this._entityValidationInfosLoaded.next();\r\n }\r\n }\r\n\r\n getValidationInfos(propName: string): EntityValidations | undefined {\r\n return this._entityValidationInfos.find((ev: EntityValidations) => ev.columnName.toLowerCase() === propName.toLowerCase());\r\n }\r\n}","export class StorageManager{\r\n public static setItemAs<T>(key: string, object: T) {\r\n localStorage.setItem(key, JSON.stringify(object));\r\n }\r\n\r\n public static getItemAs<T>(key: string): T | null {\r\n let item = localStorage.getItem(key);\r\n if (item !== null) {\r\n return JSON.parse(item);\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public static setItem(key: string, item: string) {\r\n localStorage.setItem(key, item);\r\n }\r\n\r\n public static getItem(key: string): string | null {\r\n let item = localStorage.getItem(key);\r\n if (item !== null) {\r\n return item;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public static removeItem(key: string) {\r\n localStorage.removeItem(key);\r\n }\r\n\r\n public static clear() {\r\n localStorage.clear();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { LayoutConfiguration } from '../../models/layout/layout-config';\r\nimport { StorageManager } from '../../tsi-helpers/storage-manager';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n/**\r\n *\r\n */\r\nexport class LayoutHelperService {\r\n\r\n //#region properties\r\n private readonly _layoutConfigurationKey: string = 'layout_configuration';\r\n private _layoutConfiguration! : LayoutConfiguration;\r\n private _isDesignMode : boolean = false\r\n _designModeListSubject = new Subject<boolean>();\r\n _designModeFormSubject = new Subject<any>();\r\n\r\n designModeListObservable = this._designModeListSubject.asObservable()\r\n designModeFormObservable = this._designModeFormSubject.asObservable()\r\n //#endregion\r\n\r\n get layoutConfiguration(){\r\n return this._layoutConfiguration;\r\n }\r\n\r\n set layoutConfiguration(_value: LayoutConfiguration){\r\n this._layoutConfiguration = _value;\r\n this.saveLayoutConfiguration();\r\n this.manageColorfulMode();\r\n }\r\n\r\n set isDesignMode (_value : boolean){\r\n this._isDesignMode = _value\r\n }\r\n\r\n get isDesignMode(){\r\n return this._isDesignMode\r\n }\r\n\r\n /**\r\n * ctor\r\n */\r\n constructor() {\r\n this.layoutConfiguration = this.getCurrentLayoutConfigurationOrDefault();\r\n }\r\n\r\n //#region private methods\r\n private getCurrentLayoutConfigurationOrDefault(): LayoutConfiguration{\r\n let currentLayoutConfiguration : LayoutConfiguration | null = StorageManager\r\n .getItemAs<LayoutConfiguration>(this._layoutConfigurationKey);\r\n\r\n if(!currentLayoutConfiguration){\r\n currentLayoutConfiguration = {\r\n isColorfulModeEnabled: false\r\n };\r\n }\r\n\r\n return currentLayoutConfiguration;\r\n }\r\n\r\n private saveLayoutConfiguration(): void{\r\n StorageManager.setItemAs<LayoutConfiguration>(this._layoutConfigurationKey, this.layoutConfiguration);\r\n }\r\n\r\n private manageColorfulMode(): void{\r\n let body = document.body;\r\n if(body){\r\n if(this.layoutConfiguration\r\n .isColorfulModeEnabled){\r\n body.classList.add('colorful');\r\n }\r\n else{\r\n body.classList.remove('colorful');\r\n }\r\n }\r\n }\r\n //#endregion private methods\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { TsiInputBase } from '../../tsi-base/tsi-input-base/tsi-input-base.component';\r\n\r\n@Injectable()\r\nexport class InputRegistryService {\r\n\r\n private _inputs = new Set<TsiInputBase>();\r\n\r\n register(input: TsiInputBase) {\r\n this._inputs.add(input);\r\n }\r\n\r\n unregister(input: TsiInputBase) {\r\n this._inputs.delete(input);\r\n }\r\n\r\n getAll(): TsiInputBase[] {\r\n return Array.from(this._inputs);\r\n }\r\n\r\n clear() {\r\n this._inputs.clear();\r\n }\r\n}\r\n","import { AfterViewInit, ChangeDetectorRef, Component, inject, Input, OnDestroy } from \"@angular/core\";\r\nimport { TsiBaseComponent } from \"../components/tsi-base/tsi-base.component\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { FormValidationError, FormValidityResult } from \"../../enums\";\r\nimport { GenericValidationStateService } from \"../../services/validation/generic-validation-state.service\";\r\nimport { LayoutHelperService } from \"../../services/layout/layout-helper.service\";\r\nimport { InputRegistryService } from \"../../services/validation/input-registry.service\";\r\n\r\n@Component({ selector: 'tsi-input-base', template: '' })\r\nexport abstract class TsiInputBase<T = any> extends TsiBaseComponent implements AfterViewInit, OnDestroy {\r\n //#region props\r\n private _entityValidationInfosLoadedSub?: Subscription;\r\n private _genericValidationStateService?: GenericValidationStateService = inject(GenericValidationStateService);\r\n private _layoutHelperService: LayoutHelperService = inject(LayoutHelperService);\r\n private _inputField!: T;\r\n private _inputRegistry = inject(InputRegistryService)\r\n\r\n protected isInputNameNotFound: boolean = false;\r\n \r\n public isRequired: boolean = false;\r\n public maxLength : number | undefined;\r\n\r\n @Input() validationStatusCssClass: string = '';\r\n //#endregion\r\n \r\n //#region Inputs\r\n @Input() inputName: string | undefined ;\r\n @Input() inputId?: string;\r\n @Input() disabled: boolean = false;\r\n @Input() placeHolder: string = '';\r\n @Input() setPlaceHolder: boolean = false;\r\n @Input() infoText: string = '';\r\n\r\n @Input() get inputField() {\r\n return this._inputField;\r\n }\r\n\r\n set inputField(val: T) {\r\n this._inputField = val;\r\n }\r\n //#endregion\r\n\r\n //#region ctor\r\n constructor(protected override cdRef?: ChangeDetectorRef) {\r\n super(cdRef);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._inputRegistry.register(this);\r\n }\r\n //#endregion\r\n\r\n //#region Lifecycle hooks\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n this.registerEntityValidationInfosLoadedHandler();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._entityValidationInfosLoadedSub?.unsubscribe();\r\n this._inputRegistry.unregister(this);\r\n }\r\n //#endregion\r\n\r\n //#region private methods\r\n private calculateValidationStatus(): void {\r\n if (!this.inputName) {\r\n this.validationStatusCssClass = \"border-cyan-300 border-3\";\r\n throw new Error('no input name was provided !')\r\n }\r\n\r\n if (!this._genericValidationStateService) {\r\n return;\r\n }\r\n\r\n var validationInfos = this._genericValidationStateService.getValidationInfos(this.inputName);\r\n if (!validationInfos) {\r\n this.isInputNameNotFound = true;\r\n return;\r\n }\r\n\r\n this.isRequired = validationInfos.isNullable !== true;\r\n this.maxLength = validationInfos.maxLength;\r\n\r\n }\r\n\r\n private registerEntityValidationInfosLoadedHandler(): void {\r\n if (!this._genericValidationStateService) return;\r\n\r\n this._entityValidationInfosLoadedSub = this._genericValidationStateService\r\n .entityValidationInfosLoaded\r\n .subscribe(() => {\r\n this.calculateValidationStatus();\r\n this.calculateValidationStatusCssClass();\r\n });\r\n }\r\n\r\n private calculateValidationStatusCssClass(): void {\r\n if (this.isInputNameNotFound) {\r\n this.validationStatusCssClass = this._layoutHelperService?.layoutConfiguration?.isColorfulModeEnabled === true\r\n ? 'border-cyan-300 border-3'\r\n : 'border-blue-500 border-3';\r\n return;\r\n }\r\n \r\n this.validationStatusCssClass = this.isRequired\r\n ? 'border-red-500 border-3'\r\n : '';\r\n }\r\n //#endregion\r\n\r\n public isValid(): FormValidityResult {\r\n if (this.isRequired === false && this.maxLength === undefined){\r\n return {\r\n isValid: true,\r\n error: undefined,\r\n inputName: undefined,\r\n data: undefined,\r\n };\r\n }\r\n if (this.isRequired === true && this.inputField === null || this.inputField === undefined || \r\n (typeof this.inputField === 'string' && this.inputField.trim().length === 0)){\r\n return { \r\n isValid: false,\r\n error: FormValidationError.Required,\r\n inputName: this.inputName,\r\n data: undefined\r\n };\r\n }\r\n if (typeof this.inputField === 'string' && this.maxLength) {\r\n let length = this.inputField.trim().length\r\n return { \r\n isValid: length <= this.maxLength,\r\n inputName: this.inputName,\r\n error: length <= this.maxLength ? undefined : FormValidationError.MaxLength ,\r\n data: length <= this.maxLength ? undefined : this.maxLength\r\n };\r\n }\r\n\r\n return {\r\n isValid: true,\r\n error: undefined,\r\n inputName: undefined,\r\n data: undefined\r\n };\r\n }\r\n}","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n ViewEncapsulation,\r\n OnChanges,\r\n SimpleChanges,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { TsiInputBase } from '../../../tsi-base/tsi-input-base/tsi-input-base.component';\r\nimport { TooltipPosition } from '../../../enums/tooltipPosition.enum';\r\n\r\n@Component({\r\n selector: 'Tsi-CheckBox',\r\n templateUrl: './tsi-checkbox.component.html',\r\n styleUrls: ['./tsi-checkbox.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class TsiCheckboxComponent extends TsiInputBase<boolean | undefined> implements OnChanges, OnInit {\r\n \r\n //#region inputs\r\n @Input('class') class: any = {};\r\n @Input() isBinary: boolean = false;\r\n\r\n private _checked: boolean | undefined = undefined;\r\n\r\n // @Input()\r\n // set inputField(value: boolean | undefined) {\r\n // this._checked = value;\r\n // }\r\n\r\n // get inputField(): boolean | undefined {\r\n // return this._checked;\r\n // }\r\n\r\n @Input()\r\n set checked(value: boolean | undefined) {\r\n this._checked = value;\r\n }\r\n\r\n get checked(): boolean | undefined {\r\n return this._checked;\r\n }\r\n //#endregion\r\n\r\n @Input() tooltipText: any;\r\n @Input() tooltipPosition: string | any = TooltipPosition.Top;\r\n\r\n //#region outputs\r\n @Output() inputFieldChange = new EventEmitter<boolean>();\r\n @Output() checkedChange = new EventEmitter<any>();\r\n //#endregion\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n // if (this.inputField === undefined || this.inputField === null) {\r\n // this.inputField = false;\r\n // this.inputFieldChange.emit(this.inputField);\r\n // }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['inputField']) {\r\n this.checked = changes['inputField'].currentValue;\r\n this.updateTooltipText();\r\n }\r\n }\r\n\r\n onChangeofOptions(event: boolean) {\r\n this.toggleCheckbox();\r\n this.inputField = this.checked;\r\n //console.log(\">>> this.inputField:\", this.inputField);\r\n this.inputFieldChange.emit(this.inputField);\r\n }\r\n\r\n toggleCheckbox() {\r\n\r\n if (this.isBinary) {\r\n this.checked = this.checked === true ? false : true;\r\n } else {\r\n if (this.checked === undefined) {\r\n this.checked = true;\r\n } else if (this.checked === true) {\r\n this.checked = false;\r\n } else {\r\n this.checked = undefined;\r\n }\r\n }\r\n\r\n this.updateTooltipText();\r\n this.checkedChange.emit(this.checked);\r\n }\r\n\r\n getCheckboxClass() {\r\n if (this.isBinary) {\r\n return {\r\n 'checkbox-true': this.checked === true,\r\n 'checkbox-false': this.checked === false\r\n };\r\n } else {\r\n return {\r\n 'checkbox-true': this.checked === true,\r\n 'checkbox-false': this.checked === false,\r\n 'checkbox-indeterminate': this.checked === undefined\r\n };\r\n }\r\n }\r\n\r\n private updateTooltipText() {\r\n if (this.checked === true) {\r\n this.tooltipText = 'True';\r\n } else if (this.checked === false) {\r\n this.tooltipText = 'False';\r\n } else {\r\n this.tooltipText = 'Undefined';\r\n }\r\n }\r\n\r\n}\r\n","<div class=\"flex\">\r\n <p-checkbox \r\n class=\"{{validationStatusCssClass}}\"\r\n [ngModel]=\"checked\" \r\n [binary]=\"true\" \r\n (ngModelChange)=\"onChangeofOptions($event)\"\r\n [disabled]=\"disabled\"\r\n [ngClass]=\"getCheckboxClass()\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n [pTooltip]=\"tooltipText\">\r\n </p-checkbox>\r\n</div>\r\n","import { ClaimTypes } from \"../../enums/claim-types\";\r\nimport { AuthorizationToken } from \"./authorization-token\";\r\n\r\nexport class AuthorizationTokenMapper {\r\n //\r\n public static ToAuthorizationToken(tokenObject: any): AuthorizationToken {\r\n let authorizationToken: AuthorizationToken = {\r\n tenantUid: tokenObject[ClaimTypes.TenantUid],\r\n aud: tokenObject.aud,\r\n exp: tokenObject.exp,\r\n primarysid: tokenObject[ClaimTypes.PrimarySid],\r\n emailaddress: tokenObject[ClaimTypes.Email],\r\n name: tokenObject[ClaimTypes.Name],\r\n role: tokenObject[ClaimTypes.Role],\r\n actor: tokenObject[ClaimTypes.Actor],\r\n nameidentifier: tokenObject[ClaimTypes.NameIdentifier],\r\n surname: tokenObject[ClaimTypes.Surname],\r\n iss: tokenObject.iss,\r\n langue : tokenObject[ClaimTypes.Langue],\r\n isSaasAdmin : tokenObject[ClaimTypes.IsSaasAdmin],\r\n isTenantAdmin : tokenObject[ClaimTypes.IsTenantAdmin],\r\n };\r\n return authorizationToken;\r\n }\r\n}\r\n","export class FilterByExistingValues {\r\n existingValues: any[];\r\n isMappedFromNavigation: boolean;\r\n fkName?: string;\r\n constructor(){\r\n this.existingValues = [];\r\n this.isMappedFromNavigation = false;\r\n }\r\n}","import { IFilteredRequest, IPagedRequest, ISortByProprety } from \"../../interfaces/pagination/pagination-base\";\r\n\r\nexport class PagedResultRequestBase implements IPagedRequest {\r\n keyword?: string\r\n filters?: FilterByProprety[] = [];\r\n sorting?: ISortByProprety[];\r\n skipCount?: number;\r\n maxResultCount?: number;\r\n getAllData?: boolean;\r\n summaries?: string[];\r\n}\r\n\r\nexport class FilterByProprety implements IFilteredRequest {\r\n propretyName: string;\r\n filterValue: any;\r\n operator: number;\r\n constructor(propretyName: string,\r\n filterValue: any,\r\n operator: number\r\n ) {\r\n this.propretyName = propretyName;\r\n this.filterValue = filterValue;\r\n this.operator = operator;\r\n }\r\n}\r\n","export class executeImportResult{\r\n numberOfAddedRows ?: number;\r\n numberOfUnusedRows ?: number;\r\n errorMessage: string = '';\r\n indexesOfUnusedRows ?: number[] = [];\r\n errorsMessages: string[] = [];\r\n indexOfFirstErrorLine?: number;\r\n totalLinesNumber ?: number;\r\n}\r\n\r\nexport class ModeleImportCreateRequest{\r\n uid ?: string;\r\n form ?: string;\r\n classe ?: string;\r\n premiereLigneImport ?: number\r\n dernierLigneImport ?: number\r\n arretePremierErreur ?: boolean\r\n ordreOuTitreColonne ?: string\r\n nom ?: string\r\n modeleImportDetails : ModeleImportDetail[]=[]\r\n}\r\n\r\nexport class ModeleImportDetail{\r\n uid ?: string;\r\n colonneClasse ?: string;\r\n numero ?: number;\r\n nomColonneFichier ?: string;\r\n nomColonneClefEtrangere ?: string\r\n nomClasseDetail ?: string;\r\n}","export class BsModalRef {\r\n hide: () => void;\r\n content: any;\r\n constructor(hide: () => void) {\r\n this.hide = hide;\r\n }\r\n}\r\n","import { HttpErrorResponse } from \"@angular/common/http\";\r\n/**\r\n * base class and subscription wrapper\r\n * @data subscription result data if succeeded\r\n * @isSuccess true if subscription succeeded\r\n * @message error message if subscription fails\r\n */\r\nexport class SubscriptionResult<T>{\r\n data?:T;\r\n isSuccess:boolean;\r\n //error?: HttpErrorResponse;\r\n message?: string;\r\n\r\n /**\r\n * ctor\r\n */\r\n constructor(isSuccess : boolean, data?: T, message?: string) {\r\n this.isSuccess = isSuccess;\r\n this.data = data;\r\n this.message = message; \r\n }\r\n\r\n} ","export class Devise {\r\n uid: string | undefined;\r\n nombreDecimales: number | undefined;\r\n codeDevise: string | undefined;\r\n numeroDevise: number | undefined;\r\n libelleDevise: string | undefined;\r\n nombreDevises: number | undefined;\r\n compteBancaireDefaut: string | undefined;\r\n}","\r\nexport class Fichier{\r\n uid : string| undefined;\r\n dateFichier :Date| undefined;\r\n nom : string| undefined;\r\n objet : string| undefined;\r\n nomFichierComplet : string| undefined;\r\n description : string| undefined;\r\n contenu : string | ArrayBuffer | null = null;\r\n tableLiee : string| undefined;\r\n pkey : string| undefined;\r\n typeFichier : string| undefined;\r\n libelleTypeFichier : string| undefined;\r\n isFileStorage : boolean | undefined;\r\n}\r\n","export class PresentationSetting {\r\n uid?: string;\r\n componentIdentifer?: string;\r\n descriminatorValue?: string\r\n presentationSettingDetails: PresentationSettingDetail[] = []\r\n}\r\n\r\nexport class PresentationSettingDetail {\r\n uid?: string;\r\n blockName?: string;\r\n isBlockVisible?: boolean;\r\n isInputEnabled?: boolean;\r\n presentationSetting?: string\r\n configuration?: string\r\n}\r\n","export class TypeFichier {\r\n uid : string| undefined;\r\n libelle : string| undefined;\r\n}\r\n","export class workflowEtatDetailledResponse {\r\n workflow: string | undefined\r\n nom: string | undefined\r\n uid: string | undefined\r\n workflowEtatsForms: WorkflowEtatForm[] = []\r\n}\r\n\r\nexport class WorkflowEtatForm {\r\n uid: string | undefined\r\n controlName: string | undefined\r\n controlEnabled: boolean | undefined\r\n controlVisible: boolean | undefined\r\n workflowEtat: string | undefined\r\n workflowEtatNumber: number | undefined\r\n}\r\n\r\nexport class GetWorkflowInstanceInformationRequest {\r\n uidObjet?: string;\r\n className?: string;\r\n discriminatorPropertyName?: string;\r\n discriminatorClassName?: string;\r\n discriminatorValue?: string\r\n}\r\n\r\nexport class workflowInstanceInformationResponse{\r\n workflowName : string | undefined;\r\n workflowEtat : string | undefined;\r\n workflowEtatName : string | undefined\r\n workflowUid : string | undefined;\r\n workflowInstanceUid : string | undefined\r\n}\r\n\r\nexport class updateEntityWorkflowInformation{\r\n newWorkflowStatus : string | undefined;\r\n workflowInstanceUid : string | undefined;\r\n className : string | undefined;\r\n workflow : string | undefined;\r\n uidObject : string | undefined\r\n workflowEtat : string | undefined\r\n}","export class entityInfo {\r\n className: string | undefined;\r\n formName: string | undefined;\r\n listComponent: string | undefined;\r\n logged: boolean = false;\r\n listRoute: string | undefined;\r\n formRoute: string | undefined;\r\n discriminatorPropertyName: string | undefined;\r\n discriminatorClassName: string | undefined;\r\n keyColumns: string[] = [];\r\n isWorkflow: boolean = false;\r\n defaultStatus: string | undefined;\r\n statusEnumName: string | undefined;\r\n statusColumnName: string | undefined;\r\n advancedSearchComponent: string | undefined;\r\n cardHeaderPhotoColumn: string | undefined;\r\n cardTitleColumn: string | undefined;\r\n cardSubHeaderColumn: string | undefined;\r\n cardDescriptionColumn: string | undefined;\r\n}\r\nexport class EntityRelation {\r\n entityFrom: string | undefined;\r\n entityTo: string | undefined;\r\n logCascade: boolean = false;\r\n duplicateCascade: boolean = false;\r\n deleteBehaviour: number | undefined;\r\n}\r\n\r\nexport class EntityInfoWithRelations {\r\n entity: entityInfo = new entityInfo();\r\n relations: EntityRelation[] = [];\r\n}\r\n\r\nexport class UpdateEntityInfoWithRelationsRequest {\r\n className: string;\r\n entity: entityInfo = new entityInfo();\r\n relations: EntityRelation[] = [];\r\n\r\n constructor(className: string, entity: entityInfo, relations: EntityRelation[]) {\r\n this.className = className;\r\n this.entity = entity;\r\n this.relations = relations;\r\n }\r\n}","export class CurrentUser{\r\n email: string | undefined;\r\n langue: string | undefined;\r\n affichageAlertes: string | undefined;\r\n }","\r\nexport class ProgressBarResponse {\r\n uid: string | undefined;\r\n processName: string = \"\";\r\n utilisateur: string | undefined;\r\n title?: string | undefined;\r\n currentStep?: string | undefined;\r\n progressLevel: number = 0;\r\n maxLevel: number = 100;\r\n unit: string | undefined;\r\n}","\r\nexport class ProgressBarUpdateRequest {\r\n uid: string | undefined;\r\n processName: string | undefined;\r\n title?: string | undefined;\r\n currentStep?: string | undefined;\r\n progressLevel?: number | undefined;\r\n maxLevel?: number | undefined;\r\n utilisateur: string | undefined;\r\n}","export class TsiCard {\r\n id: number | undefined;\r\n uid?: string;\r\n headerTitle?: string;\r\n subHeaderTitle?: string;\r\n description?: string;\r\n photo?: string;\r\n status?: string;\r\n}","import { KeyValuePair } from \"../common/key-value-pair\";\r\n\r\nexport class JournalisationApplication {\r\n uid: string | undefined;\r\n typeEvent: string | undefined;\r\n dateEvent: Date | undefined;\r\n textEvent: string | undefined;\r\n userNameEvent: string | undefined;\r\n dataBaseName: string | undefined;\r\n tableName: string | undefined;\r\n uidtarget: string | undefined;\r\n observation: string | undefined;\r\n oldObjectValues: string | undefined;\r\n newObjectValues: string | undefined;\r\n oldkeyValuePairs: KeyValuePair<string, any>[] = [];\r\n newkeyValuePairs: KeyValuePair<string, any>[] = [];\r\n oldTreeNodes: TreeNode[]= [];\r\n newTreeNodes: TreeNode[]= [];\r\n\r\n MergedTree: TreeNode[] = [];\r\n}\r\n\r\nexport interface TreeNode<T = TreeNodeData> {\r\n label?: string;\r\n data?: T;\r\n children?: TreeNode<T>[];\r\n leaf?: boolean;\r\n expanded?: boolean;\r\n changed?: boolean;\r\n}\r\n\r\nexport interface TreeNodeData {\r\n key: string;\r\n value: string;\r\n}\r\n\r\nexport interface TreeNode2<T = any> {\r\n label?: string;\r\n oldData?: TreeNodeData;\r\n newData?: TreeNodeData;\r\n children?: TreeNode2<T>[];\r\n leaf?: boolean;\r\n expanded?: boolean;\r\n}","export class StatusHistory {\r\n uid: string | undefined;\r\n classe: string | undefined;\r\n uidObjet: string | undefined;\r\n oldStatus: string | undefined;\r\n status: string | undefined;\r\n commentaire: string | undefined;\r\n creationUser: string | undefined;\r\n modifUser: string | undefined;\r\n dateSaisie: string | undefined;\r\n dateModif: string | undefined;\r\n}","export class EndpointInfos {\r\n methodName: string | undefined;\r\n route: string | undefined;\r\n httpMethod: string | undefined;\r\n accessRights: string[] | undefined;\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { firstValueFrom, Observable } from 'rxjs';\r\nimport { AdministrationEndpoints } from '../../end-points/endpoints';\r\nimport { PresentationSetting, workflowEtatDetailledResponse, entityInfo, GetWorkflowInstanceInformationRequest, workflowInstanceInformationResponse, WorkflowEtatForm, PresentationSettingDetail, updateEntityWorkflowInformation } from '../../models';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WorkflowConfigurationService {\r\n\r\n private _workflowFormConfiguration?: PresentationSetting\r\n private _isDesginModeFromWorkflow: boolean = false\r\n private _workflowEtatFormForCurrentForm: workflowEtatDetailledResponse[] = []\r\n private _workflowEtatForForCurrentEntityForm?: PresentationSetting\r\n private _currentWorkflowEntityInfo: entityInfo | undefined\r\n\r\n set currentWorkflowEntityInfo(value: entityInfo | undefined) {\r\n this._currentWorkflowEntityInfo = value\r\n }\r\n\r\n get currentWorkflowEntityInfo() {\r\n return this._currentWorkflowEntityInfo\r\n }\r\n\r\n\r\n set workflowFormConfiguration(value: PresentationSetting | undefined) {\r\n this._workflowFormConfiguration = value\r\n }\r\n\r\n get workflowFormConfiguration() {\r\n return this._workflowFormConfiguration\r\n }\r\n\r\n set isDesginModeFromWorkflow(value: boolean) {\r\n this._isDesginModeFromWorkflow = value\r\n }\r\n\r\n get isDesginModeFromWorkflow() {\r\n return this._isDesginModeFromWorkflow\r\n }\r\n\r\n set workflowEtatFormForCurrentForm(value: workflowEtatDetailledResponse[]) {\r\n this._workflowEtatFormForCurrentForm = value\r\n }\r\n\r\n get workflowEtatFormForCurrentForm() {\r\n return this._workflowEtatFormForCurrentForm\r\n }\r\n\r\n\r\n\r\n\r\n constructor(private _httpClient: HttpClient) { }\r\n\r\n getWorkflowEtatFormByClassName(className: string): Observable<workflowEtatDetailledResponse[]> {\r\n return this._httpClient.get<workflowEtatDetailledResponse[]>(AdministrationEndpoints.getWorkflowEtatFormByClassName(className))\r\n }\r\n\r\n getCurrentEntityWorklfowInstanceInformation(request : GetWorkflowInstanceInformationRequest): Observable<workflowInstanceInformationResponse> {\r\n return this._httpClient.post<workflowInstanceInformationResponse>(AdministrationEndpoints.getEntityWorklfowInstanceInformation(), request)\r\n }\r\n\r\n async getEntityWorklfowInstanceInformation(businessClass?: string, uidObject?: string, discriminatorValue?: string) {\r\n let result: workflowInstanceInformationResponse | undefined = undefined\r\n try {\r\n let request: GetWorkflowInstanceInformationRequest = new GetWorkflowInstanceInformationRequest();\r\n request.className = businessClass\r\n request.uidObjet = uidObject;\r\n request.discriminatorValue = discriminatorValue\r\n result = await firstValueFrom(this._httpClient.post<workflowInstanceInformationResponse>(AdministrationEndpoints.getEntityWorklfowInstanceInformation(), request))\r\n }\r\n catch (error) {\r\n console.error(error)\r\n }\r\n return result\r\n }\r\n\r\n updateEntityWorkflowInformation(request: updateEntityWorkflowInformation) {\r\n return this._httpClient.post(AdministrationEndpoints.updateEntityWorkflowInformation(), request)\r\n }\r\n\r\n mapWorkflowEtatFormToPresentationSetting(workflowEtatForms: WorkflowEtatForm[]) {\r\n let presentationSetting = new PresentationSetting()\r\n\r\n workflowEtatForms.forEach(el => {\r\n\r\n let presentationSettingDetail = new PresentationSettingDetail()\r\n presentationSettingDetail.blockName = el.controlName;\r\n presentationSettingDetail.isBlockVisible = el.controlVisible;\r\n presentationSettingDetail.isInputEnabled = el.controlEnabled;\r\n\r\n presentationSetting.presentationSettingDetails.push(presentationSettingDetail)\r\n })\r\n return presentationSetting\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { PresentationDesignerDirectiveBase } from '../../tsi-directives/presentation-designer-base.directive';\r\n\r\n@Injectable()\r\nexport class PresentationDesignerBaseService {\r\n\r\n\r\n directives: PresentationDesignerDirectiveBase[] = [];\r\n\r\n _addedDirectiveSubscription = new Subject<PresentationDesignerDirectiveBase>();\r\n addedDirectiveObservable = this._addedDirectiveSubscription.asObservable()\r\n\r\n constructor() { }\r\n\r\n register(directive:PresentationDesignerDirectiveBase) {\r\n this.directives.push(directive);\r\n this._addedDirectiveSubscription.next(directive)\r\n }\r\n\r\n unregister(directive: PresentationDesignerDirectiveBase) {\r\n this.directives = this.directives.filter(d => d !== directive);\r\n }\r\n\r\n getDirectives(): (PresentationDesignerDirectiveBase)[] {\r\n return this.directives;\r\n }\r\n}\r\n","import { AfterViewInit, ComponentRef, Directive, ElementRef, Input, OnDestroy, OnInit, Renderer2, ViewContainerRef} from '@angular/core';\r\nimport { PresentationSetting } from '../models';\r\nimport { TsiCheckboxComponent } from '../tsi-components/input-components/tsi-checkbox/tsi-checkbox.component';\r\nimport { LayoutHelperService } from '../services/layout/layout-helper.service';\r\nimport { WorkflowConfigurationService } from '../services/workflow/workflow-configuration.service';\r\nimport { PresentationDesignerBaseService } from '../services/presentation-setting/presentation-designer-base.service';\r\n\r\n\r\n@Directive({\r\n selector: '[presentationDesignerBase]'\r\n})\r\nexport class PresentationDesignerDirectiveBase implements OnInit, AfterViewInit, OnDestroy {\r\nprivate _presentationDesigner!: string | undefined;\r\n\r\n @Input() set presentationDesigner(value: string | undefined)\r\n {\r\n this._presentationDesigner = value;\r\n }\r\n \r\n @Input() set presentationDesignerBase(value: string | undefined)\r\n {\r\n this._presentationDesigner = value;\r\n }\r\n\r\n get presentationDesigner(): string | undefined\r\n {\r\n return this._presentationDesigner;\r\n }\r\n\r\n showHideCheckboxComponentRef: any\r\n disabledCheckboxComponentRef: any\r\n tempTemplateRef: any\r\n tempTemplateParentNode: any\r\n nexSiblingOfElement: any\r\n treated: boolean = false\r\n\r\n\r\n constructor(protected el: ElementRef,\r\n protected renderer: Renderer2,\r\n protected viewContainerRef: ViewContainerRef,\r\n protected _layoutHelperService: LayoutHelperService,\r\n protected _workflowConfigurationService: WorkflowConfigurationService,\r\n protected _presentationDesignerBaseService: PresentationDesignerBaseService\r\n ) {\r\n this.tempTemplateRef = el.nativeElement\r\n this.nexSiblingOfElement = this.el.nativeElement?.nextSibling\r\n this.tempTemplateParentNode = this.el.nativeElement?.parentNode\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this._layoutHelperService.isDesignMode) {\r\n\r\n if (!this.tempTemplateRef) {\r\n this.tempTemplateRef = this.el.nativeElement\r\n }\r\n\r\n if (!this.nexSiblingOfElement) {\r\n this.nexSiblingOfElement = this.el.nativeElement?.nextSibling\r\n }\r\n\r\n if (!this.tempTemplateParentNode) {\r\n this.tempTemplateParentNode = this.el.nativeElement?.parentNode\r\n }\r\n\r\n this.renderer.removeChild(this.el.nativeElement.parentNode, this.el.nativeElement);\r\n }\r\n\r\n this._presentationDesignerBaseService.register(this)\r\n }\r\n\r\n removeEmptyAncestors(node: HTMLElement | null) {\r\n // if (!node) return;\r\n\r\n // // Check if the node has any element children\r\n // const hasElementChildren = Array.from(node.children).some(\r\n // (child: any) => child.nodeType === Node.ELEMENT_NODE\r\n // );\r\n\r\n // if (!hasElementChildren) {\r\n // try {\r\n // const parent = node.parentNode;\r\n // this.renderer.removeChild(parent, node);\r\n // this.removeEmptyAncestors(parent as HTMLElement);\r\n // } catch (error) {\r\n // console.error(\"Error removing empty ancestor:\", error);\r\n\r\n // }\r\n // }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._presentationDesignerBaseService.unregister(this)\r\n }\r\n\r\n disableInputs() {\r\n this.execute(true)\r\n\r\n const tsiComponentsSelectors = ['Tsi-Text-Box', 'Tsi-CheckBox', 'Tsi-Currency-Other-Input',\r\n 'Tsi-Currency-Societe-Input', 'Tsi-Date-Picker', 'Tsi-Decimal-Input',\r\n 'Tsi-File-Manager', 'Tsi-Formula-Box', 'Tsi-Integer', 'Tsi-Radio-Button', 'Tsi-Rate-Input',\r\n 'Tsi-Search-Combo', 'Tsi-Text-Area', 'tsi-time-picker', 'Tsi-Button'\r\n ]\r\n\r\n tsiComponentsSelectors.forEach(selector => {\r\n const elements = this.el.nativeElement.querySelectorAll(selector);\r\n elements.forEach((el: any) => {\r\n\r\n el?.classList?.add('disabled-input');\r\n el?.setAttribute(\"disabled\", \"\")\r\n if (selector == 'Tsi-Search-Combo') {\r\n }\r\n // else if (selector == 'Tsi-CheckBox') {\r\n // const inputEl = el.querySelector('input[type=\"checkbox\"]') as HTMLInputElement;\r\n // const isChecked = inputEl?.checked;\r\n // console.log('Checked?', isChecked);\r\n // const span = document.createElement('span');\r\n // span.classList.add('tsi-readonly-span');\r\n // span.classList.add('w-full')\r\n // span.classList.add('tsi-readonly-span', 'w-full', 'pi');\r\n // span.classList.add(isChecked ? 'pi-check-square' : 'pi-square');\r\n\r\n // const parent = el.parentNode;\r\n // if (parent) {\r\n // parent.replaceChild(span, el);\r\n // }\r\n // }\r\n // else {\r\n // //const value = el.getAttribute('ng-reflect-model');\r\n\r\n // const inputValue = (el?.getElementsByTagName(\"input\")[0] as HTMLInputElement).value\r\n\r\n // console.log(\"inputValue => \", inputValue)\r\n\r\n // const span = document.createElement('span');\r\n // span.innerText = inputValue ?? '';\r\n // span.classList.add('tsi-readonly-span');\r\n // span.classList.add('w-full')\r\n\r\n // const parent = el.parentNode;\r\n // if (parent) {\r\n // parent.replaceChild(span, el);\r\n // }\r\n // }\r\n });\r\n });\r\n }\r\n\r\n private getComponentInstance(element: HTMLElement | any): any {\r\n // Get the component instance from Angular's context\r\n if (element.__ngContext__) {\r\n const context = element.__ngContext__;\r\n // The component instance is usually the first non-array/non-object in context\r\n for (const item of context) {\r\n if (item && typeof item === 'object' && !Array.isArray(item)) {\r\n return item;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n insertElement() {\r\n try {\r\n this.renderer.insertBefore(this.tempTemplateParentNode, this.tempTemplateRef, this.nexSiblingOfElement);\r\n } catch (error) {\r\n console.error(error)\r\n }\r\n }\r\n\r\n removeShowHideCheckbox() {\r\n if (this.showHideCheckboxComponentRef) {\r\n this.showHideCheckboxComponentRef.destroy(); // destroys the component instance\r\n this.showHideCheckboxComponentRef = null;\r\n }\r\n this.renderer.removeClass(this.el.nativeElement, 'config-mode-border');\r\n this.viewContainerRef.clear();\r\n }\r\n\r\n removeElement() {\r\n if (!this.tempTemplateRef) {\r\n this.tempTemplateRef = this.el.nativeElement\r\n }\r\n\r\n if (!this.nexSiblingOfElement) {\r\n this.nexSiblingOfElement = this.el.nativeElement?.nextSibling\r\n }\r\n\r\n if (!this.tempTemplateParentNode) {\r\n this.tempTemplateParentNode = this.el.nativeElement?.parentNode\r\n }\r\n\r\n this.renderer.removeChild(this.el.nativeElement.parentNode, this.el.nativeElement);\r\n }\r\n\r\n execute(condition: boolean, configuration ?: string) {\r\n if (condition) {\r\n try {\r\n this.renderer.insertBefore(this.tempTemplateParentNode, this.tempTemplateRef, this.nexSiblingOfElement);\r\n } catch (error) {\r\n console.error(error)\r\n }\r\n }\r\n else {\r\n this.renderer.removeChild(this.el.nativeElement.parentNode, this.el.nativeElement);\r\n }\r\n this.treated = true\r\n }\r\n\r\n\r\n getComponentSelector(): string {\r\n const componentInstance = this.viewContainerRef.injector.get(this.getComponentType(), null);\r\n return componentInstance?.constructor?.ɵcmp?.selectors?.[0]?.[0] || \"\";\r\n }\r\n\r\n private getComponentType(): any {\r\n return (this.viewContainerRef as any)?._hostLView?.[8]?.constructor || null;\r\n }\r\n\r\n private createCheckboxGroupWithLabels(isBlockDisabled: boolean, isBlockVisible: boolean): void {\r\n const containerDiv = this.renderer.createElement('div');\r\n this.renderer.addClass(containerDiv, 'checkbox-container');\r\n this.renderer.appendChild(this.el.nativeElement, containerDiv);\r\n\r\n const createCheckbox = (\r\n config: { inputName: string | undefined, inputId: string, isChecked: boolean, label: string }\r\n ): ComponentRef<TsiCheckboxComponent> => {\r\n const itemDiv = this.renderer.createElement('div');\r\n this.renderer.addClass(itemDiv, 'checkbox-item');\r\n\r\n const checkboxRef = this.viewContainerRef.createComponent(TsiCheckboxComponent);\r\n checkboxRef.setInput(\"inputName\", config.inputName);\r\n checkboxRef.setInput(\"inputId\", config.inputId);\r\n\r\n const instance = checkboxRef.instance as TsiCheckboxComponent;\r\n instance.checked = config.isChecked;\r\n\r\n this.renderer.appendChild(itemDiv, checkboxRef.location.nativeElement);\r\n\r\n const labelElement = this.renderer.createElement('span');\r\n this.renderer.addClass(labelElement, 'below-label');\r\n const labelText = this.renderer.createText(config.label);\r\n this.renderer.appendChild(labelElement, labelText);\r\n this.renderer.appendChild(itemDiv, labelElement);\r\n\r\n this.renderer.appendChild(containerDiv, itemDiv);\r\n\r\n return checkboxRef;\r\n };\r\n\r\n this.disabledCheckboxComponentRef = createCheckbox({\r\n inputName: this.presentationDesigner,\r\n inputId: `${this.presentationDesigner}-disable-input-checkbox`,\r\n isChecked: !isBlockDisabled,\r\n label: 'Disabled'\r\n });\r\n\r\n this.showHideCheckboxComponentRef = createCheckbox({\r\n inputName: this.presentationDesigner,\r\n inputId: `${this.presentationDesigner}-visible-checkbox`,\r\n isChecked: !isBlockVisible,\r\n label: 'Visible'\r\n });\r\n }\r\n\r\n\r\n addCheckboxesToInputs(presentationSetting?: PresentationSetting): void {\r\n\r\n if (!this._workflowConfigurationService.isDesginModeFromWorkflow) {\r\n this.showHideCheckboxComponentRef = this.viewContainerRef.createComponent(TsiCheckboxComponent);\r\n\r\n this.showHideCheckboxComponentRef.setInput(\"inputName\", this.presentationDesigner)\r\n this.showHideCheckboxComponentRef.setInput(\"inputId\", `${this.presentationDesigner}-show-hide-checkbox`)\r\n\r\n let isBlockDisplayed = presentationSetting?.presentationSettingDetails\r\n .find(x => x.blockName == this.presentationDesigner)?.isBlockVisible ?? true;\r\n\r\n let checkbox = this.showHideCheckboxComponentRef.instance as TsiCheckboxComponent;\r\n checkbox.checked = !isBlockDisplayed;\r\n\r\n\r\n this.renderer.appendChild(this.el.nativeElement, this.showHideCheckboxComponentRef.location.nativeElement);\r\n }\r\n\r\n\r\n\r\n if (this._workflowConfigurationService.isDesginModeFromWorkflow) {\r\n\r\n\r\n const isBlockDisabled = presentationSetting?.presentationSettingDetails\r\n .find(x => x.blockName === this.presentationDesigner)?.isInputEnabled ?? true;\r\n\r\n const isBlockVisible = presentationSetting?.presentationSettingDetails\r\n .find(x => x.blockName === this.presentationDesigner)?.isBlockVisible ?? true;\r\n\r\n this.createCheckboxGroupWithLabels(isBlockDisabled, isBlockVisible)\r\n }\r\n\r\n this.renderer.addClass(this.el.nativeElement, 'config-mode-border');\r\n }\r\n}","import { KeyValue } from \"@angular/common\";\r\n\r\n/**\r\n * Helper class for managing and resolving types in a global registry.\r\n * \r\n * This class provides methods to register and retrieve types (e.g., Angular components)\r\n * by their names. It ensures that types can be dynamically resolved at runtime.\r\n */\r\nexport class TypeRegistryHelper {\r\n /**\r\n * A map that stores registered types, where the key is the type name\r\n * and the value is the type itself.\r\n * \r\n * @private\r\n */\r\n private static typeMap = new Map<string, any>();\r\n\r\n /**\r\n* Registers a type in the registry with the given name.\r\n* \r\n* @param name The name of the type to register.\r\n* @param type The type (e.g., class or component) to register.\r\n*/\r\n static registerType(name: string, type: any): void {\r\n this.typeMap.set(name, type);\r\n }\r\n\r\n /**\r\n* Retrieves a type from the registry by its name.\r\n* \r\n* @param name The name of the type to retrieve.\r\n* @returns The registered type.\r\n* @throws An error if the type is not found in the registry.\r\n*/\r\n static getType(name: string): any {\r\n const type = this.typeMap.get(name);\r\n if (!type) {\r\n throw new Error(`Type '${name}' not found in the registry.`);\r\n }\r\n return type;\r\n }\r\n\r\n private static _businessComponentList: KeyValue<string, string>[] = [];\r\n\r\n static initializeBusinessComponentList(): void {\r\n this._businessComponentList = Array.from(this.typeMap.keys()).map(key => ({\r\n key: key,\r\n value: key\r\n }));\r\n }\r\n\r\n static getBusinessComponentList(): KeyValue<string, string>[] {\r\n return this._businessComponentList;\r\n }\r\n}","export class Guid {\r\n\r\n public static get empty(): string {\r\n return '00000000-0000-0000-0000-000000000000';\r\n }\r\n\r\n public static newGuid() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = Math.random() * 16 | 0,\r\n v = c == 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n }\r\n \r\n public static isValid(str: string): boolean {\r\n\t\tconst validRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\r\n\t\treturn validRegex.test(str);\r\n\t}\r\n\r\n public static isEmpty(guid: string): boolean {\r\n return guid === Guid.empty;\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { firstValueFrom, Observable } from 'rxjs';\r\nimport { entityInfo, EntityInfoWithRelations, UpdateEntityInfoWithRelationsRequest } from '../../models';\r\nimport { AdministrationEndpoints } from '../../end-points/endpoints';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EntityConfigurationService {\r\n\r\n private entityInformationsDictionnary: Map<string, entityInfo> = new Map<string, entityInfo>();\r\n\r\n constructor(private httpClient: HttpClient) {\r\n }\r\n\r\n getEntityInfo(businessClassName: string): Observable<entityInfo> {\r\n return this.httpClient.get<entityInfo>(AdministrationEndpoints.getEntityInformations(businessClassName));\r\n }\r\n\r\n async getEntityInfoFromCache(businessClassName: string) {\r\n const entityInfo = this.entityInformationsDictionnary.get(businessClassName);\r\n if (!entityInfo) {\r\n let tmp = await firstValueFrom(this.getEntityInfo(businessClassName));\r\n this.entityInformationsDictionnary.set(businessClassName, tmp)\r\n }\r\n return this.entityInformationsDictionnary.get(businessClassName);\r\n }\r\n\r\n GetAllEntityInfos(): Observable<entityInfo[]> {\r\n return this.httpClient.get<entityInfo[]>(AdministrationEndpoints.GetAllEntitiesInformations());\r\n }\r\n\r\n getEntityInformationsAndRelations(businessClass: string): Observable<EntityInfoWithRelations> {\r\n return this.httpClient.get<EntityInfoWithRelations>(AdministrationEndpoints.getEntityInformationsAndRelations(businessClass));\r\n }\r\n\r\n create(entityInfoWithRelations: EntityInfoWithRelations) {\r\n return this.httpClient.post<EntityInfoWithRelations>(AdministrationEndpoints.createOrUpdateEntityInformations(), entityInfoWithRelations);\r\n }\r\n\r\n update(updateEntityInfoWithRelationsRequest: UpdateEntityInfoWithRelationsRequest) {\r\n return this.httpClient.put<UpdateEntityInfoWithRelationsRequest>(AdministrationEndpoints.createOrUpdateEntityInformations(), updateEntityInfoWithRelationsRequest);\r\n }\r\n\r\n delete(className: string) {\r\n return this.httpClient.delete(AdministrationEndpoints.deleteEntityInformations(className));\r\n }\r\n\r\n getColonnesByClassNameAsKeyValuePair(className: string): Observable<{ key: string, value: string }[]> {\r\n return this.httpClient.get<{ key: string, value: string }[]>(AdministrationEndpoints.getColonnesByClassNameAsKeyValuePair(className, \"\"));\r\n }\r\n}","import { Injectable, Type, inject } from '@angular/core';\r\nimport { DialogService, DynamicDialogConfig, DynamicDialogRef} from 'primeng/dynamicdialog';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TsiModalService{\r\n \r\n private _dialogService = inject(DialogService);\r\n\r\n open(componentType: Type<any>, config: DynamicDialogConfig): DynamicDialogRef {\r\n console.log('TsiModalService - Opening modal with config:', config);\r\n return this._dialogService.open(componentType, config);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ButtonType } from '../../../enums/button-type.enum';\r\nimport { TooltipPosition } from '../../../enums';\r\nimport { rtlModeKeys } from '../../../consts/locals.const';\r\n@Component({\r\n selector: 'Tsi-Button',\r\n templateUrl: './tsi-button.component.html',\r\n styleUrls: ['./tsi-button.component.scss']\r\n})\r\nexport class TsiButtonComponent implements OnInit {\r\n \r\n @Input() disabled:boolean = false;\r\n @Input() text:string = '';\r\n @Input() style:string = '';\r\n @Input() tooltipText: any;\r\n @Input() tooltipPosition: string | any = TooltipPosition;\r\n @Input() buttonType: ButtonType = ButtonType.Button;\r\n @Input() icon?:string;\r\n @Input() styleClass?: string = \"p-button-secondary\";\r\n @Input() iconSrc?: string = ''; \r\n @Input() id ?: string = '';\r\n @Input() iconWidth?: number;\r\n @Input() iconClass?: string = '';\r\n isAr: boolean = false;\r\n @Output() onClick: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() rightClick = new EventEmitter<MouseEvent>();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n let langue = localStorage.getItem(rtlModeKeys.rtlModeEnabled);\r\n if(langue && JSON.parse(langue)){\r\n this.isAr = true\r\n }\r\n else\r\n {\r\n this.isAr = false\r\n }\r\n }\r\n \r\n onClicked(event: any): void {\r\n this.onClick.emit(event);\r\n }\r\n\r\n onContextMenu(event: MouseEvent): void {\r\n this.rightClick.emit(event);\r\n }\r\n}","<button pButton pRipple class=\"{{styleClass}} p-button\" [type]=\"buttonType\" [disabled]=\"disabled\"\r\n [tooltipPosition]=\"tooltipPosition\" [pTooltip]=\"tooltipText | localize\" [style]=\"style\" (click)=\"onClicked($event)\" id=\"{{id}}\"\r\n (contextmenu)=\"onContextMenu($event)\">\r\n <ng-container *ngIf=\"iconSrc; else defaultIcon\">\r\n <img [src]=\"iconSrc\" alt=\"Button Icon\"\r\n [width]=\"iconWidth\"\r\n [ngClass]=\"iconClass\"\r\n [ngStyle]=\"isAr ? {'margin-left': '0.5rem'} : {}\" />\r\n </ng-container>\r\n <ng-template #defaultIcon>\r\n <i [ngClass]=\"icon\" [ngStyle]=\"isAr ? {'margin-right': '0.5rem'} : {}\"></i>\r\n </ng-template>\r\n <ng-container *ngIf=\"isAr\">&nbsp;&nbsp;</ng-container>\r\n <span [ngClass]=\"{'-mr-3': isAr && !icon}\">\r\n {{ text | localize }}\r\n </span>\r\n</button>","import { Component, OnInit } from '@angular/core';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\n\r\n@Component({\r\n selector: 'app-tsi-success-message',\r\n templateUrl: './tsi-success-message.component.html',\r\n styleUrls: ['./tsi-success-message.component.scss']\r\n})\r\nexport class TsiSuccessMessageComponent implements OnInit {\r\n\r\n message?: string;\r\n constructor(private _modalRef: DynamicDialogRef,\r\n private _conf: DynamicDialogConfig) { }\r\n\r\n ngOnInit(): void {\r\n this.message = this._conf.data.message;\r\n }\r\n onCancel() { this._modalRef.close(); }\r\n\r\n}\r\n","<div align-items-center>\r\n <div class=\"flex align-items-center justify-content-center pb-4\">\r\n <i class=\"layout-menuitem-icon ng-tns-c18-91 pi pi-fw pi-check-circle justify-content-center\"\r\n style=\"font-size: 4rem;color: #28a745;\"></i>\r\n </div>\r\n <h3 class=\"justify-content-center flex align-items-center\">Success</h3>\r\n \r\n <p class=\"justify-content-center flex align-items-center\">{{message}}</p>\r\n <p-footer class=\"justify-content-center flex align-items-center\">\r\n <Tsi-Button text=\"Cancel\" icon=\"p-button-icon p-button-icon-left pi pi-times\"\r\n styleClass=\"p-element p-button-text flex align-items-center justify-content-center p-button p-component p-button-label\" (click)=\"onCancel()\"></Tsi-Button>\r\n </p-footer>\r\n</div>","import { Component, OnInit } from '@angular/core';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\n\r\n@Component({\r\n selector: 'app-tsi-info-message',\r\n templateUrl: './tsi-info-message.component.html',\r\n styleUrls: ['./tsi-info-message.component.scss']\r\n})\r\nexport class TsiInfoMessageComponent implements OnInit {\r\n\r\n message: string= \"\";\r\n constructor(private _modalRef: DynamicDialogRef,\r\n private _conf: DynamicDialogConfig) { }\r\n\r\n ngOnInit(): void {\r\n this.message = this._conf.data.message;\r\n }\r\n onCancel() { this._modalRef.close(); }\r\n\r\n}\r\n\r\n","<div class=\"flex flex-column align-items-center justify-content-center p-4 text-center\">\r\n <div class=\"mb-3\">\r\n <i class=\"pi pi-info-circle text-primary\" style=\"font-size: 2rem;\"></i>\r\n </div>\r\n\r\n <p class=\"mb-4\">{{ message | localize}}</p>\r\n\r\n <p-footer>\r\n <Tsi-Button \r\n text=\"OK\" \r\n icon=\"pi pi-check\" \r\n styleClass=\"p-button p-button-text\" \r\n (click)=\"onCancel()\">\r\n </Tsi-Button>\r\n </p-footer>\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\n\r\n@Component({\r\n selector: 'app-tsi-error-message',\r\n templateUrl: './tsi-error-message.component.html',\r\n styleUrls: ['./tsi-error-message.component.scss']\r\n})\r\nexport class TsiErrorMessageComponent implements OnInit {\r\n\r\n message?: string;\r\n messages: string[] = [];\r\n isMessages : boolean = false;\r\n constructor(private _modalRef: DynamicDialogRef,\r\n private _conf: DynamicDialogConfig) { }\r\n\r\n ngOnInit(): void {\r\n this.message = this._conf.data.message;\r\n this.messages = this._conf.data.messages;\r\n if(this.messages && this.messages.length>0){\r\n this.isMessages = true;\r\n }\r\n }\r\n onCancel() { this._modalRef.close(); }\r\n}\r\n","<div class=\"align-items-center\">\r\n <div class=\"grid\">\r\n <div class=\"col-12 flex align-items-center justify-content-center pb-4\">\r\n <i class=\"layout-menuitem-icon ng-tns-c18-91 pi pi-fw pi-times-circle justify-content-center red-700\"\r\n style=\"font-size: 4rem;color: #f27474;\">\r\n <h4 class=\"col-12 justify-content-center flex align-items-center\">{{\"error\" | localize}}</h4>\r\n </i>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"isMessages; else notMessages\" class=\"col-12 flex align-items-center justify-content-center pb-4\">\r\n\r\n <p-table [value]=\"messages\" [tableStyle]=\"{ 'min-width': '50rem' }\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th>{{'error_message' | localize }}</th>\r\n <th>{{'error_status' | localize}}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\">\r\n\r\n <tr *ngFor=\"let msg of messages\">\r\n <td>{{msg}}</td>\r\n <td>\r\n <i class=\"pi\" [ngClass]=\"{ 'text-red-500 pi-times-circle': true }\"></i>\r\n </td>\r\n </tr>\r\n\r\n </ng-template>\r\n </p-table>\r\n\r\n </div>\r\n\r\n <ng-template #notMessages>\r\n <ng-container>\r\n\r\n <div class=\"col-12 flex align-items-center justify-content-center pb-4\">\r\n\r\n <p-table [value]=\"[[]]\" [tableStyle]=\"{ 'min-width': '50rem' }\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th>{{'error_message' | localize }}</th>\r\n <th>{{'error_status' | localize}}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\">\r\n\r\n <tr>\r\n <td>{{message}}</td>\r\n <td>\r\n <i class=\"pi\" [ngClass]=\"{ 'text-red-500 pi-times-circle': true }\"></i>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n\r\n\r\n </ng-container>\r\n </ng-template>\r\n\r\n <p-footer class=\"col-12 justify-content-center flex align-items-center\">\r\n <Tsi-Button text=\"{{'cancel_label' | localize}}\" icon=\"p-button-icon p-button-icon-left pi pi-times\"\r\n styleClass=\"p-element p-button-text flex align-items-center justify-content-center p-button p-component p-button-label\" (click)=\"onCancel()\"></Tsi-Button>\r\n </p-footer>\r\n\r\n </div>\r\n</div>","import { Injectable } from '@angular/core';\r\nimport { TsiSuccessMessageComponent } from '../../tsi-components/message-components/tsi-success-message/tsi-success-message.component';\r\nimport { TsiInfoMessageComponent } from '../../tsi-components/message-components/tsi-info-message/tsi-info-message.component';\r\nimport { TsiErrorMessageComponent } from '../../tsi-components/message-components/tsi-error-message/tsi-error-message.component';\r\nimport { LocalizePipe } from '../../pipes/localize.pipe';\r\nimport { TsiModalService } from '../modal/tsi-modal.service';import { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\n;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TsiMessageService {\r\n\r\n constructor(\r\n private _tsiModalService: TsiModalService,\r\n private localizePipe: LocalizePipe) { }\r\n \r\n success(msg: string, header?: string): void {\r\n \r\n let configuration: DynamicDialogConfig = {\r\n width: '20%'\r\n , data: { message: this.localizePipe.transform(msg) }\r\n };\r\n this._tsiModalService.open(TsiSuccessMessageComponent, configuration);\r\n }\r\n\r\n infoMessage(msg: string, width = '30%', header?: string): void {\r\n \r\n let configuration: DynamicDialogConfig = {\r\n width: width,\r\n data: { message: this.localizePipe.transform(msg) }\r\n };\r\n this._tsiModalService.open(TsiInfoMessageComponent, configuration);\r\n }\r\n\r\n error(msg: string, header?: string, msgs?: string[]): void {\r\n let messages: string[] = [];\r\n \r\n //console.log('msgsss', msgs)\r\n \r\n if (msgs) {\r\n msgs.forEach((msg: string) => {\r\n messages.push(this.localizePipe.transform(msg));\r\n });\r\n }\r\n let configuration: DynamicDialogConfig = {\r\n width: '60%', height: '60%'\r\n , data: {\r\n message: this.localizePipe.transform(msg), \r\n messages:messages\r\n }\r\n };\r\n this._tsiModalService.open(TsiErrorMessageComponent, configuration);\r\n }\r\n\r\n // info(msg: string, header?: string): void {\r\n // this._messageService.add({ severity: 'info', summary: header ? header : 'Notification', detail: msg });\r\n // }\r\n\r\n // warn(msg: string, header?: string): void {\r\n // this._messageService.add({ severity: 'warn', summary: header ? header : 'Notification', detail: msg });\r\n // }\r\n\r\n // error(msg: string, header?: string): void {\r\n // this._messageService.add({ severity: 'error', summary: header ? header : 'Notification', detail: msg });\r\n // }\r\n\r\n // showErrorMessage(error: HttpErrorResponse, header?: string): void {\r\n // this._messageService.add({ severity: 'error', summary: header ? header : 'Notification', detail: error.message });\r\n // }\r\n}\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { MessageService } from 'primeng/api';\r\nimport { TsiMessageService } from './tsi-message.service';\r\nimport { LocalizePipe } from '../../pipes/localize.pipe';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TsiNotificationService {\r\n\r\n constructor(private _messageService: MessageService,\r\n private localizePipe: LocalizePipe,\r\n private tsiMessageService : TsiMessageService) { }\r\n\r\n success(msg: string, header?: string): void {\r\n this._messageService.add({ severity: 'success'\r\n , summary: header ? header : 'Notification'\r\n , detail: this.localizePipe.transform(msg) });\r\n }\r\n\r\n info(msg: string, header?: string): void {\r\n this._messageService.add({ severity: 'info'\r\n , summary: header ? header : 'Notification'\r\n , detail: this.localizePipe.transform(msg) });\r\n }\r\n\r\n warn(msg: string, header?: string): void {\r\n this._messageService.add({ severity: 'warn'\r\n , summary: header ? header : 'Notification'\r\n , detail: this.localizePipe.transform(msg) });\r\n }\r\n\r\n error(msg: string, header?: string): void {\r\n this.tsiMessageService.error(msg, header)\r\n // this._messageService.add({ severity: 'error'\r\n // , summary: header ? header : 'Notification'\r\n // , detail: this.localizePipe.transform(msg) });\r\n }\r\n\r\n showErrorMessage(error: HttpErrorResponse, header?: string): void {\r\n this._messageService.add({ severity: 'error'\r\n , summary: header ? header : 'Notification'\r\n , detail: this.localizePipe.transform(error.message) });\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'Tsi-Bubble-Info',\r\n templateUrl: './tsi-bubble-info.component.html',\r\n styleUrls: ['./tsi-bubble-info.component.scss']\r\n})\r\nexport class TsiBubbleInfoComponent implements OnInit {\r\n\r\n @Input() infoText: string| string[] = '';\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n}","<div *ngIf=\"infoText != null && infoText!= ''\">\r\n <i class=\"pi pi-info-circle ml-2 mr-2\" (mouseenter)=\"op.toggle($event)\" (mouseleave)=\"op.hide()\"></i>\r\n\r\n <p-overlayPanel #op>\r\n <div class=\"flex flex-column gap-3 w-25rem\">\r\n <div>\r\n <span class=\"font-medium text-600 block mb-2\"\r\n [innerHTML]=\"infoText | localize\">\r\n </span>\r\n </div>\r\n </div>\r\n </p-overlayPanel>\r\n</div>","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { ChangeDetectorRef, Component, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { firstValueFrom, Observable, Subscription } from 'rxjs';\r\nimport { ComboStatusModel } from '../../../interfaces';\r\nimport { TsiInputBase } from '../../../tsi-base/tsi-input-base/tsi-input-base.component';\r\nimport { rtlModeKeys } from '../../../consts/locals.const';\r\nimport { Component_Modes, GridSelectionMode, ModalSizeEnum } from '../../../enums';\r\nimport { TypeRegistryHelper } from '../../../tsi-helpers/type-registry.helper';\r\nimport { EntityConfigurationService } from '../../../services/configuration/entity-configuration.service';\r\nimport { TsiNotificationService } from '../../../services/notification/tsi-notification.service';\r\nimport { Guid } from '../../../tsi-helpers/guid.helper';\r\nimport { TsiModalService } from '../../../services/modal/tsi-modal.service';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\n\r\n@Component({\r\n selector: 'Tsi-Search-Combo',\r\n templateUrl: './tsi-search-combo.component.html',\r\n styleUrls: ['./tsi-search-combo.component.scss']\r\n})\r\nexport class TsiSearchComboComponent extends TsiInputBase<any> implements OnInit, OnDestroy {\r\n\r\n //#region local vars\r\n private _datasource: any[] = [];\r\n private _reloadSubscription: Subscription | undefined;\r\n private _isInputDatasource: boolean = false;\r\n private _gottenDatasource: any[] = [];\r\n private _bind?: any;\r\n private _bindChangeEmitted: boolean = false;\r\n private _currentRowItem?: any;\r\n public dataLoaded: boolean = true;\r\n private _selected?: any;\r\n private _dialogReference?: DynamicDialogRef | undefined;\r\n isAr: boolean = false;\r\n\r\n @HostListener('keydown.enter', ['$event'])\r\n onEnterKey(event: any) {\r\n // Handle the enter key event here\r\n event.preventDefault();\r\n event.stopPropagation()\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Inputs\r\n @Input(\"elementSourceUrl\") elementSourceUrl?: string;\r\n @Input(\"listSourceUrl\") listSourceUrl?: string | ((item: any) => string);\r\n @Input(\"id-field\") idField: string = \"\";\r\n @Input(\"label-field\") labelField: string = \"\";\r\n @Input(\"multiple\") multiple: boolean = false;\r\n @Input(\"sort\") sort: boolean = false;\r\n\r\n @Input() showClear: boolean = true;\r\n @Input() reloadDataSource: Observable<any> | undefined;\r\n @Input() isFiltered?: boolean = false;\r\n @Input() selectedLabel?: string;\r\n @Input() maxWidth: string = '';\r\n @Input() businessClass: string = '';\r\n\r\n @Input()\r\n get currentRowItem(): any {\r\n return this._currentRowItem;\r\n }\r\n\r\n set currentRowItem(value: any) {\r\n this._currentRowItem = value;\r\n }\r\n\r\n @Input() get datasource() {\r\n return this._datasource;\r\n }\r\n\r\n set datasource(datasource: any[]) {\r\n //set the data source\r\n this._gottenDatasource = datasource;\r\n\r\n if (this._gottenDatasource) {\r\n this._mapGottenDataSourceToLocalDatasource()\r\n\r\n this._isInputDatasource = true;\r\n }\r\n\r\n }\r\n\r\n @Input(\"bind\") get bind() {\r\n return this._bind;\r\n }\r\n\r\n set bind(value: any) {\r\n this._bind = value;\r\n this.inputField = value;\r\n this._onBindSet();\r\n }\r\n //#endregion\r\n\r\n //#region Outputs\r\n @Output() bindChange: EventEmitter<any> = new EventEmitter<any>();\r\n @Output(\"datasource-loaded\") dataSourceLoaded = new EventEmitter();\r\n @Output() init = new EventEmitter<ComboStatusModel>();\r\n @Output() isLoaded = new EventEmitter<ComboStatusModel>();\r\n @Output() selectedLabelChange = new EventEmitter<string>();\r\n @Output() onClick: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() onSearchButtonClick = new EventEmitter<void>();\r\n //#endregion\r\n\r\n //#region ctor\r\n constructor(\r\n public entityConfigurationService: EntityConfigurationService,\r\n private _tsiModalService: TsiModalService,\r\n private _messageService: TsiNotificationService,\r\n private _httpClient: HttpClient,\r\n protected _cdRef?: ChangeDetectorRef,\r\n ) {\r\n super(_cdRef)\r\n }\r\n //#endregion\r\n\r\n //#region handle lifecycle hooks\r\n override ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this._reloadSubscription?.unsubscribe();\r\n }\r\n\r\n override async ngOnInit() {\r\n super.ngOnInit();\r\n this.checkIfAdvancedSearchComponentExists();\r\n await this.checkIfFormNameExists(); \r\n this._initParametersWithDefaults();\r\n this._initReloadDataSourceSubscription();\r\n await this._initialLoadData();\r\n let langue = localStorage.getItem(rtlModeKeys.rtlModeEnabled);\r\n if (langue && JSON.parse(langue)) {\r\n this.isAr = true\r\n }\r\n else {\r\n this.isAr = false\r\n }\r\n\r\n\r\n this.maxWidth = this.maxWidth + 'rem';\r\n }\r\n //#endregion\r\n @Input() showSearchButton: boolean = true;\r\n @Input() showAddButton: boolean = true;\r\n @Input() showConsultButton?: boolean;\r\n @Input() showUpdateButton?: boolean;\r\n showAdvancedSearchButton: boolean = false;\r\n\r\n\r\n\r\n checkIfAdvancedSearchComponentExists(): void {\r\n if (!this.businessClass) {\r\n this.showAdvancedSearchButton = false;\r\n return;\r\n }\r\n this.entityConfigurationService.getEntityInfo(this.businessClass).subscribe({\r\n\r\n next: (entity: any) => {\r\n this.showAdvancedSearchButton = !!entity?.advancedSearchComponent;\r\n },\r\n error: (err) => {\r\n console.error(err);\r\n this.showAdvancedSearchButton = false;\r\n }\r\n });\r\n }\r\n \r\n checkIfFormNameExists(): Promise<void> {\r\n return new Promise((resolve) => {\r\n if (!this.businessClass) {\r\n if (this.showAddButton === undefined) this.showAddButton = false;\r\n if (this.showConsultButton === undefined) this.showConsultButton = false;\r\n if (this.showUpdateButton === undefined) this.showUpdateButton = false;\r\n resolve();\r\n return;\r\n }\r\n\r\n this.entityConfigurationService.getEntityInfo(this.businessClass).subscribe({\r\n next: (entity: any) => {\r\n const hasForm = !!entity?.formName;\r\n\r\n console.log(\"showAddButton\",this.showAddButton)\r\n\r\n if(!hasForm)\r\n {\r\n this.showAddButton = false;\r\n this.showUpdateButton = false;\r\n this.showConsultButton = false;\r\n\r\n return;\r\n }\r\n\r\n if (this.showConsultButton === undefined) {\r\n this.showConsultButton = this.showAddButton;\r\n } \r\n\r\n if (this.showUpdateButton === undefined) {\r\n this.showUpdateButton = this.showAddButton;\r\n }\r\n\r\n resolve();\r\n },\r\n error: (err) => {\r\n console.error(err);\r\n\r\n if (this.showAddButton === undefined) this.showAddButton = false;\r\n if (this.showConsultButton === undefined) this.showConsultButton = false;\r\n if (this.showUpdateButton === undefined) this.showUpdateButton = false;\r\n\r\n resolve();\r\n }\r\n });\r\n });\r\n} \r\n\r\n\r\n openAdvancedSearchComponent() {\r\n if (!this.businessClass) {\r\n this._messageService?.error(\"search_combo_component_nameEntity\");\r\n } else {\r\n this.entityConfigurationService.getEntityInfo(this.businessClass).subscribe({\r\n next: async (entity: any) => {\r\n this.showAdvancedSearchButton = !!entity?.advancedSearchComponent;\r\n if (!entity || !entity.advancedSearchComponent) {\r\n this._messageService?.error(\"search_combo_component_form_name_nf\");\r\n return;\r\n }\r\n\r\n let conf: DynamicDialogConfig = {\r\n data: {\r\n isAdvancedSearch: true,\r\n selectionMode: GridSelectionMode.Single,\r\n mode: Component_Modes.CONSULT,\r\n customData: entity\r\n },\r\n styleClass: '',\r\n width: ModalSizeEnum.Medium.width,\r\n height: ModalSizeEnum.Medium.height,\r\n maximizable: true,\r\n };\r\n\r\n this._dialogReference = this._tsiModalService?.open(TypeRegistryHelper.getType(entity.advancedSearchComponent), conf);\r\n\r\n this._dialogReference?.onClose.subscribe((selectedPerson: any) => {\r\n if (selectedPerson) {\r\n this.bind = selectedPerson;\r\n this.bindChange.emit(this.bind);\r\n }\r\n });\r\n },\r\n error: (err) => {\r\n console.error(err);\r\n this.showAdvancedSearchButton = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n openSearchDialog() {\r\n console.log(\"class: \", this.businessClass)\r\n if (!this.businessClass) {\r\n this._messageService?.error(\"search_combo_component_nameEntity\");\r\n }\r\n else {\r\n this.entityConfigurationService.getEntityInfo(this.businessClass).subscribe({\r\n next: async (entity: any) => {\r\n let conf: DynamicDialogConfig = {\r\n data: { isAdvancedSearch: true, selectionMode: GridSelectionMode.Single, mode: Component_Modes.CONSULT, customData: entity },\r\n styleClass: '',\r\n width: ModalSizeEnum.Medium.width,\r\n height: ModalSizeEnum.Medium.height,\r\n maximizable: true,\r\n };\r\n\r\n if (!entity || !entity.listComponent) {\r\n this._messageService?.error(\"search_combo_component_form_name_nf\");\r\n return;\r\n }\r\n this._dialogReference = this._tsiModalService?.open(TypeRegistryHelper.getType(entity.listComponent), conf);\r\n this._dialogReference?.onClose.subscribe((selectedPerson: any) => {\r\n\r\n if (selectedPerson) {\r\n this.bind = selectedPerson;\r\n this.bindChange.emit(this.bind)\r\n }\r\n });\r\n },\r\n error: (err) => {\r\n console.error(err);\r\n }\r\n });\r\n }\r\n }\r\n addElement() {\r\n if (!this.businessClass) {\r\n this._messageService?.error(\"search_combo_component_nameEntity\");\r\n }\r\n else {\r\n this.entityConfigurationService.getEntityInfo(this.businessClass).subscribe({\r\n next: async (entity: any) => {\r\n let conf: DynamicDialogConfig = {\r\n data: { mode: Component_Modes.CREATE, customData: entity },\r\n styleClass: '',\r\n width: ModalSizeEnum.Medium.width,\r\n height: ModalSizeEnum.Medium.height,\r\n maximizable: true,\r\n };\r\n\r\n if (!entity || !entity.formName) {\r\n this._messageService?.error(\"search_combo_component_form_name_nf\");\r\n return;\r\n }\r\n this._dialogReference = this._tsiModalService?.open(TypeRegistryHelper.getType(entity.formName), conf);\r\n this._dialogReference?.onClose.subscribe((savedElement: any) => {\r\n if (savedElement) {\r\n if (typeof savedElement === 'object' && savedElement !== null && 'uid' in savedElement) {\r\n this.bind = savedElement?.uid;\r\n this.bindChange.emit(this.bind)\r\n }\r\n else if (typeof savedElement === 'string' && Guid.isValid(savedElement)) {\r\n this.bind = savedElement;\r\n this.bindChange.emit(this.bind)\r\n }\r\n }\r\n });\r\n },\r\n error: (err) => {\r\n console.error(err);\r\n }\r\n });\r\n }\r\n }\r\n\r\n updateElement() {\r\n if (!this.businessClass) {\r\n this._messageService?.error(\"search_combo_component_nameEntity\");\r\n return;\r\n }\r\n\r\n if (!this.bind) {\r\n this._messageService?.error(\"Aucun élément sélectionné pour la mise à jour.\");\r\n return;\r\n }\r\n\r\n this.entityConfigurationService.getEntityInfo(this.businessClass).subscribe({\r\n next: async (entity: any) => {\r\n if (!entity || !entity.formName) {\r\n this._messageService?.error(\"search_combo_component_form_name_nf\");\r\n return;\r\n }\r\n let conf: DynamicDialogConfig = {\r\n data: {\r\n mode: Component_Modes.EDIT,\r\n customData: entity,\r\n id: this.bind\r\n },\r\n \r\n styleClass: '',\r\n width: ModalSizeEnum.Medium.width,\r\n height: ModalSizeEnum.Medium.height,\r\n maximizable: true,\r\n };\r\n\r\n this._dialogReference = this._tsiModalService?.open(TypeRegistryHelper.getType(entity.formName), conf);\r\n\r\n this._dialogReference?.onClose.subscribe((updatedElement: any) => {\r\n if (updatedElement) {\r\n if (typeof updatedElement === 'object' && updatedElement !== null && 'uid' in updatedElement) {\r\n this.bind = updatedElement.uid;\r\n this.bindChange.emit(this.bind);\r\n } else if (typeof updatedElement === 'string' && Guid.isValid(updatedElement)) {\r\n this.bind = updatedElement;\r\n this.bindChange.emit(this.bind);\r\n }\r\n }\r\n});\r\n },\r\n error: (err) => {\r\n console.error(err);\r\n }\r\n });\r\n}\r\nconsultElement() {\r\n if (!this.businessClass) {\r\n this._messageService?.error(\"search_combo_component_nameEntity\");\r\n return;\r\n }\r\n\r\n if (!this.bind) {\r\n this._messageService?.error(\"Aucun élément sélectionné pour la consultation.\");\r\n return;\r\n }\r\n\r\n this.entityConfigurationService.getEntityInfo(this.businessClass).subscribe({\r\n next: async (entity: any) => {\r\n if (!entity || !entity.formName) {\r\n this._messageService?.error(\"search_combo_component_form_name_nf\");\r\n return;\r\n }\r\n\r\n const conf: DynamicDialogConfig = {\r\n data: {\r\n mode: Component_Modes.CONSULT,\r\n customData: entity,\r\n id: this.bind \r\n },\r\n styleClass: '',\r\n width: ModalSizeEnum.Medium.width,\r\n height: ModalSizeEnum.Medium.height,\r\n maximizable: true,\r\n };\r\n\r\n this._dialogReference = this._tsiModalService?.open(\r\n TypeRegistryHelper.getType(entity.formName),\r\n conf\r\n );\r\n\r\n this._dialogReference?.onClose.subscribe((_) => {\r\n });\r\n },\r\n error: (err) => {\r\n console.error(\"Erreur lors de la récupération des infos d'entité :\", err);\r\n }\r\n });\r\n}\r\n\r\n\r\n //#region handle events\r\n bindValueChanged(event: any) {\r\n this.bind = event.value;\r\n if (this.bind !== null && this.bind !== undefined) {\r\n this._selected = this.bind\r\n }\r\n this.bindChange.emit(event.value);\r\n\r\n if (!this._bindChangeEmitted) {\r\n this._bindChangeEmitted = true;\r\n }\r\n\r\n let selectedElement: any = this.datasource.find(e => e.id == this.bind);\r\n if (selectedElement) {\r\n this.selectedLabelChange.emit(selectedElement.label);\r\n }\r\n }\r\n\r\n searchValueChanged(searchValue: any) {\r\n if (this.isFiltered && !this._isInputDatasource) {\r\n this._loadServerSidePagedDataSource(searchValue.filter);\r\n }\r\n }\r\n\r\n onOpen() {\r\n if (this.isFiltered || typeof this.listSourceUrl == \"function\") {\r\n this._loadDataSource();\r\n }\r\n }\r\n\r\n onHide() {\r\n if (this.dataLoaded) {\r\n this.bind = this._selected\r\n }\r\n }\r\n\r\n clearSelectedValue() {\r\n this._selected = undefined\r\n }\r\n //#endregion\r\n\r\n //#region private methods\r\n private _loadDataSource() {\r\n if (!this._isInputDatasource) {\r\n if (this.isFiltered) {\r\n this._loadServerSidePagedDataSource();\r\n }\r\n else {\r\n this._loadNotServerSidePagedDataSource();\r\n }\r\n }\r\n }\r\n\r\n private _loadServerSidePagedDataSource(keyword: string = \"\") {\r\n if (this._validateListInputs()) {\r\n this._datasource = [];\r\n this.dataLoaded = false;\r\n this._httpClient.get(this._initListDataSourceEndpoint(), this._generateHttpParams(keyword))\r\n .subscribe({\r\n next: (data: any) => {\r\n this._gottenDatasource = data;\r\n this._mapGottenDataSourceToLocalDatasource();\r\n },\r\n error: (error) => {\r\n this.dataLoaded = false;\r\n }\r\n }\r\n );\r\n\r\n }\r\n }\r\n\r\n private _loadNotServerSidePagedDataSource() {\r\n if (this._validateListInputs()) {\r\n this._datasource = [];\r\n this.dataLoaded = false;\r\n this._httpClient.get(this._initListDataSourceEndpoint())\r\n .subscribe({\r\n next: (data: any) => {\r\n this._gottenDatasource = data;\r\n this._mapGottenDataSourceToLocalDatasource();\r\n },\r\n error: (error) => {\r\n this.dataLoaded = false;\r\n }\r\n }\r\n );\r\n\r\n }\r\n }\r\n\r\n private async _loadBindElement() {\r\n if (this._validateBindElementInputs()) {\r\n if (this.bind) {\r\n this._datasource = [];\r\n this.dataLoaded = false;\r\n\r\n try {\r\n const data: any = await firstValueFrom(this._httpClient.get(this._initElementEndpoint()));\r\n\r\n let tempArray: any[] = [];\r\n let obj = {\r\n id: data[this.idField],\r\n label: data[this.labelField]\r\n };\r\n\r\n this._selected = obj.id;\r\n tempArray.push(obj);\r\n this._datasource = tempArray;\r\n this.dataLoaded = true;\r\n\r\n this.selectedLabelChange.emit(obj.label);\r\n this.dataSourceLoaded.emit();\r\n } catch (error) {\r\n this.dataLoaded = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _compareFunction(): (a: any, b: any) => number {\r\n return (a, b) => {\r\n if (a.label > b.label) { return 1; }\r\n if (a.label < b.label) { return -1; }\r\n return 0;\r\n };\r\n }\r\n\r\n private _validateListInputs(): boolean {\r\n if (this.listSourceUrl == undefined || this.listSourceUrl === '') {\r\n throw new Error('listSourceUrl url not defined');\r\n }\r\n return true;\r\n }\r\n\r\n private _validateBindElementInputs(): boolean {\r\n if (this.elementSourceUrl == undefined || this.elementSourceUrl === '') {\r\n throw new Error('elementSourceUrl not defined');\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private _initParametersWithDefaults(): void {\r\n if (this.idField == undefined || this.idField === \"\") {\r\n this.idField = \"id\";\r\n }\r\n\r\n if (this.labelField == undefined || this.labelField === \"\") {\r\n this.labelField = \"libelle\";\r\n }\r\n }\r\n\r\n private _initElementEndpoint(): string {\r\n if (this.bind) {\r\n return encodeURI(`${this.elementSourceUrl}/${this.bind}`);\r\n }\r\n else throw new Error('no bind input was provided, cannot create bindElementUrl')\r\n }\r\n\r\n private _initListDataSourceEndpoint(): string {\r\n if (!this.listSourceUrl) {\r\n throw new Error('you must provide the list source url')\r\n }\r\n\r\n if (typeof this.listSourceUrl == \"string\") {\r\n return encodeURI(`${this.listSourceUrl}`);\r\n }\r\n if (typeof this.listSourceUrl == \"function\") {\r\n let tempListSourceUrl = this.listSourceUrl(this.currentRowItem)\r\n return encodeURI(`${tempListSourceUrl}`)\r\n }\r\n return \"\"\r\n }\r\n\r\n private async _initialLoadData() {\r\n if (this._isInputDatasource) {\r\n this._mapGottenDataSourceToLocalDatasource();\r\n }\r\n else {\r\n if (this.isFiltered) {\r\n await this._loadBindElement();\r\n }\r\n else {\r\n this._loadNotServerSidePagedDataSource();\r\n }\r\n }\r\n }\r\n\r\n private async _onBindSet() {\r\n if (this.isFiltered && !this._bindChangeEmitted && !this._isInputDatasource) {\r\n await this._loadBindElement();\r\n }\r\n }\r\n\r\n private _loadAllData() {\r\n if (this.isFiltered) {\r\n this._loadServerSidePagedDataSource();\r\n }\r\n else {\r\n this._loadNotServerSidePagedDataSource();\r\n }\r\n }\r\n\r\n private _initReloadDataSourceSubscription() {\r\n if (this.reloadDataSource) {\r\n this._reloadSubscription = this.reloadDataSource.subscribe(\r\n (data: any) => {\r\n if (typeof (data) == 'string') {\r\n if (data != undefined && data != null && data != '') {\r\n this.listSourceUrl = data;\r\n this._loadAllData();\r\n }\r\n }\r\n else if (Array.isArray(data)) {\r\n this.datasource = data\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n private _mapGottenDataSourceToLocalDatasource(): void {\r\n let tempArray: any[] = [];\r\n this._gottenDatasource.forEach((element: any) => {\r\n let obj = {\r\n id: element[this.idField],\r\n label: element[this.labelField]\r\n };\r\n tempArray.push(obj);\r\n })\r\n this._datasource = tempArray;\r\n if (this.sort) {\r\n this._datasource.sort(this._compareFunction());\r\n }\r\n this.dataLoaded = true;\r\n this.dataSourceLoaded.emit();\r\n }\r\n\r\n private _generateHttpParams(keyword: string | undefined): any {\r\n //init params\r\n let params = new HttpParams();\r\n params = params.append('value', keyword ?? '');\r\n\r\n return { params: params };\r\n }\r\n\r\n onSearchComboClick(event: any) {\r\n this.onClick.emit(event);\r\n }\r\n //#endregion\r\n}\r\n","<div class=\"flex\">\r\n <p-dropdown\r\n [placeholder]=\"placeHolder\"\r\n class=\"{{myStyleClass}}\"\r\n [required]=\"isRequired\"\r\n styleClass=\"{{myStyleClass}} border-radius-7 {{validationStatusCssClass}}\"\r\n appendTo=\"body\"\r\n optionLabel=\"label\"\r\n optionValue=\"id\"\r\n filterBy=\"label\"\r\n [options]=\"datasource\"\r\n [disabled]=\"disabled\"\r\n [lazy]=\"!dataLoaded\"\r\n [(ngModel)]=\"bind\"\r\n [filter]=\"true\"\r\n [showClear]=\"showClear\"\r\n [autoDisplayFirst]=\"false\"\r\n (onChange)=\"bindValueChanged($event)\"\r\n (onHide)=\"onHide()\"\r\n (onShow)=\"onOpen()\"\r\n (onFilter)=\"searchValueChanged($event)\"\r\n (onClear)=\"clearSelectedValue()\"\r\n (onClick)=\"onSearchComboClick($event)\"\r\n [style]=\"{'max-width': maxWidth, 'width':'100%', 'height': '1.7rem'}\"\r\n [ngClass]=\"isAr ? 'p-dropdown-clear-iconAR': 'p-dropdown-clear-iconFR' \"\r\n >\r\n <!-- Ajout d'un bouton dans le dropdown -->\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"dropdown-header flex gap-1 pt-2 px-2\">\r\n <Tsi-Button *ngIf=\"showSearchButton\"\r\n type=\"button\"\r\n icon=\"pi pi-search\" \r\n title=\"title-search-combo-Ouvrir\" \r\n styleClass=\"p-button-primary hover:shadow-6 h-2rem p-button-icon-only\" \r\n (click)=\"openSearchDialog()\">\r\n </Tsi-Button>\r\n \r\n <Tsi-Button *ngIf=\"showAddButton\"\r\n type=\"button\"\r\n icon=\"pi pi-plus\" \r\n title=\"title-search-combo-Ajouter\" \r\n styleClass=\"p-button-success hover:shadow-6 h-2rem p-button-icon-only\" \r\n (click)=\"addElement()\">\r\n </Tsi-Button>\r\n \r\n <Tsi-Button *ngIf=\"showAdvancedSearchButton\"\r\n type=\"button\"\r\n icon=\"pi pi-sort-amount-down\" \r\n title=\"Lister les articles pivotés\" \r\n styleClass=\"p-button-secondary hover:shadow-6 h-2rem p-button-icon-only\" \r\n (click)=\"openAdvancedSearchComponent()\">\r\n </Tsi-Button>\r\n \r\n <Tsi-Button *ngIf=\"showConsultButton\"\r\n type=\"button\"\r\n icon=\"pi pi-eye\" \r\n title=\"title-search-combo-Consulter\" \r\n styleClass=\"p-button-primary hover:shadow-6 h-2rem p-button-icon-only\" \r\n (click)=\"consultElement()\">\r\n </Tsi-Button>\r\n \r\n <Tsi-Button *ngIf=\"showUpdateButton\"\r\n type=\"button\"\r\n icon=\"pi pi-pencil\" \r\n title=\"title-search-combo-update\" \r\n styleClass=\"p-button-primary hover:shadow-6 h-2rem p-button-icon-only\" \r\n (click)=\"updateElement()\">\r\n </Tsi-Button>\r\n\r\n </div>\r\n </ng-template>\r\n <ng-template let-target pTemplate=\"item\">\r\n <div pTooltip=\"{{target.label}}\" tooltipPosition=\"top\"\r\n tooltipStyleClass=\"custom-tooltip\">\r\n <span>{{target.label}}</span>\r\n </div>\r\n </ng-template>\r\n </p-dropdown>\r\n \r\n <!-- Bubble Info -->\r\n <Tsi-Bubble-Info [infoText]=\"infoText\"></Tsi-Bubble-Info>\r\n </div>\r\n ","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { TsiInputBase } from '../../../tsi-base/tsi-input-base/tsi-input-base.component';\r\nimport { LocalizePipe } from '../../../pipes/localize.pipe';\r\n\r\n@Component({\r\n selector: 'Tsi-Currency-Other-Input',\r\n templateUrl: './tsi-currency-other-input.component.html',\r\n styleUrls: ['./tsi-currency-other-input.component.scss'],\r\n standalone: false\r\n})\r\nexport class TsiCurrencyOtherInputComponent extends TsiInputBase<number | undefined> implements OnInit {\r\n //#region inputs\r\n @Input() numOfDecimal?: number = 2\r\n // @Input() inputField?: number;\r\n @Input() currency?: string = 'TND';\r\n @Input('class') class: any = {};\r\n //#endregion\r\n\r\n //#region outputs\r\n @Output() inputFieldChange: EventEmitter<number> = new EventEmitter<number>();\r\n //#endregion\r\n\r\n private isValueChanged: boolean = false\r\n constructor(private _localizationPipe: LocalizePipe) {\r\n super()\r\n }\r\n\r\n valueChanged() {\r\n this.isValueChanged = true\r\n }\r\n\r\n onChangeofOptions(): void {\r\n if (this.isValueChanged) {\r\n this.inputFieldChange.emit(this.inputField);\r\n this.isValueChanged = false\r\n }\r\n }\r\n\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n this.currency = this._localizationPipe.transform(this.currency ?? \"\")\r\n }\r\n}\r\n","<div class=\"flex h-2rem\">\r\n <p-inputNumber \r\n autoSelect\r\n [disabled]=\"disabled\"\r\n (onBlur)=\"onChangeofOptions()\"\r\n [(ngModel)]=\"inputField\" \r\n (ngModelChange)=\"valueChanged()\"\r\n class=\"{{myStyleClass}}\" styleClass=\"{{myStyleClass}} border-radius-7 {{validationStatusCssClass}}\" \r\n inputStyleClass=\"{{myStyleClass}}\" name=\"{{inputName}}\"\r\n id=\"{{inputId}}\" [suffix]=\"currency\" [minFractionDigits]=\"numOfDecimal ?? 0\" [maxFractionDigits]=\"numOfDecimal ?? 0\">\r\n </p-inputNumber>\r\n <Tsi-Bubble-Info [infoText]=\"infoText\"></Tsi-Bubble-Info>\r\n</div>","import { FilterMatchMode } from \"primeng/api\";\r\nimport { FilterOperatorType, InputTypes, DisplayTypes } from \"../enums\";\r\nimport { IAppSettings } from \"../interfaces\";\r\nimport { SearchField } from \"../models\";\r\nimport { DefaultSocieteDevise } from \"../consts/tsi-consts\";\r\n\r\nexport class FilterHelper {\r\n public static appSettings : IAppSettings;\r\n\r\n public static ToOperatorType(value?: string): number {\r\n switch (value) {\r\n case FilterMatchMode.EQUALS: return FilterOperatorType.EQUAL;\r\n case FilterMatchMode.LESS_THAN_OR_EQUAL_TO: return FilterOperatorType.LESSOREQUAL;\r\n case FilterMatchMode.GREATER_THAN_OR_EQUAL_TO: return FilterOperatorType.GREATEROREQUAL;\r\n case FilterMatchMode.NOT_EQUALS: return FilterOperatorType.NOTEQUAL;\r\n case FilterMatchMode.LESS_THAN: return FilterOperatorType.LESS;\r\n case FilterMatchMode.GREATER_THAN: return FilterOperatorType.GREATER;\r\n case FilterMatchMode.CONTAINS: return FilterOperatorType.CONTAINS;\r\n case FilterMatchMode.DATE_IS: return FilterOperatorType.DATEIS;\r\n case FilterMatchMode.STARTS_WITH: return FilterOperatorType.STARTSWITH;\r\n case FilterMatchMode.ENDS_WITH: return FilterOperatorType.ENDSWITH;\r\n case FilterMatchMode.DATE_IS_NOT: return FilterOperatorType.DATEISNOT;\r\n case FilterMatchMode.DATE_BEFORE: return FilterOperatorType.DATEISBEFORE;\r\n case FilterMatchMode.DATE_AFTER: return FilterOperatorType.DATEISAFTER;\r\n case FilterMatchMode.NOT_CONTAINS: return FilterOperatorType.NOTCONTAINS;\r\n case undefined : return FilterOperatorType.EQUAL;\r\n default: throw new Error('Not Supported filter operator');\r\n }\r\n }\r\n\r\n public static initSearchFields(searchFields?: SearchField[]): SearchField[] {\r\n let oxSearchFields: SearchField[] = [];\r\n if (searchFields) {\r\n searchFields.forEach(sf => {\r\n this._initSearchFieldDefaultsIfNullOrUndefined(sf);\r\n\r\n let toMinMaxSearchFields : SearchField [] = this._initMinMaxSearchField(sf);\r\n\r\n oxSearchFields = [...oxSearchFields, ...toMinMaxSearchFields];\r\n });\r\n }\r\n return oxSearchFields;\r\n }\r\n\r\n //#region private methods\r\n private static _initSearchFieldDefaultsIfNullOrUndefined(sf: SearchField): void {\r\n if (sf.operator == null || sf.operator == undefined) {\r\n sf.operator = FilterOperatorType.EQUAL;\r\n }\r\n if (sf.styleClass == null || sf.styleClass == undefined || sf.styleClass == '') {\r\n sf.styleClass = 'col-3';\r\n }\r\n if (sf.type == InputTypes.CURRENCY_SOCIETE_INPUT) {\r\n sf.currency = FilterHelper.appSettings.deviseSociete.codeDevise ?? DefaultSocieteDevise.codeDevise;\r\n }\r\n }\r\n\r\n private static _initMinMaxSearchField(sf: SearchField): SearchField[] {\r\n let searchFields: SearchField[] = [];\r\n if (sf.isMaxMin) {\r\n //create Max filter\r\n let maxSF = this._cloneSearchField(sf);\r\n maxSF.operator = FilterOperatorType.LESSOREQUAL;\r\n maxSF.isMaxMin = false;\r\n if (maxSF.maxLabelValue) {\r\n maxSF.labelValue = maxSF.maxLabelValue;\r\n }\r\n\r\n //create Min filter\r\n let minSF = this._cloneSearchField(sf);\r\n minSF.operator = FilterOperatorType.GREATEROREQUAL;\r\n minSF.isMaxMin = false;\r\n if (minSF.minLabelValue) {\r\n minSF.labelValue = minSF.minLabelValue;\r\n }\r\n\r\n searchFields = [minSF, maxSF]\r\n }\r\n else {\r\n searchFields.push(sf);\r\n }\r\n return searchFields;\r\n }\r\n\r\n private static _cloneSearchField(sf: SearchField): SearchField {\r\n let clone: SearchField = {\r\n field: sf.field,\r\n labelValue: sf.labelValue,\r\n operator: sf.operator,\r\n value: sf.value,\r\n isMaxMin: sf.isMaxMin,\r\n maxValue: sf.maxValue,\r\n minValue: sf.minValue,\r\n type: sf.type,\r\n styleClass: sf.styleClass,\r\n inputStyleClass: sf.inputStyleClass,\r\n labelStyleClass: sf.labelStyleClass,\r\n listSourceUrl: sf.listSourceUrl,\r\n elementSourceUrl: sf.elementSourceUrl,\r\n labelField: sf.labelField,\r\n idField: sf.idField,\r\n isFiltered: sf.isFiltered,\r\n minLabelValue: sf.minLabelValue,\r\n maxLabelValue: sf.maxLabelValue,\r\n comboboxLabel: sf.comboboxLabel,\r\n currency: sf.currency,\r\n isFraction: sf.isFraction,\r\n numOfDecimal: sf.numOfDecimal\r\n }\r\n return clone;\r\n }\r\n\r\n public static ToDisplayType(value?: string): string {\r\n switch (value) {\r\n case InputTypes.DATE: return DisplayTypes.DATE_DISPLAY;\r\n case InputTypes.CHECKBOX: return DisplayTypes.CHECKBOX_DISPLAY;\r\n case InputTypes.CURRENCY_SOCIETE_INPUT: return DisplayTypes.CURRENCY_SOCIETE_DISPLAY;\r\n case InputTypes.CURRENCY_OTHER_INPUT: return DisplayTypes.CURRENCY_OTHER_DISPLAY;\r\n case InputTypes.DECIMAL_INPUT: return DisplayTypes.DECIMAL_DISPLAY;\r\n case InputTypes.INTEGER: return DisplayTypes.INTEGER_DISPLAY;\r\n case InputTypes.RATE_INPUT: return DisplayTypes.RATE_DISPLAY;\r\n case InputTypes.IMAGE_INPUT: return DisplayTypes.IMAGE_DISPLAY;\r\n default: return '';\r\n }\r\n }\r\n\r\n public static ToInputType(value?: string): string {\r\n switch (value) {\r\n case DisplayTypes.DATE_DISPLAY: return InputTypes.DATE;\r\n case DisplayTypes.CHECKBOX_DISPLAY: return InputTypes.CHECKBOX;\r\n case DisplayTypes.CURRENCY_SOCIETE_DISPLAY: return InputTypes.CURRENCY_SOCIETE_INPUT;\r\n case DisplayTypes.CURRENCY_OTHER_DISPLAY: return InputTypes.CURRENCY_OTHER_INPUT;\r\n case DisplayTypes.DECIMAL_DISPLAY: return InputTypes.DECIMAL_INPUT;\r\n case DisplayTypes.INTEGER_DISPLAY: return InputTypes.INTEGER;\r\n case DisplayTypes.RATE_DISPLAY: return InputTypes.RATE_INPUT;\r\n case DisplayTypes.IMAGE_DISPLAY: return InputTypes.IMAGE_INPUT;\r\n default: return '';\r\n }\r\n }\r\n //#endregion\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ParametresApplicationParambaseService{\r\n\r\n constructor(protected httpClient: HttpClient) {}\r\n\r\n getParametreApplicationParamBase(url : string): Observable<any> {\r\n return this.httpClient.get<any>(url);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { IAppSettings } from '../../interfaces/settings/app-settings';\r\nimport { DefaultSocieteDevise } from '../../consts/tsi-consts';\r\nimport { FilterHelper } from '../../tsi-helpers/filter-helper';\r\nimport { Devise } from '../../models/settings/devise';\r\nimport { ParametresApplicationParambaseService } from '../application/parametres-application-parambase.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppSettingsService {\r\n\r\n private _appSettings: IAppSettings = { deviseSociete: DefaultSocieteDevise };\r\n public get appSettings(): IAppSettings {\r\n return this._appSettings;\r\n }\r\n\r\n constructor(private _paramAppService: ParametresApplicationParambaseService) { }\r\n\r\n async loadAppSettings(): Promise<void> {\r\n try {\r\n await this.loadDeviseSociete();\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n\r\n FilterHelper.appSettings = this._appSettings;\r\n }\r\n\r\n private async loadDeviseSociete(): Promise<void> {\r\n try {\r\n let value = await firstValueFrom(this._paramAppService.getParametreApplicationParamBase(\"\"));\r\n if (!(value && value.devise)) return;\r\n\r\n let devise = new Devise();\r\n Object.assign(devise, value.devise);\r\n this._appSettings.deviseSociete = devise;\r\n } catch (error) {\r\n console.error(error);\r\n }\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 { TsiInputBase } from '../../../tsi-base/tsi-input-base/tsi-input-base.component';\r\nimport { AppSettingsService } from '../../../services/settings/app-settings.service';\r\nimport { LocalizePipe } from '../../../pipes/localize.pipe';\r\nimport { DefaultSocieteDevise } from '../../../consts/tsi-consts';\r\n\r\n@Component({\r\n selector: 'Tsi-Currency-Societe-Input',\r\n templateUrl: './tsi-currency-societe-input.component.html',\r\n styleUrls: ['./tsi-currency-societe-input.component.scss'],\r\n})\r\nexport class TsiCurrencySocieteInputComponent extends TsiInputBase<number | undefined> implements OnInit\r\n{\r\n\r\n //#region local vars\r\n currency: string = DefaultSocieteDevise.codeDevise;\r\n style: any = { width: 'inherit' };\r\n protected numOfDecimal?: number = 3;\r\n //#endregion\r\n //#region inputs\r\n // @Input() inputField?: number = 0;\r\n @Input('class') class: any = {};\r\n //#endregion\r\n\r\n //#region outputs\r\n @Output() inputFieldChange: EventEmitter<number> = new EventEmitter<number>();\r\n //#endregion\r\n private isValueChanged: boolean = false;\r\n\r\n constructor(private appSettingsService: AppSettingsService,\r\n private _localizationPipe: LocalizePipe) {\r\n super();\r\n this.currency = appSettingsService.appSettings.deviseSociete.codeDevise ?? DefaultSocieteDevise.codeDevise;\r\n this.numOfDecimal =\r\n appSettingsService.appSettings.deviseSociete.nombreDecimales ??\r\n DefaultSocieteDevise.nombreDecimales;\r\n }\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n this.currency = this._localizationPipe.transform(this.currency);\r\n // if (this.inputField === undefined || this.inputField === null) {\r\n // this.inputField = 0;\r\n // }\r\n }\r\n\r\n valueChanged() {\r\n this.isValueChanged = true;\r\n }\r\n\r\n onChangeofOptions(): void {\r\n if (this.isValueChanged) {\r\n this.inputFieldChange.emit(this.inputField);\r\n this.isValueChanged = false;\r\n }\r\n }\r\n}\r\n","<div class=\"flex h-2rem\">\r\n <p-inputNumber\r\n autoSelect\r\n class=\"{{ myStyleClass }} {{ class }}\"\r\n styleClass=\"{{ myStyleClass }} border-radius-7 {{validationStatusCssClass}}\"\r\n inputStyleClass=\"{{ myStyleClass }}\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"inputField\"\r\n (ngModelChange)=\"valueChanged()\"\r\n (onBlur)=\"onChangeofOptions()\"\r\n name=\"{{ inputName }}\"\r\n id=\"{{ inputId }}\"\r\n suffix=\" {{currency}}\" \r\n locale=\"en-US\"\r\n [minFractionDigits]=\"numOfDecimal ?? 0\"\r\n [maxFractionDigits]=\"numOfDecimal ?? 0\"\r\n >\r\n </p-inputNumber>\r\n\r\n <Tsi-Bubble-Info [infoText]=\"infoText\"></Tsi-Bubble-Info>\r\n</div>","export const primengLocaleAr = {\r\n startsWith: 'يبدأ بـ',\r\n contains: 'يحتوي',\r\n notContains: 'لا يحتوي',\r\n endsWith: 'ينتهي بـ',\r\n equals: 'يساوي',\r\n notEquals: 'لا يساوي',\r\n noFilter: 'لا يوجد فلتر',\r\n lt: 'أقل من',\r\n lte: 'أقل من أو يساوي',\r\n gt: 'أكبر من',\r\n gte: 'أكبر من أو يساوي',\r\n is: 'هو',\r\n isNot: 'ليس',\r\n before: 'قبل',\r\n after: 'بعد',\r\n dateIs: 'التاريخ هو',\r\n dateIsNot: 'التاريخ ليس',\r\n dateBefore: 'التاريخ قبل',\r\n dateAfter: 'التاريخ بعد',\r\n clear: 'مسح',\r\n apply: 'تطبيق',\r\n matchAll: 'مطابقة الكل',\r\n matchAny: 'مطابقة أي',\r\n addRule: 'إضافة قاعدة',\r\n removeRule: 'إزالة قاعدة',\r\n accept: 'نعم',\r\n reject: 'لا',\r\n choose: 'اختيار',\r\n upload: 'رفع',\r\n cancel: 'إلغاء',\r\n today: 'اليوم',\r\n weekHeader: 'الأسبوع',\r\n firstDayOfWeek: 1,\r\n dateFormat: 'dd/mm/yy',\r\n weak: 'ضعيف',\r\n medium: 'متوسط',\r\n strong: 'قوي',\r\n passwordPrompt: 'أدخل كلمة المرور',\r\n emptyMessage: 'لم يتم العثور على سجلات',\r\n emptyFilterMessage: 'لم يتم العثور على نتائج',\r\n };\r\n\r\n\r\n export const primengDateLocalAr = {\r\n firstDayOfWeek: 1,\r\n dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\r\n dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\r\n dayNamesMin: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\r\n monthNames: ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', 'جوان', 'جويلية', 'أوت', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],\r\n monthNamesShort: ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', 'جوان', 'جويلية', 'أوت', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],\r\n today: 'اليوم',\r\n clear: 'مسح',\r\n dateFormat: 'dd/mm/yyyy',\r\n weekHeader: 'أسبوع'\r\n }\r\n ","export class TimeOnly {\r\n private hour: number;\r\n private minute: number;\r\n private second: number;\r\n private millisecond: number;\r\n\r\n constructor(hour: number, minute: number, second: number, millisecond: number = 0) {\r\n this.hour = hour;\r\n this.minute = minute;\r\n this.second = second;\r\n this.millisecond = millisecond;\r\n }\r\n\r\n getHours(): number {\r\n return this.hour;\r\n }\r\n\r\n setHours(value: number) {\r\n this.hour = value;\r\n }\r\n\r\n getMinutes(): number {\r\n return this.minute;\r\n }\r\n\r\n setMinutes(value: number) {\r\n this.minute = value;\r\n }\r\n\r\n getSeconds(): number {\r\n return this.second;\r\n }\r\n\r\n setSeconds(value: number) {\r\n this.second = value;\r\n }\r\n\r\n getMilliseconds(): number {\r\n return this.millisecond;\r\n }\r\n\r\n setMilliseconds(value: number) {\r\n this.millisecond = value;\r\n }\r\n\r\n toString(): string {\r\n const timeString = `${this.hour.toString().padStart(2, '0')}:${this.minute\r\n .toString()\r\n .padStart(2, '0')}:${this.second.toString().padStart(2, '0')}.${this.millisecond.toString().padStart(3, '0')}`;\r\n return timeString;\r\n }\r\n\r\n toJSON(): string {\r\n\r\n return this.toString();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DateFormat, DateTimeFormat, TimeFormat } from '../consts/tsi-consts';\r\nimport { TimeOnly } from '../types/time-only';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DateHelperService {\r\n dateFormat: string = DateFormat;\r\n dateTimeFormat: string = DateTimeFormat;\r\n timeFormat: string = TimeFormat;\r\n\r\n constructor() { }\r\n\r\n /**\r\n * Converts a string to a Date by using the specified locale UTC and format DateFormat.\r\n * @param dateString A string date in format DateFormat\r\n */\r\n public parseDateString(dateString: string): Date | undefined {\r\n const [day, month, year] = dateString.split('/').map(Number);\r\n\r\n // Subtract 1 from month since it's zero-based in JavaScript's Date object\r\n const date = new Date(Date.UTC(year, month - 1, day, 0, 0, 0, 0));\r\n\r\n // Check if the parsed date is valid\r\n if (\r\n date.getFullYear() === year &&\r\n date.getMonth() === month - 1 &&\r\n date.getDate() === day\r\n ) {\r\n return date;\r\n }\r\n\r\n return undefined; // Return undefined if the date string is invalid\r\n }\r\n\r\n /**\r\n * Converts a string to a Date by using the specified locale UTC and format DateTimeFormat.\r\n * @param dateString A string date in format DateTimeFormat\r\n */\r\n public parseDateTimeString(dateString: string): Date | undefined {\r\n const [datePart, timePart] = dateString.split(' ').map(String);\r\n const [day, month, year] = datePart.split('/').map(Number);\r\n const [hour, minute, second] = timePart.split(':').map(Number);\r\n\r\n // Subtract 1 from month since it's zero-based in JavaScript's Date object\r\n const date = new Date(Date.UTC(year, month - 1, day, hour, minute, second, 0));\r\n\r\n // Check if the parsed date is valid\r\n if (\r\n date.getUTCFullYear() === year &&\r\n date.getUTCMonth() === month - 1 &&\r\n date.getUTCDate() === day &&\r\n date.getUTCHours() === hour &&\r\n date.getUTCMinutes() === minute &&\r\n date.getUTCSeconds() === second\r\n ) {\r\n return date;\r\n }\r\n\r\n return undefined; // Return undefined if the date string is invalid\r\n }\r\n\r\n /**\r\n * Converts a string to a TimeOnly by using the format DateTimeFormat.\r\n * @param timeString A string timeonly in format TimeFormat\r\n */\r\n public parseTimeString(timeString: string): TimeOnly | undefined {\r\n const [hour, minute, second] = timeString.split(':').map(Number);\r\n\r\n const time = new TimeOnly(hour, minute, second, 0);\r\n\r\n // Check if the parsed date is valid\r\n if (\r\n time.getHours() === hour &&\r\n time.getMinutes() === minute &&\r\n time.getSeconds() === second &&\r\n time.getMilliseconds() === 0\r\n ) {\r\n return time;\r\n }\r\n\r\n return undefined; // Return undefined if the date string is invalid\r\n }\r\n\r\n public createUtcDateFromDate(value: Date): Date | undefined {\r\n if (!(value instanceof Date)) {\r\n throw new Error('Provided value is not instanceof Date')\r\n }\r\n\r\n let newDate = new Date(value);\r\n const [year, month, day, hour, minute, second] = [\r\n newDate.getFullYear(),\r\n newDate.getMonth(),\r\n newDate.getDate(),\r\n newDate.getHours(),\r\n newDate.getMinutes(),\r\n newDate.getSeconds(),\r\n ];\r\n\r\n const date = new Date(Date.UTC(year, month, day, hour, minute, second, 0));\r\n\r\n // Check if the parsed date is valid\r\n if (\r\n date.getUTCFullYear() === year &&\r\n date.getUTCMonth() === month &&\r\n date.getUTCDate() === day &&\r\n date.getUTCHours() === hour &&\r\n date.getUTCMinutes() === minute &&\r\n date.getUTCSeconds() === second\r\n ) {\r\n return date;\r\n }\r\n\r\n return undefined; // Return undefined if the date string is invalid\r\n }\r\n\r\n /**\r\n * Converts a jsonString to a Date by using the specified locale UTC.\r\n * @param jsonString A json string date gotten from remote api\r\n */\r\n public createUtcDateFromString(jsonString: string): Date | undefined {\r\n if (!(typeof jsonString == 'string')) {\r\n throw new Error('Provided value is not of type string')\r\n }\r\n\r\n let newDate = new Date(jsonString);\r\n const [year, month, day, hour, minute, second] = [\r\n newDate.getFullYear(),\r\n newDate.getMonth(),\r\n newDate.getDate(),\r\n newDate.getHours(),\r\n newDate.getMinutes(),\r\n newDate.getSeconds(),\r\n ];\r\n\r\n const date = new Date(Date.UTC(year, month, day, hour, minute, second, 0));\r\n\r\n // Check if the parsed date is valid\r\n if (\r\n date.getUTCFullYear() === year &&\r\n date.getUTCMonth() === month &&\r\n date.getUTCDate() === day &&\r\n date.getUTCHours() === hour &&\r\n date.getUTCMinutes() === minute &&\r\n date.getUTCSeconds() === second\r\n ) {\r\n return date;\r\n }\r\n\r\n return undefined; // Return undefined if the date string is invalid\r\n }\r\n\r\n public extractTimeFromDate(value : Date) : string {\r\n let hour = value.getHours()\r\n let minutes = value.getMinutes()\r\n let seconds = value.getSeconds()\r\n\r\n return `${hour}:${minutes}:${seconds}`\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { authorization, menuItems, userLanguage } from '../../consts/tsi-consts';\r\n// import { AuthorizationToken } from '@shared/models/authorization/authorization-token';\r\n// import { AuthorizationTokenMapper } from '@shared/models/authorization/authorization-token-mapper';\r\nimport { StorageManager } from '../../tsi-helpers/storage-manager';\r\nimport { rtlModeKeys } from '../../consts/locals.const';\r\nimport { AuthorizationToken, AuthorizationTokenMapper } from '../../models';\r\n// import { AppConsts } from 'app/app-consts';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IdentityManagerService {\r\n\r\n constructor(private _jwtHelper: JwtHelperService) { }\r\n\r\n public saveAuthToken(token: string): void {\r\n StorageManager.setItem(authorization.encryptedAuthTokenName, token)\r\n }\r\n\r\n public saveRtlMode(value : string): void {\r\n StorageManager.setItem(rtlModeKeys.rtlModeEnabled, value)\r\n }\r\n\r\n public saveUserLanguage(value : string){\r\n StorageManager.setItem(userLanguage.userLanguage, value)\r\n }\r\n\r\n public getUserLanguage(){\r\n return StorageManager.getItem(userLanguage.userLanguage)\r\n }\r\n\r\n public saveMenuItems(values: string): void {\r\n StorageManager.setItem(menuItems.menuItems, values)\r\n }\r\n \r\n // public saveConnectionString(connectionString : string){\r\n // StorageManager.setItem(AppConsts.connectionString.connectionString, connectionString)\r\n // }\r\n\r\n // public getConnectionString(){\r\n // return StorageManager.getItem(AppConsts.connectionString.connectionString)\r\n // }\r\n\r\n public getAuthToken(): string | null {\r\n return StorageManager.getItem(authorization.encryptedAuthTokenName)\r\n }\r\n public getMenuItems(): string | null {\r\n return StorageManager.getItem(menuItems.menuItems)\r\n }\r\n\r\n public getRtlMode(){\r\n return StorageManager.getItem(rtlModeKeys.rtlModeEnabled)\r\n }\r\n\r\n public removeAuthToken(): void {\r\n StorageManager.removeItem(authorization.encryptedAuthTokenName);\r\n }\r\n\r\n public iHaveAuthToken(): boolean {\r\n if (this.getAuthToken()) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public isMyAuthTokenValid(): boolean {\r\n if (this.iHaveAuthToken()) {\r\n let myAuthToken = this.getAuthToken();\r\n return this.isAuthTokenValid(myAuthToken);\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n private isAuthTokenValid(token: string | null): boolean {\r\n if (token) {\r\n return !this._jwtHelper.isTokenExpired(token);\r\n }\r\n return false;\r\n }\r\n\r\n public parseAuthToken(token: string | null | undefined): AuthorizationToken | undefined{\r\n if(token){\r\n let parseToken : any = this._jwtHelper.decodeToken(token);\r\n return AuthorizationTokenMapper.ToAuthorizationToken(parseToken);\r\n }\r\n else{\r\n return undefined;\r\n }\r\n }\r\n\r\n public parseMyAuthToken(): AuthorizationToken {\r\n let myToken = this.getAuthToken();\r\n if(this.iHaveAuthToken() && myToken){\r\n let parseToken : any = this._jwtHelper.decodeToken(myToken);\r\n return AuthorizationTokenMapper.ToAuthorizationToken(parseToken);\r\n }\r\n else{\r\n throw new Error('no auth token found for current user !');\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { IdentityManagerService } from '../authorization/identity-manager.service';\r\n\r\nexport interface AppConfig {\r\n inputStyle: string;\r\n colorScheme: string;\r\n theme: string;\r\n ripple: boolean;\r\n menuMode: string;\r\n scale: number;\r\n}\r\n\r\ninterface LayoutState {\r\n staticMenuDesktopInactive: boolean;\r\n overlayMenuActive: boolean;\r\n profileSidebarVisible: boolean;\r\n configSidebarVisible: boolean;\r\n staticMenuMobileActive: boolean;\r\n menuHoverActive: boolean;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LayoutService {\r\n\r\n constructor(private _identityManagerService : IdentityManagerService){}\r\n \r\n config: AppConfig = {\r\n ripple: false,\r\n inputStyle: 'outlined',\r\n menuMode: 'static',\r\n colorScheme: 'light',\r\n theme: 'lara-light-indigo',\r\n scale: 14,\r\n };\r\n isLoading : boolean = false ;\r\n state: LayoutState = {\r\n staticMenuDesktopInactive: false,\r\n overlayMenuActive: false,\r\n profileSidebarVisible: false,\r\n configSidebarVisible: false,\r\n staticMenuMobileActive: false,\r\n menuHoverActive: false\r\n };\r\n\r\n private configUpdate = new Subject<AppConfig>();\r\n\r\n private overlayOpen = new Subject<any>();\r\n\r\n configUpdate$ = this.configUpdate.asObservable();\r\n\r\n overlayOpen$ = this.overlayOpen.asObservable();\r\n\r\n onMenuToggle() {\r\n if (this.isOverlay()) {\r\n this.state.overlayMenuActive = !this.state.overlayMenuActive;\r\n if (this.state.overlayMenuActive) {\r\n this.overlayOpen.next(null);\r\n }\r\n }\r\n\r\n if (this.isDesktop()) {\r\n this.state.staticMenuDesktopInactive = !this.state.staticMenuDesktopInactive;\r\n }\r\n else {\r\n this.state.staticMenuMobileActive = !this.state.staticMenuMobileActive;\r\n\r\n if (this.state.staticMenuMobileActive) {\r\n this.overlayOpen.next(null);\r\n }\r\n }\r\n }\r\n\r\n showProfileSidebar() {\r\n this.state.profileSidebarVisible = !this.state.profileSidebarVisible;\r\n if (this.state.profileSidebarVisible) {\r\n this.overlayOpen.next(null);\r\n }\r\n }\r\n\r\n showConfigSidebar() {\r\n this.state.configSidebarVisible = true;\r\n }\r\n\r\n isOverlay() {\r\n return this.config.menuMode === 'overlay';\r\n }\r\n\r\n isDesktop() {\r\n return window.innerWidth > 991;\r\n }\r\n\r\n isMobile() {\r\n return !this.isDesktop();\r\n }\r\n\r\n onConfigUpdate() {\r\n this.configUpdate.next(this.config);\r\n }\r\n\r\n private showFullMenuSubject = new Subject<boolean>();\r\n private enableRtlModeSubject = new Subject<boolean>();\r\n\r\n showFullMenuSubject$ = this.showFullMenuSubject.asObservable();\r\n enableRtlModeSubject$ = this.enableRtlModeSubject.asObservable()\r\n \r\n onShowFullMenu(isCollapsed: boolean) {\r\n this.showFullMenuSubject.next(isCollapsed);\r\n }\r\n\r\n enableRtlMode(){\r\n this.enableRtlModeSubject.next(true)\r\n }\r\n\r\n disableRtlMode(){\r\n this.enableRtlModeSubject.next(false)\r\n }\r\n\r\n isRtlModeEnabled(){\r\n let value = this._identityManagerService.getRtlMode()\r\n if(!value){\r\n return false\r\n }\r\n return JSON.parse(value)\r\n }\r\n\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { PrimeNGConfig } from 'primeng/api';\r\nimport { TsiInputBase } from '../../../tsi-base/tsi-input-base/tsi-input-base.component';\r\nimport { DateFormat, DatePickerDateFormat, DateTimeFormat, TimeZoneLocale } from '../../../consts/tsi-consts';\r\nimport { DateHelperService } from '../../../services/date-helper.service';\r\nimport { LayoutService } from '../../../services/application/app.layout.service';\r\nimport { primengDateLocalAr } from '../../../tsi-helpers/primeng-translate-config';\r\n\r\n\r\n@Component({\r\n selector: 'Tsi-Date-Picker',\r\n templateUrl: './tsi-date-picker.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n styleUrls: ['./tsi-date-picker.component.css']\r\n})\r\nexport class TsiDatePickerComponent extends TsiInputBase<Date | undefined> implements OnInit {\r\n\r\n @ViewChild('calendarRef') calendarRef!: any;\r\n\r\n //#region local properties\r\n private _value: Date | undefined;\r\n\r\n dateString: string | undefined;\r\n datePickerFormat: string = DatePickerDateFormat;\r\n //#endregion\r\n\r\n //#region inputs\r\n @Input() required?: boolean;\r\n @Input() showTime: boolean = false; \r\n @Input() showButtonBar: boolean = true; \r\n\r\n override get inputField(): Date | undefined {\r\n return this._value;\r\n }\r\n\r\n override set inputField(value: Date | undefined) {\r\n this._value = value ? this._createUtcDate(value) : undefined;\r\n this.dateString = this._toString(this.inputField);\r\n }\r\n //#endregion\r\n\r\n //#region outputs\r\n @Output() inputFieldChange = new EventEmitter<Date>();\r\n //#endregion\r\n\r\n //#region ctor\r\n /**\r\n *\r\n */\r\n constructor(private _datePipe: DatePipe\r\n , private _dateHelperService : DateHelperService,\r\n private primeNGConfig: PrimeNGConfig,\r\n private _layoutService : LayoutService) {\r\n super();\r\n\r\n }\r\n //#endregion\r\n\r\n //#region handle events\r\n onFocusOut(event: any) {\r\n this._handleDateChange();\r\n }\r\n\r\n onSelect(event: any) {\r\n this._handleDateChange();\r\n }\r\n\r\n //#endregion\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n this._layoutService.enableRtlModeSubject$.subscribe({\r\n next:(data)=>{\r\n if (data && data == true) {\r\n this._initArabicLocal()\r\n }\r\n }\r\n })\r\n\r\n if(this._layoutService.isRtlModeEnabled()){\r\n this._initArabicLocal()\r\n }\r\n }\r\n\r\n //#region private methods\r\n private _toString(value: Date | undefined): string | undefined {\r\n if(value){\r\n let dateString: string | undefined\r\n = this._datePipe.transform(value\r\n , this.showTime ? DateTimeFormat : DateFormat, TimeZoneLocale\r\n ) ?? undefined ;\r\n\r\n return dateString;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n _updateInputFieldFromStringDate(): void {\r\n let date: Date | undefined = this.dateString && this.dateString != ''\r\n ? this.showTime\r\n ? this._dateHelperService.parseDateTimeString(this.dateString)\r\n : this._dateHelperService.parseDateString(this.dateString)\r\n : undefined;\r\n this._value = date;\r\n }\r\n\r\n private _handleDateChange(): void {\r\n this._updateInputFieldFromStringDate();\r\n this.inputFieldChange.emit(this.inputField);\r\n }\r\n\r\n private _createUtcDate(value: any): Date | undefined{\r\n if(value instanceof Date){\r\n return value;\r\n }\r\n else{\r\n return this._dateHelperService.createUtcDateFromString(value);\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region add arabic region\r\n\r\n _initArabicLocal(){\r\n this.primeNGConfig.setTranslation(primengDateLocalAr)\r\n }\r\n\r\n //#endregion\r\n onFocusHandler(event: any) {\r\n this.calendarRef.overlayVisible = false;\r\n }\r\n}\r\n","<div class=\"flex\">\r\n <p-calendar #calendarRef\r\n [dataType]=\"'string'\"\r\n [appendTo]=\"'body'\"\r\n [disabled]=\"disabled\"\r\n [showIcon]=\"true\"\r\n [showButtonBar]=\"showButtonBar\"\r\n [dateFormat]=\"datePickerFormat\"\r\n class=\"{{myStyleClass}}\"\r\n styleClass=\"{{myStyleClass}} border-radius-7\"\r\n inputStyleClass=\"{{myStyleClass}} {{validationStatusCssClass}}\"\r\n [showTime]=\"showTime\"\r\n [showSeconds]=\"showTime\"\r\n [(ngModel)]=\"dateString\"\r\n (onBlur)=\"onFocusOut($event)\"\r\n (onSelect)=\"onSelect($event)\"\r\n (onFocus)=\"onFocusHandler($event)\"\r\n >\r\n </p-calendar>\r\n <Tsi-Bubble-Info [infoText]=\"infoText\"></Tsi-Bubble-Info>\r\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { TsiInputBase } from '../../../tsi-base/tsi-input-base/tsi-input-base.component';\r\n\r\n@Component({\r\n selector: 'Tsi-Decimal-Input',\r\n templateUrl: './tsi-decimal-input.component.html',\r\n styleUrls: ['./tsi-decimal-input.component.css']\r\n})\r\nexport class TsiDecimalInputComponent extends TsiInputBase<number | undefined> {\r\n //#region inputs\r\n // @Input() inputField?: number;\r\n @Input() numOfDecimal?: number = 2;\r\n @Input('class') class: any = {};\r\n //#endregion\r\n\r\n //#region outputs\r\n @Output() inputFieldChange: EventEmitter<number> = new EventEmitter<number>();\r\n //#endregion\r\n\r\n private isValueChanged : boolean = false\r\n\r\n valueChange(){\r\n this.isValueChanged = true\r\n }\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n // if (this.inputField === undefined || this.inputField === null) {\r\n // this.inputField = 0;\r\n // this.inputFieldChange.emit(this.inputField);\r\n // }\r\n }\r\n onChangeofOptions(): void {\r\n if(this.isValueChanged){\r\n this.inputFieldChange.emit(this.inputField);\r\n this.isValueChanged = false\r\n }\r\n }\r\n \r\n}\r\n","<div class=\"flex h-2rem\">\r\n <p-inputNumber autoSelect [disabled]=\"disabled\" [(ngModel)]=\"inputField\" (ngModelChange)=\"valueChange()\"\r\n name=\"{{inputName}}\" id=\"{{inputId}}\" [minFractionDigits]=\"numOfDecimal ?? 2\" [maxFractionDigits]=\"numOfDecimal ?? 2\"\r\n class=\"{{myStyleClass}}\"\r\n styleClass=\"{{myStyleClass}} border-radius-7\" \r\n inputStyleClass=\"{{myStyleClass}} {{validationStatusCssClass}}\" \r\n (onBlur)=\"onChangeofOptions()\">\r\n </p-inputNumber>\r\n <Tsi-Bubble-Info [infoText]=\"infoText\"></Tsi-Bubble-Info>\r\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { TsiInputBase } from '../../../tsi-base/tsi-input-base/tsi-input-base.component';\r\n\r\n@Component({\r\n selector: 'Tsi-Integer',\r\n templateUrl: './tsi-integer.component.html',\r\n styleUrls: ['./tsi-integer.component.css']\r\n})\r\nexport class TsiIntegerComponent extends TsiInputBase<number | undefined | string> {\r\n //#region inputs\r\n // @Input() inputField?: number | undefined | string;\r\n @Input('class') class: any = {};\r\n @Input() minValue?: number;\r\n @Input() maxValue?: number;\r\n @Input() delayChangeTime: number = 1000\r\n myFormControl: FormControl = new FormControl();\r\n //#endregion\r\n\r\n //#region outputs\r\n @Output() newItemEvent = new EventEmitter<any>();\r\n @Output() inputFieldChange = new EventEmitter<any>();\r\n //#endregion\r\n\r\n infinityRef = Infinity\r\n private isValueChanged : boolean = false\r\n\r\n valueChanged(){\r\n this.isValueChanged = true\r\n }\r\n\r\n onChangeofOptions() {\r\n if(this.isValueChanged){\r\n this.newItemEvent.emit(this.inputField);\r\n this.inputFieldChange.emit(this.inputField);\r\n this.isValueChanged = false\r\n }\r\n }\r\n}\r\n","<div class=\"flex h-2rem\">\r\n <p-inputNumber autoSelect class=\"{{class}} {{myStyleClass}}\"\r\n inputStyleClass=\"{{class}} {{validationStatusCssClass}}\" styleClass=\"border-radius-7\"\r\n [disabled]=\"disabled\" [(ngModel)]=\"inputField\" name=\"{{inputName}}\"\r\n id=\"{{inputId}}\"\r\n (onBlur)=\"onChangeofOptions()\"\r\n (ngModelChange)=\"valueChanged()\"\r\n [max]=\"maxValue ?? infinityRef\" [maxlength]=\"maxLength ?? infinityRef\">\r\n </p-inputNumber>\r\n <Tsi-Bubble-Info [infoText]=\"infoText\"></Tsi-Bubble-Info>\r\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { TsiInputBase } from '../../../tsi-base/tsi-input-base/tsi-input-base.component';\r\n\r\n@Component({\r\n selector: 'Tsi-Rate-Input',\r\n templateUrl: './tsi-rate-input.component.html',\r\n styleUrls: ['./tsi-rate-input.component.css']\r\n})\r\nexport class TsiRateInputComponent extends TsiInputBase<number | undefined> implements OnInit {\r\n //#region inputs\r\n // @Input() inputField?: number;\r\n @Input() required?: boolean;\r\n\r\n // isFraction = true : 2% est enregistré 0.02\r\n\r\n // isFraction = false : 2% est enregistré 2\r\n @Input() isFraction?: boolean = false;\r\n @Input() numOfDecimal?: number = 2;\r\n //#endregion\r\n\r\n //#region outputs\r\n @Output() newItemEvent = new EventEmitter<number>();\r\n @Output() inputFieldChange = new EventEmitter<number>();\r\n //#endregion\r\n\r\n private isValueChanged: boolean = false\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n // if (this.inputField === undefined || this.inputField === null) {\r\n // this.inputField = 0;\r\n // this.inputFieldChange.emit(this.inputField);\r\n // }\r\n }\r\n\r\n valueChanged() {\r\n this.isValueChanged = true\r\n }\r\n\r\n onChangeofOptions() {\r\n if (this.isValueChanged) {\r\n this.newItemEvent.emit(Number(this.inputField));\r\n this.inputFieldChange.emit(this.inputField);\r\n this.isValueChanged = false\r\n }\r\n }\r\n}\r\n","<div class=\"flex h-2rem\">\r\n <p-inputNumber autoSelect class=\"{{myStyleClass}}\" \r\n styleClass=\"{{myStyleClass}} border-radius-7\" \r\n inputStyleClass=\"{{myStyleClass}} {{validationStatusCssClass}}\"\r\n [disabled]=\"disabled\" [(ngModel)]=\"inputField\" \r\n (ngModelChange)=\"valueChanged()\"\r\n [required]=\"isRequired\"\r\n (onBlur)=\"onChangeofOptions()\" name=\"{{inputName}}\"\r\n id=\"{{inputId}}\" suffix=\"%\" [minFractionDigits]=\"numOfDecimal ?? 0\" [maxFractionDigits]=\"numOfDecimal ?? 0\">\r\n </p-inputNumber>\r\n <Tsi-Bubble-Info [infoText]=\"infoText\"></Tsi-Bubble-Info>\r\n</div>","import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { TsiInputBase } from '../../../tsi-base/tsi-input-base/tsi-input-base.component';\r\nimport { AutoComplete } from '../../../enums';\r\nimport { LocalizePipe } from '../../../pipes/localize.pipe';\r\n@Component({\r\n selector: 'Tsi-Text-Box',\r\n templateUrl: './Tsi-Text-Box.component.html',\r\n styleUrls: ['./Tsi-Text-Box.component.scss'],\r\n})\r\nexport class TsiTextBoxComponent extends TsiInputBase<string | undefined> {\r\n //#region inputs\r\n // @Input() inputField?: string;\r\n @Input() textBoxType: string = 'text';\r\n @Input() autocomplete?: AutoComplete;\r\n myFormControl: FormControl = new FormControl();\r\n //#endregion\r\n\r\n //#region outputs\r\n @Output() newItemEvent = new EventEmitter<string>();\r\n @Output() inputFieldChange = new EventEmitter<string>();\r\n //#endregion\r\n\r\n requiredMessage?: string\r\n maxLengthMessage?: string\r\n\r\n constructor(private _localizePipe: LocalizePipe, protected override cdRef?: ChangeDetectorRef) {\r\n super(cdRef)\r\n this.requiredMessage = _localizePipe.transform(\"tsi_form_base_required_field\")\r\n this.maxLengthMessage = _localizePipe.transform(\"tsi_form_base_max_length_message\")\r\n }\r\n\r\n onChangeofOptions(input: string) {\r\n this.inputField = input;\r\n this.newItemEvent.emit(this.inputField);\r\n this.inputFieldChange.emit(this.inputField);\r\n }\r\n}","<div class=\"flex h-2rem flex-row gap-2 align-items-center\">\r\n <input autoSelect class=\"{{myStyleClass}} border-radius-7 {{validationStatusCssClass}}\" pInputText\r\n pTooltip=\"{{ isRequired ? requiredMessage + ' - ' : '' }}{{ maxLength ? maxLength + ' ' + maxLengthMessage : '' }}\" tooltipPosition=\"top\"\r\n [type]=\"textBoxType\" name=\"{{inputName}}\" id=\"{{inputName}}\" [(ngModel)]=\"inputField\"\r\n [required]=\"isRequired\" autocomplete=\"{{autocomplete}}\" [disabled]=\"disabled\"\r\n (ngModelChange)=\"onChangeofOptions($event)\" placeholder=\"{{placeHolder}}\"/>\r\n\r\n <span *ngIf=\"isInputNameNotFound\" (click)=\"op.toggle($event)\"\r\n class=\"pi pi-exclamation-circle text-red-500 cursor-pointer tsi-input-alert-container\"> </span>\r\n\r\n <p-overlayPanel #op>\r\n <ng-template pTemplate>\r\n <div class=\"d-flex flex-row gap-2\">\r\n <span> Input name : </span>\r\n <span class=\"text-red-500\"> {{inputName}} </span>\r\n </div>\r\n </ng-template>\r\n </p-overlayPanel>\r\n <!--<input class=\"{{myStyleClass}} border-radius-7\" styleClass=\"border-radius-7\" pInputText type=\"text\"\r\n name=\"{{inputName}}\" id=\"{{inputName}}\" [(ngModel)]=\"inputField\" [required]=\"required\"\r\n [disabled]=\"disabled\" (ngModelChange)=\"onChangeofOptions($event)\" [formControl]=\"myFormControl\" />-->\r\n <Tsi-Bubble-Info [infoText]=\"infoText\"></Tsi-Bubble-Info>\r\n</div>\r\n\r\n<div *ngIf=\"myFormControl.invalid && (myFormControl.dirty || myFormControl.touched)\">\r\n <div *ngIf=\"myFormControl.errors && myFormControl.errors['required']\" [ngClass]=\"{'error-message': true}\">\r\n This field is required.\r\n </div>\r\n <div *ngIf=\"myFormControl.errors && myFormControl.errors['maxlength']\" [ngClass]=\"{'error-message': true}\">\r\n Maximum length exceeded.\r\n </div>\r\n</div>","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable} from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FormulaService {\r\n\r\n constructor(private _httpClient: HttpClient) { }\r\n \r\n public getFormulaSuggestions(endpoint : string, term : string): Observable<any> {\r\n return this._httpClient.get<any>(`${endpoint}/${term}`);\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { TsiInputBase } from '../../../tsi-base/tsi-input-base/tsi-input-base.component';\r\nimport { FormulaService } from '../../../services/formula.service';\r\n\r\n@Component({\r\n selector: 'Tsi-Formula-Box',\r\n templateUrl: './Tsi-Formula-Box.component.html',\r\n styleUrls: ['./Tsi-Formula-Box.component.scss'],\r\n})\r\nexport class TsiFormulaBoxComponent extends TsiInputBase {\r\n @Input() value: string = '';\r\n @Input() endPoint: string = '';\r\n @Output() valueChange = new EventEmitter<string>();\r\n\r\n suggestions: string[] = [];\r\n\r\n constructor(private _formulaService: FormulaService, public override cdRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n onInputChange(val: string) {\r\n this.value = val;\r\n this.valueChange.emit(this.value);\r\n \r\n // Détecter `TOTAL(` suivi de tout ce qui n'est pas une parenthèse fermante\r\n const match = /TOTAL\\(([^)]*)$/i.exec(val);\r\n if (match) {\r\n const term = match[1];\r\n if (term !== undefined && term.length >= 0) {\r\n this._formulaService.getFormulaSuggestions(this.endPoint, term).subscribe(res => {\r\n this.suggestions = res;\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n } else {\r\n this.suggestions = [];\r\n this.cdRef.detectChanges();\r\n }\r\n }\r\n onSuggestionSelect(s: string) {\r\n this.value = this.value.replace(/TOTAL\\([^\\)]*$/, `TOTAL(${s}`);\r\n this.valueChange.emit(this.value);\r\n this.suggestions = [];\r\n }\r\n}\r\n","<div class=\"formula-wrapper {{validationStatusCssClass}}\" style=\"position: relative; z-index: 9999;\">\r\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"value\" (ngModelChange)=\"onInputChange($event)\"\r\n placeholder=\"\" maxlength=\"{{maxLength}}\"/>\r\n\r\n <ul *ngIf=\"suggestions.length > 0\">\r\n <li *ngFor=\"let s of suggestions\" (click)=\"onSuggestionSelect(s)\">\r\n {{ s }}\r\n </li>\r\n </ul>\r\n</div>","import { DatePipe } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { TsiInputBase } from '../../../tsi-base/tsi-input-base/tsi-input-base.component';\r\nimport { TimeOnly } from '../../../types/time-only';\r\nimport { DatePickerDateFormat } from '../../../consts/tsi-consts';\r\nimport { DateHelperService } from '../../../services/date-helper.service';\r\n\r\n@Component({\r\n selector: 'tsi-time-picker',\r\n templateUrl: './tsi-time-picker.component.html',\r\n styleUrls: ['./tsi-time-picker.component.scss']\r\n})\r\nexport class TsiTimePickerComponent extends TsiInputBase<TimeOnly | Date | string | undefined>{\r\n //#region local properties\r\n private _value: TimeOnly | Date | string | undefined;\r\n\r\n timeOnlyString: string | undefined;\r\n datePickerFormat: string = DatePickerDateFormat;\r\n //#endregion\r\n\r\n //#region inputs\r\n\r\n\r\n // @Input() override get inputField(): TimeOnly | Date | string | undefined {\r\n // return this._inputField;\r\n // }\r\n\r\n override set inputField(value: TimeOnly | Date | string | undefined) {\r\n this._value = value;\r\n if(value instanceof(Date)){\r\n this.timeOnlyString = this._dateHelperService.extractTimeFromDate(value)\r\n }\r\n else {\r\n this.timeOnlyString = value?.toString();\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region outputs\r\n @Output() inputFieldChange = new EventEmitter<TimeOnly | Date | undefined | string>();\r\n //#endregion\r\n\r\n //#region ctor\r\n /**\r\n *\r\n */\r\n constructor(private _dateHelperService : DateHelperService) {\r\n super();\r\n\r\n }\r\n\r\n //#endregion\r\n\r\n //#region handle events\r\n onFocusOut(event: any) {\r\n this._handleDateChange();\r\n }\r\n\r\n onSelect(event: any) {\r\n this._handleDateChange();\r\n }\r\n\r\n //#endregion\r\n\r\n //#region private methods\r\n _updateInputFieldFromStringDate(): void {\r\n let timeOnly: TimeOnly | undefined = this.timeOnlyString && this.timeOnlyString != ''\r\n ? this._dateHelperService.parseTimeString(this.timeOnlyString) : undefined;\r\n this._value = timeOnly;\r\n }\r\n\r\n private _handleDateChange(): void {\r\n this._updateInputFieldFromStringDate();\r\n this.inputFieldChange.emit(this.inputField);\r\n }\r\n //#endregion\r\n}\r\n","<div class=\"flex\">\r\n <p-calendar [dataType]=\"'string'\"\r\n [appendTo]=\"'body'\"\r\n [disabled]=\"disabled\"\r\n [showIcon]=\"true\"\r\n [dateFormat]=\"datePickerFormat\"\r\n class=\"{{myStyleClass}} {{validationStatusCssClass}}\"\r\n styleClass=\"{{myStyleClass}}\"\r\n inputStyleClass=\"{{myStyleClass}}\"\r\n [showTime]=\"true\"\r\n [showSeconds]=\"true\"\r\n [timeOnly]=\"true\"\r\n [(ngModel)]=\"timeOnlyString\"\r\n (onBlur)=\"onFocusOut($event)\"\r\n (onSelect)=\"onSelect($event)\">\r\n </p-calendar>\r\n <Tsi-Bubble-Info [infoText]=\"infoText\"></Tsi-Bubble-Info>\r\n</div>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'Tsi-Checkbox-Display',\r\n templateUrl: './tsi-checkbox-display.component.html',\r\n styleUrls: ['./tsi-checkbox-display.component.css']\r\n})\r\nexport class TsiCheckboxDisplayComponent {\r\n\r\n //#region inputs\r\n @Input() inputData?: boolean= false;\r\n //#endregion\r\n}\r\n","<span class=\"justify-content-center\">\r\n <div *ngIf=\"inputData == true; else fElseBlock\">\r\n <i class=\"pi pi-check-square\"></i>\r\n </div>\r\n <ng-template #fElseBlock>\r\n <ng-container>\r\n <i class=\"pi pi-stop\"></i>\r\n </ng-container>\r\n </ng-template>\r\n\r\n \r\n \r\n</span>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'Tsi-Currency-Other-Display',\r\n templateUrl: './tsi-currency-other-display.component.html',\r\n styleUrls: ['./tsi-currency-other-display.component.css']\r\n})\r\nexport class TsiCurrencyOtherDisplayComponent{\r\n\r\n \r\n//#region inputs\r\n@Input() inputData?: number;\r\n@Input() currency ?: string;\r\n//#endregion\r\n\r\n}\r\n","\r\n<span class=\"row justify-content-end p-2\">\r\n {{inputData | currency : currency | TsiDecimalPipe}} \r\n</span>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { locals } from '../../../consts/locals.const';\r\nimport { DefaultSocieteDevise } from '../../../consts/tsi-consts';\r\nimport { LayoutService } from '../../../services/application/app.layout.service';\r\nimport { LocalizePipe } from '../../../pipes/localize.pipe';\r\nimport { AppSettingsService } from '../../../services/settings/app-settings.service';\r\n\r\n@Component({\r\n selector: 'Tsi-Currency-Societe-Display',\r\n templateUrl: './tsi-currency-societe-display.component.html',\r\n styleUrls: ['./tsi-currency-societe-display.component.css'],\r\n})\r\nexport class TsiCurrencySocieteDisplayComponent implements OnInit {\r\n //#region inputs\r\n @Input() inputData?: number;\r\n //#endregion\r\n\r\n locale: string = locals.frenchLocal;\r\n\r\n currency: string = DefaultSocieteDevise.codeDevise;\r\n currencyTraductionKey: string = DefaultSocieteDevise.codeDevise;\r\n\r\n constructor(\r\n private localizationPipe: LocalizePipe,\r\n private _layoutService: LayoutService,\r\n private appSettingsService: AppSettingsService\r\n ) {\r\n this.currency =\r\n appSettingsService.appSettings.deviseSociete.codeDevise ??\r\n DefaultSocieteDevise.codeDevise;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.currency = this.localizationPipe.transform(this.currency);\r\n\r\n this._layoutService.enableRtlModeSubject$.subscribe({\r\n next: (data) => {\r\n if (data && data == true) {\r\n this.changeLocal(locals.arabicLocal);\r\n } else {\r\n this.changeLocal(locals.frenchLocal);\r\n }\r\n },\r\n });\r\n\r\n if (this._layoutService.isRtlModeEnabled()) {\r\n this.changeLocal(locals.arabicLocal);\r\n }\r\n }\r\n\r\n changeLocal(newLocalValue: string) {\r\n this.locale = newLocalValue;\r\n this.currency = this.localizationPipe.transform(this.currencyTraductionKey);\r\n\r\n // TODO @MedAli & @Hassen : fix app performance\r\n // this.translateService.traductionFileUpdatedSubject$.subscribe({\r\n // next : (data)=>{\r\n // this.currency = this.localizationPipe.transform(this.currencyTraductionKey)\r\n // }\r\n // })\r\n }\r\n}\r\n","\r\n<span class=\"row flex justify-content-end p-2\">\r\n {{inputData | tsiCurrency : currency : 'code' : '' : locale}}\r\n</span>\r\n ","import { Component, Input } from '@angular/core';\r\nimport { DateFormatDisplay, DateTimeFormatDisplay } from '../../../consts/tsi-consts';\r\n\r\n@Component({\r\n selector: 'Tsi-Date-Display',\r\n templateUrl: './tsi-date-display.component.html',\r\n styleUrls: ['./tsi-date-display.component.scss'],\r\n})\r\nexport class TsiDateDisplayComponent {\r\n \r\n @Input() inputData?: string;\r\n formatDate = DateFormatDisplay;\r\n _showTime: boolean | undefined;\r\n\r\n @Input() get showTime() {\r\n return this._showTime;\r\n }\r\n\r\n set showTime(value: boolean | undefined) {\r\n this._showTime = value;\r\n this.formatDate = this.showTime ? DateTimeFormatDisplay : DateFormatDisplay;\r\n }\r\n}\r\n","\r\n<span class=\"row flex justify-content-end p-2\">\r\n {{inputData | date : formatDate }} \r\n</span>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'Tsi-Decimal-Display',\r\n templateUrl: './tsi-decimal-display.component.html',\r\n styleUrls: ['./tsi-decimal-display.component.css']\r\n})\r\nexport class TsiDecimalDisplayComponent { \r\n//#region inputs\r\n@Input() inputData?: number;\r\n@Input() formatDecimal?: string;\r\n@Input() numOfDecimal?: number = 2;\r\n//#endregion\r\n\r\n ngOnInit(): void {\r\n this.formatDecimal = `1.${this.numOfDecimal ?? 2}-${this.numOfDecimal ?? 2}`;\r\n }\r\n}\r\n","<span class=\"row flex justify-content-end p-2\">\r\n {{inputData | number:formatDecimal}} \r\n</span>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'Tsi-Integer-Display',\r\n templateUrl: './tsi-integer-display.component.html',\r\n styleUrls: ['./tsi-integer-display.component.css']\r\n})\r\nexport class TsiIntegerDisplayComponent {\r\n //#region inputs\r\n @Input() inputData?: number;\r\n //#endregion\r\n}\r\n","<span class=\"row flex justify-content-end p-2\">\r\n {{inputData }} \r\n</span>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'Tsi-Rate-Display',\r\n templateUrl: './tsi-rate-display.component.html',\r\n styleUrls: ['./tsi-rate-display.component.css']\r\n})\r\nexport class TsiRateDisplayComponent {\r\n //#region inputs\r\n @Input() isFraction: boolean = true;\r\n @Input() inputData?: number;\r\n \r\n @Input() numOfDecimal?: number = 2;\r\n //#endregion\r\n \r\n getToFraction(): number {\r\n return Number( ((this.inputData != null && this.inputData != undefined) ? this.inputData : 0) * 0.01)\r\n }\r\n\r\n getFormat(): string{\r\n return `0.${this.numOfDecimal}`;\r\n }\r\n}\r\n","<span class=\"row flex justify-content-end p-2\">\r\n <div *ngIf=\"isFraction == true; else fElseBlock\">\r\n <span>{{ inputData | percent }}</span>\r\n </div>\r\n <ng-template #fElseBlock>\r\n <ng-container>\r\n <span>{{ getToFraction() | percent : getFormat() }}</span>\r\n </ng-container>\r\n </ng-template>\r\n</span>","import { Component, Input } from '@angular/core';\r\nimport { TimeFormat } from '../../../consts/tsi-consts';\r\n\r\n@Component({\r\n selector: 'tsi-time-display',\r\n templateUrl: './tsi-time-display.component.html',\r\n styleUrls: ['./tsi-time-display.component.scss']\r\n})\r\nexport class TsiTimeDisplayComponent {\r\n\r\n //#region inputs\r\n @Input() inputData?: string;\r\n formatTime = TimeFormat;\r\n //#endregion\r\n\r\n}\r\n","\r\n<span class=\"row flex justify-content-end p-2\">\r\n {{inputData }} \r\n</span>\r\n","import { Component, EventEmitter, inject, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { SortEvent, TableState } from 'primeng/api';\r\nimport { Table, TableRowSelectEvent, TableRowUnSelectEvent } from 'primeng/table';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { GridSelectionMode, InputTypes, ModalSizeEnum, ButtonType, TooltipPosition} from '../../../enums';\r\nimport { CellChangedResult, GridColumn, IGridConfiguration, RowAddedResult } from '../../../interfaces';\r\nimport { rtlModeKeys } from '../../../consts/locals.const';\r\nimport { LocalizePipe } from '../../../pipes/localize.pipe';\r\nimport { EntityValidationsService } from '../../../services/validation/entity-validations.service';\r\n\r\n@Component({\r\n selector: 'Tsi-Generic-Editable-Grid',\r\n templateUrl: './editable-grid.component.html',\r\n styleUrls: ['./editable-grid.component.scss']\r\n})\r\nexport class EditableGridComponent implements OnInit, OnDestroy {\r\n //#region local vars\r\n //#region private local vars\r\n private saveEventSubscription?: Subscription;\r\n private _isAutoRowNumber: boolean = false;\r\n private _autoRowNumberField: string = '';\r\n private _currentRowNumber: number = 0;\r\n tooltipPosition = TooltipPosition;\r\n isAr: boolean = false;\r\n private _gridData: Array<any> = [];\r\n private _equatableFields: Array<string> | undefined;\r\n private _sumAtFusionFields: Array<string> | undefined;\r\n private _equalityCheckOn: boolean = false;\r\n multipleGridSelectionMode = GridSelectionMode.Multiple;\r\n //#endregion\r\n inputTypes = InputTypes;\r\n modalSize = ModalSizeEnum.ExtraLarge;\r\n @ViewChild(\"editableTable\") editableTable?: Table\r\n\r\n buttonType = ButtonType;\r\n\r\n @Input() selectedItems: any = [];\r\n selectedItem: any;\r\n\r\n //#endregion\r\n\r\n //#region Inputs\r\n @Input('configuration') configuration?: IGridConfiguration;\r\n @Input('key') key: string = 'uid';\r\n @Input() items: Array<any> = [];\r\n @Input('events') saveEvent?: Observable<void>;\r\n @Input() showAddButton: boolean = true;//TO DO Save Button Option\r\n @Input() showDeleteButton: boolean = true;//TO DO Save Button Option\r\n @Input() showEditButton: boolean = true;//TO DO Save Button Option\r\n @Input() showRowSummary: boolean = false;//TO DO Save Button Option\r\n\r\n\r\n @Input() scrollHeight: string = '500px';\r\n @Input() rowPerPage: number[] = [5, 10, 20];\r\n // @Input() isPaginator: boolean = true;\r\n @Input() pageSize : number = 5\r\n\r\n /**\r\n *\r\n */\r\n selectedColumns: Array<GridColumn> = [];\r\n private _columns: Array<GridColumn> = [];\r\n private _tempColumns : Array<GridColumn> = [];\r\n get columns(): Array<GridColumn> {\r\n return this._columns;\r\n }\r\n\r\n @Input() set columns(value: Array<GridColumn>) {\r\n value.forEach(el => el.translatedHeader = this._localizePipe.transform(el.header ?? \"\"));\r\n this._columns = value\r\n if (this.selectedColumns.length == 0) {\r\n this.selectedColumns = this._columns\r\n }\r\n }\r\n @Input() set gridData(data: Array<any>) {\r\n this._gridData = data;\r\n this._initCurrentRowNumberAndOrderByRowNumber();\r\n }\r\n get gridData() { return this._gridData; }\r\n\r\n @Input() isTableLoading?: boolean;\r\n\r\n\r\n @Input() parent: any;\r\n @Input() events?: Observable<void>;//TO DO Save Button Option\r\n\r\n @Input() showSaveButton: boolean = true;//TO DO Save Button Option\r\n @Input() showActionColumn: boolean = true;//TO DO Save Button Option\r\n\r\n\r\n @Input() enableRowDisabling: boolean = false;\r\n\r\n @Input() rowSummaryConfig: Array<string> = [];\r\n @Input() showHaveSumary?: boolean = false;\r\n @Input() showRowSumary?: boolean = false;\r\n\r\n /**selection */\r\n @Input() selectKeyOnly: boolean = true;\r\n @Input() selectionMode: GridSelectionMode | any = GridSelectionMode.None;\r\n @Input() showConsultButton: boolean = false;\r\n @Input() disabled: boolean = false;\r\n\r\n private _editableGridBusinessClass: string = \"\";\r\n get editableGridBusinessClass() {\r\n return this._editableGridBusinessClass;\r\n }\r\n @Input() set editableGridBusinessClass(className : string) {\r\n this._editableGridBusinessClass = className;\r\n this._entityValidationsService.getEntityValidations(this.editableGridBusinessClass).subscribe({\r\n next: (entityValidations) => {\r\n entityValidations.forEach(el => {\r\n let col = this.columns.find(c => c.labelField?.toLocaleLowerCase() === el.columnName.toLocaleLowerCase() || \r\n c.field?.toLocaleLowerCase() === el.columnName.toLocaleLowerCase());\r\n if(col){\r\n col.validationStatusCssClass = el.isNullable !== true ? 'border-red-500 border-3' : '';\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n\r\n\r\n /**order */\r\n @Input() orderColumn: string = 'uid';\r\n\r\n @Input() deleteLineButtonDisabled!: (item: any) => any\r\n\r\n //#endregion\r\n\r\n //#region Outputs\r\n @Output() itemsSave: EventEmitter<any[]> = new EventEmitter<any[]>();\r\n /**\r\n *\r\n */\r\n\r\n\r\n @Output() refreshEventEmitter: EventEmitter<any> = new EventEmitter();\r\n\r\n //@Output() actionEventEmitter: EventEmitter<GridActionEmitResult> = new EventEmitter<GridActionEmitResult>();\r\n\r\n @Output() saveDataEventEmitter: EventEmitter<any> = new EventEmitter();\r\n\r\n @Output() rowChangedEventEmitter: EventEmitter<any> = new EventEmitter();\r\n\r\n @Output() selectedRowEventEmitter: EventEmitter<any> = new EventEmitter();\r\n\r\n @Output() addedRowEventEmitter: EventEmitter<RowAddedResult> = new EventEmitter<RowAddedResult>()\r\n\r\n @Output() focusOutEventEmitter = new EventEmitter<string>();\r\n\r\n @Output() cellChanged: EventEmitter<CellChangedResult> = new EventEmitter<CellChangedResult>();\r\n\r\n @Output() rowDeletedEventEmitter = new EventEmitter<any>();\r\n\r\n @Output() selectedItemsChange: EventEmitter<Array<any>> = new EventEmitter<Array<any>>();\r\n\r\n @Output() onRowSelect: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() focusOutRow: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() onConsultClicked: EventEmitter<any> = new EventEmitter<any>();\r\n //#endregion\r\n\r\n @ViewChild(\"dt\", { static: false }) public dt: Table | undefined;\r\n\r\n @Input() id?: string;\r\n\r\n private _entityValidationsService = inject(EntityValidationsService);\r\n \r\n\r\n constructor(private _localizePipe: LocalizePipe) {}\r\n\r\n ngOnInit() {\r\n this._initSaveEventSubscription();\r\n this._verifyGridRequirements();\r\n this._initCurrentRowNumberAndOrderByRowNumber();\r\n this._initEquatableFields();\r\n this._initSumAtFusionFields();\r\n let langue = localStorage.getItem(rtlModeKeys.rtlModeEnabled);\r\n if (langue && JSON.parse(langue)) {\r\n this.isAr = true\r\n }\r\n else {\r\n this.isAr = false\r\n }\r\n if (!this.selectedColumns || this.selectedColumns.length == 0) {\r\n this.selectedColumns = this.columns\r\n }\r\n this._tempColumns = this.columns;\r\n }\r\n\r\n findColumnByKey(key: any) {\r\n if (this.columns) {\r\n for (let col of this.columns) {\r\n if (col.header === key || col.field === key) return col;\r\n else continue;\r\n }\r\n }\r\n return null\r\n }\r\n\r\n\r\n public restoreState(configuration: string) {\r\n let state: TableState = JSON.parse(configuration)\r\n if (this.dt) {\r\n if (this.dt) {\r\n\r\n this.dt.columnWidthsState = state.columnWidths;\r\n this.dt.tableWidthState = state.tableWidth;\r\n\r\n let columnOrder = state.columnOrder;\r\n\r\n if (columnOrder) {\r\n let reorderedColumns = this.getReorderedColumns(columnOrder);\r\n this.selectedColumns = reorderedColumns;\r\n this.columns = reorderedColumns;\r\n }\r\n }\r\n }\r\n }\r\n\r\n getReorderedColumns(columnOrder: string[]): any[] {\r\n let reorderedColumns: any[] = [];\r\n\r\n columnOrder.map((key) => {\r\n let col = this.findColumnByKey(key);\r\n if (col) {\r\n reorderedColumns.push(col);\r\n }\r\n });\r\n\r\n return reorderedColumns;\r\n }\r\n\r\n resetSelectedColumns(configuration: string) {\r\n let state: TableState = JSON.parse(configuration)\r\n if (this.dt) {\r\n\r\n this.dt.columnWidthsState = state.columnWidths;\r\n this.dt.tableWidthState = state.tableWidth;\r\n\r\n let columnOrder = state.columnOrder;\r\n\r\n if (columnOrder) {\r\n let reorderedColumns = this.getReorderedColumns(columnOrder);\r\n this.selectedColumns = reorderedColumns;\r\n this.columns = this._tempColumns\r\n }\r\n }\r\n }\r\n\r\n getState() {\r\n let state: TableState = {};\r\n\r\n if (!this.dt) {\r\n return\r\n }\r\n\r\n if (this.dt.resizableColumns) {\r\n this.dt.saveColumnWidths(state);\r\n }\r\n\r\n this.dt.saveColumnOrder(state);\r\n\r\n return state\r\n }\r\n\r\n isDeleteButtonDisabled(item: any) {\r\n if (this.deleteLineButtonDisabled != undefined) {\r\n return this.deleteLineButtonDisabled(item)\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.saveEventSubscription?.unsubscribe();\r\n }\r\n\r\n inputChanged(col: GridColumn) {\r\n if (col.watchForChanges === true) {\r\n this.saveDataEventEmitter.emit(this.gridData);\r\n }\r\n }\r\n\r\n saveItems() {\r\n this.itemsSave.emit(this.gridData);\r\n this.saveDataEventEmitter.emit(this.gridData);\r\n }\r\n\r\n addRow(): void {\r\n if (!this.gridData) {\r\n this.gridData = [];\r\n }\r\n let newRow = this._initRow()\r\n this.gridData.push(newRow)\r\n let rowAddedResult: RowAddedResult = {\r\n rowNumber: this.gridData.length - 1,\r\n data: newRow\r\n }\r\n if (this.editableTable?.sortField && this.editableTable.sortOrder) {\r\n this.editableTable?.value.push(newRow)\r\n }\r\n this.refreshSort()\r\n this.addedRowEventEmitter.emit(rowAddedResult)\r\n }\r\n\r\n refreshSort() {\r\n if (this.editableTable?.sortField) {\r\n const sortField = this.editableTable.sortField;\r\n const sortOrder = this.editableTable.sortOrder;\r\n\r\n this.gridData.sort((a, b) => {\r\n const valueA = a[sortField];\r\n const valueB = b[sortField];\r\n let result = 0;\r\n\r\n if (valueA < valueB) result = -1;\r\n else if (valueA > valueB) result = 1;\r\n\r\n return result * sortOrder;\r\n });\r\n\r\n this.gridData = [...this.gridData];\r\n }\r\n }\r\n\r\n addRowOnLastElement(item: any, col: GridColumn) {\r\n this._verifyAddRowOnLastElementRequirements();\r\n let itemPosition = this.gridData.indexOf(item);\r\n let colPosition = this.columns.indexOf(col);\r\n\r\n if (itemPosition == this.gridData.length - 1 && colPosition == this.columns.length - 1) {\r\n this.addRow();\r\n }\r\n }\r\n\r\n delete(item: any) {\r\n if (this.editableTable?.sortField && this.editableTable.sortMode) {\r\n const index = this.editableTable.value.indexOf(item, 0);\r\n if (index > -1) {\r\n this.editableTable.value.splice(index, 1)\r\n }\r\n }\r\n const index = this.gridData.indexOf(item, 0);\r\n if (index > -1) {\r\n this.gridData.splice(index, 1);\r\n this._onDeleteRow(item);\r\n this.rowDeletedEventEmitter.emit(this.gridData)\r\n }\r\n this.refreshSort()\r\n }\r\n\r\n getSummary(col: GridColumn): number {\r\n if (col.haveSummary == true) {\r\n\r\n let sum = 0;\r\n this.gridData.forEach((row: any) => {\r\n sum += row[col.field];\r\n })\r\n return sum;\r\n }\r\n return 0;\r\n }\r\n\r\n rowSummary(row: any): number {\r\n let sum = 0;\r\n this.columns.forEach(col => {\r\n if (col.rowSummary == true) {\r\n sum += row[col.field];\r\n }\r\n });\r\n return sum;\r\n\r\n }\r\n\r\n\r\n onRowSelected(event: TableRowSelectEvent) {\r\n this.selectedItem = event.data\r\n if (this.selectKeyOnly == true) {\r\n let selectionKey: any;\r\n selectionKey = this.selectedItem[this.key];\r\n this.onRowSelect.emit(selectionKey);\r\n }\r\n else {\r\n this.onRowSelect.emit(this.selectedItems);\r\n }\r\n }\r\n\r\n onRowUnselect(event: TableRowUnSelectEvent) {\r\n this.selectedItem = undefined\r\n }\r\n\r\n selectionChange(event: any) {\r\n let selection: any[] = [];\r\n if (this.selectionMode == GridSelectionMode.Multiple) {\r\n if (this.selectedItems) {\r\n if (this.selectKeyOnly) {\r\n let keys: Array<any> = [];\r\n this.selectedItems.forEach((v: any) => { keys.push(v[this.key]) });\r\n selection = keys;\r\n }\r\n else {\r\n selection = this.selectedItems;\r\n }\r\n }\r\n else {\r\n selection = [];\r\n }\r\n }\r\n else if (this.selectionMode == GridSelectionMode.Single) {\r\n if (this.selectKeyOnly) {\r\n selection = this.selectedItems ? [this.selectedItems[this.key]] : [];\r\n }\r\n else {\r\n selection = this.selectedItems ? [this.selectedItems] : [];\r\n }\r\n }\r\n if (this.selectionMode != GridSelectionMode.None) {\r\n this.selectedItemsChange.emit(selection)\r\n }\r\n\r\n }\r\n\r\n\r\n handleKeydown(event: KeyboardEvent) {\r\n if (event.code === 'Space') {\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n onFocusOutRow(item: any) {\r\n this.focusOutRow.emit(item);\r\n }\r\n\r\n customSort(event: SortEvent) {\r\n if (event.data != null && event.data != undefined) {\r\n event.data.sort((data1, data2) => {\r\n if (event.field != null && event.field != undefined && event.order) {\r\n let value1 = data1[event.field];\r\n let value2 = data2[event.field];\r\n let result : number | null = null;\r\n\r\n if (value1 == null && value2 != null)\r\n result = -1;\r\n else if (value1 != null && value2 == null)\r\n result = 1;\r\n else if (value1 == null && value2 == null)\r\n result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string')\r\n result = value1.localeCompare(value2);\r\n else\r\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\r\n\r\n return (event.order * result);\r\n }\r\n return 0;\r\n });\r\n }\r\n }\r\n\r\n consult(key: string): void {\r\n this.onConsultClicked.emit(key);\r\n }\r\n\r\n onCellValueChanged(col: GridColumn, newValue: any, item: any): void {\r\n // send events\r\n if (col.watchForChanges === true) {\r\n\r\n let cellChangedResult: CellChangedResult = {\r\n key: item[this.key],\r\n field: col.field,\r\n newValue: newValue\r\n }\r\n this.cellChanged.emit(cellChangedResult);\r\n\r\n this.saveDataEventEmitter.emit(this.gridData);\r\n }\r\n\r\n // recalculate currentRowNumber\r\n if (col.field === this._autoRowNumberField) {\r\n this._orderByRowNumber();\r\n }\r\n\r\n // check for duplicated rows\r\n // if(this._equalityCheckOn && col.isEquatableCriteria){\r\n // console.log('found equatable : col:', col, 'row : ', item);\r\n // alert('@onCellValueChanged');\r\n // this._tryFindEquatable(item);\r\n // }\r\n }\r\n\r\n //#region private methods\r\n private _initRow() {\r\n let newRow: any = {};\r\n //console.log('start _initRow', this.configuration);\r\n if (this.columns) {\r\n //console.log('_initRow :: configuration : ', this.configuration);\r\n this.columns.forEach(col => {\r\n newRow[col.field] = undefined;\r\n });\r\n\r\n if (this._isAutoRowNumber === true) {\r\n newRow[this._autoRowNumberField] = this._nextRowNumber();\r\n\r\n //console.log('_initRow :: newRow : ', newRow);\r\n }\r\n return newRow\r\n }\r\n return newRow;\r\n }\r\n\r\n private _initSaveEventSubscription() {\r\n this.saveEventSubscription = this.events?.subscribe(\r\n () => this.saveItems()\r\n );\r\n }\r\n\r\n private _verifyAddRowOnLastElementRequirements() {\r\n if (this.gridData == null\r\n || this.gridData == undefined) {\r\n throw new Error('gridData can\\'t be null')\r\n }\r\n\r\n\r\n if (this.columns == null\r\n || this.columns == undefined) {\r\n throw new Error('grid columns can\\'t be null')\r\n }\r\n else {\r\n let rowNumberColumns = this.columns.filter(c => c.isAutoRowNumberColumn === true);\r\n\r\n if (rowNumberColumns.length > 1) {\r\n throw new Error('grid columns can\\'t have more than one RowNumberColumn')\r\n }\r\n else if (rowNumberColumns.length == 1) {\r\n this._isAutoRowNumber = true;\r\n this._autoRowNumberField = rowNumberColumns[0].field;\r\n }\r\n }\r\n }\r\n\r\n private _verifyGridRequirements() {\r\n if (this.columns == null\r\n || this.columns == undefined) {\r\n throw new Error('grid columns can\\'t be null')\r\n }\r\n else {\r\n let rowNumberColumns = this.columns.filter(c => c.isAutoRowNumberColumn === true);\r\n\r\n //console.log('rowNumberColumns : ', rowNumberColumns);\r\n\r\n if (rowNumberColumns.length > 1) {\r\n throw new Error('grid columns can\\'t have more than one RowNumberColumn')\r\n }\r\n else if (rowNumberColumns.length == 1) {\r\n this._isAutoRowNumber = true;\r\n this._autoRowNumberField = rowNumberColumns[0].field;\r\n\r\n //console.log('_isAutoRowNumber : ', this._isAutoRowNumber);\r\n //console.log('_autoRowNumberField : ', this._autoRowNumberField);\r\n }\r\n }\r\n }\r\n\r\n private _initCurrentRowNumberAndOrderByRowNumber(): void {\r\n // console.log('_initCurrentRowNumber :: _isAutoRowNumber : ', this._isAutoRowNumber);\r\n // console.log('_initCurrentRowNumber :: _autoRowNumberField : ', this._autoRowNumberField);\r\n // console.log('_initCurrentRowNumber :: gridData : ', this.gridData);\r\n if (this._isAutoRowNumber === true\r\n && this._autoRowNumberField != undefined\r\n && this._autoRowNumberField != null\r\n && this.gridData.length > 0) {\r\n //alert('_currentRowNumber');\r\n // let aux = this.gridData.map(a => a[this._autoRowNumberField]);;\r\n // aux.sort((a, b) => { return -a + b ;});\r\n\r\n this._orderByRowNumber();\r\n\r\n this._currentRowNumber = this.gridData[this.gridData.length - 1][this._autoRowNumberField];\r\n //alert(this._currentRowNumber);\r\n\r\n //console.log('_initCurrentRowNumber : ',this._currentRowNumber);\r\n }\r\n //console.log('_initCurrentRowNumber : ',this._currentRowNumber);\r\n }\r\n\r\n private _nextRowNumber(): number {\r\n this._currentRowNumber = this.gridData.length + 1;\r\n //console.log('_nextRowNumber : ', this._currentRowNumber);\r\n return this._currentRowNumber;\r\n }\r\n\r\n private _onDeleteRow(row: any): void {\r\n if (row[this._autoRowNumberField] === this._currentRowNumber) {\r\n this._currentRowNumber--;\r\n }\r\n }\r\n\r\n private _orderByRowNumber(): void {\r\n this.gridData.sort((a, b) => { return a[this._autoRowNumberField] - b[this._autoRowNumberField]; });\r\n }\r\n\r\n private _initEquatableFields(): void {\r\n let equatableColumns = this.columns.filter(c => c.isEquatableCriteria == true);\r\n if (equatableColumns) {\r\n this._equalityCheckOn = true;\r\n this._equatableFields = equatableColumns.map(c => c.field);\r\n }\r\n //console.log('equ fields : ', this._equatableFields);\r\n\r\n\r\n\r\n }\r\n\r\n private _initSumAtFusionFields(): void {\r\n let sumAtFusionColumns = this.columns.filter(c => c.isSumAtFusion == true);\r\n if (sumAtFusionColumns) {\r\n this._equalityCheckOn = true;\r\n this._sumAtFusionFields = sumAtFusionColumns.map(c => c.field);\r\n }\r\n //console.log('sum fields : ', this._sumAtFusionFields);\r\n }\r\n\r\n private _tryFindEquatable(row: any): void {\r\n alert('@_tryFindEquatable');\r\n let foundEqualRow: boolean = false;\r\n for (let i: number = 0; i < this.gridData.length; i++) {\r\n console.log('proc row : ', this.gridData[i]);\r\n let isCurrentRowEqual: boolean = true;\r\n this._equatableFields?.forEach(f => {\r\n console.log('proc field : ', f);\r\n if (this.gridData[i][f] != row[f]) {\r\n alert('current row not equal');\r\n console.log('not equal ', row, this.gridData[i]);\r\n isCurrentRowEqual = false;\r\n }\r\n });\r\n if (isCurrentRowEqual) {\r\n alert('current row is equal')\r\n this._fusionRows(this.gridData[i], row);\r\n foundEqualRow = true;\r\n break;\r\n }\r\n }\r\n if (foundEqualRow) {\r\n console.log('deleting : ', row);\r\n this.delete(row);\r\n }\r\n }\r\n\r\n private _fusionRows(row1: any, row2: any) {\r\n this._sumAtFusionFields?.forEach(f => {\r\n row1[f] += row2[f];\r\n });\r\n }\r\n //#endregion\r\n}\r\n","<div class=\"card\">\r\n <p-table #dt [selectionMode]=\"selectionMode\" [(selection)]=\"selectedItems\" editMode=\"row\" [paginator]=\"gridData.length > pageSize\"\r\n [rowsPerPageOptions]=\"rowPerPage\" [rows]=\"pageSize\" (onRowSelect)=\"onRowSelected($event)\"\r\n (onRowUnselect)=\"onRowUnselect($event)\" [scrollable]=\"true\" [resizableColumns]=\"true\" columnResizeMode=\"expand\"\r\n appendTo=\"body\" styleClass=\"p-datatable-sm\" [value]=\"gridData\" [columns]=\"selectedColumns\" [dataKey]=\"key\"\r\n [scrollHeight]=\"scrollHeight\" styleClass=\"p-datatable-gridlines\" (selectionChange)=\"selectionChange($event)\"\r\n #editableTable [totalRecords]=\"gridData.length\">\r\n <!-- [tableStyle]=\"{'min-width': '50rem','width': 'inherit'}\" -->\r\n\r\n <ng-template pTemplate=\"caption\">\r\n <p-multiSelect [options]=\"columns\" [(ngModel)]=\"selectedColumns\"\r\n selectedItemsLabel=\"{0} {{ 'columns_selected' | localize }}\" optionLabel=\"translatedHeader\"\r\n [style]=\"{'min-width': '180px'}\" placeholder=\"{{ 'choose_columns' | localize }}\">\r\n <ng-template let-option pTemplate=\"item\">\r\n <div class=\"flex items-center gap-2\">\r\n <span>{{ option.header | localize }}</span>\r\n </div>\r\n </ng-template>\r\n </p-multiSelect>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n\r\n <tr>\r\n <ng-container *ngIf=\"selectionMode != multipleGridSelectionMode\">\r\n <th pResizableColumn pFrozenColumn style=\"min-width:2rem; left: 1rem !important; width:2rem !important;\"></th>\r\n </ng-container>\r\n <ng-container *ngIf=\"selectionMode == multipleGridSelectionMode\">\r\n <th pResizableColumn pFrozenColumn style=\"min-width:2rem; left: 1rem !important; width:2rem !important;\">\r\n <p-tableHeaderCheckbox #tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n </ng-container>\r\n <th pResizableColumn pFrozenColumn *ngIf=\"showHaveSumary\" scope=\"col\"\r\n style=\"min-width:3rem; left: 1rem !important; width:3rem !important;\"></th>\r\n <!-- <th pResizableColumn pFrozenColumn *ngIf=\"showEditButton\" scope=\"col\"\r\n style=\"min-width:3rem; left: 1rem !important; width:3rem !important;\"></th> -->\r\n <th pResizableColumn pFrozenColumn *ngIf=\"showConsultButton\" scope=\"col\"\r\n style=\"min-width:3rem; left: 1rem !important; width:3rem !important;\"></th>\r\n <th pResizableColumn pFrozenColumn *ngIf=\"showDeleteButton\" scope=\"col\"\r\n style=\"min-width:3rem; left: 1rem !important; width:3rem !important;\"></th>\r\n <th pResizableColumn pFrozenColumn [frozen]=\"col.isFrozen\" [style]=\"col.style\" scope=\"col\"\r\n style=\"min-width:3rem;\" pSortableColumn=\"{{col.field}}\" *ngFor=\"let col of columns\"\r\n pTooltip=\"{{col.toolTipText | localize }}\" tooltipPosition=\"top\" pReorderableColumn>{{ col.header | localize\r\n }}\r\n <p-sortIcon field=\"{{col.field}}\"></p-sortIcon>\r\n <Tsi-Bubble-Info [infoText]=\"col.infoText | localize\"></Tsi-Bubble-Info>\r\n </th>\r\n <th style=\"min-width:3rem\" *ngIf=\"showRowSummary\" scope=\"col\">{{'RowSummary' | localize}}</th>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"body\" let-item let-editing=\"editing\" let-columns=\"columns\" let-rowIndex=\"rowIndex\">\r\n <tr [pEditableRow]=\"item\"\r\n *ngIf=\"selectionMode == multipleGridSelectionMode || selectionMode == undefined; else selectionModeBlock\"\r\n (focusOut)=\"onFocusOutRow(item)\">\r\n <td>\r\n <p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\r\n </td>\r\n <td pFrozenColumn style=\"min-width:3rem; left: 1rem !important; width:3rem !important;\" class=\"p-1\">\r\n </td>\r\n <!-- <td pFrozenColumn *ngIf=\"showEditButton\" style=\"min-width:3rem; left: 1rem !important; width:3rem !important;\" class=\"p-1\">\r\n <div class=\"flex align-items-center justify-content-center\">\r\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow icon=\"pi pi-pencil\"\r\n class=\"p-button-rounded p-button-text\">\r\n </button>\r\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pSaveEditableRow icon=\"pi pi-check\"\r\n class=\"p-button-rounded p-button-text p-button-success -ml-1\">\r\n </button>\r\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow icon=\"pi pi-times\"\r\n class=\"p-button-rounded p-button-text p-button-danger -ml-2\">\r\n </button>\r\n </div>\r\n </td> -->\r\n <td pFrozenColumn *ngIf=\"showHaveSumary\" scope=\"col\" style=\"left: 1rem !important; width:3rem !important;\"></td>\r\n <td pFrozenColumn *ngIf=\"showDeleteButton\" style=\"left: 1rem !important; width:3rem !important;\"\r\n class=\"p-1 btn-delete-style\">\r\n <div class=\"p-0\">\r\n <Tsi-Button [disabled]=\"isDeleteButtonDisabled(item)\" type=\"button\" icon=\"p-button-icon pi pi-trash\"\r\n [tooltipPosition]=\"tooltipPosition.Top\" tooltipText=\"shared_edittable_supprimer\"\r\n styleClass=\"p-element p-button-rounded p-button-text p-button-danger p-button p-component p-button-icon-only\"\r\n (click)=\"delete(item)\"></Tsi-Button>\r\n </div>\r\n </td>\r\n\r\n <td pFrozenColumn *ngIf=\"showConsultButton\" style=\"left: -1rem !important; width:3rem !important;\"\r\n class=\"p-1 btn-consult-style\">\r\n <div class=\"p-0\">\r\n <Tsi-Button [buttonType]=\"buttonType.Button\" icon=\"p-button-icon pi pi-eye\"\r\n [tooltipPosition]=\"tooltipPosition.Top\" tooltipText=\"shared_edittable_consulter\"\r\n styleClass=\"p-button-rounded p-button-text p-button-secondary\" (click)=\"consult(item)\"></Tsi-Button>\r\n </div>\r\n </td>\r\n\r\n <td class=\"ui-resizable-column\" pFrozenColumn [frozen]=\"col.isFrozen\" *ngFor=\"let col of columns\"\r\n [ngStyle]=\"isAr ? {'text-align': 'start'} : {}\">\r\n\r\n <ng-template #ordinaryBloc>\r\n\r\n\r\n <!-- Tsi-Search-Combo -->\r\n <div *ngIf=\"col.type == inputTypes.SEARCH_COMBO; else currencySocieteInputBlock\">\r\n <Tsi-Search-Combo [elementSourceUrl]=\"col.elementSourceUrl\" (bindChange)=\"inputChanged(col)\"\r\n [businessClass]=\"col.businessClass\" [listSourceUrl]=\"col.listSourceUrl\" [(bind)]=\"item[col.field]\"\r\n id-field=\"{{col.idField}}\" label-field=\"{{col.labelField}}\" [isFiltered]=\"col.isFiltered\"\r\n [currentRowItem]=\"item\" (bindChange)=\"onCellValueChanged(col, $event, item)\" [disabled]=\"col.disabled\"\r\n [datasource]=\"col.datasource\" [showSearchButton]=\"col.showSearchButton ?? true\"\r\n [showAddButton]=\"col.showAddButton ?? true\" [showUpdateButton]=\"col.showUpdateButton ?? undefined\"\r\n [showConsultButton]=\"col.showConsultButton ?? undefined\"\r\n [validationStatusCssClass]=\"col.validationStatusCssClass\"\r\n [inputName]=\"col.inputName\"></Tsi-Search-Combo>\r\n </div>\r\n\r\n <!-- Tsi-Currency-Societe-Input -->\r\n <ng-template #currencySocieteInputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.CURRENCY_SOCIETE_INPUT; else currencyOtherInputBlock\">\r\n <Tsi-Currency-Societe-Input [inputName]=\"col.inputName\" [disabled]=\"col.disabled\" [inputId]=\"col.field\"\r\n [(inputField)]=\"item[col.field]\" (inputFieldChange)=\"onCellValueChanged(col, $event, item)\"\r\n [validationStatusCssClass]=\"col.validationStatusCssClass\">\r\n </Tsi-Currency-Societe-Input>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Currency-Other-Input -->\r\n <ng-template #currencyOtherInputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.CURRENCY_OTHER_INPUT; else datePickerInputBlock\">\r\n <Tsi-Currency-Other-Input [inputName]=\"col.inputName\"\r\n [validationStatusCssClass]=\"col.validationStatusCssClass\"\r\n [inputId]=\"col.field\" [(inputField)]=\"item[col.field]\"\r\n (inputFieldChange)=\"onCellValueChanged(col, $event, item)\" [numOfDecimal]=\"col.numOfDecimal\"\r\n [disabled]=\"col.disabled\">\r\n </Tsi-Currency-Other-Input>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Date-Picker -->\r\n <ng-template #datePickerInputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.DATE; else checkBoxInputBlock\">\r\n <Tsi-Date-Picker [inputName]=\"col.inputName\" [inputId]=\"col.field\" [(inputField)]=\"item[col.field]\"\r\n (inputFieldChange)=\"onCellValueChanged(col, $event, item)\" [showTime]=\"col.showTime\"\r\n [disabled]=\"col.disabled\" [validationStatusCssClass]=\"col.validationStatusCssClass\">\r\n </Tsi-Date-Picker>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-CheckBox -->\r\n <ng-template #checkBoxInputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.CHECKBOX; else decimalInputBlock\">\r\n <Tsi-CheckBox [inputName]=\"col.inputName\" [inputId]=\"col.field\" [(inputField)]=\"item[col.field]\"\r\n (inputFieldChange)=\"onCellValueChanged(col, $event, item)\" [disabled]=\"col.disabled\"\r\n [validationStatusCssClass]=\"col.validationStatusCssClass\">\r\n </Tsi-CheckBox>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Decimal-Input -->\r\n <ng-template #decimalInputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.DECIMAL_INPUT; else integerInputBlock\">\r\n <Tsi-Decimal-Input [inputName]=\"col.inputName\" [inputId]=\"col.field\" [(inputField)]=\"item[col.field]\"\r\n (inputFieldChange)=\"onCellValueChanged(col, $event, item)\" [numOfDecimal]=\"col.numOfDecimal\"\r\n [disabled]=\"col.disabled\" [validationStatusCssClass]=\"col.validationStatusCssClass\">\r\n </Tsi-Decimal-Input>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Integer -->\r\n <ng-template #integerInputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.INTEGER; else rateInputBlock\">\r\n <Tsi-Integer [inputName]=\"col.inputName\" [validationStatusCssClass]=\"col.validationStatusCssClass\"\r\n [inputId]=\"col.field\" [(inputField)]=\"item[col.field]\"\r\n (inputFieldChange)=\"onCellValueChanged(col, $event, item)\" [disabled]=\"col.disabled\">\r\n </Tsi-Integer>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Rate-Input -->\r\n <ng-template #rateInputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.RATE_INPUT; else timeInputBloc\">\r\n <Tsi-Rate-Input [inputName]=\"col.inputName\" [numOfDecimal]=\"col.numOfDecimal\" [inputId]=\"col.field\"\r\n [(inputField)]=\"item[col.field]\" (inputFieldChange)=\"onCellValueChanged(col, $event, item)\"\r\n [disabled]=\"col.disabled\" [validationStatusCssClass]=\"col.validationStatusCssClass\">\r\n </Tsi-Rate-Input>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Time-picker bloc -->\r\n <ng-template #timeInputBloc>\r\n <ng-container *ngIf=\"col.type == inputTypes.TIME; else formulaInputBlock\">\r\n <tsi-time-picker (inputFieldChange)=\"onCellValueChanged(col, $event, item)\" [inputName]=\"col.inputName\"\r\n [inputId]=\"col.field\" [(inputField)]=\"item[col.field]\" [disabled]=\"col.disabled\"\r\n [validationStatusCssClass]=\"col.validationStatusCssClass\">\r\n </tsi-time-picker>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #formulaInputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.FORMULA_TEXT_BOX; else defaultTextInputBlock\">\r\n <!--<Tsi-Bubble-Info\r\n [infoText]=\"['formula_explication',\r\n ]\"></Tsi-Bubble-Info> -->\r\n <Tsi-Formula-Box [inputName]=\"col.inputName\" [(value)]=\"item[col.field]\"\r\n [validationStatusCssClass]=\"col.validationStatusCssClass\"></Tsi-Formula-Box>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Text-Box -->\r\n <ng-template #defaultTextInputBlock>\r\n <ng-container>\r\n <Tsi-Text-Box [inputId]=\"col.field\" [(inputField)]=\"item[col.field]\"\r\n (keydown)=\"handleKeydown($event)\" (inputFieldChange)=\"onCellValueChanged(col, $event, item)\"\r\n [disabled]=\"col.disabled\" [inputName]=\"col.inputName\" [validationStatusCssClass]=\"col.validationStatusCssClass\">\r\n </Tsi-Text-Box>\r\n </ng-container>\r\n </ng-template>\r\n </ng-template>\r\n\r\n </td>\r\n <td *ngIf=\"showRowSummary\" class=\"font-bold\">\r\n {{rowSummary(item)}}\r\n </td>\r\n </tr>\r\n <ng-template #selectionModeBlock>\r\n <ng-container>\r\n <tr [pEditableRow]=\"item\" [pSelectableRow]=\"item\" [pSelectableRowIndex]=\"rowIndex\"\r\n (focusOut)=\"onFocusOutRow(item)\">\r\n <td pFrozenColumn style=\"left: 1rem !important; width:3rem !important;\" class=\"p-1\">\r\n <td *ngIf=\"selectionMode == multipleGridSelectionMode\" style=\"width: 2rem;\">\r\n <p-tableHeaderCheckbox #tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </td>\r\n <!-- <td pFrozenColumn *ngIf=\"showEditButton\" style=\"min-width:3rem;left: 1rem !important; width:3rem !important;\" class=\"p-1\">\r\n <div class=\"flex align-items-center justify-content-center\">\r\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow icon=\"pi pi-pencil\"\r\n class=\"p-button-rounded p-button-text\">\r\n </button>\r\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pSaveEditableRow icon=\"pi pi-check\"\r\n class=\"p-button-rounded p-button-text p-button-success -ml-1\">\r\n </button>\r\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow icon=\"pi pi-times\"\r\n class=\"p-button-rounded p-button-text p-button-danger -ml-2\">\r\n </button>\r\n </div>\r\n </td> -->\r\n <td pFrozenColumn *ngIf=\"showHaveSumary\" scope=\"col\" style=\"left: 1rem !important; width:3rem !important;\">\r\n </td>\r\n <td pFrozenColumn *ngIf=\"showDeleteButton\" style=\"left: 1rem !important; width:3rem !important;\"\r\n class=\"p-1 btn-delete-style\">\r\n <div class=\"p-0\">\r\n <Tsi-Button type=\"button\" icon=\"p-button-icon pi pi-trash\" [tooltipPosition]=\"tooltipPosition.Top\"\r\n tooltipText=\"shared_edittable_supprimer\"\r\n styleClass=\"p-element p-button-rounded p-button-text p-button-danger p-button p-component p-button-icon-only\"\r\n (click)=\"delete(item)\"></Tsi-Button>\r\n </div>\r\n </td>\r\n <td pFrozenColumn pResizableColumn *ngIf=\"showConsultButton\"\r\n style=\"left: 1rem !important; width:3rem !important;\" class=\"p-1 btn-consult-style\">\r\n <div class=\"p-0\">\r\n <Tsi-Button [buttonType]=\"buttonType.Button\" icon=\"p-button-icon pi pi-eye\"\r\n [tooltipPosition]=\"tooltipPosition.Top\" tooltipText=\"shared_edittable_consulter\"\r\n styleClass=\"p-button-rounded p-button-text p-button-secondary\" (click)=\"consult(item)\"></Tsi-Button>\r\n </div>\r\n </td>\r\n <td class=\"ui-resizable-column\" pFrozenColumn [frozen]=\"col.isFrozen\" *ngFor=\"let col of columns\">\r\n <div *ngIf=\"col.displayOnly || disabled; else ordinaryBloc\">\r\n <!-- Tsi-Search-Combo -->\r\n <div *ngIf=\"col.type == inputTypes.SEARCH_COMBO; else currencySocieteOutputBlock\">\r\n <Tsi-Search-Combo [disabled]=\"true\" [elementSourceUrl]=\"col.elementSourceUrl\"\r\n [businessClass]=\"col.businessClass\" [currentRowItem]=\"item\" [(bind)]=\"item[col.field]\"\r\n id-field=\"{{col.idField}}\" [listSourceUrl]=\"col.listSourceUrl\" label-field=\"{{col.labelField}}\"\r\n [isFiltered]=\"col.isFiltered\" [datasource]=\"col.datasource\"\r\n [showSearchButton]=\"col.showSearchButton ?? true\" [showAddButton]=\"col.showAddButton ?? true\"\r\n [showUpdateButton]=\"col.showUpdateButton ?? undefined\"\r\n [showConsultButton]=\"col.showConsultButton ?? undefined\"\r\n [validationStatusCssClass]=\"col.validationStatusCssClass\"\r\n [inputName]=\"col.inputName\"></Tsi-Search-Combo>\r\n </div>\r\n\r\n <!-- Tsi-Currency-Societe-Display -->\r\n <ng-template #currencySocieteOutputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.CURRENCY_SOCIETE_INPUT; else currencyOtherOutputBlock\">\r\n <Tsi-Currency-Societe-Display [inputData]=\"item[col.field]\">\r\n </Tsi-Currency-Societe-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Currency-Other-Display -->\r\n <ng-template #currencyOtherOutputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.CURRENCY_OTHER_INPUT; else datePickerOutputBlock\">\r\n <Tsi-Currency-Other-Display [currency]=\"col.currencyCode\" [inputData]=\"item[col.field]\">\r\n </Tsi-Currency-Other-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Date-Display -->\r\n <ng-template #datePickerOutputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.DATE; else checkBoxOutputBlock\">\r\n <Tsi-Date-Display [showTime]=\"col.showTime\" [inputData]=\"item[col.field]\">\r\n </Tsi-Date-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-CheckBox-Display -->\r\n <ng-template #checkBoxOutputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.CHECKBOX; else decimalOutputBlock\">\r\n <Tsi-Checkbox-Display [inputData]=\"item[col.field]\">\r\n </Tsi-Checkbox-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Decimal-Display -->\r\n <ng-template #decimalOutputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.DECIMAL_INPUT; else integerOutputBlock\">\r\n <Tsi-Decimal-Display [formatDecimal]=\"col.formatDecimal\" [inputData]=\"item[col.field]\"\r\n [numOfDecimal]=\"col.numOfDecimal\">\r\n </Tsi-Decimal-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Integer-Display -->\r\n <ng-template #integerOutputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.INTEGER; else rateOutputBlock\">\r\n <Tsi-Integer-Display [inputData]=\"item[col.field]\">\r\n </Tsi-Integer-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Rate-Display -->\r\n <ng-template #rateOutputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.RATE_INPUT; else timeOutputBlock\">\r\n <Tsi-Rate-Display [isFraction]=\"col.isFraction\" [inputData]=\"item[col.field]\">\r\n </Tsi-Rate-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Time-Display -->\r\n <ng-template #timeOutputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.TIME; else formulaOutputBlock\">\r\n <tsi-time-display [inputData]=\"item[col.field]\"></tsi-time-display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Formula-Display -->\r\n <ng-template #formulaOutputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.FORMULA_TEXT_BOX; else defaultTextOutputBlock\">\r\n <Tsi-Formula-Box [inputName]=\"col.inputName\" [(value)]=\"item[col.field]\"\r\n [validationStatusCssClass]=\"col.validationStatusCssClass\"></Tsi-Formula-Box>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Text-Box -->\r\n <ng-template #defaultTextOutputBlock>\r\n <ng-container>\r\n <span>\r\n {{item[col.field]}}\r\n </span>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n <ng-template #ordinaryBloc>\r\n <!-- Tsi-Search-Combo -->\r\n <div *ngIf=\"col.type == inputTypes.SEARCH_COMBO; else currencySocieteInputBlock\">\r\n <Tsi-Search-Combo [elementSourceUrl]=\"col.elementSourceUrl\" (bindChange)=\"inputChanged(col)\"\r\n [listSourceUrl]=\"col.listSourceUrl\" [(bind)]=\"item[col.field]\" id-field=\"{{col.idField}}\"\r\n label-field=\"{{col.labelField}}\" [isFiltered]=\"col.isFiltered\" [businessClass]=\"col.businessClass\"\r\n (bindChange)=\"onCellValueChanged(col, $event, item)\" [currentRowItem]=\"item\"\r\n [datasource]=\"col.datasource\" [disabled]=\"col.disabled\"\r\n [showSearchButton]=\"col.showSearchButton ?? true\" [showAddButton]=\"col.showAddButton ?? true\"\r\n [showUpdateButton]=\"col.showUpdateButton ?? undefined\"\r\n [showConsultButton]=\"col.showConsultButton ?? undefined\"\r\n [validationStatusCssClass]=\"col.validationStatusCssClass\"\r\n [inputName]=\"col.inputName\"></Tsi-Search-Combo>\r\n </div>\r\n\r\n <!-- Tsi-Currency-Societe-Input -->\r\n <ng-template #currencySocieteInputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.CURRENCY_SOCIETE_INPUT; else currencyOtherInputBlock\">\r\n <Tsi-Currency-Societe-Input [inputName]=\"col.inputName\" [inputId]=\"col.field\"\r\n [(inputField)]=\"item[col.field]\" (inputFieldChange)=\"inputChanged(col)\"\r\n (inputFieldChange)=\"onCellValueChanged(col, $event, item)\" [disabled]=\"col.disabled\"\r\n [validationStatusCssClass]=\"col.validationStatusCssClass\">\r\n </Tsi-Currency-Societe-Input>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Currency-Other-Input -->\r\n <ng-template #currencyOtherInputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.CURRENCY_OTHER_INPUT; else datePickerInputBlock\">\r\n <Tsi-Currency-Other-Input [disabled]=\"col.disabled\" [inputName]=\"col.inputName\" [inputId]=\"col.field\"\r\n (inputFieldChange)=\"inputChanged(col)\" [(inputField)]=\"item[col.field]\"\r\n (inputFieldChange)=\"onCellValueChanged(col, $event, item)\" [numOfDecimal]=\"col.numOfDecimal\"\r\n [validationStatusCssClass]=\"col.validationStatusCssClass\">\r\n </Tsi-Currency-Other-Input>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Date-Picker -->\r\n <ng-template #datePickerInputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.DATE; else checkBoxInputBlock\">\r\n <Tsi-Date-Picker [showTime]=\"col.showTime\" [inputName]=\"col.inputName\" [inputId]=\"col.field\"\r\n (inputFieldChange)=\"inputChanged(col)\" [(inputField)]=\"item[col.field]\"\r\n (inputFieldChange)=\"onCellValueChanged(col, $event, item)\" [disabled]=\"col.disabled\"\r\n [validationStatusCssClass]=\"col.validationStatusCssClass\">\r\n </Tsi-Date-Picker>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-CheckBox -->\r\n <ng-template #checkBoxInputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.CHECKBOX; else decimalInputBlock\">\r\n <Tsi-CheckBox [inputName]=\"col.inputName\" [inputId]=\"col.field\" (inputFieldChange)=\"inputChanged(col)\"\r\n [(inputField)]=\"item[col.field]\" (inputFieldChange)=\"onCellValueChanged(col, $event, item)\"\r\n [disabled]=\"col.disabled\" [validationStatusCssClass]=\"col.validationStatusCssClass\">\r\n </Tsi-CheckBox>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Decimal-Input -->\r\n <ng-template #decimalInputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.DECIMAL_INPUT; else integerInputBlock\">\r\n <Tsi-Decimal-Input [inputName]=\"col.inputName\" [inputId]=\"col.field\"\r\n [validationStatusCssClass]=\"col.validationStatusCssClass\"\r\n (inputFieldChange)=\"inputChanged(col)\" [(inputField)]=\"item[col.field]\"\r\n [numOfDecimal]=\"col.numOfDecimal\" (inputFieldChange)=\"onCellValueChanged(col, $event, item)\"\r\n [disabled]=\"col.disabled\">\r\n </Tsi-Decimal-Input>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Integer -->\r\n <ng-template #integerInputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.INTEGER; else rateInputBlock\">\r\n <Tsi-Integer [class]=\"'max-w-4rem'\" [inputName]=\"col.inputName\" [inputId]=\"col.field\"\r\n (inputFieldChange)=\"inputChanged(col)\" [(inputField)]=\"item[col.field]\"\r\n [validationStatusCssClass]=\"col.validationStatusCssClass\"\r\n (inputFieldChange)=\"onCellValueChanged(col, $event, item)\" [disabled]=\"col.disabled\">\r\n </Tsi-Integer>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Rate-Input -->\r\n <ng-template #rateInputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.RATE_INPUT; else timeInputBloc\">\r\n <Tsi-Rate-Input [inputName]=\"col.inputName\" [inputId]=\"col.field\" (inputFieldChange)=\"inputChanged(col)\"\r\n [(inputField)]=\"item[col.field]\" (inputFieldChange)=\"onCellValueChanged(col, $event, item)\"\r\n [disabled]=\"col.disabled\" [validationStatusCssClass]=\"col.validationStatusCssClass\">\r\n </Tsi-Rate-Input>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Time-Picker -->\r\n <ng-template #timeInputBloc>\r\n <ng-container *ngIf=\"col.type == inputTypes.TIME else formulaInputBlock\">\r\n <tsi-time-picker (inputFieldChange)=\"onCellValueChanged(col, $event, item)\" [inputName]=\"col.inputName\"\r\n [inputId]=\"col.field\" [(inputField)]=\"item[col.field]\" [disabled]=\"col.disabled\"\r\n [validationStatusCssClass]=\"col.validationStatusCssClass\">\r\n </tsi-time-picker>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #formulaInputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.FORMULA_TEXT_BOX; else defaultTextInputBlock\">\r\n <Tsi-Formula-Box [inputName]=\"col.inputName\" [(value)]=\"item[col.field]\"\r\n [validationStatusCssClass]=\"col.validationStatusCssClass\"></Tsi-Formula-Box>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Text-Box -->\r\n <ng-template #defaultTextInputBlock>\r\n <ng-container>\r\n <Tsi-Text-Box [inputId]=\"col.field\" [disabled]=\"col.disabled\"\r\n (inputFieldChange)=\"inputChanged(col)\" [(inputField)]=\"item[col.field]\"\r\n (keydown)=\"handleKeydown($event)\" (inputFieldChange)=\"onCellValueChanged(col, $event, item)\"\r\n [inputName]=\"col.inputName\" [validationStatusCssClass]=\"col.validationStatusCssClass\">\r\n </Tsi-Text-Box>\r\n </ng-container>\r\n </ng-template>\r\n </ng-template>\r\n\r\n </td>\r\n <td *ngIf=\"showRowSummary\" class=\"font-bold\">\r\n {{rowSummary(item)}}\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </ng-template>\r\n </ng-template>\r\n\r\n <ng-template *ngIf=\"showHaveSumary\" pTemplate=\"footer\" let-columns>\r\n\r\n <tr class=\"tfooter\">\r\n <!-- <td pFrozenColumn scope=\"col\" style=\"left: 1rem !important; width:3rem !important;\"></td> -->\r\n <td *ngIf=\"selectionMode == multipleGridSelectionMode\"\r\n style=\"min-width:2rem; left: 1rem !important; width:2rem !important;\">\r\n <p-tableHeaderCheckbox #tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </td>\r\n <td pFrozenColumn scope=\"col\" style=\"min-width:3rem; left: 1rem !important; width:3rem !important;\">Total</td>\r\n <td pFrozenColumn *ngIf=\"showDeleteButton\" style=\"min-width:3rem; left: 1rem !important; width:3rem !important;\"\r\n class=\"p-1\">\r\n <td pFrozenColumn style=\"min-width:3rem; left: 1rem !important; width:3rem !important;\"\r\n class=\"p-1\">\r\n <!--<td pFrozenColumn *ngIf=\"showEditButton\" style=\"min-width:3rem; left: 1rem !important; width:3rem !important;\"\r\n class=\"p-1\"> -->\r\n <td pFrozenColumn *ngIf=\"showConsultButton\"\r\n style=\"min-width:3rem; left: 1rem !important; width:3rem !important;\" class=\"p-1\">\r\n </td>\r\n <td pFrozenColumn [frozen]=\"col.isFrozen\" [style]=\"col.style\" scope=\"col\" *ngFor=\"let col of columns\">\r\n <div *ngIf=\"col.haveSummary\">\r\n <!-- Tsi-Currency-Societe-Display -->\r\n <div *ngIf=\"col.type == inputTypes.CURRENCY_SOCIETE_INPUT; else currencyOtherOutputBlock\">\r\n <Tsi-Currency-Societe-Display [inputData]=\"getSummary(col)\">\r\n </Tsi-Currency-Societe-Display>\r\n </div>\r\n\r\n <!-- Tsi-Currency-Other-Display -->\r\n <ng-template #currencyOtherOutputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.CURRENCY_OTHER_INPUT; else decimalOutputBlock\">\r\n <Tsi-Currency-Other-Display [currency]=\"col.currencyCode\" [inputData]=\"getSummary(col)\">\r\n </Tsi-Currency-Other-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Decimal-Display -->\r\n <ng-template #decimalOutputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.DECIMAL_INPUT; else integerOutputBlock\">\r\n <Tsi-Decimal-Display [formatDecimal]=\"col.formatDecimal\" [inputData]=\"getSummary(col)\"\r\n [numOfDecimal]=\"col.numOfDecimal\">\r\n </Tsi-Decimal-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Integer-Display -->\r\n <ng-template #integerOutputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.INTEGER; else rateOutputBlock\">\r\n <Tsi-Integer-Display [inputData]=\"getSummary(col)\">\r\n </Tsi-Integer-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Rate-Display -->\r\n <ng-template #rateOutputBlock>\r\n <ng-container *ngIf=\"col.type == inputTypes.RATE_INPUT; else defaultTextOutputBlock\">\r\n <Tsi-Rate-Display [isFraction]=\"col.isFraction\" [inputData]=\"getSummary(col)\">\r\n </Tsi-Rate-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Default -->\r\n <ng-template #defaultTextOutputBlock>\r\n <ng-container>\r\n <span>\r\n {{getSummary(col)}}\r\n </span>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"summary\">\r\n <tr>\r\n {{'TotalRecordsCount' | localize }} {{gridData.length}}\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n <div>\r\n <Tsi-Button *ngIf=\"showAddButton\" style=\"height: 20px;width: 20px;\" icon=\"p-button-icon pi pi-plus\" type=\"button\"\r\n [tooltipPosition]=\"tooltipPosition.Top\" tooltipText=\"shared_edittable_ajouter\"\r\n styleClass=\"p-element p-button-sm p-button-success p-button-text p-button p-component p-button-icon-only ng-star-inserted\"\r\n (click)=\"addRow()\"></Tsi-Button>\r\n </div>\r\n</div>","export class ExportExcelHelper {\r\n\r\n public static preprocessDateForExcel(items: any[]): any {\r\n return items.map(item => {\r\n const newItem: any = { ...item };\r\n\r\n for (const key of Object.keys(newItem)) {\r\n const value = newItem[key];\r\n\r\n if (typeof value === 'boolean') {\r\n newItem[key] = value == true ? 'Oui' : 'Non'\r\n continue;\r\n }\r\n\r\n if (this.isBase64(value)) {\r\n newItem[key] = '';\r\n continue;\r\n }\r\n\r\n if (typeof value === 'string' && /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}/.test(value)) {\r\n newItem[key] = this.formatDate(value);\r\n }\r\n }\r\n\r\n return newItem;\r\n });\r\n }\r\n\r\n\r\n private static formatDate(value: any): string {\r\n if (!value || typeof value !== 'string')\r\n return value;\r\n\r\n const date = new Date(value);\r\n if (isNaN(date.getTime()))\r\n return value;\r\n\r\n const pad = (n: number) => n < 10 ? '0' + n : n;\r\n\r\n const day = pad(date.getDate());\r\n const month = pad(date.getMonth() + 1);\r\n const year = pad(date.getFullYear());\r\n const hours = pad(date.getHours());\r\n const minutes = pad(date.getMinutes());\r\n\r\n return `${day}/${month}/${year} ${hours}:${minutes}`;\r\n\r\n }\r\n\r\n private static isBase64(value: any): boolean {\r\n return (\r\n typeof value === 'string' && value.length > 256 && /^[A-Za-z0-9+/=]+$/.test(value)\r\n );\r\n }\r\n\r\n}","import { EnvironmentInjector, inject, runInInjectionContext } from \"@angular/core\";\r\nimport { ModalSizeEnum } from \"../enums/modal-size-enum\";\r\nimport { DynamicDialogConfig } from \"primeng/dynamicdialog\";\r\nimport { TsiModalService } from \"../services/modal/tsi-modal.service\";\r\n\r\n\r\nexport async function openManageReportingComponent(injector: EnvironmentInjector, conf: any) {\r\n return runInInjectionContext(injector, async () => {\r\n const tsiModalService = inject(TsiModalService);\r\n\r\n const { ManageReportingComponent } = await import(\r\n '../tsi-components/manage-reporting/manage-reporting.component'\r\n );\r\n\r\n return tsiModalService.open(ManageReportingComponent, conf);\r\n })\r\n}\r\n\r\nexport async function openModalUploadGrid(injector: EnvironmentInjector, conf: any) {\r\n return runInInjectionContext(injector, async () => {\r\n const tsiModalService = inject(TsiModalService);\r\n\r\n const { TsiUploadGridComponent } = await import(\r\n '../tsi-components/tsi-upload-grid/tsi-upload-grid.component'\r\n );\r\n\r\n return tsiModalService.open(TsiUploadGridComponent, conf);\r\n })\r\n}\r\n\r\nexport async function openTsiPopupTextViewerComponent(injector: EnvironmentInjector, conf: any) {\r\n return runInInjectionContext(injector, async () => {\r\n const tsiModalService = inject(TsiModalService);\r\n\r\n const { TsiPopupTextViewerComponent } = await import(\r\n '../tsi-components/tsi-popup-text-viewer/tsi-popup-text-viewer.component'\r\n );\r\n\r\n return tsiModalService.open(TsiPopupTextViewerComponent, conf);\r\n })\r\n}\r\n\r\nexport async function openNotesList(injector: EnvironmentInjector) {\r\n return runInInjectionContext((injector), async () => {\r\n const tsiModalService = inject(TsiModalService);\r\n\r\n const { TsiNotesGridComponent } = await import(\r\n '../tsi-components/tsi-notes-grid/tsi-notes-grid.component'\r\n );\r\n\r\n const conf = {\r\n data: {},\r\n styleClass: '',\r\n width: ModalSizeEnum.Medium.width,\r\n height: ModalSizeEnum.Medium.height,\r\n maximizable: true,\r\n }\r\n\r\n return tsiModalService.open(TsiNotesGridComponent, conf);\r\n })\r\n}\r\n\r\nexport async function openManageImportExportModal(injector: EnvironmentInjector, businessClass?: string, formName?: string) {\r\n return runInInjectionContext(injector, async () => {\r\n const tsiModalService = inject(TsiModalService);\r\n\r\n const { ManageImportExportComponent } = await import(\r\n '../tsi-components/manage-import-export/manage-import-export.component'\r\n );\r\n\r\n let conf = {\r\n data: {\r\n businessClass,\r\n formName,\r\n },\r\n width: ModalSizeEnum.Medium.width,\r\n height: ModalSizeEnum.Medium.height,\r\n maximizable: true,\r\n };\r\n\r\n return tsiModalService.open(ManageImportExportComponent, conf);\r\n });\r\n}\r\n\r\nexport async function openCreateOrEditEntityInformationComponent(injector: EnvironmentInjector, conf : DynamicDialogConfig) {\r\n return runInInjectionContext((injector), async () => {\r\n const tsiModalService = inject(TsiModalService);\r\n\r\n const { CreateOrEditEntityInformationsComponent } = await import(\r\n '../tsi-components/create-or-edit-entity-informations/create-or-edit-entity-informations.component'\r\n );\r\n\r\n return tsiModalService.open(CreateOrEditEntityInformationsComponent, conf);\r\n })\r\n}\r\n\r\nexport async function openLogoutPopupComponent(injector: EnvironmentInjector, conf : DynamicDialogConfig) {\r\n return runInInjectionContext((injector), async () => {\r\n const tsiModalService = inject(TsiModalService);\r\n\r\n const { LogoutPopupComponent } = await import(\r\n '../tsi-components/logout-popup/logout-popup.component'\r\n );\r\n\r\n return tsiModalService.open(LogoutPopupComponent, conf);\r\n })\r\n}","export function splitArrayIntoChunks(array: any[], chunkSize: number): any[][] {\r\n const result: any[][] = [];\r\n for (let i = 0; i < array.length; i += chunkSize) {\r\n result.push(array.slice(i, i + chunkSize));\r\n }\r\n return result;\r\n}\r\n\r\n","export * from './array.functions'\r\n// export * from './modal-open.function'","\r\n//#region example\r\nconst templateSample : string = `\r\n<table style=\"border-collapse: collapse; font-family: Arial, sans-serif; border: 1px solid #000; width: 100%;\">\r\n<tr>\r\n<td style=\"padding: 10px; width: 33.33%;\">\r\n <span style=\"font-weight: bold;\">Property 4:</span>\r\n <span style=\"margin-left: 5px;\">Value 4</span>\r\n</td>\r\n<td style=\"padding: 10px; width: 33.33%;\">\r\n <span style=\"font-weight: bold;\">Property 5:</span>\r\n <span style=\"margin-left: 5px;\">Value 5</span>\r\n</td>\r\n<td style=\"padding: 10px; width: 33.33%;\">\r\n <span style=\"font-weight: bold;\">Property 6:</span>\r\n <span style=\"margin-left: 5px;\">Value 6</span>\r\n</td>\r\n</tr>\r\n</table>`\r\n//note : u can try this sample at https://www.w3schools.com/html/tryit.asp?filename=tryhtml_intro\r\n//#endregion\r\n\r\n//#region useful consts templates\r\nexport const HtmlTemplates = {\r\n //table\r\n tableSTART : () => `<table style=\"border-collapse: collapse; font-family: Arial, sans-serif; border: 1px solid #000; width: 100%;\"><tbody style=\"padding: 3px;display: block;\">`,\r\n tableEND : () => `</tbody></table><table style=\"height: 5px;\"><tr><td style=\"height: 5px;\"> </td></tr></table>`,\r\n\r\n //row\r\n rowSTART : () => `<tr style=\"width: 100%;\">`,\r\n rowEND : () => `</tr>`,\r\n\r\n //column\r\n columnSTART: (width: string) => `<td style=\"padding: 3px; width: ${width};\">`,\r\n columnEND : () => `</td>`,\r\n\r\n //property span\r\n spanPropertySTART : () => `<span style=\"font-weight: bold; font-size: 9pt;\">`,\r\n spanPropertyEND : () => `</span>`,\r\n\r\n //value span\r\n spanValueSTART : () => `<span style=\"margin-left: 5px; font-size: 9pt;\">`,\r\n spanValueEND : () => `</span>`,\r\n //#endregion\r\n}\r\n","import { CurrencyPipe, DatePipe, DecimalPipe, PercentPipe } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { FilterOperatorType, FilterOperatorTypeDescriptions, InputTypes, DecimalFormat } from '../../enums';\r\nimport { IFilteredRequest } from '../../interfaces';\r\nimport { splitArrayIntoChunks } from '../../functions';\r\nimport { LocalizePipe } from '../../pipes/localize.pipe';\r\nimport { HtmlTemplates } from '../../consts/html-template.const';\r\nimport { DateFormatDisplay } from '../../consts/tsi-consts';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HtmlTemplateGeneratorService {\r\n //#region private properties\r\n private columnWidth: string = '33.33%';\r\n //#endregion\r\n constructor(private datePipe: DatePipe,\r\n private localizePipe: LocalizePipe,\r\n private currencyPipe: CurrencyPipe,\r\n private decimalPipe: DecimalPipe,\r\n private percentPipe: PercentPipe,) { }\r\n\r\n public generateGridFiltersTemplate(filters : IFilteredRequest[],\r\n isSearchBoxFilters: boolean = true,\r\n columnsNumber: number = 3) : string{\r\n //validate inputs\r\n if(!filters || filters.length == 0){\r\n if(isSearchBoxFilters){\r\n return '';\r\n }\r\n else{\r\n return `<div></div>`;\r\n }\r\n }\r\n\r\n // calculate column width\r\n this._calculateColumnWidth(columnsNumber);\r\n\r\n //equilibrate filters\r\n let filtersLenght = filters.length;\r\n\r\n let divPer_columnsNumber = filtersLenght % columnsNumber;\r\n\r\n let missingFilterNumber = columnsNumber - divPer_columnsNumber;\r\n\r\n //generate the html template\r\n let template = '';\r\n\r\n let chunks = splitArrayIntoChunks(filters, columnsNumber);\r\n\r\n chunks.forEach((c, key, chunks) => {\r\n let newRowInnerBloc : string = '';\r\n c.forEach(filter => {\r\n newRowInnerBloc += this._createColumn(filter, isSearchBoxFilters);\r\n });\r\n\r\n // when last element\r\n if (Object.is(chunks.length - 1, key)){\r\n // add fake rows for style consistant\r\n if(divPer_columnsNumber != 0 && missingFilterNumber != 0){\r\n for(let i : number = 0; i< missingFilterNumber; i++){\r\n newRowInnerBloc += this._createFakeColumn();\r\n }\r\n }\r\n }\r\n //\r\n newRowInnerBloc = this._addRow(newRowInnerBloc)\r\n template += newRowInnerBloc;\r\n });\r\n\r\n template = this._addTable(template);\r\n\r\n return template;\r\n }\r\n\r\n //#region private methods\r\n private _calculateColumnWidth(columnsNumber: number = 3): void{\r\n this.columnWidth = (100 / columnsNumber) + '%';\r\n }\r\n\r\n private _addTable(template: string): string{\r\n return `${HtmlTemplates.tableSTART()}${template}${HtmlTemplates.tableEND()}`;\r\n }\r\n\r\n private _addRow(template: string): string{\r\n return `${HtmlTemplates.rowSTART()}${template}${HtmlTemplates.rowEND()}`;\r\n }\r\n\r\n private _addColumn(template: string): string{\r\n return `${HtmlTemplates.columnSTART(this.columnWidth)}${template}${HtmlTemplates.columnEND()}`;\r\n }\r\n\r\n private _addPropertySpan(template: string): string{\r\n let temp : string = `${HtmlTemplates.spanPropertySTART()}${template}${HtmlTemplates.spanPropertyEND()}`;\r\n return temp;\r\n }\r\n\r\n private _addValueSpan(template: string): string{\r\n return `${HtmlTemplates.spanValueSTART()}${template}${HtmlTemplates.spanValueEND()}`;\r\n }\r\n\r\n private _getPropertyText(propertyName: any, operator?: FilterOperatorType): string {\r\n let template : string = '';\r\n if(operator != undefined && operator != null){\r\n let operatorLocalizationKeyText : string = FilterOperatorTypeDescriptions[operator];\r\n let operatorText : string = this.localizePipe.transform(operatorLocalizationKeyText);\r\n template = `${this.localizePipe.transform(propertyName)} (${operatorText}) : `;\r\n }\r\n else{\r\n template = `${this.localizePipe.transform(propertyName)}: `;\r\n }\r\n return template;\r\n }\r\n\r\n private _getValueText(filter: IFilteredRequest): string {\r\n if(filter.filterValue == undefined || filter.filterValue == null){\r\n return '';\r\n }\r\n switch(filter.type){\r\n case InputTypes.DATE:\r\n {\r\n return this.datePipe.transform(filter.filterValue, DateFormatDisplay)\r\n ?? filter.filterValue;\r\n }\r\n case InputTypes.SEARCH_COMBO:\r\n {\r\n return filter.comboboxLabel ?? filter.filterValue;\r\n }\r\n case InputTypes.CURRENCY_SOCIETE_INPUT:\r\n {\r\n return this.currencyPipe.transform(filter.filterValue, filter.currency)\r\n ?? filter.filterValue;\r\n }\r\n case InputTypes.CURRENCY_OTHER_INPUT:\r\n {\r\n return this.currencyPipe.transform(filter.filterValue, filter.currency)\r\n ?? filter.filterValue;\r\n }\r\n case InputTypes.DECIMAL_INPUT:\r\n {\r\n //get decimalformat\r\n let formatDecimal: string = ''\r\n switch(filter.numOfDecimal){\r\n case 1 : {formatDecimal = DecimalFormat.FORMAT_NUM_DECIAMl_ONE; break;}\r\n case 2 : {formatDecimal = DecimalFormat.FORMAT_NUM_DECIAMl_TWO; break;}\r\n case 3 : {formatDecimal = DecimalFormat.FORMAT_NUM_DECIAMl_THREE; break;}\r\n case 4 : {formatDecimal = DecimalFormat.FORMAT_NUM_DECIAMl_FOUR; break;}\r\n default : {formatDecimal = DecimalFormat.FORMAT_NUM_DECIAMl_THREE; break;}\r\n }\r\n\r\n return this.decimalPipe.transform(filter.filterValue, formatDecimal)\r\n ?? filter.filterValue;\r\n }\r\n case InputTypes.RATE_INPUT:\r\n {\r\n if(filter.isFraction){\r\n return this.percentPipe.transform(filter.filterValue)\r\n ?? filter.filterValue;\r\n }\r\n else{\r\n return this.percentPipe.transform(filter.filterValue, '0.2')\r\n ?? filter.filterValue;\r\n }\r\n }\r\n default: return filter.filterValue;\r\n }\r\n }\r\n\r\n private _createPropertySpan(property: IFilteredRequest, isSearchBoxFilters: boolean = true): string {\r\n let template : string = '';\r\n if(isSearchBoxFilters){\r\n template = this._getPropertyText(property.header);\r\n }\r\n else{\r\n template = this._getPropertyText(property.header, property.operator);\r\n }\r\n\r\n template = this._addPropertySpan(template);\r\n return template;\r\n }\r\n\r\n private _createValueSpan(property: IFilteredRequest): string{\r\n let template : string = this._getValueText(property);\r\n template = this._addValueSpan(template);\r\n return template;\r\n }\r\n\r\n private _createColumn(property: IFilteredRequest, isSearchBoxFilters: boolean = true): string{\r\n let template: string = `${this._createPropertySpan(property, isSearchBoxFilters)}${this._createValueSpan(property)}`;\r\n template = this._addColumn(template);\r\n return template;\r\n }\r\n\r\n\r\n private _createFakeColumn(): string{\r\n let template: string = '';\r\n template += this._addPropertySpan('');\r\n template += this._addValueSpan('');\r\n template = this._addColumn(template);\r\n return template;\r\n }\r\n //#endregion\r\n}\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { TsiMessageService } from './tsi-message.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorResponseManagerService {\r\n\r\n constructor(private _messageService: TsiMessageService) { }\r\n\r\n public showErrorMessage(response: HttpErrorResponse): void {\r\n\r\n if (response.error && typeof (response.error) == 'string') {\r\n this._messageService.error(response.error);\r\n return;\r\n }\r\n if (response.error && response.error.error && typeof (response.error.error) == 'string') {\r\n this._messageService.error(response.error.error);\r\n return;\r\n }\r\n if (response.error && typeof (response.error) == 'object') {\r\n if (response.error.errors.hasOwnProperty(\"547\")) {\r\n this._messageService.error(\"Impossible de supprimer un élément avec des données associées.\");\r\n return;\r\n }\r\n }\r\n\r\n let errorList: [[]] = response.error?.errors;\r\n let errorMessage: string = \"\";\r\n let errorMessages: string[] = [];\r\n\r\n for (let key in errorList) {\r\n errorList[key].forEach(element => {\r\n errorMessage += '\\n' + element;\r\n errorMessages.push(element);\r\n });\r\n }\r\n\r\n this._messageService.error(errorMessage, \"\", errorMessages);\r\n }\r\n\r\n public showValidationErrorMessage(response: HttpErrorResponse): void {\r\n\r\n let errorList: Array<any> = response.error.error.validationErrors;\r\n let errorMessage: string = \"\";\r\n\r\n errorList.forEach(element => {\r\n errorMessage += '\\n' + element.message;\r\n });\r\n\r\n this._messageService.error(errorMessage);\r\n }\r\n\r\n public showErrorMessagesFromArrayString(errorMessages: string[]) {\r\n this._messageService.error(\"\", \"\", errorMessages);\r\n }\r\n\r\n public showUserFriendlyErrorMessage(response: HttpErrorResponse): void {\r\n\r\n this._messageService.error(response.error.result);\r\n\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { EntityPropertiesResponse } from '../../models';\r\nimport { AdministrationEndpoints } from '../../end-points/endpoints';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EntityStatusService {\r\n\r\n constructor(private http : HttpClient) { }\r\n\r\n getEntityStatus(className : string | undefined) : Observable<EntityPropertiesResponse>{\r\n return this.http.get<EntityPropertiesResponse>(AdministrationEndpoints.getAllEntityStatus(className))\r\n }\r\n\r\n}\r\n","import { KeyValue } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { LayoutOrientation } from '../../../enums';\r\nimport { TsiInputBase } from '../../../tsi-base/tsi-input-base/tsi-input-base.component';\r\n\r\n@Component({\r\n selector: 'Tsi-Radio-Button',\r\n templateUrl: './tsi-radio-button.component.html',\r\n styleUrls: ['./tsi-radio-button.component.css']\r\n})\r\nexport class TsiRadioButtonComponent extends TsiInputBase<any>{\r\n //#region local variables\r\n verticalLayoutOrientation: LayoutOrientation = LayoutOrientation.vertical;\r\n horizontalLayoutOrientation: LayoutOrientation = LayoutOrientation.horizontal;\r\n //#endregion\r\n //#region inputs\r\n @Input() dataSource?: Array<KeyValue<any, string>>;\r\n // @Input() inputField: any;\r\n @Input('class') class: any = {};\r\n @Input() layoutOrientation: LayoutOrientation = LayoutOrientation.vertical;\r\n //#endregion\r\n\r\n //#region outputs\r\n @Output() inputFieldChange = new EventEmitter<string>();\r\n //#endregion\r\n\r\n onChangeofOptions(input: any):void {\r\n this.inputField = input;\r\n this.inputFieldChange.emit(input);\r\n }\r\n}\r\n","<!-- align items vertical -->\r\n<div *ngIf=\"layoutOrientation == verticalLayoutOrientation\">\r\n <div *ngFor=\"let item of dataSource\" class=\"custom-control custom-radio\">\r\n <p-radioButton [disabled]=\"disabled\" class=\"tsi-component {{validationStatusCssClass}}\" name=\"groupname\" value=\"{{item.key}}\" label=\"{{item.value | localize}}\"\r\n [ngModel]=\"inputField\" (ngModelChange)=\"onChangeofOptions($event)\"></p-radioButton>\r\n </div>\r\n</div>\r\n\r\n<!-- align items horizontal -->\r\n<div class=\"flex flex-row\" *ngIf=\"layoutOrientation == horizontalLayoutOrientation\">\r\n <div *ngFor=\"let item of dataSource\" class=\"custom-control custom-radio p-1\" >\r\n <p-radioButton [disabled]=\"disabled\" class=\"tsi-component {{validationStatusCssClass}}\" name=\"groupname\" value=\"{{item.key}}\" label=\"{{item.value | localize}}\"\r\n [ngModel]=\"inputField\" (ngModelChange)=\"onChangeofOptions($event)\"></p-radioButton>\r\n </div>\r\n</div>\r\n","import { Component, Input} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'Tsi-Label',\r\n templateUrl: './Tsi-Label.component.html',\r\n styleUrls: ['./Tsi-Label.component.css']\r\n})\r\nexport class TsiLabelComponent {\r\n @Input() labelValue :string ='' ;\r\n @Input() styleClass :string ='' ;\r\n @Input() infoText: string = '';\r\n}\r\n","<div class=\"flex\">\r\n <label class=\"fs-6 font-weight-normal tsi-component {{styleClass}}\" for=\"{{labelValue}}\">\r\n {{ labelValue | localize }}\r\n </label>\r\n <Tsi-Bubble-Info [infoText]=\"infoText\"></Tsi-Bubble-Info>\r\n</div>","import { Component, EventEmitter, HostListener, Input, OnInit, Output } from '@angular/core';\r\nimport { TooltipPosition } from '../../enums/tooltipPosition.enum';\r\nimport { InputTypes, LayoutOrientation } from '../../enums';\r\nimport { SearchField, entityInfo, KeyValuePair, EntityPropertiesResponse } from '../../models';\r\nimport { EntityStatusService } from '../../services/status/entityStatus.service';\r\nimport { FilterHelper } from '../../tsi-helpers/filter-helper';\r\n\r\n@Component({\r\n selector: 'tsi-search-box',\r\n templateUrl: './tsi-search-box.component.html',\r\n styleUrls: ['./tsi-search-box.component.scss'],\r\n})\r\nexport class TsiSearchBoxComponent implements OnInit {\r\n //#region local vars\r\n private _searchFields!: Array<SearchField>;\r\n inputTypes = InputTypes;\r\n fakeAlwaysFalseCondition: boolean = false;\r\n tooltipPosition = TooltipPosition;\r\n keyword: string | undefined;\r\n layoutOrientationRef = LayoutOrientation\r\n prop: string = '';\r\n //#endregion\r\n\r\n //#region inputs\r\n @Input() set searchFields(value: Array<SearchField> | undefined) {\r\n if (value) {\r\n //reset\r\n this._searchFields = [];\r\n\r\n //init using value\r\n this._searchFields = FilterHelper.initSearchFields(value);\r\n }\r\n }\r\n get searchFields() {\r\n return this._searchFields;\r\n }\r\n private _businessClass : string | undefined;\r\n @Input() set businessClass(value: string | undefined) {\r\n this._businessClass = value;\r\n this.getEntityStatus();\r\n }\r\n get businessClass() {\r\n return this._businessClass;\r\n }\r\n\r\n @Input() isRtlMode: boolean = false;\r\n @Input() isSearchButtonDisabled: boolean = false;\r\n @Input() entityInfo: entityInfo | undefined;\r\n //#region\r\n\r\n //#region outputs\r\n @Output() searchFieldsChange!: EventEmitter<Array<SearchField>>;\r\n @Output() searchFieldsApplied: EventEmitter<Array<SearchField>> = new EventEmitter<Array<SearchField>>();\r\n @Output() keywordValueChanged: EventEmitter<string | undefined> = new EventEmitter<string | undefined>();\r\n @Output() statusFilterChanged: EventEmitter<string | undefined> = new EventEmitter<string | undefined>();\r\n @Output() comboBoxLabelChanged : EventEmitter<Array<SearchField>> = new EventEmitter<Array<SearchField>>()\r\n //#endregion\r\n\r\n constructor(private entityStatusService: EntityStatusService) {\r\n this._init();\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n //#region events handlers\r\n onSearchFieldValueChange(searchField: SearchField): void {\r\n this.searchFieldsChange.emit(this.searchFields);\r\n }\r\n onSearch() {\r\n this.keywordValueChanged.emit(this.keyword);\r\n this.searchFieldsApplied.emit(this.searchFields);\r\n }\r\n //#endregion\r\n\r\n //#region private methods\r\n private _init(): void {\r\n this._searchFields = [];\r\n this.searchFieldsChange = new EventEmitter<Array<SearchField>>();\r\n }\r\n\r\n getComboLabel(searchField: SearchField, label: string) {\r\n searchField.comboboxLabel = label;\r\n this.comboBoxLabelChanged.emit(this.searchFields);\r\n }\r\n\r\n private _status: string | undefined;\r\n // Getter for status\r\n get status(): string | undefined {\r\n return this._status;\r\n }\r\n // Setter for status\r\n set status(value: string | undefined) {\r\n this._status = value;\r\n }\r\n entityStatusList: KeyValuePair<string, string>[] = [];\r\n private getEntityStatus(): void {\r\n this.entityStatusService.getEntityStatus(this.businessClass).subscribe({\r\n next: (data: EntityPropertiesResponse) => {\r\n if (!data) return;\r\n\r\n if (data.entityStatus && Array.isArray(data.entityStatus)) {\r\n this.entityStatusList = data.entityStatus;\r\n }\r\n this.status = data.defaultStatus;\r\n },\r\n });\r\n }\r\n //#endregion\r\n\r\n onStatusChange(evt: any){\r\n this.status = evt;\r\n this.statusFilterChanged.emit(this.status);\r\n }\r\n\r\n @HostListener('window:keydown',['$event'])\r\n handleKeyDown(event: KeyboardEvent){\r\n if (event.key === 'F5' || event.key === 'Enter') {\r\n event.preventDefault();\r\n this.onSearch();\r\n }\r\n }\r\n}\r\n","<div class=\"card\">\r\n <div class=\"grid p-2\" [ngClass]=\"{'p-3': isRtlMode}\">\r\n <div *ngFor=\"let searchField of searchFields\" class=\"{{searchField.styleClass}} grid no-pad\"\r\n presentationDesignerBase=\"{{searchField.field}}\">\r\n <!-- Not MaxMin === Single Filter Input -->\r\n <!-- Fake element to escape bizarre input format -->\r\n <div *ngIf=\"fakeAlwaysFalseCondition; else searchComboBlock\">\r\n </div>\r\n <!-- Tsi-Search-Combo -->\r\n <ng-template #searchComboBlock>\r\n <ng-container *ngIf=\"searchField.type == inputTypes.SEARCH_COMBO; else currencySocieteInputBlock\">\r\n <Tsi-Label class=\"{{searchField.labelStyleClass}} pr-1\"\r\n [labelValue]=\"searchField.labelValue | localize\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"{{searchField.inputStyleClass}}\" [elementSourceUrl]=\"searchField.elementSourceUrl\"\r\n [listSourceUrl]=\"searchField.listSourceUrl\" [(bind)]=\"searchField.value\"\r\n id-field=\"{{searchField.idField}}\" label-field=\"{{searchField.labelField}}\"\r\n [isFiltered]=\"searchField.isFiltered\" (bindChange)=\"onSearchFieldValueChange(searchField)\"\r\n [disabled]=\"searchField.disabled ?? false\" [(selectedLabel)]=\"searchField.comboboxLabel\"\r\n (selectedLabelChange)=\"getComboLabel(searchField,$event)\"\r\n [businessClass]=\"searchField.businessClass ?? ''\" [showAddButton]=\"searchField.showAddButton ?? true\" [showUpdateButton]=\"searchField.showUpdateButton ?? undefined\" [showConsultButton]=\"searchField.showConsultButton ?? undefined\"\r\n [showSearchButton]=\"searchField.showSearchButton ?? true\"></Tsi-Search-Combo>\r\n </ng-container>\r\n\r\n </ng-template>\r\n\r\n <!-- Tsi-Currency-Societe-Input -->\r\n <ng-template #currencySocieteInputBlock>\r\n <ng-container *ngIf=\"searchField.type == inputTypes.CURRENCY_SOCIETE_INPUT; else currencyOtherInputBlock\">\r\n <Tsi-Label class=\"{{searchField.labelStyleClass}}\"\r\n [labelValue]=\"searchField.labelValue | localize\"></Tsi-Label>\r\n <Tsi-Currency-Societe-Input class=\"{{searchField.inputStyleClass}}\" [inputName]=\"searchField.field\"\r\n [inputId]=\"searchField.field\" [(inputField)]=\"searchField.value\"\r\n (inputFieldChange)=\"onSearchFieldValueChange(searchField)\" [disabled]=\"searchField.disabled ?? false\">\r\n </Tsi-Currency-Societe-Input>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Currency-Other-Input -->\r\n <ng-template #currencyOtherInputBlock>\r\n <ng-container *ngIf=\"searchField.type == inputTypes.CURRENCY_OTHER_INPUT; else datePickerInputBlock\">\r\n <Tsi-Label class=\"{{searchField.labelStyleClass}}\"\r\n [labelValue]=\"searchField.labelValue | localize\"></Tsi-Label>\r\n <Tsi-Currency-Other-Input class=\"{{searchField.inputStyleClass}}\" [inputName]=\"searchField.field\"\r\n [inputId]=\"searchField.field\" [(inputField)]=\"searchField.value\"\r\n (inputFieldChange)=\"onSearchFieldValueChange(searchField)\" [disabled]=\"searchField.disabled ?? false\"\r\n [currency]=\"searchField.currency\">\r\n </Tsi-Currency-Other-Input>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Date-Picker -->\r\n <ng-template #datePickerInputBlock>\r\n <ng-container *ngIf=\"searchField.type == inputTypes.DATE; else datetimePickerInputBlock\">\r\n <Tsi-Label class=\"{{searchField.labelStyleClass}}\"\r\n [labelValue]=\"searchField.labelValue | localize\"></Tsi-Label>\r\n <Tsi-Date-Picker class=\"{{searchField.inputStyleClass}}\" [inputName]=\"searchField.field\"\r\n [inputId]=\"searchField.field\" [(inputField)]=\"searchField.value\"\r\n [disabled]=\"searchField.disabled ?? false\" (inputFieldChange)=\"onSearchFieldValueChange(searchField)\">\r\n </Tsi-Date-Picker>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Date-Picker -->\r\n <ng-template #datetimePickerInputBlock>\r\n <ng-container *ngIf=\"searchField.type == inputTypes.DATETIME; else checkBoxInputBlock\">\r\n <Tsi-Label class=\"{{searchField.labelStyleClass}}\"\r\n [labelValue]=\"searchField.labelValue | localize\"></Tsi-Label>\r\n <Tsi-Date-Picker class=\"{{searchField.inputStyleClass}}\" [showTime]=\"true\" [inputName]=\"searchField.field\"\r\n [inputId]=\"searchField.field\" [(inputField)]=\"searchField.value\"\r\n [disabled]=\"searchField.disabled ?? false\" (inputFieldChange)=\"onSearchFieldValueChange(searchField)\">\r\n </Tsi-Date-Picker>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-CheckBox -->\r\n <ng-template #checkBoxInputBlock>\r\n <ng-container *ngIf=\"searchField.type == inputTypes.CHECKBOX; else decimalInputBlock\">\r\n <Tsi-Label class=\"{{searchField.labelStyleClass}}\"\r\n [labelValue]=\"searchField.labelValue | localize\"></Tsi-Label>\r\n <Tsi-CheckBox class=\"{{searchField.inputStyleClass}}\" [inputName]=\"searchField.field\"\r\n [inputId]=\"searchField.field\" [(inputField)]=\"searchField.value\"\r\n [disabled]=\"searchField.disabled ?? false\" (inputFieldChange)=\"onSearchFieldValueChange(searchField)\">\r\n </Tsi-CheckBox>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Decimal-Input -->\r\n <ng-template #decimalInputBlock>\r\n <ng-container *ngIf=\"searchField.type == inputTypes.DECIMAL_INPUT; else integerInputBlock\">\r\n <Tsi-Label class=\"{{searchField.labelStyleClass}}\"\r\n [labelValue]=\"searchField.labelValue | localize\"></Tsi-Label>\r\n <Tsi-Decimal-Input class=\"{{searchField.inputStyleClass}}\" [inputName]=\"searchField.field\"\r\n [inputId]=\"searchField.field\" [(inputField)]=\"searchField.value\"\r\n (inputFieldChange)=\"onSearchFieldValueChange(searchField)\" [disabled]=\"searchField.disabled ?? false\"\r\n [numOfDecimal]=\"searchField.numOfDecimal\">\r\n </Tsi-Decimal-Input>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Integer -->\r\n <ng-template #integerInputBlock>\r\n <ng-container *ngIf=\"searchField.type == inputTypes.INTEGER; else rateInputBlock\">\r\n <Tsi-Label class=\"{{searchField.labelStyleClass}}\"\r\n [labelValue]=\"searchField.labelValue | localize\"></Tsi-Label>\r\n <div class=\"{{searchField?.inputStyleClass}}\">\r\n <Tsi-Integer [inputName]=\"searchField.field\" [inputId]=\"searchField.field\"\r\n [(inputField)]=\"searchField.value\" (inputFieldChange)=\"onSearchFieldValueChange(searchField)\"\r\n [disabled]=\"searchField.disabled ?? false\">\r\n </Tsi-Integer>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Rate-Input -->\r\n <ng-template #rateInputBlock>\r\n <ng-container *ngIf=\"searchField.type == inputTypes.RATE_INPUT; else radioInputBlock\">\r\n <Tsi-Label class=\"{{searchField.labelStyleClass}}\"\r\n [labelValue]=\"searchField.labelValue | localize\"></Tsi-Label>\r\n <Tsi-Rate-Input class=\"{{searchField.inputStyleClass}}\" [inputName]=\"searchField.field\"\r\n [inputId]=\"searchField.field\" [(inputField)]=\"searchField.value\"\r\n (inputFieldChange)=\"onSearchFieldValueChange(searchField)\" [isFraction]=\"searchField.isFraction\"\r\n [disabled]=\"searchField.disabled ?? false\">\r\n </Tsi-Rate-Input>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #radioInputBlock>\r\n <ng-container *ngIf=\"searchField.type == inputTypes.RADIO_BUTTON; else defaultTextInputBlock\">\r\n <Tsi-Label class=\"{{searchField.labelStyleClass}}\"\r\n [labelValue]=\"searchField.labelValue | localize\"></Tsi-Label>\r\n <Tsi-Radio-Button class=\"{{searchField.inputStyleClass}}\" [inputName]=\"searchField.field\"\r\n [(inputField)]=\"searchField.value\"\r\n (inputFieldChange)=\"onSearchFieldValueChange(searchField)\"\r\n [disabled]=\"searchField.disabled ?? false\"\r\n [dataSource]=\"searchField.radioButtonDatasource\"\r\n [layoutOrientation]=\"searchField.layoutOrientation ?? layoutOrientationRef.vertical\">\r\n </Tsi-Radio-Button>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Text-Box -->\r\n <ng-template #defaultTextInputBlock>\r\n <ng-container>\r\n <Tsi-Label class=\"{{searchField.labelStyleClass}} pr-1\"\r\n [labelValue]=\"searchField.labelValue | localize\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"{{searchField.inputStyleClass}}\" [inputName]=\"searchField.field\"\r\n [inputId]=\"searchField.field\" [(inputField)]=\"searchField.value\"\r\n (inputFieldChange)=\"onSearchFieldValueChange(searchField)\" [disabled]=\"searchField.disabled ?? false\">\r\n </Tsi-Text-Box>\r\n </ng-container>\r\n </ng-template>\r\n <!-- -->\r\n </div>\r\n <div class=\"w-full flex px-2\">\r\n <div [ngClass]=\"isRtlMode ? 'rtl-mode' : 'ltr-mode' \" class=\"p-inputgroup rtl-mode h-2rem no-pad\">\r\n <div presentationDesignerBase=\"global_search\" class=\"p-inputgroup rtl-mode h-2rem no-pad\">\r\n <input class=\"\" type=\"text\" [(ngModel)]=\"keyword\" pInputText [placeholder]=\"'global_search' | localize\">\r\n <div *ngIf=\"businessClass && entityStatusList && entityStatusList.length > 0\" id=\"status-filter\"\r\n class=\"flex align-items-center gap-2\" [presentationDesignerBase]=\"entityInfo?.statusColumnName\">\r\n <Tsi-Search-Combo [id-field]=\"'key'\" [placeHolder]=\"'Statut'\" [label-field]=\"'value'\" (bindChange)=\"onStatusChange($event)\"\r\n [datasource]=\"entityStatusList\" >\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div presentationDesignerBase=\"search_button\">\r\n <Tsi-Button styleClass=\"p-element ng-tns-c79583503-1221 p-button p-component p-button-icon-only\" type=\"button\"\r\n [disabled]=\"isSearchButtonDisabled\" icon=\"pi pi-search\" [tooltipPosition]=\"tooltipPosition.Top\"\r\n tooltipText=\"shared_tsi-search_box_rechercher\" (click)=\"onSearch()\"></Tsi-Button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { AfterContentChecked, ChangeDetectorRef, Component, inject, OnDestroy, OnInit } from '@angular/core';\r\nimport { Segment } from '../../../end-points/baseuri';\r\nimport { entityInfo } from '../../../models/entity-info/entity-info';\r\nimport { EntityConfigurationService } from '../../../services/configuration/entity-configuration.service';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\n\r\n@Component({\r\n selector: 'app-app-base',\r\n templateUrl: './app-base.component.html',\r\n styleUrls: ['./app-base.component.scss']\r\n})\r\nexport abstract class AppBaseComponent implements OnInit\r\n , AfterContentChecked\r\n , OnDestroy{\r\n //#region properties\r\n public formName: string = '';\r\n entityInfo: entityInfo | undefined;\r\n private _entityConfigService = inject(EntityConfigurationService);\r\n public get formEndpoint() : string {\r\n return this._formEndpoint;\r\n };\r\n protected set formEndpoint(endpoint: string) {\r\n this._formEndpoint = `${Segment.base}/${endpoint}`;\r\n }\r\n public get businessClass(){\r\n return this._businessClass;\r\n }\r\n\r\n public set businessClass(value: string) {\r\n this._businessClass = value;\r\n this.getEntityInformation(this._businessClass);\r\n }\r\n\r\n async getEntityInformation(businessClass: string) {\r\n try {\r\n this.entityInfo = await this._entityConfigService.getEntityInfoFromCache(\r\n businessClass\r\n );\r\n } catch (error) {\r\n console.error('error : ', error);\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n //#region private properties\r\n private _formEndpoint : string = '';\r\n public _businessClass!: string;\r\n //#endregion\r\n\r\n protected openedDialogRef?: DynamicDialogRef = inject(DynamicDialogRef);\r\n protected openedDialogConfig?: DynamicDialogConfig = inject(DynamicDialogConfig);\r\n\r\n constructor(protected cdRef?: ChangeDetectorRef) {\r\n this._setFormName();\r\n this.initModalData()\r\n }\r\n\r\n protected initModalData() {\r\n console.log(\"from app Base custom Data => \", this.openedDialogConfig?.data?.customData)\r\n console.log(\"from tsi-app-base : \", {\r\n \"_openedDialogRef\": this.openedDialogRef,\r\n \"_openedDialogConfig\": this.openedDialogConfig\r\n })\r\n if (this.openedDialogRef != null\r\n && this.openedDialogRef != undefined\r\n && this.openedDialogConfig != null\r\n && this.openedDialogConfig != undefined) {\r\n //check have _openedDialogConfig\r\n if (this.openedDialogConfig.data != null && this.openedDialogConfig.data != undefined) {\r\n let keys = Object.keys(this.openedDialogConfig.data)\r\n keys.forEach(key => {\r\n if (/*this.hasOwnProperty(key)true*/ this.openedDialogConfig != null\r\n && this.openedDialogConfig != undefined) {\r\n\r\n // Solution 2: When the type of the object is not known\r\n //const temp = this[key as keyof typeof this]\r\n this[key as keyof typeof this] = this.openedDialogConfig.data[key];\r\n }\r\n else {\r\n throw new Error(`${this.constructor.name} doesn't contain property with name ${key}`);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n }\r\n ngOnInit(): void {\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n if(this.cdRef != undefined){\r\n this.cdRef.detectChanges();\r\n }\r\n }\r\n\r\n //#region private methods\r\n\r\n private _setFormName(): void{\r\n // console.log('Object(this) : ',Object(this));\r\n // console.log('typeof(this) : ',typeof(this));\r\n // console.log('Object.getPrototypeOf : ',Object.getPrototypeOf(Object(this)));\r\n // console.log('ɵcmp : ',(<any>this.constructor).ɵcmp);\r\n // console.log('ɵcmp name : ',(<any>this.constructor).ɵcmp?.type.name);\r\n // console.log('ctor ɵcmp selectors : ',(<any>this.constructor).ɵcmp?.selectors);\r\n // console.log('ctor ɵcmp selector[0][0] : ',(<any>this.constructor).ɵcmp?.selectors[0]);\r\n this.formName = this._myName();\r\n console.log('my name is : ', this.formName);\r\n }\r\n\r\n public _myName(): string{\r\n return (<any>this.constructor).ɵcmp?.selectors[0][0];\r\n }\r\n //#endregion\r\n}","<p>app-base works!</p>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { ButtonClickResult } from '../../interfaces/grid/grid-configuration';\r\n@Component({\r\n selector: 'Tsi-card',\r\n templateUrl: './tsi-card.component.html',\r\n styleUrl: './tsi-card.component.scss'\r\n})\r\nexport class TsiCardComponent implements OnInit {\r\n @Input() id?: number;\r\n @Input() headerTitle?: string;\r\n @Input() subHeaderTitle?: string;\r\n @Input() description?: string;\r\n @Input() imgUrl?: string;\r\n @Input() uid?: string;\r\n @Input() formName?: string;\r\n\r\n @Output() buttonClicked = new EventEmitter<ButtonClickResult>();\r\n\r\n _dialogRef?: DynamicDialogRef;\r\n\r\n constructor(\r\n ) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n consult(uid?: string) {\r\n if (uid) {\r\n this.openModalComponent(uid, 'consult');\r\n }\r\n }\r\n\r\n edit(uid?: string) {\r\n if (uid) {\r\n this.openModalComponent(uid, 'edit');\r\n }\r\n }\r\n\r\n delete(uid?: string) {\r\n if (uid) {\r\n this.openModalComponent(uid, 'delete');\r\n }\r\n }\r\n \r\n upload(uid?: string) {\r\n if (uid) {\r\n this.openModalComponent(uid, 'upload');\r\n }\r\n }\r\n \r\n info(uid?: string) {\r\n if (uid) {\r\n this.openModalComponent(uid, 'info');\r\n }\r\n }\r\n\r\n private openModalComponent(uid: string, mode: string){\r\n this.buttonClicked.emit({ field: mode, key: uid, selectKeyOnly: true });\r\n }\r\n\r\n}","<div class=\"card-container\">\r\n <p-card>\r\n <ng-template pTemplate=\"header\" >\r\n <div class=\"fixed-card-header\">\r\n <img *ngIf=\"imgUrl\" [src]=\"imgUrl.startsWith('./assets') ? imgUrl : 'data:image/png;base64,' + imgUrl\" />\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"title\">\r\n <span *ngIf=\"headerTitle\">\r\n {{ headerTitle }}\r\n </span>\r\n </ng-template>\r\n \r\n <ng-template pTemplate=\"subtitle\">\r\n <span *ngIf=\"subHeaderTitle\">\r\n {{ subHeaderTitle }}\r\n </span>\r\n </ng-template>\r\n \r\n <ng-template pTemplate=\"body\">\r\n <p class=\"clamp-text\" *ngIf=\"description\">\r\n {{ description }}\r\n </p>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"footer\">\r\n <div class=\"flex justify-content-center align-items-center mt-1 gap-4\">\r\n <div class=\"flex\">\r\n <Tsi-Button [styleClass]=\"'p-button-rounded p-button-text p-0-5'\"\r\n type=\"button\" icon=\"pi pi pi-eye\"\r\n (click)=\"consult(uid)\">\r\n </Tsi-Button>\r\n <Tsi-Button [styleClass]=\"'p-button-rounded p-button-text p-0-5'\"\r\n type=\"button\" icon=\"pi pi-pencil\"\r\n (click)=\"edit(uid)\">\r\n </Tsi-Button>\r\n <Tsi-Button [styleClass]=\"'p-button-rounded p-button-text p-button-danger p-0-5'\"\r\n type=\"button\" icon=\"pi pi-trash\"\r\n (click)=\"delete(uid)\">\r\n </Tsi-Button>\r\n </div>\r\n <div class=\"flex\">\r\n <Tsi-Button [styleClass]=\"'p-button-rounded p-button-text p-0-5'\"\r\n type=\"button\" icon=\"pi pi-paperclip\"\r\n (click)=\"upload(uid)\">\r\n </Tsi-Button>\r\n <Tsi-Button [styleClass]=\"'p-button-rounded p-button-text p-0-5'\"\r\n type=\"button\" icon=\"pi pi-info\"\r\n (click)=\"info(uid)\">\r\n </Tsi-Button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </p-card>\r\n</div>","import { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnInit, Optional, Output, SimpleChanges } from '@angular/core';\r\nimport { PaginatorState } from 'primeng/paginator';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ButtonClickResult } from '../../interfaces';\r\nimport { TsiCard } from '../../models';\r\nimport { defaultCardHeader } from '../../consts/tsi-consts';\r\nimport { AppBaseComponent } from '../../tsi-base/components/app-base/app-base.component';\r\n\r\n@Component({\r\n selector: 'Tsi-card-list',\r\n templateUrl: './tsi-card-list.component.html',\r\n styleUrl: './tsi-card-list.component.scss',\r\n})\r\nexport class TsiCardListComponent extends AppBaseComponent implements OnInit, OnChanges {\r\n\r\n @Input() cardBusinessClass: any;\r\n @Input() header: any;\r\n @Input() id: any;\r\n\r\n private _page: any;\r\n get page() { return this._page; }\r\n\r\n @Input() set page(value: any) {\r\n this._page = value;\r\n this.handlePageChange(value);\r\n }\r\n\r\n @Output() buttonClicked = new EventEmitter<ButtonClickResult>();\r\n @Output() callSearch = new EventEmitter<any>();\r\n\r\n @Input() page$!: BehaviorSubject<any>;\r\n\r\n displayedCards: TsiCard[] = [];\r\n listCards: TsiCard[] = [];\r\n first: number = 0;\r\n rows: number = 10;\r\n totalCount: number = 0;\r\n\r\n isLoading: boolean = false;\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n ) {\r\n super();\r\n }\r\n\r\n async ngOnChanges(changes: SimpleChanges) {\r\n if (changes['page']) {\r\n this.handlePageChange(this.page);\r\n }\r\n }\r\n\r\n override async ngOnInit() {\r\n super.ngOnInit();\r\n this.businessClass = this.cardBusinessClass;\r\n\r\n this.isLoading = true;\r\n this.page$.subscribe(page => {\r\n this.page = page;\r\n this.handlePageChange(page);\r\n this.isLoading = this.page?.loading != null && this.page?.loading != undefined\r\n ? this.page.loading\r\n : false;\r\n });\r\n\r\n }\r\n\r\n onPageChange(event: PaginatorState) {\r\n this.first = event.first ?? 0;\r\n this.rows = event.rows ?? 10;\r\n this.callSearch.emit({ skipCount: this.first, maxResultCount: this.rows });\r\n\r\n }\r\n\r\n private updateDisplayedCards() {\r\n if (this.listCards.length > 0) {\r\n this.displayedCards = [...this.listCards];\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private async mapItemsToCards(items: any[]): Promise<TsiCard[]> {\r\n const { col1, col2, col3, photo } = this.getColKeys();\r\n\r\n return items.map((item: any, index: number) => {\r\n const keys = Object.keys(item).reduce((acc, key) => {\r\n acc[key.toLowerCase()] = key;\r\n return acc;\r\n }, {} as { [lowerKey: string]: string });\r\n\r\n return {\r\n id: index + 1 + this.first,\r\n uid: `${item.uid}`,\r\n headerTitle: `${item[keys[col1]] ?? ''}`,\r\n subHeaderTitle: `${item[keys[col2]] ?? ''}`,\r\n description: `${item[keys[col3]] ?? ''}`,\r\n photo: item[keys[photo]] != '' && item[keys[photo]] != null\r\n ? item[keys[photo]]\r\n : defaultCardHeader.image\r\n };\r\n });\r\n }\r\n\r\n private getColKeys() {\r\n return {\r\n photo: this.entityInfo?.cardHeaderPhotoColumn?.toLowerCase() ?? '',\r\n col1: this.entityInfo?.cardTitleColumn?.toLowerCase() ?? '',\r\n col2: this.entityInfo?.cardSubHeaderColumn?.toLowerCase() ?? '',\r\n col3: this.entityInfo?.cardDescriptionColumn?.toLowerCase() ?? '',\r\n };\r\n }\r\n\r\n private async handlePageChange(page: any) {\r\n if (!page || !page.items)\r\n return;\r\n\r\n this.listCards = await this.mapItemsToCards(page.items);\r\n this.totalCount = page.totalCount;\r\n this.updateDisplayedCards();\r\n this.cdr.markForCheck();\r\n }\r\n}","<div class=\"flex flex-wrap gap-2\">\r\n <Tsi-card *ngFor=\"let card of displayedCards\"\r\n class=\"tsi-card\"\r\n [uid]=\"card.uid\"\r\n [headerTitle]=\"card.headerTitle\"\r\n [subHeaderTitle]=\"card.subHeaderTitle\"\r\n [description]=\"card.description\"\r\n [imgUrl]=\"card.photo\"\r\n [formName]=\"formName\"\r\n (buttonClicked)=\"buttonClicked.emit($event)\">\r\n </Tsi-card>\r\n</div>\r\n<div class=\"card flex justify-content-center mt-4\">\r\n <p-paginator\r\n [first]=\"first\"\r\n [rows]=\"rows\"\r\n [totalRecords]=\"totalCount\"\r\n [rowsPerPageOptions]=\"[1, 10, 25, 50]\"\r\n (onPageChange)=\"onPageChange($event)\"\r\n [showCurrentPageReport]=\"true\"\r\n currentPageReportTemplate=\"{{ 'Showing' | localize }} {first} {{'to' | localize}} {last} {{ 'of' | localize }} {totalRecords}\">\r\n </p-paginator>\r\n</div> \r\n\r\n<div class=\"overlay\" *ngIf=\"isLoading\">\r\n <div class=\"spinner-wrapper\">\r\n <app-spinner></app-spinner>\r\n </div>\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\nimport { defaultCardHeader } from '../../../consts/tsi-consts';\r\n\r\n@Component({\r\n selector: 'tsi-image-display',\r\n templateUrl: './tsi-image-display.component.html',\r\n styleUrl: './tsi-image-display.component.scss'\r\n})\r\nexport class TsiImageDisplayComponent implements OnInit {\r\n\r\n @Input() src: any;\r\n @Input() alt: string = 'image';\r\n @Input() width: string = '100%';\r\n @Input() height: string = 'auto';\r\n @Input() isRounded: boolean = false;\r\n\r\n title: string = \"\";\r\n private _headerTitles: string[] = [];\r\n @Input()\r\n set headerTitles(v: string[]) {\r\n this._headerTitles = v;\r\n this.title = this._headerTitles.join(' - ');\r\n }\r\n get headerTitles(): string[] { return this._headerTitles; }\r\n\r\n get safeSrc(): SafeUrl {\r\n if (!this.src)\r\n return defaultCardHeader.image;\r\n\r\n if (typeof this.src === 'string' && this.src.startsWith('data:image'))\r\n return this._sanitizer.bypassSecurityTrustUrl(this.src);\r\n\r\n return this._sanitizer.bypassSecurityTrustUrl(`data:image/jpeg;base64,${this.src}`);\r\n }\r\n\r\n //#region Zoom in/out\r\n get cursorStyle(): string {\r\n if (this.zoomLevel > 1) {\r\n return this.isDragging ? 'grabbing' : 'grab';\r\n }\r\n return 'zoom-in';\r\n }\r\n\r\n get canZoomIn(): boolean {\r\n return this.zoomLevel < this.MAX_ZOOM;\r\n }\r\n\r\n get canZoomOut(): boolean {\r\n return this.zoomLevel > this.MIN_ZOOM;\r\n }\r\n\r\n displayDialog: boolean = false;\r\n\r\n zoomLevel: number = 1;\r\n readonly MIN_ZOOM = 1;\r\n readonly MAX_ZOOM = 3;\r\n readonly ZOOM_STEP = 0.5;\r\n //#endregion\r\n\r\n //#region Dragging\r\n isDragging: boolean = false;\r\n startX = 0;\r\n startY = 0;\r\n translateX = 0;\r\n translateY = 0;\r\n lastTranslateX = 0;\r\n lastTranslateY = 0;\r\n //#endregion\r\n\r\n constructor(private _sanitizer: DomSanitizer) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n showImage(): void {\r\n this.displayDialog = true;\r\n }\r\n\r\n hideImage(): void {\r\n this.displayDialog = false;\r\n }\r\n\r\n onWheel(event: WheelEvent): void {\r\n event.preventDefault();\r\n if (event.deltaY < 0) {\r\n if (this.canZoomIn)\r\n this.zoomIn();\r\n } else {\r\n if (this.canZoomOut)\r\n this.zoomOut();\r\n }\r\n }\r\n\r\n private zoomIn() {\r\n if (this.zoomLevel < this.MAX_ZOOM)\r\n this.zoomLevel = Math.min(this.zoomLevel + this.ZOOM_STEP, this.MAX_ZOOM);\r\n }\r\n\r\n private zoomOut() {\r\n if (this.zoomLevel > this.MIN_ZOOM) {\r\n this.zoomLevel = Math.max(this.zoomLevel - this.ZOOM_STEP, this.MIN_ZOOM);\r\n\r\n if (this.zoomLevel === this.MIN_ZOOM) {\r\n this.resetZoomAndPan();\r\n }\r\n }\r\n }\r\n\r\n resetZoomAndPan(): void {\r\n this.zoomLevel = 1;\r\n this.translateX = 0;\r\n this.translateY = 0;\r\n this.lastTranslateX = 0;\r\n this.lastTranslateY = 0;\r\n }\r\n\r\n onMouseDown(event: MouseEvent) {\r\n if (this.zoomLevel <= 1)\r\n return;\r\n\r\n this.isDragging = true;\r\n this.startX = event.clientX;\r\n this.startY = event.clientY;\r\n }\r\n\r\n onMouseMove(event: MouseEvent) {\r\n if (!this.isDragging) return;\r\n\r\n const dx = event.clientX - this.startX;\r\n const dy = event.clientY - this.startY;\r\n\r\n this.translateX = this.lastTranslateX + dx;\r\n this.translateY = this.lastTranslateY + dy;\r\n }\r\n\r\n onMouseUp() {\r\n this.isDragging = false;\r\n this.lastTranslateX = this.translateX;\r\n this.lastTranslateY = this.translateY;\r\n }\r\n\r\n onMouseLeave() {\r\n if (this.isDragging)\r\n this.onMouseUp();\r\n }\r\n\r\n get panTransform(): string {\r\n let tx = this.translateX / this.zoomLevel;\r\n let ty = this.translateY / this.zoomLevel;\r\n return `scale(${this.zoomLevel}) translate(${tx}px, ${ty}px)`;\r\n }\r\n}","<div class=\"avatar\" [ngClass]=\"isRounded ? 'rounded' : ''\">\r\n <img [src]=\"safeSrc\"\r\n [alt]=\"alt | localize\"\r\n [style.width]=\"width\"\r\n [style.height]=\"height\"\r\n (click)=\"showImage()\"/>\r\n </div>\r\n\r\n<p-dialog [(visible)]=\"displayDialog\"\r\n [ngClass]=\"displayDialog ? 'dialog-avatar' : 'hidden'\"\r\n [modal]=\"true\"\r\n [style]=\"{ width: '50vw', 'max-height': '85vh'}\"\r\n [dismissableMask]=\"true\"\r\n [closable]=\"true\"\r\n [baseZIndex]=\"10000\"\r\n [contentStyle]=\"{overflow: 'auto', 'padding': '0'}\"\r\n [header]=\"title | localize\">\r\n <div class=\"img-dialog\">\r\n <img [src]=\"safeSrc\" [alt]=\"alt | localize\"\r\n (wheel)=\"onWheel($event)\"\r\n (mousedown)=\"onMouseDown($event)\"\r\n (mousemove)=\"onMouseMove($event)\"\r\n (mouseup)=\"onMouseUp()\"\r\n (mouseleave)=\"onMouseLeave()\"\r\n (dblclick)=\"resetZoomAndPan()\"\r\n (click)=\"zoomLevel = 1.2\"\r\n [style.transform]=\"panTransform\"\r\n [style.cursor]=\"cursorStyle\"\r\n draggable=\"false\"\r\n />\r\n </div>\r\n</p-dialog>","export const LocalizationKeys={\r\n savedSuccessfully:'SavedSuccessfully',\r\n retrievedSuccessfully:'RetrievedSuccessfully',\r\n createdSuccessfully:'createdSuccessfully',\r\n updatedSuccessfully:'updatedSuccessfully',\r\n deletedSuccessfully:'deletedSuccessfully',\r\n confirmDelete: 'ConfirmDelete',\r\n calculatedSuccessfully:'calculatedSuccessfully',\r\n generatedSuccessfully:'generatedSuccessfully',\r\n payementsadded:'payementsadded',\r\n\r\n}","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { PaginatorState } from 'primeng/paginator';\r\nimport { BehaviorSubject, firstValueFrom } from 'rxjs';\r\nimport { LocalizationKeys } from '../../consts/localization-key';\r\nimport { ButtonClickResult } from '../../interfaces';\r\nimport { TsiCard } from '../../models';\r\nimport { defaultCardHeader } from '../../consts/tsi-consts';\r\nimport { AppBaseComponent } from '../../tsi-base/components/app-base/app-base.component';\r\nimport { LocalizePipe } from '../../pipes/localize.pipe';\r\nimport { CrudBaseService } from '../../services/base/crud-base.service';\r\nimport { EntityConfigurationService } from '../../services/configuration/entity-configuration.service';\r\nimport { TsiNotificationService } from '../../services/notification/tsi-notification.service';\r\nimport { EntityStatusService } from '../../services/status/entityStatus.service';\r\n\r\n/**\r\n * TsiKanbanComponent\r\n * Description: Displays a Kanban board view for TSI entities.\r\n */\r\n@Component({\r\n selector: 'Tsi-kanban',\r\n templateUrl: './tsi-kanban.component.html',\r\n styleUrl: './tsi-kanban.component.scss',\r\n})\r\nexport class TsiKanbanComponent extends AppBaseComponent implements OnInit {\r\n\r\n @Output() buttonClicked = new EventEmitter<ButtonClickResult>();\r\n @Output() callSearch = new EventEmitter<any>();\r\n\r\n @Input() cardBusinessClass: any;\r\n @Input() header: any;\r\n @Input() id: any;\r\n @Input() page$!: BehaviorSubject<any>;\r\n @Input() crudService?: CrudBaseService<any, any, any, any>;\r\n\r\n private _page: any;\r\n @Input() set page(value: any) {\r\n this._page = value;\r\n this.handlePageChange(value);\r\n }\r\n get page() { return this._page; }\r\n\r\n cards: TsiCard[] = [];\r\n cardMapByStatus: Map<string, TsiCard[]> = new Map();\r\n\r\n draggedCard: TsiCard | null = null;\r\n first = 0;\r\n rows = 10;\r\n totalCount = 0;\r\n isLoading = false;\r\n\r\n originalStatus: string = '';\r\n previousStatus: any;\r\n\r\n localizedStatusLabels: { key: string; localized: string }[] =\r\n [\r\n ];\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private _entityConfig: EntityConfigurationService,\r\n private _localize: LocalizePipe,\r\n private _entityStatusService: EntityStatusService,\r\n private _notificationService: TsiNotificationService,\r\n ) {\r\n super();\r\n this.localizedStatusLabels = [\r\n {\r\n key: 'new',\r\n localized: this._localize.transform('gesc_param_article_statut_enums_new').trim()\r\n }\r\n ]\r\n }\r\n\r\n override async ngOnInit() {\r\n await this.getBusinessClassStatus(this.cardBusinessClass);\r\n\r\n this.page$.subscribe(async page => {\r\n if (page) {\r\n this.isLoading = !!page.loading;\r\n await this.handlePageChange(page);\r\n }\r\n });\r\n }\r\n\r\n dragStart(_: DragEvent, card: TsiCard): void {\r\n this.draggedCard = card;\r\n this.previousStatus = this.draggedCard.status;\r\n }\r\n\r\n dragEnd(): void { this.draggedCard = null; }\r\n\r\n allowDrop(event: DragEvent): void { event.preventDefault(); }\r\n\r\n trackByStatus(index: number, status: { key: string; localized: string }) { return status.key; }\r\n\r\n trackByCard(index: number, card: TsiCard) { return card.uid; }\r\n\r\n drop(event: DragEvent, newStatusKey: string): void {\r\n this.isLoading = true;\r\n event.preventDefault();\r\n if (!this.draggedCard) return;\r\n\r\n const card = this.draggedCard;\r\n const previousStatus = this.previousStatus;\r\n\r\n if (this.draggedCard.status !== newStatusKey) {\r\n this.draggedCard.status = newStatusKey;\r\n\r\n let uid = this.draggedCard.uid!;\r\n\r\n this.crudService?.getById(uid).subscribe({\r\n next: (resp) => {\r\n const realStatusKey = Object.keys(resp).find(\r\n key => key.toLowerCase() === this.originalStatus.toLowerCase()\r\n );\r\n\r\n if (!realStatusKey) {\r\n this.draggedCard = null;\r\n this.updateCardMap();\r\n return;\r\n }\r\n\r\n const updatedItem = {\r\n ...resp,\r\n [realStatusKey]: newStatusKey\r\n };\r\n\r\n this.crudService?.update(updatedItem, uid).subscribe({\r\n next: (resp) => {\r\n this.isLoading = true;\r\n this._notificationService.success(this._localize.transform(LocalizationKeys.savedSuccessfully));\r\n this.draggedCard = null;\r\n this.updateCardMap();\r\n this.isLoading = false;\r\n },\r\n error: (error) => {\r\n let from = this._localize.transform(\"gesc_param_error_switch_status_from\");\r\n let to = this._localize.transform(\"gesc_param_error_switch_status_to\");\r\n\r\n let message = `${from} '${this.getLocalizedStatus(this.previousStatus)}' ${to} '${this.getLocalizedStatus(card.status)}'`;\r\n\r\n this._notificationService.error(message);\r\n card.status = previousStatus;\r\n this.draggedCard = null;\r\n this.updateCardMap();\r\n this.isLoading = false;\r\n }\r\n });\r\n },\r\n error: (error: any) => {\r\n card.status = previousStatus;\r\n this.draggedCard = null;\r\n this.updateCardMap();\r\n this.isLoading = false;\r\n },\r\n });\r\n\r\n this.updateCardMap();\r\n }\r\n\r\n this.draggedCard = null;\r\n }\r\n\r\n onPageChange(event: PaginatorState): void {\r\n this.first = event.first ?? 0;\r\n this.rows = event.rows ?? 10;\r\n this.callSearch.emit({ skipCount: this.first, maxResultCount: this.rows });\r\n }\r\n\r\n getStatusClass(card: TsiCard): string {\r\n const index = this.localizedStatusLabels.findIndex(l => l.key === card.status);\r\n return `status-${index >= 0 ? index : 'default'}`;\r\n }\r\n\r\n getLocalizedStatus(key: string | undefined): string {\r\n if (!key) return '';\r\n const match = this.localizedStatusLabels.find(s => s.key === key);\r\n return match?.localized ?? key;\r\n }\r\n\r\n private async handlePageChange(page: any): Promise<void> {\r\n if (!page?.items) return;\r\n\r\n this.cards = await this.mapItemsToCards(page.items);\r\n this.totalCount = page.totalCount;\r\n this.updateCardMap();\r\n }\r\n\r\n private async getEntityInfo(): Promise<void> {\r\n this.entityInfo = await this._entityConfig.getEntityInfoFromCache(this.cardBusinessClass);\r\n }\r\n\r\n private getColKeys(): Record<string, string> {\r\n return {\r\n photo: this.entityInfo?.cardHeaderPhotoColumn?.toLowerCase() ?? '',\r\n col1: this.entityInfo?.cardTitleColumn?.toLowerCase() ?? '',\r\n col2: this.entityInfo?.cardSubHeaderColumn?.toLowerCase() ?? '',\r\n col3: this.entityInfo?.cardDescriptionColumn?.toLowerCase() ?? '',\r\n status: this.entityInfo?.statusColumnName?.toLowerCase() ?? ''\r\n };\r\n }\r\n\r\n private async mapItemsToCards(items: any[]): Promise<TsiCard[]> {\r\n await this.getEntityInfo();\r\n\r\n const { col1, col2, col3, photo, status } = this.getColKeys();\r\n const validKeys = this.localizedStatusLabels.map(s => s.key);\r\n\r\n this.originalStatus = status;\r\n\r\n return items.map((item: any, index: number) => {\r\n const keys = Object.keys(item).reduce((acc, key) => {\r\n acc[key.toLowerCase()] = key;\r\n return acc;\r\n }, {} as Record<string, string>);\r\n\r\n const rawStatus = item[keys[status]]?.trim();\r\n const isValidStatus = rawStatus && validKeys.includes(rawStatus);\r\n const finalStatus = isValidStatus ? rawStatus : 'new';\r\n\r\n return {\r\n id: index + 1 + this.first,\r\n uid: `${item.uid}`,\r\n headerTitle: `${item[keys[col1]] ?? ''}`,\r\n subHeaderTitle: `${item[keys[col2]] ?? ''}`,\r\n description: `${item[keys[col3]] ?? ''}`,\r\n status: finalStatus,\r\n photo: item[keys[photo]] || defaultCardHeader.image\r\n };\r\n });\r\n }\r\n\r\n private updateCardMap(): void {\r\n const map = new Map<string, TsiCard[]>();\r\n\r\n for (const label of this.localizedStatusLabels) {\r\n map.set(label.key, []);\r\n }\r\n\r\n for (const card of this.cards) {\r\n const group = map.get(card.status!);\r\n if (group) {\r\n group.push(card);\r\n } else {\r\n console.log(`Unmapped card status: ${card.status}`, card);\r\n }\r\n }\r\n\r\n for (const [key, cards] of map.entries()) {\r\n cards.sort((a, b) => (a.headerTitle ?? '').localeCompare(b.headerTitle ?? ''));\r\n }\r\n\r\n this.cardMapByStatus = map;\r\n this.cdr.markForCheck();\r\n }\r\n\r\n private async getBusinessClassStatus(className?: string) {\r\n const response = await firstValueFrom(this._entityStatusService.getEntityStatus(className));\r\n const statuses = response?.entityStatus ?? [];\r\n\r\n this.localizedStatusLabels = [\r\n { key: 'new', localized: this._localize.transform('gesc_param_article_statut_enums_new').trim() },\r\n ...statuses.map((s: any) => ({\r\n key: s.key,\r\n localized: this._localize.transform(s.value).trim()\r\n }))\r\n ];\r\n }\r\n}","<div class=\"card flex justify-content-center\">\r\n <p-paginator\r\n [first]=\"first\"\r\n [rows]=\"rows\"\r\n [totalRecords]=\"totalCount\"\r\n [rowsPerPageOptions]=\"[1, 10, 25, 50]\"\r\n (onPageChange)=\"onPageChange($event)\"\r\n [showCurrentPageReport]=\"true\"\r\n currentPageReportTemplate=\"{{ 'Showing' | localize }} {first} {{'to' | localize}} {last} {{ 'of' | localize }} {totalRecords}\">\r\n </p-paginator>\r\n</div>\r\n\r\n<div class=\"kanban-board flex gap-4 overflow-auto\">\r\n <div *ngFor=\"let status of localizedStatusLabels; trackBy: trackByStatus\"\r\n class=\"kanban-column flex flex-column border-round surface-0 shadow-2\"\r\n (dragover)=\"allowDrop($event)\"\r\n (drop)=\"drop($event, status.key)\">\r\n \r\n <div class=\"column-header p-3 border-bottom-1 surface-border font-semibold\">\r\n {{ status.localized }}\r\n <span class=\"text-sm font-normal text-gray-500\">\r\n ({{ cardMapByStatus.get(status.key)?.length || 0 }})\r\n </span>\r\n </div>\r\n\r\n <div class=\"column-cards flex-1 overflow-auto p-3\">\r\n <div *ngFor=\"let card of cardMapByStatus.get(status.key); trackBy: trackByCard\"\r\n class=\"kanban-card p-3 border-round bg-white mb-3 shadow-1\"\r\n [ngClass]=\"getStatusClass(card)\"\r\n draggable=\"true\"\r\n (dragstart)=\"dragStart($event, card)\"\r\n (dragend)=\"dragEnd()\">\r\n \r\n <div class=\"font-bold mb-2\">{{ card.headerTitle }}</div>\r\n <div class=\"text-sm text-gray-600 mb-3\">{{ card.description }}</div>\r\n <div class=\"text-sm text-gray-600 mb-3\">\r\n <span class=\"font-semibold\">{{ 'gesc_document_statut' | localize }}:</span>\r\n <span>{{ getLocalizedStatus(card.status) }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"overlay\" *ngIf=\"isLoading\">\r\n <div class=\"spinner-wrapper\">\r\n <app-spinner></app-spinner>\r\n </div>\r\n</div>\r\n","import { Component, ElementRef, EventEmitter, Output, ViewChild } from '@angular/core';\r\nimport { Modes } from '../../../enums/component-use-modes-enum';\r\n\r\n@Component({\r\n selector: 'app-context-menu',\r\n templateUrl: './context-menu.component.html',\r\n styleUrls: ['./context-menu.component.scss']\r\n})\r\nexport class ContextMenuComponent {\r\n \r\n @Output() actionSelected = new EventEmitter<any>();\r\n @ViewChild('menu') menu: ElementRef | undefined;\r\n isVisible = false;\r\n menuPosition = { x: '0px', y: '0px' };\r\n modes = Modes;\r\n\r\n openMenu(x: number, y: number): void {\r\n this.menuPosition = { x: `${x}px`, y: `${y}px` };\r\n this.isVisible = true;\r\n //Add event listener to detect clicks outside the menu\r\n document.addEventListener('click', this.onDocumentClick.bind(this));\r\n }\r\n\r\n closeMenu(): void {\r\n this.isVisible = false;\r\n //Remove event listener when menu is closed\r\n document.removeEventListener('click', this.onDocumentClick.bind(this));\r\n }\r\n\r\n onMenuClick(action: string): void {\r\n this.closeMenu();\r\n this.actionSelected.emit({selectedAction : action})\r\n }\r\n\r\n //To detect clicks outside the menu\r\n private onDocumentClick(event: MouseEvent): void {\r\n if (!this.menu?.nativeElement.contains(event.target as Node)) {\r\n this.closeMenu();\r\n }\r\n }\r\n}\r\n","<div #menu class=\"context-menu\" (click)=\"closeMenu()\" [class.visible]=\"isVisible\"\r\n [ngStyle]=\"{ top: menuPosition.y, left: menuPosition.x }\">\r\n <ul>\r\n <li (click)=\"onMenuClick(modes.consult)\" class=\"flx\">\r\n <Tsi-Label labelValue=\"cmpt_parametres_exercices_consulter\"></Tsi-Label>\r\n </li>\r\n <li (click)=\"onMenuClick(modes.edit)\" class=\"flx\">\r\n <Tsi-Label labelValue=\"parambase_autres_tier_btnmodifier\"></Tsi-Label>\r\n </li>\r\n <li (click)=\"onMenuClick(modes.delete)\" class=\"flx delete\">\r\n <Tsi-Label labelValue=\"parambase_autres_tier_btnsupprimer\"></Tsi-Label>\r\n </li>\r\n </ul>\r\n</div>","import { AfterViewInit, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, Renderer2, signal, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { CalendarApi, CalendarOptions, DateSelectArg, EventApi, EventClickArg, EventInput } from '@fullcalendar/core';\r\nimport * as primeNg from 'primeng/calendar';\r\nimport interactionPlugin, { EventResizeDoneArg } from '@fullcalendar/interaction';\r\nimport dayGridPlugin from '@fullcalendar/daygrid';\r\nimport timeGridPlugin from '@fullcalendar/timegrid';\r\nimport listPlugin from '@fullcalendar/list';\r\nimport { FullCalendarComponent } from '@fullcalendar/angular';\r\nimport { ContextMenuComponent } from './context-menu/context-menu.component';\r\nimport { Component_Modes, Modes } from '../../enums';\r\nimport { EventSchema } from '../../models';\r\nimport { LocalizePipe } from '../../pipes/localize.pipe';\r\nimport { CrudBaseService } from '../../services/base/crud-base.service';\r\nimport { TsiNotificationService } from '../../services/notification/tsi-notification.service';\r\n\r\n@Component({\r\n selector: 'tsi-calender',\r\n templateUrl: './tsi-calender.component.html',\r\n styleUrls: ['./tsi-calender.component.scss']\r\n})\r\nexport class TsiCalenderComponent implements OnInit, AfterViewInit{\r\n \r\n currentContextMenuEvent : any ;\r\n @ViewChild(ContextMenuComponent) contextMenu: ContextMenuComponent | undefined;\r\n @ViewChild('datePicker') datePicker: primeNg.Calendar | undefined;\r\n @ViewChild('calendar') calendar: FullCalendarComponent | undefined;\r\n @ViewChild('dropdownTemplate') dropdownTemplate: TemplateRef<any> | undefined;\r\n\r\n @Input() crudService?: CrudBaseService<any, any, any, any>;\r\n @Input() schema: EventSchema | undefined;\r\n @Input() set eventsData(value : any[]){\r\n this.mapDataToEvents(value);\r\n }\r\n\r\n @Output() eventClick: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() dateRangeChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n displayModeOptions : any[] = [];\r\n\r\n constructor(\r\n private _changeDetector: ChangeDetectorRef,\r\n private _viewContainerRef: ViewContainerRef,\r\n private _messageService: TsiNotificationService,\r\n private _localizePipe: LocalizePipe,\r\n private renderer: Renderer2\r\n ) {\r\nthis.displayModeOptions = [\r\n { label: this._localizePipe.transform('shared_tsi_component_grid_calender_dayGridMonth') , value: 'dayGridMonth' },\r\n { label: this._localizePipe.transform('shared_tsi_component_grid_calender_dayGridWeek') , value: 'dayGridWeek' },\r\n { label: this._localizePipe.transform('shared_tsi_component_grid_calender_dayGridDay') , value: 'dayGridDay' },\r\n { label: this._localizePipe.transform('shared_tsi_component_grid_calender_timeGridDay') , value: 'timeGridDay' },\r\n { label: this._localizePipe.transform('shared_tsi_component_grid_calender_timeGridWeek') , value: 'timeGridWeek' },\r\n { label: this._localizePipe.transform('shared_tsi_component_grid_calender_listYear') , value: 'listYear' },\r\n { label: this._localizePipe.transform('shared_tsi_component_grid_calender_listMonth') , value: 'listMonth' },\r\n { label: this._localizePipe.transform('shared_tsi_component_grid_calender_listWeek') , value: 'listWeek' },\r\n { label: this._localizePipe.transform('shared_tsi_component_grid_calender_listDay') , value: 'listDay' },\r\n //premium\r\n // { label: 'vue chronologique année', value: 'timelineYear' },\r\n // { label: 'vue chronologique mois', value: 'timelineMonth' },\r\n // { label: 'vue chronologique semaine', value: 'timelineWeek' },\r\n // { label: 'vue chronologique jour', value: 'timelineDay' },\r\n ]\r\n\r\n }\r\n\r\n ngOnInit(): void { }\r\n\r\n ngAfterViewInit() {\r\n const iconForCalendar = document.querySelector('.fc-icon-Calendar');\r\n if(iconForCalendar){\r\n iconForCalendar.classList.value = \"pi pi-calendar\"\r\n }\r\n const iconForSearchFilter = document.querySelector('.fc-icon-SearchFilter');\r\n if(iconForSearchFilter){\r\n iconForSearchFilter.classList.value = \"pi pi-search\"\r\n }\r\n\r\n const dropdownElement = document.querySelector('.fc-displayModeOptions-button');\r\n if (dropdownElement) {\r\n dropdownElement.innerHTML = ''; // Clear any default content\r\n // Create an embedded view from the template\r\n const embeddedView = this.dropdownTemplate!.createEmbeddedView(null);\r\n this._viewContainerRef.insert(embeddedView);\r\n // Append the dropdown to the toolbar\r\n embeddedView!.rootNodes.forEach(node => {\r\n this.renderer.appendChild(dropdownElement, node);\r\n });\r\n dropdownElement.classList.value = 'displayModeOptions';\r\n }\r\n }\r\n\r\n calendarOptions = signal<CalendarOptions>({\r\n plugins: [\r\n interactionPlugin,\r\n dayGridPlugin,\r\n timeGridPlugin,\r\n listPlugin,\r\n ],\r\n headerToolbar: {\r\n left: 'prevYear,prev,datePickerNavigator,searchFilter,next,nextYear,today',\r\n center: 'title',\r\n right: 'displayModeOptions',\r\n },\r\n buttonText: {\r\n today: \"Aujourd'hui\",\r\n },\r\n customButtons: {\r\n datePickerNavigator : {\r\n icon: \"Calendar\",\r\n hint: \"\",\r\n click: this.handleDatePickerNavigatorClick.bind(this)\r\n },\r\n searchFilter : {\r\n icon: \"SearchFilter\",\r\n hint: \"\",\r\n click: this.handleSearchFilter.bind(this)\r\n },\r\n },\r\n initialView: 'dayGridMonth',\r\n locale: \"fr\",\r\n events : this.eventsData,\r\n weekends: true,\r\n selectable: true,\r\n editable: true,\r\n eventResizableFromStart: true,\r\n eventStartEditable: true,\r\n eventDurationEditable: true,\r\n selectMirror: true,\r\n dayMaxEvents: true,\r\n select: this.handleDateSelect.bind(this),\r\n eventClick: this.handleEventClick.bind(this),\r\n eventsSet: this.handleEvents.bind(this),\r\n eventDrop: this.handleEventDrop.bind(this),\r\n eventResize: this.handleEventResize.bind(this),\r\n eventDidMount: this.handleEventDidMount.bind(this),\r\n datesSet: this.getCurrentDates.bind(this),\r\n eventContent: (arg) => {\r\n const nombreAttachement = arg.event.extendedProps?.['nombreAttachement'] || 0;\r\n const attachmentHtml = nombreAttachement > 0 \r\n ? `<span class=\"attachment-info\"><i class=\"pi pi-paperclip\"></i> [${nombreAttachement}]</span>` \r\n : ''; \r\n \r\n return {\r\n html: `\r\n <div>\r\n <span class=\"event-title\">${arg.event.title}</span>\r\n ${attachmentHtml}\r\n </div>\r\n `,\r\n };\r\n },\r\n });\r\n currentEvents = signal<EventApi[]>([]);\r\n\r\n mapDataToEvents(value : any[]) {\r\n this.calendarOptions.update((oldCalenderOpts:CalendarOptions) => {\r\n if(!this.schema){\r\n throw new Error(\"schema should be defined.\") \r\n }\r\n let evts = value.map(item => {\r\n let event : EventInput = {\r\n id: item[this.schema!.id],\r\n start: item[this.schema!.start],\r\n end: item[this.schema!.end],\r\n title: item[this.schema!.title],\r\n color: item.color,\r\n extendedProps: { \r\n nombreAttachement: item.nombreAttachement,\r\n }\r\n };\r\n return event;\r\n });\r\n\r\n oldCalenderOpts.events = evts ;\r\n return {\r\n ...oldCalenderOpts,\r\n events: evts\r\n };\r\n });\r\n }\r\n\r\n handleDateSelect(selectInfo: DateSelectArg) {\r\n this.eventClick.emit({\r\n mode : Component_Modes.CREATE,\r\n dateDebut: selectInfo.start.toLocaleDateString('fr-FR')\r\n });\r\n }\r\n\r\n handleEventClick(clickInfo: EventClickArg) {\r\n this.eventClick.emit({\r\n mode : Component_Modes.EDIT,\r\n id : clickInfo.event.id\r\n });\r\n }\r\n\r\n handleEvents(events: EventApi[]) {\r\n this.currentEvents.set(events);\r\n this._changeDetector.detectChanges(); // workaround for pressionChangedAfterItHasBeenCheckedError\r\n }\r\n\r\n handleEventResize(info: EventResizeDoneArg){\r\n this.updateEvent(info);\r\n }\r\n\r\n handleEventDrop(info: any){\r\n this.updateEvent(info);\r\n }\r\n\r\n updateEvent(info: any){\r\n const newStart = info.event.start;\r\n const newEnd = info.event.end;\r\n const id = info.event.id;\r\n\r\n if (this.crudService){\r\n this.crudService.getById(id).subscribe({\r\n next :(res:any) => {\r\n if(!this.schema){\r\n throw new Error(\"schema should be defined.\") \r\n }\r\n let item = res;\r\n item[this.schema!.start] = newStart;\r\n item[this.schema!.end] = newEnd ? newEnd : newStart; // if it's on the same day\r\n this.crudService?.update(item, id).subscribe({\r\n next : () => this._messageService.success(\"shared_reporting_success_updated\"),\r\n error: (err) => console.log(err)\r\n })\r\n },\r\n error: (err) => console.log(\"Can not update item :\", err)\r\n })\r\n }\r\n }\r\n\r\n handleDatePickerNavigatorClick(event:any){\r\n if (this.datePicker) {\r\n let calendarInput = this.datePicker.inputfieldViewChild?.nativeElement;\r\n calendarInput.focus();\r\n }\r\n }\r\n handleSearchFilter(event:any){\r\n this.eventClick.emit({\r\n mode : \"SEARCH\"\r\n })\r\n }\r\n\r\n navigateToDate(event:any){\r\n const fullCalendar = this.calendar?.getApi();\r\n fullCalendar?.gotoDate(event);\r\n if (this.datePicker) {\r\n let calendarInput = this.datePicker.inputfieldViewChild?.nativeElement;\r\n calendarInput.blur();\r\n }\r\n }\r\n\r\n handleEventDidMount(arg:any) {\r\n //Attach right-click event to each event cell\r\n arg.el.addEventListener('contextmenu', (event: MouseEvent) => {\r\n //Prevent the default context menu from appearing\r\n event.preventDefault(); \r\n this.currentContextMenuEvent = arg.event;\r\n this.contextMenu?.openMenu(event.clientX, event.clientY); \r\n });\r\n }\r\n\r\n handleSelectedAction(action: any): void {\r\n switch(action.selectedAction) {\r\n case Modes.delete:\r\n if(this.currentContextMenuEvent){\r\n this.crudService?.delete(this.currentContextMenuEvent.id).subscribe({\r\n next: (res) => {\r\n const fullCalendar = this.calendar?.getApi();\r\n fullCalendar?.getEventById(this.currentContextMenuEvent.id)?.remove();\r\n this._messageService.success(\"shared_tsi_component_grid_calender_delete_item_success\")\r\n },\r\n error: (err) => this._messageService.error(err.error.errors[547] ? \"shared_tsi_component_grid_calender_delete_item_failed\" : err.error.detail),\r\n })\r\n }\r\n break;\r\n case Modes.consult:\r\n this.eventClick.emit({\r\n mode : Component_Modes.CONSULT,\r\n id : this.currentContextMenuEvent.id\r\n });\r\n break;\r\n case Modes.edit:\r\n this.eventClick.emit({\r\n mode : Component_Modes.EDIT,\r\n id : this.currentContextMenuEvent.id\r\n });\r\n break;\r\n }\r\n }\r\n\r\n onDisplayModeChange(event: any){\r\n const calendarApi = this.calendar?.getApi();\r\n calendarApi?.changeView(event.value);\r\n }\r\n\r\n getCurrentDates() {\r\n if(this.calendar){\r\n const calendarApi: CalendarApi = this.calendar.getApi();\r\n this.dateRangeChange.emit({\r\n start : new Date(calendarApi.view.currentStart.setDate(calendarApi.view.currentStart.getDate() + 1)),\r\n end : new Date(calendarApi.view.currentEnd.setDate(calendarApi.view.currentEnd.getDate() + 1))\r\n })\r\n }\r\n }\r\n\r\n}\r\n","<p-calendar #datePicker class=\"hidden-calendar\" (onSelect)=\"navigateToDate($event)\"/>\r\n<full-calendar #calendar [options]='calendarOptions()'>\r\n <ng-template let-arg>\r\n\r\n <i [ngStyle]=\"arg.event.color && arg.event.color !== '' ? {'background-color': arg.event.color} : {}\" >\r\n \r\n {{ arg.event.title }}</i>\r\n </ng-template>\r\n</full-calendar>\r\n<app-context-menu (actionSelected)=\"handleSelectedAction($event)\"></app-context-menu>\r\n<ng-template #dropdownTemplate>\r\n <p-dropdown [style]=\"{'width' : '200px','border-radius': '5px'}\" [options]=\"displayModeOptions\" (onChange)=\"onDisplayModeChange($event)\"></p-dropdown>\r\n</ng-template>\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'Tsi-Display-Nested-Prop',\r\n templateUrl: './display-nested-prop.component.html',\r\n styleUrls: ['./display-nested-prop.component.scss']\r\n})\r\nexport class DisplayNestedPropComponent implements OnInit {\r\n\r\n item: any;\r\n\r\n @Input() id?: string | undefined;\r\n @Input() displayValue?: string | undefined;\r\n @Input() sourceUrl?: string | undefined;\r\n\r\n constructor(protected httpClient: HttpClient) { }\r\n\r\n ngOnInit(): void {\r\n if (this.id) {\r\n this.httpClient.get<any>(`${this.sourceUrl}/${this.id}`).subscribe({\r\n next: (data: any) => {\r\n if (this.displayValue) {\r\n this.item = data[this.displayValue];\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n}\r\n\r\n","\r\n<p>{{item}}</p>","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { DatePipe } from '@angular/common';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { AfterViewInit, Component, EnvironmentInjector, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { FilterMatchMode, FilterMetadata, PrimeNGConfig, SortMeta, TableState } from 'primeng/api';\r\nimport { Table, TableHeaderCheckbox, TableLazyLoadEvent, TableSelectAllChangeEvent } from 'primeng/table';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { entityInfo } from '../../../models/entity-info/entity-info';\r\nimport { DisplayTypeColors, DisplayTypes, FilterOperatorType, GridSelectionMode, GridSortMode, InputTypes, ModalSizeEnum, NumericDisplayTypes, TooltipPosition } from '../../../enums';\r\nimport { DefaultSocieteDevise } from '../../../consts/tsi-consts';\r\nimport { IFilteredRequest, ISortByProprety, IPagedRequest, IGridConfiguration, IPage, GridColumn, ButtonClickResult, ISortMeta, IPagedResponse, Dictionary } from '../../../interfaces';\r\nimport { SearchField, PresentationSetting, EventSchema} from '../../../models';\r\nimport { LayoutService } from '../../../services/application/app.layout.service';\r\nimport { rtlModeKeys } from '../../../consts/locals.const';\r\nimport * as FileSaver from 'file-saver';\r\nimport { LocalizePipe } from '../../../pipes/localize.pipe';\r\nimport { CrudBaseService } from '../../../services/base/crud-base.service';\r\nimport { HtmlTemplateGeneratorService } from '../../../services/generator/html-template-generator.service';\r\nimport { TsiNotificationService } from '../../../services/notification/tsi-notification.service';\r\nimport { LayoutHelperService } from '../../../services/layout/layout-helper.service';\r\nimport { AppSettingsService } from '../../../services/settings/app-settings.service';\r\nimport { ErrorResponseManagerService } from '../../../services/notification/error-response-manager.service';\r\nimport { FilterHelper } from '../../../tsi-helpers/filter-helper';\r\nimport { primengLocaleAr } from '../../../tsi-helpers/primeng-translate-config';\r\nimport { ExportExcelHelper } from '../../../tsi-helpers/export-excel.helper';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { openTsiPopupTextViewerComponent } from '../../../functions/modal-open.function';\r\n\r\n@Component({\r\n selector: 'Tsi-Generic-Grid',\r\n templateUrl: './tsi-generic-grid.component.html',\r\n styleUrls: ['./tsi-generic-grid.component.scss'],\r\n animations: [\r\n trigger('slideInOut', [\r\n state('in', style({\r\n height: '*',\r\n opacity: 1,\r\n transform: 'translateY(0)'\r\n })),\r\n state('out', style({\r\n height: '0px',\r\n opacity: 0,\r\n transform: 'translateY(-20px)'\r\n })),\r\n transition('in <=> out', animate('600ms cubic-bezier(0.25, 0.8, 0.25, 1)'))\r\n ])\r\n ]\r\n})\r\nexport class TsiGenericGridComponent implements OnInit, AfterViewInit {\r\n\r\n @Input() cudComponent: any;\r\n @Input() modalSize: any;\r\n @Input() entityInfo: entityInfo | undefined;\r\n\r\n\r\n filterMatchMode = FilterMatchMode;\r\n tooltipPosition = TooltipPosition;\r\n\r\n isAr: boolean = false;\r\n\r\n async eyeClicked(text: any) {\r\n\r\n let modalSize = ModalSizeEnum.ExtraLarge;\r\n let conf: DynamicDialogConfig = {\r\n data: text,\r\n maximizable: true,\r\n width: modalSize.width,\r\n height: modalSize.height\r\n };\r\n\r\n this._dialogRef = await openTsiPopupTextViewerComponent(this._injector, conf);\r\n\r\n this._dialogRef.onClose.subscribe((val?: any) => this._closeModal(val));\r\n }\r\n\r\n private _closeModal(val?: any): void {\r\n if (val === true) {\r\n this._dialogRef?.destroy()\r\n }\r\n else {\r\n this._dialogRef?.destroy()\r\n }\r\n }\r\n\r\n truncateString(value: string, limit: number = 50): string {\r\n if (!value) {\r\n return '';\r\n }\r\n return value.length > limit ? value.substr(0, limit) + '...' : value;\r\n }\r\n //#region local vars\r\n @ViewChild(\"dt\", { static: false }) public dt: Table | undefined;\r\n @ViewChild(\"tableHeaderCheckbox\") tableHeaderCheckbox: TableHeaderCheckbox | undefined\r\n first: number = 0;\r\n rows = 1;\r\n displayTypes = DisplayTypes;\r\n keyword: string | undefined;\r\n summaries: Dictionary<string, number> = {};\r\n isRtlMode: boolean = false\r\n // private _searchBoxFilters: Array<FilterByProprety> = [];\r\n // private _gridHeaderFilters: Array<FilterByProprety> = [];\r\n private _searchFields: Array<SearchField> | undefined;\r\n private _searchBoxFilters: Array<IFilteredRequest> = [];\r\n private _gridHeaderFilters: Array<IFilteredRequest> = [];\r\n private _sort: Array<ISortByProprety> = [];\r\n sortMetas: SortMeta[] = [];\r\n selectedFullItems?: Array<any> = [];\r\n selection: any;\r\n multipleGridSelectionMode = GridSelectionMode.Multiple;\r\n private _dialogRef?: DynamicDialogRef;\r\n //jsonStringLayout: string = '{\"first\":0,\"rows\":10,\"multiSortMeta\":[],\"columnWidths\":\"\",\"tableWidth\":\"1188px\",\"columnOrder\":[\"\"]}';\r\n latestFilters?: IFilteredRequest[];\r\n\r\n // private _page : IPage<any> = {\r\n // items: [],\r\n // totalCount: 0,\r\n // summaries: [],\r\n // totalPages: 0,\r\n // pageNumber: 1,\r\n // pageSize: 10,\r\n // loading: false\r\n // };\r\n //#endregion\r\n\r\n //#region Inputs\r\n @Input() formName?: string;\r\n @Input() id?: string;\r\n @Input() pagedRequest?: IPagedRequest;\r\n @Input() configuration?: IGridConfiguration;\r\n @Input() /*set*/ page: IPage<any> = {\r\n items: [],\r\n totalCount: 0,\r\n summaries: [],\r\n totalPages: 0,\r\n pageNumber: 1,\r\n pageSize: 10,\r\n loading: false\r\n };\r\n // (newPage: IPage<any>){\r\n // if(newPage){\r\n // this._page = newPage;\r\n // this._extractSummaries();\r\n // }\r\n // }\r\n // get page(){\r\n // return this._page;\r\n // }\r\n @Input() key: string = 'uid';\r\n /**\r\n *\r\n */\r\n private _tempColumns: Array<GridColumn> = [];\r\n tempSearchFields: Array<SearchField> = [];\r\n private _columns: Array<GridColumn> = [];\r\n @Input() public set columns(value: Array<GridColumn> | undefined) {\r\n if (value && Array.isArray(value)) {\r\n this._columns = value;\r\n this.initialColumnsProcess();\r\n }\r\n }\r\n public get columns(): Array<GridColumn> {\r\n return this._columns;\r\n }\r\n\r\n private _isSearchButtonDisabled: boolean = false\r\n @Input() public set isSearchButtonDisabled(value: boolean) {\r\n this._isSearchButtonDisabled = value\r\n }\r\n\r\n public get isSearchButtonDisabled() {\r\n return this._isSearchButtonDisabled\r\n }\r\n\r\n @Input() filteredColumns: Array<GridColumn> = [];\r\n\r\n @Input() gridData?: Array<any>;\r\n\r\n @Input() isTableLoading?: boolean;\r\n\r\n @Input() parent: any;\r\n\r\n @Input() showSearchBox: boolean = true;\r\n\r\n @Input() showActionColumn: boolean = true;\r\n\r\n @Input() showHeaderFilters: boolean = false;\r\n @Input() showFilterButton: boolean = true;\r\n @Input() isGridDataPagedInApi: boolean = true;\r\n @Input() header: string = '';\r\n @Input() ShowFilterColumns: boolean = true;\r\n @Input() showImportExportButton: boolean = false;\r\n @Input() crudService?: CrudBaseService<any, any, any, any>;\r\n @Input() set searchFields(value: Array<SearchField> | undefined) {\r\n if (value) {\r\n //reset\r\n this._searchFields = [];\r\n\r\n //init using value\r\n this._searchFields = FilterHelper.initSearchFields(value);\r\n this.initSearchOnInit();\r\n }\r\n }\r\n get searchFields() {\r\n return this._searchFields;\r\n }\r\n\r\n @Input() sortMode: GridSortMode | any = GridSortMode.Multiple;\r\n @Input() filtersHtmlTemplate?: string;\r\n\r\n @Input() presentationSettings?: PresentationSetting\r\n\r\n @Input() selectKeyOnly: boolean = true;\r\n private _selectionMode: GridSelectionMode | any = GridSelectionMode.None;\r\n\r\n @Input() set selectionMode(value: GridSelectionMode | any) {\r\n if (this.config?.data?.isAdvancedSearch && this.config?.data?.selectionMode) {\r\n this._selectionMode = this.config?.data?.selectionMode;\r\n }\r\n else {\r\n this._selectionMode = value\r\n }\r\n }\r\n\r\n get selectionMode() {\r\n return this._selectionMode;\r\n }\r\n\r\n @Input() selectedItems: Array<any> = [];\r\n @Input() set searchOnInit(value: boolean) {\r\n if (value == undefined || value == null) {\r\n this._searchOnInit = true\r\n } else {\r\n this._searchOnInit = value\r\n }\r\n }\r\n get searchOnInit() {\r\n this.initSearchOnInit()\r\n return this._searchOnInit\r\n }\r\n\r\n @Input() showGlobalSearch: boolean = true\r\n @Input() showExportButton: boolean = true\r\n @Input() showSearchField: boolean = true;\r\n protected _showCalenderView: boolean = false;\r\n @Input() set showCalenderView(value: boolean) {\r\n this._showCalenderView = value;\r\n if (this._showCalenderView === false) {\r\n let start = this.searchFields?.find(x => x.field === this.calenderSchema?.start)\r\n let end = this.searchFields?.find(x => x.field === this.calenderSchema?.end)\r\n if (start && end) {\r\n start.disabled = false;\r\n end.disabled = false;\r\n }\r\n }\r\n }\r\n @Input() calenderSchema: EventSchema | undefined;\r\n\r\n protected _showCardView: boolean = false;\r\n @Input() set showCardView(value: boolean) {\r\n this._showCardView = value;\r\n }\r\n \r\n protected _showKanbanView: boolean = false;\r\n @Input() set showKanbanView(value: boolean) {\r\n this._showKanbanView = value;\r\n }\r\n\r\n @Input() businessClass?: string;\r\n\r\n @Input() page$ = new BehaviorSubject<any>(null);\r\n\r\n @Input() checkedByField: string = '';\r\n private _selectAll: boolean = false;\r\n\r\n @Input()\r\n set selectAll(value: boolean) {\r\n this._selectAll = value;\r\n\r\n const syntheticEvent = new Event('selectAllChange');\r\n const event: TableSelectAllChangeEvent = {\r\n checked: value,\r\n originalEvent: syntheticEvent,\r\n };\r\n\r\n this.onSelectAllChange(event);\r\n }\r\n\r\n public get selectAll(): boolean { return this._selectAll; }\r\n\r\n\r\n //#endregion\r\n\r\n //#region Outputs\r\n @Output() editRow: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() deleteRow: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() load: EventEmitter<{ request: IPagedRequest, isForCalendar: boolean }> = new EventEmitter<{ request: IPagedRequest, isForCalendar: boolean }>();\r\n @Output() buttonColumnClicked: EventEmitter<ButtonClickResult> = new EventEmitter<ButtonClickResult>();\r\n @Output() filtersHtmlTemplateChange: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() selectedItemsChange: EventEmitter<Array<any>> = new EventEmitter<Array<any>>();\r\n @Output() searchFieldsValueChanged: EventEmitter<Array<SearchField>> = new EventEmitter<Array<SearchField>>();\r\n @Output() calendarEventClick: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() statusFilterChanged = new EventEmitter<string | undefined>();\r\n\r\n /**\r\n *\r\n */\r\n\r\n //#endregion\r\n // ngOnChanges(changes: SimpleChanges): void {\r\n // if(changes['page']){\r\n // this._extractSummaries();\r\n // }\r\n // }\r\n protected filterIcon = \"pi pi-filter\";\r\n protected filterTooltip = \"show_filter\";\r\n protected requiredLocalizationKey = \"shared_search_field_required\";\r\n\r\n filterModeIcon = \"pi pi-filter\";\r\n filterModeTooltip = \"menu_mode\";\r\n changeHeaderFiltersMode: string = \"menu\";\r\n\r\n items?: any[];\r\n _searchOnInit: boolean = true;\r\n\r\n selectedColumns: GridColumn[] = [];\r\n importantColumns = ['consult', 'edit', 'delete', 'upload', 'download', 'info', 'notes', 'duplicate'];\r\n isFirstLoadOfPage: boolean = true;\r\n\r\n private titleCache = new Map<any, string[]>();\r\n\r\n constructor(\r\n private _htmlTemplateGeneratorService: HtmlTemplateGeneratorService,\r\n private datePipe: DatePipe,\r\n private _messageService: TsiNotificationService,\r\n private localize: LocalizePipe,\r\n private layoutHelperService: LayoutHelperService,\r\n private _layoutService: LayoutService,\r\n private _primengConfig: PrimeNGConfig,\r\n private appSettingsService: AppSettingsService,\r\n private _errorResponseManagerService: ErrorResponseManagerService,\r\n private _injector: EnvironmentInjector,\r\n public config?: DynamicDialogConfig,\r\n private _ref?: DynamicDialogRef,\r\n ) {\r\n }\r\n ngAfterViewInit(): void {\r\n let filterModeTooltipFromLocalStorage = localStorage.getItem(`${this.formName}-filterMode`)\r\n if (filterModeTooltipFromLocalStorage != undefined && filterModeTooltipFromLocalStorage != null\r\n && filterModeTooltipFromLocalStorage != \"\") {\r\n this.filterModeTooltip = filterModeTooltipFromLocalStorage\r\n this.showHeaderFilters = true\r\n this.filterIcon = \"pi pi-filter-slash\";\r\n this.filterTooltip = \"hide_filter\";\r\n if (this.filterModeTooltip === \"menu_mode\") {\r\n this.filterModeIcon = \"pi pi-check\";\r\n this.filterModeTooltip = \"row_mode\";\r\n this.changeHeaderFiltersMode = \"menu\"\r\n }\r\n else {\r\n this.changeHeaderFiltersMode = \"row\";\r\n this.filterModeIcon = \"pi pi-ellipsis-v\";\r\n this.filterModeTooltip = \"menu_mode\";\r\n }\r\n }\r\n else {\r\n this.showHeaderFilters = false\r\n this.filterIcon = \"pi pi-filter\";\r\n this.filterTooltip = \"show_filter\";\r\n }\r\n\r\n\r\n //commented by @MedAli - Bug from primeng component.\r\n // if(this.tableHeaderCheckbox){\r\n // this.tableHeaderCheckbox.checked = this.selection?.length == this.page.pageSize\r\n // this.tableHeaderCheckbox.cd.detectChanges()\r\n // }\r\n }\r\n\r\n ngOnInit() {\r\n // this.isTableLoading = true\r\n // setTimeout(() => {\r\n // this.search();\r\n // this.isTableLoading = false\r\n // }, 2000);\r\n\r\n\r\n\r\n let langue = localStorage.getItem(rtlModeKeys.rtlModeEnabled);\r\n if (langue && JSON.parse(langue)) {\r\n this.isAr = true\r\n }\r\n else {\r\n this.isAr = false\r\n }\r\n this.columns.map(column => column.translatedHeader = this.localize.transform(column.header!!))\r\n\r\n this._tempColumns = this.columns;\r\n\r\n this.tempSearchFields = this._searchFields ?? [];\r\n\r\n this.filteredColumns = this.columns.filter(column =>\r\n !this.importantColumns.includes(column.field));\r\n //this.selectedColumns = this.columns\r\n\r\n if (!this.selectedColumns || this.selectedColumns.length == 0) {\r\n this.selectedColumns = this.columns\r\n }\r\n\r\n this.selectedColumns.forEach((column, index) => {\r\n column.order = index;\r\n });\r\n\r\n this.isRtlModeEnabled()\r\n this._rtlModeSubscribe()\r\n this.processStickyColumns()\r\n }\r\n\r\n // #region grid state \r\n getState() {\r\n let state: TableState = {};\r\n\r\n if (!this.dt) {\r\n return\r\n }\r\n\r\n if (this.dt.resizableColumns) {\r\n this.dt.saveColumnWidths(state);\r\n }\r\n\r\n this.dt.saveColumnOrder(state);\r\n\r\n return state\r\n }\r\n\r\n public restoreState(configuration: string) {\r\n let state: TableState = JSON.parse(configuration)\r\n if (this.dt) {\r\n\r\n this.dt.columnWidthsState = state.columnWidths;\r\n this.dt.tableWidthState = state.tableWidth;\r\n\r\n let columnOrder = state.columnOrder;\r\n\r\n if (columnOrder) {\r\n let reorderedColumns = this.getReorderedColumns(columnOrder);\r\n this.selectedColumns = reorderedColumns;\r\n this.columns = reorderedColumns;\r\n this.sortColumns()\r\n }\r\n }\r\n }\r\n\r\n\r\n onSelectedColumnsChange() {\r\n this.sortColumns()\r\n }\r\n\r\n sortColumns() {\r\n this.selectedColumns.sort((a, b) => {\r\n const indexA = this.importantColumns.indexOf(a.field);\r\n const indexB = this.importantColumns.indexOf(b.field);\r\n\r\n if (indexA === -1 && indexB === -1) {\r\n return 0;\r\n }\r\n if (indexA === -1) {\r\n return 1;\r\n }\r\n if (indexB === -1) {\r\n return -1;\r\n }\r\n return indexA - indexB;\r\n });\r\n\r\n this.selectedColumns = [\r\n ...this.selectedColumns\r\n .filter(col => col.order !== undefined)\r\n .sort((a, b) => a.order! - b.order!),\r\n ...this.selectedColumns.filter(col => col.order === undefined),\r\n ];\r\n }\r\n\r\n getReorderedColumns(columnOrder: string[]): any[] {\r\n let reorderedColumns: any[] = [];\r\n\r\n columnOrder.map((key) => {\r\n let col = this.findColumnByKey(key);\r\n if (col) {\r\n reorderedColumns.push(col);\r\n }\r\n });\r\n\r\n return reorderedColumns;\r\n }\r\n\r\n findColumnByKey(key: any) {\r\n if (this._tempColumns) {\r\n for (let col of this._tempColumns) {\r\n if (col.header === key || col.field === key) return col;\r\n else continue;\r\n }\r\n }\r\n return null\r\n }\r\n\r\n resetSelectedColumns(configuration: string) {\r\n let state: TableState = JSON.parse(configuration)\r\n if (this.dt) {\r\n\r\n this.dt.columnWidthsState = state.columnWidths;\r\n this.dt.tableWidthState = state.tableWidth;\r\n\r\n let columnOrder = state.columnOrder;\r\n\r\n if (columnOrder) {\r\n let reorderedColumns = this.getReorderedColumns(columnOrder);\r\n this.selectedColumns = reorderedColumns;\r\n this._columns = this._tempColumns;\r\n this.sortColumns()\r\n }\r\n }\r\n }\r\n\r\n // #end region\r\n\r\n notInSpecifiedColumn(columnName: string): boolean {\r\n return !this.importantColumns.includes(columnName);\r\n }\r\n\r\n processStickyColumns() {\r\n this._columns.forEach((col: GridColumn) => {\r\n if (col.isFrozen) {\r\n col.ngStyle = this.getTheStyle(col)\r\n col.headerColumnStyle = { ...col.ngStyle, zIndex: 1000 }\r\n }\r\n })\r\n }\r\n\r\n getCheckboxStyle() {\r\n if (this.isRtlMode) {\r\n return {\r\n right: `0px`,\r\n position: 'sticky',\r\n backgroundColor: 'white',\r\n \"width\": '2.5rem !important',\r\n \"min-width\": '2.5rem !important',\r\n };\r\n } else {\r\n return {\r\n left: `0px`,\r\n position: 'sticky',\r\n backgroundColor: 'white',\r\n \"width\": '2.5rem !important',\r\n \"min-width\": '2.5rem !important',\r\n };\r\n }\r\n }\r\n\r\n\r\n getTheStyle(column: GridColumn): any {\r\n\r\n if (!column.isFrozen) {\r\n return {}\r\n }\r\n\r\n if (column.isFrozen == true) {\r\n let elementPosition = 0;\r\n if (this.selectionMode == this.multipleGridSelectionMode) {\r\n elementPosition = 30 + elementPosition + (column.order ?? 0) * 60;\r\n }\r\n else {\r\n elementPosition = elementPosition + ((column.order ?? 0) * 1.85) * 20;\r\n }\r\n if (this.isRtlMode) {\r\n return {\r\n right: `${elementPosition}px`,\r\n position: 'sticky',\r\n backgroundColor: 'white',\r\n \"width\": '2.5rem !important',\r\n \"min-width\": '2.5rem !important',\r\n };\r\n } else {\r\n return {\r\n left: `${elementPosition}px`,\r\n position: 'sticky',\r\n backgroundColor: 'white',\r\n \"width\": '2.5rem !important',\r\n \"min-width\": '2.5rem !important',\r\n };\r\n }\r\n }\r\n return {};\r\n }\r\n\r\n\r\n private isRtlModeEnabled() {\r\n if (this._layoutService.isRtlModeEnabled()) {\r\n this.isRtlMode = true\r\n this.updatePrimeNGTableFilters()\r\n }\r\n }\r\n\r\n private updatePrimeNGTableFilters() {\r\n this._primengConfig.setTranslation(primengLocaleAr)\r\n }\r\n\r\n private _rtlModeSubscribe() {\r\n this._layoutService.enableRtlModeSubject$.subscribe({\r\n next: (data) => {\r\n if (data && data == true) {\r\n this.isRtlMode = true\r\n }\r\n }\r\n })\r\n }\r\n\r\n searchFieldsValueChanges(searchFieldValues: Array<SearchField>) {\r\n this.searchFieldsValueChanged.emit(searchFieldValues)\r\n }\r\n\r\n isLastPage(): boolean {\r\n return this.page ? this.page.pageNumber === (this.page.totalCount - this.page.pageSize) : true;\r\n }\r\n\r\n isFirstPage(): boolean {\r\n return this.page ? this.page.pageNumber === 0 : true;\r\n }\r\n\r\n edit(item: any) {\r\n this.editRow.emit(item[this.key]);\r\n }\r\n\r\n delete(item: any) {\r\n this.deleteRow.emit(item[this.key]);\r\n }\r\n\r\n lazyLoad(event: TableLazyLoadEvent) {\r\n if (this.pagedRequest == null && this.pagedRequest == undefined) {\r\n this.pagedRequest = {};\r\n }\r\n this.pagedRequest.skipCount = event.first == 1 ? 0 : event.first;\r\n this.pagedRequest.maxResultCount = event.rows;\r\n if (this.formName && this.isFirstLoadOfPage) {\r\n this.isFirstLoadOfPage = false\r\n const storedValue = localStorage.getItem(this.formName);\r\n if (storedValue) {\r\n const sessionData = JSON.parse(storedValue);\r\n const columnOrder: string[] = sessionData.columnOrder;\r\n const columnWidths: string[] = sessionData.columnWidths.split(',');\r\n\r\n const updatedSelectedColumns: GridColumn[] = [];\r\n columnOrder.forEach((field, index) => {\r\n const columnWidth = columnWidths[index];\r\n\r\n const existingColumnIndex = this.selectedColumns.findIndex(column => column.field === field);\r\n if (existingColumnIndex !== -1) {\r\n\r\n this.selectedColumns[existingColumnIndex].width = columnWidth;\r\n updatedSelectedColumns.push(this.selectedColumns[existingColumnIndex]);\r\n }\r\n });\r\n\r\n\r\n this.selectedColumns = updatedSelectedColumns;\r\n\r\n\r\n\r\n\r\n if ((sessionData.multiSortMeta && sessionData.multiSortMeta.length > 0) || (sessionData.filters)) {\r\n if (sessionData.multiSortMeta && sessionData.multiSortMeta.length > 0) {\r\n sessionData.multiSortMeta.forEach((meta: { field: any; order: any; }) => {\r\n let sortMeta: SortMeta = {\r\n field: meta.field,\r\n order: meta.order\r\n }\r\n event.sortField = meta.field;\r\n event.sortOrder = meta.order;\r\n event.multiSortMeta?.push(sortMeta);\r\n });\r\n }\r\n if (sessionData.filters) {\r\n let filters: { [s: string]: FilterMetadata } = {};\r\n Object.entries(sessionData.filters).forEach(([fieldName, filterMetadata]) => {\r\n const filterMetadataValue = filterMetadata as [FilterMetadata];\r\n\r\n if (filterMetadataValue[0] != null) {\r\n\r\n filters[fieldName] = filterMetadataValue[0];\r\n }\r\n });\r\n\r\n\r\n // Assign the filters to the event\r\n event.filters = filters;\r\n // event.filters = Object.entries(sessionData.filters).reduce((filters: { [s: string]: FilterMetadata }, [fieldName, filterMetadata ] ) => {\r\n // var filterMetadataValue = filterMetadata as FilterMetadata;\r\n // if (filterMetadataValue.value != undefined) {\r\n // filters[fieldName] = filterMetadata as FilterMetadata;\r\n // }\r\n\r\n // console.log('all filters', filters)\r\n // return filters;\r\n // }, {});\r\n // this.searchFields =[];\r\n // const filtersArray: [string, { value: string | null; matchMode: string,operator : string }[]][] = Object.entries(data.filters);\r\n\r\n // filtersArray.forEach(([fieldName, fieldValue]) => {\r\n\r\n // fieldValue.forEach(filter =>\r\n // {\r\n\r\n // if(filter.value){\r\n // let searchField : SearchField ={\r\n // field :fieldName,\r\n // labelValue : filter.value,\r\n // value:filter.value,\r\n // type : this.inferInputType(fieldName),\r\n // operator : this.getOperatorNumber(filter.matchMode)\r\n // };\r\n // console.log('searchField',searchField);\r\n // if (this.searchFields) {\r\n\r\n // this.searchFields.push(searchField);\r\n // }\r\n // }\r\n // });\r\n // });\r\n }\r\n }\r\n\r\n\r\n\r\n } else {\r\n console.log(\"No session data found in localStorage\");\r\n }\r\n }\r\n this._gridHeaderFilters = this._extractFilters(event.filters);\r\n this._extractSortCriterias(event);\r\n this.search();\r\n }\r\n\r\n fields(): string[] {\r\n let fields: string[] = [];\r\n if (this.columns != null && this.columns != undefined) {\r\n this.columns.forEach((col: GridColumn) => {\r\n fields.push(col.field);\r\n });\r\n }\r\n return fields;\r\n }\r\n\r\n\r\n buttonClicked(item: any, field: string): void {\r\n\r\n if (this.selectKeyOnly) {\r\n this.buttonColumnClicked.emit({ field: field, key: item[this.key], selectKeyOnly: this.selectKeyOnly });\r\n }\r\n else {\r\n this.buttonColumnClicked.emit({ field: field, key: item, selectKeyOnly: this.selectKeyOnly });\r\n }\r\n }\r\n\r\n keywordValueChanged(keyword: string | undefined) {\r\n this.keyword = keyword\r\n }\r\n\r\n isAllRequiredSearchFieldsHaveValues(): boolean {\r\n let invalidSearchFields = this.searchFields\r\n ?.filter(x => x.required == true && (x.value == undefined || x.value == '' || x.value == null))\r\n\r\n if (invalidSearchFields == undefined || invalidSearchFields.length == 0) {\r\n return true\r\n }\r\n\r\n let messages: string[] = []\r\n invalidSearchFields.forEach(searchField => {\r\n messages.push(`${this.localize.transform(searchField.labelValue)} ${this.localize.transform(this.requiredLocalizationKey)}`)\r\n })\r\n\r\n this._errorResponseManagerService.showErrorMessagesFromArrayString(messages);\r\n return false\r\n }\r\n\r\n initSearchOnInit() {\r\n let invalidSearchFields = this.searchFields\r\n ?.filter(x => x.required == true && (x.value == undefined || x.value == '' || x.value == null)) ?? []\r\n\r\n if (this._searchOnInit) {\r\n this._searchOnInit = invalidSearchFields.length == 0\r\n }\r\n }\r\n\r\n ccomboBoxLabelChanged(event?: Array<SearchField>) {\r\n this._extractSearchBoxFilters();\r\n this._generateFiltersHtmlTemplate();\r\n }\r\n\r\n search(evt: any = null): void {\r\n console.log(\"search>>>\", this.searchFields)\r\n //set global filter value\r\n\r\n this._extractOnlyVisibleSearchFields();\r\n\r\n if (this.pagedRequest && this.isAllRequiredSearchFieldsHaveValues()) {\r\n this.pagedRequest.summaries = this._extractHaveSummaryProperties();\r\n this.pagedRequest.sorting = this._sort;\r\n this.pagedRequest.keyword = this.keyword;\r\n\r\n //add search box filters\r\n this._extractSearchBoxFilters();\r\n\r\n //generate filters html template\r\n this._generateFiltersHtmlTemplate();\r\n //clone\r\n\r\n let newRequest: IPagedRequest = this._clonePagedRequest(this.pagedRequest);\r\n\r\n //concat filters\r\n newRequest.filters = [...this._gridHeaderFilters, ...this._searchBoxFilters];\r\n\r\n //exclude useless filters\r\n newRequest = this._excludeUselessFilters(newRequest);\r\n\r\n // test if filters value has changed\r\n if ((this.latestFilters ? JSON.stringify(this.latestFilters) : null)\r\n !== (newRequest.filters ? JSON.stringify(newRequest.filters) : null)) {\r\n newRequest.skipCount = 0;\r\n\r\n if (this.dt) {\r\n this.dt.first = 1;\r\n }\r\n }\r\n\r\n // save latest filters\r\n this.latestFilters = newRequest.filters;\r\n\r\n this.load.emit({ request: newRequest, isForCalendar: this._showCalenderView });\r\n\r\n this.filtersHtmlTemplateChange.emit(this.filtersHtmlTemplate);\r\n }\r\n }\r\n\r\n getFirstElementIndex(): number {\r\n if (!this.dt) return 0;\r\n\r\n if (this.page.items.length === 0) {\r\n return 0;\r\n }\r\n\r\n return this.dt.first === 0 ? 1 : (this.dt?.first ?? 0);\r\n }\r\n\r\n getSummary(field: string): number | undefined {\r\n let summaryRow = this.page.summaries\r\n .find(s => s.proprety.toUpperCase() == field.toUpperCase());\r\n if (summaryRow) {\r\n return summaryRow.summary;\r\n }\r\n return undefined;\r\n }\r\n\r\n onSelectedItemsChanged() {\r\n let selection: any[] = [];\r\n if (this.selectionMode == GridSelectionMode.Multiple) {\r\n if (this.selection) {\r\n if (this.selectKeyOnly) {\r\n let keys: Array<any> = [];\r\n this.selection.forEach((v: any) => { keys.push(v[this.key]) });\r\n selection = keys;\r\n }\r\n else {\r\n selection = this.selection;\r\n }\r\n }\r\n else {\r\n selection = [];\r\n }\r\n }\r\n else if (this.selectionMode == GridSelectionMode.Single) {\r\n if (this.selectKeyOnly) {\r\n selection = this.selection ? [this.selection[this.key]] : [];\r\n }\r\n else {\r\n selection = this.selection ? [this.selection] : [];\r\n }\r\n }\r\n if (this.selectionMode != GridSelectionMode.None) {\r\n this.selectedItemsChange.emit(selection)\r\n }\r\n\r\n if (this.config?.data?.isAdvancedSearch && selection.length > 0) {\r\n this.selectedItemsChange.emit(selection)\r\n this._ref?.close(selection[0])\r\n }\r\n\r\n }\r\n\r\n onSelectAllChange(event: TableSelectAllChangeEvent) {\r\n if (this.selectionMode == GridSelectionMode.Multiple) {\r\n this._selectAll = event.checked;\r\n if (this._selectAll) {\r\n if (this.checkedByField && this.checkedByField.trim() !== '') {\r\n this.selection = this.page.items.filter(\r\n item => item[this.checkedByField] === true\r\n );\r\n } else {\r\n this.selection = this.page.items;\r\n }\r\n } else {\r\n this.selection = [];\r\n }\r\n this.onSelectedItemsChanged();\r\n }\r\n }\r\n\r\n\r\n // onSelectedColumnsChange() {\r\n // if (this.formName) {\r\n // const storedValue = localStorage.getItem(this.formName);\r\n\r\n // if (storedValue) {\r\n // const sessionData = JSON.parse(storedValue);\r\n // let columnOrder: string[] = [];\r\n // let columnWidths: string[] = [];\r\n // this.columns.forEach(item => {\r\n // if (item.field === 'upload') {\r\n // if (!this.selectedColumns.includes(item)) {\r\n // this.selectedColumns.push(item);\r\n // }\r\n // }\r\n // else if (item.field === 'download') {\r\n // if (!this.selectedColumns.includes(item)) {\r\n // this.selectedColumns.push(item);\r\n // }\r\n // }\r\n // else if (item.field === 'consult') {\r\n // if (!this.selectedColumns.includes(item)) {\r\n // this.selectedColumns.push(item);\r\n // }\r\n // }\r\n // else if (item.field === 'delete') {\r\n // if (!this.selectedColumns.includes(item)) {\r\n // this.selectedColumns.push(item);\r\n // }\r\n // }\r\n // else if (item.field === 'edit') {\r\n // if (!this.selectedColumns.includes(item)) {\r\n // this.selectedColumns.push(item);\r\n // }\r\n // }\r\n // });\r\n // this.selectedColumns.sort((a, b) => {\r\n // if (a.order !== undefined && b.order !== undefined) {\r\n // return a.order - b.order;\r\n // }\r\n // return 0;\r\n // });\r\n // this.selectedColumns.forEach(selectedColumn => {\r\n // columnOrder.push(selectedColumn.field);\r\n // const selectedWidth = selectedColumn.minWidth;\r\n // if (selectedWidth) {\r\n // columnWidths.push(selectedWidth.toString());\r\n // } else {\r\n // //columnWidths.push('90');\r\n // }\r\n // });\r\n\r\n\r\n\r\n // sessionData.columnOrder = columnOrder;\r\n // sessionData.columnWidths = columnWidths.join(',');\r\n\r\n // //localStorage.setItem(this.formName, JSON.stringify(sessionData));\r\n // } else {\r\n // //const result = this.generateTableConfigJSON();\r\n // //localStorage.setItem(this.formName, result);\r\n // }\r\n // }\r\n // }\r\n\r\n // generateTableConfigJSON(): string {\r\n // const tableConfig = JSON.parse(this.jsonStringLayout);\r\n // tableConfig.columnOrder = this.selectedColumns.map(column => column.field);\r\n // //tableConfig.columnWidths = this.selectedColumns.map(() => '90').join(',');\r\n // return JSON.stringify(tableConfig);\r\n // }\r\n\r\n\r\n\r\n onStateRestore(tableState: TableState) {\r\n if (tableState.selection) {\r\n this.selection = tableState.selection\r\n this.onSelectedItemsChanged()\r\n }\r\n\r\n // if (this.formName) {\r\n // const storedValue = localStorage.getItem(this.formName);\r\n // if (storedValue) {\r\n // const sessionData = JSON.parse(storedValue);\r\n // const columnOrder: string[] = sessionData.columnOrder;\r\n // const columnWidths: string[] = sessionData.columnWidths.split(',');\r\n\r\n // // Update selectedColumns based on columnOrder and columnWidths\r\n // const updatedSelectedColumns: GridColumn[] = [];\r\n // columnOrder.forEach((field, index) => {\r\n // const columnWidth = columnWidths[index];\r\n // // Find the corresponding column in selectedColumns\r\n // const existingColumnIndex = this.selectedColumns.findIndex(column => column.field === field);\r\n // if (existingColumnIndex !== -1) {\r\n // // If the column exists in selectedColumns, update its width\r\n // this.selectedColumns[existingColumnIndex].width = columnWidth;\r\n // updatedSelectedColumns.push(this.selectedColumns[existingColumnIndex]);\r\n // }\r\n // });\r\n\r\n // // Update selectedColumns with the restored data\r\n // this.selectedColumns = updatedSelectedColumns;\r\n\r\n\r\n // if(storedValue){\r\n\r\n // const data = JSON.parse(storedValue);\r\n // if ((data.multiSortMeta && data.multiSortMeta.length > 0) || (data.filters && data.multiSortMeta.filters > 0)) {\r\n // if (data.multiSortMeta && data.multiSortMeta.length > 0) {\r\n // data.multiSortMeta.forEach((meta: { field: any; order: any; }) => { \r\n\r\n // let sort = {\r\n // property: meta.field,\r\n // order: meta.order == 1 ? 'ASC' : 'DESC'\r\n // }\r\n // this._sort = [sort];\r\n // }); \r\n // }\r\n // if (data.filters) {\r\n // this.searchFields =[];\r\n // const filtersArray: [string, { value: string | null; matchMode: string,operator : string }[]][] = Object.entries(data.filters);\r\n\r\n // filtersArray.forEach(([fieldName, fieldValue]) => {\r\n\r\n // fieldValue.forEach(filter =>\r\n // {\r\n\r\n // if(filter.value){\r\n // let searchField : SearchField ={\r\n // field :fieldName,\r\n // labelValue : filter.value,\r\n // value:filter.value,\r\n // type : this.inferInputType(fieldName),\r\n // operator : this.getOperatorNumber(filter.matchMode)\r\n // };\r\n // console.log('searchField',searchField);\r\n // if (this.searchFields) {\r\n\r\n // this.searchFields.push(searchField);\r\n // }\r\n // }\r\n // });\r\n // });\r\n // }\r\n // this.search();\r\n // }\r\n\r\n // }\r\n\r\n // } else {\r\n // console.log(\"No session data found in localStorage\");\r\n // }\r\n // }\r\n }\r\n\r\n onClearFilters(): void {\r\n this.dt?.clear();\r\n localStorage.removeItem(`${this.formName}-filterMode`)\r\n }\r\n\r\n getOperatorNumber(operator: string): number {\r\n return FilterOperatorType[operator.toUpperCase() as keyof typeof FilterOperatorType] ?? -1;\r\n }\r\n inferInputType(value: any): InputTypes {\r\n if (typeof value === 'string') {\r\n if (/^\\d+$/.test(value)) {\r\n return InputTypes.INTEGER;\r\n } else if (/^\\d+\\.\\d+$/.test(value)) {\r\n return InputTypes.DECIMAL_INPUT;\r\n } else if (/^\\d{4}-\\d{2}-\\d{2}$/.test(value)) {\r\n return InputTypes.DATE;\r\n } else {\r\n return InputTypes.TEXT_BOX;\r\n }\r\n } else {\r\n return InputTypes.TEXT_BOX;\r\n }\r\n }\r\n loadInitialState() {\r\n return localStorage['get']('table-state');\r\n }\r\n //#region private methods\r\n private _extractFilters(event: FilterMetadata[] | any): IFilteredRequest[] {\r\n let filters: IFilteredRequest[] = [];\r\n if (event != null\r\n &&\r\n event != undefined) {\r\n this.columns.forEach((col: GridColumn) => {\r\n let currency: string | undefined = col.currencyOtherCode;\r\n if (col.type == this.displayTypes.CURRENCY_SOCIETE_DISPLAY) {\r\n currency = this.appSettingsService.appSettings.deviseSociete.codeDevise;\r\n }\r\n if (event != null\r\n &&\r\n event != undefined) {\r\n let filter = event[col.field];\r\n if (this._notNullOrUndefined(filter)) {\r\n if (Array.isArray(filter)) {\r\n for (const item of filter) {\r\n if (this._notNullOrUndefined(item.value)) {\r\n if (item.value instanceof Date) {\r\n item.value = this.datePipe.transform(item.value, 'yyyy-MM-dd');\r\n }\r\n filters.push({\r\n operator: FilterHelper.ToOperatorType(item.matchMode)\r\n , filterValue: item.value\r\n , propretyName: col.field\r\n , header: col.header\r\n , type: FilterHelper.ToInputType(col.type)\r\n , currency: currency\r\n , numOfDecimal: col.numOfDecimal\r\n , isFraction: col.isFraction\r\n , comboboxLabel: col.comboLabel\r\n });\r\n }\r\n }\r\n } else {\r\n if (filter != null) {\r\n if (filter.value instanceof Date) {\r\n filter.value = this.datePipe.transform(filter.value, 'yyyy-MM-dd');\r\n }\r\n filters.push({\r\n operator: FilterHelper.ToOperatorType(filter.matchMode)\r\n , filterValue: filter.value\r\n , propretyName: col.field\r\n , header: col.header\r\n , type: FilterHelper.ToInputType(col.type)\r\n , currency: currency\r\n , numOfDecimal: col.numOfDecimal\r\n , isFraction: col.isFraction\r\n , comboboxLabel: col.comboLabel\r\n });\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n return filters;\r\n }\r\n\r\n private _extractSortCriterias(lazyLoadEvent: TableLazyLoadEvent): void {\r\n let sortMeta = this._toSortMeta(lazyLoadEvent);\r\n if (sortMeta) {\r\n if (this.sortMode === GridSortMode.Single) {\r\n this._extractSingleSortCriteria(sortMeta)\r\n }\r\n else if (this.sortMode === GridSortMode.Multiple) {\r\n this._extractMultipleSortCriterias(sortMeta)\r\n }\r\n }\r\n }\r\n\r\n private _extractSingleSortCriteria(sorMeta: SortMeta) {\r\n if (this.sortMode === GridSortMode.Single) {\r\n if (sorMeta.field) {\r\n // create new sort element\r\n let sort: ISortByProprety = {\r\n property: sorMeta.field,\r\n order: sorMeta.order == 1 ? 'ASC' : 'DESC'\r\n }\r\n this._sort = [sort]\r\n }\r\n }\r\n else {\r\n throw new Error('Can\\'t process \\'SingleSort\\' when [sortMode] is \\'multiple\\'');\r\n }\r\n }\r\n\r\n private _extractMultipleSortCriterias(sortMetas: SortMeta[]) {\r\n if (this.sortMode === GridSortMode.Multiple) {\r\n if (sortMetas && Array.isArray(sortMetas)) {\r\n // create new sort element\r\n this._sort = [];\r\n this.sortMetas = sortMetas;\r\n //console.log('meta ', sortMetas)\r\n sortMetas.forEach(sm => {\r\n if (sm.field) {\r\n // create new sort element\r\n let sort: ISortByProprety = {\r\n property: sm.field,\r\n order: sm.order == 1 ? 'ASC' : 'DESC'\r\n }\r\n\r\n //add the new element to _sort\r\n this._sort.push(sort);\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n throw new Error('Can\\'t process \\'MultipleSort\\' when [sortMode] is \\'single\\'');\r\n }\r\n }\r\n\r\n private _notNullOrUndefined(obj: any): boolean {\r\n if (obj != null\r\n && obj != undefined) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private _extractOnlyVisibleSearchFields(): void {\r\n if (\r\n this.presentationSettings\r\n && this.presentationSettings.presentationSettingDetails.length > 0\r\n && this.tempSearchFields) {\r\n this.searchFields = this.tempSearchFields.filter(sf => this.presentationSettings?.presentationSettingDetails\r\n .some(p => p.blockName == sf.field && (p.isBlockVisible == true || p.isBlockVisible == undefined))\r\n )\r\n }\r\n }\r\n\r\n private _extractSearchBoxFilters(): void {\r\n this._searchBoxFilters = [];\r\n if (this.searchFields) {\r\n\r\n this._extractOnlyVisibleSearchFields();\r\n\r\n this.searchFields.forEach((sf: SearchField) => {\r\n //if (sf.value != undefined && sf.value != null) {\r\n if (sf.operator != null && sf.operator != undefined && sf.value != undefined && sf.value !== \"\") {\r\n let filterByProperty: IFilteredRequest = {\r\n operator: sf.operator\r\n , filterValue: sf.value\r\n , propretyName: sf.field\r\n , header: sf.labelValue\r\n , type: sf.type\r\n , comboboxLabel: sf.comboboxLabel\r\n , currency: sf.currency\r\n , isFraction: sf.isFraction\r\n , numOfDecimal: sf.numOfDecimal\r\n };\r\n this._searchBoxFilters.push(filterByProperty);\r\n }\r\n else if (sf.operator == undefined || sf.operator == null) {\r\n throw new Error(`the search field with [field : ${sf.field}] have no operators`)\r\n }\r\n //}\r\n });\r\n }\r\n }\r\n\r\n private _clonePagedRequest(request: IPagedRequest): IPagedRequest {\r\n let clone: IPagedRequest = {\r\n maxResultCount: request.maxResultCount,\r\n skipCount: request.skipCount,\r\n sorting: request.sorting,\r\n keyword: request.keyword,\r\n filters: request.filters,\r\n getAllData: request.getAllData,\r\n summaries: request.summaries\r\n };\r\n return clone;\r\n }\r\n\r\n private _extractHaveSummaryProperties(): Array<string> {\r\n let properties: Array<string> = [];\r\n let haveSummaryColumns = this.columns.filter(c => c.haveSummary === true);\r\n if (haveSummaryColumns && haveSummaryColumns.length > 0) {\r\n properties = haveSummaryColumns.map(c => c.field);\r\n }\r\n\r\n return properties;\r\n }\r\n\r\n private _extractSummaries(): void {\r\n if (this.page.summaries) {\r\n this.page.summaries.forEach(s => {\r\n this.summaries[s.proprety] = s.summary;\r\n });\r\n }\r\n }\r\n\r\n private _extractMultiSortMetaItems(): void {\r\n this._sort = [];\r\n if (this.sortMetas) {\r\n this.sortMetas.forEach((s: SortMeta) => {\r\n let sort: ISortByProprety = {\r\n property: s.field,\r\n order: s.order == 1 ? 'ASC' : 'DESC'\r\n }\r\n\r\n let sortItem = this._sort.find(s => s.property == sort.property);\r\n\r\n if (sortItem) {\r\n if (sortItem.order != sort.order) {\r\n sortItem.order = sort.order;\r\n }\r\n }\r\n else {\r\n this._sort.push(sort);\r\n }\r\n });\r\n }\r\n }\r\n\r\n private _toSortMeta(tableLazyLoadEvent: TableLazyLoadEvent): any {\r\n if (this.sortMode === GridSortMode.Single) {\r\n if (tableLazyLoadEvent.sortField && tableLazyLoadEvent.sortOrder) {\r\n let sortMeta: ISortMeta = {\r\n field: tableLazyLoadEvent.sortField,\r\n order: tableLazyLoadEvent.sortOrder\r\n }\r\n return sortMeta;\r\n }\r\n }\r\n else if (this.sortMode === GridSortMode.Multiple) {\r\n if (tableLazyLoadEvent.multiSortMeta) {\r\n return tableLazyLoadEvent.multiSortMeta;\r\n }\r\n }\r\n else {\r\n throw new Error('No [sortMode] have been set');\r\n }\r\n }\r\n\r\n private _generateFiltersHtmlTemplate(): void {\r\n\r\n this.filtersHtmlTemplate = \"\"\r\n //exclude useless Grid filter \r\n this._gridHeaderFilters = this._excludeUselessGridFilter(this._gridHeaderFilters)\r\n\r\n //add search Box filters html\r\n if (this._searchBoxFilters) {\r\n this.filtersHtmlTemplate = this._htmlTemplateGeneratorService\r\n .generateGridFiltersTemplate(this._searchBoxFilters);\r\n }\r\n\r\n console.log(\"this._gridHeaderFilters ==> \", this._gridHeaderFilters)\r\n\r\n //add grid header filters html\r\n if (this._gridHeaderFilters) {\r\n this.filtersHtmlTemplate += this._htmlTemplateGeneratorService\r\n .generateGridFiltersTemplate(this._gridHeaderFilters, false);\r\n }\r\n\r\n this.filtersHtmlTemplateChange.emit(this.filtersHtmlTemplate);\r\n\r\n }\r\n\r\n private _excludeUselessGridFilter(filters: IFilteredRequest[]) {\r\n return filters.filter(x =>\r\n x.filterValue !== null && x.filterValue !== undefined && x.filterValue !== \"\" && x.operator !== undefined\r\n );\r\n }\r\n\r\n private _excludeUselessFilters(pagedRequest: IPagedRequest): IPagedRequest {\r\n if (pagedRequest && pagedRequest.filters) {\r\n pagedRequest.filters = pagedRequest.filters.filter(f => f.filterValue != undefined && f.filterValue != null)\r\n }\r\n return pagedRequest;\r\n }\r\n\r\n exportExcel() {\r\n this.pagedRequest!!.getAllData = true\r\n if (this.crudService != null && this.crudService != undefined && this.isGridDataPagedInApi) {\r\n this.crudService.getAllPaged(this.pagedRequest!!).subscribe({\r\n next: (value: IPagedResponse<any>) => {\r\n if (value) {\r\n\r\n const formattedItems = ExportExcelHelper.preprocessDateForExcel(value.items);\r\n value.items = formattedItems;\r\n this.exportDataFromApiToExcelSheet(value)\r\n }\r\n this.page.loading = false;\r\n },\r\n error: (error: HttpErrorResponse) => {\r\n this._messageService.error(error.message);\r\n this.page.loading = false;\r\n },\r\n });\r\n }\r\n else {\r\n let filteredData = this.page.items.filter((col: any) => !col.isButton);\r\n filteredData = ExportExcelHelper.preprocessDateForExcel(filteredData);\r\n this.page.items = filteredData\r\n this.exportDataFromApiToExcelSheet(this.page)\r\n }\r\n }\r\n\r\n exportDataFromApiToExcelSheet(value: any) {\r\n import(\"xlsx\").then(xlsx => {\r\n const workbook = xlsx.utils.book_new();\r\n if (this.pagedRequest!.filters?.length != 0) {\r\n const mappedFilters = this.pagedRequest!.filters?.map(filter => ({\r\n property: filter.propretyName,\r\n operatorName: this.getFilterOperatorName(filter.operator),\r\n value: filter.filterValue\r\n }));\r\n const filters = xlsx.utils.json_to_sheet(<any[]>mappedFilters)\r\n xlsx.utils.book_append_sheet(workbook, filters, 'Filters');\r\n }\r\n\r\n let selectedColumnsFields = this.selectedColumns.filter(x => !x.isButton).map(column => column.translatedHeader!!)\r\n selectedColumnsFields = selectedColumnsFields.filter(item => item !== '')\r\n const worksheetData = value.items.map((item: any) => {\r\n const rowData: { [header: string]: any } = {};\r\n this.columns.forEach(col => {\r\n rowData[col.translatedHeader!!] = item[col.field];\r\n });\r\n return rowData;\r\n });\r\n const filteredWorksheetData = this.removeNonExistingColumns(worksheetData, selectedColumnsFields)\r\n const worksheet = xlsx.utils.json_to_sheet(filteredWorksheetData);\r\n xlsx.utils.book_append_sheet(workbook, worksheet, 'Data');\r\n const excelBuffer: any = xlsx.write(workbook, { bookType: 'xlsx', type: 'array' });\r\n this.saveAsExcelFile(excelBuffer, \"excel\");\r\n });\r\n }\r\n\r\n saveAsExcelFile(buffer: any, fileName: string): void {\r\n let EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\n let EXCEL_EXTENSION = '.xlsx';\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + '_export_' + new Date().getTime() + EXCEL_EXTENSION);\r\n }\r\n\r\n getFilterOperatorName(operator: FilterOperatorType): string {\r\n switch (operator) {\r\n case FilterOperatorType.EQUAL: return 'EQUAL';\r\n case FilterOperatorType.LESSOREQUAL: return 'LESS OR EQUAL';\r\n case FilterOperatorType.GREATEROREQUAL: return 'GREATER OR EQUAL';\r\n case FilterOperatorType.LESS: return 'LESS';\r\n case FilterOperatorType.GREATER: return 'GREATER';\r\n case FilterOperatorType.NOTEQUAL: return 'NOT EQUAL';\r\n case FilterOperatorType.CONTAINS: return 'CONTAINS';\r\n default: return 'UNKNOWN_OPERATOR';\r\n }\r\n }\r\n\r\n removeNonExistingColumns(worksheetData: any[], selectedColumnsFields: string[]): any[] {\r\n return worksheetData.map(row => {\r\n const newRow: any = {};\r\n for (const col of selectedColumnsFields) {\r\n if (row.hasOwnProperty(col)) {\r\n newRow[col] = row[col];\r\n }\r\n }\r\n return newRow;\r\n });\r\n }\r\n\r\n toggleHeaderFilters() {\r\n if (this.showHeaderFilters === true) {\r\n this.showHeaderFilters = false;\r\n this.filterIcon = \"pi pi-filter\";\r\n this.filterTooltip = \"show_filter\";\r\n localStorage.removeItem(`${this.formName}-filterMode`)\r\n }\r\n else { //this.showHeaderFilters === false\r\n this.showHeaderFilters = true;\r\n this.filterIcon = \"pi pi-filter-slash\";\r\n this.filterTooltip = \"hide_filter\";\r\n\r\n }\r\n }\r\n\r\n toggleHeaderFiltersMode() {\r\n if (this.dt) {\r\n this.dt.clear()\r\n localStorage.setItem(`${this.formName}-filterMode`, this.filterModeTooltip)\r\n if (this.filterModeTooltip === \"menu_mode\") {\r\n this.changeHeaderFiltersMode = \"menu\";\r\n this.filterModeIcon = \"pi pi-check\";\r\n this.filterModeTooltip = \"row_mode\";\r\n\r\n for (const col of this.selectedColumns) {\r\n this.dt.filters[col.field] = [{ value: null, matchMode: undefined }];\r\n }\r\n this.dt._filter()\r\n } else {\r\n this.changeHeaderFiltersMode = \"row\";\r\n this.filterModeIcon = \"pi pi-ellipsis-v\";\r\n this.filterModeTooltip = \"menu_mode\";\r\n\r\n for (const col of this.selectedColumns) {\r\n this.dt.filters[col.field] = { value: null, matchMode: undefined };\r\n }\r\n this.dt._filter()\r\n }\r\n }\r\n }\r\n\r\n getHeaderClassColor(columnType: DisplayTypes): string {\r\n let colorful = this.layoutHelperService.layoutConfiguration.isColorfulModeEnabled;\r\n if (colorful === true) {\r\n let colorForIntegerDisplay = DisplayTypeColors[columnType] || 'white-grid';\r\n //alert(columnType+colorForIntegerDisplay)\r\n return colorForIntegerDisplay;\r\n } else return 'white-grid'\r\n }\r\n\r\n get colorful(): boolean {\r\n return this.layoutHelperService.layoutConfiguration.isColorfulModeEnabled;\r\n }\r\n //#endregion\r\n\r\n private initialColumnsProcess(): void {\r\n const deviseSocieteNumOfDecimal: number = this.appSettingsService.appSettings.deviseSociete.nombreDecimales ?? DefaultSocieteDevise.nombreDecimales;\r\n\r\n this._columns.forEach((col: GridColumn) => {\r\n // set isNumeric\r\n col.isNumeric = col.type != undefined && col.type != null && (NumericDisplayTypes.indexOf(col.type) >= 0);\r\n\r\n // set filterInputType\r\n switch (col.type) {\r\n case DisplayTypes.DATE_DISPLAY: {\r\n col.filterInputType = 'date';\r\n break;\r\n }\r\n\r\n case DisplayTypes.DATETIME_DISPLAY: {\r\n col.filterInputType = 'date';\r\n break;\r\n }\r\n case DisplayTypes.INTEGER_DISPLAY:\r\n case DisplayTypes.RATE_DISPLAY:\r\n case DisplayTypes.CURRENCY_SOCIETE_DISPLAY:\r\n case DisplayTypes.CURRENCY_OTHER_DISPLAY:\r\n case DisplayTypes.DECIMAL_DISPLAY: {\r\n col.filterInputType = 'numeric';\r\n break;\r\n }\r\n\r\n case DisplayTypes.CHECKBOX_DISPLAY: {\r\n col.filterInputType = 'boolean';\r\n break;\r\n }\r\n\r\n default: {\r\n col.filterInputType = 'text';\r\n break;\r\n }\r\n\r\n }\r\n\r\n // set numOfDecimal\r\n if (col.numOfDecimal) return;\r\n\r\n if (!col.type) {\r\n col.numOfDecimal = 0;\r\n return;\r\n }\r\n\r\n if (!col.isNumeric) {\r\n col.numOfDecimal = 0;\r\n return;\r\n }\r\n\r\n if (col.type === DisplayTypes.CURRENCY_SOCIETE_DISPLAY) {\r\n col.numOfDecimal = deviseSocieteNumOfDecimal;\r\n\r\n return;\r\n }\r\n\r\n if (col.type === DisplayTypes.INTEGER_DISPLAY) {\r\n col.numOfDecimal = 0;\r\n\r\n return;\r\n }\r\n\r\n });\r\n\r\n\r\n }\r\n handleCalendarEventClick(item: any) {\r\n if (item.mode === \"SEARCH\") {\r\n this.search();\r\n }\r\n else {\r\n this.calendarEventClick.emit(item);\r\n }\r\n }\r\n\r\n handleDateRangeChange(event: any) {\r\n let start = this.searchFields?.find(x => x.field === this.calenderSchema?.start)\r\n let end = this.searchFields?.find(x => x.field === this.calenderSchema?.end)\r\n if (start && end) {\r\n start.value = event.start;\r\n end.value = event.end;\r\n start.disabled = true;\r\n end.disabled = true;\r\n this.search();\r\n }\r\n }\r\n\r\n callSearchHandler(event: any) {\r\n if (this.pagedRequest) {\r\n this.pagedRequest.maxResultCount = event.maxResultCount;\r\n this.pagedRequest.skipCount = event.skipCount;\r\n this.search();\r\n this.page$.next({ ...this.page });\r\n }\r\n }\r\n\r\n getHeaderTitles(titles: string[], item: any): string[] {\r\n if (!titles || !item)\r\n return [];\r\n\r\n const key = item.uid;\r\n if (this.titleCache.has(key)) {\r\n return this.titleCache.get(key) || [];\r\n }\r\n\r\n const res = titles.map(t => item[t]).filter(v => !!v);\r\n this.titleCache.set(key, res);\r\n return res;\r\n }\r\n\r\n status: string | undefined;\r\n onStatusFilterChanged(evt:any){\r\n this.status = evt;\r\n console.log(this.status)\r\n this.searchFields = this.searchFields?.filter(sf => sf.field !== this.entityInfo?.statusColumnName);\r\n this.searchFields?.push({\r\n field: this.entityInfo?.statusColumnName ?? \"\",\r\n value: evt,\r\n labelValue: '',\r\n type: InputTypes.COMBOBOX,\r\n operator : 6,\r\n styleClass: \"hidden\"\r\n }); \r\n } \r\n\r\n\r\n}\r\n","<div class=\"grid\">\r\n\r\n <div class=\"col-12\" [@slideInOut]=\"showSearchField ? 'in' : 'out'\" *ngIf=\"showGlobalSearch\">\r\n <!-- SearchBox// If exist -->\r\n <tsi-search-box \r\n [isRtlMode]=\"isRtlMode\" \r\n [(searchFields)]=\"searchFields\" \r\n [businessClass]=\"businessClass\"\r\n [entityInfo]=\"entityInfo\"\r\n (searchFieldsChange)=\"searchFieldsValueChanges($event)\" \r\n (keywordValueChanged)=\"keywordValueChanged($event)\"\r\n (searchFieldsApplied)=\"search($event)\"\r\n (statusFilterChanged)=\"onStatusFilterChanged($event)\"\r\n (comboBoxLabelChanged)=\"ccomboBoxLabelChanged($event)\">\r\n </tsi-search-box>\r\n </div>\r\n\r\n <div *ngIf=\"_showCalenderView === false && _showCardView === false && _showKanbanView === false\" class=\"col-12\">\r\n <p-table #dt [lazy]=\"isGridDataPagedInApi\" [lazyLoadOnInit]=\"searchOnInit\" (onLazyLoad)=\"lazyLoad($event)\"\r\n dataKey=\"{{ key }}\" [totalRecords]=\"page.totalCount\" [loading]=\"page.loading\" [reorderableColumns]=\"true\"\r\n [resizableColumns]=\"true\" columnResizeMode=\"expand\" [columns]=\"selectedColumns\" [value]=\"page.items\"\r\n [paginator]=\"true\" [scrollable]=\"true\" scrollHeight=\"600px\" [(rows)]=\"page.pageSize\"\r\n [showCurrentPageReport]=\"true\" [globalFilterFields]=\"fields()\" [tableStyle]=\"{ 'min-width': '50rem' }\"\r\n currentPageReportTemplate=\"{{ 'Showing' | localize }} {{getFirstElementIndex()}} {{\r\n 'to' | localize\r\n }} {last} {{ 'of' | localize }} \r\n {totalRecords} {{ 'entries' | localize }}\" [rowsPerPageOptions]=\"[1, 10, 25, 50]\" [sortMode]=\"sortMode\"\r\n [multiSortMeta]=\"sortMetas\" styleClass=\"p-datatable-gridlines\" [selectAll]=\"selectAll\"\r\n [selectionMode]=\"selectionMode\" [(selection)]=\"selection\" (onRowUnselect)=\"onSelectedItemsChanged()\"\r\n (selectAllChange)=\"onSelectAllChange($event)\" (onRowSelect)=\"onSelectedItemsChanged()\">\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"flex justify-content-between align-items-center\">\r\n <div class=\"ml-2\">\r\n {{ header | localize }}\r\n </div>\r\n\r\n <div class=\"p-1 flex align-items-center\">\r\n <div *ngIf=\"showFilterButton\" presentationDesignerBase=\"grid_toggle_header_filters\">\r\n <Tsi-Button [icon]=\"filterIcon\" [tooltipPosition]=\"tooltipPosition.Top\" [tooltipText]=\"filterTooltip\"\r\n styleClass=\"p-element hover:shadow-6 p-button-primary p-button p-component p-button-icon-only\"\r\n (click)=\"toggleHeaderFilters()\"></Tsi-Button>\r\n </div>\r\n\r\n <div *ngIf=\"showHeaderFilters\" presentationDesignerBase=\"grid_toggle_header_filter_mode\">\r\n <Tsi-Button [icon]=\"filterModeIcon\" [tooltipPosition]=\"tooltipPosition.Top\"\r\n [tooltipText]=\"filterModeTooltip\" [styleClass]=\"'ml-1 p-button-primary p-button-icon-only'\"\r\n (click)=\"toggleHeaderFiltersMode()\"></Tsi-Button>\r\n </div>\r\n\r\n <div presentationDesignerBase=\"grid_clear_filter_button\">\r\n <Tsi-Button [tooltipPosition]=\"tooltipPosition.Top\" [tooltipText]=\"'icon-clear-filter'\"\r\n styleClass=\"ml-1 p-element hover:shadow-6 p-button-primary p-button p-component p-button-icon-only\"\r\n (click)=\"onClearFilters()\" [iconSrc]=\"'assets/layout/images/icon/icon-clear-filter.svg'\">\r\n </Tsi-Button>\r\n </div>\r\n\r\n <div *ngIf=\"showExportButton\" presentationDesignerBase=\"grid_export_button\">\r\n <Tsi-Button icon=\"p-button-icon pi pi-file-excel\" (onClick)=\"exportExcel()\"\r\n styleClass=\"p-element p-button-success hover:shadow-6 ml-2 p-1 p-button p-component p-button-icon-only\"\r\n [tooltipPosition]=\"tooltipPosition.Top\" tooltipText=\"XLS\"></Tsi-Button>\r\n </div>\r\n\r\n <p-multiSelect class=\"ml-1\" [options]=\"columns\" [(ngModel)]=\"selectedColumns\" optionLabel=\"translatedHeader\"\r\n selectedItemsLabel=\"{0} {{ 'columns_selected' | localize }}\" [style]=\"{ 'min-width': '180px' }\"\r\n placeholder=\"{{ 'choose_columns' | localize }}\" (onChange)=\"onSelectedColumnsChange()\">\r\n </p-multiSelect>\r\n </div>\r\n\r\n <!-- <div> -->\r\n <!-- <button *ngIf=\"showGlobalSearch\" type=\"button\" pButton pRipple icon=\"pi pi-search\" (click)=\"search()\"></button> -->\r\n <!-- </div> -->\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th [ngStyle]=\"page.items.length > 0 ? getCheckboxStyle() : {}\"\r\n [ngClass]=\"page.loading ? 'no-z-index' : 'z-index-checkbox'\" *ngIf=\"selectionMode == multipleGridSelectionMode\"\r\n style=\"padding: .3rem !important; width: 3rem;\">\r\n <p-tableHeaderCheckbox #tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <!-- <th scope=\"col\" style=\"width:3rem\"></th>\r\n <th scope=\"col\" style=\"width:3rem\"></th> -->\r\n <ng-container *ngFor=\"let col of columns\">\r\n <th scope=\"col\" [style]=\"col.style\" pTooltip=\"{{ col.toolTipText | localize }}\" tooltipPosition=\"top\"\r\n [pSortableColumn]=\"!col.isButton ? col.field : null\"\r\n [pResizableColumnDisabled]=\"col.isButton || col.type === displayTypes.IMAGE_DISPLAY\"\r\n [tooltipDisabled]=\"col.isButton\" [pReorderableColumnDisabled]=\"col.isButton\" pReorderableColumn\r\n pResizableColumn [ngStyle]=\"page.items.length > 0 ? col.headerColumnStyle : {}\"\r\n [class.disabled-column]=\"col.isButton\" [ngClass]=\"[\r\n getHeaderClassColor(col.type),\r\n page.loading ? 'no-z-index' : '',\r\n col.isButton ? 'w-1rem' : '',\r\n (col.isButton || col.type === displayTypes.IMAGE_DISPLAY) ? 'non-resizable-column' : ''\r\n ]\" [ngStyle]=\"page.items.length > 0 ? col.headerColumnStyle : {}\">\r\n <span>\r\n <table class=\"p-0 m-0\">\r\n <tr>\r\n <td class=\"col p-0 m-0\" \r\n [ngClass]=\"{'w-1rem': col.isButton}\">\r\n <ng-container *ngIf=\"notInSpecifiedColumn(col.field)\">\r\n {{ col.header | localize }}\r\n </ng-container>\r\n </td>\r\n <td class=\"col-fixed p-0 m-0\" style=\"width: 1rem\">\r\n <p-sortIcon class=\"w-1rem m-0 p-0\" *ngIf=\"notInSpecifiedColumn(col.field)\"\r\n field=\"{{ col.field }}\"></p-sortIcon>\r\n </td>\r\n </tr>\r\n </table>\r\n </span>\r\n </th>\r\n </ng-container>\r\n </tr>\r\n <tr *ngIf=\"showHeaderFilters\">\r\n <!-- <th scope=\"col\" style=\"width:3rem\"></th>\r\n <th scope=\"col\" style=\"width:3rem\"></th> -->\r\n <th [ngClass]=\"page.loading ? 'no-z-index' : ''\" *ngIf=\"selectionMode == multipleGridSelectionMode\"\r\n style=\"width: 4rem\"></th>\r\n <th style=\"overflow: inherit\" scope=\"col\" *ngFor=\"let col of columns\">\r\n <p-columnFilter [type]=\"col.filterInputType\" [field]=\"col.field\" [display]=\"changeHeaderFiltersMode\"\r\n [minFractionDigits]=\"col.numOfDecimal\" [maxFractionDigits]=\"col.numOfDecimal\" [showButtons]=\"false\"\r\n [matchMode]=\"filterMatchMode.EQUALS\">\r\n </p-columnFilter>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-item let-columns=\"columns\" let-index=\"rowIndex\">\r\n <!-- CASE : multiple selection -->\r\n <tr [ngStyle]=\"item.color && item.color !== '' ? {'background-color': item.color} : {}\" *ngIf=\"\r\n selectionMode == multipleGridSelectionMode;\r\n else notMultipleSelectionModeBlock\r\n \">\r\n <td [ngStyle]=\"page.items.length > 0 ? getCheckboxStyle() : {}\" style=\"padding: .3rem !important;\">\r\n <p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\r\n </td>\r\n <!-- <td class=\"p-1\">\r\n <div class=\"flex align-items-center justify-content-center p-0\">\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-pencil\" class=\"p-button-rounded p-button-text\"\r\n (click)=\"edit(item)\"></button>\r\n </div>\r\n </td>\r\n <td class=\"p-1\">\r\n <div class=\"flex align-items-center justify-content-center p-0\">\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-trash\"\r\n class=\"p-button-rounded p-button-text p-button-danger\" (click)=\"delete(item)\"></button>\r\n </div>\r\n </td> -->\r\n <td [ngStyle]=\"page.items.length > 0 ? col.ngStyle : {}\" [ngClass]=\"page.loading ? 'no-z-index' : ''\"\r\n style=\"height: min-content; margin-left: -.5rem;\" *ngFor=\"let col of columns\">\r\n <!-- Tsi-Currency-Societe-Input -->\r\n\r\n <div *ngIf=\"\r\n col.type == displayTypes.CURRENCY_SOCIETE_DISPLAY;\r\n else currencyOtherOutputBlock\r\n \">\r\n <Tsi-Currency-Societe-Display [inputData]=\"item[col.field]\">\r\n </Tsi-Currency-Societe-Display>\r\n </div>\r\n\r\n <!-- Tsi-Currency-Other-Input -->\r\n <ng-template #currencyOtherOutputBlock>\r\n <ng-container *ngIf=\"\r\n col.type == displayTypes.CURRENCY_OTHER_DISPLAY;\r\n else datePickerOutputBlock\r\n \">\r\n <Tsi-Currency-Other-Display [currency]=\"col.currencyCode\" [inputData]=\"item[col.field]\">\r\n </Tsi-Currency-Other-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Date-Picker -->\r\n <ng-template #datePickerOutputBlock>\r\n <ng-container *ngIf=\"\r\n col.type == displayTypes.DATE_DISPLAY;\r\n else checkBoxOutputBlock\r\n \">\r\n <Tsi-Date-Display [inputData]=\"item[col.field]\">\r\n </Tsi-Date-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-CheckBox -->\r\n <ng-template #checkBoxOutputBlock>\r\n <ng-container *ngIf=\"\r\n col.type == displayTypes.CHECKBOX_DISPLAY;\r\n else decimalOutputBlock\r\n \">\r\n <Tsi-Checkbox-Display [inputData]=\"item[col.field]\">\r\n </Tsi-Checkbox-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Decimal-Input -->\r\n <ng-template #decimalOutputBlock>\r\n <ng-container *ngIf=\"\r\n col.type == displayTypes.DECIMAL_DISPLAY;\r\n else integerOutputBlock\r\n \">\r\n <Tsi-Decimal-Display [formatDecimal]=\"col.formatDecimal\" [inputData]=\"item[col.field]\"\r\n [numOfDecimal]=\"col.numOfDecimal\">\r\n </Tsi-Decimal-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Integer -->\r\n <ng-template #integerOutputBlock>\r\n <ng-container *ngIf=\"\r\n col.type == displayTypes.INTEGER_DISPLAY;\r\n else rateOutputBlock\r\n \">\r\n <Tsi-Integer-Display [inputData]=\"item[col.field]\">\r\n </Tsi-Integer-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Rate-Input -->\r\n <ng-template #rateOutputBlock>\r\n <ng-container *ngIf=\"\r\n col.type == displayTypes.RATE_DISPLAY;\r\n else displayNestedPropOutputBlock\r\n \">\r\n <Tsi-Rate-Display [isFraction]=\"col.isFraction\" [inputData]=\"item[col.field]\">\r\n </Tsi-Rate-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- display-nested-prop -->\r\n <ng-template #displayNestedPropOutputBlock>\r\n <ng-container *ngIf=\"\r\n col.type == displayTypes.NESTED_PROP_DISPLAY;\r\n else displayButtonBlock\r\n \">\r\n <Tsi-Display-Nested-Prop [sourceUrl]=\"col.displayNestedPropertySourceUrl\" [id]=\"item[col.field]\"\r\n [displayValue]=\"col.displayNestedPropertylabelField\">\r\n </Tsi-Display-Nested-Prop>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- display-nested-prop -->\r\n <ng-template #displayButtonBlock>\r\n <ng-container *ngIf=\"col.isButton; else displayTextEyeBlock\">\r\n <div class=\"align-items-center frozen-column-rtl-mode justify-content-center p-2\">\r\n <Tsi-Button [styleClass]=\"col.styleClass\" type=\"button\" icon=\"{{ col.buttonIcon }}\"\r\n [tooltipPosition]=\"tooltipPosition.Top\" [tooltipText]=\"col.toolTipText\"\r\n [text]=\"col.buttonLabel ? col.buttonLabel : item[col.field]\"\r\n (click)=\"buttonClicked(item, col.field)\"></Tsi-Button>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- display-text-eye -->\r\n <ng-template #displayTextEyeBlock>\r\n <ng-container *ngIf=\"\r\n col.type == displayTypes.TEXT_DISPLAY;\r\n else defaultTextOutputBlock\r\n \">\r\n <span>\r\n {{ item[col.field] }}\r\n </span>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Text-Box -->\r\n <ng-template #defaultTextOutputBlock>\r\n <ng-container>\r\n <span>\r\n {{ item[col.field] }}\r\n </span>\r\n </ng-container>\r\n </ng-template>\r\n </td>\r\n </tr>\r\n <!-- CASE : single or none selection -->\r\n <ng-template #notMultipleSelectionModeBlock>\r\n <ng-container>\r\n <tr [ngStyle]=\"item.color && item.color !== '' ? {'background-color': item.color} : {}\"\r\n [pSelectableRow]=\"item\" [pSelectableRowIndex]=\"index\">\r\n <!-- <td class=\"p-1\">\r\n <div class=\"flex align-items-center justify-content-center p-0\">\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-pencil\" class=\"p-button-rounded p-button-text\"\r\n (click)=\"edit(item)\"></button>\r\n </div>\r\n </td>\r\n <td class=\"p-1\">\r\n <div class=\"flex align-items-center justify-content-center p-0\">\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-trash\"\r\n class=\"p-button-rounded p-button-text p-button-danger\" (click)=\"delete(item)\"></button>\r\n </div>\r\n </td> -->\r\n <td [ngStyle]=\"page.items.length > 0 ? col.ngStyle : {}\" style=\"height: min-content;\"\r\n [ngClass]=\"{\r\n 'no-z-index': page.loading,\r\n 'w-1rem': col.isButton\r\n }\" *ngFor=\"let col of columns\">\r\n <!-- [ngClass]=\"page.loading ? 'no-z-index' : ''\" -->\r\n <!-- Tsi-Currency-Societe-Input -->\r\n\r\n <div *ngIf=\"\r\n col.type == displayTypes.CURRENCY_SOCIETE_DISPLAY;\r\n else currencyOtherOutputBlock\r\n \">\r\n <Tsi-Currency-Societe-Display [inputData]=\"item[col.field]\">\r\n </Tsi-Currency-Societe-Display>\r\n </div>\r\n\r\n <!-- Tsi-Currency-Other-Input -->\r\n <ng-template #currencyOtherOutputBlock>\r\n <ng-container *ngIf=\"\r\n col.type == displayTypes.CURRENCY_OTHER_DISPLAY;\r\n else datePickerOutputBlock\r\n \">\r\n <Tsi-Currency-Other-Display [currency]=\"col.currencyCode\" [inputData]=\"item[col.field]\">\r\n </Tsi-Currency-Other-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Date-Picker -->\r\n <ng-template #datePickerOutputBlock>\r\n <ng-container *ngIf=\"\r\n col.type == displayTypes.DATE_DISPLAY;\r\n else dateTimePickerOutputBlock\r\n \">\r\n <Tsi-Date-Display [inputData]=\"item[col.field]\">\r\n </Tsi-Date-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Date-Picker -->\r\n <ng-template #dateTimePickerOutputBlock>\r\n <ng-container *ngIf=\"\r\n col.type == displayTypes.DATETIME_DISPLAY;\r\n else checkBoxOutputBlock\r\n \">\r\n <Tsi-Date-Display [inputData]=\"item[col.field]\" [showTime]=\"true\">\r\n </Tsi-Date-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n\r\n <!-- Tsi-CheckBox -->\r\n <ng-template #checkBoxOutputBlock>\r\n <ng-container *ngIf=\"\r\n col.type == displayTypes.CHECKBOX_DISPLAY;\r\n else decimalOutputBlock\r\n \">\r\n <Tsi-Checkbox-Display [inputData]=\"item[col.field]\">\r\n </Tsi-Checkbox-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Decimal-Input -->\r\n <ng-template #decimalOutputBlock>\r\n <ng-container *ngIf=\"\r\n col.type == displayTypes.DECIMAL_DISPLAY;\r\n else integerOutputBlock\r\n \">\r\n <Tsi-Decimal-Display [formatDecimal]=\"col.formatDecimal\" [inputData]=\"item[col.field]\"\r\n [numOfDecimal]=\"col.numOfDecimal\">\r\n </Tsi-Decimal-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Integer -->\r\n <ng-template #integerOutputBlock>\r\n <ng-container *ngIf=\"\r\n col.type == displayTypes.INTEGER_DISPLAY;\r\n else rateOutputBlock\r\n \">\r\n <Tsi-Integer-Display [inputData]=\"item[col.field]\">\r\n </Tsi-Integer-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Rate-Input -->\r\n <ng-template #rateOutputBlock>\r\n <ng-container *ngIf=\"\r\n col.type == displayTypes.RATE_DISPLAY;\r\n else displayNestedPropOutputBlock\r\n \">\r\n <Tsi-Rate-Display [isFraction]=\"col.isFraction\" [inputData]=\"item[col.field]\">\r\n </Tsi-Rate-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- display-nested-prop -->\r\n <ng-template #displayNestedPropOutputBlock>\r\n <ng-container *ngIf=\"\r\n col.type == displayTypes.NESTED_PROP_DISPLAY;\r\n else displayButtonBlock\r\n \">\r\n <Tsi-Display-Nested-Prop [sourceUrl]=\"col.displayNestedPropertySourceUrl\" [id]=\"item[col.field]\"\r\n [displayValue]=\"col.displayNestedPropertylabelField\">\r\n </Tsi-Display-Nested-Prop>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- display-nested-prop -->\r\n <ng-template #displayButtonBlock>\r\n <ng-container *ngIf=\"col.isButton; else displayImage\">\r\n <div [ngStyle]=\"page.items.length > 0 ? col.ngStyle : {}\"\r\n [ngClass]=\"page.loading ? 'no-z-index' : ''\"\r\n class=\"flex align-items-center frozen-column-rtl-mode justify-content-center p-0\">\r\n <Tsi-Button [styleClass]=\"col.styleClass\" type=\"button\" icon=\"{{ col.buttonIcon }}\"\r\n [tooltipPosition]=\"tooltipPosition.Top\" [tooltipText]=\"col.toolTipText\"\r\n (click)=\"buttonClicked(item, col.field)\"\r\n [text]=\"col.buttonLabel ? col.buttonLabel : item[col.field]\"></Tsi-Button>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- display-image -->\r\n <ng-template #displayImage>\r\n <ng-container *ngIf=\"col.type == displayTypes.IMAGE_DISPLAY; else displayTextEyeBlock\">\r\n <div class=\"h-3rem\">\r\n <tsi-image-display [headerTitles]=\"getHeaderTitles(col.headerTitles, item)\"\r\n [isRounded]=\"col.isRounded\" [src]=\"item[col.field]\" [alt]=\"col.header || 'image'\"\r\n [width]=\"'100%'\" [height]=\"'100%'\">\r\n </tsi-image-display>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- display-text-eye -->\r\n <ng-template #displayTextEyeBlock>\r\n <ng-container *ngIf=\"\r\n col.type == displayTypes.TEXT_DISPLAY;\r\n else defaultTextOutputBlock\r\n \">\r\n <span>\r\n <span class=\"cursor-pointer pi pi-eye\" (click)=\"eyeClicked(item[col.field])\"></span>\r\n {{ truncateString(item[col.field], 50) }}\r\n </span>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Text-Box -->\r\n <ng-template #defaultTextOutputBlock>\r\n <ng-container>\r\n <span>\r\n {{ item[col.field] }}\r\n </span>\r\n </ng-container>\r\n </ng-template>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </ng-template>\r\n </ng-template>\r\n <ng-template pTemplate=\"footer\">\r\n <tr>\r\n <td *ngIf=\"selectionMode == multipleGridSelectionMode\"></td>\r\n <td class=\"pr-0\" *ngFor=\"let col of selectedColumns\">\r\n <div *ngIf=\"col.showSummary\">\r\n <!-- CURRENCY_SOCIETE_DISPLAY -->\r\n <div *ngIf=\"col.type == displayTypes.CURRENCY_SOCIETE_DISPLAY\">\r\n <Tsi-Currency-Societe-Display [inputData]=\"getSummary(col.field)\">\r\n </Tsi-Currency-Societe-Display>\r\n </div>\r\n\r\n <!-- INTEGER_DISPLAY -->\r\n <div *ngIf=\"col.type == displayTypes.INTEGER_DISPLAY\">\r\n <Tsi-Integer-Display [inputData]=\"getSummary(col.field)\">\r\n </Tsi-Integer-Display>\r\n </div>\r\n\r\n <!-- RATE_DISPLAY -->\r\n <div *ngIf=\"col.type == displayTypes.RATE_DISPLAY\">\r\n <Tsi-Rate-Display [isFraction]=\"col.isFraction ?? false\" [inputData]=\"getSummary(col.field)\">\r\n </Tsi-Rate-Display>\r\n </div>\r\n\r\n <!-- DECIMAL_DISPLAY -->\r\n <div *ngIf=\"col.type == displayTypes.DECIMAL_DISPLAY\">\r\n <Tsi-Decimal-Display [formatDecimal]=\"col.formatDecimal\" [inputData]=\"getSummary(col.field)\"\r\n [numOfDecimal]=\"col.numOfDecimal\">\r\n </Tsi-Decimal-Display>\r\n </div>\r\n\r\n <div *ngIf=\"col.type == displayTypes.CURRENCY_OTHER_DISPLAY\">\r\n <Tsi-Currency-Other-Display [currency]=\"col.currencyOtherCode\" [inputData]=\"getSummary(col.field)\">\r\n </Tsi-Currency-Other-Display>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"summary\">\r\n {{ page.totalCount }} {{ \"records_label\" | localize }}\r\n <span *ngIf=\"colorful\">\r\n <span>View Grid</span>\r\n <span class=\"pl-2\">| SearchOnInit : {{ searchOnInit }}</span>\r\n <span class=\"pl-2\">| Pagination In Api : {{ isGridDataPagedInApi }}</span>\r\n </span>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n\r\n <div *ngIf=\"_showCalenderView === true\" class=\"col-12\">\r\n <tsi-calender [schema]=\"calenderSchema\" [eventsData]=\"page.items\" [crudService]=\"crudService\"\r\n (dateRangeChange)=\"handleDateRangeChange($event)\" (eventClick)=\"handleCalendarEventClick($event)\"></tsi-calender>\r\n </div>\r\n\r\n <div *ngIf=\"_showCardView === true\" class=\"col-12\">\r\n <Tsi-card-list [cardBusinessClass]=\"businessClass\" [id]=\"id\" (buttonClicked)=\"buttonColumnClicked.emit($event)\"\r\n [page$]=\"page$\" [page]=\"page\" (callSearch)=\"callSearchHandler($event)\">\r\n </Tsi-card-list>\r\n </div>\r\n\r\n <div *ngIf=\"_showKanbanView === true\" class=\"col-12\">\r\n <Tsi-kanban [cardBusinessClass]=\"businessClass\" [id]=\"id\" (buttonClicked)=\"buttonColumnClicked.emit($event)\"\r\n [page$]=\"page$\" [page]=\"page\" (callSearch)=\"callSearchHandler($event)\" [crudService]=\"crudService\">\r\n </Tsi-kanban>\r\n </div>\r\n</div>","export const queryParamNamesConst = {\r\n reportToPrint: \"reportToPrint\",\r\n reportToTemplate: 'reportToTemplate',\r\n reportTemplate: 'reportTemplate',\r\n reportToEdit: \"reportToEdit\",\r\n tenantUid: \"tenantUid\",\r\n} \r\n\r\nexport const dashboardConst = {\r\n autorization : \"Authorization\"\r\n}","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { AdministrationEndpoints, ReportingEndpoints } from '../../end-points';\r\nimport { ReportTemplateResponse, ReportToTemplate, ReportToPrint, ReportToEditTemplate, ReportToEditTemplatePayload } from '../../models';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ReportingService {\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n getReports(key: string, descriminatorValue?: string): Observable<ReportTemplateResponse[]> {\r\n return this.httpClient.get<ReportTemplateResponse[]>(ReportingEndpoints.getReports(key, descriminatorValue));\r\n }\r\n getEditionPersonnaliseReports(): Observable<ReportTemplateResponse[]> {\r\n return this.httpClient.get<ReportTemplateResponse[]>(ReportingEndpoints.getEditionPersoReports());\r\n }\r\n \r\n getReportTemplateById(key: string): Observable<any>{\r\n return this.httpClient.get<any>(ReportingEndpoints.getReportTemplateById(key));\r\n }\r\n\r\n addReportToModel(model: ReportToTemplate): Observable<any> {\r\n return this.httpClient.post<any>(ReportingEndpoints.addReportToModel(), model);\r\n }\r\n\r\n addReportToPrint(model: ReportToPrint): Observable<number> {\r\n return this.httpClient.post<number>(ReportingEndpoints.addReportToPrint(), model);\r\n }\r\n\r\n addReportToEditTemplate(model: ReportToEditTemplate): Observable<any> {\r\n return this.httpClient.post<any>(ReportingEndpoints.addReportToEditTemplate(), model);\r\n }\r\n\r\n editReportToEditTemplate(model: ReportToEditTemplatePayload): Observable<any> {\r\n return this.httpClient.post<any>(ReportingEndpoints.editReportToEditTemplate(), model);\r\n }\r\n\r\n exportReportFile(key: string): Observable<any> {\r\n const httpOptions = {\r\n 'responseType': 'arraybuffer' as 'json'\r\n };\r\n\r\n return this.httpClient.get(ReportingEndpoints.exportReportFile(key), httpOptions);\r\n }\r\n\r\n exportReportFileToPdf(key: string): Observable<any> {\r\n return this.httpClient.get(ReportingEndpoints.exportReportFileToPdf(key), { responseType: 'blob' });\r\n }\r\n\r\n uploadReportFile(file: File, discriminatorValue ?: string): Observable<any> {\r\n const formData = new FormData();\r\n const blob = new Blob([file], { type: file.type });\r\n formData.append('jsonReportFile', blob, file.name);\r\n return this.httpClient.post(ReportingEndpoints.uploadReportFile(discriminatorValue), formData);\r\n }\r\n\r\n deleteReport(uid: string): Observable<any> {\r\n return this.httpClient.delete<number>(ReportingEndpoints.deleteReport(uid),);\r\n }\r\n\r\n deleteMultipleReports(ids: number[]): Observable<any> {\r\n return this.httpClient.post<number>(ReportingEndpoints.deleteMultipleReports(), ids);\r\n }\r\n\r\n setDefaultReport(id: number): Observable<any> {\r\n return this.httpClient.put<any>(ReportingEndpoints.setDefaultReport(id), undefined);\r\n }\r\n\r\n getDefaultReport(formName: string, descriminatorValue?: string): Observable<ReportTemplateResponse> {\r\n //init params\r\n let params = new HttpParams();\r\n params = params.append('formName', formName);\r\n if (descriminatorValue) {\r\n params = params.append('descriminatorValue', descriminatorValue);\r\n }\r\n\r\n return this.httpClient.get<ReportTemplateResponse>(ReportingEndpoints.getDefaultReport(), { params: params });\r\n }\r\n\r\n updateReportLayout(id: number, file: File): Observable<any> {\r\n const formData = new FormData();\r\n const blob = new Blob([file], { type: file.type });\r\n formData.append('jsonReportFile', blob, file.name);\r\n return this.httpClient.post(ReportingEndpoints.updateReportLayout(id), formData);\r\n }\r\n\r\n getDefaultReportTemplate(formName: string) {\r\n return this.httpClient.get<any>(ReportingEndpoints.getDefaultReportTemplate(formName));\r\n }\r\n\r\n addFromBuiltInTemplate(formName: string, templateName: string, descriminatorValue ?: string) {\r\n return this.httpClient.get<any>(ReportingEndpoints.addFromBuiltInTemplate(formName, templateName, descriminatorValue));\r\n }\r\n\r\n addToBuiltInTemplate(reportId: string) {\r\n return this.httpClient.post<any>(ReportingEndpoints.addToBuiltInTemplate(reportId), {})\r\n }\r\n\r\n makeReportLayoutAsDefaultLayout(request: any) {\r\n return this.httpClient.post<any>(ReportingEndpoints.makeReportLayoutAsDefaultLayout(), request)\r\n }\r\n\r\n getApiAsKeyValueByValue(request: any) {\r\n return this.httpClient.get<any>(AdministrationEndpoints.getAllApiAsKeyValuePair() + `?value=${request}`, request)\r\n }\r\n\r\n // getReportDecriminator(request: ReportDescriminator) {\r\n // return this.httpClient.get<ReportDescriminator>(ReportingEndpoints.getReportDescriminator(request.entityName, request.propertyName, request.propertyValue))\r\n // }\r\n\r\n insertNewUidInRestEndPoint(restEndPoint?: string, newUid?: string) {\r\n const guidRegex = /[0-9a-fA-F-]{36}/;\r\n const idPlaceholderRegex = /{id}/;\r\n\r\n if (restEndPoint) {\r\n if (idPlaceholderRegex.test(restEndPoint)) {\r\n return restEndPoint.replace(idPlaceholderRegex, newUid!);\r\n }\r\n\r\n return restEndPoint.replace(guidRegex, newUid!);\r\n }\r\n\r\n return restEndPoint;\r\n }\r\n\r\n deleteDefaultReportTemplateFile(formName: string, templateName: string): Observable<any> {\r\n return this.httpClient.delete(ReportingEndpoints.deleteDefaultReportTemplate(formName, templateName))\r\n }\r\n}\r\n","import { Segment } from \"./baseuri\"\r\n\r\nexport const SharedSegments = {\r\n objectInfo : \"ObjectInfo\",\r\n status : \"Status\",\r\n\r\n /* Actions */\r\n getEntityStatusAsKeyValuePair : \"getEntityStatusAsKeyValuePair\",\r\n}\r\n\r\n\r\nexport const SharedEndPoints = {\r\n getInfo:(classe: string, uid: string) => `${Segment.base}/${SharedSegments.objectInfo}/${SharedSegments.objectInfo}/${classe}/${uid}`,\r\n getAllEntityStatus:(classeName: string | undefined) => `${Segment.base}/${SharedSegments.status}/${SharedSegments.getEntityStatusAsKeyValuePair}/${classeName}`,\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { SharedEndPoints } from '../end-points/shared-endpoint';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RecordInfoPopupService {\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n\r\n getInfo(classe: string, uid: string): Observable<any> {\r\n return this.http.get(SharedEndPoints.getInfo(classe, uid));\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { Segment } from '../../end-points';\r\nimport { IPagedRequest, IPagedResponse } from '../../interfaces';\r\nimport { requestHeaderNames } from '../../consts/tsi-consts';\r\n\r\n\r\nexport abstract class CrudBaseService<TCreate,TUpdate, TById,TAllPaged, TAll=TAllPaged> {\r\n \r\n public isDuplicate: boolean = false;\r\n\r\n constructor(protected _httpClient: HttpClient,\r\n protected endpoint: string) { }\r\n\r\n getAll(): Observable<Array<TAll>> {\r\n return this._httpClient.get<Array<TAll>>(`${Segment.base}/${this.endpoint}`);\r\n }\r\n \r\n getById(id: string): Observable<TById> {\r\n let headers = new HttpHeaders();\r\n headers = headers.set(requestHeaderNames.duplicate, this.isDuplicate ? \"true\" : \"false\");\r\n return this._httpClient.get<TById>(`${Segment.base}/${this.endpoint}/${id}`, { headers });\r\n }\r\n \r\n create(model: TCreate): Observable<any> {\r\n return this._httpClient.post<any>(`${Segment.base}/${this.endpoint}`, model);\r\n }\r\n \r\n update(model: TUpdate, id : string): Observable<any> {\r\n return this._httpClient.put<any>(`${Segment.base}/${this.endpoint}/${id}`, model);\r\n }\r\n delete(id: string): Observable<any> {\r\n return this._httpClient.delete(`${Segment.base}/${this.endpoint}/${id}`);\r\n }\r\n \r\n getAllPaged(model: IPagedRequest): Observable<IPagedResponse<TAllPaged>> {\r\n return this._httpClient.post<IPagedResponse<TAllPaged>>(`${Segment.base}/${this.endpoint}/${Segments.getAllPaged}`, model);\r\n }\r\n\r\n \r\n updateOldEndpoint(model : TUpdate): Observable<any> {\r\n return this._httpClient.put<any>(`${Segment.base}/${this.endpoint}/${'update'}`, model);\r\n }\r\n}\r\nexport const Segments = {\r\n\r\n /*** Actions ***/\r\n getAllPaged: 'getallpaged',\r\n\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { CrudBaseService } from '../base/crud-base.service';\r\nimport { Fichier } from '../../models';\r\nimport { AdministrationSegments } from '../../end-points/endpoints';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FichierService extends CrudBaseService<Fichier, Fichier, Fichier, Fichier> {\r\n\r\n constructor(protected httpClient: HttpClient) {\r\n super(httpClient, AdministrationSegments.fichier)\r\n }\r\n\r\n}","import { HttpErrorResponse, HttpStatusCode } from '@angular/common/http';\r\nimport { Component, ElementRef, EnvironmentInjector, EventEmitter, inject, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { TooltipPosition } from '../../enums/tooltipPosition.enum';\r\nimport { Segment } from '../../end-points';\r\nimport { ModalSizeEnum, HttpMethodType, TsiReportType } from '../../enums';\r\nimport { IModalSize } from '../../interfaces';\r\nimport { OptionalEndpoints, ReportTemplateResponse, Fichier, ReportToPrint } from '../../models';\r\nimport { FichierService } from '../../services/fichier/fichier.service';\r\nimport { queryParamNamesConst } from '../../consts/queryParamNames.const';\r\nimport { LocalizePipe } from '../../pipes/localize.pipe';\r\nimport { LayoutHelperService } from '../../services/layout/layout-helper.service';\r\nimport { RecordInfoPopupService } from '../../services/record-info-popup.service';\r\nimport { TsiMessageService } from '../../services/notification/tsi-message.service';\r\nimport { TsiNotificationService } from '../../services/notification/tsi-notification.service';\r\nimport { IdentityManagerService } from '../../services/authorization/identity-manager.service';\r\nimport { ReportingService } from '../../services/reporting/reporting.service';\r\nimport { openManageImportExportModal, openManageReportingComponent, openModalUploadGrid, openNotesList, openTsiPopupTextViewerComponent } from '../../functions/modal-open.function';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\n@Component({\r\n selector: 'app-reporting',\r\n templateUrl: './reporting.component.html',\r\n styleUrls: ['./reporting.component.scss'],\r\n})\r\nexport class ReportingComponent implements OnInit, OnDestroy {\r\n //#region properties\r\n reportToPrintId: number | undefined;\r\n toSendEmail: string | undefined;\r\n public localize? = inject(LocalizePipe)\r\n private readonly errorMessageKey: string = 'shared_reporting_error_occured';\r\n modalSize: IModalSize = ModalSizeEnum.Large;\r\n private _dialogRef?: DynamicDialogRef;\r\n private _reportDiscriminator: string | undefined;\r\n // parametre: ParametresApplicationPaie = new ParametresApplicationPaie();\r\n @Input() showImportExportButton: boolean = true;\r\n @Input() showNoteButton: boolean = true;\r\n @Input() showInfoButton: boolean = true;\r\n @Input() showUploadButton: boolean = true;\r\n\r\n showPresentationDesignerConfigButton: boolean = true;\r\n private _isReportingToolbarDisabled: boolean = false;\r\n\r\n @Input()\r\n get isReportingToolbarDisabled(): boolean {\r\n return this._isReportingToolbarDisabled;\r\n }\r\n\r\n set isReportingToolbarDisabled(value: boolean) {\r\n this._isReportingToolbarDisabled = value;\r\n }\r\n //#endregion\r\n @Output() onSave = new EventEmitter<any>();\r\n //#region Input properties\r\n @Input() formName: string | undefined; //formIdentifier\r\n @Input() formEndpoint: string | undefined; //= `${GestionCommercialeSegments.factureVente}/165ec5fd-4d34-4546-ae15-0044e708b9d9`;\r\n @Input() formEndpointBody: string | undefined; //formIdentifier\r\n @Input() isFormEndpointPaged: boolean = false;\r\n @Input() filtersHtmlTemplate: string | undefined;\r\n @Input() optionalEndpoints?: OptionalEndpoints;\r\n @Input() businessClass?: string;\r\n @Input() cudComponent: any;\r\n @Input() httpMethodType?: HttpMethodType = HttpMethodType.POST;\r\n @Input() requestData?: any;\r\n @Input() customReportingMode?: boolean;\r\n @Input()\r\n get reportDiscriminator(): string | undefined {\r\n return this._reportDiscriminator;\r\n }\r\n\r\n set reportDiscriminator(value: string | undefined) {\r\n this._reportDiscriminator = value;\r\n }\r\n\r\n private _id: string | undefined;\r\n /* nombreDocumentsJoints: number = 5;\r\n */\r\n @Input()\r\n set id(value: string | undefined) {\r\n this._id = value;\r\n }\r\n\r\n get id(): string | undefined {\r\n return this._id;\r\n }\r\n\r\n @Input() configModeButtonId: string = 'show-hide-config-button';\r\n\r\n private _selectedItemUids: Array<any> = [];\r\n @Input()\r\n public set selectedItemUids(listUids: Array<any>[]) {\r\n this._selectedItemUids = listUids;\r\n }\r\n\r\n public get selectedItemUids(): Array<any> {\r\n return this._selectedItemUids;\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Output properties\r\n @Output() refreshData: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n @Output() toggleDesignMode: EventEmitter<boolean> =\r\n new EventEmitter<boolean>();\r\n //#endregion\r\n\r\n @ViewChild('wrapper', { read: ElementRef })\r\n wrapperRef!: ElementRef<HTMLElement>;\r\n\r\n reports: ReportTemplateResponse[] = [];\r\n showContextMenu = false;\r\n contextMenuPosition = { x: 0, y: 0 };\r\n\r\n tooltipPosition = TooltipPosition.Top;\r\n\r\n get isReportForFiche(): boolean {\r\n return !this.formEndpoint?.includes('getallpaged');\r\n }\r\n\r\n //#region ctor\r\n constructor(\r\n private reportingService: ReportingService,\r\n private identityManagerService: IdentityManagerService,\r\n private notificationService: TsiNotificationService,\r\n private messageService: TsiMessageService,\r\n private recordInfoPopupService: RecordInfoPopupService,\r\n private _layoutHelperService: LayoutHelperService,\r\n public _fichierService: FichierService,\r\n private _injector: EnvironmentInjector\r\n ) { }\r\n\r\n //#endregion\r\n\r\n //handle Lifecycle Hooks\r\n ngOnInit(): void { }\r\n\r\n ngOnDestroy(): void { }\r\n //#endregion\r\n\r\n //#region handle events\r\n onPrintDefault(event: any): void {\r\n if (this.formName) {\r\n this.reportingService\r\n .getDefaultReport(this.formName, this.reportDiscriminator)\r\n .subscribe({\r\n next: (data: ReportTemplateResponse) => {\r\n console.log(data);\r\n // let defaultReportId: string = data;\r\n this._viewReport(data?.uid, data);\r\n },\r\n error: (response: HttpErrorResponse) => {\r\n if (response.status == HttpStatusCode.NotFound) {\r\n this.messageService.infoMessage(\r\n 'shared_reporting_no_default_report_found'\r\n );\r\n }\r\n },\r\n });\r\n }\r\n }\r\n\r\n onExportPdf(event: any): void {\r\n if (this.formName) {\r\n this.reportingService.getDefaultReport(this.formName).subscribe({\r\n next: (data) => {\r\n console.log(data);\r\n // let defaultReportId: string = data;\r\n this._exportPdf(data.uid, data);\r\n },\r\n error: (response: HttpErrorResponse) => {\r\n if (response.status == HttpStatusCode.NotFound) {\r\n this.messageService.infoMessage(\r\n 'shared_reporting_no_default_report_found'\r\n );\r\n }\r\n },\r\n });\r\n }\r\n }\r\n\r\n private getFormName(formName: string) {\r\n if (this.reportDiscriminator)\r\n return `${formName}_${this.reportDiscriminator}`;\r\n else return formName;\r\n }\r\n\r\n onSendPdf(event: any): void {\r\n // if (this.formName == 'app-create-or-edit-gesc-documents') {\r\n // this._documentService.getById(this.id!).subscribe({\r\n // next: (data: any) => {\r\n // this._tierService.getById(data.tier).subscribe({\r\n // next: (data: any) => {\r\n // this.toSendEmail = data.email;\r\n // },\r\n // error: (response: HttpErrorResponse) => {\r\n // if (response.status == HttpStatusCode.NotFound) {\r\n // this.messageService.infoMessage('selected_tier_not_found');\r\n // }\r\n // },\r\n // });\r\n // },\r\n // error: (response: HttpErrorResponse) => {\r\n // if (response.status == HttpStatusCode.NotFound) {\r\n // this.messageService.infoMessage('selected_document_not_found');\r\n // }\r\n // },\r\n // });\r\n // }\r\n // if (this.formName) {\r\n // this.reportingService\r\n // .getDefaultReport(this.formName, this.reportDiscriminator)\r\n // .subscribe({\r\n // next: (data) => {\r\n // console.log(data);\r\n // // let defaultReportId: string = data;\r\n // this._sendPdf(data.uid, data);\r\n // },\r\n // error: (response: HttpErrorResponse) => {\r\n // if (response.status == HttpStatusCode.NotFound) {\r\n // this.messageService.infoMessage(\r\n // 'shared_reporting_no_default_report_found'\r\n // );\r\n // }\r\n // },\r\n // });\r\n // }\r\n }\r\n\r\n private _sendPdf(\r\n id: string,\r\n reportInformation?: ReportTemplateResponse\r\n ): void {\r\n // if (id != undefined && id != null) {\r\n // //get email parameters\r\n // this._parametresApplicationPaieService\r\n // .getParametreApplicationPaie()\r\n // .subscribe((data) => {\r\n // this.parametre = data;\r\n // });\r\n // // case there is default report\r\n // if (this.formEndpoint != undefined && this.formEndpoint != null) {\r\n // if (!reportInformation) {\r\n // reportInformation = this.reports.find((x) => x.uid == id);\r\n // }\r\n // this.reportingService\r\n // .addReportToPrint(\r\n // this._newReportToPrint(\r\n // id,\r\n // reportInformation?.reportType,\r\n // reportInformation?.restEndpoint\r\n // )\r\n // )\r\n // .subscribe({\r\n // next: (data: any) => {\r\n // if (data != null && data != undefined) {\r\n // this.reportToPrintId = data.uid;\r\n // let saveSubject: Subject<any> = new Subject();\r\n // let modalSize = ModalSizeEnum.ExtraLarge;\r\n // let conf: DynamicDialogConfig = {\r\n // data: { saveSubject, email: this.toSendEmail },\r\n // maximizable: true,\r\n // width: modalSize.width,\r\n // height: modalSize.height,\r\n // };\r\n // this._dialogRef = this._dialogService.open(\r\n // TsiSendMailComponent,\r\n // conf\r\n // );\r\n // saveSubject.subscribe((val: any) => {\r\n // this.reportingService\r\n // .exportReportFileToPdf(this.reportToPrintId!.toString())\r\n // .subscribe(\r\n // (blob) => {\r\n // if (!this.parametre.attachments) {\r\n // this.parametre.attachments = [];\r\n // }\r\n // const newFile = new File([blob], 'Report.pdf', {\r\n // type: blob.type,\r\n // });\r\n\r\n // this.parametre.attachments.push(newFile);\r\n // this._parametresApplicationPaieService\r\n // .sendMail(\r\n // this.parametre.fromAddress,\r\n // this._dialogDataService.getData()?.toAddress,\r\n // this._dialogDataService.getData()?.objet,\r\n // this._dialogDataService.getData()?.message,\r\n // this.parametre.attachments,\r\n // this.parametre.host,\r\n // this.parametre.credentialUser,\r\n // this.parametre.credentialPWD,\r\n // this.parametre.port,\r\n // this.parametre.fromName,\r\n // this._dialogDataService.getData()?.ccAddress\r\n // )\r\n // .subscribe({\r\n // next: () => {\r\n // this.notificationService.info(\r\n // this.localization.transform(\r\n // LocalizationKeys.savedSuccessfully\r\n // )\r\n // );\r\n // },\r\n // error: (response: HttpErrorResponse) => {\r\n // console.log(response);\r\n // this._errorResponseManagerService.showErrorMessage(\r\n // response\r\n // );\r\n // },\r\n // });\r\n // },\r\n // (error) => {\r\n // console.error('Error downloading the PDF', error);\r\n // }\r\n // );\r\n\r\n // this.notificationService.success(\r\n // 'shared_reporting_redirected_to_print_report_successfully'\r\n // );\r\n // });\r\n // this._dialogRef.onClose.subscribe((val?: any) => {\r\n // this._closeModal(val);\r\n // });\r\n // }\r\n // },\r\n\r\n // error: (error) => {\r\n // this.notificationService.error(this.errorMessageKey);\r\n // },\r\n\r\n // complete: () => { },\r\n // });\r\n // }\r\n // } else {\r\n // this.messageService.infoMessage(\r\n // 'shared_reporting_no_default_report_found'\r\n // );\r\n // }\r\n }\r\n\r\n private _exportPdf(\r\n id: string,\r\n reportInformation?: ReportTemplateResponse\r\n ): void {\r\n if (id != undefined && id != null) {\r\n if (this.formEndpoint != undefined && this.formEndpoint != null) {\r\n if (!reportInformation) {\r\n reportInformation = this.reports.find((x) => x.uid == id);\r\n }\r\n this.reportingService\r\n .addReportToPrint(\r\n this._newReportToPrint(\r\n id,\r\n reportInformation?.reportType,\r\n reportInformation?.restEndpoint\r\n )\r\n )\r\n .subscribe({\r\n next: (data: any) => {\r\n if (data != null && data != undefined) {\r\n this.reportToPrintId = data.uid;\r\n\r\n this.reportingService\r\n .exportReportFileToPdf(this.reportToPrintId!.toString())\r\n .subscribe(\r\n (blob) => {\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = 'Report.pdf';\r\n document.body.appendChild(a);\r\n a.click();\r\n\r\n document.body.removeChild(a);\r\n window.URL.revokeObjectURL(url);\r\n },\r\n (error) => {\r\n console.error('Error downloading the PDF', error);\r\n }\r\n );\r\n\r\n this.notificationService.success(\r\n 'shared_reporting_redirected_to_print_report_successfully'\r\n );\r\n }\r\n },\r\n\r\n error: (error) => {\r\n this.notificationService.error(this.errorMessageKey);\r\n },\r\n\r\n complete: () => { },\r\n });\r\n }\r\n } else {\r\n this.messageService.infoMessage(\r\n 'shared_reporting_no_default_report_found'\r\n );\r\n }\r\n }\r\n\r\n async showUploadDialog() {\r\n\r\n const conf = {\r\n data: {},\r\n styleClass: '',\r\n width: this.modalSize!.width,\r\n height: this.modalSize!.height,\r\n maximizable: true,\r\n }\r\n\r\n const ref = await openModalUploadGrid(this._injector,conf)\r\n\r\n ref.onClose.subscribe((val?: any) => this._closeModal(val));\r\n }\r\n\r\n\r\n onDragOver(event: DragEvent) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n onDrop(event: DragEvent) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n const files = event.dataTransfer?.files;\r\n if (files && files.length > 0) {\r\n const file = files[0];\r\n const reader = new FileReader();\r\n\r\n reader.onload = (e: ProgressEvent<FileReader>) => {\r\n const arrayBuffer = e.target?.result as ArrayBuffer;\r\n if (!arrayBuffer) return;\r\n\r\n const base64Content = this.arrayBufferToBase64(arrayBuffer);\r\n\r\n const fichierToSend = new Fichier();\r\n fichierToSend.dateFichier = new Date();\r\n fichierToSend.nom = file.name;\r\n fichierToSend.objet = '';\r\n fichierToSend.nomFichierComplet = file.name;\r\n fichierToSend.description = '';\r\n fichierToSend.contenu = base64Content;\r\n fichierToSend.tableLiee = this.businessClass;\r\n fichierToSend.pkey = this.id;\r\n fichierToSend.typeFichier = '437C08D5-C169-4167-8D37-F8AC6C905E23'; // TODO: Momo\r\n\r\n this._fichierService.create(fichierToSend).subscribe({\r\n next: () => {\r\n this.notificationService.success(this.l(\"Fichier enregistré !\"));\r\n this.onSave.emit();\r\n },\r\n error: (err) => {\r\n this.notificationService.error(this.l(\"Erreur lors de l’enregistrement !\"));\r\n }\r\n });\r\n };\r\n\r\n reader.readAsArrayBuffer(file);\r\n }\r\n }\r\n\r\n showDialog() {\r\n this._openModal();\r\n }\r\n\r\n async showExportImportDialog() {\r\n this._dialogRef = await openManageImportExportModal(this._injector,this.businessClass, this.formName)\r\n this._dialogRef.onClose.subscribe((val?: any) =>\r\n this._closeModal(val, true)\r\n );\r\n }\r\n\r\n presentationDesignerConfig() {\r\n if (this._layoutHelperService.isDesignMode) return;\r\n\r\n this._layoutHelperService.isDesignMode = true;\r\n\r\n if (this.cudComponent == undefined) {\r\n this.toggleDesignMode.emit(true);\r\n this._layoutHelperService._designModeFormSubject.next(true);\r\n } else {\r\n this._layoutHelperService._designModeListSubject.next(true);\r\n }\r\n }\r\n\r\n //#region private methods\r\n private _viewReport(\r\n id: string,\r\n reportInformation?: ReportTemplateResponse\r\n ): void {\r\n if (id != undefined && id != null) {\r\n // case there is default report\r\n if (this.formEndpoint != undefined && this.formEndpoint != null) {\r\n if (!reportInformation) {\r\n reportInformation = this.reports.find((x) => x.uid == id);\r\n }\r\n this.reportingService\r\n .addReportToPrint(\r\n this._newReportToPrint(\r\n id,\r\n reportInformation?.reportType,\r\n reportInformation?.restEndpoint\r\n )\r\n )\r\n .subscribe({\r\n next: (data: any) => {\r\n // console.log(\"data\",data);\r\n if (data != null && data != undefined) {\r\n this.reportToPrintId = data.uid;\r\n\r\n let reportType: number = 1;\r\n this.reportingService.getReportTemplateById(id).subscribe({\r\n next: (data: any) => {\r\n reportType = data.reportType;\r\n let tenantUid =\r\n this.identityManagerService.parseMyAuthToken()?.tenantUid;\r\n\r\n let urlViewer: string = `${Segment.reportingServiceBase}/report-viewer/${this.reportToPrintId}?${queryParamNamesConst.tenantUid}=${tenantUid}`;\r\n\r\n if (reportType === TsiReportType.RTF) {\r\n urlViewer = `${Segment.reportingServiceBase}/mailmerge-readonlymode/${this.reportToPrintId}?${queryParamNamesConst.tenantUid}=${tenantUid}`;\r\n }\r\n\r\n window.open(urlViewer, '_blank');\r\n\r\n this.notificationService.success(\r\n 'shared_reporting_redirected_to_print_report_successfully'\r\n );\r\n },\r\n error: (error) => {\r\n this.notificationService.error(this.errorMessageKey);\r\n },\r\n complete: () => { },\r\n });\r\n }\r\n },\r\n\r\n error: (error) => {\r\n this.notificationService.error(this.errorMessageKey);\r\n },\r\n\r\n complete: () => { },\r\n });\r\n }\r\n }\r\n // no default report\r\n else {\r\n this.messageService.infoMessage(\r\n 'shared_reporting_no_default_report_found'\r\n );\r\n }\r\n }\r\n\r\n private _newReportToPrint(\r\n uid: string,\r\n reportType?: TsiReportType,\r\n restEndpoint?: string\r\n ): ReportToPrint {\r\n let token = this.identityManagerService.getAuthToken();\r\n\r\n let username: string | undefined =\r\n this.identityManagerService.parseMyAuthToken().name;\r\n\r\n // alert(\"otherFormName \"+this.formName+\"otherFormEndpoint\"+this.formEndpoint+ \"this.formEndpointBody\"+this.formEndpointBody+ \"usernme\"+username)\r\n\r\n if (username) {\r\n if (\r\n uid != null &&\r\n uid != undefined &&\r\n this.formEndpoint != null &&\r\n this.formEndpoint != undefined &&\r\n this.formName != null &&\r\n this.formName != undefined &&\r\n token != null &&\r\n token != undefined\r\n ) {\r\n let newReportToPrint: ReportToPrint = {\r\n reportTemplateUid: uid,\r\n restEndpoint: this.isReportForFiche\r\n ? this.reportingService.insertNewUidInRestEndPoint(\r\n restEndpoint,\r\n this.id\r\n ) ?? this.formEndpoint\r\n : this.formEndpoint,\r\n requestData: this.formEndpointBody,\r\n formName: this.formName,\r\n reportType: reportType,\r\n username: username,\r\n userToken: reportType == TsiReportType.Dashboard ? undefined : token,\r\n isPaged: this.isFormEndpointPaged == true ? true : false,\r\n htmlFiltersText: this.filtersHtmlTemplate,\r\n optionalEndpointsJson: this.optionalEndpoints,\r\n };\r\n\r\n return newReportToPrint;\r\n } else {\r\n throw Error(\r\n 'some of the required properties : user token, formName, formEndpoint or selectedReport have not been set !'\r\n );\r\n }\r\n } else {\r\n throw Error(\"property 'UserName ' of current user have not been set !\");\r\n }\r\n }\r\n\r\n private async _openModal() {\r\n let conf: DynamicDialogConfig;\r\n conf = {\r\n data: {\r\n otherFormName: this.formName,\r\n otherFormEndpoint: this.formEndpoint,\r\n formEndpointBody: this.formEndpointBody,\r\n isFormEndpointPaged: this.isFormEndpointPaged,\r\n filtersHtmlTemplate: this.filtersHtmlTemplate,\r\n optionalEndpoints: this.optionalEndpoints,\r\n businessClass: this.businessClass,\r\n reportDiscriminator: this.reportDiscriminator,\r\n id: this.id,\r\n requestData: this.requestData,\r\n customReportingMode: this.customReportingMode,\r\n httpMethodType: this.getHttpMethodType(),\r\n },\r\n styleClass: '',\r\n width: this.modalSize.width,\r\n height: this.modalSize.height,\r\n maximizable: true,\r\n };\r\n\r\n this._dialogRef = await openManageReportingComponent(this._injector, conf);\r\n\r\n this._dialogRef.onClose.subscribe((val?: any) => this._closeModal(val));\r\n }\r\n\r\n getHttpMethodType() {\r\n if (this.isReportForFiche && !this.customReportingMode) {\r\n return HttpMethodType.GET;\r\n } else if (this.httpMethodType && this.customReportingMode) {\r\n return this.httpMethodType;\r\n }\r\n return HttpMethodType.POST;\r\n }\r\n\r\n private _closeModal(val?: any, refreshData: boolean = false): void {\r\n this.refreshData.emit(refreshData);\r\n this._dialogRef?.destroy();\r\n }\r\n //#endregion\r\n\r\n onRightClick(event: MouseEvent): void {\r\n event.preventDefault();\r\n\r\n this._getAllReports(event.clientX, event.clientY);\r\n }\r\n\r\n hideContextMenu(): void {\r\n this.showContextMenu = false;\r\n this.contextMenuPosition = { x: 0, y: 0 };\r\n // this.reports = [];\r\n }\r\n\r\n onSelectContextOption(item: ReportTemplateResponse): void {\r\n this._viewReport(item.uid);\r\n this.hideContextMenu();\r\n }\r\n\r\n async getReports() {\r\n try {\r\n this.reports = await firstValueFrom(\r\n this.reportingService.getReports(\r\n this.formName ?? '',\r\n this.reportDiscriminator\r\n )\r\n );\r\n } catch (error: any) {\r\n console.error(error);\r\n this.hideContextMenu();\r\n this.notificationService.error(this.errorMessageKey);\r\n }\r\n }\r\n\r\n private async _getAllReports(clickX: number, clickY: number) {\r\n await this.getReports();\r\n\r\n if (this.reports.length > 0) {\r\n const rect = this.wrapperRef.nativeElement.getBoundingClientRect();\r\n\r\n this.contextMenuPosition = {\r\n x: clickX - rect.left,\r\n y: clickY - rect.top,\r\n };\r\n this.showContextMenu = true;\r\n } else {\r\n this.showContextMenu = false;\r\n }\r\n }\r\n async viewNotes() {\r\n const ref = await openNotesList(this._injector)\r\n ref.onClose.subscribe((val?: any) => this._closeModal(val));\r\n }\r\n\r\n viewInfo(event: any) {\r\n if (this.id != undefined && this.id != null) {\r\n this.recordInfoPopupService\r\n .getInfo(this.businessClass!, this.id)\r\n .subscribe(\r\n async (data) => {\r\n let modalSize = ModalSizeEnum.ExtraLarge;\r\n let text =\r\n 'UID : ' +\r\n this.id +\r\n '<BR>Created by : ' +\r\n data.creationUser +\r\n '<BR>Modified by : ' +\r\n data.modifUser +\r\n '<BR>Created on : ' +\r\n data.dateSaisie +\r\n '<BR>Modified on : ' +\r\n data.dateModif;\r\n\r\n let conf: DynamicDialogConfig = {\r\n data: {\r\n Uid: this.id,\r\n creationUser: data.creationUser,\r\n modifUser: data.modifUser,\r\n dateSaisie: data.dateSaisie,\r\n dateModif: data.dateModif,\r\n },\r\n maximizable: true,\r\n width: '90rem',\r\n height: '80rem',\r\n };\r\n\r\n this._dialogRef = await openTsiPopupTextViewerComponent(this._injector, conf)\r\n\r\n this._dialogRef.onClose.subscribe((val?: any) =>\r\n this._closeModal(val)\r\n );\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n }\r\n\r\n arrayBufferToBase64(buffer: ArrayBuffer): string {\r\n let binary = '';\r\n const bytes = new Uint8Array(buffer);\r\n const len = bytes.byteLength;\r\n for (let i = 0; i < len; i++) {\r\n binary += String.fromCharCode(bytes[i]);\r\n }\r\n return btoa(binary);\r\n }\r\n\r\n hide(val?: any) {\r\n if (this._dialogRef != null && this._dialogRef != undefined) {\r\n if (val == false) {\r\n this._dialogRef.destroy();\r\n }\r\n else {\r\n this._dialogRef.close(val);\r\n }\r\n }\r\n }\r\n\r\n l(key: string): string {\r\n if (this.localize != null\r\n && this.localize != undefined) {\r\n return this.localize.transform(key);\r\n }\r\n return key;\r\n }\r\n}\r\n","<div class=\"flex gap-2 mx-2\">\r\n <div\r\n *ngIf=\"formEndpoint || businessClass\"\r\n presentationDesignerBase=\"manage_reports_button\"\r\n class=\"flex align-items-center justify-content-center\"\r\n >\r\n <Tsi-Button\r\n [disabled]=\"isReportingToolbarDisabled\"\r\n type=\"button\"\r\n [iconSrc]=\"'./assets/icons/icon-printer-group-white.png'\"\r\n [iconWidth]=\"20\"\r\n [tooltipText]=\"'shared_reporting_manage_reports'\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n styleClass=\"p-button-secondary hover:shadow-6 h-2rem p-button-icon-only\"\r\n (click)=\"showDialog()\"\r\n >\r\n </Tsi-Button>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"formEndpoint || businessClass\"\r\n presentationDesignerBase=\"print_default_report_button\"\r\n class=\"flex align-items-center justify-content-center btn-wrapper\"\r\n #wrapper\r\n >\r\n <Tsi-Button\r\n [disabled]=\"isReportingToolbarDisabled\"\r\n type=\"button\"\r\n icon=\"pi pi-print p-button-icon p-button-icon-left\"\r\n [tooltipText]=\"'shared_reporting_rightClick'\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n styleClass=\"p-button-secondary hover:shadow-6 h-2rem p-button-icon-only\"\r\n (click)=\"onPrintDefault($event)\"\r\n (rightClick)=\"onRightClick($event)\"\r\n >\r\n </Tsi-Button>\r\n <!-- `shared_reporting_print_report` key for `Imprimer` text (replace it as value or tooltip if need it) -->\r\n\r\n <div\r\n *ngIf=\"showContextMenu\"\r\n class=\"context-menu\"\r\n [ngStyle]=\"{\r\n 'top.px': contextMenuPosition.y,\r\n 'left.px': contextMenuPosition.x\r\n }\"\r\n (mouseleave)=\"hideContextMenu()\"\r\n >\r\n <div\r\n *ngFor=\"let report of reports\"\r\n class=\"menu-item\"\r\n (click)=\"onSelectContextOption(report)\"\r\n >\r\n {{ report.name }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"businessClass && showUploadButton\"\r\n presentationDesignerBase=\"attachment_button\"\r\n class=\"flex align-items-center justify-content-center\"\r\n >\r\n <Tsi-Button\r\n [disabled]=\"isReportingToolbarDisabled\"\r\n type=\"button\"\r\n icon=\"pi pi-paperclip p-button-icon\"\r\n [tooltipText]=\"'shared_actions_attachment'\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n styleClass=\"p-button-secondary hover:shadow-6 h-2rem p-button-icon-only\"\r\n (click)=\"showUploadDialog()\"\r\n (dragover)=\"onDragOver($event)\"\r\n (drop)=\"onDrop($event)\"\r\n >\r\n </Tsi-Button>\r\n<!-- <span *ngIf=\"nombreDocumentsJoints > 0\" class=\"custom-badge\">\r\n {{ nombreDocumentsJoints }}\r\n </span> -->\r\n </div>\r\n\r\n <div\r\n *ngIf=\"formEndpoint || businessClass\"\r\n presentationDesignerBase=\"send_report_by_email_button\"\r\n class=\"flex align-items-center justify-content-center\"\r\n >\r\n <Tsi-Button\r\n [disabled]=\"isReportingToolbarDisabled\"\r\n type=\"button\"\r\n icon=\"pi pi-send p-button-icon p-button-icon-left\"\r\n [tooltipText]=\"'shared_reporting_send_mail'\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n styleClass=\"p-button-secondary hover:shadow-6 h-2rem p-button-icon-only\"\r\n (click)=\"onSendPdf($event)\"\r\n >\r\n </Tsi-Button>\r\n </div>\r\n <div\r\n *ngIf=\"businessClass && showImportExportButton\"\r\n presentationDesignerBase=\"import_export_button\"\r\n class=\"flex align-items-center justify-content-center\"\r\n >\r\n <Tsi-Button\r\n [disabled]=\"isReportingToolbarDisabled\"\r\n type=\"button\"\r\n icon=\"pi pi-arrow-right-arrow-left p-button-icon\"\r\n [tooltipText]=\"'shared_reporting_manage_export_import'\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n styleClass=\"p-button-success hover:shadow-6 h-2rem p-button-icon-only\"\r\n (click)=\"showExportImportDialog()\"\r\n >\r\n </Tsi-Button>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"showNoteButton\"\r\n class=\"flex align-items-center justify-content-center\"\r\n presentationDesignerBase=\"shared_show_notes_button\"\r\n >\r\n <Tsi-Button\r\n id=\"{{ configModeButtonId }}\"\r\n [disabled]=\"isReportingToolbarDisabled\"\r\n type=\"button\"\r\n icon=\"pi pi-comment p-button-icon p-button-icon-left\"\r\n [tooltipText]=\"'shared_tsi_component_gestion_des_notes'\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n styleClass=\"p-button-warning hover:shadow-6 h-2rem p-button-icon-only text-white\"\r\n (click)=\"viewNotes()\"\r\n >\r\n </Tsi-Button>\r\n </div>\r\n <div\r\n *ngIf=\"showInfoButton\"\r\n class=\"flex align-items-center justify-content-center\"\r\n presentationDesignerBase=\"shared_show_info_button\"\r\n >\r\n <Tsi-Button\r\n id=\"'show-info-button'\"\r\n [disabled]=\"isReportingToolbarDisabled\"\r\n type=\"button\"\r\n icon=\"pi pi-info p-button-icon p-button-icon-left\"\r\n [tooltipText]=\"'shared_actions_info'\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n styleClass=\"p-button-info hover:shadow-6 h-2rem p-button-icon-only text-white\"\r\n (click)=\"viewInfo($event)\"\r\n >\r\n </Tsi-Button>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"showPresentationDesignerConfigButton\"\r\n class=\"flex align-items-center justify-content-center\"\r\n >\r\n <Tsi-Button\r\n id=\"{{ configModeButtonId }}\"\r\n [disabled]=\"isReportingToolbarDisabled\"\r\n type=\"button\"\r\n icon=\"pi pi-eye p-button-icon p-button-icon-left\"\r\n [tooltipText]=\"'shared_tsi_component_config_show_hide'\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n styleClass=\"p-button-success hover:shadow-6 h-2rem p-button-icon-only\"\r\n (click)=\"presentationDesignerConfig()\"\r\n >\r\n </Tsi-Button>\r\n </div>\r\n\r\n</div>\r\n\r\n<!-- <div *ngIf=\"showContextMenu\"\r\n class=\"context-menu\"\r\n [ngStyle]=\"{\r\n 'top.px': contextMenuPosition.y,\r\n 'left.px': contextMenuPosition.x\r\n }\"\r\n (mouseleave)=\"hideContextMenu()\">\r\n <div *ngFor=\"let report of reports\"\r\n class=\"menu-item\"\r\n (click)=\"onSelectContextOption(report)\">\r\n {{report.name}}\r\n </div>\r\n</div> -->\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { TsiGenericGridComponent } from '../tsi-generic-grid/tsi-generic-grid.component';\r\nimport { Component_Modes, GridSelectionMode, TooltipPosition } from '../../../enums';\r\nimport { IPage, IPagedRequest, IPagedResponse, ISummaryForProprety } from '../../../interfaces/pagination/pagination-base';\r\nimport { ButtonClickResult, GridColumn, IGridConfiguration, IModalSize } from '../../../interfaces';\r\nimport { EventSchema, SearchField } from '../../../models';\r\nimport { CrudBaseService } from '../../../services/base/crud-base.service';\r\nimport { TsiNotificationService } from '../../../services/notification/tsi-notification.service';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { TsiModalService } from '../../../services/modal/tsi-modal.service';\r\n\r\n@Component({\r\n selector: 'tsi-view-grid',\r\n templateUrl: './tsi-view-grid.component.html',\r\n styleUrls: ['./tsi-view-grid.component.scss'],\r\n})\r\nexport class TsiViewGridComponent implements OnInit {\r\n\r\n //#region local vars\r\n private _dialogRef?: DynamicDialogRef;\r\n private _formEndpoint: string | undefined = undefined;\r\n tooltipPosition = TooltipPosition;\r\n items?: any[];\r\n pagedRequest: IPagedRequest = {};\r\n page: IPage<any> = {\r\n items: [],\r\n pageSize: 10,\r\n pageNumber: 1,\r\n totalCount: 0,\r\n totalPages: 0,\r\n summaries: [],\r\n loading: false,\r\n };\r\n first: number = 0;\r\n rows = 1;\r\n formEndpointBody: string | undefined;\r\n filtersHtmlTemplate?: string = '';\r\n\r\n public businessClass?: string;\r\n _searchOnInit: boolean = true;\r\n\r\n @ViewChild(TsiGenericGridComponent) genericGridComponent?: TsiGenericGridComponent;\r\n\r\n //#endregion\r\n\r\n //#region Inputs\r\n @Input() columns: GridColumn[] = [];\r\n @Input() gridConfiguration?: IGridConfiguration;\r\n @Input() viewComponent: any;\r\n @Input() crudService?: CrudBaseService<any, any, any, any>;\r\n @Input() header: string = '';\r\n @Input() modalSize?: IModalSize;\r\n @Input() showConsultButton: boolean = false;\r\n @Input() showSearchField: boolean = true;\r\n @Input() searchFields: SearchField[] | undefined;\r\n @Input() set formEndpoint(value: string | undefined) {\r\n if (value) {\r\n this._formEndpoint = `${value}/getallpaged`;\r\n }\r\n }\r\n get formEndpoint() {\r\n return this._formEndpoint;\r\n }\r\n\r\n @Input() formName?: string;\r\n @Input() id?: string;\r\n @Input() showImportExportButton: boolean = false;\r\n\r\n _gridData: Array<any> = [];\r\n\r\n //grid selection\r\n @Input() getDataFromApi: boolean = true;\r\n // @Input() gridData?: Array<any>\r\n \r\n @Input() public get gridData(): Array<any> {\r\n return this._gridData;\r\n }\r\n\r\n public set gridData(data: Array<any>) {\r\n this._gridData = [];\r\n this._gridData = data;\r\n if (\r\n this._gridData != undefined &&\r\n this._gridData != null &&\r\n !this.getDataFromApi) {\r\n this._initPageFromGridData();\r\n } else if (\r\n !this.getDataFromApi &&\r\n (this._gridData == undefined || this._gridData == null)\r\n ) {\r\n console.error(\"Error ! you must provide grid Data!\")\r\n }\r\n }\r\n\r\n private _isSearchButtonDisabled: boolean = false;\r\n @Input() public set isSearchButtonDisabled(value: boolean) {\r\n this._isSearchButtonDisabled = value;\r\n }\r\n\r\n public get isSearchButtonDisabled() {\r\n return this._isSearchButtonDisabled;\r\n }\r\n\r\n @Input() selectKeyOnly: boolean = true;\r\n @Input() selectionMode: GridSelectionMode = GridSelectionMode.None;\r\n @Input() selectedItems: Array<any> = [];\r\n @Input() key: string = 'uid';\r\n @Input() showGlobalSearch: boolean = true;\r\n @Input() showExportButton: boolean = true;\r\n @Input() showCalenderView: boolean = false;\r\n @Input() calenderSchema: EventSchema | undefined;\r\n @Input() showHeaderFilters: boolean = true;\r\n @Input() showFilterButton: boolean = true;\r\n @Input() selectAll: boolean = true;\r\n @Input() checkedByField: string = '';\r\n\r\n @Input() set searchOnInit(value: boolean) {\r\n if (value == undefined || value == null) {\r\n this._searchOnInit = true;\r\n } else {\r\n this._searchOnInit = value;\r\n }\r\n }\r\n\r\n get searchOnInit() {\r\n return this._searchOnInit;\r\n }\r\n //#endregion Outputs\r\n\r\n @Output() summariesChange: EventEmitter<Array<ISummaryForProprety>> =\r\n new EventEmitter<Array<ISummaryForProprety>>();\r\n @Output() selectedItemsChange: EventEmitter<Array<any>> = new EventEmitter<Array<any>>();\r\n\r\n @Output() buttonColumnClicked: EventEmitter<ButtonClickResult> = new EventEmitter<ButtonClickResult>();\r\n @Output() searchFieldsValueChanged: EventEmitter<Array<SearchField>> = new EventEmitter<Array<SearchField>>();\r\n @Output() getAllPagedResultChanged: EventEmitter<any> = new EventEmitter();\r\n //#region Outputs\r\n //#endregion\r\n constructor(private _messageService: TsiNotificationService,\r\n private _tsiModalService: TsiModalService, private _cdr: ChangeDetectorRef) { }\r\n\r\n ngOnInit(): void {\r\n if (this.columns == null && this.columns == undefined) {\r\n throw new Error(\r\n 'columns cant be null or undefined, developper must set columns of grid !'\r\n );\r\n }\r\n\r\n if (this.showConsultButton == true) {\r\n this.columns = [\r\n {\r\n header: 'shared_actions_consult',\r\n field: 'consult',\r\n isButton: true,\r\n buttonIcon: 'pi pi-eye',\r\n styleClass: 'p-button-rounded p-button-text',\r\n toolTipText: \"shared_action_consult\"\r\n },\r\n ...this.columns,\r\n ];\r\n }\r\n this._initModels();\r\n }\r\n\r\n // #region grid state\r\n\r\n getState() {\r\n if (this.genericGridComponent) {\r\n return this.genericGridComponent.getState();\r\n }\r\n return null\r\n }\r\n\r\n restoreState(configuration: string) {\r\n if (this.genericGridComponent) {\r\n this.genericGridComponent.restoreState(configuration);\r\n }\r\n }\r\n\r\n resetSelectedColumns(configuration: string) {\r\n if (this.genericGridComponent) {\r\n this.genericGridComponent.resetSelectedColumns(configuration);\r\n }\r\n }\r\n\r\n // #endregion\r\n\r\n isLastPage(): boolean {\r\n return this.page\r\n ? this.page.pageNumber === this.page.totalCount - this.page.pageSize\r\n : true;\r\n }\r\n\r\n isFirstPage(): boolean {\r\n return this.page ? this.page.pageNumber === 0 : true;\r\n }\r\n\r\n searchFieldsValueChanges(newSearchFieldValues: Array<SearchField>) {\r\n this.searchFieldsValueChanged.emit(newSearchFieldValues);\r\n }\r\n\r\n /**\r\n * LazyLoad\r\n */\r\n //first ==> page.pageNumber\r\n //rows ==> page.pageSize\r\n //this.page.items.length ==> total count\r\n\r\n handleButtonColumnClicked(event: ButtonClickResult): void {\r\n if (this.getDataFromApi) {\r\n if (event.field == 'consult' && this.viewComponent != undefined && this.viewComponent != null) {\r\n this._consultRow(event.key);\r\n }\r\n this.buttonColumnClicked.emit({\r\n key: event.key,\r\n field: event.field,\r\n selectKeyOnly: this.selectKeyOnly,\r\n });\r\n } else {\r\n this.buttonColumnClicked.emit({\r\n key: event.key,\r\n field: event.field,\r\n selectKeyOnly: this.selectKeyOnly,\r\n });\r\n }\r\n }\r\n\r\n load(event: any) {\r\n if (this.getDataFromApi) {\r\n this.pagedRequest = event.request;\r\n this._setformEndpointBody();\r\n this._loadDS();\r\n }\r\n else {\r\n let keyword = this.pagedRequest?.keyword?.toLocaleLowerCase()\r\n if (!keyword || keyword == \"\") {\r\n this._initPageFromGridData()\r\n this._cdr.detectChanges()\r\n return\r\n }\r\n let data = [...this._gridData];\r\n let filteredData = data.filter(item =>\r\n Object.values(item).some(value =>\r\n value != null &&\r\n value.toString().toLowerCase().includes(keyword)\r\n )\r\n );\r\n this._initPageFromGridData(filteredData)\r\n this._cdr.detectChanges()\r\n }\r\n }\r\n\r\n getSummary(col: GridColumn, gridData?: Array<any>): number {\r\n let sum = 0;\r\n gridData?.forEach((row: any) => {\r\n sum += row[col.field];\r\n });\r\n return sum;\r\n }\r\n\r\n onSelectedItemsChange(event: any): void {\r\n this.selectedItemsChange.emit(event);\r\n }\r\n //#region private methods\r\n private _setformEndpointBody(): void {\r\n let ox: any = this._clonePagedRequest(this.pagedRequest);\r\n ox['getAllData'] = true;\r\n this.formEndpointBody = JSON.stringify(ox);\r\n }\r\n private _initModels() {\r\n this.page = {\r\n items: [],\r\n pageSize: 10,\r\n pageNumber: 1,\r\n totalCount: 0,\r\n totalPages: 0,\r\n summaries: [],\r\n loading: false,\r\n };\r\n this.pagedRequest = {\r\n maxResultCount: 10,\r\n skipCount: 0,\r\n sorting: [],\r\n keyword: '',\r\n filters: [],\r\n getAllData: false,\r\n summaries: [],\r\n };\r\n }\r\n\r\n private _loadDS(isForCalender: boolean = false) {\r\n this.page.loading = true;\r\n this.pagedRequest = {\r\n ...this.pagedRequest,\r\n getAllData: isForCalender,\r\n };\r\n if (this.crudService != null && this.crudService != undefined)\r\n this.crudService.getAllPaged(this.pagedRequest).subscribe({\r\n next: (value: IPagedResponse<any>) => {\r\n if (value) {\r\n this.page.items = value.items;\r\n this.page.totalCount = value.totalCount;\r\n this.page.summaries = value.summaries ? value.summaries : [];\r\n this.page.totalPages =\r\n (this.page.totalCount -\r\n (this.page.totalCount % this.page.pageSize)) /\r\n this.page.pageSize +\r\n 1;\r\n }\r\n this.summariesChange.emit(this.page.summaries);\r\n this.getAllPagedResultChanged.emit(value);\r\n this.page.loading = false;\r\n },\r\n error: (error: HttpErrorResponse) => {\r\n this._messageService.error(error.message);\r\n this.page.loading = false;\r\n },\r\n });\r\n }\r\n\r\n private _consultRow(itemKey: any) {\r\n this._openModal(Component_Modes.CONSULT, itemKey);\r\n }\r\n\r\n private _openModal(mode: string, itemKey?: any): void {\r\n let conf: DynamicDialogConfig;\r\n if (this.modalSize != null && this.modalSize != undefined) {\r\n conf = {\r\n data: { id: itemKey, mode: mode },\r\n styleClass: '',\r\n width: this.modalSize.width,\r\n height: this.modalSize.height,\r\n maximizable: true,\r\n };\r\n } else {\r\n conf = { data: { id: itemKey, mode: mode }, maximizable: true };\r\n }\r\n this._dialogRef = this._tsiModalService.open(this.viewComponent, conf);\r\n\r\n this._dialogRef.onClose.subscribe((val?: any) => this._closeModal(val));\r\n }\r\n private _closeModal(val?: any): void {\r\n this._loadDS();\r\n this._dialogRef?.destroy();\r\n }\r\n\r\n refresh(event: any) {\r\n if (event == true) {\r\n this._loadDS();\r\n }\r\n }\r\n\r\n private _clonePagedRequest(request: IPagedRequest): IPagedRequest {\r\n let clone: IPagedRequest = {\r\n maxResultCount: request.maxResultCount,\r\n skipCount: request.skipCount,\r\n sorting: request.sorting,\r\n keyword: request.keyword,\r\n filters: request.filters,\r\n getAllData: request.getAllData,\r\n summaries: request.summaries,\r\n };\r\n return clone;\r\n }\r\n\r\n private _initPageFromGridData(gridData = this._gridData) {\r\n this.page.totalCount = gridData.length;\r\n this.page.totalPages =\r\n (this.page.totalCount - (this.page.totalCount % this.page.pageSize)) /\r\n this.page.pageSize +\r\n 1;\r\n this.page.items = gridData;\r\n this.page.pageNumber = 1;\r\n this.page.pageSize = 10;\r\n this.columns.forEach((col: any) => {\r\n if (col.haveSummary == true) {\r\n let summaryValue = this.getSummary(col, gridData);\r\n this.page.summaries.push({\r\n proprety: col.field,\r\n summary: summaryValue,\r\n });\r\n }\r\n });\r\n this.summariesChange.emit(this.page.summaries);\r\n }\r\n //#endregion\r\n\r\n displaySearchFields() {\r\n this.showSearchField = !this.showSearchField;\r\n }\r\n\r\n //#region calender\r\n toggleCalenderView() {\r\n this.showCalenderView = !this.showCalenderView;\r\n this._loadDS(this.showCalenderView);\r\n }\r\n\r\n handleCalendarEventClick(item: any) {\r\n switch (item.mode) {\r\n case Component_Modes.CONSULT:\r\n this._consultRow(item.id);\r\n break;\r\n // case Component_Modes.CREATE :\r\n // this._openModal(Component_Modes.CREATE,null,null);\r\n // break;\r\n // case Component_Modes.EDIT :\r\n // this._editRow(item.id);\r\n // break;\r\n }\r\n }\r\n //#endregion\r\n}","<div class=\"card\">\r\n <p-toolbar *ngIf=\"formEndpoint\" styleClass=\"border-radius-7 mb-1 flex align-items-center gap-2\">\r\n <ng-template pTemplate=\"left\">\r\n <div class=\"flex gap-2 ml-2\">\r\n <Tsi-Button icon=\"pi pi-sliders-h\" [tooltipPosition]=\"tooltipPosition.Top\" tooltipText=\"shared_tsi_component_grid_menu_view\" *ngIf=\"searchFields\"\r\n styleClass=\"h-2rem hover:shadow-6 p-button-icon-only {{showSearchField ? 'p-button-secondary' : 'p-button-success'}}\" \r\n (click)=\"displaySearchFields()\">\r\n </Tsi-Button>\r\n <Tsi-Button icon=\"p-button-icon pi pi-calendar {{showCalenderView ? 'pi pi-align-justify' : 'pi pi-calendar'}}\" \r\n styleClass=\"p-element p-button-primary hover:shadow-6 h-2rem p-button p-component p-button-icon-only\" (click)=\"toggleCalenderView()\" \r\n tooltipText=\"{{(showCalenderView ? 'shared_tsi_component_grid_list_view' : 'shared_tsi_component_grid_calender_view') | localize}}\" [tooltipPosition]=\"tooltipPosition.Top\"></Tsi-Button>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"right\">\r\n <app-reporting *ngIf=\"formEndpoint || businessClass\"\r\n [formEndpoint]=\"formEndpoint\"\r\n [formName]=\"formName\"\r\n [formEndpointBody]=\"formEndpointBody\"\r\n [isFormEndpointPaged]=\"true\"\r\n [showImportExportButton]=\"showImportExportButton\"\r\n (refreshData)=\"refresh($event)\"\r\n [filtersHtmlTemplate]=\"filtersHtmlTemplate\"\r\n [businessClass]=\"businessClass\"\r\n [selectedItemUids]=\"selectedItems\">\r\n </app-reporting>\r\n </ng-template>\r\n </p-toolbar>\r\n \r\n <div>\r\n <Tsi-Generic-Grid [formName]=\"formName\" [header]=\"header\" [page]=\"page\" [pagedRequest]=\"pagedRequest\" [columns]=\"columns\"\r\n [searchFields]=\"searchFields\" [showSearchField]=\"showSearchField\" (load)=\"load($event)\"\r\n (searchFieldsValueChanged)=\"searchFieldsValueChanges($event)\"\r\n (buttonColumnClicked)=\"handleButtonColumnClicked($event)\" [(filtersHtmlTemplate)]=\"filtersHtmlTemplate\"\r\n [selectKeyOnly]=\"selectKeyOnly\"\r\n [selectionMode]=\"selectionMode\"\r\n [showImportExportButton]=\"showImportExportButton\"\r\n [key]=\"key\"\r\n [crudService]=\"crudService\"\r\n [(selectedItems)]=\"selectedItems\"\r\n (selectedItemsChange)=\"onSelectedItemsChange($event)\"\r\n [isGridDataPagedInApi] =\"getDataFromApi\"\r\n [searchOnInit]=\"searchOnInit\"\r\n [showExportButton]=\"showExportButton\"\r\n [showHeaderFilters]=\"showHeaderFilters\"\r\n [showFilterButton]=\"showFilterButton\"\r\n [showGlobalSearch]=\"showGlobalSearch\"\r\n [isSearchButtonDisabled]=\"isSearchButtonDisabled\"\r\n [showCalenderView]=\"showCalenderView\"\r\n [calenderSchema]=\"calenderSchema\"\r\n (calendarEventClick)=\"handleCalendarEventClick($event)\"\r\n [selectAll]=\"selectAll\"\r\n [checkedByField]=\"checkedByField\"\r\n >\r\n </Tsi-Generic-Grid>\r\n </div>\r\n</div>","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tsi-form-modal-footer',\r\n templateUrl: './tsi-form-modal-footer.component.html',\r\n styleUrl: './tsi-form-modal-footer.component.scss'\r\n})\r\nexport class TsiFormModalFooterComponent implements OnInit {\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}","<p>tsi-form-modal-footer works!</p>","import { Injectable } from '@angular/core';\r\nimport { PresentationDesignerDirective } from '../../tsi-directives/presentation-designer.directive';\r\nimport { TsiViewGridComponent } from '../../tsi-components/output-components/tsi-view-grid/tsi-view-grid.component';\r\nimport { TsiGenericGridComponent } from '../../tsi-components/output-components/tsi-generic-grid/tsi-generic-grid.component';\r\nimport { EditableGridComponent } from '../../tsi-components/input-components/editable-grid/editable-grid.component';\r\nimport { PresentationDesignerBaseService } from './presentation-designer-base.service';\r\n\r\n@Injectable()\r\nexport class PresentationDesignerService extends PresentationDesignerBaseService {\r\n\r\n override directives: PresentationDesignerDirective[] = [];\r\n\r\n constructor() {\r\n super()\r\n }\r\n\r\n override register(directive: PresentationDesignerDirective) {\r\n this.directives.push(directive);\r\n this._addedDirectiveSubscription.next(directive)\r\n }\r\n\r\n override unregister(directive: PresentationDesignerDirective) {\r\n this.directives = this.directives.filter(d => d !== directive);\r\n }\r\n\r\n override getDirectives(): (PresentationDesignerDirective)[] {\r\n return this.directives;\r\n }\r\n\r\n getViewGrids(): TsiViewGridComponent[] {\r\n return [...this.directives\r\n .filter(d => d instanceof PresentationDesignerDirective && d.viewGridChild !== undefined)\r\n .map(x => (x as PresentationDesignerDirective).viewGridChild),\r\n ...this.directives\r\n .filter(x => x instanceof PresentationDesignerDirective && x.viewGrid != undefined)\r\n .map(x => (x as PresentationDesignerDirective).viewGrid)] as TsiViewGridComponent[];\r\n }\r\n\r\n getGenericGrids(): TsiGenericGridComponent[] {\r\n return [...this.directives\r\n .filter(d => d instanceof PresentationDesignerDirective && d.genericGridChild !== undefined)\r\n .map(x => (x as PresentationDesignerDirective).genericGridChild),\r\n ...this.directives\r\n .filter(x => x instanceof PresentationDesignerDirective && x.genericGrid != undefined)\r\n .map(x => (x as PresentationDesignerDirective).genericGrid)] as TsiGenericGridComponent[];\r\n }\r\n\r\n getEditableGrids(): EditableGridComponent[] {\r\n return [...this.directives\r\n .filter(d => d instanceof PresentationDesignerDirective && d.editableGridChild !== undefined)\r\n .map(x => (x as PresentationDesignerDirective).editableGridChild),\r\n ...this.directives\r\n .filter(x => x instanceof PresentationDesignerDirective && x.editableGrid != undefined)\r\n .map(x => (x as PresentationDesignerDirective).editableGrid)] as EditableGridComponent[];\r\n }\r\n\r\n getGenericCruds(): any[] {\r\n return [...this.directives\r\n .filter(d => d instanceof PresentationDesignerDirective && d.genericCrudChild !== undefined)\r\n .map(x => (x as PresentationDesignerDirective).genericCrudChild),\r\n ...this.directives\r\n .filter(x => x instanceof PresentationDesignerDirective && x.genericCrud != undefined)\r\n .map(x => (x as PresentationDesignerDirective).genericCrud)];\r\n }\r\n\r\n}\r\n","import { PresentationDesignerBaseService } from \"../services/presentation-setting/presentation-designer-base.service\";\r\nimport { PresentationDesignerService } from \"../services/presentation-setting/presentation-designer.service\";\r\nimport { GenericValidationStateService } from \"../services/validation/generic-validation-state.service\";\r\nimport { InputRegistryService } from \"../services/validation/input-registry.service\";\r\n\r\nexport const appProviders = [\r\n PresentationDesignerService,\r\n PresentationDesignerBaseService,\r\n GenericValidationStateService,\r\n InputRegistryService\r\n]","import { Component, OnInit } from '@angular/core';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { NotesGroupedByUserResponse } from '../../models/Notes/Note';\r\nimport { appProviders } from '../../consts/app-providers';\r\n\r\n@Component({\r\n selector: 'app-tsi-notes-avertir',\r\n templateUrl: './tsi-notes-avertir.component.html',\r\n styleUrls: ['./tsi-notes-avertir.component.scss'],\r\n providers: [...appProviders]\r\n}) \r\nexport class TsiNotesAvertirComponent implements OnInit {\r\n groupedNotes: NotesGroupedByUserResponse[] = [];\r\n\r\n constructor(\r\n private ref: DynamicDialogRef,\r\n private config: DynamicDialogConfig\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const notes = this.config.data?.groupedNotes || [];\r\n\r\n if (!notes.length) {\r\n this.ref.close();\r\n return;\r\n }\r\n\r\n this.groupedNotes = notes;\r\n }\r\n}\r\n","<div class=\"notes-wrapper\">\r\n <div *ngFor=\"let userGroup of groupedNotes\" class=\"user-block\">\r\n <div class=\"user-header\">\r\n <div class=\"user-badge\">{{ userGroup.creationUser || 'Inconnu' }}</div>\r\n </div>\r\n\r\n <div class=\"notes-grid\">\r\n <div *ngFor=\"let note of userGroup.notes\" class=\"note-card\">\r\n <div class=\"note-content\">\r\n <p class=\"note-text\">{{ note.note }}</p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { JournalisationApplication } from '../../models/journalisation-application/journalisation-application';\r\nimport { CrudBaseService } from '../base/crud-base.service';\r\nimport { AdministrationEndpoints, AdministrationSegments } from '../../end-points/endpoints';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class JournalisationApplicationService extends CrudBaseService<JournalisationApplication, JournalisationApplication, JournalisationApplication, JournalisationApplication> {\r\n\r\n constructor(protected httpClient: HttpClient) {\r\n super(httpClient, AdministrationSegments.journalApplication);\r\n }\r\n\r\n getAllFiltredByIdObject(targetId: string) : Observable<any>{\r\n return this._httpClient.get<any>(AdministrationEndpoints.getAllFiltredByIdObject(targetId));\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\nimport { JournalisationApplication, TreeNode, TreeNode2 } from '../../models';\r\nimport { JournalisationApplicationService } from '../../services/journalisation/journalisation-application.service';\r\nimport { Modes } from '../../enums';\r\nimport { appProviders } from '../../consts/app-providers';\r\n\r\ninterface Column {\r\n field: string;\r\n header: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-tsi-log-event-history',\r\n templateUrl: './tsi-log-event-history.component.html',\r\n styleUrl: './tsi-log-event-history.component.scss',\r\n providers:[...appProviders]\r\n})\r\nexport class TsiLogEventHistoryComponent implements OnInit {\r\n\r\n\r\n showOnlyModifiedFields: boolean | undefined;\r\n\r\n cols!: Column[];\r\n oldTreeData: TreeNode[] = [];\r\n newTreeData: TreeNode[] = [];\r\n\r\n mergedTree: TreeNode2[] = [];\r\n\r\n filteredMergedTree: TreeNode2[] = [];\r\n\r\n headerTitle: string = 'administration_administration_ficheJournalApplication';\r\n\r\n journalApplication: JournalisationApplication = new JournalisationApplication();\r\n\r\n constructor(public journalisationApplicationService: JournalisationApplicationService,\r\n public config: DynamicDialogConfig) {\r\n\r\n this.cols = [\r\n { field: 'label', header: 'Champ' },\r\n { field: 'oldData', header: 'Ancienne valeur' },\r\n { field: 'newData', header: 'Nouvelle valeur' },\r\n ];\r\n }\r\n\r\n isBoolean(value: any): boolean {\r\n return typeof value === 'string' && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false');\r\n }\r\n\r\n isChecked(value: string | null | undefined): boolean {\r\n return value?.toLowerCase() === 'true';\r\n }\r\n\r\n updateDisplayedTree(event: any): void {\r\n if (event) {\r\n this.filteredMergedTree = this.filterModifiedNodes(this.mergedTree);\r\n } else {\r\n this.filteredMergedTree = [...this.mergedTree];\r\n }\r\n }\r\n\r\n private filterModifiedNodes(nodes: TreeNode2[]): TreeNode2[] {\r\n const result: TreeNode2[] = [];\r\n\r\n for (const node of nodes) {\r\n const children = node.children ? this.filterModifiedNodes(node.children) : [];\r\n const isModified = node.oldData?.value !== node.newData?.value;\r\n\r\n if (isModified || children.length > 0) {\r\n result.push({\r\n ...node,\r\n children,\r\n leaf: children.length === 0,\r\n });\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n\r\n if ((this.config.data.mode == Modes.consult) && this.config.data.id != undefined && this.config.data.id != null) {\r\n\r\n this.journalisationApplicationService.getById(this.config.data.id).subscribe({\r\n next: (data: any) => {\r\n\r\n this.journalApplication = data ?? new JournalisationApplication();\r\n\r\n this.oldTreeData = data.oldTreeNodes ?? [];\r\n this.newTreeData = data.newTreeNodes ?? [];\r\n this.mergedTree = data.mergedTree ?? [];\r\n this.filteredMergedTree = this.mergedTree;\r\n\r\n },\r\n error: () => {\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n markChangedNodes(oldNodes: TreeNode[], newNodes: TreeNode[]) {\r\n for (let i = 0; i < oldNodes.length; i++) {\r\n const oldNode = oldNodes[i];\r\n const newNode = newNodes[i];\r\n\r\n if (oldNode?.leaf && newNode?.leaf && oldNode.data && newNode.data) {\r\n if (oldNode.data.value !== newNode.data.value) {\r\n oldNode.changed = true;\r\n newNode.changed = true;\r\n }\r\n }\r\n\r\n if (oldNode.children && newNode.children) {\r\n this.markChangedNodes(oldNode.children, newNode.children);\r\n }\r\n }\r\n }\r\n\r\n isObject(value: any): boolean {\r\n return value && typeof value === 'object' && !Array.isArray(value);\r\n }\r\n\r\n objectKeys(obj: any): string[] {\r\n return Object.keys(obj);\r\n }\r\n\r\n parseJsonValue(value: string): any {\r\n try {\r\n return JSON.parse(value);\r\n } catch {\r\n return value;\r\n }\r\n }\r\n\r\n displayKeyValue(value: any): string {\r\n if (this.isObject(value)) {\r\n return '';\r\n }\r\n return value;\r\n }\r\n}\r\n","<p-header class=\"p-dialog-header absolute top-0 left-0 mb-4\">\r\n{{ 'administration_administration_ficheJournalApplication' | localize}}\r\n</p-header>\r\n\r\n<div class=\"card\">\r\n <fieldset [disabled]=\"true\">\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-12 md:col-6 lg:col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_administration_ficheJournalApplication_dateEvent'\"></Tsi-Label>\r\n <Tsi-Date-Picker class=\"col-6\" [inputName]=\"'dateEvent'\"\r\n [inputField]=\"journalApplication.dateEvent\">\r\n </Tsi-Date-Picker>\r\n </div>\r\n </div>\r\n <div class=\"col-12 md:col-6 lg:col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_administration_ficheJournalApplication_dataBaseName'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-6\" [inputName]=\"'dateEvent'\"\r\n [(inputField)]=\"journalApplication.dataBaseName\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-12 md:col-6 lg:col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_administration_ficheJournalApplication_userNameEvent'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-6\" [inputName]=\"'dateEvent'\"\r\n [(inputField)]=\"journalApplication.userNameEvent\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n <div class=\"col-12 md:col-6 lg:col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_administration_ficheJournalApplication_tableName'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-6\" [inputName]=\"'dateEvent'\" [(inputField)]=\"journalApplication.tableName\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-12 md:col-6 lg:col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_administration_ficheJournalApplication_textEvent'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-6\" [inputName]=\"'dateEvent'\" [(inputField)]=\"journalApplication.textEvent\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-6 lg:col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_administration_ficheJournalApplication_observation'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-6\" [inputName]=\"'dateEvent'\"\r\n [(inputField)]=\"journalApplication.observation\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </fieldset>\r\n\r\n <div class=\"grid\">\r\n\r\n <div class=\"col-12\">\r\n\r\n <div class=\"card\">\r\n\r\n <p-treeTable [value]=\"filteredMergedTree\" class=\"compact-table\" [columns]=\"cols\" [scrollable]=\"true\"\r\n [tableStyle]=\"{ 'min-width': '50rem' }\">\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"text-xl font-bold\">\r\n {{ 'tsi_log_event_history_modifications' | localize }}\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'Afficher seulement les champs modifiés'\"></Tsi-Label>\r\n <Tsi-CheckBox \r\n class=\"col-4\" \r\n [inputName]=\"'Logged'\" \r\n [isBinary]=\"true\"\r\n (checkedChange)=\"updateDisplayedTree($event)\" \r\n [(inputField)]=\"showOnlyModifiedFields\"\r\n [checked]=\"false\"\r\n [infoText]=\"'Afficher seulement les champs modifiés'\"\r\n >\r\n </Tsi-CheckBox>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns\" class=\"bold-header\">{{ col.header }}</th>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"body\" let-rowNode let-rowData=\"rowData\" let-columns=\"columns\">\r\n <tr [ttRow]=\"rowNode\" [ngClass]=\"{ 'has-children': rowNode.node?.children?.length > 0 }\">\r\n <td *ngFor=\"let col of columns; let i = index\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\" />\r\n\r\n <ng-container [ngSwitch]=\"col.field\">\r\n <span *ngSwitchCase=\"'label'\">\r\n {{ rowNode.node?.label }}\r\n </span>\r\n\r\n <ng-container *ngSwitchCase=\"'oldData'\">\r\n <ng-container *ngIf=\"isBoolean(rowNode.node?.oldData?.value); else oldText\">\r\n <Tsi-Checkbox-Display [inputData]=\"isChecked(rowNode.node?.oldData?.value)\"></Tsi-Checkbox-Display>\r\n </ng-container>\r\n <ng-template #oldText>\r\n {{ rowNode.node?.oldData?.value }}\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'newData'\">\r\n\r\n <ng-container *ngIf=\"isBoolean(rowNode.node?.newData?.value); else newText\">\r\n <span [ngClass]=\"{ 'changed': rowNode.node?.oldData?.value !== rowNode.node?.newData?.value }\">\r\n <Tsi-Checkbox-Display [inputData]=\"isChecked(rowNode.node?.newData?.value)\"></Tsi-Checkbox-Display>\r\n </span>\r\n </ng-container>\r\n <ng-template #newText>\r\n <span [ngClass]=\"{ 'changed': rowNode.node?.oldData?.value !== rowNode.node?.newData?.value }\">\r\n {{ rowNode.node?.newData?.value }}\r\n </span>\r\n </ng-template>\r\n </ng-container>\r\n\r\n </ng-container>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-treeTable>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DialogDataService {\r\n\r\n private data: any;\r\n private eventSubject = new Subject<any>();\r\n\r\n sendEvent(data: any) {\r\n this.eventSubject.next(data);\r\n }\r\n\r\n getEvent() {\r\n return this.eventSubject.asObservable();\r\n }\r\n\r\n\r\n setData(data: any) {\r\n this.data = data;\r\n }\r\n\r\n getData(): any {\r\n return this.data;\r\n }\r\n\r\n clearData() {\r\n this.data = null;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { CrudBaseService } from '../base/crud-base.service';\r\nimport { StatusHistory } from '../../models';\r\nimport { AdministrationEndpoints, AdministrationSegments } from '../../end-points/endpoints';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StatusHistoryService extends CrudBaseService<StatusHistory, StatusHistory, StatusHistory, StatusHistory> {\r\n\r\n constructor(protected httpClient: HttpClient) {\r\n super(httpClient, AdministrationSegments.journalApplication);\r\n }\r\n\r\n getAllFiltredByUidObject(objectId: string) : Observable<any>{\r\n return this._httpClient.get<any>(AdministrationEndpoints.getAllFiltredByUidObject(objectId));\r\n }\r\n}","import { ChangeDetectorRef, Component, EnvironmentInjector, OnInit } from '@angular/core';\r\nimport { TsiLogEventHistoryComponent } from '../tsi-log-event-history/tsi-log-event-history.component';\r\nimport { Component_Modes, DisplayTypes, ModalSizeEnum, Modes } from '../../enums';\r\nimport { GridColumn, IModalSize } from '../../interfaces';\r\nimport { DateTimeFormatDisplay } from '../../consts/tsi-consts';\r\nimport { DialogDataService } from '../../services/dialog-data.service';\r\nimport { JournalisationApplicationService } from '../../services/journalisation/journalisation-application.service';\r\nimport { StatusHistoryService } from '../../services/journalisation/status-history.service';\r\nimport { TypeRegistryHelper } from '../../tsi-helpers/type-registry.helper';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { TsiModalService } from '../../services/modal/tsi-modal.service';\r\nimport { appProviders } from '../../consts/app-providers';\r\nimport { openCreateOrEditEntityInformationComponent } from '../../functions/modal-open.function';\r\n\r\n@Component({\r\n selector: 'app-tsi-popup-text-viewer',\r\n templateUrl: './tsi-popup-text-viewer.component.html',\r\n styleUrls: ['./tsi-popup-text-viewer.component.scss'],\r\n providers:[...appProviders]\r\n})\r\nexport class TsiPopupTextViewerComponent implements OnInit {\r\n\r\n private _dialogRef?: DynamicDialogRef;\r\n fileContent: string = '';\r\n comp: any;\r\n modalSize: IModalSize = ModalSizeEnum.Medium;\r\n titleComponent: string = '';\r\n logEventFiltredData: Array<any> = [];\r\n statusHistoryFiltredData: Array<any> = [];\r\n creationUser: string | undefined;\r\n modifUser: string | undefined;\r\n dateSaisie: string | undefined;\r\n dateModif: string | undefined;\r\n formatDate = DateTimeFormatDisplay;\r\n \r\n columnsLogEvent: Array<GridColumn> = [\r\n {\r\n header: 'administration_administration_journalApplication_dateEvent',\r\n field: 'dateEvent',\r\n type: DisplayTypes.DATETIME_DISPLAY,\r\n },\r\n {\r\n header: 'administration_administration_journalApplication_userNameEvent',\r\n field: 'userNameEvent',\r\n },\r\n {\r\n header: 'administration_administration_journalApplication_typeEvent',\r\n field: 'typeEvent',\r\n },\r\n {\r\n header: 'administration_administration_journalApplication_textEvent',\r\n field: 'textEvent',\r\n },\r\n ];\r\n\r\n columnsStatuHistory: Array<GridColumn> = [\r\n {\r\n header: 'administration_administration_statusHistory_classe',\r\n field: 'classe',\r\n },\r\n /*{\r\n header: 'administration_administration_statusHistory_uidObjet',\r\n field: 'uidObjet',\r\n },*/\r\n {\r\n header: 'administration_administration_statusHistory_oldStatus',\r\n field: 'oldStatus',\r\n },\r\n {\r\n header: 'administration_administration_statusHistory_status',\r\n field: 'status',\r\n },\r\n {\r\n header: 'administration_administration_statusHistory_commentaire',\r\n field: 'commentaire',\r\n },\r\n {\r\n header: 'administration_administration_statusHistory_creationUser',\r\n field: 'creationUser',\r\n },\r\n {\r\n header: 'administration_administration_statusHistory_modifUser',\r\n field: 'modifUser',\r\n },\r\n {\r\n header: 'administration_administration_statusHistory_dateSaisie',\r\n field: 'dateSaisie',\r\n type: DisplayTypes.DATETIME_DISPLAY,\r\n },\r\n {\r\n header: 'administration_administration_statusHistory_dateModif',\r\n field: 'dateModif',\r\n type: DisplayTypes.DATETIME_DISPLAY,\r\n }, \r\n ];\r\n\r\n constructor(\r\n private _tsiModalService: TsiModalService,\r\n private cdr: ChangeDetectorRef,\r\n private _injector: EnvironmentInjector,\r\n public config: DynamicDialogConfig,\r\n public dialogDataService: DialogDataService,\r\n public journalisationApplicationService: JournalisationApplicationService,\r\n public statusHistoryService: StatusHistoryService,\r\n public ref?: DynamicDialogRef\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fileContent = this.config?.data as string;\r\n this.modalSize = ModalSizeEnum.Large;\r\n this.titleComponent = 'history_of_changes_title';\r\n \r\n this.creationUser = this.config?.data.creationUser;\r\n this.modifUser = this.config?.data.modifUser;\r\n this.dateSaisie = this.config?.data.dateSaisie;\r\n this.dateModif = this.config?.data.dateModif;\r\n\r\n // alert(`ID From List : ${this.config?.data.Uid}`);\r\n\r\n this.journalisationApplicationService\r\n .getAllFiltredByIdObject(this.config?.data.Uid)\r\n .subscribe({\r\n next: (data) => {\r\n this.logEventFiltredData = (data ?? [])\r\n this.cdr.detectChanges();\r\n },\r\n error: (error: any) => {\r\n console.log(error);\r\n },\r\n });\r\n\r\n this.statusHistoryService\r\n .getAllFiltredByUidObject(this.config?.data.Uid)\r\n .subscribe({\r\n next: (data) => {\r\n this.statusHistoryFiltredData = (data ?? [])\r\n this.cdr.detectChanges();\r\n },\r\n error: (error: any) => {\r\n console.log(error);\r\n },\r\n });\r\n }\r\n\r\n buttonColumnClicked(dataEvent: any) {\r\n // alert(`Row Data Event : ${dataEvent.key}`);\r\n this.consultRow(dataEvent.key);\r\n }\r\n\r\n consultRow(itemKey: any) {\r\n this.openConsultModal(Modes.consult, itemKey);\r\n }\r\n\r\n private openConsultModal(mode: string, itemKey?: any): void {\r\n\r\n let conf: DynamicDialogConfig;\r\n\r\n if (this.modalSize != null && this.modalSize != undefined) {\r\n conf = {\r\n data: { id: itemKey, mode: mode },\r\n styleClass: '',\r\n width: this.modalSize.width,\r\n height: this.modalSize.height,\r\n maximizable: true,\r\n };\r\n } else {\r\n conf = { data: { id: itemKey, mode: mode }, maximizable: true };\r\n }\r\n\r\n // alert(`Conf : ${conf.data.id}`);\r\n this.ref = this._tsiModalService.open(\r\n TsiLogEventHistoryComponent,\r\n conf\r\n );\r\n\r\n this.ref.onClose.subscribe((val?: any) => this.closeConsultModal());\r\n }\r\n\r\n private closeConsultModal(): void {\r\n this.ref?.destroy();\r\n }\r\n\r\n public async openEntitieInformationModal() {\r\n let conf: DynamicDialogConfig;\r\n if (this.modalSize != null && this.modalSize != undefined) {\r\n conf = {\r\n data: {\r\n id: this.dialogDataService.getData().class,\r\n mode: Component_Modes.CONSULT,\r\n },\r\n styleClass: '',\r\n width: this.modalSize.width,\r\n height: this.modalSize.height,\r\n maximizable: true,\r\n };\r\n } else {\r\n conf = {\r\n data: {\r\n id: this.dialogDataService.getData().class,\r\n mode: Component_Modes.CONSULT,\r\n },\r\n maximizable: true,\r\n };\r\n }\r\n \r\n this._dialogRef = await openCreateOrEditEntityInformationComponent(this._injector,conf)\r\n\r\n this._dialogRef.onClose.subscribe((val?: any) => this.closeConsultModal());\r\n }\r\n}","<div class=\"card\">\r\n\r\n <div class=\"grid mt-1\">\r\n \r\n <!-- Titre -->\r\n <div class=\"col-12 md:col-2 lg:col-2\">\r\n <div style=\"font-weight: bold; color: #007ad9;\">\r\n {{ 'tsi_popup_view_log_history_last_modification' | localize }}\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-12 md:col-4 lg:col-4\" style=\"background-color: #f0f8ff;\">\r\n <i class=\"pi pi-user\" style=\"color: #007ad9; margin-right: 0.5rem;\"></i>\r\n {{ 'tsi_popup_view_log_history_createdby' | localize }}\r\n <strong>{{ creationUser }}</strong>\r\n\r\n <i style=\"color: #007ad9; margin-right: 0.5rem;\"></i>\r\n {{ 'tsi_popup_view_log_history_createdOn' | localize }}\r\n <strong>{{ dateSaisie | date : formatDate }}</strong>\r\n\r\n </div>\r\n <div class=\"col-12 md:col-4 lg:col-4\" style=\"background-color: #f1f2f3;\">\r\n <i class=\"pi pi-pencil\" style=\"color: #007ad9; margin-right: 0.5rem;\"></i>\r\n {{ 'tsi_popup_view_log_history_modifiedBy' | localize }}\r\n <strong>{{ modifUser }}</strong>\r\n\r\n <i style=\"color: #007ad9; margin-right: 0.5rem;\"></i>\r\n {{ 'tsi_popup_view_log_history_modifiedOn' | localize }}\r\n <strong>{{ dateModif | date : formatDate }}</strong>\r\n\r\n </div>\r\n </div>\r\n\r\n</div>\r\n\r\n\r\n<br />\r\n<div class=\"p-d-flex p-jc-end p-mb-3\">\r\n <button type=\"button\" pButton label=\"Consulter les informations d'entité\" icon=\"pi pi-eye\"\r\n class=\"p-button-sm p-button-outlined\" (click)=\"openEntitieInformationModal()\"></button>\r\n</div>\r\n<br />\r\n\r\n<p-tabView>\r\n <p-tabPanel [header]=\"'history_of_changes_title'| localize\">\r\n <tsi-view-grid \r\n [modalSize]=\"modalSize\" \r\n [formName]=\"'logfobject'\" \r\n [header]=\"titleComponent\" \r\n [getDataFromApi]=\"false\"\r\n [gridData]=\"logEventFiltredData\" \r\n [searchOnInit]=\"false\" \r\n (buttonColumnClicked)=\"buttonColumnClicked($event)\"\r\n [columns]=\"columnsLogEvent\" \r\n [selectKeyOnly]=\"true\" \r\n [showConsultButton]=\"true\"\r\n ></tsi-view-grid>\r\n </p-tabPanel>\r\n <p-tabPanel header=\"{{'administration_administration_statusHistory_historiqueModificationsStatut' | localize}}\">\r\n <tsi-view-grid \r\n [modalSize]=\"modalSize\" \r\n [formName]=\"'logfStatusobject'\" \r\n [header]=\"'administration_administration_statusHistory_historiqueModificationsStatut' | localize\" \r\n [getDataFromApi]=\"false\"\r\n [gridData]=\"statusHistoryFiltredData\" \r\n [searchOnInit]=\"false\" \r\n [columns]=\"columnsStatuHistory\" \r\n [selectKeyOnly]=\"true\" \r\n ></tsi-view-grid>\r\n </p-tabPanel>\r\n</p-tabView>\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { CrudBaseService, Segments } from '../base/crud-base.service';\r\nimport { Fichier } from '../../models';\r\nimport { DialogDataService } from '../dialog-data.service';\r\nimport { AdministrationSegments } from '../../end-points/endpoints';\r\nimport { IPagedRequest } from '../../interfaces/pagination/pagination-base';\r\nimport { Segment } from '../../end-points';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FichierUploadService extends CrudBaseService<Fichier, Fichier, Fichier, Fichier> {\r\n\r\n constructor(\r\n protected httpClient: HttpClient,\r\n private dialogDataService: DialogDataService) {\r\n super(httpClient, AdministrationSegments.fichier)\r\n }\r\n\r\n override getAllPaged(model: IPagedRequest): Observable<any> {\r\n return this._httpClient.post<any>(`${Segment.base}/${this.endpoint}/${Segments.getAllPaged}`, {\r\n \"maxResultCount\": 10,\r\n \"skipCount\": 0,\r\n \"sorting\": [],\r\n \"filters\": [\r\n {\r\n \"operator\": 0,\r\n \"filterValue\": `${this.dialogDataService.getData().class}`,\r\n \"propretyName\": \"TableLiee\"\r\n },\r\n {\r\n \"operator\": 0,\r\n \"filterValue\": `${this.dialogDataService.getData().id}`,\r\n \"propretyName\": \"Pkey\"\r\n }\r\n ],\r\n \"getAllData\": false,\r\n \"summaries\": []\r\n });\r\n }\r\n}\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Segment } from '../../end-points';\r\nimport { Note, NotePagedRequest, NotesGroupedByUserResponse } from '../../models/Notes/Note';\r\nimport { CrudBaseService } from '../base/crud-base.service';\r\nimport { DialogDataService } from '../dialog-data.service';\r\nimport { AdministrationSegments } from '../../end-points/endpoints';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NoteService extends CrudBaseService<Note, Note, Note, NotePagedRequest> {\r\n\r\n constructor(\r\n protected httpClient: HttpClient,\r\n private dialogDataService: DialogDataService\r\n ) {\r\n super(httpClient, AdministrationSegments.Note)\r\n }\r\n\r\n override getAllPaged(model: NotePagedRequest): Observable<any> {\r\n model.RowUid = this.dialogDataService.getData().id;\r\n model.ClassName = this.dialogDataService.getData().class;\r\n return super.getAllPaged(model);\r\n }\r\n\r\n getAlertNotes(itemKey: string, className: string): Observable<NotesGroupedByUserResponse[]> {\r\n const body = {\r\n RowUid: itemKey,\r\n ClassName: className\r\n }\r\n return this._httpClient.post<NotesGroupedByUserResponse[]>(`${Segment.base}/${this.endpoint}/get-all-by-user-grouped`, body);\r\n }\r\n\r\n \r\n}\r\n\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport {\r\n AfterContentChecked,\r\n ChangeDetectorRef,\r\n Component,\r\n EnvironmentInjector,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { BehaviorSubject, firstValueFrom } from 'rxjs';\r\nimport { ButtonType } from '../../enums/button-type.enum';\r\nimport { TsiGenericGridComponent } from '../output-components/tsi-generic-grid/tsi-generic-grid.component';\r\nimport { TsiFormModalFooterComponent } from '../tsi-form-modal-footer/tsi-form-modal-footer.component';\r\nimport { TsiNotesAvertirComponent } from '../tsi-notes-avertir/tsi-notes-avertir.component';\r\nimport { TsiPopupTextViewerComponent } from '../tsi-popup-text-viewer/tsi-popup-text-viewer.component';\r\nimport { TooltipPosition } from '../../enums/tooltipPosition.enum';\r\nimport { entityInfo } from '../../models/entity-info/entity-info';\r\nimport { ButtonClickResult, GridColumn, IGridConfiguration, IModalSize, IPage, IPagedRequest, IPagedResponse } from '../../interfaces';\r\nimport { CrudBaseService } from '../../services/base/crud-base.service';\r\nimport { PresentationSetting } from '../../models/presentation-settings/presentation-settings';\r\nimport { EventSchema, GetWorkflowInstanceInformationRequest, SearchField, workflowInstanceInformationResponse } from '../../models';\r\nimport { GridSelectionMode } from '../../enums/grid-selection-mode';\r\nimport { DialogDataService } from '../../services/dialog-data.service';\r\nimport { FichierUploadService } from '../../services/fichier/fichier-upload.service';\r\nimport { RecordInfoPopupService } from '../../services/record-info-popup.service';\r\nimport { WorkflowConfigurationService } from '../../services/workflow/workflow-configuration.service';\r\nimport { EntityConfigurationService } from '../../services/configuration/entity-configuration.service';\r\nimport { Component_Modes, ModalSizeEnum, Modes } from '../../enums';\r\nimport { NotesGroupedByUserResponse } from '../../models/Notes/Note';\r\nimport { LocalizePipe } from '../../pipes/localize.pipe';\r\nimport { openModalUploadGrid, openNotesList } from '../../functions/modal-open.function';\r\nimport { TsiNotificationService } from '../../services/notification/tsi-notification.service';\r\nimport { NoteService } from '../../services/Note/Note.service';\r\nimport { TypeRegistryHelper } from '../../tsi-helpers/type-registry.helper';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { TsiModalService } from '../../services/modal/tsi-modal.service';\r\n\r\n@Component({\r\n selector: 'Tsi-Generic-Crud',\r\n templateUrl: './tsi-generic-crud.component.html',\r\n styleUrls: ['./tsi-generic-crud.component.scss'],\r\n providers: [TsiNotificationService],\r\n}) /*, OnChanges*/\r\nexport class TsiGenericCrudComponent implements OnInit, AfterContentChecked {\r\n //#region local vars\r\n private _dialogRef?: DynamicDialogRef;\r\n private _formEndpoint: string | undefined = undefined;\r\n protected filterIcon = 'pi pi-filter';\r\n protected filterTooltip = 'show_filter';\r\n private _isWorkflowEtatFormLoaded: boolean = false\r\n buttonType = ButtonType;\r\n tooltipPosition = TooltipPosition;\r\n configModeButtonId: string = \"confg-mode-button-from-list\"\r\n savePropertiesButtonClassName = \"confg-mode-button-from-list-save-properties\";\r\n @Input() entityInfo: entityInfo | undefined = undefined\r\n\r\n items?: any[];\r\n\r\n pagedRequest: IPagedRequest = {};\r\n\r\n page: IPage<any> = {\r\n items: [],\r\n pageSize: 10,\r\n pageNumber: 1,\r\n totalCount: 0,\r\n totalPages: 0,\r\n summaries: [],\r\n loading: false,\r\n };\r\n first: number = 0;\r\n rows = 1;\r\n formEndpointBody: string | undefined;\r\n filtersHtmlTemplate?: string = '';\r\n selectedColumns: GridColumn[] = [];\r\n _searchOnInit: boolean = true;\r\n\r\n private _modalData: any;\r\n\r\n @ViewChild(TsiGenericGridComponent) genericGridComponent?: TsiGenericGridComponent;\r\n\r\n //#endregion\r\n\r\n //#region Inputs\r\n @Input() set modalData(value: any) {\r\n this._modalData = value;\r\n }\r\n\r\n @Input() columns: GridColumn[] = [];\r\n @Input() gridConfiguration?: IGridConfiguration;\r\n @Input() cudComponent: any;\r\n @Input() crudService?: CrudBaseService<any, any, any, any>;\r\n @Input() header: string = '';\r\n @Input() modalSize?: IModalSize;\r\n @Input() descriminatorValue?: string\r\n @Input() presentationSettings?: PresentationSetting\r\n @Input() preventAddEvent?: boolean = false\r\n @Input() set formEndpoint(value: string | undefined) {\r\n if (value) {\r\n this._formEndpoint = `${value}/getallpaged`;\r\n }\r\n }\r\n get formEndpoint() {\r\n return this._formEndpoint;\r\n }\r\n\r\n private _formName?: string;\r\n\r\n @Input()\r\n get formName(): string | undefined {\r\n return this._formName;\r\n }\r\n\r\n set formName(value: string | undefined) {\r\n this._formName = value;\r\n // this._cdRef.detectChanges()\r\n }\r\n\r\n private _isSearchButtonDisabled: boolean = false;\r\n @Input() public set isSearchButtonDisabled(value: boolean) {\r\n this._isSearchButtonDisabled = value;\r\n }\r\n\r\n public get isSearchButtonDisabled() {\r\n return this._isSearchButtonDisabled;\r\n }\r\n\r\n // @Input() formName?: string;\r\n @Input() showHeaderFilters: boolean = false;\r\n @Input() showEditButton: boolean = true;\r\n @Input() showDeleteButton: boolean = true;\r\n @Input() showAddButton: boolean = true;\r\n @Input() showConsultButton: boolean = false;\r\n @Input() showUploadButton: boolean = true;\r\n @Input() showNoteButton: boolean = true;\r\n @Input() showDownloadButton: boolean = false;\r\n @Input() showInfoButton: boolean = true;\r\n @Input() showSearchField: boolean = true;\r\n @Input() searchFields: SearchField[] | undefined;\r\n @Input() showCalenderView: boolean = false;\r\n @Input() calenderSchema: EventSchema | undefined;\r\n @Input() showCardView: boolean = false;\r\n @Input() showKanbanView: boolean = false;\r\n @Input() showDuplicateButton: boolean = true;\r\n\r\n //grid selection\r\n @Input() selectKeyOnly: boolean = true;\r\n @Input() selectionMode: GridSelectionMode = GridSelectionMode.None;\r\n @Input() selectedItems: Array<any> = [];\r\n @Input() key: string = 'uid';\r\n @Input() id?: string;\r\n\r\n _businessClass: string | undefined;\r\n @Input() get businessClass() {\r\n return this._businessClass;\r\n }\r\n\r\n set businessClass(value: string | undefined) {\r\n this._businessClass = value;\r\n if (this._businessClass) {\r\n this.getWorkflowEtatFormForCurrentBusinessClass();\r\n\r\n }\r\n }\r\n @Input() set searchOnInit(value: boolean) {\r\n if (value == undefined || value == null) {\r\n this._searchOnInit = true;\r\n } else {\r\n this._searchOnInit = value;\r\n }\r\n }\r\n get searchOnInit() {\r\n return this._searchOnInit;\r\n }\r\n\r\n\r\n @Input() showGlobalSearch: boolean = true;\r\n @Input() showExportButton: boolean = true;\r\n @Input() showReporting: boolean = true;\r\n\r\n //#endregion\r\n\r\n //#region Outputs\r\n @Output() selectedItemsChange: EventEmitter<Array<any>> = new EventEmitter<\r\n Array<any>\r\n >();\r\n @Output() searchFieldsValueChanged: EventEmitter<Array<SearchField>> =\r\n new EventEmitter<Array<SearchField>>();\r\n @Output() buttonColumnClicked: EventEmitter<ButtonClickResult> =\r\n new EventEmitter<ButtonClickResult>();\r\n //#endregion Outputs\r\n\r\n clickCount = 1;\r\n currentIcon = \"pi pi-align-justify\";\r\n currentTooltip = \"shared_tsi_component_grid_list_view\";\r\n\r\n viewOptions: MenuItem[] = [];\r\n\r\n page$ = new BehaviorSubject<any>(null);\r\n\r\n constructor(\r\n private _messageService: TsiNotificationService,\r\n private _tsiModalService: TsiModalService,\r\n private _cdRef: ChangeDetectorRef,\r\n private localize: LocalizePipe,\r\n private dialogDataService: DialogDataService,\r\n private fichierService: FichierUploadService,\r\n private recordInfoPopupService: RecordInfoPopupService,\r\n private _workflowConfigurationService: WorkflowConfigurationService,\r\n private _entityConfigService: EntityConfigurationService,\r\n private notesService: NoteService,\r\n private _injector : EnvironmentInjector\r\n ) { }\r\n\r\n ngAfterContentChecked(): void {\r\n this._cdRef.detectChanges();\r\n }\r\n\r\n // #region grid state\r\n\r\n getState() {\r\n if (this.genericGridComponent) {\r\n return this.genericGridComponent.getState();\r\n }\r\n return null\r\n }\r\n\r\n restoreState(configuration: string) {\r\n if (this.genericGridComponent) {\r\n this.genericGridComponent.restoreState(configuration);\r\n }\r\n }\r\n\r\n resetSelectedColumns(configuration: string) {\r\n if (this.genericGridComponent) {\r\n this.genericGridComponent.resetSelectedColumns(configuration);\r\n }\r\n }\r\n\r\n // #endregion\r\n\r\n // ngOnChanges(changes: SimpleChanges): void {\r\n // }\r\n\r\n // ngAfterContentChecked(): void {\r\n // this._cdRef.detectChanges();\r\n // }\r\n\r\n async getWorkflowEtatFormForCurrentBusinessClass() {\r\n if (this.businessClass && !this._isWorkflowEtatFormLoaded) {\r\n this._isWorkflowEtatFormLoaded = true\r\n try {\r\n const result = await firstValueFrom(this._workflowConfigurationService.getWorkflowEtatFormByClassName(this.businessClass));\r\n console.log(result);\r\n this._workflowConfigurationService.workflowEtatFormForCurrentForm = result\r\n } catch (error) {\r\n console.error('Error fetching workflow state form:', error);\r\n }\r\n }\r\n }\r\n\r\n\r\n async getWorkflowEntityInformation(businessClass: string, uidObject?: string) {\r\n let result: workflowInstanceInformationResponse | undefined = undefined\r\n try {\r\n let request: GetWorkflowInstanceInformationRequest = new GetWorkflowInstanceInformationRequest();\r\n request.className = businessClass\r\n request.uidObjet = uidObject;\r\n request.discriminatorClassName = this.entityInfo?.discriminatorClassName\r\n request.discriminatorPropertyName = this.entityInfo?.discriminatorPropertyName\r\n request.discriminatorValue = this.descriminatorValue\r\n result = await firstValueFrom(this._workflowConfigurationService.getCurrentEntityWorklfowInstanceInformation(request))\r\n // if (result) {\r\n // let workflowEtatForm = this._workflowConfigurationService.workflowEtatFormForCurrentForm\r\n // ?.find(x => x.uid == result?.workflowEtat)\r\n // if (workflowEtatForm) {\r\n // // this._workflowConfigurationService.workflowEtatForForCurrentEntityForm =\r\n // // this._workflowConfigurationService.mapWorkflowEtatFormToPresentationSetting(workflowEtatForm.workflowEtatsForms)\r\n // }\r\n // }\r\n }\r\n catch (error) {\r\n console.error(error)\r\n }\r\n return result\r\n }\r\n\r\n\r\n searchFieldValueChanges(newSearchFieldValues: Array<SearchField>) {\r\n this.searchFieldsValueChanged.emit(newSearchFieldValues);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.showHeaderFilters === true) {\r\n this.filterTooltip = 'hide_filter';\r\n this.filterIcon = 'pi pi-filter-slash';\r\n } else {\r\n this.filterTooltip = 'show_filter';\r\n this.filterIcon = 'pi pi-filter';\r\n }\r\n if (this.columns == null && this.columns == undefined) {\r\n throw new Error(\r\n 'columns cant be null or undefined, developper must set columns of grid !'\r\n );\r\n }\r\n\r\n this.selectedColumns = [...this.columns];\r\n\r\n if (this.showInfoButton == true) {\r\n this.selectedColumns = [\r\n {\r\n header: 'shared_actions_info',\r\n field: 'info',\r\n isButton: true,\r\n buttonIcon: 'pi pi-info',\r\n styleClass: 'p-button-text hover:shadow-8',\r\n isFrozen: true,\r\n order: 3,\r\n toolTipText: 'shared_actions_info',\r\n },\r\n ...this.selectedColumns,\r\n ];\r\n }\r\n\r\n if (this.showDownloadButton == true) {\r\n this.selectedColumns = [\r\n {\r\n header: 'shared_actions_download',\r\n field: 'download',\r\n isButton: true,\r\n buttonIcon: 'pi pi-download',\r\n styleClass: 'p-button-text hover:shadow-8',\r\n isFrozen: true,\r\n order: 2,\r\n toolTipText: 'Télécharger',\r\n },\r\n ...this.selectedColumns,\r\n ];\r\n }\r\n\r\n if (this.showUploadButton == true) {\r\n this.selectedColumns = [\r\n {\r\n header: 'shared_actions_attachment',\r\n field: 'upload',\r\n isButton: true,\r\n buttonIcon: 'pi pi-paperclip',\r\n styleClass: 'p-button-text hover:shadow-8',\r\n isFrozen: true,\r\n order: 4,\r\n toolTipText: 'shared_actions_attachment',\r\n },\r\n ...this.selectedColumns,\r\n ];\r\n }\r\n if (this.showNoteButton) {\r\n this.selectedColumns = [\r\n {\r\n header: 'shared_actions_notes',\r\n field: 'notes',\r\n isButton: true,\r\n buttonIcon: 'pi pi-comment',\r\n styleClass: 'p-button-text hover:shadow-8',\r\n isFrozen: true,\r\n order: 5,\r\n toolTipText: 'shared_actions_notes',\r\n },\r\n ...this.selectedColumns,\r\n ];\r\n }\r\n\r\n if (this.showDeleteButton == true) {\r\n this.selectedColumns = [\r\n {\r\n header: 'shared_actions_delete',\r\n field: 'delete',\r\n isButton: true,\r\n buttonIcon: 'pi pi-trash',\r\n styleClass: 'p-button-text hover:shadow-8 p-button-danger',\r\n isFrozen: true,\r\n order: 1,\r\n toolTipText: 'Delete',\r\n buttonType: ButtonType.Submit,\r\n },\r\n ...this.selectedColumns,\r\n ];\r\n }\r\n\r\n if (this.showEditButton == true) {\r\n this.selectedColumns = [\r\n {\r\n header: 'shared_actions_edit',\r\n field: 'edit',\r\n isButton: true,\r\n buttonIcon: 'pi pi-pencil',\r\n styleClass: 'p-button-text hover:shadow-8',\r\n isFrozen: true,\r\n order: 6,\r\n toolTipText: 'shared_actions_edit',\r\n buttonType: ButtonType.Submit,\r\n },\r\n ...this.selectedColumns,\r\n ];\r\n }\r\n\r\n if (this.showConsultButton == true) {\r\n this.selectedColumns = [\r\n {\r\n header: 'shared_actions_consult',\r\n field: 'consult',\r\n isButton: true,\r\n buttonIcon: 'pi pi-eye',\r\n styleClass: 'p-button-text hover:shadow-8',\r\n isFrozen: true,\r\n order: 0,\r\n toolTipText: 'Consulter',\r\n },\r\n ...this.selectedColumns,\r\n ];\r\n }\r\n\r\n if (this.showDuplicateButton == true) {\r\n this.selectedColumns = [\r\n {\r\n header: 'shared_actions_duplicate',\r\n field: 'duplicate',\r\n isButton: true,\r\n buttonIcon: 'pi pi-clone',\r\n styleClass: 'p-button-text hover:shadow-8',\r\n isFrozen: true,\r\n order: 7,\r\n toolTipText: 'Dupliquer',\r\n },\r\n ...this.selectedColumns,\r\n ];\r\n }\r\n\r\n this.selectedColumns = [\r\n ...this.selectedColumns\r\n .filter(col => col.order !== undefined)\r\n .sort((a, b) => a.order! - b.order!),\r\n ...this.selectedColumns.filter(col => col.order === undefined),\r\n ];\r\n\r\n\r\n this.selectedColumns.map(\r\n (column) =>\r\n (column.translatedHeader = column.header\r\n ? this.localize.transform(column.header)\r\n : column.header)\r\n );\r\n\r\n this.viewOptions = [\r\n {\r\n label: this.localize.transform('shared_tsi_component_grid_list_view'),\r\n icon: 'pi pi-align-justify',\r\n command: () => this.toggleListView()\r\n },\r\n {\r\n label: this.localize.transform(\"shared_tsi_component_grid_calender_view\"),\r\n icon: 'pi pi-calendar',\r\n command: () => this.toggleCalenderView()\r\n },\r\n {\r\n label: this.localize.transform('shared_tsi_component_grid_card_view'),\r\n icon: 'pi pi-id-card',\r\n command: () => this.toggleCardView()\r\n },\r\n {\r\n label: this.localize.transform('shared_tsi_component_grid_kanban_view'),\r\n icon: 'pi pi-th-large',\r\n command: () => this.toggleKanbanView()\r\n }\r\n ];\r\n\r\n\r\n this._initModels();\r\n }\r\n\r\n /* toggleHeaderFilters(){\r\n if(this.showHeaderFilters === true){\r\n this.showHeaderFilters = false;\r\n this.filterIcon = \"pi pi-filter\";\r\n this.filterTooltip = \"show_filter\";\r\n }\r\n else { //this.showHeaderFilters === false\r\n this.showHeaderFilters = true;\r\n this.filterIcon = \"pi pi-filter-slash\";\r\n this.filterTooltip = \"hide_filter\";\r\n\r\n }\r\n } */\r\n\r\n isLastPage(): boolean {\r\n return this.page\r\n ? this.page.pageNumber === this.page.totalCount - this.page.pageSize\r\n : true;\r\n }\r\n\r\n isFirstPage(): boolean {\r\n return this.page ? this.page.pageNumber === 0 : true;\r\n }\r\n\r\n /**\r\n * LazyLoad\r\n */\r\n //first ==> page.pageNumber\r\n //rows ==> page.pageSize\r\n //this.page.items.length ==> total count\r\n\r\n openNew() {\r\n if (!this.preventAddEvent) {\r\n this._openModal(Component_Modes.CREATE, null, this._modalData);\r\n }\r\n this.buttonColumnClicked.emit({\r\n key: undefined,\r\n field: 'add',\r\n selectKeyOnly: this.selectKeyOnly,\r\n });\r\n }\r\n\r\n async handleButtonColumnClicked(event: ButtonClickResult) {\r\n\r\n let itemKey: any = event.selectKeyOnly ? event.key : event.key[this.key];\r\n\r\n // TODO @MedAli to be fixed\r\n // const excluded = [BusinessClassNames.Notes, BusinessClassNames.Fichier];\r\n\r\n const excluded = [\"Notes\" , \"Fichier\"];\r\n if (this.businessClass && !excluded.includes(this.businessClass)) {\r\n this.dialogDataService.setData({ id: itemKey, class: this.businessClass });\r\n }\r\n\r\n if (event.field == 'edit') {\r\n this._editRow(itemKey);\r\n } else if (event.field == 'delete') {\r\n this._deleteRow(itemKey);\r\n } else if (event.field == 'consult') {\r\n this._consultRow(itemKey);\r\n } else if (event.field == 'duplicate') {\r\n if (!this.businessClass) {\r\n throw Error(\"Bussiness class is not defined !\");\r\n }\r\n this._duplicateRow(itemKey);\r\n\r\n } else if (event.field == 'upload') {\r\n const conf = {\r\n data: {},\r\n styleClass: '',\r\n width: this.modalSize!.width,\r\n height: this.modalSize!.height,\r\n maximizable: true,\r\n }\r\n const ref = await openModalUploadGrid(this._injector, conf)\r\n\r\n ref.onClose.subscribe((val?: any) => this._closeModal(val));\r\n } else if (event.field == 'notes') {\r\n \r\n const ref = await openNotesList(this._injector);\r\n\r\n ref.onClose.subscribe((val?: any) => this._closeModal(val));\r\n } else if (event.field == 'download') {\r\n \r\n this.fichierService.getById(itemKey).subscribe(\r\n (data) => {\r\n this.saveFile(data.contenu, data.nomFichierComplet!);\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n\r\n } else if (event.field == 'info') {\r\n //console.log(\"event info \", this.businessClass, itemKey)\r\n\r\n this.recordInfoPopupService\r\n .getInfo(this.businessClass!, itemKey)\r\n .subscribe(\r\n (data) => {\r\n //console.log(\"info data >>>>\",data);\r\n //console.log(\"info itemkey >>>>\",itemKey);\r\n let modalSize = ModalSizeEnum.ExtraLarge;\r\n let text =\r\n 'UID : ' +\r\n itemKey +\r\n '<BR>Created by : ' +\r\n data.creationUser +\r\n '<BR>Modified by : ' +\r\n data.modifUser +\r\n '<BR>Created on : ' +\r\n data.dateSaisie +\r\n '<BR>Modified on : ' +\r\n data.dateModif;\r\n let conf: DynamicDialogConfig = {\r\n data: {\r\n Uid: itemKey,\r\n creationUser: data.creationUser,\r\n modifUser: data.modifUser,\r\n dateSaisie: data.dateSaisie,\r\n dateModif: data.dateModif,\r\n },\r\n maximizable: true,\r\n width: '90rem',\r\n height: '80rem',\r\n };\r\n\r\n this._dialogRef = this._tsiModalService.open(\r\n TsiPopupTextViewerComponent,\r\n conf\r\n );\r\n this._dialogRef.onClose.subscribe((val?: any) =>\r\n this._closeModal(val)\r\n );\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n } else {\r\n this.buttonColumnClicked.emit({\r\n key: event.key,\r\n field: event.field,\r\n selectKeyOnly: this.selectKeyOnly,\r\n });\r\n }\r\n }\r\n\r\n saveFile(base64Data: any, fileName: string) {\r\n const byteCharacters = atob(base64Data);\r\n const byteNumbers = new Array(byteCharacters.length);\r\n for (let i = 0; i < byteCharacters.length; i++) {\r\n byteNumbers[i] = byteCharacters.charCodeAt(i);\r\n }\r\n const byteArray = new Uint8Array(byteNumbers);\r\n const blob = new Blob([byteArray], { type: 'application/octet-stream' });\r\n\r\n const url = window.URL.createObjectURL(blob);\r\n\r\n const a = document.createElement('a');\r\n document.body.appendChild(a);\r\n a.style.display = 'none';\r\n a.href = url;\r\n a.download = fileName;\r\n a.click();\r\n\r\n window.URL.revokeObjectURL(url);\r\n }\r\n\r\n load(event: { request: IPagedRequest; isForCalendar: boolean }) {\r\n this.pagedRequest = event.request;\r\n this._setformEndpointBody();\r\n this._loadDS(event.isForCalendar);\r\n }\r\n\r\n onSelectedItemsChange(event: any): void {\r\n this.selectedItemsChange.emit(this.selectedItems);\r\n }\r\n\r\n //#region private methods\r\n private _setformEndpointBody(): void {\r\n let ox: any = this._clonePagedRequest(this.pagedRequest);\r\n ox['getAllData'] = true;\r\n this.formEndpointBody = JSON.stringify(ox);\r\n }\r\n\r\n private _initModels() {\r\n this.page = {\r\n items: [],\r\n pageSize: 10,\r\n pageNumber: 1,\r\n totalCount: 0,\r\n totalPages: 0,\r\n summaries: [],\r\n loading: false,\r\n };\r\n this.pagedRequest = {\r\n maxResultCount: 10,\r\n skipCount: 0,\r\n sorting: [],\r\n keyword: '',\r\n filters: [],\r\n getAllData: false,\r\n summaries: [],\r\n };\r\n }\r\n\r\n private _loadDS(isForCalender: boolean = false) {\r\n\r\n this.page.loading = true;\r\n this.page$.next(this.page);\r\n this.pagedRequest = {\r\n ...this.pagedRequest,\r\n getAllData: isForCalender,\r\n };\r\n \r\n if (this.crudService != null && this.crudService != undefined) {\r\n\r\n this.crudService.getAllPaged(this.pagedRequest).subscribe({\r\n next: (value: IPagedResponse<any>) => {\r\n if (value) {\r\n this.page.items = value.items;\r\n this.page.totalCount = value.totalCount;\r\n this.page.summaries = value.summaries ? value.summaries : [];\r\n this.page.totalPages =\r\n (this.page.totalCount -\r\n (this.page.totalCount % this.page.pageSize)) /\r\n this.page.pageSize +\r\n 1;\r\n }\r\n this.page.loading = false;\r\n this.page$.next(value);\r\n },\r\n error: (error: HttpErrorResponse) => {\r\n this._messageService.error(error.message);\r\n this.page.loading = false;\r\n },\r\n });\r\n }\r\n }\r\n\r\n private _editRow(itemKey: any) {\r\n this._handleActionWithAlertCheck(Component_Modes.EDIT, itemKey);\r\n }\r\n\r\n private _deleteRow(itemKey: any) {\r\n this._handleActionWithAlertCheck(Component_Modes.DELETE, itemKey);\r\n }\r\n\r\n private _consultRow(itemKey: any) {\r\n this._handleActionWithAlertCheck(Component_Modes.CONSULT, itemKey);\r\n }\r\n private _duplicateRow(itemKey: any) {\r\n this._handleActionWithAlertCheck(Component_Modes.DUPLICATE, itemKey);\r\n }\r\n\r\n\r\n private async _openModal(mode: string, itemKey: any, data: any) {\r\n this.crudService!.isDuplicate = mode === Modes.duplicate;\r\n let workflowEntityInformation : workflowInstanceInformationResponse | undefined = undefined\r\n\r\n if (this.businessClass) {\r\n this.entityInfo = await this._entityConfigService.getEntityInfoFromCache(this.businessClass)\r\n workflowEntityInformation = await this.getWorkflowEntityInformation(this.businessClass, itemKey);\r\n }\r\n\r\n let conf: DynamicDialogConfig;\r\n\r\n if (this.modalSize != null && this.modalSize != undefined) {\r\n conf = {\r\n data: { id: itemKey, mode: mode, customData: data, workflowInformation: workflowEntityInformation, entityInfo: this.entityInfo },\r\n styleClass: '',\r\n width: this.modalSize.width,\r\n height: this.modalSize.height,\r\n maximizable: true,\r\n templates: {\r\n footer: TsiFormModalFooterComponent,\r\n }\r\n };\r\n } else {\r\n conf = {\r\n data: { id: itemKey, mode: mode, customData: data, workflowInformation: workflowEntityInformation },\r\n maximizable: true,\r\n };\r\n }\r\n\r\n // conf.data = {\r\n // ...conf.data,\r\n // // cudComponent: this.cudComponent\r\n // }\r\n\r\n console.log(\"from generic-crud => \",conf)\r\n\r\n if(typeof this.cudComponent == 'string'){\r\n this.cudComponent = TypeRegistryHelper.getType(this.cudComponent);\r\n }\r\n\r\n this._dialogRef = this._tsiModalService.open(this.cudComponent, conf);\r\n\r\n this._dialogRef.onClose.subscribe((val?: any) => this._closeModal(val));\r\n }\r\n\r\n private _closeModal(val?: any): void {\r\n if (val === true) {\r\n this._loadDS();\r\n }\r\n this._dialogRef?.destroy();\r\n }\r\n\r\n private _clonePagedRequest(request: IPagedRequest): IPagedRequest {\r\n let clone: IPagedRequest = {\r\n maxResultCount: request.maxResultCount,\r\n skipCount: request.skipCount,\r\n sorting: request.sorting,\r\n keyword: request.keyword,\r\n filters: request.filters,\r\n getAllData: request.getAllData,\r\n summaries: request.summaries,\r\n };\r\n return clone;\r\n }\r\n\r\n refresh(data: any) {\r\n if (data == true) {\r\n this._loadDS();\r\n }\r\n }\r\n //#endregion\r\n\r\n displaySearchFields() {\r\n this.showSearchField = !this.showSearchField;\r\n }\r\n\r\n //#region calender\r\n handleCalendarEventClick(item: any) {\r\n switch (item.mode) {\r\n case Component_Modes.CONSULT:\r\n this._consultRow(item.id);\r\n break;\r\n case Component_Modes.CREATE:\r\n this._openModal(Component_Modes.CREATE, null, item.dateDebut);\r\n break;\r\n case Component_Modes.EDIT:\r\n this._editRow(item.id);\r\n break;\r\n case Component_Modes.DUPLICATE:\r\n // todo\r\n break;\r\n }\r\n }\r\n\r\n private toggleListView() {\r\n this.showCardView = false;\r\n this.showCalenderView = false;\r\n this.showKanbanView = false;\r\n this._loadDS();\r\n this.currentIcon = \"pi pi-align-justify\";\r\n this.currentTooltip = \"shared_tsi_component_grid_list_view\";\r\n }\r\n\r\n private toggleCalenderView() {\r\n this.showCalenderView = !this.showCalenderView;\r\n this.showCardView = false;\r\n this.showKanbanView = false;\r\n this._loadDS(this.showCalenderView);\r\n this.currentIcon = \"pi pi-calendar\";\r\n this.currentTooltip = \"shared_tsi_component_grid_calender_view\";\r\n }\r\n\r\n private toggleCardView() {\r\n this.showCardView = !this.showCardView;\r\n this.showCalenderView = false;\r\n this.showKanbanView = false;\r\n // this._loadDS(this.showCardView);\r\n this.currentIcon = \"pi pi-id-card\";\r\n this.currentTooltip = \"shared_tsi_component_grid_card_view\";\r\n }\r\n\r\n private toggleKanbanView() {\r\n this.showKanbanView = !this.showKanbanView;\r\n this.showCardView = false;\r\n this.showCalenderView = false;\r\n this._loadDS();\r\n this.currentIcon = \"pi pi-th-large\";\r\n this.currentTooltip = \"shared_tsi_component_grid_kanban_view\";\r\n }\r\n //#endregion\r\n\r\n @HostListener('window:keydown', ['$event'])\r\n handleKeyDown(event: KeyboardEvent) {\r\n if (event.key === 'F4') {\r\n event.preventDefault();\r\n this.openNew();\r\n }\r\n }\r\n\r\n handleActionViewClick() {\r\n this.clickCount++;\r\n\r\n switch (this.clickCount) {\r\n case 1:\r\n this.toggleListView();\r\n break;\r\n\r\n case 2:\r\n this.toggleCalenderView();\r\n break;\r\n\r\n case 3:\r\n this.toggleCardView();\r\n break;\r\n\r\n case 4:\r\n this.toggleKanbanView();\r\n this.clickCount = 0;\r\n break;\r\n\r\n default:\r\n this.clickCount = 0;\r\n break;\r\n }\r\n }\r\n\r\n\r\n private _handleActionWithAlertCheck(mode: Component_Modes, itemKey: any) {\r\n // TODO @MedAli to be fixed\r\n if (this.businessClass && this.businessClass !== \"Notes\") {\r\n this.notesService.getAlertNotes(itemKey, this.businessClass).subscribe({\r\n next: (response: NotesGroupedByUserResponse[]) => {\r\n if (!response || response.length === 0) {\r\n this._openModal(mode, itemKey, this._modalData);\r\n }\r\n else {\r\n const ref = this._tsiModalService.open(TsiNotesAvertirComponent, {\r\n data: { groupedNotes: response },\r\n styleClass: '',\r\n width: ModalSizeEnum.Small.width,\r\n height: ModalSizeEnum.Small.height,\r\n maximizable: true,\r\n });\r\n\r\n ref.onClose.subscribe((val?: any) => {\r\n this._closeModal(val);\r\n this._openModal(mode, itemKey, this._modalData);\r\n });\r\n }\r\n },\r\n error: (err) => {\r\n console.error('Error loading notes for alert', err);\r\n this._openModal(mode, itemKey, this._modalData);\r\n }\r\n });\r\n }\r\n else {\r\n this._openModal(mode, itemKey, this._modalData);\r\n }\r\n }\r\n\r\n onStatusFilterChanged(evt:any){\r\n console.log(evt)\r\n }\r\n\r\n\r\n}\r\n","<div class=\"card\" >\r\n \r\n <p-toolbar styleClass=\"border-radius-7 mb-1 flex align-items-center gap-2 no-pad\" \r\n *ngIf=\"(showAddButton || searchFields || formEndpoint || businessClass) && showReporting\">\r\n\r\n <ng-template pTemplate=\"left\">\r\n <div class=\"flex gap-2 mx-2\">\r\n <div *ngIf=\"showAddButton\" presentationDesignerBase=\"add_button\">\r\n <Tsi-Button icon=\"pi pi-plus\" \r\n [tooltipPosition]=\"tooltipPosition.Top\" \r\n tooltipText=\"shared_tsi_component_add_view\" \r\n styleClass=\"p-button-success hover:shadow-6 h-2rem p-button-icon-only\" \r\n (click)=\"openNew()\">\r\n </Tsi-Button>\r\n </div>\r\n <div *ngIf=\"searchFields\" presentationDesignerBase=\"show_search_fields_button\">\r\n <Tsi-Button icon=\"pi pi-sliders-h\"\r\n [tooltipPosition]=\"tooltipPosition.Top\"\r\n tooltipText=\"shared_tsi_component_menu\"\r\n styleClass=\"h-2rem p-button-icon-only hover:shadow-6 {{ showSearchField ? 'p-button-secondary' : 'p-button-success' }}\"\r\n (click)=\"displaySearchFields()\">\r\n </Tsi-Button>\r\n </div>\r\n\r\n <div presentationDesignerBase=\"toggle_actions_view_button\">\r\n <p-splitButton\r\n [icon]=\"currentIcon\"\r\n [model]=\"viewOptions\"\r\n (onClick)=\"handleActionViewClick()\"\r\n [tooltip]=\"currentTooltip | localize\"\r\n class=\"p-button-icon-only p-button-rounded p-button-primary h-2rem hover:shadow-6\"\r\n />\r\n <!-- <Tsi-Button\r\n [icon]=\"currentIcon\"\r\n styleClass=\"p-element p-button-primary h-2rem p-button p-component p-button-icon-only\"\r\n (click)=\"handleActionViewClick()\"\r\n [tooltipPosition]=\"tooltipPosition.Top\"\r\n [tooltipText]=\"currentTooltip | localize\">\r\n </Tsi-Button> -->\r\n </div>\r\n\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"right\">\r\n <app-reporting *ngIf=\"(formEndpoint || businessClass)\" \r\n [formEndpoint]=\"formEndpoint\" \r\n [formName]=\"formName\"\r\n [formEndpointBody]=\"formEndpointBody\" \r\n [isFormEndpointPaged]=\"true\"\r\n [businessClass]=\"businessClass\"\r\n [reportDiscriminator]=\"descriminatorValue\"\r\n (refreshData)=\"refresh($event)\"\r\n [filtersHtmlTemplate]=\"filtersHtmlTemplate\"\r\n [cudComponent]=\"cudComponent\" \r\n [configModeButtonId]=\"configModeButtonId\"\r\n [showNoteButton]=\"false\"\r\n [showInfoButton]=\"false\"\r\n [showUploadButton]=\"false\"\r\n ></app-reporting>\r\n </ng-template>\r\n </p-toolbar>\r\n\r\n <div>\r\n <Tsi-Generic-Grid\r\n [formName]=\"formName\"\r\n [crudService]=\"crudService\"\r\n [showSearchField]=\"showSearchField\"\r\n [searchFields]=\"searchFields\"\r\n [header]=\"header\"\r\n [page]=\"page\"\r\n [pagedRequest]=\"pagedRequest\"\r\n [columns]=\"selectedColumns\"\r\n [showHeaderFilters]=\"showHeaderFilters\"\r\n [(filtersHtmlTemplate)]=\"filtersHtmlTemplate\"\r\n [presentationSettings]=\"presentationSettings\"\r\n (load)=\"load($event)\"\r\n (buttonColumnClicked)=\"handleButtonColumnClicked($event)\"\r\n [selectKeyOnly]=\"selectKeyOnly\"\r\n [selectionMode]=\"selectionMode\"\r\n [key]=\"key\"\r\n [(selectedItems)]=\"selectedItems\"\r\n (selectedItemsChange)=\"onSelectedItemsChange($event)\"\r\n (searchFieldsValueChanged)=\"searchFieldValueChanges($event)\"\r\n [searchOnInit]=\"searchOnInit\"\r\n [showExportButton]=\"showExportButton\"\r\n [showGlobalSearch]=\"showGlobalSearch\"\r\n [isSearchButtonDisabled]=\"isSearchButtonDisabled\"\r\n [showCalenderView]=\"showCalenderView\"\r\n [showCardView]=\"showCardView\"\r\n [showKanbanView]=\"showKanbanView\"\r\n [businessClass]=\"businessClass\"\r\n [calenderSchema]=\"calenderSchema\"\r\n [cudComponent]=\"cudComponent\" \r\n [modalSize]=\"modalSize\" \r\n [id]=\"id\"\r\n [page$]=\"page$\"\r\n [entityInfo]=\"entityInfo\"\r\n (calendarEventClick)=\"handleCalendarEventClick($event)\"\r\n (statusFilterChanged)=\"onStatusFilterChanged($event)\"\r\n ></Tsi-Generic-Grid>\r\n </div>\r\n \r\n</div>\r\n","import { Directive, Optional, ContentChild, ElementRef, Renderer2, ViewContainerRef } from \"@angular/core\";\r\nimport { PresentationSetting } from \"../models\";\r\nimport { PresentationDesignerDirectiveBase } from \"./presentation-designer-base.directive\";\r\nimport { EditableGridComponent } from \"../tsi-components/input-components/editable-grid/editable-grid.component\";\r\nimport { TsiViewGridComponent } from \"../tsi-components/output-components/tsi-view-grid/tsi-view-grid.component\";\r\nimport { TsiGenericGridComponent } from \"../tsi-components/output-components/tsi-generic-grid/tsi-generic-grid.component\";\r\nimport { TsiGenericCrudComponent } from \"../tsi-components/tsi-generic-crud/tsi-generic-crud.component\";\r\nimport { LayoutHelperService } from \"../services/layout/layout-helper.service\";\r\nimport { WorkflowConfigurationService } from \"../services/workflow/workflow-configuration.service\";\r\nimport { PresentationDesignerService } from \"../services/presentation-setting/presentation-designer.service\";\r\n\r\n@Directive({\r\n selector: '[presentationDesigner]'\r\n})\r\nexport class PresentationDesignerDirective extends PresentationDesignerDirectiveBase {\r\n\r\n @ContentChild(EditableGridComponent) editableGridChild!: EditableGridComponent;\r\n\r\n @ContentChild(TsiViewGridComponent) viewGridChild!: TsiViewGridComponent;\r\n\r\n\r\n @ContentChild(TsiGenericGridComponent) genericGridChild!: TsiGenericGridComponent;\r\n\r\n\r\n @ContentChild(TsiGenericCrudComponent) genericCrudChild!: TsiGenericCrudComponent;\r\n\r\n\r\n constructor(\r\n protected override el: ElementRef,\r\n protected override renderer: Renderer2,\r\n protected override viewContainerRef: ViewContainerRef,\r\n protected override _layoutHelperService: LayoutHelperService,\r\n protected override _workflowConfigurationService: WorkflowConfigurationService,\r\n protected _presentationDesignerService: PresentationDesignerService,\r\n // @Optional() public genericCrud: TsiGenericCrudComponent,\r\n // @Optional() public viewGrid: TsiViewGridComponent,\r\n // @Optional() public genericGrid: TsiGenericGridComponent,\r\n // @Optional() public editableGrid: EditableGridComponent\r\n\r\n @Optional() public genericCrud: TsiGenericCrudComponent,\r\n @Optional() public viewGrid: TsiViewGridComponent,\r\n @Optional() public genericGrid: TsiGenericGridComponent,\r\n @Optional() public editableGrid: EditableGridComponent\r\n\r\n ) {\r\n super(el, renderer, viewContainerRef, _layoutHelperService, _workflowConfigurationService, _presentationDesignerService)\r\n\r\n // console.log('>>> presentationDesigner directive initialized on', {\r\n // element: this.el.nativeElement,\r\n // blocName: this.presentationDesigner,\r\n // tagName: this.el.nativeElement.tagName,\r\n // id: this.el.nativeElement.id,\r\n // class: this.el.nativeElement.className\r\n // });\r\n\r\n this.tempTemplateRef = el.nativeElement\r\n this.nexSiblingOfElement = this.el.nativeElement?.nextSibling\r\n this.tempTemplateParentNode = this.el.nativeElement?.parentNode\r\n }\r\n\r\n override ngOnInit(): void {\r\n\r\n if (!this.presentationDesigner) {\r\n\r\n this.presentationDesigner = [\r\n this.genericCrud,\r\n this.viewGrid,\r\n this.genericGrid,\r\n this.genericCrudChild,\r\n this.viewGridChild,\r\n this.genericGridChild,\r\n this.editableGrid,\r\n this.editableGridChild\r\n ].find(x => x)?.id;\r\n\r\n }\r\n //console.log(\"presentationDesigner value => \", this.presentationDesigner);\r\n\r\n if (!this._layoutHelperService.isDesignMode) {\r\n\r\n if (!this.tempTemplateRef) {\r\n this.tempTemplateRef = this.el.nativeElement\r\n }\r\n\r\n if (!this.nexSiblingOfElement) {\r\n this.nexSiblingOfElement = this.el.nativeElement?.nextSibling\r\n }\r\n\r\n if (!this.tempTemplateParentNode) {\r\n this.tempTemplateParentNode = this.el.nativeElement?.parentNode\r\n }\r\n\r\n this.renderer.removeChild(this.el.nativeElement.parentNode, this.el.nativeElement);\r\n }\r\n\r\n this._presentationDesignerService.register(this)\r\n }\r\n\r\n\r\n override ngAfterViewInit(): void {\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._presentationDesignerService.unregister(this)\r\n }\r\n\r\n override disableInputs() {\r\n this.execute(true)\r\n\r\n const tsiComponentsSelectors = ['Tsi-Text-Box', 'Tsi-CheckBox', 'Tsi-Currency-Other-Input',\r\n 'Tsi-Currency-Societe-Input', 'Tsi-Date-Picker', 'Tsi-Decimal-Input',\r\n 'Tsi-File-Manager', 'Tsi-Formula-Box', 'Tsi-Integer', 'Tsi-Radio-Button', 'Tsi-Rate-Input',\r\n 'Tsi-Search-Combo', 'Tsi-Text-Area', 'tsi-time-picker', 'Tsi-Button'\r\n ]\r\n\r\n tsiComponentsSelectors.forEach(selector => {\r\n const elements = this.el.nativeElement.querySelectorAll(selector);\r\n elements.forEach((el: any) => {\r\n\r\n el?.classList?.add('disabled-input');\r\n el?.setAttribute(\"disabled\", \"\")\r\n if (selector == 'Tsi-Search-Combo') {\r\n }\r\n // else if (selector == 'Tsi-CheckBox') {\r\n // const inputEl = el.querySelector('input[type=\"checkbox\"]') as HTMLInputElement;\r\n // const isChecked = inputEl?.checked;\r\n // console.log('Checked?', isChecked);\r\n // const span = document.createElement('span');\r\n // span.classList.add('tsi-readonly-span');\r\n // span.classList.add('w-full')\r\n // span.classList.add('tsi-readonly-span', 'w-full', 'pi');\r\n // span.classList.add(isChecked ? 'pi-check-square' : 'pi-square');\r\n\r\n // const parent = el.parentNode;\r\n // if (parent) {\r\n // parent.replaceChild(span, el);\r\n // }\r\n // }\r\n // else {\r\n // //const value = el.getAttribute('ng-reflect-model');\r\n\r\n // const inputValue = (el?.getElementsByTagName(\"input\")[0] as HTMLInputElement).value\r\n\r\n // console.log(\"inputValue => \", inputValue)\r\n\r\n // const span = document.createElement('span');\r\n // span.innerText = inputValue ?? '';\r\n // span.classList.add('tsi-readonly-span');\r\n // span.classList.add('w-full')\r\n\r\n // const parent = el.parentNode;\r\n // if (parent) {\r\n // parent.replaceChild(span, el);\r\n // }\r\n // }\r\n });\r\n });\r\n }\r\n\r\n\r\n updateGridConfiguration(configuration?: string) {\r\n if (configuration) {\r\n const componentsToRestore = [\r\n this.editableGridChild,\r\n this.viewGridChild,\r\n this.genericGridChild,\r\n this.genericCrudChild,\r\n this.viewGrid,\r\n this.genericCrud,\r\n this.genericGrid,\r\n this.editableGrid\r\n ];\r\n\r\n componentsToRestore.forEach(component => {\r\n component?.restoreState(configuration);\r\n });\r\n }\r\n\r\n }\r\n\r\n override execute(condition: boolean, configuration?: string) {\r\n if (condition) {\r\n try {\r\n this.renderer.insertBefore(this.tempTemplateParentNode, this.tempTemplateRef, this.nexSiblingOfElement);\r\n } catch (error) {\r\n console.error(error)\r\n }\r\n if (configuration) {\r\n setTimeout(() => {\r\n this.updateGridConfiguration(configuration);\r\n }, 0);\r\n }\r\n }\r\n else {\r\n this.renderer.removeChild(this.el.nativeElement.parentNode, this.el.nativeElement);\r\n }\r\n this.treated = true\r\n }\r\n\r\n\r\n\r\n selectApproriateColumns(presentationSetting: PresentationSetting) {\r\n let configuration = presentationSetting?.presentationSettingDetails\r\n .find(x => x.blockName == this.presentationDesigner)?.configuration ?? null;\r\n\r\n if (configuration) {\r\n const componentsToReset = [\r\n this.editableGridChild,\r\n this.viewGridChild,\r\n this.genericGridChild,\r\n this.genericCrudChild,\r\n this.viewGrid,\r\n this.genericCrud,\r\n this.genericGrid,\r\n this.editableGrid\r\n ];\r\n\r\n componentsToReset.forEach(component => {\r\n component?.resetSelectedColumns(configuration);\r\n });\r\n }\r\n\r\n }\r\n}","import { AfterContentInit, ContentChildren, Directive, ElementRef, HostListener, QueryList, Renderer2 } from '@angular/core';\r\nimport { AbstractControl, FormControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { TsiTextBoxComponent } from '../tsi-components/input-components/tsi-text-box/tsi-text-box.component';\r\nimport { TsiIntegerComponent } from '../tsi-components/input-components/tsi-integer/tsi-integer.component';\r\n\r\n@Directive({\r\n selector: '[validation]',\r\n exportAs: 'validation'\r\n})\r\nexport class ValidationDirective implements AfterContentInit {\r\n\r\n\r\n @ContentChildren(TsiTextBoxComponent) textboxes!: QueryList<TsiTextBoxComponent>;\r\n\r\n @ContentChildren(TsiIntegerComponent) intboxes!: QueryList<TsiIntegerComponent>;\r\n\r\n isFormValid: boolean = false;\r\n\r\n\r\n constructor(private elementRef: ElementRef, private renderer: Renderer2) {}\r\n\r\n ngAfterContentInit(): void {\r\n console.log(this.textboxes);\r\n if (this.textboxes) {\r\n this.textboxes.forEach(textbox => {\r\n if (textbox.myFormControl instanceof FormControl) {\r\n textbox.myFormControl.setValidators([\r\n Validators.required,\r\n Validators.maxLength(textbox.maxLength!)\r\n ]);\r\n textbox.myFormControl.updateValueAndValidity();\r\n textbox.myFormControl.valueChanges.subscribe(() => {\r\n this.isFormValid = this.textboxes.toArray().every(tb => tb.myFormControl.valid);\r\n });\r\n console.log(\"form valid for textboxes\"+this.isFormValid)\r\n } else {\r\n console.log(\"not formControl\")\r\n }\r\n });\r\n }\r\n\r\n if (this.intboxes) {\r\n this.intboxes.forEach(intbox => {\r\n if (intbox.myFormControl instanceof FormControl) {\r\n intbox.myFormControl.setValidators([\r\n Validators.required,\r\n rangeValidator(intbox.minValue!, intbox.maxValue!)\r\n ]);\r\n intbox.myFormControl.updateValueAndValidity();\r\n intbox.myFormControl.valueChanges.subscribe(() => {\r\n this.isFormValid = this.intboxes.toArray().every(tb => tb.myFormControl.valid);\r\n });\r\n console.log(\"form valid for intboxes\"+this.isFormValid)\r\n } else {\r\n console.log(\"not formControl\")\r\n }\r\n });\r\n }\r\n\r\n }\r\n}\r\n\r\nexport function rangeValidator(min: number, max: number) {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const value = control.value;\r\n\r\n if (isNaN(value) || value < min || value > max) {\r\n return { range: true };\r\n }\r\n\r\n return null;\r\n };\r\n}\r\n\r\n\r\nexport function lengthValidator(minValue: number): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: any } | null => {\r\n const value = control.value.length;\r\n\r\n if (isNaN(value) || value < minValue) {\r\n return { 'length': true }; \r\n }\r\n\r\n return null;\r\n };\r\n}\r\n","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[adHost]'\r\n})\r\nexport class AdDirective {\r\n\r\n constructor(public viewContainerRef: ViewContainerRef) { }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\nimport { executeImportResult } from '../../models/import-export/import-export';\r\n\r\n@Component({\r\n selector: 'app-alert-import-message',\r\n templateUrl: './alert-import-message.component.html',\r\n styleUrls: ['./alert-import-message.component.scss']\r\n})\r\nexport class AlertImportMessageComponent {\r\n\r\n executeImportResult ?: executeImportResult\r\n\r\n constructor(\r\n private config : DynamicDialogConfig,\r\n ){\r\n this.executeImportResult = config.data?.executeImportResult\r\n\r\n console.log(this.executeImportResult)\r\n }\r\n\r\n}\r\n","<div>\r\n <h3 [innerHTML]=\"'shared_execute_import_result_title' | localize\" ></h3>\r\n\r\n <div>\r\n <h6>{{ 'shared_execute_import_result_total_number_of_rows' | localize }}: {{ executeImportResult?.totalLinesNumber }}</h6>\r\n <h6>{{ 'shared_execute_import_result_number_of_added_rows' | localize }}: {{ executeImportResult?.numberOfAddedRows }}</h6>\r\n <h6>{{ 'shared_execute_import_result_number_of_unused_rows' | localize }}: {{ executeImportResult?.numberOfUnusedRows }}</h6>\r\n \r\n <div *ngIf=\"executeImportResult?.errorsMessages && executeImportResult?.errorsMessages!.length > 0\">\r\n <h5 [innerHTML]=\"'shared_execute_import_result_detailled_errors' | localize\"></h5>\r\n <ul *ngFor=\"let message of executeImportResult?.errorsMessages\">\r\n <li [innerHTML]=\"message\"></li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>","export const Themes = {\r\n FLUENT_LIGHT : 'fluent-light',\r\n LARA_LIGHT_INDIGO: 'lara-light-indigo',\r\n}","import { Injectable, Type } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TsiComponentFinderService {\r\n\r\n componentMap = new Map<string, Type<any>>();\r\n\r\n constructor() { }\r\n\r\n registerComponent(selector: string, component: Type<any>) {\r\n this.componentMap.set(selector, component);\r\n }\r\n\r\n findComponent(selector: string): Type<any> | null {\r\n\r\n return this.componentMap.get(selector) || null;\r\n\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { BehaviorSubject, firstValueFrom } from 'rxjs';\r\nimport { AdministrationEndpoints } from '../../end-points/endpoints';\r\n\r\ninterface CurrentUser {\r\n userNameWithPersonnes: string;\r\n affichageAlertes: boolean;\r\n langue: string;\r\n personne: string;\r\n client: string;\r\n fournisseur: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CurrentUserService {\r\n public _currentUser$ = new BehaviorSubject<CurrentUser | null>(null);\r\n private _currentUserLoaded = false;\r\n private _currentUser : CurrentUser | undefined;\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n async loadCurrentUser() {\r\n if (!this._currentUserLoaded) {\r\n try {\r\n this._currentUser = await firstValueFrom(this.http.get<CurrentUser>(AdministrationEndpoints.GetCurrentUserWithRoles()));\r\n this._currentUser$.next(this._currentUser);\r\n this._currentUserLoaded = true; \r\n } catch (err) {\r\n console.error(err);\r\n } \r\n }\r\n return this._currentUser;\r\n }\r\n\r\n get currentUser(): CurrentUser | undefined {\r\n return this._currentUser;\r\n }\r\n\r\n async getPersonne(): Promise<string | null> {\r\n await this.loadCurrentUser();\r\n return this._currentUser?.personne ?? null;\r\n }\r\n\r\n async getClient(): Promise<string | null> {\r\n await this.loadCurrentUser();\r\n return this._currentUser?.client ?? null;\r\n }\r\n\r\n async getFournisseur(): Promise<string | null> {\r\n await this.loadCurrentUser();\r\n return this._currentUser?.fournisseur ?? null;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CrudBaseService } from '../base/crud-base.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { ModeleImportCreateRequest } from '../../models';\r\nimport { ImportExportSegments, ImportExportEndPoints } from '../../end-points';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ModeleImportService extends CrudBaseService<ModeleImportCreateRequest, ModeleImportCreateRequest, ModeleImportCreateRequest, ModeleImportCreateRequest> {\r\n\r\n constructor(protected httpClient: HttpClient) {\r\n super(httpClient, ImportExportSegments.modeleImport)\r\n }\r\n\r\n executeImport(id: string, file: File): Observable<any> {\r\n const formData = new FormData();\r\n const blob = new Blob([file], { type: file.type });\r\n formData.append('formFile', blob, file.name);\r\n return this._httpClient.post(ImportExportEndPoints.executeImport(id), formData);\r\n }\r\n\r\n executeImportJson(fileName: string, classe: string): Observable<any> {\r\n return this._httpClient.get(ImportExportEndPoints.executeImportJsonFromServer(fileName, classe));\r\n }\r\n\r\n deleteImport(codeImport: string, classe: string): Observable<any> {\r\n return this._httpClient.get(ImportExportEndPoints.deleteImport(codeImport, classe));\r\n }\r\n\r\n executeImportWithoutModel(file: File): Observable<any> {\r\n const formData = new FormData();\r\n const blob = new Blob([file], { type: file.type });\r\n formData.append('formFile', blob, file.name);\r\n return this._httpClient.post(ImportExportEndPoints.executeImportWithoutModel(), formData);\r\n }\r\n\r\n executeExport(id: string): Observable<any> {\r\n return this._httpClient.get(ImportExportEndPoints.executeExport(id));\r\n }\r\n\r\n executeExportJson(id: string): Observable<any> {\r\n return this._httpClient.get(ImportExportEndPoints.executeExportJson(id));\r\n }\r\n\r\n executeExportJsonServer(id: string): Observable<any> {\r\n return this._httpClient.get(ImportExportEndPoints.executeExportJsonServer(id));\r\n }\r\n\r\n uploadJsonFile(file: File): Observable<any> {\r\n const formData = new FormData();\r\n const blob = new Blob([file], { type: file.type });\r\n formData.append('jsonFile', blob, file.name);\r\n return this._httpClient.post(ImportExportEndPoints.executeImportJson(), formData);\r\n }\r\n\r\n GetJsonFiles(classe: string): Observable<any> {\r\n return this.httpClient.get<any>(ImportExportEndPoints.getJsonFiles(classe));\r\n }\r\n\r\n GetImportHistory(classe: string): Observable<any> {\r\n return this.httpClient.get<any>(ImportExportEndPoints.getImportHistory(classe));\r\n }\r\n}","import { Injectable, TemplateRef } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { DynamicComponentLoader, ModalOptions } from '../../interfaces/modal/dynamic.component';\r\nimport { BsModalRef } from '../../models';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TsiBsModalService {\r\n //#region Local vars\r\n private _onSave = new Subject<any>();\r\n private _onHide = new Subject<void>();\r\n private _dynamicComponentLoader = new Subject<DynamicComponentLoader>();\r\n //#endregion\r\n\r\n public getMessage(): Observable<DynamicComponentLoader> {\r\n return this._dynamicComponentLoader.asObservable();\r\n }\r\n\r\n public getOnSave(): Observable<any> {\r\n return this._onSave.asObservable();\r\n }\r\n\r\n public onSave(data?: any) {\r\n this._onSave.next(data);\r\n }\r\n\r\n public show(content: string | TemplateRef<any> | any, config?: ModalOptions): BsModalRef {\r\n let message: DynamicComponentLoader = { component: content, configuration: config };\r\n this._dynamicComponentLoader.next(message);\r\n let modalRef: BsModalRef = new BsModalRef(() => { this._onHide.next() });\r\n return modalRef;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\nexport interface ModuleState {\r\n moduleCode: string | undefined;\r\n displayType: string | undefined;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ModuleCodeService {\r\n\r\n private stateSubject = new BehaviorSubject<ModuleState>(\r\n { moduleCode: undefined, displayType: undefined }\r\n );\r\n\r\n public state$: Observable<ModuleState> = this.stateSubject.asObservable();\r\n\r\n getState(): ModuleState {\r\n return this.stateSubject.getValue();\r\n }\r\n\r\n setState(patch: Partial<ModuleState>) {\r\n const next = { ...this.getState(), ...patch };\r\n this.stateSubject.next(next);\r\n }\r\n\r\n setModuleCode(code: string) { \r\n this.setState({ moduleCode: code });\r\n } \r\n setDisplayType(dt: string) {\r\n this.setState({ displayType: dt }); \r\n }\r\n clearModuleCode() { this.setState({ moduleCode: undefined }); }\r\n clearDisplayType() { this.setState({ displayType: undefined }); }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { LocalizePipe } from '../../pipes/localize.pipe';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TsiConfirmationService {\r\n\r\n constructor(private confirmationService: ConfirmationService, private localize: LocalizePipe) { }\r\n confirm(msg: string, title?: string, callback?: (result: boolean, info?: any) => void): void {\r\n let result: boolean = false;\r\n this.confirmationService.confirm({\r\n message: this.localize.transform(msg),\r\n accept: () => {\r\n //Actual logic to perform a confirmation\r\n if (callback != null && callback != undefined) {\r\n callback(true);\r\n }\r\n },\r\n reject: () => {\r\n //Actual logic to perform a confirmation\r\n if (callback != null && callback != undefined) {\r\n callback(false);\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import { Segment } from \"./baseuri\"\r\n\r\nexport const PresentationSettingSegments = {\r\n presentationSetting : \"PresentationSetting\",\r\n byForm : \"byform\",\r\n getAll : \"getAll\"\r\n}\r\n\r\nexport const PresentationSettingEndpoints = {\r\n createPresentationSetting : () => `${Segment.base}/${PresentationSettingSegments.presentationSetting}`,\r\n updatePresentationSetting : (uid : string) => `${Segment.base}/${PresentationSettingSegments.presentationSetting}/${uid}`,\r\n getPresentationSettingByComponentIdentifier : (componentIdentifer : string) => `${Segment.base}/${PresentationSettingSegments.presentationSetting}/${PresentationSettingSegments.byForm}/${componentIdentifer}`,\r\n getAllPresentationSettings : () => `${Segment.base}/${PresentationSettingSegments.presentationSetting}/${PresentationSettingSegments.getAll}`\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { firstValueFrom, Observable } from 'rxjs';\r\nimport { PresentationSetting } from '../../models/presentation-settings/presentation-settings';\r\nimport { PresentationSettingEndpoints } from '../../end-points/presentation-settings-endpoints';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PresentationSettingService {\r\n\r\n presentationSettings: PresentationSetting[] = [];\r\n\r\n constructor(private _http: HttpClient) { }\r\n\r\n createPresentationSetting(presentationSettingRequest: PresentationSetting): Observable<any> {\r\n return this._http.post(PresentationSettingEndpoints.createPresentationSetting(), presentationSettingRequest);\r\n }\r\n\r\n updatePresentationSetting(presentationSettingRequest: PresentationSetting, uid: string): Observable<any> {\r\n return this._http.put(PresentationSettingEndpoints.updatePresentationSetting(uid), presentationSettingRequest);\r\n }\r\n\r\n getPresentationSettingByComponentIdentifier(componentIdentifer: string): Observable<any> {\r\n return this._http.get(PresentationSettingEndpoints.getPresentationSettingByComponentIdentifier(componentIdentifer));\r\n }\r\n\r\n async loadPresentationSettings() {\r\n this.presentationSettings = await firstValueFrom(this._http.get<PresentationSetting[]>(PresentationSettingEndpoints.getAllPresentationSettings()))\r\n }\r\n\r\n getPresentationSettingByComponentIdentifierSync(componentIdentifer: string, descriminatorValue?: string): PresentationSetting | undefined {\r\n const result = descriminatorValue !== undefined\r\n ? this.presentationSettings.find(ps => ps.componentIdentifer === componentIdentifer \r\n && ps.descriminatorValue?.toLowerCase() === descriminatorValue?.toLowerCase())\r\n : this.presentationSettings.find(ps => ps.componentIdentifer === componentIdentifer);\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 ProgressBarHelperService {\r\n\r\n constructor() { }\r\n\r\n /**\r\n * Vérifie que le processName est valide (non vide ou null)\r\n * @returns true si valide, false sinon\r\n */\r\n isProcessNameValid(processName?: string): boolean {\r\n return !!processName && processName.trim() !== '';\r\n }\r\n\r\n /**\r\n * Retourne un processName. Si vide, génère un nom automatiquement.\r\n */\r\n ensureProcessName(processName?: string): string {\r\n return this.isProcessNameValid(processName)\r\n ? processName!.trim()\r\n : `Process_${crypto.randomUUID?.() ?? this.generateFallbackGuid()}`;\r\n }\r\n\r\n /**\r\n * Génère un GUID simple (fallback si crypto.randomUUID non supporté)\r\n */\r\n private generateFallbackGuid(): string {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\r\n const r = Math.random() * 16 | 0;\r\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { CrudBaseService } from '../base/crud-base.service';\r\nimport { Observable } from 'rxjs';\r\nimport { IdentityPlatformEndpoints, IdentityPlatformSegments } from '../../end-points/user-identity-endpoints';\r\nimport { ProgressBarResponse } from '../../models/progress-bar/progress-bar-response';\r\nimport { ProgressBarCreateRequest } from '../../models/progress-bar/progress-bar-create-request';\r\nimport { ProgressBarUpdateRequest } from '../../models/progress-bar/progress-bar-update-request';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProgressBarService extends CrudBaseService<any, any, any, any> {\r\n\r\n constructor(protected httpClient: HttpClient) { \r\n super(httpClient, IdentityPlatformSegments.progressBar)\r\n }\r\n\r\n getByProcessName(processName: string): Observable<ProgressBarResponse> {\r\n return this.httpClient.get<ProgressBarResponse>(IdentityPlatformEndpoints.getProgressBarByProcessName(processName));\r\n }\r\n\r\n createProgressBar(request: ProgressBarCreateRequest): Observable<any> {\r\n alert(request.processName);\r\n return this.httpClient.post(IdentityPlatformEndpoints.createProgressBar(), request);\r\n }\r\n\r\n updateProgressBar(id: string, request: ProgressBarUpdateRequest): Observable<any> {\r\n return this.httpClient.put(IdentityPlatformEndpoints.updateProgressBar(id), request);\r\n }\r\n}\r\n","// keyboard-shortcut.service.ts\r\nimport { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\ninterface KeyCombination {\r\n ctrl: boolean;\r\n keys: string[];\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class KeyboardShortcutService {\r\n private shortcuts = new Subject<string>();\r\n\r\n constructor() {\r\n window.addEventListener('keydown', this.handleKeyDown.bind(this));\r\n }\r\n\r\n private handleKeyDown(event: KeyboardEvent): void {\r\n // Check for Ctrl+Shift+M\r\n if (event.ctrlKey && event.shiftKey && event.key === 'M') {\r\n this.shortcuts.next('open-modal');\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n getShortcut(shortcutName: string) {\r\n return this.shortcuts.asObservable().pipe(\r\n filter(name => name === shortcutName)\r\n );\r\n }\r\n}","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { firstValueFrom, Observable } from 'rxjs';\r\nimport { IdentityPlatformEndpoints } from '../../end-points/user-identity-endpoints';\r\nimport { ProceedLoginRequest } from '../authorization/authorization.service';\r\nimport { LoginResponse } from '../../models/user-identity/login-response';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IdentityPlatformAuthenticationService {\r\n\r\n constructor(private _httpClient: HttpClient) { }\r\n\r\n public logout(reason: string): Observable<any> {\r\n return this._httpClient.post<any>(\r\n IdentityPlatformEndpoints.logout(),\r\n { reason : reason}\r\n );\r\n }\r\n\r\n\r\n public async proceedLoginAsync(proceedLoginRequest: ProceedLoginRequest, userToken?: string): Promise<LoginResponse> {\r\n const headers = new HttpHeaders({\r\n 'Authorization': 'Bearer ' + userToken\r\n });\r\n return firstValueFrom(this._httpClient.post<LoginResponse>(\r\n IdentityPlatformEndpoints.proceedLogin(), proceedLoginRequest,\r\n { headers }\r\n ))\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { CrudBaseService } from '../base/crud-base.service';\r\nimport { IdentityPlatformEndpoints } from '../../end-points/user-identity-endpoints';\r\nimport { TenantDTO } from '../../models/user-identity/tenant';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserIdentityService extends CrudBaseService<any, any, any, any> {\r\n constructor(protected httpClient: HttpClient) {\r\n super(httpClient, IdentityPlatformEndpoints.getCurrentUser());\r\n }\r\n\r\n\r\n\r\n GetCurrentUser(): Observable<any> {\r\n return this.httpClient.get<any>(IdentityPlatformEndpoints.getCurrentUser());\r\n }\r\n\r\n ClearPassword(userUid: string): Observable<any> {\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json'\r\n })\r\n };\r\n const body = { Uid: userUid };\r\n return this.httpClient.post<any>(IdentityPlatformEndpoints.clearPassword(), body, httpOptions);\r\n }\r\n\r\n changePassword(email: string, oldPassword: string, newPassword: string, confirmedNewPassword: string): Observable<any> {\r\n const body = { email: email, OldPassword: oldPassword, NewPassword: newPassword, ConfirmedNewPassword: confirmedNewPassword };\r\n return this.httpClient.post<any>(IdentityPlatformEndpoints.changePasswordInvalid(), body);\r\n }\r\n\r\n getCurrentUserTenants() : Observable<TenantDTO[]> {\r\n return this.httpClient.get<any>(IdentityPlatformEndpoints.getCurrentUserTenants());\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { EndpointInfos } from '../../models/application/configuration/endpoint-infos';\r\nimport { EntityDeleteBehaviorResponse } from '../../models/application/configuration/entity-delete-behavior';\r\nimport { AdministrationEndpoints } from '../../end-points/endpoints';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiExplorerService {\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n public getEndpointsInfos(businessClass: string): Observable<EndpointInfos[]> {\r\n return this.httpClient.get<EndpointInfos[]>(AdministrationEndpoints.getEndpointsInfos(businessClass));\r\n }\r\n\r\n getEntityRelations() {\r\n return this.httpClient.get<EntityDeleteBehaviorResponse[]>(AdministrationEndpoints.getEntityRelations());\r\n }\r\n}","export const IdentityRoutes = {\r\n login : \"account/login\"\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { EnvironmentInjector, inject, Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { firstValueFrom, Observable, Subject } from 'rxjs';\r\nimport { IdentityManagerService } from './identity-manager.service';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { LayoutService } from '../application/app.layout.service';\r\nimport { IdentityPlatformAuthenticationService } from '../UserIdentity/identity-platform-authentication.service';\r\nimport { ModuleCodeService } from '../module-code/module-code.service';\r\nimport { logoutReasonEnum } from '../../enums/logout-reason-enum';\r\nimport { Segment } from '../../end-points';\r\nimport { IdentityRoutes } from '../../routes/identity.routes';\r\nimport { AuthorizationEndpoints } from '../../end-points/authorization-endpoints';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { openLogoutPopupComponent } from '../../functions/modal-open.function';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthorizationService {\r\n\r\n private ipApiUrl = 'https://api64.ipify.org?format=json';\r\n isAuthenticated$ = new Subject<any>();\r\n private jwtHelper = inject(JwtHelperService);\r\n private timeoutInterval: any;\r\n private _dialogRef: DynamicDialogRef | undefined;\r\n \r\n getIsAuthenticated() {\r\n return this.isAuthenticated$.asObservable();\r\n }\r\n\r\n constructor(private httpClient: HttpClient,\r\n public layoutService: LayoutService,\r\n private _injector: EnvironmentInjector,\r\n private _identityPlatformAuthenticationService: IdentityPlatformAuthenticationService,\r\n private _identityManager : IdentityManagerService,\r\n private _moduleCodeService: ModuleCodeService) { }\r\n /** \r\n * Authentication \r\n * \r\n */\r\n\r\n // async login(userLogin : UserLogin): Promise<boolean> {\r\n // let result = await firstValueFrom<SubscriptionResult<LoginResponse>>(this.loginRequest(userLogin));\r\n // return false;\r\n // }\r\n\r\n\r\n // public register(userLoginDTO : UserLogin): Observable<LoginResponse> {\r\n // return this.httpClient.post<LoginResponse>(AuthorizationEndpoints.register(),userLoginDTO);\r\n // }\r\n\r\n // DeleteUnconfirmedUsers(): Observable<any> {\r\n // const httpOptions = {\r\n // headers: new HttpHeaders({\r\n // 'Content-Type': 'application/json'\r\n // })\r\n // };\r\n // const body = null;\r\n // return this.httpClient.post<any>(AuthorizationEndpoints.deleteUnconfirmedUsers(), body, httpOptions);\r\n // }\r\n\r\n // public verifyCode(email: string, code: string): Observable<any> {\r\n // return this.httpClient.post(AuthorizationEndpoints.verifyCode(), { email, code });\r\n // }\r\n\r\n // public resendVerificationCode(email: string): Observable<any> {\r\n // return this.httpClient.post(AuthorizationEndpoints.resendVerificationCode(), { email });\r\n // }\r\n\r\n runLogoutInterval() {\r\n this._identityManager.getAuthToken()\r\n const timeInterval = this.jwtHelper.getTokenExpirationDate(this._identityManager.getAuthToken()!)!.getTime() - new Date().getTime();\r\n this.timeoutInterval = setTimeout(async () => {\r\n let config: DynamicDialogConfig = {\r\n maximizable: false,\r\n showHeader: false,\r\n data: {\r\n logoutReason: logoutReasonEnum.EXPIRED_TOKEN\r\n },\r\n };\r\n this._dialogRef = await openLogoutPopupComponent(this._injector, config);\r\n this._dialogRef.onClose.subscribe({\r\n next: async () => {\r\n await this.logout(logoutReasonEnum.EXPIRED_TOKEN);\r\n },\r\n error: (err) => console.log(err)\r\n })\r\n }, timeInterval);\r\n }\r\n\r\n async logout(reason : logoutReasonEnum) {\r\n await firstValueFrom(this._identityPlatformAuthenticationService.logout(reason));\r\n this._moduleCodeService.clearModuleCode();\r\n this._identityManager.saveRtlMode(\"false\")\r\n this.layoutService.disableRtlMode()\r\n this._identityManager.removeAuthToken();\r\n window.location.href = `${Segment.identityPlatformUrlFront}/${IdentityRoutes.login}?logout=true`;\r\n }\r\n\r\n public getMenuItems(): Observable<any> {\r\n return this.httpClient.get<any>(AuthorizationEndpoints.getMenuItems());\r\n }\r\n\r\n\r\n isAuthenticated(){\r\n let isAuthenticated = this._identityManager.isMyAuthTokenValid();\r\n if(isAuthenticated) {\r\n this.isAuthenticated$.next(true);\r\n } \r\n else {\r\n this.isAuthenticated$.next(false);\r\n }\r\n return isAuthenticated;\r\n }\r\n\r\n /**permissions */\r\n async checkPermission(permission : string): Promise<boolean> {\r\n return await firstValueFrom(this.httpClient.get<any>(AuthorizationEndpoints.checkPermission(permission)) );\r\n }\r\n\r\n\r\n /**\r\n * observables\r\n */\r\n // private loginRequest(userLoginDTO : UserLogin): Observable<any> {\r\n // return this.httpClient.post<any>(AuthorizationEndpoints.login(),userLoginDTO);\r\n // }\r\n\r\n getIpAddress(): Observable<{ ip: string }> {\r\n return this.httpClient.get<{ ip: string }>(this.ipApiUrl);\r\n }\r\n}\r\n\r\nexport class ProceedLoginRequest {\r\n tenantUid: string;\r\n\r\n constructor(tenantUid: string) {\r\n this.tenantUid = tenantUid;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { DynamicComponentLoader } from '../interfaces/modal/dynamic.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ModuleMainParameterService {\r\n //#region properties\r\n private _mainParameterComponentLoader = new Subject<DynamicComponentLoader | undefined>();\r\n //#endregion\r\n\r\n //#region ctor\r\n constructor() { }\r\n //#endregion\r\n\r\n //#region actions\r\n public show(loader: DynamicComponentLoader): void {\r\n this._mainParameterComponentLoader.next(loader);\r\n }\r\n\r\n public hide(): void {\r\n this._mainParameterComponentLoader.next(undefined);\r\n }\r\n\r\n public getLoaderObservable(): Observable<DynamicComponentLoader | undefined> {\r\n return this._mainParameterComponentLoader.asObservable();\r\n }\r\n //#endregion\r\n\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { LayoutService } from '../../services/application/app.layout.service';\r\n\r\n@Component({\r\n selector: 'Tsi-Modal-Header',\r\n templateUrl: './tsi-modal-header.component.html',\r\n styleUrls: ['./tsi-modal-header.component.scss'],\r\n})\r\nexport class TsiModalHeaderComponent implements OnInit, OnDestroy {\r\n //#region Inputs\r\n @Input() inputTitle?: string;\r\n toolbarTemplateHeader?: TemplateRef<any>;\r\n //#endregion\r\n\r\n //#region Outputs\r\n @Output() onCloseClick: EventEmitter<void> = new EventEmitter<void>();\r\n //#endregion\r\n\r\n stylePositionClass = 'left-0';\r\n private layoutDirectionSubscritpion?: Subscription;\r\n\r\n constructor(private _layoutService: LayoutService) {}\r\n\r\n ngOnInit(): void {\r\n this.isRtlModeEnabled();\r\n this.subscribeInRtlModeChange();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.layoutDirectionSubscritpion?.unsubscribe();\r\n }\r\n\r\n isRtlModeEnabled() {\r\n if (this._layoutService.isRtlModeEnabled()) {\r\n this.stylePositionClass = 'right-0';\r\n }\r\n }\r\n\r\n subscribeInRtlModeChange() {\r\n this.layoutDirectionSubscritpion =\r\n this._layoutService.enableRtlModeSubject$.subscribe({\r\n next: (data) => {\r\n if (data && data == true) {\r\n this.stylePositionClass = 'right-0';\r\n } else {\r\n this.stylePositionClass = 'left-0';\r\n }\r\n },\r\n });\r\n }\r\n\r\n hideDialog() {\r\n this.onCloseClick.emit();\r\n }\r\n}\r\n","<p-header class=\"p-dialog-header tsi-modal-header absolute top-0 {{stylePositionClass}} mb-4 pb-0 mx-2\"\r\n (onHide)=\"hideDialog()\">\r\n\r\n <div class=\"header-toolbar\" *ngIf=\"toolbarTemplateHeader\">\r\n <ng-container *ngTemplateOutlet=\"toolbarTemplateHeader; context: { title: inputTitle }\"></ng-container>\r\n </div>\r\n\r\n</p-header>","import { HttpErrorResponse } from '@angular/common/http';\r\nimport {\r\n AfterContentChecked,\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n TemplateRef,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { ReportingComponent } from '../reporting/reporting.component';\r\nimport { TsiModalHeaderComponent } from '../tsi-modal-header/tsi-modal-header.component';\r\nimport { AdministrationEndpoints } from '../../end-points/endpoints';\r\nimport { Modes } from '../../enums';\r\nimport { IModalSize } from '../../interfaces';\r\nimport { OptionalEndpoints, KeyValuePair, workflowInstanceInformationResponse, EntityPropertiesResponse, updateEntityWorkflowInformation } from '../../models';\r\nimport { EntityStatusService } from '../../services/status/entityStatus.service';\r\nimport { TsiConfirmationService } from '../../services/notification/tsi-confirmation.service';\r\nimport { TsiNotificationService } from '../../services/notification/tsi-notification.service';\r\nimport { LayoutHelperService } from '../../services/layout/layout-helper.service';\r\nimport { WorkflowConfigurationService } from '../../services/workflow/workflow-configuration.service';\r\n\r\n@Component({\r\n selector: 'tsi-form',\r\n templateUrl: './tsi-form.component.html',\r\n styleUrls: ['./tsi-form.component.scss'],\r\n})\r\nexport class TsiFormComponent implements OnInit, AfterViewInit, AfterContentChecked {\r\n //#region private fields\r\n private _isReportingToolbarDisabled: boolean = false;\r\n //#endregion\r\n\r\n //#region properties\r\n @ViewChild('formRef') formRef?: NgForm;\r\n @ViewChild(\"reportingApp\") reportingApp?: ReportingComponent\r\n //#endregion\r\n\r\n //#region inputs\r\n @Input() class?: string;\r\n @Input() autocomplete: string = 'off';\r\n // @Input() formName: string | undefined;\r\n // @Input() formEndpoint: string | undefined;\r\n @Input() optionalEndpoints?: OptionalEndpoints;\r\n @Input() disabled: boolean = false;\r\n @Input() isLoading: boolean = false;\r\n @Input() modalSize?: IModalSize;\r\n\r\n descriminatorValue: string | undefined;\r\n\r\n\r\n @Input()\r\n get formEndpoint(): string | undefined {\r\n return this._formEndpoint;\r\n }\r\n\r\n set formEndpoint(value: string | undefined) {\r\n this._formEndpoint = value;\r\n this._cdr.detectChanges();\r\n }\r\n\r\n private _formName: string | undefined;\r\n\r\n @Input()\r\n get formName(): string | undefined {\r\n return this._formName;\r\n }\r\n\r\n set formName(value: string | undefined) {\r\n this._formName = value;\r\n this._cdr.detectChanges();\r\n }\r\n\r\n private _businessClass: string | undefined;\r\n private _id: string | undefined;\r\n private _mode: string | undefined;\r\n private _formEndpoint: string | undefined;\r\n private _status: string | undefined;\r\n\r\n // Getter for businessClass\r\n get businessClass(): string | undefined {\r\n return this._businessClass;\r\n }\r\n\r\n // Setter for businessClass\r\n set businessClass(value: string | undefined) {\r\n this._businessClass = value;\r\n this.getEntityStatus();\r\n }\r\n\r\n // Getter for id\r\n get id(): string | undefined {\r\n return this._id;\r\n }\r\n\r\n // Setter for id\r\n set id(value: string | undefined) {\r\n this._id = value;\r\n }\r\n\r\n // Getter for status\r\n get status(): string | undefined {\r\n return this._status;\r\n }\r\n\r\n // Setter for status\r\n set status(value: string | undefined) {\r\n this._status = value;\r\n this.onStatusChange.emit(this._status);\r\n }\r\n\r\n set mode(value: string | undefined) {\r\n this._mode = value;\r\n }\r\n\r\n get mode(): string | undefined {\r\n return this._mode;\r\n }\r\n\r\n entityStatusList: KeyValuePair<string, string>[] = [];\r\n @Input()\r\n get isReportingToolbarDisabled(): boolean {\r\n return this._isReportingToolbarDisabled;\r\n }\r\n\r\n set isReportingToolbarDisabled(value: boolean) {\r\n this._isReportingToolbarDisabled = value;\r\n }\r\n\r\n @Input() isCreateOnly : boolean = false ;\r\n\r\n //#endregion\r\n\r\n //#region outputs\r\n @Output() onSubmit: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() onSubmitFormWorkflowConfiguration: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() formRefChange: EventEmitter<NgForm> = new EventEmitter<NgForm>();\r\n @Output() onStatusChange: EventEmitter<string> = new EventEmitter<string>();\r\n //#endregion\r\n\r\n @ViewChild('toolbarTemplate') toolbarTemplateRef?: TemplateRef<any>;\r\n @ContentChild(TsiModalHeaderComponent) modalHeaderComp?: TsiModalHeaderComponent;\r\n inputTitle: string | undefined;\r\n \r\n\r\n //#region ctor\r\n constructor(\r\n private entityStatusService: EntityStatusService,\r\n private _tsiConfirmService: TsiConfirmationService,\r\n private _tsiNotificationService: TsiNotificationService,\r\n private _cdr: ChangeDetectorRef,\r\n private _layoutHelperService: LayoutHelperService,\r\n public workflowConfigurationService: WorkflowConfigurationService,\r\n public ref?: DynamicDialogRef,\r\n public config?: DynamicDialogConfig,\r\n ) { }\r\n\r\n ngAfterContentChecked(): void {\r\n this._cdr.detectChanges();\r\n if (this.reportingApp) {\r\n\r\n if (this.reportingApp.showImportExportButton) {\r\n this.reportingApp.showImportExportButton = false\r\n }\r\n\r\n if (this._layoutHelperService.isDesignMode && this.reportingApp.showPresentationDesignerConfigButton) {\r\n this.reportingApp.showPresentationDesignerConfigButton = false\r\n }\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region variables\r\n private _workflowInformation: workflowInstanceInformationResponse = new workflowInstanceInformationResponse();\r\n set workflowInformation(value: workflowInstanceInformationResponse) {\r\n this._workflowInformation = value\r\n this._cdr.detectChanges()\r\n if (this.mode != Modes.create && this.workflowInformation?.workflowEtat) {\r\n this.getWorkflowEtatSuivantAsKeyValuePair = AdministrationEndpoints.getWorkflowEtatSuivantByWorkflowEtat(this.workflowInformation.workflowEtat)\r\n }\r\n }\r\n\r\n // async getWorkflowEntityInformation(businessClass: string, uidObject?: string, discriminatorClassName ?: string, \r\n // discriminatorPropertyName ?: string\r\n // ) {\r\n // if (this.mode != Modes.create) {\r\n // return;\r\n // }\r\n // try {\r\n // let request: GetWorkflowInstanceInformationRequest = new GetWorkflowInstanceInformationRequest();\r\n // request.className = businessClass\r\n // request.uidObjet = uidObject;\r\n // request.discriminatorClassName = discriminatorClassName\r\n // request.discriminatorPropertyName = discriminatorPropertyName\r\n // request.discriminatorValue = this.descriminatorValue\r\n // this.workflowInformation = await firstValueFrom(this._workflowConfigurationService.getEntityWorklfowInstanceInformation(request))\r\n // console.log(\"this.workflowInformation\", this.workflowInformation)\r\n // if (this.workflowInformation) {\r\n // let workflowEtatForm = this._workflowConfigurationService.workflowEtatFormForCurrentForm\r\n // ?.find(x => x.uid == this.workflowInformation?.workflowEtat)\r\n // if (workflowEtatForm) {\r\n // this._workflowConfigurationService.workflowEtatForForCurrentEntityForm =\r\n // this._workflowConfigurationService.mapWorkflowEtatFormToPresentationSetting(workflowEtatForm.workflowEtatsForms)\r\n // }\r\n // }\r\n // }\r\n // catch (error) {\r\n // console.error(error)\r\n // }\r\n // }\r\n\r\n get workflowInformation() {\r\n return this._workflowInformation\r\n }\r\n getWorkflowEtatAsKeyValuePair =\r\n AdministrationEndpoints.getWorkflowEtatAsKeyValuePair();\r\n getWorkflowEtatSuivantAsKeyValuePair = '';\r\n selectedWorkflowEtatUid: string | undefined | null;\r\n isComboDisabled: boolean = false;\r\n formModes = Modes;\r\n\r\n configModeButtonId = \"confg-mode-button-from-form\";\r\n cudComponent: any\r\n configData: any\r\n // #endregion\r\n\r\n //#region handle Lifecycle Hooks\r\n ngOnInit(): void {\r\n this.cudComponent = this.config?.data?.cudComponent;\r\n this.configData = this.config\r\n this.workflowInformation = this.config?.data?.workflowInformation ?? new workflowInstanceInformationResponse()\r\n console.log(\"workflowInformation => \", this.workflowInformation)\r\n if (this.mode != Modes.create && this.workflowInformation?.workflowEtat) {\r\n this.getWorkflowEtatSuivantAsKeyValuePair = AdministrationEndpoints.getWorkflowEtatSuivantByWorkflowEtat(this.workflowInformation.workflowEtat)\r\n }\r\n }\r\n\r\n toggleDesignMode(event: any) {\r\n // this.configData.data.cudComponent = undefined\r\n // this.configData.data.workflowInformation = undefined\r\n\r\n // this.ref?.close();\r\n // this._layoutHelperService.isDesignMode = true\r\n // this._layoutHelperService.currentFormName = this.getComponentIdentifier()\r\n\r\n // this.ref = this._dialogService.open(this.cudComponent, this.configData);\r\n // this.ref.onClose.subscribe((val?: any) => {\r\n // this._layoutHelperService.isDesignMode = false\r\n // this._layoutHelperService.currentFormName = undefined\r\n // });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n if (this.toolbarTemplateRef && this.modalHeaderComp) {\r\n this.modalHeaderComp.toolbarTemplateHeader = this.toolbarTemplateRef;\r\n this.inputTitle = this.modalHeaderComp.inputTitle;\r\n this._cdr.detectChanges();\r\n }\r\n \r\n this.formRefChange.emit(this.formRef);\r\n }\r\n //#endregion\r\n\r\n //#region handle events\r\n handleFormSubmit(event: any): void {\r\n if (this.workflowConfigurationService.isDesginModeFromWorkflow) {\r\n this.onSubmitFormWorkflowConfiguration.emit(event)\r\n }\r\n else {\r\n this.onSubmit.emit(event);\r\n }\r\n }\r\n //#endregion\r\n\r\n // #region workflow\r\n\r\n private getComponentIdentifier() {\r\n if (this.descriminatorValue)\r\n return `${this.formName}_${this.descriminatorValue}`;\r\n else\r\n return this.formName;\r\n }\r\n\r\n\r\n confirmUpdateWorkflowEtat(event: any) {\r\n console.log(event)\r\n if (event) {\r\n this._tsiConfirmService.confirm(\"administration_confirm_status_change\", \"administration_confirmation_title\",\r\n (result: boolean) => {\r\n console.log(result)\r\n if (result) {\r\n this.isLoading = true\r\n var request = new updateEntityWorkflowInformation()\r\n request.className = this._businessClass;\r\n request.uidObject = this._id\r\n request.newWorkflowStatus = event;\r\n request.workflow = this.workflowInformation?.workflowUid;\r\n request.workflowEtat = this.workflowInformation.workflowEtat\r\n request.workflowInstanceUid = this.workflowInformation?.workflowInstanceUid\r\n request.workflowEtat = this.workflowInformation?.workflowEtat\r\n console.log(request)\r\n this.workflowConfigurationService.updateEntityWorkflowInformation(request).subscribe(\r\n {\r\n next: (data) => {\r\n console.log(data)\r\n this.isLoading = false\r\n },\r\n error: (error: HttpErrorResponse) => {\r\n console.log(error)\r\n this.selectedWorkflowEtatUid = null\r\n this._tsiNotificationService.error(error?.error)\r\n this.isLoading = false\r\n }\r\n }\r\n )\r\n }\r\n else {\r\n this.selectedWorkflowEtatUid = null\r\n }\r\n }\r\n )\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region Entity status\r\n private getEntityStatus(): void {\r\n this.entityStatusService.getEntityStatus(this.businessClass).subscribe({\r\n next: (data: EntityPropertiesResponse) => {\r\n if (!data) return;\r\n\r\n if (data.entityStatus && Array.isArray(data.entityStatus)) {\r\n this.entityStatusList = data.entityStatus;\r\n }\r\n\r\n if (this.mode === Modes.create) {\r\n this.status = data.defaultStatus;\r\n }\r\n },\r\n });\r\n }\r\n //#endregion\r\n}\r\n","<form class=\"form-horizontal\" autocomplete=\"off\" (ngSubmit)=\"handleFormSubmit($event)\" #formRef=\"ngForm\">\r\n <ng-template #toolbarTemplate>\r\n <p-toolbar *ngIf=\"formEndpoint\" styleClass=\"mb-1 gap-2\" class=\"w-full\">\r\n <ng-template pTemplate=\"left\">\r\n <div class=\"mt-1 ml-2\">\r\n {{inputTitle}}\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"right\">\r\n <div class=\"mt-1 mr-2\">\r\n <app-reporting *ngIf=\"formEndpoint\" [id]=\"this.id\" [formEndpoint]=\"formEndpoint\" [formName]=\"formName\"\r\n [reportDiscriminator]=\"descriminatorValue\" [isFormEndpointPaged]=\"true\"\r\n [configModeButtonId]=\"configModeButtonId\" [isReportingToolbarDisabled]=\"isReportingToolbarDisabled\"\r\n (toggleDesignMode)=\"toggleDesignMode($event)\" [businessClass]=\"businessClass\" #reportingApp\r\n ></app-reporting>\r\n </div>\r\n </ng-template>\r\n </p-toolbar>\r\n </ng-template>\r\n\r\n <div *busy=\"isLoading\"></div>\r\n\r\n <fieldset [disabled]=\"disabled\">\r\n <ng-content></ng-content>\r\n </fieldset>\r\n\r\n <div *ngIf=\"(businessClass && entityStatusList.length > 0) ||\r\n workflowInformation?.workflowUid ||\r\n workflowConfigurationService.isDesginModeFromWorkflow\"\r\n class=\"mx-4 px-2 my-1 shared-footer-bar\">\r\n \r\n <div *ngIf=\"businessClass && entityStatusList && entityStatusList.length > 0\">\r\n <div class=\"flex align-items-center gap-2\" presentationDesigner=\"shared_crud_status\">\r\n <Tsi-Label [labelValue]=\"'shared_crud_status'\"></Tsi-Label>\r\n <Tsi-Search-Combo [id-field]=\"'key'\" [label-field]=\"'value'\" [datasource]=\"entityStatusList\"\r\n [(bind)]=\"status\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div *ngIf=\"workflowInformation?.workflowUid || workflowConfigurationService.isDesginModeFromWorkflow\" class=\"flex col-12\">\r\n <div presentationDesigner=\"shared_workflowName\" class=\"flex align-items-center gap-2 col-4\">\r\n <Tsi-Label [labelValue]=\"'administration_workflow_workflow'| localize\">\r\n </Tsi-Label>\r\n <Tsi-Text-Box [disabled]=\"true\" [inputName]=\"'workflowName'\"\r\n [(inputField)]=\"workflowInformation.workflowName\">\r\n </Tsi-Text-Box>\r\n </div>\r\n <div presentationDesigner=\"administration_workflow_workflow_current_status\" class=\"flex align-items-center gap-2 col-4\">\r\n <Tsi-Label [labelValue]=\"'administration_workflow_workflow_current_status'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"w-7\" [disabled]=\"true\" id-field=\"key\" label-field=\"value\"\r\n [bind]=\"workflowInformation.workflowEtat\" [isFiltered]=\"true\"\r\n [elementSourceUrl]=\"getWorkflowEtatAsKeyValuePair\" [listSourceUrl]=\"getWorkflowEtatSuivantAsKeyValuePair\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n <div class=\"col-4\">\r\n <div *ngIf=\"mode != formModes.create || workflowConfigurationService.isDesginModeFromWorkflow\"\r\n presentationDesigner=\"administration_workflow_workflow_next_status\"\r\n class=\"flex gap-2 align-items-center no-border\">\r\n <Tsi-Label [labelValue]=\"'administration_workflow_workflow_next_status'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"w-7\" id-field=\"key\" label-field=\"value\" [bind]=\"selectedWorkflowEtatUid\"\r\n [isFiltered]=\"true\" [elementSourceUrl]=\"getWorkflowEtatAsKeyValuePair\"\r\n [listSourceUrl]=\"getWorkflowEtatSuivantAsKeyValuePair\" (bindChange)=\"confirmUpdateWorkflowEtat($event)\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n</form>","import { AfterContentChecked, AfterViewInit, ChangeDetectorRef, Component, ElementRef, EventEmitter, inject, Input, OnInit, Output, Renderer2, QueryList, ViewChild, ViewChildren, ViewContainerRef, OnDestroy, AfterViewChecked } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { AppBaseComponent } from '../app-base/app-base.component';\r\nimport { Subscription } from 'rxjs';\r\nimport { LocalizationKeys } from '../../../consts';\r\nimport { FormValidityResult, Component_Modes, Modes, FormValidationError } from '../../../enums';\r\nimport { ComboStatusModel } from '../../../interfaces';\r\nimport { ComponentDescriminator, PresentationSetting, entityInfo, workflowInstanceInformationResponse, PresentationSettingDetail } from '../../../models';\r\nimport { LayoutHelperService, EntityConfigurationService, WorkflowConfigurationService, PresentationSettingService, TsiNotificationService, ErrorResponseManagerService, PresentationDesignerService, ReportingService, InputRegistryService, GenericValidationStateService } from '../../../services';\r\nimport { PresentationDesignerDirective, PresentationDesignerDirectiveBase } from '../../../tsi-directives';\r\nimport { TsiInputBase } from '../../tsi-input-base/tsi-input-base.component';\r\nimport { TsiFormComponent } from '../../../tsi-components/tsi-form/tsi-form.component';\r\nimport { TsiButtonComponent } from '../../../tsi-components/button-components/tsi-button/tsi-button.component';\r\nimport { TsiCheckboxComponent } from '../../../tsi-components/input-components/tsi-checkbox/tsi-checkbox.component';\r\nimport { EditableGridComponent } from '../../../tsi-components/input-components/editable-grid/editable-grid.component';\r\nimport { TsiViewGridComponent } from '../../../tsi-components/output-components/tsi-view-grid/tsi-view-grid.component';\r\nimport { TsiGenericGridComponent } from '../../../tsi-components/output-components/tsi-generic-grid/tsi-generic-grid.component';\r\nimport { TsiGenericCrudComponent } from '../../../tsi-components/tsi-generic-crud/tsi-generic-crud.component';\r\nimport { LocalizePipe } from '../../../pipes/localize.pipe';\r\nimport { PresentationDesignerBaseService } from '../../../services/presentation-setting/presentation-designer-base.service';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\n\r\n\r\n@Component({\r\n selector: 'app-tsi-form-base',\r\n templateUrl: './tsi-form-base.component.html',\r\n styleUrls: ['./tsi-form-base.component.scss']\r\n})\r\nexport class TsiFormComponentBaseComponent extends AppBaseComponent\r\n implements OnInit, AfterContentChecked, AfterViewInit, OnDestroy, AfterViewChecked {\r\n //#region properties\r\n public override get formEndpoint(): string {\r\n return super.formEndpoint;\r\n };\r\n private override set formEndpoint(endpoint: string) {\r\n super.formEndpoint = `${endpoint}/${this.id}`;\r\n }\r\n\r\n public override get businessClass() {\r\n return this._businessClass;\r\n }\r\n public override set businessClass(value: string) {\r\n this._businessClass = value;\r\n this.formEndpoint = this.businessClass;\r\n this._genericValidationStateService?.loadEntityValidationInfos(this._businessClass);\r\n }\r\n\r\n private _componentDescriminator: ComponentDescriminator | undefined\r\n private descriminatorValue: string | undefined\r\n\r\n protected set componentDescriminator(value: ComponentDescriminator | undefined) {\r\n this._componentDescriminator = value\r\n if (value && value.propertyValue) {\r\n if (this.form) {\r\n this.form.descriminatorValue = value.propertyValue\r\n }\r\n this.descriminatorValue = value.propertyValue\r\n this.presentationRequest = this._presentationSettingService.getPresentationSettingByComponentIdentifierSync(this.getComponentIdentifier(),\r\n this.descriminatorValue) ?? new PresentationSetting()\r\n this.directiveElements = [...this._presentationDesignerService.getDirectives(),\r\n ...this._presentationDesignerBaseService.getDirectives()\r\n ];\r\n this.addInputs(this.presentationRequest, !this._layoutHelperService?.isDesignMode)\r\n\r\n // this._reportingService.getReportDecriminator(req).subscribe({\r\n // next: async (result) => {\r\n // this.descriminatorValue = result.propertyValue;\r\n // this.presentationRequest = this._presentationSettingService.getPresentationSettingByComponentIdentifierSync(this.getComponentIdentifier()) ?? new PresentationSetting()\r\n // if (this.form) {\r\n // this.form.descriminatorValue = result.propertyValue\r\n // if (this.entityInfo?.isWorkflow) {\r\n // await this.form.getWorkflowEntityInformation(this.businessClass, this.id, this.entityInfo?.discriminatorClassName,\r\n // this.entityInfo?.discriminatorPropertyName)\r\n // }\r\n // }\r\n // this.addInputs(this.presentationRequest, !this._layoutHelperService?.isDesignMode)\r\n // },\r\n // error: (err: any) => {\r\n // console.log(err);\r\n // },\r\n // });\r\n }\r\n else {\r\n if (this.form) {\r\n this.form.descriminatorValue = undefined\r\n }\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n protected get componentDescriminator() {\r\n return this._componentDescriminator\r\n }\r\n\r\n\r\n @ViewChild(TsiFormComponent) form?: TsiFormComponent;\r\n\r\n\r\n @ViewChild(TsiButtonComponent) modalFooter?: ElementRef | any;\r\n\r\n @ViewChildren(TsiCheckboxComponent) checkbox?: Array<TsiCheckboxComponent>;\r\n\r\n faultyInputs: FormValidityResult[] = [];\r\n isFormValid: boolean | undefined;\r\n requiredInputs: TsiInputBase[] = [];\r\n // @ViewChildren(EditableGridComponent) editableGridComponents!: QueryList<EditableGridComponent>;\r\n\r\n // @ViewChildren(TsiViewGridComponent) viewGridsComponents!: QueryList<TsiViewGridComponent>;\r\n // @ViewChildren(TsiGenericGridComponent) genericGridsComponents!: QueryList<TsiGenericGridComponent>;\r\n // @ViewChildren(TsiGenericCrudComponent) genericCrudsComponents!: QueryList<TsiGenericCrudComponent>;\r\n editableGridComponents: Array<EditableGridComponent> = [];\r\n viewGridsComponents: Array<TsiViewGridComponent> = [];\r\n genericGridsComponents: Array<TsiGenericGridComponent> = [];\r\n genericCrudsComponents: Array<TsiGenericCrudComponent> = [];\r\n\r\n\r\n formRef?: NgForm;\r\n isFormDisabled: boolean = false;\r\n cudComponent: any;\r\n //#endregion\r\n\r\n //#region Inputs\r\n @Input() itemDialog: boolean = false;\r\n @Input() mode?: string = '';\r\n @Input() id?: string;\r\n private _isloading = false;\r\n\r\n @Input()\r\n set isloading(value: boolean) {\r\n this._isloading = value;\r\n console.log('isloading set to', value);\r\n if (!value) {\r\n setTimeout(() => {\r\n this.processDisabledInputs(this.presentationRequest)\r\n }, 0);\r\n }\r\n }\r\n\r\n get isloading(): boolean {\r\n return this._isloading;\r\n }\r\n @Input() header?: string;\r\n @Input() saving = false;\r\n @Input() item: any;\r\n\r\n private _status?: string = '';\r\n get status(): string | undefined {\r\n return this._status;\r\n }\r\n @Input() set status(value: string | undefined) {\r\n this._status = value;\r\n if (this.form && this.form.status !== this._status) {\r\n this.form.status = this._status;\r\n }\r\n }\r\n //bsModalRef?: any;\r\n //#endregion\r\n\r\n private _viewContainerRef = inject(ViewContainerRef)\r\n private _renderer = inject(Renderer2)\r\n private _layoutHelperService = inject(LayoutHelperService)\r\n private _workflowConfigurationService = inject(WorkflowConfigurationService)\r\n private _presentationSettingService = inject(PresentationSettingService)\r\n private _messageInfoService = inject(TsiNotificationService)\r\n private _errorResponseManager = inject(ErrorResponseManagerService)\r\n private _presentationDesignerService = inject(PresentationDesignerService)\r\n private _presentationDesignerBaseService = inject(PresentationDesignerBaseService)\r\n private _reportingService = inject(ReportingService)\r\n public localize? = inject(LocalizePipe)\r\n public _inputRegistry = inject(InputRegistryService)\r\n private directiveElements: (PresentationDesignerDirective | PresentationDesignerDirectiveBase)[] = [];\r\n presentationRequest: PresentationSetting = new PresentationSetting()\r\n _designModeFormSubscription: Subscription | undefined;\r\n _saveWorkflowFormConfigurationSubscription: Subscription | undefined\r\n _addedDirectiveSubscritpion: Subscription | undefined\r\n _addedDirectiveBaseSubscritpion: Subscription | undefined\r\n //#region Outputs\r\n @Output() onSave = new EventEmitter<any>();\r\n //#endregion\r\n\r\n private _genericValidationStateService?: GenericValidationStateService = inject(GenericValidationStateService);\r\n\r\n\r\n constructor(\r\n public ref?: DynamicDialogRef,\r\n public config?: DynamicDialogConfig,\r\n public override cdRef?: ChangeDetectorRef) {\r\n super(cdRef);\r\n }\r\n\r\n protected isReportingToolbarDisabled: boolean = false;\r\n workflowInformation?: workflowInstanceInformationResponse\r\n customData?: any\r\n\r\n //#endregion\r\n\r\n override ngOnInit() {\r\n super.ngOnInit();\r\n this._initModalRef();\r\n this.initModalData();\r\n this._addedDirectiveSubscritpion = this._presentationDesignerService.addedDirectiveObservable\r\n .subscribe(data => {\r\n if (data.treated) {\r\n return\r\n }\r\n\r\n if (this._workflowConfigurationService.isDesginModeFromWorkflow) {\r\n this.entityInfo = this._workflowConfigurationService.currentWorkflowEntityInfo\r\n }\r\n\r\n if (!this.entityInfo?.discriminatorPropertyName && !this.entityInfo?.discriminatorClassName) {\r\n this.processSingleElement(data)\r\n }\r\n else if (this.descriminatorValue) {\r\n this.processSingleElement(data)\r\n }\r\n })\r\n\r\n this._addedDirectiveBaseSubscritpion = this._presentationDesignerBaseService.addedDirectiveObservable\r\n .subscribe(data => {\r\n if (data.treated) {\r\n return\r\n }\r\n\r\n if (this._workflowConfigurationService.isDesginModeFromWorkflow) {\r\n this.entityInfo = this._workflowConfigurationService.currentWorkflowEntityInfo\r\n }\r\n\r\n if (!this.entityInfo?.discriminatorPropertyName && !this.entityInfo?.discriminatorClassName) {\r\n this.processSingleElement(data)\r\n }\r\n else if (this.descriminatorValue) {\r\n this.processSingleElement(data)\r\n }\r\n })\r\n\r\n this._designModeFormSubscription = this._layoutHelperService._designModeFormSubject.subscribe(data => {\r\n if (data && data == true) {\r\n this.toggleDesignMode()\r\n }\r\n })\r\n }\r\n\r\n toggleDesignMode() {\r\n this.removeTsiModalFooter()\r\n this.createSaveButton();\r\n\r\n this.presentationRequest = this._presentationSettingService.getPresentationSettingByComponentIdentifierSync(this.getComponentIdentifier(), this.descriminatorValue) ?? new PresentationSetting()\r\n\r\n this.directiveElements = [...this._presentationDesignerService.getDirectives(),\r\n ...this._presentationDesignerBaseService.getDirectives()\r\n ];\r\n\r\n this.directiveElements?.forEach(input => {\r\n input.insertElement();\r\n if (input instanceof PresentationDesignerDirective) {\r\n input.selectApproriateColumns(this.presentationRequest);\r\n }\r\n input.addCheckboxesToInputs(this.presentationRequest);\r\n })\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n super.ngOnDestroy()\r\n this.unsubscribeFromActiveSubscritpion()\r\n this._layoutHelperService.isDesignMode = false\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n }\r\n\r\n async ngAfterViewInit() {\r\n this.directiveElements = [...this._presentationDesignerService.getDirectives(),\r\n ...this._presentationDesignerBaseService.getDirectives()\r\n ];\r\n console.log(\"count of directiveElements => \", this.directiveElements.length)\r\n\r\n if (\r\n this._layoutHelperService?.isDesignMode\r\n && !this._workflowConfigurationService.isDesginModeFromWorkflow) {\r\n // this.removeTsiModalFooter()\r\n // this.createSaveButton()\r\n }\r\n else {\r\n\r\n if (this._workflowConfigurationService.isDesginModeFromWorkflow) {\r\n this.entityInfo = this._workflowConfigurationService.currentWorkflowEntityInfo\r\n }\r\n // else {\r\n // this.entityInfo = await this._entityConfigService.getEntityInfoFromCache(this.businessClass)\r\n // }\r\n }\r\n\r\n //init genericCrud reporting\r\n if (this.form) {\r\n this.form.formRefChange.subscribe(f => {\r\n if (f) {\r\n this.formRef = f;\r\n }\r\n });\r\n this.form.disabled = this.isFormDisabled;\r\n this.form.formEndpoint = this.formEndpoint;\r\n this.form.formName = this.formName;\r\n this.form.businessClass = this._businessClass\r\n this.form.formName = this.formName;\r\n this.form.id = this.id;\r\n this.form.mode = this.mode\r\n\r\n // workflow form design\r\n this._saveWorkflowFormConfigurationSubscription = this.form.onSubmitFormWorkflowConfiguration.subscribe(data => {\r\n let workflowFormConfiguration = this.getFormWorfklowPresentationSetting();\r\n console.log(\"FormWorfklowSetting => \", workflowFormConfiguration)\r\n this.hide(workflowFormConfiguration)\r\n })\r\n\r\n this.form.onStatusChange.subscribe((newValue: string) => {\r\n this.status = newValue;\r\n });\r\n }\r\n if (this.mode == Component_Modes.CREATE) {\r\n if (this.checkbox) {\r\n this.checkbox.forEach(box => {\r\n box.inputField = false;\r\n box.checked = false;\r\n });\r\n }\r\n }\r\n\r\n }\r\n\r\n initTsiGridsRef() {\r\n this.viewGridsComponents = this._presentationDesignerService.getViewGrids()\r\n this.genericGridsComponents = this._presentationDesignerService.getGenericGrids()\r\n this.editableGridComponents = this._presentationDesignerService.getEditableGrids()\r\n this.genericCrudsComponents = this._presentationDesignerService.getGenericCruds()\r\n }\r\n\r\n getFormWorfklowPresentationSetting() {\r\n let presentationRequest = new PresentationSetting()\r\n\r\n this.directiveElements = [...this._presentationDesignerService.getDirectives(),\r\n ...this._presentationDesignerBaseService.getDirectives()\r\n ];\r\n\r\n let presentationSettingDetails: PresentationSettingDetail[] = []\r\n let availableDirectiveElements = this.directiveElements.filter(x =>\r\n !(this.presentationRequest?.presentationSettingDetails.some(y =>\r\n y.blockName === x.presentationDesigner && !y.isBlockVisible\r\n ))\r\n );\r\n\r\n this.initTsiGridsRef()\r\n\r\n availableDirectiveElements?.forEach((directive) => {\r\n\r\n let configuration = undefined\r\n\r\n\r\n let gridState = [\r\n ...this.viewGridsComponents,\r\n ...this.genericGridsComponents,\r\n ...this.genericCrudsComponents,\r\n ...this.editableGridComponents\r\n ]\r\n .find(x => x.id === directive.presentationDesigner || ('formName' in x && x.formName === directive.presentationDesigner))\r\n ?.getState();\r\n\r\n configuration = gridState ? JSON.stringify(gridState) : undefined;\r\n\r\n\r\n let object: PresentationSettingDetail = {\r\n blockName: directive.presentationDesigner,\r\n isBlockVisible: !directive.showHideCheckboxComponentRef?.instance?._checked,\r\n uid: this.getPresentationSetingDetailUid(directive.presentationDesigner ?? \"\"),\r\n configuration: configuration,\r\n isInputEnabled: !directive.disabledCheckboxComponentRef?.instance?._checked\r\n }\r\n presentationSettingDetails.push(object)\r\n })\r\n\r\n presentationRequest.componentIdentifer = this.getComponentIdentifier();\r\n presentationRequest.presentationSettingDetails = presentationSettingDetails\r\n\r\n console.log(\"presentationRequest => \", presentationRequest)\r\n return presentationRequest\r\n }\r\n\r\n\r\n isDeleteMode(): boolean {\r\n return this.mode == Component_Modes.DELETE;\r\n }\r\n isSubmitDisabled(): boolean {\r\n //return !this.formRef?.form?.valid || this.saving;\r\n return false;\r\n }\r\n isConsultMode(): boolean {\r\n return this.mode == Component_Modes.CONSULT;\r\n }\r\n\r\n isDuplicateMode(): boolean {\r\n return this.mode == Component_Modes.DUPLICATE;\r\n }\r\n isEditMode(): boolean {\r\n return this.mode == Component_Modes.EDIT;\r\n }\r\n //#region private methods\r\n protected override initModalData() {\r\n super.initModalData()\r\n if (this.openedDialogRef != null\r\n && this.openedDialogRef != undefined\r\n && this.openedDialogConfig != null\r\n && this.openedDialogConfig != undefined) {\r\n //check have openedDialogConfig\r\n if (this.openedDialogConfig.data != null && this.openedDialogConfig.data != undefined) {\r\n this.cudComponent = this.openedDialogConfig.data.cudComponent;\r\n }\r\n }\r\n }\r\n private _verifyModalData(): boolean {\r\n return this.openedDialogRef != null\r\n && this.openedDialogRef != undefined\r\n && this.openedDialogConfig != null\r\n && this.openedDialogConfig != undefined;\r\n }\r\n private _initModalRef(): void {\r\n if (this._verifyModalData()) {\r\n //this.bsModalRef = {hide: () => this.openedDialogRef.destroy(),close: (val: any)=>{this.openedDialogRef.close(val)}}\r\n }\r\n }\r\n //\r\n l(key: string): string {\r\n if (this.localize != null\r\n && this.localize != undefined) {\r\n return this.localize.transform(key);\r\n }\r\n return key;\r\n }\r\n //#endregion\r\n\r\n //#region traiter multiple combo\r\n allComboLoadingStatus: Array<ComboStatusModel> = [];\r\n areAllComboLoaded: boolean = false;\r\n processComboInitEvent(comboStatus: ComboStatusModel) {\r\n if (!this.allComboLoadingStatus.find(u => u.uid == comboStatus.uid))\r\n this.allComboLoadingStatus.push(comboStatus);\r\n }\r\n\r\n processComboIsLoadedEvent(comboStatus: ComboStatusModel) {\r\n let comboS = this.allComboLoadingStatus.find(u => u.uid == comboStatus.uid);\r\n if (comboS != null && comboS != undefined) {\r\n comboS.isDataLoaded = comboStatus.isDataLoaded;\r\n }\r\n this.areAllComboLoadedFn();\r\n }\r\n\r\n areAllComboLoadedFn(): void {\r\n let result: boolean = true;\r\n\r\n if (this.allComboLoadingStatus.length > 0)\r\n this.allComboLoadingStatus.forEach(u => {\r\n result = result && u.isDataLoaded;\r\n });\r\n else result = false;\r\n\r\n this.areAllComboLoaded = result;\r\n }\r\n\r\n hide(val?: any) {\r\n if (this.openedDialogRef != null && this.openedDialogRef != undefined) {\r\n if (val == false) {\r\n this.openedDialogRef.destroy();\r\n }\r\n else {\r\n this.openedDialogRef.close(val);\r\n }\r\n }\r\n }\r\n //#endregion traiter multiple combo\r\n\r\n getWorkflowEtatForm() {\r\n let workflowEtatForm = this._workflowConfigurationService.workflowEtatFormForCurrentForm\r\n ?.find(x => x.uid == this.workflowInformation?.workflowEtat)\r\n\r\n if (workflowEtatForm) {\r\n let workflowEtat = this._workflowConfigurationService.mapWorkflowEtatFormToPresentationSetting(\r\n workflowEtatForm?.workflowEtatsForms\r\n );\r\n\r\n return workflowEtat\r\n }\r\n return undefined\r\n }\r\n\r\n // #region Presentation Settings\r\n addInputs(\r\n presentationRequest: PresentationSetting,\r\n applyGridConfig: boolean = true,\r\n workflowEtat?: PresentationSetting,\r\n directiveElements: (PresentationDesignerDirective | PresentationDesignerDirectiveBase)[] = this.directiveElements\r\n ): void {\r\n\r\n if ((!workflowEtat || workflowEtat.presentationSettingDetails.length == 0)\r\n && this.workflowInformation\r\n && this.workflowInformation?.workflowEtat) {\r\n workflowEtat = this.getWorkflowEtatForm()\r\n }\r\n\r\n const hasPresentationRequest = presentationRequest?.presentationSettingDetails?.length > 0;\r\n\r\n\r\n if (hasPresentationRequest) {\r\n directiveElements = directiveElements.filter(x =>\r\n presentationRequest.presentationSettingDetails?.some(\r\n y => y.blockName === x.presentationDesigner && (y.isBlockVisible == undefined || y.isBlockVisible == true)\r\n && x.treated == false\r\n )\r\n );\r\n }\r\n\r\n directiveElements?.forEach(directive => {\r\n\r\n const presentationSettingDetail = presentationRequest.presentationSettingDetails.find(x => x.blockName == directive.presentationDesigner)\r\n\r\n if (presentationSettingDetail == undefined || presentationSettingDetail.isBlockVisible) {\r\n\r\n let worfkflowEtatForm = this.getWorkflowEtatForm();\r\n\r\n if (worfkflowEtatForm) {\r\n let workflowConfig = worfkflowEtatForm.presentationSettingDetails.find(x => x.blockName == directive.presentationDesigner)\r\n\r\n if (!workflowConfig) {\r\n directive.execute(true, presentationSettingDetail?.configuration)\r\n }\r\n else if (workflowConfig && workflowConfig.isBlockVisible && (workflowConfig.isInputEnabled == undefined || workflowConfig.isInputEnabled == true)) {\r\n directive.execute(true, presentationSettingDetail?.configuration)\r\n }\r\n else if (workflowConfig && workflowConfig.isBlockVisible && workflowConfig.isInputEnabled == false) {\r\n directive.disableInputs()\r\n }\r\n }\r\n else {\r\n directive.execute(true, presentationSettingDetail?.configuration)\r\n }\r\n\r\n if (this._workflowConfigurationService.isDesginModeFromWorkflow) {\r\n directive.addCheckboxesToInputs(this._workflowConfigurationService.workflowFormConfiguration)\r\n }\r\n\r\n }\r\n });\r\n\r\n if (this.mode === Modes.create) {\r\n this.processDisabledInputs(presentationRequest, directiveElements);\r\n }\r\n\r\n\r\n this.removeEmptyAncestorsFromElements();\r\n }\r\n\r\n\r\n\r\n processDisabledInputs(presentationRequest: PresentationSetting, directiveElements: (PresentationDesignerDirective | PresentationDesignerDirectiveBase)[] = this.directiveElements) {\r\n if (this._layoutHelperService?.isDesignMode || this._workflowConfigurationService.isDesginModeFromWorkflow) {\r\n return;\r\n }\r\n\r\n\r\n const hasPresentationRequest = presentationRequest?.presentationSettingDetails?.length > 0;\r\n\r\n if (hasPresentationRequest) {\r\n directiveElements = directiveElements.filter(x =>\r\n presentationRequest.presentationSettingDetails?.some(\r\n y => y.blockName === x.presentationDesigner && y.isBlockVisible\r\n )\r\n );\r\n }\r\n\r\n\r\n const worfkflowEtatForm = this.getWorkflowEtatForm()\r\n directiveElements?.forEach(directive => {\r\n\r\n let workflowConfig = worfkflowEtatForm?.presentationSettingDetails.find(x => x.blockName == directive.presentationDesigner)\r\n\r\n if (workflowConfig && !workflowConfig.isInputEnabled && (workflowConfig.isBlockVisible ?? true)) {\r\n directive.disableInputs()\r\n }\r\n })\r\n }\r\n\r\n removeEmptyAncestorsFromElements() {\r\n // setTimeout(() => {\r\n // this._presentationDesignerService.getDirectives().forEach(s => s.removeEmptyAncestors(s?.tempTemplateParentNode))\r\n // }, 0);\r\n }\r\n\r\n getPresentationSetingDetailUid(blockName: string) {\r\n return this.presentationRequest?.presentationSettingDetails?.find(x => x.blockName == blockName)?.uid\r\n }\r\n\r\n getComponentIdentifier() {\r\n // if (this.descriminatorValue) {\r\n // return `${this._myName()}_${this.descriminatorValue}`\r\n // }\r\n return this._myName()\r\n }\r\n\r\n private saveProperties(): void {\r\n\r\n this.initTsiGridsRef()\r\n\r\n this.presentationRequest = this._presentationSettingService.getPresentationSettingByComponentIdentifierSync(this.getComponentIdentifier(), this.descriminatorValue) ?? new PresentationSetting()\r\n\r\n if (!this.presentationRequest) {\r\n this.presentationRequest = new PresentationSetting()\r\n }\r\n\r\n let presentationSettingDetails: PresentationSettingDetail[] = []\r\n\r\n this.directiveElements?.forEach((directive) => {\r\n\r\n let configuration = undefined\r\n\r\n\r\n let gridState = [\r\n ...this.viewGridsComponents,\r\n ...this.genericGridsComponents,\r\n ...this.genericCrudsComponents,\r\n ...this.editableGridComponents\r\n ]\r\n .find(x => x.id === directive.presentationDesigner || ('formName' in x && x.formName === directive.presentationDesigner))\r\n ?.getState();\r\n\r\n configuration = gridState ? JSON.stringify(gridState) : undefined;\r\n\r\n\r\n let object: PresentationSettingDetail = {\r\n blockName: directive.presentationDesigner,\r\n isBlockVisible: !directive.showHideCheckboxComponentRef?.instance?._checked,\r\n uid: this.getPresentationSetingDetailUid(directive.presentationDesigner ?? \"\"),\r\n configuration: configuration\r\n }\r\n presentationSettingDetails.push(object)\r\n })\r\n\r\n this.presentationRequest.componentIdentifer = this.getComponentIdentifier();\r\n this.presentationRequest.descriminatorValue = this.descriminatorValue\r\n this.presentationRequest.presentationSettingDetails = presentationSettingDetails\r\n\r\n this.isloading = true\r\n\r\n if (this.presentationRequest.uid != null && this.presentationRequest.uid != undefined) {\r\n this._presentationSettingService.updatePresentationSetting(this.presentationRequest, this.presentationRequest.uid)\r\n .subscribe({\r\n next: async (data) => {\r\n await this.processAfterSaveConfiguration()\r\n },\r\n error: (error) => {\r\n console.log(error)\r\n this._errorResponseManager.showErrorMessage(error);\r\n }\r\n })\r\n }\r\n else {\r\n this._presentationSettingService.createPresentationSetting(this.presentationRequest)\r\n .subscribe({\r\n next: async (data) => {\r\n await this.processAfterSaveConfiguration()\r\n },\r\n error: (error) => {\r\n console.log(error)\r\n this._errorResponseManager.showErrorMessage(error);\r\n }\r\n })\r\n }\r\n }\r\n\r\n processSingleElement(directive: PresentationDesignerDirective | PresentationDesignerDirectiveBase) {\r\n this.presentationRequest = this._presentationSettingService.getPresentationSettingByComponentIdentifierSync(this.getComponentIdentifier(), this.descriminatorValue) ?? new PresentationSetting()\r\n let presentationSettingDetail = this.presentationRequest?.presentationSettingDetails?.find(x => x.blockName == directive.presentationDesigner)\r\n\r\n\r\n if (presentationSettingDetail == undefined || presentationSettingDetail.isBlockVisible) {\r\n\r\n let worfkflowEtatForm = this.getWorkflowEtatForm();\r\n\r\n if (worfkflowEtatForm) {\r\n let workflowConfig = worfkflowEtatForm.presentationSettingDetails.find(x => x.blockName == directive.presentationDesigner)\r\n\r\n if (!workflowConfig) {\r\n directive.execute(true, presentationSettingDetail?.configuration)\r\n }\r\n else if (workflowConfig && workflowConfig.isBlockVisible && (workflowConfig.isInputEnabled == undefined || workflowConfig.isInputEnabled == true)) {\r\n directive.execute(true, presentationSettingDetail?.configuration)\r\n }\r\n else if (workflowConfig && workflowConfig.isBlockVisible && workflowConfig.isInputEnabled == false) {\r\n directive.disableInputs()\r\n }\r\n }\r\n else {\r\n directive.execute(true, presentationSettingDetail?.configuration)\r\n }\r\n\r\n if (this._workflowConfigurationService.isDesginModeFromWorkflow) {\r\n directive.addCheckboxesToInputs(this._workflowConfigurationService.workflowFormConfiguration)\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n unsubscribeFromActiveSubscritpion() {\r\n if (this._designModeFormSubscription) {\r\n this._designModeFormSubscription.unsubscribe()\r\n }\r\n\r\n if (this._saveWorkflowFormConfigurationSubscription) {\r\n this._saveWorkflowFormConfigurationSubscription.unsubscribe()\r\n }\r\n\r\n if (this._addedDirectiveSubscritpion) {\r\n this._addedDirectiveSubscritpion.unsubscribe()\r\n }\r\n\r\n if (this._addedDirectiveBaseSubscritpion) {\r\n this._addedDirectiveBaseSubscritpion.unsubscribe()\r\n }\r\n }\r\n\r\n removeTsiModalFooter() {\r\n const tsiModalFooter = document.querySelector(\"tsi-modal-footer\")\r\n\r\n if (tsiModalFooter && tsiModalFooter.lastChild) {\r\n this._renderer?.removeChild(tsiModalFooter, tsiModalFooter.lastChild)\r\n }\r\n }\r\n\r\n createSaveButton() {\r\n const tsiButtonRef = this._viewContainerRef?.createComponent(TsiButtonComponent);\r\n tsiButtonRef?.setInput('text', 'shared_tsi_component_save_config_show_hide');\r\n tsiButtonRef?.setInput('icon', 'save');\r\n\r\n tsiButtonRef!.instance.onClick.emit = () => this.saveProperties();\r\n\r\n const tsiForm = document.querySelector(\"tsi-form\")\r\n\r\n if (tsiForm) {\r\n this._renderer?.appendChild(tsiForm, tsiButtonRef?.location.nativeElement);\r\n }\r\n }\r\n\r\n async processAfterSaveConfiguration() {\r\n this.isloading = false\r\n this.hide()\r\n this._messageInfoService.success(LocalizationKeys.savedSuccessfully)\r\n this._layoutHelperService.isDesignMode = false\r\n // this._layoutHelperService.currentFormName = undefined\r\n this._layoutHelperService._designModeFormSubject.next(false)\r\n await this._presentationSettingService.loadPresentationSettings();\r\n }\r\n\r\n save(): void {\r\n\r\n this.requiredInputs = this._inputRegistry.getAll().filter(inp => inp.isRequired && inp.disabled === false);\r\n this.faultyInputs = [];\r\n this.isFormValid = this.requiredInputs.every(input => input.isValid().isValid === true)\r\n\r\n this.requiredInputs.forEach(input => {\r\n let fvr = input.isValid();\r\n if (fvr.isValid === false) {\r\n this.faultyInputs.push(fvr)\r\n }\r\n })\r\n\r\n if (this.isFormValid === false && this.faultyInputs.length > 0) {\r\n console.log(this.faultyInputs)\r\n let faultyInputsNames = \"\";\r\n this.faultyInputs.forEach((item, index) => {\r\n if (index === this.faultyInputs.length - 1)\r\n faultyInputsNames += `${item.inputName}. `\r\n else\r\n faultyInputsNames += `${item.inputName}, `\r\n })\r\n faultyInputsNames = faultyInputsNames.replace(/,$/, '');\r\n if (this.faultyInputs.some(fi => fi.error === FormValidationError.Required)) {\r\n this._messageInfoService.warn(faultyInputsNames, this.localize?.transform('tsi_form_base_auto_validation_required_field_title'))\r\n throw new Error(`Les champs ${faultyInputsNames} sont obligatoire.`);\r\n }\r\n else if (this.faultyInputs.some(fi => fi.error === FormValidationError.MaxLength)) {\r\n this._messageInfoService.warn(`\r\n ${this.localize?.transform('tsi_form_base_auto_validation_the_field')}\r\n ${this.faultyInputs[0].inputName} \r\n ${this.localize?.transform('tsi_form_base_auto_validation_max_length')}\r\n ${this.faultyInputs[0].data} ${this.localize?.transform('tsi_form_base_auto_validation_max_length_chars')}`,\r\n this.localize?.transform('tsi_form_base_auto_validation_max_length_field_title'))\r\n throw new Error(`Le champ ${this.faultyInputs[0].inputName} ne doit pas dépasser ${this.faultyInputs[0].data} caractères.`);\r\n }\r\n else if (this.faultyInputs.some(fi => fi.error === FormValidationError.OutOfRange)) {\r\n //to do\r\n throw new Error(`Le champ ${this.faultyInputs[0].inputName} doit être dans l'intervalle.`);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n //#endregion\r\n}\r\n","<p>tsi-form-base works!</p>\r\n","import { IFilteredRequest, IPagedRequest, ISortByProprety } from \"../../interfaces\";\r\n\r\nexport class Note {\r\n uid: string | undefined;\r\n className: string | undefined;\r\n rowUid: string | undefined;\r\n note: string | undefined;\r\n avertir: boolean | undefined;\r\n dateSaisie: Date | undefined;\r\n dateModification: Date | undefined;\r\n}\r\n\r\nexport class NotePagedRequest implements IPagedRequest {\r\n maxResultCount?: number | null;\r\n skipCount?: number;\r\n sorting?: ISortByProprety[];\r\n keyword?: string;\r\n filters?: IFilteredRequest[];\r\n getAllData?: boolean;\r\n summaries?: string[];\r\n ClassName: string | undefined;\r\n RowUid: string | undefined;\r\n}\r\nexport class NotesGroupedByUserResponse {\r\n creationUser : string | undefined ; \r\n notes : Note[] |undefined ; \r\n}","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { TsiInputBase } from '../../../tsi-base/tsi-input-base/tsi-input-base.component';\r\nimport { LocalizePipe } from '../../../pipes/localize.pipe';\r\n\r\n@Component({\r\n selector: 'Tsi-Text-Area',\r\n templateUrl: './Tsi-Text-Area.component.html',\r\n styleUrls: ['./Tsi-Text-Area.component.css'],\r\n})\r\nexport class TsiTextAreaComponent extends TsiInputBase<string | undefined> {\r\n //#region inputs\r\n @Input() rows?: number = 2;\r\n @Input() cols?: number;\r\n // @Input() inputField?: string;\r\n //#endregion\r\n\r\n //#region outputs\r\n @Output() newItemEvent = new EventEmitter<string>();\r\n @Output() inputFieldChange = new EventEmitter<string>();\r\n //#endregion\r\n\r\n requiredMessage ?: string\r\n maxLengthMessage ?: string\r\n\r\n constructor(private _localizePipe : LocalizePipe){\r\n super()\r\n this.requiredMessage = _localizePipe.transform(\"tsi_form_base_required_field\")\r\n this.maxLengthMessage = _localizePipe.transform(\"tsi_form_base_max_length_message\")\r\n }\r\n\r\n onChangeofOptions(input: string) {\r\n this.inputField = input;\r\n this.newItemEvent.emit(this.inputField);\r\n this.inputFieldChange.emit(this.inputField);\r\n }\r\n}\r\n","<div class=\"flex border-radius-7\" styleClass=\"border-radius-7\" >\r\n <textarea autoSelect \r\n pTooltip=\"{{ isRequired ? requiredMessage + ' - ' : '' }}{{ maxLength ? maxLength + ' ' + maxLengthMessage : '' }}\" tooltipPosition=\"top\"\r\n id=\"{{inputId}}\" [ngModel]=\"inputField\" [required]=\"isRequired\" [disabled]=\"disabled\"\r\n (ngModelChange)=\"onChangeofOptions($event)\" name=\"{{inputName}}\" [rows]=\"rows\" [cols]=\"cols\" pInputTextarea\r\n [autoResize]=\"true\" class=\"tsi-component {{validationStatusCssClass}}\" >\r\n </textarea>\r\n <Tsi-Bubble-Info [infoText]=\"infoText\"></Tsi-Bubble-Info>\r\n</div>","import {\r\n Component,\r\n EnvironmentInjector,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { ButtonType } from '../../enums/button-type.enum';\r\nimport { Component_Modes } from '../../enums';\r\nimport { LayoutService } from '../../services/application/app.layout.service';\r\nimport { rtlModeKeys } from '../../consts/locals.const';\r\nimport { LocalizePipe } from '../../pipes/localize.pipe';\r\nimport { DialogDataService } from '../../services/dialog-data.service';\r\nimport { TsiModalService } from '../../services';\r\nimport { openModalUploadGrid } from '../../functions/modal-open.function';\r\n\r\n@Component({\r\n selector: 'Tsi-Modal-Footer',\r\n templateUrl: './tsi-modal-footer.component.html',\r\n styleUrls: ['./tsi-modal-footer.component.scss'],\r\n})\r\nexport class TsiModalFooterComponent implements OnInit, OnDestroy {\r\n\r\n //#region Inputs\r\n @Input() cancelDisabled: boolean = false;\r\n @Input() saveDisabled: boolean = false;\r\n @Input() cancelLabel: string = 'cancel_label';\r\n @Input() saveLabel: string = 'save_label';\r\n @Input() isConsult: boolean = false;\r\n @Input() isDuplicate: boolean = false;\r\n @Input() isOnlyCreate: boolean = false;\r\n //#endregion\r\n\r\n //#region Outputs\r\n @Output() onCancelClick: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() onSaveClick: EventEmitter<void> = new EventEmitter<void>();\r\n //#endregion\r\n isAr: boolean = false;\r\n buttonType = ButtonType;\r\n showFiles: boolean = false;\r\n stylePositionClass = 'right-0';\r\n SaveButtonType: ButtonType = ButtonType.Submit;\r\n private layoutDirectionSubscritpion?: Subscription;\r\n\r\n constructor(\r\n private _injector: EnvironmentInjector,\r\n private dialogDataService: DialogDataService,\r\n private _layoutService: LayoutService,\r\n public localize?: LocalizePipe\r\n ) { }\r\n\r\n ngOnDestroy(): void {\r\n this.layoutDirectionSubscritpion?.unsubscribe();\r\n }\r\n\r\n l(key: string): string {\r\n if (this.localize != null\r\n && this.localize != undefined) {\r\n return this.localize.transform(key);\r\n }\r\n return key;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.showFiles =\r\n this.dialogDataService.getData()?.mode === Component_Modes.EDIT;\r\n this.isRtlModeEnabled();\r\n this.subscribeInRtlModeChange();\r\n // this.dialogService.clearData()\r\n\r\n let langue = localStorage.getItem(rtlModeKeys.rtlModeEnabled);\r\n\r\n if (langue && JSON.parse(langue)) {\r\n this.isAr = true\r\n }\r\n else {\r\n this.isAr = false\r\n }\r\n }\r\n\r\n isRtlModeEnabled() {\r\n if (this._layoutService.isRtlModeEnabled()) {\r\n this.stylePositionClass = 'left-0';\r\n }\r\n }\r\n\r\n subscribeInRtlModeChange() {\r\n this.layoutDirectionSubscritpion =\r\n this._layoutService.enableRtlModeSubject$.subscribe({\r\n next: (data) => {\r\n if (data && data == true) {\r\n this.stylePositionClass = 'left-0';\r\n } else {\r\n this.stylePositionClass = 'right-0';\r\n }\r\n },\r\n });\r\n }\r\n\r\n onSave() {\r\n this.onSaveClick.emit();\r\n }\r\n\r\n onCancel() {\r\n this.onCancelClick.emit();\r\n }\r\n\r\n async onFiles() {\r\n const conf = {\r\n data: {},\r\n styleClass: '',\r\n maximizable: true,\r\n }\r\n const ref = await openModalUploadGrid(this._injector, conf)\r\n //ref.onClose.subscribe((val?: any) => this._closeModal(val));\r\n }\r\n\r\n}\r\n","<div #footer class=\"p-dialog-footer {{stylePositionClass}} flex z-5\" [ngClass]=\"isOnlyCreate ? '': 'absolute bottom-0'\"\r\n style=\"direction: rtl;\">\r\n\r\n <div *ngIf=\"showFiles\">\r\n <Tsi-Button type=\"button\" text=\"Files\" icon=\"p-button-icon p-button-icon-left pi pi-paperclip\"\r\n styleClass=\"p-element p-button-text p-button p-component p-button-label\" (click)=\"onFiles()\">\r\n </Tsi-Button>\r\n </div>\r\n <div [ngStyle]=\"isAr ? {'text-align': 'end'} : {}\" class=\"col p-0 m-0\">\r\n <Tsi-Button *ngIf=\"!isConsult\"\r\n [buttonType]=\"SaveButtonType\"\r\n [text]=\"(this.isDuplicate ? 'gesc_achats_commande_dupliquer' : saveLabel) | localize\" icon=\"pi pi-check\"\r\n styleClass=\"p-element p-button-text p-button p-component ng-star-inserted p-button-label gap-1 save-btn\"\r\n (click)=\"onSave()\" [disabled]=\"saveDisabled\">\r\n </Tsi-Button>\r\n\r\n <Tsi-Button\r\n [text]=\"cancelLabel | localize\" icon=\"p-button-icon p-button-icon-left pi pi-times\"\r\n styleClass=\"p-element p-button-text p-button p-component p-button-label gap-1 cancel-btn\"\r\n (click)=\"onCancel()\" [disabled]=\"cancelDisabled\"></Tsi-Button>\r\n </div>\r\n</div>","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Component, OnInit, } from '@angular/core';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { LocalizationKeys } from '../../consts/localization-key';\r\nimport { Modes } from '../../enums';\r\nimport { Note } from '../../models/Notes/Note';\r\nimport { NoteService, ErrorResponseManagerService, TsiNotificationService, TsiConfirmationService, DialogDataService } from '../../services';\r\nimport { TsiFormComponentBaseComponent } from '../../tsi-base/components/tsi-form-base/tsi-form-base.component';\r\nimport { appProviders } from '../../consts/app-providers';\r\n\r\n@Component({\r\n selector: 'app-tsi-notes',\r\n templateUrl: './tsi-notes.component.html',\r\n styleUrls: ['./tsi-notes.component.scss'],\r\n providers: [...appProviders]\r\n})\r\n\r\nexport class TsiNotesComponent extends TsiFormComponentBaseComponent\r\n implements OnInit {\r\n note = new Note();\r\n\r\n\r\n constructor(\r\n public _notesService: NoteService,\r\n private _errorResponseManagerService: ErrorResponseManagerService,\r\n public override ref: DynamicDialogRef,\r\n public override config: DynamicDialogConfig,\r\n private _notificationService: TsiNotificationService,\r\n private _confirmationService: TsiConfirmationService,\r\n private dialogDataService: DialogDataService\r\n ) {\r\n super(ref, config);\r\n }\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n this.note.rowUid = this.dialogDataService.getData().id;\r\n this.note.className = this.dialogDataService.getData().class;\r\n if (\r\n (this.mode === Modes.edit || this.mode === Modes.delete || this.mode === Modes.consult) &&\r\n this.id !== undefined &&\r\n this.id !== null\r\n ) {\r\n this.isloading = true;\r\n this._notesService.getById(this.id).subscribe({\r\n next: (data) => {\r\n this.note = data;\r\n },\r\n error: (error) => {\r\n console.error('Error fetching note:', error);\r\n this._errorResponseManagerService.showErrorMessage(error);\r\n },\r\n complete: () => {\r\n this.isloading = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n override save(): void {\r\n super.save()\r\n this.saving = false;\r\n this.isloading = true;\r\n this.note.avertir ??= false;\r\n\r\n if (this.mode === Modes.create) {\r\n this._notesService.create(this.note).subscribe({\r\n next: () => {\r\n this._notificationService.info(this.l(LocalizationKeys.savedSuccessfully));\r\n this.hide(true);\r\n this.onSave.emit();\r\n },\r\n error: (response: HttpErrorResponse) => {\r\n this.saving = false;\r\n this.isloading = false;\r\n this._errorResponseManagerService.showErrorMessage(response);\r\n },\r\n complete: () => {\r\n this.isloading = false;\r\n }\r\n });\r\n }\r\n\r\n else if (\r\n this.mode === Modes.edit &&\r\n this.note.uid != null\r\n ) {\r\n this._notesService.update(this.note, this.note.uid).subscribe({\r\n next: () => {\r\n this._notificationService.info(this.l(LocalizationKeys.updatedSuccessfully));\r\n this.hide(true);\r\n this.onSave.emit();\r\n },\r\n error: (response: HttpErrorResponse) => {\r\n this.saving = false;\r\n this.isloading = false;\r\n this._errorResponseManagerService.showErrorMessage(response);\r\n },\r\n complete: () => {\r\n this.isloading = false;\r\n }\r\n });\r\n }\r\n\r\n else if (this.mode === Modes.delete) {\r\n this._confirmationService.confirm(\r\n LocalizationKeys.confirmDelete,\r\n undefined,\r\n (result: boolean) => {\r\n if (\r\n result &&\r\n this.note.uid != null\r\n ) {\r\n this._notesService.delete(this.note.uid).subscribe({\r\n next: () => {\r\n this._notificationService.success(this.l(LocalizationKeys.deletedSuccessfully));\r\n this.hide(true);\r\n this.onSave.emit();\r\n },\r\n error: (response: HttpErrorResponse) => {\r\n this._errorResponseManagerService.showErrorMessage(response);\r\n this.saving = false;\r\n this.isloading = false;\r\n },\r\n complete: () => {\r\n this.isloading = false;\r\n }\r\n });\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n}\r\n\r\n","<tsi-form class=\"form-horizontal\" autocomplete=\"off\" (onSubmit)=\"save()\" [isLoading]=\"isloading\">\r\n <Tsi-Modal-Header [inputTitle]=\"'shared_notes_add_notes' | localize \" (onCloseClick)=\"hide()\">\r\n </Tsi-Modal-Header>\r\n <fieldset [disabled]=\"isDeleteMode() || isConsultMode() \">\r\n <div class=\"modal-body\">\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'shared_notes_class_name'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-6\" [inputName]=\"'ClassName'\" [(inputField)]=\"note.className\"\r\n [disabled]=\"true\"></Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div presentationDesigner=\"Note\" class=\"grid flex\">\r\n <Tsi-Label class=\"col-1\" [labelValue]=\"'shared_notes_note'\"></Tsi-Label>\r\n <Tsi-Text-Area class=\"col-10\" [inputName]=\"'Note'\" [(inputField)]=\"note.note\" [rows]=\"5\"\r\n [cols]=\"5\"></Tsi-Text-Area>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div presentationDesigner=\"avertir\" class=\"grid flex\">\r\n <Tsi-Label class=\"col-1\" [labelValue]=\"'shared_notes_avertir'\"></Tsi-Label>\r\n <Tsi-CheckBox class=\"col-2\" [inputName]=\"'avertir'\" [(inputField)]=\"note.avertir\"></Tsi-CheckBox>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </fieldset>\r\n <Tsi-Modal-Footer [cancelDisabled]=\"saving\" [saveDisabled]=\"isSubmitDisabled()\"\r\n (onCancelClick)=\"hide()\"></Tsi-Modal-Footer>\r\n</tsi-form>","import { TsiNotesComponent } from \"../tsi-components/tsi-notes-createoredit/tsi-notes.component\";\r\n\r\nexport class SharedComponentReferenceHelper{\r\n\r\n public static compoentsReferences: { [key: string]: any} = {\r\n \"TsiNotesComponent\" : TsiNotesComponent,\r\n }\r\n \r\n}","export class DateHelper {\r\n\r\n public static DATE_DEBUT: string = \"dateDebutAnnee\";\r\n public static DATE_FIN: string = \"dateFinAnnee\";\r\n\r\n public static initializeDate(year: string, dateStatus: string): Date{\r\n let newDate: any;\r\n\r\n if(dateStatus == this.DATE_DEBUT)\r\n newDate = new Date(year + '-01-01');\r\n \r\n if(dateStatus == this.DATE_FIN)\r\n newDate = new Date(year + '-12-31');\r\n\r\n return newDate;\r\n }\r\n\r\n public static isISODateTime(value: any): boolean {\r\n const isoRegex = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}$/;\r\n\r\n if (typeof value !== 'string' || !isoRegex.test(value)) {\r\n return false;\r\n }\r\n\r\n const date = new Date(value);\r\n return !isNaN(date.getTime());\r\n }\r\n\r\n}","import { CSSUnits } from \"../enums/css-units\";\r\n\r\nexport class GridColumnStyleHelper {\r\n public static createWidthStyle(widthUnit: string = CSSUnits.VW,width?: number | null, minWidth?: number | null,maxWidth?: number | null) {\r\n return {'width': 'fit-content'}\r\n }\r\n}","export class Helpers {\r\n\r\n public static log(message: Object){\r\n console.log(message);\r\n }\r\n \r\n public static table(message: Object) {\r\n console.table(message);\r\n }\r\n }","import { KeyValue } from \"@angular/common\";\r\nimport { EnumDescription } from \"../types/enum-description.type\";\r\n\r\nexport class MappingHelper{\r\n public static ToKeyValuePairs(enumDescriptions : EnumDescription<any>): Array<KeyValue<any, string>>{\r\n let keyValuePairs : Array<KeyValue<any, string>> = [];\r\n\r\n for (const [key, description] of Object.entries(enumDescriptions)) {\r\n keyValuePairs.push({key, value: description});\r\n }\r\n\r\n return keyValuePairs;\r\n }\r\n}\r\n","export class ObjectHelper{\r\n public static isNotNullOrUndefined(obj: any): boolean{\r\n return obj != null && obj != undefined;\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { TsiFormComponentBaseComponent } from '../../tsi-base/components/tsi-form-base/tsi-form-base.component';\r\nimport { LocalizationKeys } from '../../consts/localization-key';\r\nimport { Modes, TypeImportEnum, InputTypes, CSSUnits } from '../../enums';\r\nimport { GridColumn } from '../../interfaces';\r\nimport { ModeleImportCreateRequest, ModeleImportDetail } from '../../models';\r\nimport { ModeleImportService, TsiNotificationService } from '../../services';\r\nimport { GridColumnStyleHelper } from '../../tsi-helpers';\r\nimport { ImportExportEndPoints } from '../../end-points/import-export-endpoint';\r\nimport { appProviders } from '../../consts/app-providers';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\n\r\n@Component({\r\n selector: 'app-create-or-edit-modele-import',\r\n templateUrl: './create-or-edit-modele-import.component.html',\r\n styleUrls: ['./create-or-edit-modele-import.component.scss'],\r\n providers: [...appProviders]\r\n})\r\nexport class CreateOrEditModeleImportComponent extends TsiFormComponentBaseComponent implements OnInit {\r\n\r\n modeleImportDetailColumns: Array<GridColumn> = [];\r\n modeleImport: ModeleImportCreateRequest = new ModeleImportCreateRequest()\r\n getColonneByClassNameEndPoint: string = \"\"\r\n getClassChildsByClassNameEndPoint: string = \"\"\r\n modeleImportEndPoints = ImportExportEndPoints\r\n _businnessClassName: string = \"\"\r\n eventsSubjectModeleImportDetail: Subject<void>;\r\n openedMode: any\r\n showModeleImportDetails: boolean = false\r\n\r\n constructor(private _modeleImportService: ModeleImportService,\r\n private _notificationService: TsiNotificationService,\r\n public override config: DynamicDialogConfig, public override ref?: DynamicDialogRef,) {\r\n super(ref, config);\r\n this.eventsSubjectModeleImportDetail = new Subject<void>();\r\n this._businnessClassName = config?.data?.businessClass\r\n this.getClassChildsByClassNameEndPoint = ImportExportEndPoints.getClassChildsAsKeyValuePair(this._businnessClassName)\r\n this.initModeleImportDetailColumns()\r\n this.openedMode = this.config.data?.mode\r\n }\r\n\r\n private _updateModeleImportFromGrid() {\r\n this.eventsSubjectModeleImportDetail.next();\r\n }\r\n\r\n onSaveModeleImportDetails(gridData: Array<ModeleImportDetail>) {\r\n this.modeleImport.modeleImportDetails = gridData\r\n }\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n if (this.config.data != undefined) {\r\n this.modeleImport.classe = this.config?.data?.businessClass\r\n this.modeleImport.form = this.formName\r\n\r\n if (this.openedMode == Modes.edit && this.config.data?.id != undefined) {\r\n this._modeleImportService.getById(this.config.data?.id)\r\n .subscribe({\r\n next: (data) => {\r\n this.modeleImport = data\r\n this.updateValuesWithParentColumName()\r\n this.typeImportChange(this.modeleImport.ordreOuTitreColonne)\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n updateValuesWithParentColumName() {\r\n let filtredData = this.modeleImport.modeleImportDetails\r\n .filter(x => x.nomClasseDetail == undefined || x.nomClasseDetail == '')\r\n filtredData.forEach(item => {\r\n item.nomClasseDetail = this._businnessClassName\r\n })\r\n }\r\n\r\n typeImportChange(event: any) {\r\n this.initModeleImportDetailColumns()\r\n if (event == TypeImportEnum.TitreColonne) {\r\n let index = this.modeleImportDetailColumns.findIndex(x => x.field == \"numero\")\r\n if (index != -1) {\r\n this.modeleImportDetailColumns.splice(index, 1)\r\n }\r\n } else if (event == TypeImportEnum.OrdreColonne) {\r\n let index = this.modeleImportDetailColumns.findIndex(x => x.field == \"nomColonneFichier\")\r\n if (index != -1) {\r\n this.modeleImportDetailColumns.splice(index, 1)\r\n }\r\n }\r\n if (event != undefined) {\r\n this.showModeleImportDetails = true\r\n } else {\r\n this.showModeleImportDetails = false\r\n }\r\n }\r\n\r\n private initModeleImportDetailColumns() {\r\n this.modeleImportDetailColumns = [\r\n {\r\n field: \"nomClasseDetail\",\r\n header: \"Nom Classe Detail\",\r\n type: InputTypes.SEARCH_COMBO,\r\n listSourceUrl: this.getClassChildsByClassNameEndPoint,\r\n idField: \"value\",\r\n labelField: \"value\",\r\n isFiltered: false,\r\n watchForChanges: true,\r\n style: GridColumnStyleHelper.createWidthStyle(CSSUnits.VW, 20)\r\n },\r\n {\r\n field: \"colonneClasse\",\r\n header: \"Colonne Classe\",\r\n type: InputTypes.SEARCH_COMBO,\r\n listSourceUrl: this.buildGetChildClassColumns,\r\n idField: \"value\",\r\n labelField: \"value\",\r\n isFiltered: false,\r\n },\r\n {\r\n field: \"numero\",\r\n header: \"Ordre\",\r\n type: InputTypes.INTEGER,\r\n watchForChanges: true\r\n },\r\n {\r\n field: \"nomColonneFichier\",\r\n header: \"Nom Colonne Fichier\",\r\n type: InputTypes.TEXT_BOX,\r\n watchForChanges: true\r\n },\r\n {\r\n field: \"nomColonneClefEtrangere\",\r\n header: \"Nom Colonne Cle Etrangère\",\r\n watchForChanges: true,\r\n type: InputTypes.SEARCH_COMBO,\r\n listSourceUrl: this.buildGetColummnForForeignKeyClass,\r\n idField: \"key\",\r\n labelField: \"value\",\r\n isFiltered: false,\r\n },\r\n ]\r\n }\r\n\r\n buildGetColummnForForeignKeyClass(currentRowItem: ModeleImportDetail) {\r\n let columnName = currentRowItem?.colonneClasse ?? \"\"\r\n let parentEntityName = currentRowItem?.nomClasseDetail ?? \"\"\r\n return ImportExportEndPoints.getColonnesByClassNameAsKeyValuePair(parentEntityName, columnName)\r\n }\r\n\r\n buildGetChildClassColumns(currentRowItem: ModeleImportDetail) {\r\n let parentEntityName = currentRowItem?.nomClasseDetail ?? \"\"\r\n // if (parentEntityName?.endsWith('s')) {\r\n // parentEntityName = parentEntityName.slice(0, -1);\r\n // }\r\n return ImportExportEndPoints.getColonnesByClassNameAsKeyValuePair(parentEntityName, \"\")\r\n }\r\n\r\n buildGetChildChildClass(currentRowItem: ModeleImportDetail) {\r\n let className = currentRowItem?.nomClasseDetail\r\n if (className?.endsWith('s')) {\r\n className = className.slice(0, -1);\r\n }\r\n return ImportExportEndPoints.getClassChildsAsKeyValuePair(className)\r\n }\r\n\r\n deleteValueFromParentModel() {\r\n let filtredData = this.modeleImport.modeleImportDetails\r\n .filter(x => x.nomClasseDetail == this._businessClass)\r\n filtredData.forEach(item => {\r\n item.nomClasseDetail = undefined\r\n })\r\n }\r\n\r\n override save(): void {\r\n super.save()\r\n this.saving = true\r\n this.isloading = true\r\n this._updateModeleImportFromGrid()\r\n this.deleteValueFromParentModel()\r\n if (this.openedMode == Modes.create) {\r\n this._modeleImportService.create(this.modeleImport).subscribe(\r\n {\r\n next: () => {\r\n this._notificationService.success(this.l(LocalizationKeys.savedSuccessfully));\r\n this.hide(true);\r\n this.onSave.emit();\r\n this.isloading = false;\r\n }\r\n }\r\n )\r\n }\r\n else if (this.openedMode == Modes.edit && this.modeleImport.uid != undefined) {\r\n this._modeleImportService.update(this.modeleImport, this.modeleImport.uid).subscribe(\r\n {\r\n next: (data) => {\r\n this._notificationService.success(this.l(LocalizationKeys.updatedSuccessfully));\r\n this.hide(true);\r\n this.onSave.emit();\r\n this.isloading = false;\r\n }\r\n }\r\n )\r\n }\r\n }\r\n\r\n}\r\n","<tsi-form class=\"form-horizontal\" [isLoading]=\"isloading\" autocomplete=\"off\">\r\n <Tsi-Modal-Header [inputTitle]=\"header | modalLabel : mode : 'Modèle import'\"\r\n (onCloseClick)=\"hide()\"></Tsi-Modal-Header>\r\n\r\n <fieldset [disabled]=\"isDeleteMode() || isConsultMode() \">\r\n\r\n <div class=\"modal-body\">\r\n <div class=\"grid\">\r\n <div class=\"col-8\">\r\n <div class=\"grid\">\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Nom Modele'\"></Tsi-Label>\r\n <Tsi-Text-Box [(inputField)]=\"modeleImport.nom\" [disabled]=\"false\" class=\"col-9\"\r\n [inputName]=\"'nomModele'\"></Tsi-Text-Box>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Nom Form'\"></Tsi-Label>\r\n <Tsi-Text-Box [(inputField)]=\"modeleImport.form\" [disabled]=\"true\" class=\"col-9\"\r\n [inputName]=\"'nomForm'\"></Tsi-Text-Box>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Nom Classe'\"></Tsi-Label>\r\n <Tsi-Text-Box [(inputField)]=\"modeleImport.classe\" [disabled]=\"true\" class=\"col-9\"\r\n [inputName]=\"'nomClasse'\"></Tsi-Text-Box>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Premiere Ligne Import'\"></Tsi-Label>\r\n <Tsi-Integer [(inputField)]=\"modeleImport.premiereLigneImport\" [disabled]=\"false\" class=\"col-9\"\r\n [inputName]=\"'premiereLigneImport'\"></Tsi-Integer>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Derniere Ligne Import'\"></Tsi-Label>\r\n <Tsi-Integer [(inputField)]=\"modeleImport.dernierLigneImport\" [disabled]=\"false\" class=\"col-9\"\r\n [inputName]=\"'dernierLigneImport'\"></Tsi-Integer>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Arrete lors de premier erreur '\"></Tsi-Label>\r\n <Tsi-CheckBox [(inputField)]=\"modeleImport.arretePremierErreur\" [disabled]=\"false\" class=\"col-9\"\r\n [inputName]=\"'arretePremierErreur'\"></Tsi-CheckBox>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Ordre Ou Titre Colonne'\"></Tsi-Label>\r\n <Tsi-Search-Combo \r\n (bindChange)=\"typeImportChange($event)\"\r\n class=\"col-9\" [listSourceUrl]=\"\r\n modeleImportEndPoints.getTypeNatureDocumentEnum()\r\n \" [(bind)]=\"modeleImport.ordreOuTitreColonne\" id-field=\"key\" label-field=\"value\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div style=\"max-width: 1600px; overflow: auto;\" *ngIf=\"showModeleImportDetails\">\r\n <Tsi-Generic-Editable-Grid [gridData]=\"modeleImport.modeleImportDetails\"\r\n [events]=\"eventsSubjectModeleImportDetail.asObservable()\"\r\n (rowDeletedEventEmitter)=\"onSaveModeleImportDetails($event)\"\r\n [columns]=\"modeleImportDetailColumns\" [parent]=\"this\" [showSaveButton]=\"false\" [key]=\"'numLigne'\">\r\n </Tsi-Generic-Editable-Grid>\r\n </div>\r\n\r\n\r\n </fieldset>\r\n\r\n <Tsi-Modal-Footer [cancelDisabled]=\"saving\" [saveDisabled]=\"isSubmitDisabled()\" (onCancelClick)=\"hide()\"\r\n (onSaveClick)=\"save()\"></Tsi-Modal-Footer>\r\n\r\n</tsi-form>","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { FileUpload } from 'primeng/fileupload';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { AlertImportMessageComponent } from '../alert-import-message/alert-import-message.component';\r\nimport { CreateOrEditModeleImportComponent } from '../create-or-edit-modele-import/create-or-edit-modele-import.component';\r\nimport { TsiViewGridComponent } from '../output-components/tsi-view-grid/tsi-view-grid.component';\r\nimport { TooltipPosition } from '../../enums/tooltipPosition.enum';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { LocalizationKeys } from '../../consts/localization-key';\r\nimport { InputTypes, FilterOperatorType, Modes } from '../../enums';\r\nimport { GridColumn, ButtonClickResult } from '../../interfaces';\r\nimport { SearchField } from '../../models';\r\nimport { ModeleImportService, TsiConfirmationService, TsiNotificationService, ErrorResponseManagerService, TsiMessageService, TsiModalService } from '../../services';\r\nimport { TsiFormComponentBaseComponent } from '../../tsi-base/components/tsi-form-base/tsi-form-base.component';\r\nimport { Segment } from '../../end-points';\r\nimport { appProviders } from '../../consts/app-providers';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\n\r\n\r\n@Component({\r\n selector: 'app-manage-import-export',\r\n templateUrl: './manage-import-export.component.html',\r\n //encapsulation: ViewEncapsulation.None,\r\n styleUrls: ['./manage-import-export.component.scss'],\r\n providers: [...appProviders]\r\n})\r\nexport class ManageImportExportComponent extends TsiFormComponentBaseComponent implements OnInit, OnDestroy {\r\n\r\n @ViewChild(TsiViewGridComponent) gridComponent!: TsiViewGridComponent;\r\n @ViewChild('fileUpload') fileUploader!: FileUpload;\r\n @ViewChild(\"viewGrid\") viewGridComponent?: TsiViewGridComponent;\r\n tooltipPosition = TooltipPosition;\r\n\r\n toUploadFileData: any;\r\n onRemove($event: any) {\r\n this.toUploadFileData = undefined;\r\n }\r\n onClear($event: any) {\r\n this.toUploadFileData = undefined;\r\n }\r\n onFileSelected(event: any): void {\r\n const file: File = event.currentFiles[0];\r\n this.toUploadFileData = file;\r\n }\r\n onImportFile(event: any) {\r\n this.modeleImportService.uploadJsonFile(this.toUploadFileData)\r\n .subscribe(\r\n response => {\r\n if (response.error == false) {\r\n this.notificationService.success('shared_importModele_json_uploaded_successfully');\r\n } else {\r\n this.notificationService.error(response.message)\r\n }\r\n this.gridComponent.refresh(true);\r\n },\r\n error => {\r\n console.log(\"error\")\r\n }\r\n )\r\n this.fileUploader.clear()\r\n }\r\n\r\n columnsJson: Array<GridColumn> = [\r\n {\r\n header: \"shared_importModele_json_name\",\r\n field: \"jsonFileName\"\r\n },\r\n {\r\n header: '',\r\n field: 'fromJsonToDatabase',\r\n isButton: true,\r\n buttonIcon: 'pi pi-arrow-circle-up',\r\n styleClass: 'p-button-text p-button-secondary'\r\n },\r\n ];\r\n key: string = 'jsonFileName';\r\n gridData: any\r\n\r\n @ViewChild('importFileToExecuteFileUpload') importFileToExecuteFileUpload?: FileUpload;\r\n\r\n columns: any\r\n\r\n isImportFileToExecuteVisible: boolean = false\r\n toUploadToExecuteFile: any = undefined\r\n toUploadWithoutModel: any = undefined\r\n toImportModeleUid?: string\r\n\r\n columnsHistory: Array<GridColumn> = [\r\n {\r\n header: \"shared_importModele_code_import\",\r\n field: \"codeImport\"\r\n },\r\n {\r\n header: \"shared_importModele_date_import\",\r\n field: \"dateImport\"\r\n },\r\n {\r\n header: \"shared_importModele_nombre_lignes\",\r\n field: \"nombreLignes\"\r\n },\r\n {\r\n header: '',\r\n field: 'deleteFromDatabase',\r\n isButton: true,\r\n buttonIcon: 'pi pi-trash',\r\n styleClass: 'p-button-text p-button-secondary'\r\n },\r\n ];\r\n historyGridData: any\r\n importHistoryKey: string = 'codeImport';\r\n\r\n searchFields: Array<SearchField> = [\r\n ]\r\n private _dialogRef?: DynamicDialogRef;\r\n\r\n constructor(public modeleImportService: ModeleImportService,\r\n private confirmationService: TsiConfirmationService,\r\n private notificationService: TsiNotificationService,\r\n public override config: DynamicDialogConfig, private _tsiModalService: TsiModalService,\r\n private _errorResponseManagerService: ErrorResponseManagerService,\r\n public override ref?: DynamicDialogRef) {\r\n super(ref, config)\r\n this.searchFields = [\r\n {\r\n type: InputTypes.TEXT_BOX,\r\n field: \"Classe\",\r\n labelValue: \"Classe\",\r\n operator: FilterOperatorType.EQUAL,\r\n styleClass: 'col-6',\r\n inputStyleClass: 'col-3',\r\n labelStyleClass: 'col-3',\r\n disabled: true,\r\n value: this.config?.data?.businessClass\r\n }\r\n ]\r\n this.columns = [\r\n {\r\n field: 'nomModele',\r\n header: 'Nom'\r\n },\r\n {\r\n header: '',\r\n field: 'edit',\r\n isButton: true,\r\n buttonIcon: 'pi pi-file-edit',\r\n styleClass: 'p-button-text p-button-success',\r\n toolTipText: 'Modifier'\r\n },\r\n {\r\n header: '',\r\n field: 'exportJson',\r\n isButton: true,\r\n buttonIcon: 'pi pi-file-export',\r\n styleClass: 'p-button-text p-button-help',\r\n toolTipText: 'Exporter Json'\r\n },\r\n {\r\n header: '',\r\n field: 'export',\r\n isButton: true,\r\n buttonIcon: 'pi pi-file-excel',\r\n styleClass: 'p-button-text p-button-warning',\r\n toolTipText: 'Exporter'\r\n },\r\n {\r\n header: '',\r\n field: 'import',\r\n isButton: true,\r\n buttonIcon: 'pi pi-file-import',\r\n styleClass: 'p-button-text',\r\n toolTipText: 'Importer'\r\n },\r\n {\r\n header: '',\r\n field: 'delete',\r\n isButton: true,\r\n buttonIcon: 'pi pi-trash',\r\n styleClass: 'p-button-text p-button-danger',\r\n toolTipText: 'Supprimer'\r\n },\r\n {\r\n header: '',\r\n field: 'downloadJson',\r\n isButton: true,\r\n buttonIcon: 'pi pi-arrow-circle-down',\r\n styleClass: 'p-button-text p-button-help',\r\n toolTipText: 'Export Json Server'\r\n },\r\n ];\r\n }\r\n\r\n\r\n override async ngOnInit(): Promise<void> {\r\n\r\n super.ngOnInit()\r\n let data = await firstValueFrom(this.modeleImportService.GetJsonFiles(this.config?.data?.formName))\r\n this.gridData = data\r\n if (Segment.production) {\r\n let buttonAdBuiltinTemplatesIndex = this.columns.findIndex((col: GridColumn) => {\r\n return col.field == \"downloadJson\"\r\n })\r\n if (buttonAdBuiltinTemplatesIndex != -1) {\r\n this.columns.splice(buttonAdBuiltinTemplatesIndex, 1)\r\n }\r\n }\r\n this.historyGridData = await firstValueFrom(this.modeleImportService.GetImportHistory(this.config?.data?.businessClass))\r\n }\r\n\r\n openModal() {\r\n this._dialogRef = this._tsiModalService.open(CreateOrEditModeleImportComponent, {\r\n data: {\r\n businessClass: this.config?.data?.businessClass,\r\n formName: this.config?.data?.formName,\r\n mode: Modes.create\r\n },\r\n styleClass: '',\r\n width: '75vw',\r\n height: '55vw',\r\n maximizable: true,\r\n });\r\n\r\n this._dialogRef.onClose.subscribe((val?: any) => {\r\n if (this.viewGridComponent) {\r\n this.viewGridComponent.refresh(true)\r\n }\r\n });\r\n }\r\n\r\n buttonClicked(data: ButtonClickResult) {\r\n if (data.field == \"edit\") {\r\n this._dialogRef = this._tsiModalService.open(CreateOrEditModeleImportComponent, {\r\n data: {\r\n id: data.key,\r\n businessClass: this.config?.data?.businessClass,\r\n mode: Modes.edit\r\n },\r\n styleClass: '',\r\n width: '75vw',\r\n height: '55vw',\r\n maximizable: true,\r\n });\r\n\r\n this._dialogRef.onClose.subscribe((val?: any) => {\r\n if (this.viewGridComponent) {\r\n this.viewGridComponent.refresh(true)\r\n }\r\n });\r\n }\r\n else if (data.field == \"delete\") {\r\n this.deleteModeleImport(data)\r\n }\r\n else if (data.field == \"import\") {\r\n this.isImportFileToExecuteVisible = true\r\n this.toImportModeleUid = data.key\r\n }\r\n else if (data.field == \"export\") {\r\n this.exportData(data.key)\r\n }\r\n else if (data.field == \"exportJson\") {\r\n this.exportDataJson(data.key)\r\n }\r\n else if (data.field == \"downloadJson\") {\r\n this.exportDataJsonServer(data.key)\r\n }\r\n }\r\n\r\n exportData(id: string) {\r\n if (id != undefined && id != null) {\r\n this.isloading = true\r\n this.modeleImportService.executeExport(id).subscribe(\r\n {\r\n next: (data: any) => {\r\n this.downloadFile(data?.data)\r\n this.isloading = false\r\n },\r\n error: (error: any) => {\r\n this.isloading = false;\r\n this.notificationService.error(error);\r\n }\r\n }\r\n )\r\n }\r\n }\r\n\r\n exportDataJson(id: string) {\r\n if (id != undefined && id != null) {\r\n this.isloading = true\r\n this.modeleImportService.executeExportJson(id).subscribe(\r\n {\r\n next: (data: any) => {\r\n this.downloadFile(data?.data)\r\n this.isloading = false\r\n },\r\n error: (error: any) => {\r\n this.isloading = false;\r\n this.notificationService.error(error);\r\n }\r\n }\r\n )\r\n }\r\n }\r\n\r\n exportDataJsonServer(id: string) {\r\n if (id != undefined && id != null) {\r\n this.isloading = true\r\n this.modeleImportService.executeExportJsonServer(id).subscribe(\r\n\r\n response => {\r\n this.isloading = false\r\n this.refreshGrid();\r\n },\r\n error => {\r\n this.isloading = false;\r\n this.notificationService.error(error);\r\n }\r\n\r\n )\r\n }\r\n }\r\n\r\n downloadFile(data: any) {\r\n let blobUrl = \"data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,\" + data.fileContent;\r\n let link = document.createElement(\"a\");\r\n link.setAttribute(\"href\", blobUrl);\r\n link.setAttribute(\"download\", data.fileName);\r\n link.style.display = 'none';\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n\r\n\r\n deleteModeleImport(data: any) {\r\n this.confirmationService.confirm(\r\n LocalizationKeys.confirmDelete,\r\n undefined,\r\n (result: boolean) => {\r\n if (result && data.key != null && data.key != undefined) {\r\n this.isloading = true;\r\n this.modeleImportService.delete(data.key).subscribe(\r\n {\r\n next: () => {\r\n this.gridComponent.refresh(true);\r\n this.notificationService.success(LocalizationKeys.deletedSuccessfully);\r\n this.isloading = false;\r\n },\r\n error: (error: any) => {\r\n this.isloading = false;\r\n this.notificationService.error(error);\r\n }\r\n }\r\n );\r\n }\r\n }\r\n );\r\n }\r\n\r\n onImportFileToExecute_FileSelected(event: any): void {\r\n const file: File = event.currentFiles[0];\r\n this.toUploadToExecuteFile = file;\r\n this.isloading = false\r\n }\r\n\r\n onImportFileToExecute_Clear(event: any) {\r\n this.toUploadToExecuteFile = undefined\r\n this.isloading = false\r\n }\r\n\r\n onImportFileToExecute_Remove(event: any) {\r\n this.toUploadToExecuteFile = undefined\r\n }\r\n\r\n onImportFileToExecute_ImportFile(event: any) {\r\n if (this.toImportModeleUid && this.toUploadToExecuteFile) {\r\n this.isloading = true\r\n this.isImportFileToExecuteVisible = false\r\n this.modeleImportService.executeImport(this.toImportModeleUid, this.toUploadToExecuteFile)\r\n .subscribe(\r\n {\r\n next: async (result) => {\r\n console.log(result)\r\n this.isImportFileToExecuteVisible = false\r\n this.isloading = false\r\n this.historyGridData = await firstValueFrom(this.modeleImportService.GetImportHistory(this.config?.data?.businessClass))\r\n this._tsiModalService.open(AlertImportMessageComponent, {\r\n data: {\r\n executeImportResult: result?.data,\r\n },\r\n closable: true,\r\n draggable: true,\r\n width: '35vw',\r\n height: '25vw',\r\n })\r\n },\r\n error: (error: HttpErrorResponse) => {\r\n this.isloading = false\r\n this._errorResponseManagerService.showErrorMessage(error);\r\n }\r\n }\r\n )\r\n }\r\n }\r\n\r\n onImportFileWithoutModel_FileSelected(event: any): void {\r\n const file: File = event.currentFiles[0];\r\n this.toUploadWithoutModel = file;\r\n this.isloading = false\r\n }\r\n\r\n onImportFileWithoutModel_Clear(event: any) {\r\n this.toUploadWithoutModel = undefined\r\n this.isloading = false\r\n }\r\n\r\n onImportFileWithoutModel_Remove(event: any) {\r\n this.toUploadWithoutModel = undefined\r\n }\r\n\r\n onImportFileWithoutModel_ImportFile(event: any) {\r\n if (this.toUploadWithoutModel) {\r\n this.isloading = true\r\n this.modeleImportService.executeImportWithoutModel(this.toUploadWithoutModel)\r\n .subscribe(\r\n {\r\n next: async (result) => {\r\n console.log(result)\r\n this.isloading = false\r\n this.historyGridData = await firstValueFrom(this.modeleImportService.GetImportHistory(this.config?.data?.businessClass))\r\n this._tsiModalService.open(AlertImportMessageComponent, {\r\n data: {\r\n executeImportResult: result?.data,\r\n },\r\n closable: true,\r\n draggable: true,\r\n width: '35vw',\r\n height: '25vw',\r\n })\r\n\r\n }\r\n }\r\n )\r\n }\r\n }\r\n\r\n loadGridData(): void {\r\n this.modeleImportService.GetJsonFiles(this.config?.data?.formName).subscribe(data => {\r\n this.gridData = data;\r\n }, error => {\r\n console.error('Error loading grid data', error);\r\n });\r\n }\r\n\r\n refreshGrid(): void {\r\n this.loadGridData();\r\n }\r\n\r\n handleButtonColumnExecuteClicked(event: ButtonClickResult) {\r\n if (event.field == 'fromJsonToDatabase') {\r\n this.modeleImportService.executeImportJson(event.key, this.config?.data?.formName)\r\n .subscribe(\r\n response => {\r\n this.gridComponent.refresh(true);\r\n },\r\n error => {\r\n console.error('Error importing json:', error);\r\n }\r\n );\r\n }\r\n else if (event.field == 'deleteFromDatabase') {\r\n this.confirmationService.confirm(\r\n LocalizationKeys.confirmDelete,\r\n undefined,\r\n (result: boolean) => {\r\n if (result) {\r\n this.modeleImportService.deleteImport(event.key, this.config?.data?.businessClass)\r\n .subscribe(\r\n async response => {\r\n this.gridComponent.refresh(true);\r\n this.historyGridData = await firstValueFrom(this.modeleImportService.GetImportHistory(this.config?.data?.businessClass))\r\n this.notificationService.success(LocalizationKeys.deletedSuccessfully);\r\n },\r\n error => {\r\n console.error('Error importing json:', error);\r\n }\r\n );\r\n }\r\n }\r\n );\r\n\r\n }\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n\r\n <p-tabView>\r\n <p-tabPanel [header]=\"'shared_execute_import_model_import_export' | localize\" class=\"pt-3 px-2\">\r\n <div class=\"card\">\r\n <div *busy=\"isloading\"></div>\r\n <div class=\"grid\">\r\n <div class=\"grid col-10\">\r\n <div>\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'shared_reporting_form'\">\r\n </Tsi-Label>\r\n <!-- <p-dropdown class=\"col-10 tsi-component\" class=\"tsi-component\" styleClass=\"tsi-component\" appendTp=\"body\"\r\n optionLabel=\"value\" optionValue=\"key\" [filter]=\"true\"\r\n filterBy=\"value\" [showClear]=\"true\" placeholder=\"{{'shared_reporting_select_form' | localize}}\"\r\n [disabled]=\"true\">\r\n </p-dropdown> -->\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <p-toolbar styleClass=\"mb-4 gap-2\">\r\n <ng-template pTemplate=\"left\">\r\n <Tsi-Button [text]=\"'shared_reporting_add_report' | localize\" icon=\"p-button-icon p-button-icon-left pi pi-plus\"\r\n styleClass=\"p-element p-button-success mr-2 p-button p-component ng-star-inserted p-button-label\" (click)=\"openModal()\" ></Tsi-Button>\r\n </ng-template>\r\n <ng-template pTemplate=\"right\">\r\n <p-fileUpload #fileUpload name=\"demo[]\" (onBeforeUpload)=\"onImportFile($event)\"\r\n (onSelect)=\"onFileSelected($event)\" (onClear)=\"onClear($event)\" (onRemove)=\"onRemove($event)\" [multiple]=\"false\"\r\n accept=\"application/json\" [maxFileSize]=\"1000000\"\r\n [invalidFileSizeMessageSummary]=\"'shared_file_upload_invalid_file_size_message_summary' | localize\"\r\n [invalidFileSizeMessageDetail]=\"'shared_file_upload_invalid_file_size_message_detail' | localize\"\r\n [invalidFileTypeMessageSummary]=\"'shared_file_upload_invalid_file_type_message_summary' | localize\"\r\n [invalidFileLimitMessageDetail]=\"'shared_file_upload_invalid_file_limit_message_detail' | localize\"\r\n [invalidFileLimitMessageSummary]=\"'shared_file_upload_invalid_file_limit_message_summary' | localize\"\r\n [invalidFileTypeMessageDetail]=\"'shared_file_upload_invalid_file_type_message_detail' | localize\"\r\n [chooseIcon]=\"'pi pi-paperclip'\" cancelStyleClass=\"p-button-secondary\" uploadStyleClass=\"p-button-help\"\r\n removeStyleClass=\"p-button-danger\" [chooseLabel]=\"'shared_reporting_choose_report_file' | localize\"\r\n [uploadLabel]=\"'shared_reporting_import_report' | localize\"\r\n [cancelLabel]=\"'shared_reporting_cancel_choose_report_file' | localize\">\r\n <ng-template *ngIf=\"toUploadFileData\" pTemplate=\"fileupload-content\">\r\n </ng-template>\r\n </p-fileUpload>\r\n </ng-template>\r\n </p-toolbar>\r\n \r\n <tsi-view-grid\r\n #viewGrid\r\n [header]=\"'shared_execute_import_model_import_export' |localize\" \r\n [searchFields]=\"searchFields\"\r\n [showConsultButton]=\"false\"\r\n [getDataFromApi]=\"true\"\r\n [crudService]=\"modeleImportService\"\r\n (buttonColumnClicked)=\"buttonClicked($event)\"\r\n [formName]=\"'app-manage-import-export'\"\r\n [columns]=\"columns\" key=\"uid\">\r\n </tsi-view-grid>\r\n </div>\r\n </p-tabPanel>\r\n\r\n <p-tabPanel [header]=\"'shared_execute_import_model_import_export_default' | localize\" class=\"pt-3 px-2\">\r\n <div class=\"grid\">\r\n <tsi-view-grid class=\"col-12\" \r\n [header]=\"'shared_execute_import_model_import_export_default' |localize\" \r\n [columns]=\"columnsJson\"\r\n [getDataFromApi]=\"false\"\r\n [gridData]=\"gridData\"\r\n [key]=\"key\"\r\n [formName]=\"'modele-import-par-default'\"\r\n (buttonColumnClicked)=\"handleButtonColumnExecuteClicked($event)\"\r\n ></tsi-view-grid>\r\n </div>\r\n </p-tabPanel>\r\n\r\n <p-tabPanel [header]=\"'shared_execute_import_history' | localize\" class=\"pt-3 px-2\">\r\n <div class=\"grid\">\r\n <tsi-view-grid class=\"col-12\" \r\n [header]=\"'shared_execute_import_history' |localize\" \r\n [columns]=\"columnsHistory\"\r\n [getDataFromApi]=\"false\"\r\n [gridData]=\"historyGridData\"\r\n [key]=\"importHistoryKey\"\r\n [formName]=\"'modele-import-par-default'\"\r\n (buttonColumnClicked)=\"handleButtonColumnExecuteClicked($event)\"\r\n ></tsi-view-grid>\r\n </div>\r\n </p-tabPanel>\r\n\r\n <p-tabPanel [header]=\"'shared_execute_import_without_model' | localize\" class=\"pt-3 px-2\">\r\n <ng-template pTemplate=\"body\">\r\n <p-fileUpload #importFileToReportFileUpload name=\"importFileToReport\" [multiple]=\"false\"\r\n (onSelect)=\"onImportFileWithoutModel_FileSelected($event)\" (onClear)=\"onImportFileWithoutModel_Clear($event)\"\r\n (onBeforeUpload)=\"onImportFileWithoutModel_ImportFile($event)\"\r\n (onRemove)=\"onImportFileWithoutModel_Remove($event)\"\r\n accept=\".xls,.xlsx\" [maxFileSize]=\"10000000\"\r\n [invalidFileSizeMessageSummary]=\"'shared_file_upload_invalid_file_size_message_summary' | localize\"\r\n [invalidFileSizeMessageDetail]=\"'shared_file_upload_invalid_file_size_message_detail' | localize\"\r\n [invalidFileTypeMessageSummary]=\"'shared_file_upload_invalid_file_type_message_summary' | localize\"\r\n [invalidFileLimitMessageDetail]=\"'shared_file_upload_invalid_file_limit_message_detail' | localize\"\r\n [invalidFileLimitMessageSummary]=\"'shared_file_upload_invalid_file_limit_message_summary' | localize\"\r\n [invalidFileTypeMessageDetail]=\"'shared_file_upload_invalid_file_type_message_detail' | localize\"\r\n [chooseIcon]=\"'pi pi-paperclip'\" cancelStyleClass=\"p-button-secondary\" uploadStyleClass=\"p-button-help\"\r\n removeStyleClass=\"p-button-danger\" [chooseLabel]=\"'shared_reporting_choose_report_file' | localize\"\r\n [uploadLabel]=\"'shared_reporting_import_report' | localize\"\r\n [cancelLabel]=\"'shared_reporting_cancel_choose_report_file' | localize\">\r\n <ng-template pTemplate=\"fileupload-content\">\r\n </ng-template>\r\n </p-fileUpload>\r\n </ng-template>\r\n </p-tabPanel>\r\n\r\n </p-tabView>\r\n\r\n <div class=\"p-1\">\r\n <Tsi-Button styleClass=\"p-element p-button-text p-button-raised p-button-rounded mr-2 p-button p-component p-button-icon-only\" [tooltipText]=\"'shared_import_export_refresh'\" [tooltipPosition]=\"tooltipPosition.Top\"\r\n icon=\"p-button-icon pi pi-refresh\" class=\"p-button-text p-button-raised p-button-rounded mr-2\"></Tsi-Button>\r\n </div>\r\n\r\n <!-- dialog to import file to report -->\r\n <p-dialog header=\"{{'shared_reporting_select_file_to_import_into_report' | localize}}\" [(visible)]=\"isImportFileToExecuteVisible\" [style]=\"{width: '50vw'}\">\r\n <!-- <Tsi-Modal-Header (onCloseClick)=\"onImportFileToReportModalCancelClick()\" [inputTitle]=\"'shared_reporting_select_file_to_import_into_report'\"></Tsi-Modal-Header> -->\r\n\r\n <ng-template pTemplate=\"body\">\r\n <p-fileUpload #importFileToReportFileUpload name=\"importFileToReport\" [multiple]=\"false\"\r\n (onSelect)=\"onImportFileToExecute_FileSelected($event)\" (onClear)=\"onImportFileToExecute_Clear($event)\"\r\n (onBeforeUpload)=\"onImportFileToExecute_ImportFile($event)\"\r\n (onRemove)=\"onImportFileToExecute_Remove($event)\"\r\n accept=\".xls,.xlsx\" [maxFileSize]=\"10000000\"\r\n [invalidFileSizeMessageSummary]=\"'shared_file_upload_invalid_file_size_message_summary' | localize\"\r\n [invalidFileSizeMessageDetail]=\"'shared_file_upload_invalid_file_size_message_detail' | localize\"\r\n [invalidFileTypeMessageSummary]=\"'shared_file_upload_invalid_file_type_message_summary' | localize\"\r\n [invalidFileLimitMessageDetail]=\"'shared_file_upload_invalid_file_limit_message_detail' | localize\"\r\n [invalidFileLimitMessageSummary]=\"'shared_file_upload_invalid_file_limit_message_summary' | localize\"\r\n [invalidFileTypeMessageDetail]=\"'shared_file_upload_invalid_file_type_message_detail' | localize\"\r\n [chooseIcon]=\"'pi pi-paperclip'\" cancelStyleClass=\"p-button-secondary\" uploadStyleClass=\"p-button-help\"\r\n removeStyleClass=\"p-button-danger\" [chooseLabel]=\"'shared_reporting_choose_report_file' | localize\"\r\n [uploadLabel]=\"'shared_reporting_import_report' | localize\"\r\n [cancelLabel]=\"'shared_reporting_cancel_choose_report_file' | localize\">\r\n <ng-template pTemplate=\"fileupload-content\">\r\n </ng-template>\r\n </p-fileUpload>\r\n </ng-template>\r\n \r\n\r\n <!-- <Tsi-Modal-Footer (onCancelClick)=\"onImportFileToReportModalCancelClick()\"\r\n (onSaveClick)=\"onImportFileToReportModalSaveClick()\"\r\n [saveDisabled]=\"!toUploadToUpdateReportFileData\"></Tsi-Modal-Footer> -->\r\n\r\n</p-dialog>\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { AdministrationEndpoints, ReportingEndpoints } from '../../end-points';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DashboardModuleService {\r\n\r\n constructor(private _http: HttpClient) { }\r\n\r\n getAllModules(): Observable<any> {\r\n return this._http.get<any>(AdministrationEndpoints.getAllModuleMinimal());\r\n }\r\n\r\n getReportTemplateByModuleCode(moduleCode: string): Observable<any>{\r\n return this._http.get<any>(ReportingEndpoints.getReportTemplateByModuleCode(moduleCode));\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { AdministrationEndpoints } from '../../../end-points';\r\nimport { TsiReportType, Modes } from '../../../enums';\r\nimport { TsiFormComponentBaseComponent } from '../../../tsi-base/components/tsi-form-base/tsi-form-base.component';\r\nimport { DashboardModuleService } from '../../../services/reporting/dashboard-module.service';\r\nimport { appProviders } from '../../../consts/app-providers';\r\nimport { ReportingService } from '../../../services/reporting/reporting.service';\r\nimport { TsiNotificationService } from '../../../services/notification/tsi-notification.service';\r\nimport { TsiConfirmationService } from '../../../services/notification/tsi-confirmation.service';\r\n\r\n@Component({\r\n selector: 'app-add-report-popup',\r\n templateUrl: './add-report-popup.component.html',\r\n styleUrls: ['./add-report-popup.component.scss'],\r\n providers: [...appProviders]\r\n})\r\nexport class AddReportPopupComponent extends TsiFormComponentBaseComponent implements OnInit {\r\n\r\n dataSource: { key: TsiReportType, value: string }[] = [\r\n { key: TsiReportType.List, value: \"End user report\" },\r\n { key: TsiReportType.Dashboard, value: \"Dashboard\" },\r\n { key: TsiReportType.RTF, value: \"RTF\" }\r\n ];\r\n\r\n isGetByIdRequest: boolean = false;\r\n modes = Modes;\r\n isEditionPersonnalise: boolean = false;\r\n administrationEndpoints = AdministrationEndpoints;\r\n reportBusinessClass?: string\r\n customReportingMode?: boolean\r\n\r\n private _isReportForFiche: boolean = false;\r\n\r\n get isReportForFiche(): boolean {\r\n return !this.config.data?.fromEndpoint?.includes(\"getallpaged\") && this.config.data?.fromEndpoint != undefined\r\n }\r\n\r\n report = {\r\n reportType: '',\r\n reportName: '',\r\n reportNameAbrege: '',\r\n triOrdre: 0,\r\n module: '',\r\n impress: '',\r\n editionUnique: false,\r\n endPointKey: '',\r\n endPointValue: '',\r\n param: '',\r\n formName: '',\r\n display: false,\r\n }\r\n\r\n modules: any[] = [];\r\n\r\n constructor(\r\n public override ref: DynamicDialogRef,\r\n public reportingService: ReportingService,\r\n public override config: DynamicDialogConfig,\r\n private notificationService: TsiNotificationService,\r\n private dashboardModuleService: DashboardModuleService,\r\n private _confirm: TsiConfirmationService,\r\n ) {\r\n super(ref, config);\r\n }\r\n\r\n override ngOnInit(): void {\r\n\r\n if (this.config.data.value) {\r\n console.log(\">>> this.config.data: \", this.config.data);\r\n this.report.reportType = this.config.data.value.reportType;\r\n this.report.reportName = this.config.data.value.name;\r\n this.report.endPointKey = this.config.data.value?.restEndpoint;\r\n this.report.endPointValue = this.config.data.value?.restEndpoint;\r\n this.report.module = this.config.data.value.module;\r\n this.report.triOrdre = this.config.data.value.order;\r\n this.report.formName = this.config.data.value.formName;\r\n this.report.reportNameAbrege = this.config.data.value.shortName;\r\n this.report.display = this.config.data.value.display;\r\n }\r\n\r\n this.reportBusinessClass = this.config.data?.businessClass\r\n this.customReportingMode = this.config.data?.customReportingMode\r\n\r\n if (this.customReportingMode) {\r\n this.report.endPointKey = this.config.data?.fromEndpoint\r\n this.report.endPointValue = this.config.data?.fromEndpoint\r\n }\r\n\r\n\r\n if (this.config.data?.fromEndpoint && !this.isReportForFiche && !this.customReportingMode) {\r\n this.reportingService.getApiAsKeyValueByValue(encodeURIComponent(this.config.data.fromEndpoint)).subscribe({\r\n next: (res: any) => {\r\n console.log(res)\r\n this.report.endPointKey = res[0]?.key;\r\n this.report.endPointValue = res[0]?.value;\r\n },\r\n error: (err) => {\r\n console.log(err)\r\n }\r\n })\r\n }\r\n\r\n this.mode = this.config.data.mode\r\n this.isEditionPersonnalise = this.config.data.isEditionPersonnalise\r\n console.log(this.mode)\r\n\r\n this.getAllModules();\r\n }\r\n\r\n reportTypeChange(evt: any) {\r\n console.log(evt)\r\n }\r\n\r\n override save(): void {\r\n super.save()\r\n if (this.report.reportType === '') {\r\n this.notificationService.warn(\"shared_reporting_report_type_required\");\r\n return;\r\n }\r\n else if (this.report.reportName === '') {\r\n this.notificationService.warn(\"shared_reporting_report_name_required\");\r\n return;\r\n }\r\n else if (this.isEditionPersonnalise && this.report.endPointKey === '') {\r\n this.notificationService.warn(\"shared_reporting_report_endpoint_required\");\r\n return;\r\n }\r\n\r\n this._confirm\r\n .confirm(this.l('shared_reporting_report_confirmRedirection'), undefined, (result: boolean) => {\r\n\r\n\r\n if (result) {\r\n localStorage.setItem('canRedirect', JSON.stringify(true));\r\n this.hide(this.report);\r\n } else {\r\n localStorage.setItem('canRedirect', JSON.stringify(false));\r\n this.hide(this.report)\r\n }\r\n }\r\n );\r\n\r\n }\r\n\r\n selectedEndpointChange(endpointValue: any) {\r\n console.log(this.report)\r\n this.report.endPointValue = endpointValue;\r\n this.isGetByIdRequest = endpointValue.includes(\"{id}\");\r\n }\r\n\r\n private getAllModules(): void {\r\n this.dashboardModuleService\r\n .getAllModules()\r\n .subscribe(\r\n {\r\n next: (values: any[]) => {\r\n if (values && Array.isArray(values) && values.length > 0) {\r\n this.modules = values;\r\n }\r\n }\r\n }\r\n )\r\n }\r\n}\r\n","<form class=\"form-horizontal\" autocomplete=\"off\" #reportForm=\"ngForm\" (ngSubmit)=\"save()\">\r\n <h4>\r\n <Tsi-Label [labelValue]=\"'Nouveau Rapport'\"></Tsi-Label>\r\n </h4>\r\n <p-panel header=\"Informations\">\r\n <div class=\"grid \">\r\n <!-- Type -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_type\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Search-Combo [disabled]=\"this.mode !== modes.create\" id-field=\"key\" label-field=\"value\"\r\n [(bind)]=\"report.reportType\" [datasource]=\"dataSource\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n <!-- Nom du rapport -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_reportName\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Text-Box [inputName]=\"'reportName'\" [(inputField)]=\"report.reportName\"></Tsi-Text-Box>\r\n </div>\r\n <!-- Nom abrégé -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_reportNameAbrege\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-3\">\r\n <Tsi-Text-Box [inputName]=\"'reportNameAbrege'\" [(inputField)]=\"report.reportNameAbrege\"></Tsi-Text-Box>\r\n </div>\r\n <div class=\"flex col-6\">\r\n <!-- Ordre de tri -->\r\n <div class=\"flex gap-4 w-6\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_triOrdre\"></Tsi-Label>\r\n <Tsi-Integer [inputName]=\"'triOrdre'\" [(inputField)]=\"report.triOrdre\"></Tsi-Integer>\r\n </div>\r\n <!-- Afficher dashboard -->\r\n <div class=\"flex gap-4 w-6\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_display\"></Tsi-Label>\r\n <Tsi-CheckBox [inputName]=\"'display'\" [(inputField)]=\"report.display\"></Tsi-CheckBox>\r\n </div>\r\n </div>\r\n <!-- Module -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_Module\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Search-Combo id-field=\"code\" label-field=\"libelle\" [multiple]=\"false\" [(bind)]=\"report.module\"\r\n [datasource]=\"modules\" [isFiltered]=\"false\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n <!-- Deuxiéme Impress -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_imppress\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-5\">\r\n <Tsi-Text-Box [disabled]=\"true\" [inputName]=\"'imppress'\" [(inputField)]=\"report.impress\"></Tsi-Text-Box>\r\n </div>\r\n <!-- Edition unique -->\r\n <div class=\"col-4 col-form-label flx\">\r\n <Tsi-CheckBox [inputName]=\"'EditionUnique'\" [(inputField)]=\"report.editionUnique\"></Tsi-CheckBox>&nbsp;\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_EditionUnique\"></Tsi-Label>\r\n </div>\r\n <!-- Endpoint -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_endpoint\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Search-Combo *ngIf=\"!isReportForFiche\" id-field=\"key\" label-field=\"value\"\r\n [disabled]=\"modes.edit === mode || isEditionPersonnalise === false\"\r\n (selectedLabelChange)=\"selectedEndpointChange($event)\" [(bind)]=\"report.endPointKey\"\r\n [elementSourceUrl]=\"administrationEndpoints.getApiAsKeyValuePair()\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllApiAsKeyValuePair()\" [isFiltered]=\"true\">\r\n </Tsi-Search-Combo>\r\n\r\n <Tsi-Search-Combo *ngIf=\"isReportForFiche || customReportingMode\" id-field=\"value\" label-field=\"value\"\r\n (selectedLabelChange)=\"selectedEndpointChange($event)\" [(bind)]=\"report.endPointKey\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllApiAsKeyValuePairByBusinessClassName(this.reportBusinessClass)\"\r\n [isFiltered]=\"false\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_formName\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-6\">\r\n <Tsi-Text-Box [disabled]=\"true\" [inputName]=\"'formName'\"\r\n [(inputField)]=\"report.formName\"></Tsi-Text-Box>\r\n </div>\r\n <!-- Param -->\r\n <div *ngIf=\"isGetByIdRequest\" class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_param\"></Tsi-Label>\r\n </div>\r\n <div *ngIf=\"isGetByIdRequest\" class=\"col-9\">\r\n <Tsi-Text-Box [inputName]=\"'param'\" [(inputField)]=\"report.param\"></Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </p-panel>\r\n <br />\r\n <p-panel header=\"Configuration Pivot Grid\">\r\n <div class=\"grid \">\r\n <!-- Class or view -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label [labelValue]=\"'Class or view'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Text-Box [inputName]=\"'dddd'\"></Tsi-Text-Box>\r\n </div>\r\n <!-- Query -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label [labelValue]=\"'Query'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9 col-form-label\">\r\n <Tsi-Text-Area [rows]=\"2\"></Tsi-Text-Area>\r\n </div>\r\n </div>\r\n </p-panel>\r\n\r\n <Tsi-Modal-Footer [cancelDisabled]=\"saving\" [saveDisabled]=\"saving\" (onCancelClick)=\"hide()\"></Tsi-Modal-Footer>\r\n</form>","import { Observable } from 'rxjs';\r\nimport { GridColumn } from '../grid/grid-configuration';\r\nimport { Dictionary } from '../generic-types/dictionary';\r\nimport { TsiComponentEnum } from '../../enums';\r\n\r\nexport interface IGenericFormBlock {\r\n type: TsiComponentEnum;\r\n typeConfig: Dictionary<string, any>;\r\n typeClass?: string;\r\n haveLabel: boolean;\r\n labelValue?: string;\r\n labelClass?: string;\r\n tabBlocs?: Array<IGenericFormBlock>;\r\n tabPanels?: Array<IGenericFormBlock>;\r\n tabHeader?: string;\r\n isTab?: boolean;\r\n isTabView?: boolean;\r\n blocWidthClass?: string;\r\n}\r\n\r\n// export interface IFormBlock {\r\n// type: TsiComponentEnum;\r\n// typeConfig: IDictionnary<any>;\r\n// typeClass?: string;\r\n// haveLabel: boolean;\r\n// labelValue?: string;\r\n// labelClass?: string;\r\n// tabBlocs?: Array<IGenericFormBlock>;\r\n// tabPanels?: Array<IGenericFormBlock>;\r\n// tabHeader?: string;\r\n// isTab?: boolean;\r\n// isTabView?: boolean;\r\n// blocWidthClass?: string;\r\n// }\r\n\r\nexport interface IGenericFormConfiguration {\r\n blocs: Array<IGenericFormBlock>;\r\n}\r\n\r\nexport interface ITabPanel{\r\n blocs: Array<IFormBloc>;\r\n}\r\n\r\nexport interface IFormBloc {\r\n type: TsiComponentEnum;\r\n typeConfig: Dictionary<string, any>;\r\n styleClass?: string;\r\n blocs?: Array<IFormBloc>;\r\n tabPanels?: Array<IFormBloc>;\r\n tabHeader?: string;\r\n}\r\n\r\nexport class GenericFormHelper{\r\n\r\n public static CreateTextBox(inputField: string\r\n , inputName: string\r\n , styleClass: string = 'col-4'\r\n , inputId: string= inputName): IFormBloc{\r\n return {\r\n type: TsiComponentEnum.TextBox,\r\n styleClass: styleClass,\r\n typeConfig: {\r\n 'inputId': inputId,\r\n 'inputName': inputName,\r\n 'inputField': inputField,\r\n }\r\n }\r\n }\r\n\r\n public static CreateCheckbox(inputField: string\r\n , inputName: string\r\n , styleClass: string = 'col-4'\r\n , inputId: string= inputName): IFormBloc{\r\n return {\r\n type: TsiComponentEnum.Checkbox,\r\n styleClass: styleClass,\r\n typeConfig: {\r\n 'inputId': inputId,\r\n 'inputName': inputName,\r\n 'inputField': inputField,\r\n }\r\n }\r\n }\r\n\r\n public static CreateRateInput(inputField: string\r\n , inputName: string\r\n , styleClass: string = 'col-4'\r\n , inputId: string= inputName): IFormBloc{\r\n return {\r\n type: TsiComponentEnum.RateInput,\r\n styleClass: styleClass,\r\n typeConfig: {\r\n 'inputId': inputId,\r\n 'inputName': inputName,\r\n 'inputField': inputField,\r\n }\r\n }\r\n }\r\n\r\n public static CreateInteger(inputField: string\r\n , inputName: string\r\n , styleClass: string = 'col-4'\r\n , inputId: string= inputName): IFormBloc{\r\n return {\r\n type: TsiComponentEnum.Integer,\r\n styleClass: styleClass,\r\n typeConfig: {\r\n 'inputId': inputId,\r\n 'inputName': inputName,\r\n 'inputField': inputField,\r\n }\r\n }\r\n }\r\n\r\n public static CreateCurrencySocieteInput(inputField: string\r\n , inputName: string\r\n , styleClass: string = 'col-4'\r\n , inputId: string= inputName): IFormBloc{\r\n return {\r\n type: TsiComponentEnum.CurrencySocieteInput,\r\n styleClass: styleClass,\r\n typeConfig: {\r\n 'inputId': inputId,\r\n 'inputName': inputName,\r\n 'inputField': inputField,\r\n }\r\n }\r\n }\r\n\r\n public static CreateSearchCombo(bind: string\r\n , listSourceUrl: string\r\n , idField?: string\r\n , labelField?: string\r\n , isFiltered: boolean= false\r\n , styleClass: string = 'col-4'): IFormBloc{\r\n return {\r\n type: TsiComponentEnum.SearchCombo,\r\n styleClass: styleClass,\r\n typeConfig: {\r\n 'listSourceUrl': listSourceUrl,\r\n 'bind': bind,\r\n 'id-field': idField,\r\n 'label-field': labelField,\r\n 'isFiltered': isFiltered\r\n }\r\n }\r\n }\r\n\r\n public static CreateEditableGrid(columns: Array<GridColumn>\r\n , gridData: Array<any>\r\n , events: Observable<void>\r\n , saveDataEventEmitter: (data: Array<any>) => void\r\n , styleClass: string = 'col-4'): IFormBloc{\r\n return {\r\n type: TsiComponentEnum.EditableGrid,\r\n styleClass: styleClass,\r\n typeConfig: {\r\n 'columns': columns,\r\n 'gridData': gridData,\r\n 'events': events,\r\n 'saveDataEventEmitter': saveDataEventEmitter\r\n }\r\n }\r\n }\r\n\r\n //#region outputs\r\n\r\n public static CreateLabel(labelValue: string, styleClass: string= 'col-4'): IFormBloc{\r\n return {\r\n type: TsiComponentEnum.Label,\r\n styleClass: styleClass,\r\n typeConfig: {\r\n 'labelValue': labelValue,\r\n }\r\n }\r\n }\r\n\r\n\r\n public static CreateParagraph(paragraphName: string, styleClass: string= 'col-4'): IFormBloc{\r\n return {\r\n type: TsiComponentEnum.Paragraph,\r\n styleClass: styleClass,\r\n typeConfig: {\r\n 'paragraphName': paragraphName,\r\n }\r\n }\r\n }\r\n\r\n public static CreateTabView(...params: IFormBloc[]): IFormBloc{\r\n return {\r\n type: TsiComponentEnum.TabView,\r\n tabPanels: params,\r\n typeConfig:{}\r\n }\r\n }\r\n\r\n public static CreateTabPanel(tabHeader: string, ...params: IFormBloc[]): IFormBloc{\r\n return {\r\n type: TsiComponentEnum.TabPanel,\r\n tabHeader: tabHeader,\r\n typeConfig: {},\r\n blocs: params\r\n }\r\n }\r\n //#endregion\r\n}\r\n","import { Component, Type } from \"@angular/core\";\r\n\r\nexport interface DynamicComponentLoader {\r\n component: any;\r\n configuration?: ModalOptions;\r\n}\r\n\r\nexport interface ModalOptions {\r\n class?: string;\r\n initialState?: any;\r\n}\r\nexport interface AdComponent {\r\n data: any;\r\n save: () => void;\r\n}\r\nexport class AdItem {\r\n constructor(public component: Type<any>, public data: any) { }\r\n}\r\n","export class ComboStatusModel{\r\n uid : string;\r\n isDataLoaded: boolean ;\r\n\r\n /**\r\n *\r\n */\r\n constructor(uid : string,isDataLoaded: boolean) {\r\n this.uid = uid;\r\n this.isDataLoaded = isDataLoaded;\r\n \r\n }\r\n}","import { CSSUnits } from \"../../enums/css-units\";\r\n\r\nexport class CSSSizeProperty{\r\n public value? : number;\r\n public unit ?: CSSUnits = CSSUnits.PX;\r\n public getCSSValue(): string{\r\n if(this.value && this.unit)\r\n return this.value.toString()+this.unit;\r\n return \"\";\r\n }\r\n /**\r\n *\r\n */\r\n constructor(value : number, unit: CSSUnits) {\r\n this.value = value;\r\n this.unit = unit; \r\n }\r\n}","export const AppRoutes = {\r\n app: 'app',\r\n account: 'account',\r\n home: 'home',\r\n dashboard: 'dashboard',\r\n}","export const ManageReportingRoutes = {\r\n dashboardDesigner: 'dashboard-designer',\r\n dashboardViewer: 'dashboard-viewer',\r\n}","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Component, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { FileUpload } from 'primeng/fileupload';\r\nimport { TooltipPosition } from '../../enums/tooltipPosition.enum';\r\nimport { ButtonType } from '../../enums/button-type.enum';\r\nimport { AddReportPopupComponent } from './add-report-popup/add-report-popup.component';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { LocalizationKeys } from '../../consts/localization-key';\r\nimport { Segment } from '../../end-points';\r\nimport { GridSelectionMode, HttpMethodType, TsiReportType, DisplayTypes, CSSUnits, ModalSizeEnum, Modes } from '../../enums';\r\nimport { GridColumn, CSSSizeProperty, ButtonClickResult } from '../../interfaces';\r\nimport { ReportTemplateResponse, JsonDataConnection, KeyValuePair, OptionalEndpoints, ReportToEditTemplatePayload, ReportToPrint, ReportToTemplate, ReportToEditTemplate } from '../../models';\r\nimport { AppRoutes } from '../../routes/app.routes';\r\nimport { ReportingService, IdentityManagerService, TsiConfirmationService, TsiNotificationService, TsiModalService } from '../../services';\r\nimport { TsiFormComponentBaseComponent } from '../../tsi-base/components/tsi-form-base/tsi-form-base.component';\r\nimport { ReportingEndpoints } from '../../end-points/reporting-endpoints';\r\nimport { queryParamNamesConst } from '../../consts/queryParamNames.const';\r\nimport { ManageReportingRoutes } from '../../routes/manage-reporting.routes';\r\nimport { appProviders } from '../../consts/app-providers';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\n\r\n@Component({\r\n selector: 'app-manage-reporting',\r\n templateUrl: './manage-reporting.component.html',\r\n styleUrls: ['./manage-reporting.component.scss'],\r\n providers: [...appProviders],\r\n})\r\nexport class ManageReportingComponent\r\n extends TsiFormComponentBaseComponent\r\n implements OnInit, OnDestroy {\r\n //#region properties\r\n\r\n readonly EDITION_PERSONNALISE = 'app-edition-personnalise';\r\n reports: ReportTemplateResponse[] = [];\r\n jsonDataConnection: JsonDataConnection | undefined;\r\n jsonDataConnectionId: number | undefined;\r\n reportToPrintId: number | undefined;\r\n toUploadFileData: any = undefined;\r\n columns: GridColumn[] = [];\r\n isFromForm: boolean = false;\r\n formNames: KeyValuePair<string, string>[] = [];\r\n selectedReports: number[] = [];\r\n selectionMode = GridSelectionMode.Multiple;\r\n getFormNamesEndpoint: string = ReportingEndpoints.getAvailableFormNames();\r\n globalFilterFields = ['name'];\r\n refreshJobTimeOut: any;\r\n previousFormName: string = '';\r\n isUpdateReportFromFileDialogVisible: boolean = false;\r\n toUploadToUpdateReportFileData: any = undefined;\r\n selectedReportToUpdateFromFile: number | undefined;\r\n defaultReportTemplateData: string[] = [];\r\n defaultTemplateColumns: GridColumn[] = [];\r\n tooltipPosition = TooltipPosition;\r\n private _dialogRef?: DynamicDialogRef;\r\n isEditionPersonnalise: boolean = false;\r\n entityId?: string;\r\n reportDiscriminator?: any;\r\n httpMethodType?: HttpMethodType\r\n requestData?: any\r\n\r\n private static readonly reportTypeLabels: Record<string, string> = {\r\n [TsiReportType.Dashboard]: 'Dashboard',\r\n [TsiReportType.List]: 'End user',\r\n [TsiReportType.RTF]: 'RTF',\r\n };\r\n\r\n private _isReportForFiche: boolean = false;\r\n\r\n get isReportForFiche(): boolean {\r\n return !this.otherFormEndpoint?.includes('getallpaged') && !this.requestData;\r\n }\r\n\r\n @ViewChild('fileUpload') fileUpload?: FileUpload;\r\n @ViewChild('importFileToReportFileUpload')\r\n importFileToReportFileUpload?: FileUpload;\r\n private readonly errorMessageKey: string = 'shared_reporting_error_occured';\r\n\r\n private readonly dashboardModuleRoute = `${AppRoutes.app}/${AppRoutes.dashboard}`;\r\n //#endregion\r\n buttonType = ButtonType;\r\n // parametre: ParametresApplicationPaie = new ParametresApplicationPaie();\r\n //#region Input properties\r\n @Input() otherFormName: string | undefined; //formIdentifier\r\n @Input() otherFormEndpoint: string | undefined; //= `${GestionCommercialeSegments.factureVente}/165ec5fd-4d34-4546-ae15-0044e708b9d9`;\r\n @Input() formEndpointBody: string | undefined; //formIdentifier\r\n @Input() isFormEndpointPaged: boolean = false;\r\n @Input() filtersHtmlTemplate: string | undefined;\r\n @Input() optionalEndpoints?: OptionalEndpoints;\r\n @Input() customReportingMode?: boolean\r\n //#endregion\r\n\r\n //#region Output properties\r\n //@Output() hide: EventEmitter<void> = new EventEmitter<void>();\r\n //#endregion\r\n\r\n //#region ctor\r\n constructor(\r\n // public _parametresApplicationPaieService: ParametresApplicationPaieService,\r\n private reportingService: ReportingService,\r\n private identityManagerService: IdentityManagerService,\r\n private confirmationService: TsiConfirmationService,\r\n private notificationService: TsiNotificationService,\r\n public override ref: DynamicDialogRef,\r\n public override config: DynamicDialogConfig,\r\n private _tsiModalService: TsiModalService,\r\n private router: Router,\r\n ) {\r\n super(ref, config);\r\n\r\n //init columns\r\n this.columns = [\r\n {\r\n field: 'name',\r\n header: 'shared_reporting_report_name',\r\n },\r\n {\r\n field: 'reportTypeName',\r\n header: 'shared_reporting_report_type',\r\n },\r\n {\r\n field: 'isDefault',\r\n header: 'shared_reporting_report_isdefault',\r\n type: DisplayTypes.CHECKBOX_DISPLAY,\r\n width: new CSSSizeProperty(10, CSSUnits.PRECENT),\r\n },\r\n {\r\n header: '',\r\n field: 'send',\r\n isButton: true,\r\n buttonIcon: 'pi pi-send',\r\n styleClass: 'p-button-text p-button-success',\r\n toolTipText: 'shared_send_report_by_email',\r\n },\r\n {\r\n header: '',\r\n field: 'edit',\r\n isButton: true,\r\n buttonIcon: 'pi pi-file-edit',\r\n styleClass: 'p-button-text p-button-success',\r\n toolTipText: 'shared_reporting_edit',\r\n },\r\n {\r\n header: '',\r\n field: 'view',\r\n isButton: true,\r\n buttonIcon: 'pi pi-eye',\r\n styleClass: 'p-button-text p-button-info',\r\n toolTipText: 'shared_reporting_view',\r\n },\r\n {\r\n header: '',\r\n field: 'export',\r\n isButton: true,\r\n buttonIcon: 'pi pi-file-export',\r\n styleClass: 'p-button-text p-button-help',\r\n toolTipText: 'shared_reporting_export',\r\n },\r\n {\r\n header: '',\r\n field: 'import',\r\n isButton: true,\r\n buttonIcon: 'pi pi-paperclip',\r\n styleClass: 'p-button-text p-button-warning',\r\n toolTipText: 'shared_reporting_import',\r\n },\r\n {\r\n header: '',\r\n field: 'default',\r\n isButton: true,\r\n buttonIcon: 'pi pi-bookmark-fill',\r\n styleClass: 'p-button-text',\r\n toolTipText: 'shared_reporting_set_default',\r\n },\r\n {\r\n header: '',\r\n field: 'delete',\r\n isButton: true,\r\n buttonIcon: 'pi pi-trash',\r\n styleClass: 'p-button-text p-button-danger',\r\n toolTipText: 'shared_reporting_delete_report',\r\n },\r\n {\r\n header: '',\r\n field: 'Add_To_BuiltIn_Templates',\r\n isButton: true,\r\n buttonIcon: 'pi pi-arrow-circle-down',\r\n styleClass: 'p-button-text p-button-help',\r\n toolTipText: 'shared_reporting_export_dev_report',\r\n },\r\n {\r\n header: '',\r\n field: 'Make_default_report_layout',\r\n isButton: true,\r\n buttonIcon: 'pi pi-bookmark-fill',\r\n styleClass: 'p-button-text p-button-danger',\r\n toolTipText: 'shared_reporting_make_default_report_layout',\r\n },\r\n ];\r\n this.defaultTemplateColumns = [\r\n {\r\n field: 'name',\r\n header: 'shared_reporting_report_name',\r\n },\r\n {\r\n field: 'reportTypeName',\r\n header: 'shared_reporting_report_type',\r\n },\r\n {\r\n header: '',\r\n field: 'deleteDefaultReportFile',\r\n isButton: true,\r\n buttonIcon: 'pi pi-trash',\r\n styleClass: 'p-button-text p-button-danger',\r\n toolTipText: 'shared_reporting_delete_default_report',\r\n },\r\n {\r\n header: '',\r\n field: 'Add_From_BuiltIn_Templates',\r\n isButton: true,\r\n buttonIcon: 'pi pi-arrow-circle-up',\r\n styleClass: 'p-button-text p-button-primary',\r\n toolTipText: 'shared_reporting_add_to_my_list_report',\r\n },\r\n ];\r\n }\r\n //#endregion\r\n\r\n checkIfIsDevMode() {\r\n if (Segment.production) {\r\n let buttonAdBuiltinTemplatesIndex = this.columns.findIndex(\r\n (col: GridColumn) => {\r\n return col.field == 'Add_To_BuiltIn_Templates';\r\n }\r\n );\r\n if (buttonAdBuiltinTemplatesIndex != -1) {\r\n this.columns.splice(buttonAdBuiltinTemplatesIndex, 1);\r\n }\r\n\r\n let buttonDeleteDefaultReportFileIndex =\r\n this.defaultTemplateColumns.findIndex((col: GridColumn) => {\r\n return col.field == 'deleteDefaultReportFile';\r\n });\r\n\r\n if (buttonDeleteDefaultReportFileIndex != -1) {\r\n this.defaultTemplateColumns.splice(\r\n buttonDeleteDefaultReportFileIndex,\r\n 1\r\n );\r\n }\r\n }\r\n }\r\n\r\n //handle Lifecycle Hooks\r\n override async ngOnInit() {\r\n this.isEditionPersonnalise = this.router.url.includes('administration');\r\n this.checkIfIsDevMode();\r\n super.ngOnInit();\r\n // if (this.otherFormName ) {\r\n this.isFromForm = true;\r\n this.columns.splice(3, 0, {\r\n header: '',\r\n field: 'print',\r\n isButton: true,\r\n buttonIcon: 'pi pi-print',\r\n styleClass: 'p-button-text p-button-secondary',\r\n toolTipText: 'shared_reporting_report_print',\r\n });\r\n if (this.otherFormName && this.otherFormName != 'app-manage-reporting') {\r\n this.formNames = [{ key: this.otherFormName, value: this.otherFormName }];\r\n }\r\n this.entityId = this.config.data?.id;\r\n this.customReportingMode = this.config?.data?.customReportingMode\r\n this.httpMethodType = this.config?.data?.httpMethodType\r\n await this._refreshReports(true);\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n\r\n if (this.refreshJobTimeOut) {\r\n clearTimeout(this.refreshJobTimeOut);\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region handle events\r\n async onRefresh() {\r\n await this._refreshReports(true);\r\n }\r\n\r\n onPrintDefault(event: any): void {\r\n if (this.otherFormName) {\r\n this.reportingService.getDefaultReport(this.otherFormName).subscribe({\r\n next: (data) => {\r\n // let defaultReportId: string = data;\r\n this._viewReport(data.uid);\r\n },\r\n error: (error: any) => { },\r\n });\r\n }\r\n }\r\n\r\n onFileSelected(event: any): void {\r\n const file: File = event.currentFiles[0];\r\n this.toUploadFileData = file;\r\n }\r\n\r\n onImportFile(event: any): void {\r\n this.reportingService.uploadReportFile(this.toUploadFileData, this.reportDiscriminator).subscribe({\r\n next: async (response) => {\r\n await this._refreshReports();\r\n this.notificationService.success(\r\n 'shared_reporting_report_uploaded_successfully'\r\n );\r\n this.fileUpload?.clear();\r\n },\r\n error: () => {\r\n this.notificationService.error(this.errorMessageKey);\r\n },\r\n });\r\n }\r\n\r\n //cancel button click\r\n onClear(event: any): void {\r\n this.toUploadFileData = undefined;\r\n }\r\n\r\n //cancel button click\r\n onRemove(event: any): void {\r\n this.toUploadFileData = undefined;\r\n }\r\n\r\n handleButtonColumnClicked(event: ButtonClickResult): void {\r\n switch (event.field) {\r\n case 'send': {\r\n console.log('send');\r\n this._sendReport(event.key);\r\n break;\r\n }\r\n case 'edit': {\r\n console.log('edit');\r\n this._editReport(event.key);\r\n break;\r\n }\r\n case 'view': {\r\n console.log('view');\r\n this._viewDashboardt(event.key);\r\n break;\r\n }\r\n case 'delete': {\r\n console.log('delete');\r\n this._deleteReport(event.key);\r\n break;\r\n }\r\n case 'print': {\r\n console.log('print');\r\n this._viewReport(event.key);\r\n break;\r\n }\r\n case 'export': {\r\n console.log('export');\r\n this._exportReport(event.key);\r\n break;\r\n }\r\n case 'default': {\r\n console.log('default');\r\n this._setDefaultReport(event.key);\r\n break;\r\n }\r\n case 'import': {\r\n console.log('import');\r\n this._importToReport(event.key);\r\n break;\r\n }\r\n case 'Add_From_BuiltIn_Templates': {\r\n console.log('Add_From_BuiltIn_Templates');\r\n this._addFromBuiltInTemplates(event.key);\r\n break;\r\n }\r\n case 'Add_To_BuiltIn_Templates': {\r\n console.log('Add_To_BuiltIn_Templates');\r\n this._addToBuiltInTemplates(event.key);\r\n break;\r\n }\r\n case 'preview': {\r\n console.log('preview');\r\n this.previewBuiltInReportTemplate(event.key);\r\n break;\r\n }\r\n case 'Make_default_report_layout': {\r\n this.makeReportDefaultLayout(event.key);\r\n break;\r\n }\r\n case 'deleteDefaultReportFile': {\r\n this.deleteDefaultReportFile(event.key);\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n deleteDefaultReportFile(fileName: any) {\r\n this.confirmationService.confirm(\r\n LocalizationKeys.confirmDelete,\r\n undefined,\r\n (result: boolean) => {\r\n if (result && result == true) {\r\n this.isloading = true;\r\n let formName = this.otherFormName ?? this.EDITION_PERSONNALISE;\r\n this.reportingService\r\n .deleteDefaultReportTemplateFile(formName, fileName)\r\n .subscribe({\r\n next: async () => {\r\n await this._refreshReports(true);\r\n this.notificationService.success(\r\n LocalizationKeys.deletedSuccessfully\r\n );\r\n this.isloading = false;\r\n },\r\n error: () => {\r\n this.notificationService.error(this.errorMessageKey);\r\n this.isloading = false;\r\n },\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n onDeleteSelectedReports(): void {\r\n this.confirmationService.confirm(\r\n LocalizationKeys.confirmDelete,\r\n undefined,\r\n (result: boolean) => {\r\n if (\r\n result &&\r\n this.selectedReports != null &&\r\n this.selectedReports != undefined\r\n ) {\r\n this.isloading = true;\r\n this.reportingService\r\n .deleteMultipleReports(this.selectedReports)\r\n .subscribe({\r\n next: async () => {\r\n await this._refreshReports();\r\n this.notificationService.success(\r\n LocalizationKeys.deletedSuccessfully\r\n );\r\n this.isloading = false;\r\n },\r\n error: (error: any) => {\r\n this.notificationService.error(this.errorMessageKey);\r\n this.isloading = false;\r\n },\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n onNewReport(): void {\r\n if (\r\n (this.otherFormEndpoint && this.otherFormName) ||\r\n this.isEditionPersonnalise\r\n ) {\r\n let reportToTemplateId: number;\r\n let modalSize = ModalSizeEnum.Large;\r\n let config: DynamicDialogConfig = {\r\n maximizable: true,\r\n width: modalSize.width,\r\n height: modalSize.height,\r\n data: {\r\n mode: Modes.create,\r\n isEditionPersonnalise: this.isEditionPersonnalise,\r\n fromEndpoint: this.otherFormEndpoint,\r\n businessClass: this.businessClass,\r\n customReportingMode: this.customReportingMode\r\n },\r\n };\r\n\r\n this._dialogRef = this._tsiModalService.open(\r\n AddReportPopupComponent,\r\n config\r\n );\r\n\r\n this._dialogRef.onClose.subscribe((val: any) => {\r\n if (val === null || val === undefined) return;\r\n console.log(val);\r\n\r\n if (this.isReportForFiche) {\r\n val.endPointValue = val?.endPointValue?.replace(\r\n '{id}',\r\n this.entityId\r\n );\r\n val.endPointKey = val?.endPointKey?.replace('{id}', this.entityId);\r\n }\r\n\r\n this.reportingService\r\n .addReportToModel(\r\n this._newReportToTemplate(\r\n val.reportType,\r\n val.reportName,\r\n val.endPointValue,\r\n val.module,\r\n val.triOrdre,\r\n val.reportNameAbrege,\r\n val.display\r\n )\r\n )\r\n .subscribe({\r\n next: (value) => {\r\n this.isloading = true;\r\n reportToTemplateId = value;\r\n let urlDesigner;\r\n let tenantUid =\r\n this.identityManagerService.parseMyAuthToken()?.tenantUid;\r\n\r\n if (val.reportType === TsiReportType.List) {\r\n urlDesigner = `${Segment.reportingServiceBase}/report-designer/${reportToTemplateId}?${queryParamNamesConst.tenantUid}=${tenantUid}`;\r\n } else if (val.reportType === TsiReportType.Dashboard) {\r\n urlDesigner = `${Segment.appBaseHref}/${this.dashboardModuleRoute}/${ManageReportingRoutes.dashboardDesigner}?${queryParamNamesConst.reportToTemplate}=${reportToTemplateId}&${queryParamNamesConst.tenantUid}=${tenantUid}`;\r\n } else if (val.reportType === TsiReportType.RTF) {\r\n urlDesigner = `${Segment.reportingServiceBase}/mailmerge/${reportToTemplateId}?${queryParamNamesConst.tenantUid}=${tenantUid}`;\r\n }\r\n\r\n window.open(urlDesigner, '_blank');\r\n\r\n this.notificationService.success(\r\n 'shared_reporting_redirected_to_new_report_successfully'\r\n );\r\n this.isloading = false;\r\n },\r\n error: () => {\r\n this.isloading = false;\r\n this.notificationService.error(this.errorMessageKey);\r\n },\r\n });\r\n\r\n this._closeModal(val);\r\n });\r\n }\r\n }\r\n\r\n private _closeModal(val: any): void {\r\n if (this._dialogRef) {\r\n this._dialogRef.destroy();\r\n }\r\n }\r\n\r\n async onFormChange() {\r\n await this._refreshReports();\r\n }\r\n\r\n onImportFileToReportModalCancelClick(): void {\r\n this._hideImportFileToReportDialog();\r\n }\r\n\r\n onImportFileToReportModalSaveClick(): void {\r\n this._showImportFileToReportDialog();\r\n }\r\n //#region file import\r\n onImportFileToReport_FileSelected(event: any): void {\r\n const file: File = event.currentFiles[0];\r\n this.toUploadToUpdateReportFileData = file;\r\n }\r\n\r\n onImportFileToReport_ImportFile(event: any): void {\r\n if (this.selectedReportToUpdateFromFile) {\r\n this.reportingService\r\n .updateReportLayout(\r\n this.selectedReportToUpdateFromFile,\r\n this.toUploadToUpdateReportFileData\r\n )\r\n .subscribe({\r\n next: async (response) => {\r\n await this._refreshReports();\r\n this.notificationService.success(\r\n 'shared_reporting_report_uploaded_successfully'\r\n );\r\n this.importFileToReportFileUpload?.clear();\r\n this._hideImportFileToReportDialog();\r\n },\r\n error: () => {\r\n this.notificationService.error(this.errorMessageKey);\r\n },\r\n });\r\n }\r\n }\r\n\r\n //cancel button click\r\n onImportFileToReport_Clear(event: any): void {\r\n this.toUploadToUpdateReportFileData = undefined;\r\n }\r\n\r\n //cancel button click\r\n onImportFileToReport_Remove(event: any): void {\r\n this.toUploadToUpdateReportFileData = undefined;\r\n }\r\n //#endregion\r\n\r\n //#endregion\r\n\r\n //#region private methods\r\n private getFormName(formName: string) {\r\n if (this.config?.data?.reportDiscriminator)\r\n return `${formName}_${this.config.data.reportDiscriminator}`;\r\n else return formName;\r\n }\r\n\r\n private async _refreshReports(refreshReportList: boolean = false) {\r\n this.isloading = true;\r\n let formName = this.otherFormName\r\n ? this.otherFormName\r\n : this.EDITION_PERSONNALISE;\r\n\r\n try {\r\n let items = await firstValueFrom(this.reportingService.getReports(formName, this.reportDiscriminator))\r\n this.reports = items.map((r) => {\r\n return {\r\n ...r,\r\n reportTypeName:\r\n ManageReportingComponent.reportTypeLabels[r.reportType] ||\r\n 'Unknown',\r\n };\r\n });\r\n this.isloading = false;\r\n } catch (error: any) {\r\n this.notificationService.error(this.errorMessageKey);\r\n this.isloading = false;\r\n }\r\n\r\n if (refreshReportList) {\r\n try {\r\n //get default report templates for this form\r\n let result = await firstValueFrom(this.reportingService.getDefaultReportTemplate(formName))\r\n this.defaultReportTemplateData = result?.data;\r\n } catch (error) {\r\n\r\n }\r\n }\r\n }\r\n\r\n _viewReport(uid: string): void {\r\n // if (this.otherFormEndpoint && uid) {\r\n this.isloading = true;\r\n\r\n let report = this.reports.find((r) => r.uid === uid);\r\n if (report === undefined || report === null) {\r\n this.notificationService.error(this.errorMessageKey);\r\n return;\r\n }\r\n\r\n this.reportingService\r\n .addReportToPrint(\r\n this._newReportToPrint(uid, report.reportType, report?.restEndpoint)\r\n )\r\n .subscribe({\r\n next: (data: any) => {\r\n let reportToTemplateId = data.uid;\r\n let urlDesigner;\r\n let tenantUid =\r\n this.identityManagerService.parseMyAuthToken()?.tenantUid;\r\n if (data.reportType === TsiReportType.List) {\r\n urlDesigner = `${Segment.reportingServiceBase}/report-viewer/${reportToTemplateId}?${queryParamNamesConst.tenantUid}=${tenantUid}`;\r\n } else if (data.reportType === TsiReportType.Dashboard) {\r\n urlDesigner = `${Segment.appBaseHref}/${this.dashboardModuleRoute}/${ManageReportingRoutes.dashboardDesigner}?${queryParamNamesConst.reportToPrint}=${reportToTemplateId}&${queryParamNamesConst.tenantUid}=${tenantUid}`;\r\n }\r\n\r\n window.open(urlDesigner, '_blank');\r\n this.notificationService.success(\r\n 'shared_reporting_redirected_to_print_report_successfully'\r\n );\r\n this.isloading = false;\r\n },\r\n\r\n error: (error) => {\r\n this.notificationService.error(this.errorMessageKey);\r\n this.isloading = false;\r\n },\r\n\r\n complete: () => { },\r\n });\r\n // }\r\n }\r\n\r\n _sendReport(uid: string): void {\r\n // this.isloading = true;\r\n\r\n //get email parameters\r\n // this._parametresApplicationPaieService\r\n // .getParametreApplicationPaie()\r\n // .subscribe((data) => {\r\n // this.parametre = data;\r\n // });\r\n\r\n // let report = this.reports.find((r) => r.uid === uid);\r\n // if (report === undefined || report === null) {\r\n // this.notificationService.error(this.errorMessageKey);\r\n // return;\r\n // }\r\n\r\n // this.reportingService\r\n // .addReportToPrint(\r\n // this._newReportToPrint(uid, report.reportType, report?.restEndpoint)\r\n // )\r\n // .subscribe({\r\n // next: (data: any) => {\r\n // if (data != null && data != undefined) {\r\n // this.reportToPrintId = data.uid;\r\n\r\n // let modalSize = ModalSizeEnum.ExtraLarge;\r\n // let saveSubject: Subject<any> = new Subject();\r\n // let conf: DynamicDialogConfig = {\r\n // data: { saveSubject },\r\n // maximizable: true,\r\n // width: modalSize.width,\r\n // height: modalSize.height,\r\n // };\r\n // this._dialogRef = this._dialogService.open(\r\n // TsiSendMailComponent,\r\n // conf\r\n // );\r\n // saveSubject.subscribe((val: any) => {\r\n // this.reportingService\r\n // .exportReportFileToPdf(this.reportToPrintId!.toString())\r\n // .subscribe(\r\n // (blob) => {\r\n // if (!this.parametre.attachments) {\r\n // this.parametre.attachments = [];\r\n // }\r\n // const newFile = new File([blob], 'Report.pdf', {\r\n // type: blob.type,\r\n // });\r\n\r\n // this.parametre.attachments.push(newFile);\r\n // this._parametresApplicationPaieService\r\n // .sendMail(\r\n // this.parametre.fromAddress,\r\n // this._dialogDataService.getData()?.toAddress,\r\n // this._dialogDataService.getData()?.objet,\r\n // this._dialogDataService.getData()?.message,\r\n // this.parametre.attachments,\r\n // this.parametre.host,\r\n // this.parametre.credentialUser,\r\n // this.parametre.credentialPWD,\r\n // this.parametre.port,\r\n // this.parametre.fromName,\r\n // this._dialogDataService.getData()?.ccAddress\r\n // )\r\n // .subscribe({\r\n // next: () => {\r\n // this.notificationService.info(\r\n // this.localization.transform(\r\n // LocalizationKeys.savedSuccessfully\r\n // )\r\n // );\r\n // this.isloading = false;\r\n // },\r\n // error: (response: HttpErrorResponse) => {\r\n // console.log(response);\r\n // this._errorResponseManagerService.showErrorMessage(\r\n // response\r\n // );\r\n // },\r\n // });\r\n // },\r\n // (error) => {\r\n // console.error('Error downloading the PDF', error);\r\n // }\r\n // );\r\n // this.notificationService.success(\r\n // 'shared_reporting_redirected_to_print_report_successfully'\r\n // );\r\n // });\r\n\r\n // this._dialogRef.onClose.subscribe((val?: any) => {\r\n // this._closeModal(val);\r\n // });\r\n // }\r\n // },\r\n\r\n // error: (error) => {\r\n // this.notificationService.error(this.errorMessageKey);\r\n // this.isloading = false;\r\n // },\r\n\r\n // complete: () => { },\r\n // });\r\n }\r\n\r\n\r\n _editReport(uid: string): void {\r\n this.isloading = true;\r\n\r\n let report = this.reports.find((r) => r.uid === uid);\r\n\r\n if (report === undefined || report === null) {\r\n this.notificationService.error(this.errorMessageKey);\r\n return;\r\n }\r\n this.reportingService\r\n .addReportToEditTemplate(\r\n this._newReportToEditTemplate(\r\n uid,\r\n report.reportType,\r\n report?.restEndpoint,\r\n report?.module,\r\n report?.order,\r\n report?.reportName,\r\n report?.shortName,\r\n report?.display\r\n )\r\n )\r\n .subscribe({\r\n next: (value: any) => {\r\n console.log(value);\r\n\r\n if (this.isReportForFiche) {\r\n const guidRegex = /[0-9a-fA-F-]{36}/;\r\n value.restEndpoint = value?.restEndpoint?.replace(\r\n guidRegex,\r\n '{id}'\r\n );\r\n }\r\n\r\n let config: DynamicDialogConfig = {\r\n maximizable: true,\r\n width: ModalSizeEnum.Large.width,\r\n height: ModalSizeEnum.Large.height,\r\n data: {\r\n value: value,\r\n mode: Modes.edit,\r\n isEditionPersonnalise: this.isEditionPersonnalise,\r\n fromEndpoint: this.otherFormEndpoint\r\n ? this.otherFormEndpoint\r\n : report?.restEndpoint,\r\n businessClass: this.businessClass,\r\n },\r\n };\r\n this._dialogRef = this._tsiModalService.open(\r\n AddReportPopupComponent,\r\n config\r\n );\r\n this._dialogRef.onClose.subscribe((val: any) => {\r\n if (val === null || val === undefined) return;\r\n\r\n console.log(val);\r\n let model: ReportToEditTemplatePayload = {\r\n reportTemplateUid: uid,\r\n reportName: val.reportName,\r\n restEndpoint: this.isReportForFiche\r\n ? this.reportingService.insertNewUidInRestEndPoint(\r\n val?.endPointValue,\r\n this.id\r\n ) ?? this.otherFormEndpoint\r\n : this.otherFormEndpoint,\r\n module: val.module,\r\n order: val.triOrdre,\r\n shortName: val.reportNameAbrege,\r\n display: val.display,\r\n };\r\n\r\n this.reportingService.editReportToEditTemplate(model).subscribe();\r\n\r\n let reportToTemplateId = value.uid;\r\n let urlDesigner;\r\n let tenantUid =\r\n this.identityManagerService.parseMyAuthToken()?.tenantUid;\r\n\r\n let canredirect = localStorage.getItem('canRedirect');\r\n\r\n if (value.reportType === TsiReportType.List) {\r\n urlDesigner = `${Segment.reportingServiceBase}/report-designer-edit/${reportToTemplateId}?${queryParamNamesConst.tenantUid}=${tenantUid}`;\r\n } else if (value.reportType === TsiReportType.Dashboard) {\r\n urlDesigner = `${Segment.appBaseHref}/${this.dashboardModuleRoute}/${ManageReportingRoutes.dashboardDesigner}?${queryParamNamesConst.reportToEdit}=${reportToTemplateId}&${queryParamNamesConst.tenantUid}=${tenantUid}`;\r\n } else if (value.reportType === TsiReportType.RTF) {\r\n urlDesigner = `${Segment.reportingServiceBase}/mailmerge-edit/${reportToTemplateId}?${queryParamNamesConst.tenantUid}=${tenantUid}`;\r\n }\r\n\r\n if (canredirect && JSON.parse(canredirect) == true) {\r\n window.open(urlDesigner, '_blank');\r\n }\r\n\r\n this.notificationService.success(\r\n 'shared_reporting_redirected_to_edit_report_successfully'\r\n );\r\n });\r\n\r\n this.isloading = false;\r\n },\r\n error: () => {\r\n this.notificationService.error(this.errorMessageKey);\r\n this.isloading = false;\r\n },\r\n });\r\n }\r\n\r\n private _deleteReport(uid: string): void {\r\n this.confirmationService.confirm(\r\n LocalizationKeys.confirmDelete,\r\n undefined,\r\n (result: boolean) => {\r\n if (result && uid != null && uid != undefined) {\r\n this.isloading = true;\r\n this.reportingService.deleteReport(uid).subscribe({\r\n next: async () => {\r\n this.notificationService.success(\r\n LocalizationKeys.deletedSuccessfully\r\n );\r\n await this._refreshReports();\r\n this.isloading = false;\r\n },\r\n error: (error: any) => {\r\n this.isloading = false;\r\n this.notificationService.error(this.errorMessageKey);\r\n },\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n private _setDefaultReport(id: number): void {\r\n this.confirmationService.confirm(\r\n 'shared_reporting_confirm_set_default_report_file',\r\n undefined,\r\n (result: boolean) => {\r\n if (result && id != null && id != undefined) {\r\n this.isloading = true;\r\n this.reportingService.setDefaultReport(id).subscribe({\r\n next: async () => {\r\n this.notificationService.success(\r\n LocalizationKeys.savedSuccessfully\r\n );\r\n await this._refreshReports();\r\n this.isloading = false;\r\n },\r\n error: (error: any) => {\r\n this.isloading = false;\r\n this.notificationService.error(this.errorMessageKey);\r\n },\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n private _exportReport(uid: string): void {\r\n if (uid) {\r\n let reportName: string = 'file-name.json';\r\n let report = this.reports.find((r) => r.uid == uid);\r\n if (report) {\r\n reportName = report.name;\r\n }\r\n this.isloading = true;\r\n this.reportingService.exportReportFile(uid).subscribe({\r\n next: (response) => {\r\n let file = new Blob([response], { type: 'application/json' });\r\n var fileURL = URL.createObjectURL(file);\r\n let reportRoute = fileURL;\r\n var downloadLink = document.createElement('a');\r\n downloadLink.download = reportName;\r\n downloadLink.href = reportRoute;\r\n downloadLink.click();\r\n this.notificationService.success(\r\n 'shared_reporting_report_exported_successfully'\r\n );\r\n this.isloading = false;\r\n },\r\n error: () => {\r\n this.notificationService.error(this.errorMessageKey);\r\n this.isloading = false;\r\n },\r\n });\r\n }\r\n }\r\n\r\n private _importToReport(id: number): void {\r\n if (id) {\r\n this.selectedReportToUpdateFromFile = id;\r\n this._showImportFileToReportDialog();\r\n }\r\n }\r\n\r\n private _newJsonDataConnection(): JsonDataConnection {\r\n if (this.otherFormEndpoint != null && this.otherFormEndpoint != undefined) {\r\n let newJsonDataConnection: JsonDataConnection = {\r\n name: `${this.otherFormName}-JsonDS`,\r\n displayName: undefined,\r\n uri: this.otherFormEndpoint,\r\n httpRequestContent: undefined,\r\n };\r\n\r\n return newJsonDataConnection;\r\n } else {\r\n throw Error('some of the required properties : uri have not been set !');\r\n }\r\n }\r\n\r\n private _newReportToPrint(\r\n uid: string,\r\n reportType: number,\r\n restEndpoint?: string,\r\n module?: string,\r\n order?: number,\r\n shortName?: string,\r\n display?: boolean\r\n ): ReportToPrint {\r\n let token = this.identityManagerService.getAuthToken();\r\n let username: string | undefined =\r\n this.identityManagerService.parseMyAuthToken().name;\r\n if (username) {\r\n if (uid && /*this.otherFormEndpoint && this.otherFormName &&*/ token) {\r\n let newReportToPrint: ReportToPrint = {\r\n reportTemplateUid: uid,\r\n restEndpoint: this.isReportForFiche\r\n ? this.reportingService.insertNewUidInRestEndPoint(restEndpoint, this.id) ??\r\n this.otherFormEndpoint\r\n : this.otherFormEndpoint,\r\n requestData: !this.customReportingMode ? this.formEndpointBody : this.requestData,\r\n formName: this.otherFormName,\r\n reportType: reportType,\r\n username: username,\r\n userToken: reportType == TsiReportType.Dashboard ? undefined : token,\r\n isPaged: this.isFormEndpointPaged == true ? true : false,\r\n htmlFiltersText: this.filtersHtmlTemplate,\r\n optionalEndpointsJson: this.optionalEndpoints,\r\n module: module,\r\n order: order,\r\n shortName: shortName,\r\n display: display,\r\n httpMethodType: this.httpMethodType\r\n };\r\n\r\n return newReportToPrint;\r\n } else {\r\n throw Error(\r\n 'some of the required properties : user token, formName, formEndpoint or selectedReport have not been set !'\r\n );\r\n }\r\n } else {\r\n throw Error(\"property 'UserName ' of current user have not been set !\");\r\n }\r\n }\r\n\r\n private _newReportToTemplate(\r\n reportType: TsiReportType,\r\n reportName: string,\r\n restEndpoint: string,\r\n module: string,\r\n order: number,\r\n shortName: string,\r\n display: boolean,\r\n ): ReportToTemplate {\r\n let token = this.identityManagerService.getAuthToken();\r\n\r\n if (this.otherFormEndpoint && this.otherFormName && token) {\r\n let reportToTemplate: ReportToTemplate = {\r\n restEndpoint: restEndpoint,\r\n requestData: !this.customReportingMode ? this.formEndpointBody : \r\n this.requestData,\r\n formEntity: this.otherFormName, //this.getFormName(this.otherFormName), //this.otherFormName,\r\n userToken: reportType == TsiReportType.Dashboard ? undefined : token,\r\n reportName: reportName,\r\n isPaged: this.isFormEndpointPaged == true ? true : false,\r\n reportType: reportType, //this.isFormEndpointPaged == true ? TsiReportType.List : TsiReportType.Form,\r\n optionalEndpointsJson: this.optionalEndpoints,\r\n htmlFiltersText: this.filtersHtmlTemplate,\r\n module: module,\r\n order: order,\r\n shortName: shortName,\r\n display: display,\r\n descriminatorValue: this.reportDiscriminator,\r\n httpMethodType: this.httpMethodType\r\n };\r\n console.log(reportToTemplate);\r\n return reportToTemplate;\r\n } else {\r\n let reportToTemplate: ReportToTemplate = {\r\n restEndpoint: this.isReportForFiche || this.customReportingMode\r\n ? restEndpoint!\r\n : this.otherFormEndpoint!,\r\n requestData: !this.customReportingMode ? JSON.stringify({\r\n sorting: [{ property: 'UID', order: 'ASC' }],\r\n getAllData: true,\r\n }) : this.requestData,\r\n formEntity: '',\r\n userToken: reportType == TsiReportType.Dashboard ? undefined : token!,\r\n reportName: reportName,\r\n isPaged: this.isFormEndpointPaged == true ? true : false,\r\n reportType: reportType, //this.isFormEndpointPaged == true ? TsiReportType.List : TsiReportType.Form,\r\n optionalEndpointsJson: this.optionalEndpoints,\r\n htmlFiltersText: this.filtersHtmlTemplate,\r\n module: module,\r\n order: order,\r\n shortName: shortName,\r\n display: display,\r\n };\r\n\r\n return reportToTemplate;\r\n // throw Error('some of the required properties : user token, formName or formEndpoint have not been set !');\r\n }\r\n }\r\n\r\n private _newReportToEditTemplate(\r\n uid: string,\r\n reportType: TsiReportType,\r\n restEndPoint?: string,\r\n module?: string,\r\n order?: number,\r\n reportName?: string,\r\n shortName?: string,\r\n display?: boolean\r\n ): ReportToEditTemplate {\r\n let token = this.identityManagerService.getAuthToken();\r\n let username: string | undefined =\r\n this.identityManagerService.parseMyAuthToken().name;\r\n\r\n if (username) {\r\n if (uid && /*this.otherFormEndpoint && this.otherFormName &&*/ token) {\r\n let reportToEditTemplate: ReportToEditTemplate = {\r\n restEndpoint: this.isReportForFiche\r\n ? this.reportingService.insertNewUidInRestEndPoint(restEndPoint, this.id) ??\r\n this.otherFormEndpoint\r\n : this.otherFormEndpoint,\r\n requestData: !this.customReportingMode ? this.formEndpointBody : this.requestData,\r\n formName: this.otherFormName, // this.getFormName(this.otherFormName!),\r\n reportTemplateUid: uid,\r\n reportType: reportType,\r\n username: username,\r\n userToken: reportType == TsiReportType.Dashboard ? undefined : token,\r\n isPaged: this.isFormEndpointPaged == true ? true : false,\r\n optionalEndpointsJson: this.optionalEndpoints,\r\n htmlFiltersText: this.filtersHtmlTemplate,\r\n module: module,\r\n order: order,\r\n reportName: reportName,\r\n shortName: shortName,\r\n display: display,\r\n httpMethodType: this.httpMethodType\r\n };\r\n return reportToEditTemplate;\r\n } else {\r\n throw Error(\r\n 'some of the required properties : user token or selectedReport have not been set !'\r\n );\r\n }\r\n } else {\r\n this.isloading = false;\r\n throw Error(\"property 'UserName ' of current user have not been set !\");\r\n }\r\n }\r\n\r\n private _refreshReportsJob(): void {\r\n console.warn('Refresh Reports Job at : ', new Date());\r\n //\r\n if (this.otherFormName != null && this.otherFormName != undefined) {\r\n this.reportingService.getReports(this.otherFormName, this.reportDiscriminator).subscribe({\r\n next: (items) => {\r\n this.reports = items;\r\n\r\n if (this.previousFormName != this.otherFormName) {\r\n this.notificationService.success(\r\n LocalizationKeys.retrievedSuccessfully\r\n );\r\n this.previousFormName = this.otherFormName ?? '';\r\n }\r\n\r\n //\r\n this.refreshJobTimeOut = setTimeout(() => {\r\n this._refreshReportsJob();\r\n }, 10000);\r\n },\r\n error: (err: any) => {\r\n this.notificationService.error(this.errorMessageKey);\r\n this.refreshJobTimeOut = setTimeout(() => {\r\n this._refreshReportsJob();\r\n }, 10000);\r\n },\r\n complete: () => { },\r\n });\r\n } else {\r\n this.refreshJobTimeOut = setTimeout(() => {\r\n this._refreshReportsJob();\r\n }, 10000);\r\n }\r\n }\r\n\r\n private _showImportFileToReportDialog(): void {\r\n this.isUpdateReportFromFileDialogVisible = true;\r\n }\r\n\r\n private _hideImportFileToReportDialog(): void {\r\n this.isUpdateReportFromFileDialogVisible = false;\r\n this.toUploadToUpdateReportFileData = undefined;\r\n }\r\n\r\n // getDefaultReportTemplate(){\r\n previewBuiltInReportTemplate(templateName: string) {\r\n let url: string = `${Segment.reportingServiceBase}/report-viewer/${this.otherFormName}/${templateName}`;\r\n window.open(url, '_blank');\r\n }\r\n\r\n //add a report from the built-in model to the user list\r\n _addFromBuiltInTemplates(templateName: any) {\r\n let formName = this.otherFormName ?? this.EDITION_PERSONNALISE;\r\n this.reportingService\r\n .addFromBuiltInTemplate(formName, templateName, this.reportDiscriminator)\r\n .subscribe({\r\n next: async (res) => {\r\n if (res && res.isSuccess === true) {\r\n await this._refreshReports();\r\n this.notificationService.info(res.msg);\r\n } else\r\n this.notificationService.warn(\r\n 'shared_reporting_cannot_add_from_built_in_template'\r\n );\r\n },\r\n error: (err) => {\r\n this.notificationService.warn(\r\n 'shared_reporting_cannot_add_from_built_in_template'\r\n );\r\n },\r\n });\r\n }\r\n\r\n //add a report from the user list to built-in model template\r\n _addToBuiltInTemplates(reportId: string) {\r\n this.reportingService.addToBuiltInTemplate(reportId).subscribe({\r\n next: async (res) => {\r\n await this._refreshReports(true);\r\n this.notificationService.info(LocalizationKeys.savedSuccessfully);\r\n },\r\n error: (err) => {\r\n this.notificationService.warn(\r\n 'shared_reporting_add_to_builtin_template_report_failed'\r\n );\r\n },\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region make report layout as default for all reports\r\n makeReportDefaultLayout(reportUid: string) {\r\n let request = {\r\n reportTemplateUid: reportUid,\r\n };\r\n this.reportingService.makeReportLayoutAsDefaultLayout(request).subscribe({\r\n next: (data) => {\r\n console.log(data);\r\n this.notificationService.success('shared_reporting_success_updated');\r\n },\r\n error: (error: HttpErrorResponse) => {\r\n this.notificationService.warn('shared_reporting_error_occured');\r\n },\r\n });\r\n }\r\n //#end region\r\n\r\n _viewDashboardt(uid: string): void {\r\n this.isloading = true;\r\n\r\n let report = this.reports.find((r) => r.uid === uid);\r\n if (!report) {\r\n this.notificationService.error(this.errorMessageKey);\r\n return;\r\n }\r\n\r\n let reportTemplateId = report.uid;\r\n let tenantUid = this.identityManagerService.parseMyAuthToken()?.tenantUid;\r\n\r\n let urlViewer = `${Segment.appBaseHref}/${this.dashboardModuleRoute}/${ManageReportingRoutes.dashboardViewer}?${queryParamNamesConst.reportTemplate}=${reportTemplateId}&${queryParamNamesConst.tenantUid}=${tenantUid}`;\r\n\r\n console.log('>>> _viewDashboardt ~ urlViewer:', urlViewer);\r\n\r\n window.open(urlViewer, '_blank');\r\n this.notificationService.success(\r\n 'shared_reporting_redirected_to_print_report_successfully'\r\n );\r\n this.isloading = false;\r\n }\r\n}\r\n","\r\n<div class=\"card\">\r\n <div *busy=\"isloading\"></div>\r\n <div class=\"grid\">\r\n <div class=\"grid col-10\">\r\n <div *ngIf=\"isFromForm; else notFromForm\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'shared_reporting_form'\">\r\n </Tsi-Label>\r\n <p-dropdown class=\"col-10 tsi-component\" class=\"tsi-component\" styleClass=\"tsi-component\" appendTp=\"body\"\r\n [options]=\"formNames\" [ngModel]=\"otherFormName\" optionLabel=\"value\" optionValue=\"key\" [filter]=\"true\"\r\n filterBy=\"value\" [showClear]=\"true\" placeholder=\"{{'shared_reporting_select_form' | localize}}\"\r\n [disabled]=\"true\">\r\n </p-dropdown>\r\n </div>\r\n\r\n <ng-template #notFromForm>\r\n <ng-container>\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'shared_reporting_form'\">\r\n </Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-10\" [(bind)]=\"otherFormName\" (bindChange)=\"onFormChange()\"\r\n [listSourceUrl]=\"getFormNamesEndpoint\" [elementSourceUrl]=\"getFormNamesEndpoint \" [isFiltered]=\"true\"\r\n id-field=\"key\" label-field=\"value\">\r\n </Tsi-Search-Combo>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <p-toolbar styleClass=\"mb-4 gap-2\">\r\n <ng-template pTemplate=\"left\">\r\n <Tsi-Button [text]=\"'shared_reporting_add_report' | localize\" icon=\"p-button-icon p-button-icon-left pi pi-plus\"\r\n styleClass=\"p-element p-button-success ml-2 mr-2 p-button p-component ng-star-inserted p-button-label\" (click)=\"onNewReport()\"></Tsi-Button>\r\n <Tsi-Button [buttonType]=\"buttonType.Submit\" [text]=\"'shared_reporting_delete_report' | localize\" icon=\"p-button-icon p-button-icon-left pi pi-trash\"\r\n styleClass=\"p-element p-button-danger p-button p-component ng-star-inserted p-button-label\" (click)=\"onDeleteSelectedReports()\"\r\n [disabled]=\"!selectedReports || !selectedReports.length\"></Tsi-Button>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"right\">\r\n <p-fileUpload #fileUpload name=\"demo[]\" (onBeforeUpload)=\"onImportFile($event)\"\r\n (onSelect)=\"onFileSelected($event)\" (onClear)=\"onClear($event)\" (onRemove)=\"onRemove($event)\" [multiple]=\"false\"\r\n accept=\"application/json\" [maxFileSize]=\"10000000\" \r\n [invalidFileSizeMessageSummary]=\"'shared_file_upload_invalid_file_size_message_summary' | localize\"\r\n [invalidFileSizeMessageDetail]=\"'shared_file_upload_invalid_file_size_message_detail' | localize\"\r\n [invalidFileTypeMessageSummary]=\"'shared_file_upload_invalid_file_type_message_summary' | localize\"\r\n [invalidFileLimitMessageDetail]=\"'shared_file_upload_invalid_file_limit_message_detail' | localize\"\r\n [invalidFileLimitMessageSummary]=\"'shared_file_upload_invalid_file_limit_message_summary' | localize\"\r\n [invalidFileTypeMessageDetail]=\"'shared_file_upload_invalid_file_type_message_detail' | localize\"\r\n [chooseIcon]=\"'pi pi-paperclip'\" cancelStyleClass=\"p-button-secondary\" uploadStyleClass=\"p-button-help\"\r\n removeStyleClass=\"p-button-danger\" [chooseLabel]=\"'shared_reporting_choose_report_file' | localize\"\r\n [uploadLabel]=\"'shared_reporting_import_report' | localize\"\r\n [cancelLabel]=\"'shared_reporting_cancel_choose_report_file' | localize\">\r\n <ng-template *ngIf=\"toUploadFileData\" pTemplate=\"fileupload-content\">\r\n </ng-template>\r\n </p-fileUpload>\r\n </ng-template>\r\n </p-toolbar>\r\n\r\n <!-- <Tsi-Display-Grid [showHeader]=\"true\"\r\n [header]=\"'shared_reporting_my_template'\"\r\n [columns]=\"columns\" [gridData]=\"reports\" key=\"uid\"\r\n (buttonColumnClicked)=\"handleButtonColumnClicked($event)\" [(selectedItems)]=\"selectedReports\"\r\n [showFilters]=\"false\"\r\n [paginator]=\"true\"\r\n [globalFilterFields]=\"globalFilterFields\">\r\n </Tsi-Display-Grid> -->\r\n\r\n\r\n <!--<div style=\"text-align:left\"> <p-button icon=\"pi pi-refresh\" [pTooltip]=\"'shared_reporting_refresh' | localize\" [tooltipPosition]=\"tooltipPosition.Top\" label=\"Reload\" severity=\"help\" (click)=\"onRefresh()\" /> </div>\r\n <p-button icon=\"pi pi-refresh\" class=\"p-button-rounded\" styleClass=\"p-button-text\" />\r\n-->\r\n \r\n <Tsi-Button styleClass=\"p-element p-button-text p-button-raised p-button-rounded mb-3 ml-3\" \r\n [tooltipText]=\"'shared_reporting_refresh'\" [tooltipPosition]=\"tooltipPosition.Top\"\r\n icon=\"pi pi-refresh\" (click)=\"onRefresh()\"></Tsi-Button>\r\n\r\n <tsi-view-grid \r\n [header]=\"'shared_reporting_my_template'\"\r\n [columns]=\"columns\" [gridData]=\"reports\" key=\"uid\"\r\n (buttonColumnClicked)=\"handleButtonColumnClicked($event)\" [(selectedItems)]=\"selectedReports\"\r\n [getDataFromApi]=\"false\"\r\n [formName]=\"'my-report-templates'\"\r\n >\r\n </tsi-view-grid>\r\n <br/>\r\n <!-- Default Template -->\r\n <!-- <Tsi-Display-Grid \r\n [showHeader]=\"true\" \r\n [header]=\"'shared_reporting_BuiltIn_template'\"\r\n [showSummaryFooter]=\"false\" \r\n [paginator]=\"false\" \r\n [showFilters]=\"false\" \r\n [columns]=\"defaultTemplateColumns\" \r\n [gridData]=\"defaultReportTemplateData\" \r\n (buttonColumnClicked)=\"handleButtonColumnClicked($event)\"\r\n [paginator]=\"true\"\r\n key=\"name\">\r\n </Tsi-Display-Grid> -->\r\n\r\n \r\n <tsi-view-grid\r\n [header]=\"'shared_reporting_BuiltIn_template'\"\r\n [columns]=\"defaultTemplateColumns\" \r\n [gridData]=\"defaultReportTemplateData\" \r\n (buttonColumnClicked)=\"handleButtonColumnClicked($event)\"\r\n [getDataFromApi]=\"false\"\r\n [formName]=\"'default-my-report-templates'\"\r\n key=\"name\">\r\n </tsi-view-grid>\r\n\r\n\r\n\r\n\r\n \r\n\r\n <!-- dialog to import file to report -->\r\n <p-dialog header=\"{{'shared_reporting_select_file_to_import_into_report' | localize}}\" [(visible)]=\"isUpdateReportFromFileDialogVisible\" [style]=\"{width: '50vw'}\">\r\n <!-- <Tsi-Modal-Header (onCloseClick)=\"onImportFileToReportModalCancelClick()\" [inputTitle]=\"'shared_reporting_select_file_to_import_into_report'\"></Tsi-Modal-Header> -->\r\n\r\n <ng-template pTemplate=\"body\">\r\n <p-fileUpload #importFileToReportFileUpload name=\"importFileToReport\" (onBeforeUpload)=\"onImportFileToReport_ImportFile($event)\"\r\n (onSelect)=\"onImportFileToReport_FileSelected($event)\" (onClear)=\"onImportFileToReport_Clear($event)\" (onRemove)=\"onImportFileToReport_Remove($event)\" [multiple]=\"false\"\r\n accept=\"application/json\" [maxFileSize]=\"10000000\"\r\n [invalidFileSizeMessageSummary]=\"'shared_file_upload_invalid_file_size_message_summary' | localize\"\r\n [invalidFileSizeMessageDetail]=\"'shared_file_upload_invalid_file_size_message_detail' | localize\"\r\n [invalidFileTypeMessageSummary]=\"'shared_file_upload_invalid_file_type_message_summary' | localize\"\r\n [invalidFileLimitMessageDetail]=\"'shared_file_upload_invalid_file_limit_message_detail' | localize\"\r\n [invalidFileLimitMessageSummary]=\"'shared_file_upload_invalid_file_limit_message_summary' | localize\"\r\n [invalidFileTypeMessageDetail]=\"'shared_file_upload_invalid_file_type_message_detail' | localize\"\r\n [chooseIcon]=\"'pi pi-paperclip'\" cancelStyleClass=\"p-button-secondary\" uploadStyleClass=\"p-button-help\"\r\n removeStyleClass=\"p-button-danger\" [chooseLabel]=\"'shared_reporting_choose_report_file' | localize\"\r\n [uploadLabel]=\"'shared_reporting_import_report' | localize\"\r\n [cancelLabel]=\"'shared_reporting_cancel_choose_report_file' | localize\">\r\n <ng-template *ngIf=\"toUploadToUpdateReportFileData\" pTemplate=\"fileupload-content\">\r\n </ng-template>\r\n </p-fileUpload>\r\n </ng-template>\r\n\r\n <!-- <Tsi-Modal-Footer (onCancelClick)=\"onImportFileToReportModalCancelClick()\"\r\n (onSaveClick)=\"onImportFileToReportModalSaveClick()\"\r\n [saveDisabled]=\"!toUploadToUpdateReportFileData\"></Tsi-Modal-Footer> -->\r\n\r\n</p-dialog>\r\n</div>\r\n","import { Component, ComponentRef, OnInit, ViewChild } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { ButtonType } from '../../enums/button-type.enum';\r\nimport { BsModalRef } from '../../models';\r\nimport { AdComponent, AdItem, DynamicComponentLoader } from '../../interfaces';\r\nimport { ModalSizeEnum } from '../../enums';\r\nimport { TsiBsModalService } from '../../services';\r\nimport { AdDirective } from '../../tsi-directives/dynamic-component-loader/ad.directive';\r\n\r\n@Component({\r\n selector: 'app-modal-loader',\r\n templateUrl: './modal-loader.component.html',\r\n styleUrls: ['./modal-loader.component.scss']\r\n})\r\nexport class ModalLoaderComponent implements OnInit {\r\n //#region Local vars \r\n private _modalRef?: BsModalRef;\r\n public message?: DynamicComponentLoader;\r\n public subscription?: Subscription;\r\n public comp: any;\r\n public config: any;\r\n itemDialog: boolean = false;\r\n modalSize = ModalSizeEnum.ExtraLarge;\r\n componentRef?: ComponentRef<AdComponent>;\r\n constructor(private _tsiBsModalService: TsiBsModalService) { }\r\n buttonType = ButtonType\r\n @ViewChild(AdDirective, { static: true }) adHost!: AdDirective;\r\n //#endregion\r\n\r\n ngOnInit(): void {\r\n // set subscribe to modal service\r\n this.subscription = this._tsiBsModalService.getMessage().subscribe(msg => this.loadComponent(msg));\r\n this._modalRef = new BsModalRef(()=>{this.itemDialog = false});\r\n }\r\n\r\n loadComponent(msg: DynamicComponentLoader) {\r\n this.itemDialog = true;\r\n this.message = msg;\r\n const viewContainerRef = this.adHost.viewContainerRef;\r\n viewContainerRef.clear();\r\n\r\n let comp = new AdItem(this.message.component, this.message.configuration)\r\n this.componentRef = viewContainerRef.createComponent<AdComponent>(comp.component);\r\n \r\n // let objectKeys = Object.keys(this.message.configuration.initialState);\r\n // objectKeys.forEach((key) => this.componentRef.setInput(key, this.message.configuration.initialState[key]))\r\n // this.componentRef.setInput('itemDialog', true);\r\n // this.componentRef.setInput('bsModalRef', this._modalRef);\r\n //todocomponentRef.instance.data = this.message.configuration;\r\n\r\n }\r\n\r\n onCancel() {\r\n this.itemDialog = false;\r\n //this.itemDialogClosed.emit();\r\n }\r\n onSave() {\r\n //todothis.componentRef.instance.save();\r\n this._tsiBsModalService.onSave();\r\n this.itemDialog = false;\r\n }\r\n}\r\n","<p-dialog [(visible)]=\"itemDialog\" contentStyleClass=\"pb-0\" [style]=\"modalSize\" header=\"Product Details\" [modal]=\"true\"\r\n styleClass=\"p-fluid\">\r\n <ng-template adHost>\r\n </ng-template>\r\n <p-footer class=\"p-dialog-footer\" >\r\n <Tsi-Button text=\"Cancel\" icon=\"p-button-icon p-button-icon-left pi pi-times\" styleClass=\"p-element p-button-text flex align-items-center justify-content-center p-button p-component p-button-label\" (onClick)=\"onCancel()\"></Tsi-Button>\r\n <Tsi-Button text=\"Save\" [buttonType]=\"buttonType.Submit\" icon=\"pi pi-check\" styleClass=\"p-element p-button-text p-button p-component ng-star-inserted p-button-label\" (onClick)=\"onSave()\"></Tsi-Button> \r\n </p-footer>\r\n</p-dialog>","import { Component } from '@angular/core';\r\nimport { ButtonType } from '../../enums/button-type.enum';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { Subject } from 'rxjs';\r\nimport { DialogDataService } from '../../services';\r\nimport { TsiFormComponentBaseComponent } from '../../tsi-base/components/tsi-form-base/tsi-form-base.component';\r\nimport { appProviders } from '../../consts/app-providers';\r\n\r\n@Component({\r\n selector: 'app-tsi-change-password',\r\n templateUrl: './tsi-change-password.component.html',\r\n styleUrls: ['./tsi-change-password.component.scss'],\r\n providers : [...appProviders]\r\n})\r\nexport class TsiChangePasswordComponent extends TsiFormComponentBaseComponent{\r\n oldPassword: string|undefined;\r\n newPassword: string|undefined;\r\n confirmedNewPassword: string|undefined;\r\n isPasswordVisible: boolean = false;\r\n\r\n buttonType = ButtonType\r\n\r\n saveSubject: Subject<any>;\r\n\r\n constructor(\r\n private _dialogService: DialogDataService,\r\n public override ref: DynamicDialogRef,\r\n public override config: DynamicDialogConfig\r\n ) {\r\n super(ref, config);\r\n this.saveSubject = this.config.data.saveSubject;\r\n }\r\n\r\n override save(): void {\r\n super.save()\r\n this._dialogService.setData({oldPassword : this.oldPassword, newPassword : this.newPassword, confirmedNewPassword: this.confirmedNewPassword});\r\n if (this.saveSubject) {\r\n this.saveSubject.next({ data: 'save' });\r\n }\r\n this.ref.close();\r\n }\r\n\r\n}\r\n","\r\n <!-- <Tsi-Button [buttonType]=\"buttonType.Submit\" text=\"{{'paie_parametre_parametreApp_test' | localize}}\" (onClick)=\"SendEmail()\"></Tsi-Button> -->\r\n <tsi-form (onSubmit)=\"save()\" [isLoading]=\"isloading\">\r\n\r\n <div class=\"card\">\r\n <div class=\" col-12\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'oldPwd'\">\r\n </Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'libelle'\" [(inputField)]=\"oldPassword\" [textBoxType]=\"isPasswordVisible ? 'text' : 'password'\"></Tsi-Text-Box>\r\n </div>\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'newPwd'\">\r\n </Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'libelle'\" [(inputField)]=\"newPassword\" [textBoxType]=\"isPasswordVisible ? 'text' : 'password'\"></Tsi-Text-Box>\r\n </div>\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'confirmedPwd'\">\r\n </Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'libelle'\" [(inputField)]=\"confirmedNewPassword\" [textBoxType]=\"isPasswordVisible ? 'text' : 'password'\"></Tsi-Text-Box>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-10\">\r\n <p-checkbox \r\n label=\"Afficher les mots de passe\" \r\n [(ngModel)]=\"isPasswordVisible\" \r\n [binary]=\"true\">\r\n </p-checkbox>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n <Tsi-Modal-Footer (onCancelClick)=\"hide()\"> </Tsi-Modal-Footer>\r\n </tsi-form>\r\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { SafeUrl } from '@angular/platform-browser';\r\nimport JsBarcode from 'jsbarcode';\r\n\r\n\r\n@Component({\r\n selector: 'Tsi-code-generator',\r\n templateUrl: './tsi-code-generator.component.html',\r\n styleUrls: ['./tsi-code-generator.component.scss'],\r\n})\r\nexport class TsiCodeGeneratorComponent implements OnInit, AfterViewInit {\r\n\r\n @ViewChild('barecodeSvg', { static: false }) barecodeSvg!: ElementRef;\r\n\r\n @Input() isBareCode: boolean = false;\r\n @Input() isQrCode: boolean = false;\r\n @Input() width: number = 100;\r\n @Input() labelValue: string = \"Download\";\r\n\r\n @Output() barCodeGenerated = new EventEmitter();\r\n\r\n qrCodeDownloadLink: SafeUrl = '';\r\n barCodeDownloadLink: SafeUrl = '';\r\n\r\n private _data: string | undefined = \"\";\r\n\r\n @Input()\r\n set data(value: string | undefined) {\r\n this._data = value;\r\n this.generateBareCode();\r\n }\r\n get data(): string | undefined { return this._data; }\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.isBareCode && this.data) {\r\n this.generateBareCode();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n onQrCodeChange(url: SafeUrl) {\r\n this.qrCodeDownloadLink = this.isQrCode ? url : \"\";\r\n }\r\n\r\n private generateBareCode(): void {\r\n if (this.barecodeSvg) {\r\n JsBarcode(this.barecodeSvg.nativeElement, this.data ?? \"\", {\r\n format: 'CODE128',\r\n lineColor: '#000',\r\n width: 2,\r\n height: 40,\r\n });\r\n\r\n const svgElement = this.barecodeSvg.nativeElement as SVGSVGElement;\r\n const serializer = new XMLSerializer();\r\n const svgString = serializer.serializeToString(svgElement);\r\n const svgDataUrl = 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgString);\r\n const image = new Image();\r\n\r\n image.onload = () => {\r\n const canvas = document.createElement('canvas');\r\n canvas.width = image.width;\r\n canvas.height = image.height;\r\n\r\n const context = canvas.getContext('2d');\r\n\r\n if (context) {\r\n context.drawImage(image, 0, 0);\r\n const pngDataUrl = canvas.toDataURL('image/png');\r\n this.barCodeDownloadLink = pngDataUrl;\r\n }\r\n };\r\n image.src = svgDataUrl;\r\n this.barCodeGenerated.emit(true);\r\n }\r\n }\r\n\r\n}","<div *ngIf=\"isBareCode\" class=\"barcode-container\">\r\n <div class=\"barcode-wrapper\">\r\n <svg #barecodeSvg></svg>\r\n </div>\r\n <div class=\"download\">\r\n <a class=\"cursor-pointer\" [href]=\"barCodeDownloadLink\" download=\"barcode.png\" target=\"_blank\">\r\n {{ labelValue | localize }}\r\n </a>\r\n </div>\r\n </div>\r\n \r\n\r\n<div *ngIf=\"isQrCode\">\r\n <qrcode\r\n (qrCodeURL)=\"onQrCodeChange($event)\"\r\n [qrdata]=\"data!\"\r\n [allowEmptyString]=\"true\"\r\n [width]=\"width\">\r\n </qrcode>\r\n\r\n <a class=\"pl-3 cursor-pointer\" [href]=\"qrCodeDownloadLink\" download=\"qrcode.png\" target=\"_blank\">{{labelValue | localize }}</a>\r\n</div>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'Tsi-divider',\r\n templateUrl: './tsi-divider.component.html',\r\n styleUrls: ['./tsi-divider.component.scss']\r\n})\r\nexport class TsiDividerComponent {\r\n\r\n @Input() text = 'divider_or'\r\n\r\n}\r\n","<div *ngIf=\"text\" class=\"separator-container\">\r\n <div class=\"separator-line\"></div>\r\n <span class=\"separator-text\">{{ text | localize }}</span>\r\n <div class=\"separator-line\"></div>\r\n</div>\r\n\r\n<div *ngIf=\"!text\" >\r\n <div class=\"separator-line\"></div>\r\n</div>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'Tsi-Paragraph',\r\n templateUrl: './tsi-paragraph.component.html',\r\n styleUrls: ['./tsi-paragraph.component.css']\r\n})\r\nexport class TsiParagraphComponent {\r\n @Input() paragraphName :string = '' ;\r\n}\r\n","<p>\r\n {{ paragraphName | localize }}\r\n</p>\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Component, Input } from '@angular/core';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { TsiComponentEnum, Modes } from '../../enums';\r\nimport { IGenericFormConfiguration, IFormBloc } from '../../interfaces';\r\nimport { CrudBaseService, TsiMessageService, TsiNotificationService, TsiConfirmationService } from '../../services';\r\nimport { TsiFormComponentBaseComponent } from '../../tsi-base/components/tsi-form-base/tsi-form-base.component';\r\nimport { LocalizationKeys } from '../../consts/localization-key';\r\n\r\n@Component({\r\n selector: 'tsi-generic-form',\r\n templateUrl: './tsi-generic-form.component.html',\r\n styleUrls: ['./tsi-generic-form.component.scss']\r\n})\r\nexport class TsiGenericFormComponent extends TsiFormComponentBaseComponent {\r\n index: number = 0;\r\n\r\n openNext() {\r\n this.index = (this.index === 2) ? 0 : this.index + 1;\r\n }\r\n\r\n openPrev() {\r\n this.index = (this.index === 0) ? 2 : this.index - 1;\r\n }\r\n //item: any;\r\n tsiComponents = TsiComponentEnum;\r\n //#region \r\n @Input() crudService?: CrudBaseService<any, any, any, any>;\r\n @Input() configuration?: IGenericFormConfiguration;\r\n @Input() blocs: Array<IFormBloc> = [];\r\n //#endregion\r\n constructor(private _message: TsiMessageService,\r\n private _notify: TsiNotificationService,\r\n private _confirm: TsiConfirmationService,\r\n public override ref: DynamicDialogRef,\r\n public override config: DynamicDialogConfig) { super(ref, config); }\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n if ((this.mode == Modes.edit || this.mode == Modes.delete)\r\n && this.id != null\r\n && this.id != undefined\r\n && this.crudService != null\r\n && this.crudService != undefined) {\r\n this.isloading = true;\r\n this.crudService.getById(this.id)\r\n .subscribe({\r\n next: (data) => {\r\n this.item = data;\r\n this._notify.success(this.l(LocalizationKeys.retrievedSuccessfully));\r\n },\r\n error: (error: HttpErrorResponse) => {\r\n this._notify.error(error.message);\r\n },\r\n complete: () => { this.isloading = false; }\r\n });\r\n }\r\n }\r\n\r\n override save(): void {\r\n super.save()\r\n switch (this.mode) {\r\n case Modes.create: this._saveCreateMode(); break;\r\n case Modes.edit: this._saveEditMode(); break;\r\n case Modes.delete: this._saveDeleteMode(); break;\r\n default: throw new Error('no mode have bben set to TsiGenericFormComponent');\r\n }\r\n }\r\n\r\n //#region private methods\r\n private _saveCreateMode(): void {\r\n if (this.crudService != null\r\n && this.crudService != undefined) {\r\n this.isloading = true;\r\n this.crudService.create(this.item)\r\n .subscribe({\r\n next: (data) => {\r\n this._notify.success(this.l(LocalizationKeys.createdSuccessfully));\r\n },\r\n error: (error: HttpErrorResponse) => {\r\n this._notify.error(error.message);\r\n },\r\n complete: () => { this.isloading = false; }\r\n });\r\n }\r\n }\r\n\r\n private _saveEditMode(): void {\r\n if (this.id != null\r\n && this.id != undefined\r\n && this.crudService != null\r\n && this.crudService != undefined) {\r\n this.isloading = true;\r\n this.crudService.update(this.item, this.id)\r\n .subscribe({\r\n next: (data) => {\r\n this._notify.success(this.l(LocalizationKeys.updatedSuccessfully));\r\n },\r\n error: (error: HttpErrorResponse) => {\r\n this._notify.error(error.message);\r\n },\r\n complete: () => { this.isloading = false; }\r\n });\r\n }\r\n }\r\n\r\n private _saveDeleteMode(): void {\r\n if (this.id != null\r\n && this.id != undefined\r\n && this.crudService != null\r\n && this.crudService != undefined) {\r\n this.isloading = true;\r\n this.crudService.delete(this.id)\r\n .subscribe({\r\n next: (data) => {\r\n this._notify.success(this.l(LocalizationKeys.deletedSuccessfully));\r\n },\r\n error: (error: HttpErrorResponse) => {\r\n this._notify.error(error.message);\r\n },\r\n complete: () => { this.isloading = false; }\r\n });\r\n }\r\n }\r\n //#endregion\r\n}\r\n","<form class=\"form-horizontal\" autocomplete=\"off\" #editfactureAchatModal=\"ngForm\" (ngSubmit)=\"save()\">\r\n <Tsi-Modal-Header [inputTitle]=\"header | modalLabel :mode:'gesc_achats_factureachat'\" (onCloseClick)=\"hide()\">\r\n </Tsi-Modal-Header>\r\n <fieldset [disabled]=\"isDeleteMode()\" [busy]=\"isloading\">\r\n <div class=\"grid\">\r\n <div *ngFor=\"let bloc of blocs\">\r\n\r\n <!-- Tsi-Label -->\r\n <div *ngIf=\"bloc.type == tsiComponents.Label; else searchComboBlock\">\r\n <Tsi-Label [labelValue]=\"bloc.typeConfig['labelValue'] ? bloc.typeConfig['labelValue'] : '' | localize\">\r\n </Tsi-Label>\r\n </div>\r\n <!-- Tsi-Search-Combo -->\r\n <ng-template #searchComboBlock>\r\n <ng-container *ngIf=\"bloc.type == tsiComponents.SearchCombo; else currencySocieteInputBlock\">\r\n <Tsi-Search-Combo [elementSourceUrl]=\"bloc.typeConfig['elementSourceUrl']\"\r\n [listSourceUrl]=\"bloc.typeConfig['listSourceUrl']\" [(bind)]=\"item[bloc.typeConfig['bind']]\"\r\n [id-field]=\"bloc.typeConfig['id-field']\" [label-field]=\"bloc.typeConfig['label-field']\"\r\n [isFiltered]=\"bloc.typeConfig['isFiltered']\"></Tsi-Search-Combo>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Currency-Societe-Input -->\r\n <ng-template class=\"{{bloc.styleClass}}\" #currencySocieteInputBlock>\r\n <ng-container *ngIf=\"bloc.type == tsiComponents.CurrencySocieteInput; else currencyOtherInputBlock\">\r\n <Tsi-Currency-Societe-Input [inputName]=\"bloc.typeConfig['inputName']\"\r\n [inputId]=\"bloc.typeConfig['inputId']\" [(inputField)]=\"item[bloc.typeConfig['inputField']]\">\r\n </Tsi-Currency-Societe-Input>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Currency-Other-Input -->\r\n <ng-template class=\"{{bloc.styleClass}}\" #currencyOtherInputBlock>\r\n <ng-container *ngIf=\"bloc.type == tsiComponents.CurrencyOtherInput; else datePickerInputBlock\">\r\n <Tsi-Currency-Other-Input [inputName]=\"bloc.typeConfig['inputName']\"\r\n [inputId]=\"bloc.typeConfig['inputId']\" [(inputField)]=\"item[bloc.typeConfig['inputField']]\">\r\n </Tsi-Currency-Other-Input>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Date-Picker -->\r\n <ng-template class=\"{{bloc.styleClass}}\" #datePickerInputBlock>\r\n <ng-container *ngIf=\"bloc.type == tsiComponents.DatePicker; else checkBoxInputBlock\">\r\n <Tsi-Date-Picker [inputName]=\"bloc.typeConfig['inputName']\"\r\n [inputId]=\"bloc.typeConfig['inputId']\" [(inputField)]=\"item[bloc.typeConfig['inputField']]\">\r\n </Tsi-Date-Picker>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-CheckBox -->\r\n <ng-template class=\"{{bloc.styleClass}}\" #checkBoxInputBlock>\r\n <ng-container *ngIf=\"bloc.type == tsiComponents.Checkbox; else decimalInputBlock\">\r\n <Tsi-CheckBox [inputName]=\"bloc.typeConfig['inputName']\" [inputId]=\"bloc.typeConfig['inputId']\"\r\n [(inputField)]=\"item[bloc.typeConfig['inputField']]\">\r\n </Tsi-CheckBox>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Decimal-Input -->\r\n <ng-template class=\"{{bloc.styleClass}}\" #decimalInputBlock>\r\n <ng-container *ngIf=\"bloc.type == tsiComponents.DecimalInput; else integerInputBlock\">\r\n <Tsi-Decimal-Input [inputName]=\"bloc.typeConfig['inputName']\"\r\n [inputId]=\"bloc.typeConfig['inputId']\" [(inputField)]=\"item[bloc.typeConfig['inputField']]\">\r\n </Tsi-Decimal-Input>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Integer -->\r\n <ng-template class=\"{{bloc.styleClass}}\" #integerInputBlock>\r\n <ng-container *ngIf=\"bloc.type == tsiComponents.Integer; else rateInputBlock\">\r\n <Tsi-Integer [inputName]=\"bloc.typeConfig['inputName']\" [inputId]=\"bloc.typeConfig['inputId']\"\r\n [(inputField)]=\"item[bloc.typeConfig['inputField']]\">\r\n </Tsi-Integer>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Rate-Input -->\r\n <ng-template class=\"{{bloc.styleClass}}\" #rateInputBlock>\r\n <ng-container *ngIf=\"bloc.type == tsiComponents.RateInput; else textInputBlock\">\r\n <Tsi-Rate-Input [inputName]=\"bloc.typeConfig['inputName']\"\r\n [inputId]=\"bloc.typeConfig['inputId']\" [(inputField)]=\"item[bloc.typeConfig['inputField']]\">\r\n </Tsi-Rate-Input>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Text-Box -->\r\n <ng-template class=\"{{bloc.styleClass}}\" #textInputBlock>\r\n <ng-container *ngIf=\"bloc.type == tsiComponents.TextBox; else paragrapheBlock\">\r\n <Tsi-Text-Box [inputName]=\"bloc.typeConfig['inputName']\" [inputId]=\"bloc.typeConfig['inputId']\"\r\n [(inputField)]=\"item[bloc.typeConfig['inputField']]\">\r\n </Tsi-Text-Box>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Paragraph -->\r\n <ng-template class=\"{{bloc.styleClass}}\" #paragrapheBlock>\r\n <ng-container *ngIf=\"bloc.type == tsiComponents.Paragraph; else tabBlock\">\r\n <Tsi-Paragraph [paragraphName]=\"bloc.typeConfig['paragraphName']| localize\">\r\n </Tsi-Paragraph>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #tabBlock>\r\n <ng-container>\r\n <p-tabView [(activeIndex)]=\"index\">\r\n <p-tabPanel *ngFor=\"let tab of bloc.tabPanels;\"\r\n [header]=\"tab.tabHeader ? tab.tabHeader : '' | localize\">\r\n <!-- Here start -->\r\n <div class=\"grid\">\r\n <div *ngFor=\"let bloc of tab.blocs\">\r\n <!-- Tsi-Label -->\r\n <div *ngIf=\"bloc.type == tsiComponents.Label; else searchComboBlock\">\r\n <Tsi-Label [labelValue]=\"bloc.typeConfig['labelValue'] ? bloc.typeConfig['labelValue'] : '' | localize\">\r\n </Tsi-Label>\r\n </div>\r\n <!-- Tsi-Search-Combo -->\r\n <ng-template #searchComboBlock>\r\n <ng-container *ngIf=\"bloc.type == tsiComponents.SearchCombo; else currencySocieteInputBlock\">\r\n <Tsi-Search-Combo [elementSourceUrl]=\"bloc.typeConfig['elementSourceUrl']\"\r\n [listSourceUrl]=\"bloc.typeConfig['listSourceUrl']\" [(bind)]=\"item[bloc.typeConfig['bind']]\"\r\n [id-field]=\"bloc.typeConfig['id-field']\" [label-field]=\"bloc.typeConfig['label-field']\"\r\n [isFiltered]=\"bloc.typeConfig['isFiltered']\"></Tsi-Search-Combo>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Currency-Societe-Input -->\r\n <ng-template class=\"{{bloc.styleClass}}\" #currencySocieteInputBlock>\r\n <ng-container\r\n *ngIf=\"bloc.type == tsiComponents.CurrencySocieteInput; else currencyOtherInputBlock\">\r\n <Tsi-Currency-Societe-Input [inputName]=\"bloc.typeConfig['inputName']\"\r\n [inputId]=\"bloc.typeConfig['inputId']\"\r\n [(inputField)]=\"item[bloc.typeConfig['inputField']]\">\r\n </Tsi-Currency-Societe-Input>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Currency-Other-Input -->\r\n <ng-template class=\"{{bloc.styleClass}}\" #currencyOtherInputBlock>\r\n <ng-container\r\n *ngIf=\"bloc.type == tsiComponents.CurrencyOtherInput; else datePickerInputBlock\">\r\n <Tsi-Currency-Other-Input [inputName]=\"bloc.typeConfig['inputName']\"\r\n [inputId]=\"bloc.typeConfig['inputId']\"\r\n [(inputField)]=\"item[bloc.typeConfig['inputField']]\">\r\n </Tsi-Currency-Other-Input>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Date-Picker -->\r\n <ng-template class=\"{{bloc.styleClass}}\" #datePickerInputBlock>\r\n <ng-container\r\n *ngIf=\"bloc.type == tsiComponents.DatePicker; else checkBoxInputBlock\">\r\n <Tsi-Date-Picker [inputName]=\"bloc.typeConfig['inputName']\"\r\n [inputId]=\"bloc.typeConfig['inputId']\"\r\n [(inputField)]=\"item[bloc.typeConfig['inputField']]\">\r\n </Tsi-Date-Picker>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-CheckBox -->\r\n <ng-template class=\"{{bloc.styleClass}}\" #checkBoxInputBlock>\r\n <ng-container\r\n *ngIf=\"bloc.type == tsiComponents.Checkbox; else decimalInputBlock\">\r\n <Tsi-CheckBox [inputName]=\"bloc.typeConfig['inputName']\"\r\n [inputId]=\"bloc.typeConfig['inputId']\"\r\n [(inputField)]=\"item[bloc.typeConfig['inputField']]\">\r\n </Tsi-CheckBox>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Decimal-Input -->\r\n <ng-template class=\"{{bloc.styleClass}}\" #decimalInputBlock>\r\n <ng-container\r\n *ngIf=\"bloc.type == tsiComponents.DecimalInput; else integerInputBlock\">\r\n <Tsi-Decimal-Input [inputName]=\"bloc.typeConfig['inputName']\"\r\n [inputId]=\"bloc.typeConfig['inputId']\"\r\n [(inputField)]=\"item[bloc.typeConfig['inputField']]\">\r\n </Tsi-Decimal-Input>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Integer -->\r\n <ng-template class=\"{{bloc.styleClass}}\" #integerInputBlock>\r\n <ng-container\r\n *ngIf=\"bloc.type == tsiComponents.Integer; else rateInputBlock\">\r\n <Tsi-Integer [inputName]=\"bloc.typeConfig['inputName']\"\r\n [inputId]=\"bloc.typeConfig['inputId']\"\r\n [(inputField)]=\"item[bloc.typeConfig['inputField']]\">\r\n </Tsi-Integer>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Rate-Input -->\r\n <ng-template class=\"{{bloc.styleClass}}\" #rateInputBlock>\r\n <ng-container\r\n *ngIf=\"bloc.type == tsiComponents.RateInput; else textInputBlock\">\r\n <Tsi-Rate-Input [inputName]=\"bloc.typeConfig['inputName']\"\r\n [inputId]=\"bloc.typeConfig['inputId']\"\r\n [(inputField)]=\"item[bloc.typeConfig['inputField']]\">\r\n </Tsi-Rate-Input>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Text-Box -->\r\n <ng-template class=\"{{bloc.styleClass}}\" #textInputBlock>\r\n <ng-container\r\n *ngIf=\"bloc.type == tsiComponents.TextBox; else paragrapheBlock\">\r\n <Tsi-Text-Box [inputName]=\"bloc.typeConfig['inputName']\"\r\n [inputId]=\"bloc.typeConfig['inputId']\"\r\n [(inputField)]=\"item[bloc.typeConfig['inputField']]\">\r\n </Tsi-Text-Box>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Paragraph -->\r\n <ng-template class=\"{{bloc.styleClass}}\" #paragrapheBlock>\r\n <ng-container *ngIf=\"bloc.type == tsiComponents.Paragraph\">\r\n <Tsi-Paragraph\r\n [paragraphName]=\"bloc.typeConfig['paragraphName']| localize\">\r\n </Tsi-Paragraph>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n </div>\r\n <!-- Here Finish -->\r\n </p-tabPanel>\r\n </p-tabView>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </fieldset>\r\n\r\n <Tsi-Modal-Footer [cancelDisabled]=\"saving\" (onCancelClick)=\"hide()\">\r\n </Tsi-Modal-Footer>\r\n</form>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ModalSizeEnum } from '../../enums/modal-size-enum';\r\n\r\n@Component({\r\n selector: 'tsi-modal',\r\n templateUrl: './tsi-modal.component.html',\r\n styleUrls: ['./tsi-modal.component.scss']\r\n})\r\nexport class TsiModalComponent implements OnInit {\r\n//#region Inputs\r\n@Input() modalSize: any = ModalSizeEnum.Large;\r\n@Input() itemDialog: boolean= true;\r\n//#endregion\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n // hideDialog(){\r\n // this.itemDialog = false;\r\n // }\r\n}\r\n","<p-dialog [maximizable]=\"true\" [(visible)]=\"itemDialog\" [modal]=\"true\">\r\n <ng-content></ng-content>\r\n</p-dialog>\r\n","import { Component, EventEmitter, Output } from '@angular/core';\r\nimport { ButtonType } from '../../enums/button-type.enum';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { Subject } from 'rxjs';\r\nimport { TsiFormComponentBaseComponent } from '../../tsi-base/components/tsi-form-base/tsi-form-base.component';\r\nimport { DialogDataService } from '../../services';\r\nimport { appProviders } from '../../consts/app-providers';\r\n\r\n@Component({\r\n selector: 'app-tsi-send-mail',\r\n templateUrl: './tsi-send-mail.component.html',\r\n styleUrls: ['./tsi-send-mail.component.scss'],\r\n providers: [...appProviders]\r\n})\r\nexport class TsiSendMailComponent extends TsiFormComponentBaseComponent{\r\n toAddress: string|undefined;\r\n ccAddress: string|undefined;\r\n objet: string|undefined;\r\n message: string|undefined;\r\n buttonType = ButtonType\r\n\r\n saveSubject: Subject<any>;\r\n\r\n constructor(\r\n private _dialogService: DialogDataService,\r\n public override ref: DynamicDialogRef,\r\n public override config: DynamicDialogConfig\r\n ) {\r\n super(ref, config);\r\n this.saveSubject = this.config.data.saveSubject;\r\n this.toAddress = this.config.data.email;\r\n }\r\noverride save(): void {\r\n super.save()\r\n this._dialogService.setData({toAddress : this.toAddress, ccAddress : this.ccAddress, objet: this.objet, message: this.message});\r\n if (this.saveSubject) {\r\n this.saveSubject.next({ data: 'save' });\r\n }\r\n this.ref.close();\r\n}\r\n \r\n\r\n\r\n\r\n}\r\n","\r\n <!-- <Tsi-Button [buttonType]=\"buttonType.Submit\" text=\"{{'paie_parametre_parametreApp_test' | localize}}\" (onClick)=\"SendEmail()\"></Tsi-Button> -->\r\n <tsi-form (onSubmit)=\"save()\" [isLoading]=\"isloading\">\r\n\r\n <div class=\"card\">\r\n <div class=\" col-12\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'paie_parametre_parametreApp_e_mail_destinataire'\">\r\n </Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'libelle'\" [(inputField)]=\"toAddress\"></Tsi-Text-Box>\r\n </div>\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'paie_parametre_parametreApp_AdresseCC'\">\r\n </Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'libelle'\" [(inputField)]=\"ccAddress\"></Tsi-Text-Box>\r\n </div>\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'paie_parametre_parametreApp_Objet'\">\r\n </Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'libelle'\" [(inputField)]=\"objet\"></Tsi-Text-Box>\r\n </div>\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'paie_parametre_parametreApp_Message'\">\r\n </Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'libelle'\" [(inputField)]=\"message\"></Tsi-Text-Box>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n <Tsi-Modal-Footer (onCancelClick)=\"hide()\"> </Tsi-Modal-Footer>\r\n </tsi-form>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tsi-tab-panel',\r\n templateUrl: './tsi-tab-panel.component.html',\r\n styleUrls: ['./tsi-tab-panel.component.scss']\r\n})\r\nexport class TsiTabPanelComponent {\r\n\r\n //#region Inputs\r\n @Input() heading: string = '';\r\n\r\n @Input() closable: boolean = false;\r\n\r\n @Input() headerStyle: any;\r\n\r\n @Input() headerStyleClass: string = '';\r\n\r\n @Input() cache: boolean = true;\r\n\r\n @Input() tooltip: any;\r\n\r\n @Input() tooltipPosition: string | any = 'top';\r\n\r\n @Input() tooltipPositionStyle: string = 'absolute';\r\n\r\n @Input() tooltipStyleClass: string = '';\r\n\r\n @Input() selected: boolean = false;\r\n @Input() disabled: boolean = false;\r\n @Input() leftIcon: string = '';\r\n @Input() rightIcon: string = '';\r\n //#endregion\r\n\r\n //#region Outputs\r\n //#region\r\n}\r\n","<p-tabPanel\r\n[header]=\"heading\"\r\n[tooltipStyleClass]=\"tooltipStyleClass\"\r\n[tooltipPositionStyle]=\"tooltipPositionStyle\"\r\n[tooltipPosition]=\"tooltipPosition\"\r\n[tooltip]=\"tooltip\"\r\n[cache]=\"cache\"\r\n[headerStyleClass]=\"headerStyleClass\"\r\n[headerStyle]=\"headerStyle\"\r\n[closable]=\"closable\"\r\n[selected]=\"selected\"\r\n[disabled]=\"disabled\"\r\n[leftIcon]=\"leftIcon\"\r\n[rightIcon]=\"rightIcon\"><ng-content></ng-content></p-tabPanel>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tsi-tab-view',\r\n templateUrl: './tsi-tab-view.component.html',\r\n styleUrls: ['./tsi-tab-view.component.scss']\r\n})\r\nexport class TsiTabViewComponent implements OnInit { \r\n\r\n //#region Inputs\r\n @Input() orientation: string = 'top';\r\n @Input() style: any;\r\n @Input() styleClass: string ='';\r\n @Input() controlClose: boolean= false;\r\n @Input() scrollable: boolean= false;\r\n @Input() activeIndex: number = 0;\r\n //#endregion\r\n\r\n //#region Outputs\r\n @Output() onChange: EventEmitter<any> = new EventEmitter();\r\n @Output() onClose: EventEmitter<any> = new EventEmitter();\r\n @Output() activeIndexChange: EventEmitter<number> = new EventEmitter();\r\n //#endregion\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<p-tabView\r\n[scrollable]=\"scrollable\"\r\n[controlClose]=\"controlClose\"\r\n[styleClass]=\"styleClass\"\r\n[style]=\"style\"\r\n[activeIndex]=\"activeIndex\"\r\n(activeIndexChange)=\"activeIndexChange.emit($event)\"\r\n(onClose)=\"onClose.emit($event)\"\r\n(onChange)=\"onChange.emit($event)\"\r\n><ng-content></ng-content></p-tabView>","import { Component, Input } from '@angular/core';\r\nimport { TooltipPosition } from '../../enums/tooltipPosition.enum';\r\n\r\n@Component({\r\n selector: 'Tsi-Tooltip',\r\n templateUrl: './tsi-tooltip.component.html',\r\n styleUrls: ['./tsi-tooltip.component.scss']\r\n})\r\nexport class TsiTooltipComponent {\r\n @Input() tooltipText :string = \"\";\r\n @Input() tooltipPosition :TooltipPosition = TooltipPosition.Top;\r\n\r\n constructor() { }\r\n\r\n}\r\n","<span\r\n [pTooltip]=\"tooltipText\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n>\r\n <ng-content></ng-content>\r\n</span>\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\nimport { TsiInputBase } from '../../../tsi-base/tsi-input-base/tsi-input-base.component';\r\nimport { LocalizePipe } from '../../../pipes/localize.pipe';\r\nimport { TsiNotificationService } from '../../../services/notification/tsi-notification.service';\r\n\r\n@Component({\r\n selector: 'Tsi-File-Manager',\r\n templateUrl: './tsi-file-manager.component.html',\r\n styleUrls: ['./tsi-file-manager.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class TsiFileManagerComponent extends TsiInputBase<string | ArrayBuffer |undefined | null> {\r\n\r\n // @Input() inputField: string | ArrayBuffer |undefined | null;\r\n @Input() fileName: string |undefined;\r\n @Input() name: string = '';\r\n @Input() id: string | undefined;\r\n @Input() accept: string = '';\r\n @Input() maxFileSize: number = 10485760;\r\n @Input() multiple: boolean = false;\r\n @Input() exploreOnDownload: boolean = false;\r\n @Input() showUploadButton: boolean = false;\r\n @Input() showCancelButton: boolean = false;\r\n @Input() showDownloadButton: boolean = false;\r\n @Input() chooseIcon: string = '';\r\n @Input() chooseLabel: string = '';\r\n @Input() showSelectButton: boolean = true;\r\n @Input() showFileUpload: boolean = true;\r\n\r\n @Output() onSelectFileManager = new EventEmitter<any>();\r\n @Output() onClear = new EventEmitter<void>();\r\n @Output() onRemove = new EventEmitter<any>();\r\n @Output() inputFieldChange = new EventEmitter<any>();\r\n @Output() fileNameChange = new EventEmitter<string>();\r\n\r\n\r\n imageUrl: string | null = null;\r\n\r\n fileExtension?: string;\r\n\r\n fileSizeError : string = '';\r\n /* ngAfterViewInit() {\r\n if (this.showSelectButton && this.fileUploadInput) {\r\n this.fileUploadInput.nativeElement.style.display = 'none';\r\n }\r\n } */\r\n\r\n constructor(\r\n private localize: LocalizePipe,\r\n private notificationService: TsiNotificationService,\r\n private domSanitizer: DomSanitizer\r\n ) {\r\n super();\r\n }\r\n\r\n\r\n getFileExtension(fileName: string) {\r\n return fileName?.split('.')?.pop();\r\n }\r\n\r\n onFileSelect(event: any) {\r\n const files: File[] = event.files;\r\n // this.convertFileToBase64(files[0]).then((base64String: string) => {\r\n // this.inputField = base64String;\r\n // });\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n this.inputField= (reader.result as string).split(',')[1];\r\n };\r\n reader.onerror = (error) => {\r\n };\r\n reader.readAsDataURL(files[0]); \r\n this.fileName = files[0].name;\r\n const fileName: string = this.fileName!;\r\n\r\n if(files[0].size > this.maxFileSize){\r\n this.notificationService.warn(`\r\n ${this.localize.transform(\"tsi_file_upload_auto_validation_max_length_detail_1\")} \r\n ${(files[0].size / (1024 * 1024)).toFixed(2)} \r\n ${this.localize.transform(\"tsi_file_upload_auto_validation_max_length_detail_2\")}\r\n ${(this.maxFileSize / (1024 * 1024)).toFixed(2)} Mo`,\r\n this.localize.transform(\"tsi_file_upload_auto_validation_max_length_title\"))\r\n this.inputField = undefined\r\n return;\r\n }\r\n setTimeout(() => {\r\n //this.fileName = files.map((file: any) => file.name).join(', ');\r\n this.onSelectFileManager.emit({ event, files, inputField: this.inputField, fileName: fileName });\r\n this.inputFieldChange.emit(this.inputField);\r\n this.fileNameChange.emit(this.fileName);\r\n }, 200);\r\n \r\n\r\n } \r\n\r\n onFileClear() {\r\n this.inputField = null;\r\n this.fileName = '';\r\n this.imageUrl = null;\r\n this.inputFieldChange.emit(this.inputField);\r\n this.fileNameChange.emit(this.fileName);\r\n this.onClear.emit();\r\n }\r\n\r\n onFileRemove(event: any) {\r\n const file = event.file;\r\n //this.inputField = this.inputField.filter((f: any) => f !== file);\r\n //this.fileName = this.inputField.map((f: any) => f.name).join(', ');\r\n this.inputField = null;\r\n this.fileName = '';\r\n this.imageUrl = null;\r\n this.onRemove.emit(file);\r\n this.inputFieldChange.emit(this.inputField);\r\n this.fileNameChange.emit(this.fileName);\r\n }\r\n\r\n convertFileToBase64(file: File): Promise<string> {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n const base64String = reader.result as string; // Conversion explicite en string\r\n resolve(base64String);\r\n };\r\n reader.onerror = error => reject(error);\r\n });\r\n }\r\n\r\n downloadFile() {\r\n if (!this.inputField) {\r\n return;\r\n }\r\n\r\n const byteCharacters = atob(this.inputField as string);\r\n const byteNumbers = new Array(byteCharacters.length);\r\n for (let i = 0; i < byteCharacters.length; i++) {\r\n byteNumbers[i] = byteCharacters.charCodeAt(i);\r\n }\r\n const byteArray = new Uint8Array(byteNumbers);\r\n const blob = new Blob([byteArray], { type: 'application/octet-stream' });\r\n\r\n const url = window.URL.createObjectURL(blob);\r\n\r\n const a = document.createElement('a');\r\n document.body.appendChild(a);\r\n a.style.display = 'none';\r\n a.href = url;\r\n a.download = this.fileName!;\r\n a.click();\r\n\r\n //window.URL.revokeObjectURL(url);\r\n }\r\n\r\n arrayBufferToBase64(buffer: ArrayBuffer): string {\r\n const bytes = new Uint8Array(buffer);\r\n let binary = '';\r\n for (let i = 0; i < bytes.byteLength; i++) {\r\n binary += String.fromCharCode(bytes[i]);\r\n }\r\n return 'data:application/octet-stream;base64,' + btoa(binary);\r\n }\r\n\r\n get fileUrl(): SafeUrl{\r\n if (!this.inputField) {\r\n return '';\r\n }\r\n\r\n const byteCharacters = atob(this.inputField as string);\r\n const byteNumbers = new Array(byteCharacters.length);\r\n for (let i = 0; i < byteCharacters.length; i++) {\r\n byteNumbers[i] = byteCharacters.charCodeAt(i);\r\n }\r\n const byteArray = new Uint8Array(byteNumbers);\r\n const blob = new Blob([byteArray], { type: 'application/octet-stream' });\r\n\r\n const url = window.URL.createObjectURL(blob);\r\n \r\n return this.domSanitizer.bypassSecurityTrustUrl(url);\r\n }\r\n\r\n fileExtensionImage() : boolean {\r\n return this.getFileExtension(this.fileName!) == 'jpg'\r\n }\r\n}\r\n","<!-- <p-fileUpload class=\"file-manager\" #fileUpload [name]=\"name\" [id]=\"id\" [accept]=\"accept\" [maxFileSize]=\"maxFileSize\"\r\n [multiple]=\"multiple\" [showUploadButton]=\"showUploadButton\" [showCancelButton]=\"showCancelButton\"\r\n chooseIcon=\"pi pi-upload\" chooseLabel=\" \" (onSelect)=\"onFileSelect($event)\" (onClear)=\"onFileClear()\"\r\n (onRemove)=\"onFileRemove($event)\" class=\"custom-file-upload\" icon=\"pi pi-upload\">\r\n</p-fileUpload>\r\n\r\n<BR>\r\n<div *ngIf=\"showDownloadButton\">\r\n <button pButton type=\"button\" icon=\"pi pi-download\" (click)=\"downloadFile()\" class=\"h-2rem w-full text-center\">\r\n </button>\r\n</div> -->\r\n<div class=\"{{validationStatusCssClass}}\">\r\n\r\n <p-fileUpload class=\"file-manager custom-file-upload \" \r\n #fileUpload\r\n [name]=\"name\"\r\n [id]=\"id\" \r\n [accept]=\"accept\" \r\n [multiple]=\"multiple\"\r\n [disabled]=\"disabled\"\r\n [showUploadButton]=\"showUploadButton\" \r\n [showCancelButton]=\"showCancelButton\"\r\n chooseIcon=\"pi pi-upload\"\r\n chooseLabel= \"Upload\" \r\n (onSelect)=\"onFileSelect($event)\"\r\n (onClear)=\"onFileClear()\"\r\n (onRemove)=\"onFileRemove($event)\"\r\n >\r\n \r\n \r\n \r\n <!-- <ng-template pTemplate=\"content\">\r\n <button type=\"button\" pButton icon=\"pi pi-upload\" class=\"ml-4 h-2rem w-full text-center\">\r\n </button>\r\n </ng-template> -->\r\n <ng-template pTemplate=\"content\" let-files>\r\n <div *ngIf=\"fileExtensionImage() || inputField\">\r\n <img [src]=\"fileUrl\" style=\"width: 15rem;\"/>\r\n </div>\r\n <div *ngIf=\"fileName != undefined && fileName != null\">\r\n <p>File Name: {{ fileName }}</p>\r\n <p>File Extension: {{ getFileExtension(fileName) }}</p>\r\n </div>\r\n <div *ngIf=\"fileName != undefined && showDownloadButton\">\r\n <button pButton type=\"button\" icon=\"pi pi-download\" (click)=\"downloadFile()\" class=\" h-2rem w-full text-center\">\r\n <!-- <span class=\"font-bold ml-2\" >Download</span> -->\r\n </button>\r\n </div>\r\n </ng-template>\r\n \r\n </p-fileUpload>\r\n \r\n</div>","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { LocalizationKeys } from '../../consts/localization-key';\r\nimport { Modes } from '../../enums';\r\nimport { Fichier } from '../../models';\r\nimport { ErrorResponseManagerService, TsiNotificationService, TsiConfirmationService, DialogDataService } from '../../services';\r\nimport { TsiFormComponentBaseComponent } from '../../tsi-base/components/tsi-form-base/tsi-form-base.component';\r\nimport { FichierService } from '../../services/fichier/fichier.service';\r\nimport { appProviders } from '../../consts/app-providers';\r\n\r\n@Component({\r\n selector: 'app-tsi-upload-fiche',\r\n templateUrl: './tsi-upload-fiche.component.html',\r\n styleUrls: ['./tsi-upload-fiche.component.scss'],\r\n providers: [...appProviders]\r\n})\r\nexport class TsiUploadFicheComponent extends TsiFormComponentBaseComponent implements OnInit {\r\n\r\n fichier = new Fichier();\r\n // paramBaseEndpoints = ParamBaseEndpoints;\r\n\r\n override saving = false;\r\n public allDataLoaded: boolean = false;\r\n toUploadFileData: any = undefined;\r\n base64String: string | ArrayBuffer | null = null;\r\n\r\n isDisable: boolean = true;\r\n\r\n @Output() override onSave = new EventEmitter<any>();\r\n\r\n constructor(\r\n public _fichierService: FichierService,\r\n private _errorResponseManagerService: ErrorResponseManagerService,\r\n public override ref: DynamicDialogRef,\r\n public override config: DynamicDialogConfig,\r\n private _notificationService: TsiNotificationService,\r\n private _confirmationService: TsiConfirmationService,\r\n private dialogDataService: DialogDataService\r\n ) {\r\n super(ref, config);\r\n }\r\n\r\n override ngOnInit(): void {\r\n this.fichier.nomFichierComplet = \"\";\r\n super.ngOnInit();\r\n // TODO @MedAli to be fixed \r\n this.businessClass = \"Fichier\";\r\n\r\n if (\r\n (this.mode == Modes.edit || this.mode == Modes.delete || this.mode == Modes.consult) &&\r\n this.id != undefined &&\r\n this.id != null\r\n ) {\r\n\r\n this.isloading = true;\r\n this._fichierService.getById(this.id).subscribe((data) => {\r\n this.fichier = data;\r\n this.isloading = false;\r\n });\r\n }\r\n }\r\n\r\n override save(): void {\r\n super.save()\r\n this.saving = false;\r\n this.isloading = false;\r\n\r\n if (this.mode == Modes.create) {\r\n this._fichierService.create(this.fichier).subscribe({\r\n next: () => {\r\n this._notificationService.info(this.l(LocalizationKeys.savedSuccessfully));\r\n this.hide(true);\r\n this.onSave.emit();\r\n },\r\n error: (response: HttpErrorResponse) => {\r\n this.saving = false;\r\n this._errorResponseManagerService.showErrorMessage(response);\r\n },\r\n complete: () => {\r\n this.isloading = false;\r\n },\r\n });\r\n }\r\n\r\n if (\r\n this.mode == Modes.edit &&\r\n this.fichier.uid != null &&\r\n this.fichier.uid != undefined\r\n ) {\r\n this.isloading = true;\r\n this._fichierService.update(this.fichier, this.fichier.uid).subscribe({\r\n next: () => {\r\n this._notificationService.info(this.l(LocalizationKeys.updatedSuccessfully));\r\n this.hide(true);\r\n this.onSave.emit();\r\n this.isloading = false;\r\n },\r\n error: (response: HttpErrorResponse) => {\r\n this.saving = false;\r\n this._errorResponseManagerService.showErrorMessage(response);\r\n this.isloading = false;\r\n },\r\n complete: () => {\r\n this.isloading = false;\r\n },\r\n });\r\n }\r\n\r\n if (this.mode == Modes.delete) {\r\n this.isloading = true;\r\n this._confirmationService.confirm(\r\n LocalizationKeys.confirmDelete,\r\n undefined,\r\n (result: boolean) => {\r\n if (\r\n result &&\r\n this.fichier.uid != null &&\r\n this.fichier.uid != undefined\r\n ) {\r\n this._fichierService.delete(this.fichier.uid).subscribe(() => {\r\n this._notificationService.success(this.l(LocalizationKeys.deletedSuccessfully));\r\n this.hide(true);\r\n this.onSave.emit();\r\n this.isloading = false;\r\n });\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n onFileSelected(event: any): void {\r\n // const file: File = event.currentFiles[0];\r\n //this.toUploadFileData = file;\r\n //this.readFile(file);\r\n //this.readFileAsByteArray(file);\r\n //const blob = new Blob([file], { type: file.type });\r\n setTimeout(() => {\r\n //this.fichier.contenu = this.base64String;\r\n //this.fichier.nomFichierComplet = event.currentFiles[0].name;\r\n this.fichier.pkey = this.dialogDataService.getData().id;\r\n this.fichier.tableLiee = this.dialogDataService.getData().class;\r\n console.log(\"file to upload\", this.fichier.nomFichierComplet)\r\n }, 200);\r\n }\r\n\r\n onImportFile(event: any): void {\r\n /* this.reportingService.uploadReportFile(this.toUploadFileData)\r\n .subscribe(\r\n {\r\n next: (response) => {\r\n this._refreshReports();\r\n this.notificationService.success('shared_reporting_report_uploaded_successfully');\r\n this.fileUpload?.clear();\r\n },\r\n error: () => {\r\n this.notificationService.error(this.errorMessageKey);\r\n }\r\n }); */\r\n }\r\n\r\n //cancel button click\r\n onClear(event: any): void {\r\n this.toUploadFileData = undefined;\r\n }\r\n\r\n //cancel button click\r\n onRemove(event: any): void {\r\n this.toUploadFileData = undefined;\r\n }\r\n\r\n readFile(file: File) {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n this.base64String = (reader.result as string).split(',')[1];\r\n // Use this.base64String as needed\r\n };\r\n reader.onerror = (error) => {\r\n console.error('File reading error:', error);\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n\r\n readFileAsByteArray(file: File) {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const arrayBuffer = reader.result as ArrayBuffer;\r\n const byteArray = new Uint8Array(arrayBuffer);\r\n\r\n // Use byteArray as needed\r\n const byteConst: Uint8Array = byteArray;\r\n console.log(byteConst);\r\n //this.fichier.contenu = byteConst\r\n };\r\n reader.onerror = (error) => {\r\n console.error('File reading error:', error);\r\n };\r\n reader.readAsArrayBuffer(file);\r\n }\r\n\r\n public onDataLoaded() {\r\n this.allDataLoaded = true;\r\n }\r\n}\r\n","<tsi-form class=\"form-horizontal\" autocomplete=\"off\" (onSubmit)=\"save()\" [isLoading]=\"isloading\">\r\n <Tsi-Modal-Header [inputTitle]=\"'upload_fichier' | localize \" (onCloseClick)=\"hide()\">\r\n </Tsi-Modal-Header>\r\n <fieldset [disabled]=\"isDeleteMode() || isConsultMode() \">\r\n <div class=\"modal-body\">\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <!-- TODO @MedAli -->\r\n <!-- <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_TypeFichier'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-8\" elementSourceUrl=\"{{paramBaseEndpoints.getTypeFichierMinimal()}}\"\r\n listSourceUrl=\"{{paramBaseEndpoints.getAllTypeFichierMinimal()}}\" [(bind)]=\"fichier.typeFichier\"\r\n id-field=\"uid\" label-field=\"libelle\" [isFiltered]=\"true\" (datasource-loaded)=\"onDataLoaded()\">\r\n </Tsi-Search-Combo>\r\n </div> -->\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_TableLiee'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'tableLiee'\" [(inputField)]=\"fichier.tableLiee\"\r\n [disabled]=\"isDisable\"></Tsi-Text-Box>\r\n <!-- <Tsi-Search-Combo\r\n class=\"col-6\"\r\n [(bind)]=\"fichier.tableLiee\"\r\n id-field=\"id\"\r\n label-field=\"value\"\r\n (datasource-loaded)=\"onDataLoaded()\">\r\n </Tsi-Search-Combo> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_Nom'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'nom'\" [(inputField)]=\"fichier.nom\"></Tsi-Text-Box>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_DateFichier'\"></Tsi-Label>\r\n <Tsi-Date-Picker class=\"col-8\" [inputName]=\"'dateFichier'\"\r\n [(inputField)]=\"fichier.dateFichier\"></Tsi-Date-Picker>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-1\" [labelValue]=\"'parambase_param_fichier_Objet'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-10\" [inputName]=\"'Objet'\" [(inputField)]=\"fichier.objet\"></Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-1\" [labelValue]=\"'parambase_param_fichier_Description'\"></Tsi-Label>\r\n <Tsi-Text-Area class=\"col-10\" [inputName]=\"'description'\" [(inputField)]=\"fichier.description\" [rows]=\"5\"\r\n [cols]=\"5\"></Tsi-Text-Area>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n\r\n <Tsi-Label for=\"isFileStorage\" class=\"col-1\" [labelValue]=\"'parambase_param_fichier_isFileStorage'\"></Tsi-Label>\r\n <Tsi-CheckBox id=\"isFileStorage\" class=\"col-5\" [isBinary]=\"true\"\r\n [inputName]=\"'isFileStorage'\" [disabled]=\"true\" [inputField]=\"fichier.isFileStorage\">\r\n </Tsi-CheckBox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n <div class=\"col-11\">\r\n <Tsi-File-Manager \r\n [showFileUpload]=\"true\" \r\n [(inputField)]=\"fichier.contenu\"\r\n [(fileName)]=\"fichier.nomFichierComplet\" \r\n name=\"fileFichier\" \r\n id=\"fileUploading\" \r\n inputName=\"contenu\" \r\n accept=\"\"\r\n [maxFileSize]=\"10485760\" \r\n [multiple]=\"false\" \r\n [disabled]=\"isEditMode()\"\r\n [showDownloadButton]=\"true\"\r\n [showCancelButton]=\"false\"\r\n [showUploadButton]=\"false\" \r\n [exploreOnDownload]=\"true\"\r\n (onSelectFileManager)=\"onFileSelected($event)\"\r\n ></Tsi-File-Manager>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n \r\n <!-- <p-fileUpload #fileUploadFichier name=\"demo[]\" (onBeforeUpload)=\"onImportFile($event)\"\r\n (onSelect)=\"onFileSelected($event)\" (onClear)=\"onClear($event)\" (onRemove)=\"onRemove($event)\" [multiple]=\"false\"\r\n [maxFileSize]=\"1000000\"\r\n [invalidFileSizeMessageSummary]=\"'shared_file_upload_invalid_file_size_message_summary' | localize\"\r\n [invalidFileSizeMessageDetail]=\"'shared_file_upload_invalid_file_size_message_detail' | localize\"\r\n [invalidFileTypeMessageSummary]=\"'shared_file_upload_invalid_file_type_message_summary' | localize\"\r\n [invalidFileLimitMessageDetail]=\"'shared_file_upload_invalid_file_limit_message_detail' | localize\"\r\n [invalidFileLimitMessageSummary]=\"'shared_file_upload_invalid_file_limit_message_summary' | localize\"\r\n [invalidFileTypeMessageDetail]=\"'shared_file_upload_invalid_file_type_message_detail' | localize\"\r\n [chooseIcon]=\"'pi pi-paperclip'\" cancelStyleClass=\"p-button-secondary\" uploadStyleClass=\"p-button-help\"\r\n removeStyleClass=\"p-button-danger\" [chooseLabel]=\"'shared_reporting_choose_report_file' | localize\"\r\n [uploadLabel]=\"'shared_reporting_import_report' | localize\"\r\n [cancelLabel]=\"'shared_reporting_cancel_choose_report_file' | localize\" [showUploadButton]=\"false\">\r\n <ng-template *ngIf=\"toUploadFileData\" pTemplate=\"fileupload-content\">\r\n </ng-template>\r\n </p-fileUpload> -->\r\n\r\n\r\n </div>\r\n </fieldset>\r\n <Tsi-Modal-Footer [cancelDisabled]=\"saving\" [saveDisabled]=\"isSubmitDisabled()\"\r\n (onCancelClick)=\"hide()\"></Tsi-Modal-Footer>\r\n</tsi-form>","import {\r\n AfterContentChecked,\r\n AfterViewInit,\r\n Component,\r\n HostListener,\r\n inject,\r\n OnDestroy,\r\n OnInit,\r\n Renderer2,\r\n ViewChild,\r\n ViewChildren,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { AppBaseComponent } from '../app-base/app-base.component';\r\nimport { LocalizationKeys } from '../../../consts/localization-key';\r\nimport { ModalSizeEnum, GridSelectionMode } from '../../../enums';\r\nimport { GridColumn, IModalSize } from '../../../interfaces';\r\nimport { ComponentDescriminator, SearchField, PresentationSetting, PresentationSettingDetail } from '../../../models';\r\nimport { PresentationSettingService, LayoutHelperService, TsiNotificationService, ErrorResponseManagerService, PresentationDesignerService, EntityConfigurationService } from '../../../services';\r\nimport { TsiButtonComponent } from '../../../tsi-components/button-components/tsi-button/tsi-button.component';\r\nimport { TsiGenericGridComponent } from '../../../tsi-components/output-components/tsi-generic-grid/tsi-generic-grid.component';\r\nimport { TsiViewGridComponent } from '../../../tsi-components/output-components/tsi-view-grid/tsi-view-grid.component';\r\nimport { TsiGenericCrudComponent } from '../../../tsi-components/tsi-generic-crud/tsi-generic-crud.component';\r\nimport { PresentationDesignerDirective } from '../../../tsi-directives/presentation-designer.directive';\r\nimport { PresentationDesignerDirectiveBase } from '../../../tsi-directives';\r\nimport { PresentationDesignerBaseService } from '../../../services/presentation-setting/presentation-designer-base.service';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\n\r\n@Component({\r\n selector: 'app-tsi-list-base',\r\n templateUrl: './tsi-list-base.component.html',\r\n styleUrls: ['./tsi-list-base.component.scss'],\r\n})\r\nexport abstract class TsiListBaseComponent\r\n extends AppBaseComponent\r\n implements OnInit, AfterViewInit, OnDestroy, AfterContentChecked {\r\n //#region properties\r\n private _rowsSelectionSubscription: Subscription | undefined;\r\n\r\n configModeButtonId: string = 'confg-mode-button-from-list';\r\n savePropertiesButtonClassName = 'confg-mode-button-from-list-save-properties';\r\n savePropertyBtnId = 'save-property-btn';\r\n\r\n public override get formEndpoint(): string {\r\n return super.formEndpoint;\r\n }\r\n public override set formEndpoint(endpoint: string) {\r\n super.formEndpoint = endpoint;\r\n }\r\n\r\n public override get businessClass() {\r\n return this._businessClass;\r\n }\r\n public override set businessClass(value: string) {\r\n super.businessClass = value\r\n this.formEndpoint = this.businessClass;\r\n // @TODO MedAli : à tester\r\n //this.getEntityInformation(this._businessClass);\r\n }\r\n\r\n private _componentDescriminator?: ComponentDescriminator;\r\n set componentDescriminator(value: ComponentDescriminator | undefined) {\r\n this._componentDescriminator = value;\r\n if (\r\n this._componentDescriminator &&\r\n this._componentDescriminator.propertyValue != undefined &&\r\n this.businessClass != undefined\r\n ) {\r\n if (value?.propertyValue != this.descriminatorValue) {\r\n this.descriminatorValue = value?.propertyValue;\r\n this.descriminatorValueChanged();\r\n }\r\n }\r\n }\r\n\r\n get componentDescriminator(): ComponentDescriminator | undefined {\r\n return this._componentDescriminator;\r\n }\r\n\r\n columns: Array<GridColumn> = [];\r\n titleComponent: string = '';\r\n modalSize: IModalSize = ModalSizeEnum.Medium;\r\n comp: any;\r\n searchFields: Array<SearchField> = [];\r\n presentationRequest: PresentationSetting = new PresentationSetting();\r\n\r\n private get isAdvancedSearchMode(): boolean {\r\n return (\r\n this.config?.data &&\r\n this.config.data.hasOwnProperty('isAdvancedSearch') &&\r\n this.config.data.isAdvancedSearch === true\r\n );\r\n }\r\n\r\n // key: string = 'uid';\r\n // selectKeyOnly: boolean = true;\r\n // selectionMode: GridSelectionMode = GridSelectionMode.None;\r\n // selectedItems: Array<any> = [];\r\n\r\n @ViewChild(TsiGenericCrudComponent) genericCrud?: TsiGenericCrudComponent;\r\n\r\n @ViewChild(TsiGenericGridComponent) genericGrid?: TsiGenericGridComponent;\r\n\r\n @ViewChild(TsiViewGridComponent) viewGrid?: TsiViewGridComponent;\r\n\r\n @ViewChildren(TsiGenericGridComponent)\r\n genericGrids: TsiGenericGridComponent[] = [];\r\n\r\n @ViewChildren(TsiGenericCrudComponent)\r\n genericCruds: TsiGenericCrudComponent[] = [];\r\n\r\n @ViewChildren(TsiViewGridComponent) viewGrids: TsiViewGridComponent[] = [];\r\n\r\n private _renderer = inject(Renderer2);\r\n private _viewContainerRef = inject(ViewContainerRef);\r\n private _presentationSettingService = inject(PresentationSettingService);\r\n private _layoutHelperService = inject(LayoutHelperService);\r\n private _messageInfoService = inject(TsiNotificationService);\r\n private _errorResponseManager = inject(ErrorResponseManagerService);\r\n private _presentationDesignerService = inject(PresentationDesignerService);\r\n private _presentationDesignerBaseService = inject(PresentationDesignerBaseService);\r\n\r\n showHideConfigBtnRef: Node | undefined;\r\n showHideConfigBtnParentRef: Node | undefined | null;\r\n _designModeListSubscription: Subscription | undefined;\r\n _addedDirectiveSubscritpion: Subscription | undefined;\r\n _addedBaseDirectiveSubscritpion: Subscription | undefined;\r\n configApplied: boolean = false;\r\n private directiveElements: (PresentationDesignerDirective | PresentationDesignerDirectiveBase)[] = [];\r\n private descriminatorValue: string | undefined;\r\n\r\n //#endregion\r\n constructor(\r\n public config?: DynamicDialogConfig,\r\n public _dialogReference?: DynamicDialogRef\r\n ) {\r\n super();\r\n }\r\n\r\n //#region handle lifecycle hooks\r\n override ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n\r\n this._unsubscribeActiveSubscriptions();\r\n }\r\n\r\n ngAfterViewChecked() {\r\n // let newAddedDirectives = this._presentationDesignerService.getDirectives().filter(x => x.treated == false)\r\n // console.log(\"newAddedDirectives : \", newAddedDirectives)\r\n // if (newAddedDirectives.length > 0 && (!this.entityInfo?.discriminatorPropertyName || !this.entityInfo?.discriminatorClassName)) {\r\n // this.applyConfigurationToElements(newAddedDirectives);\r\n // }\r\n // else if (newAddedDirectives.length > 0 && this.descriminatorValue) {\r\n // this.applyConfigurationToElements(newAddedDirectives);\r\n // }\r\n // this.applyConfigurationToElements(newAddedDirectives)\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.directiveElements = [...this._presentationDesignerService.getDirectives(),\r\n ...this._presentationDesignerBaseService.getDirectives()\r\n ];\r\n\r\n console.log(\r\n 'List base : this.directiveElements : ',\r\n this.directiveElements\r\n );\r\n\r\n if (\r\n !this.entityInfo?.discriminatorPropertyName ||\r\n !this.entityInfo?.discriminatorClassName\r\n ) {\r\n this.presentationRequest =\r\n this._presentationSettingService.getPresentationSettingByComponentIdentifierSync(\r\n this.getComponentIdentifier(),\r\n this.descriminatorValue\r\n ) ?? new PresentationSetting();\r\n if (\r\n this.presentationRequest &&\r\n this.presentationRequest.presentationSettingDetails.length > 0\r\n ) {\r\n this.applyConfigurationToElements();\r\n } else {\r\n this.directiveElements?.forEach((input) => {\r\n input.execute(true, undefined);\r\n });\r\n }\r\n }\r\n\r\n this._initGenericCrudIfExist();\r\n\r\n this._initGenericGridIfExist();\r\n\r\n this._initViewGridIfExist();\r\n }\r\n\r\n override ngAfterContentChecked(): void {\r\n super.ngAfterContentChecked();\r\n this._refreshViewGridInformationIfExist();\r\n this._refreshGenericCrudInformationIfExist();\r\n this._refreshGenericGridInformationIfExist();\r\n }\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n this.initDesignModeSubscription();\r\n this.directiveElements = [...this._presentationDesignerService.getDirectives(),\r\n ...this._presentationDesignerBaseService.getDirectives()\r\n ];\r\n }\r\n //#endregion\r\n\r\n getComponentIdentifier() {\r\n // if (this.descriminatorValue) {\r\n // return `${this._myName()}_${this.descriminatorValue}`\r\n // }\r\n return this._myName();\r\n }\r\n\r\n setModalSize(modalSize: IModalSize): void {\r\n this.modalSize = modalSize;\r\n }\r\n\r\n descriminatorValueChanged() {\r\n this.presentationRequest =\r\n this._presentationSettingService.getPresentationSettingByComponentIdentifierSync(\r\n this.getComponentIdentifier(),\r\n this.descriminatorValue\r\n ) ?? new PresentationSetting();\r\n\r\n this.directiveElements?.forEach((input) => {\r\n const presentationSettingDetail =\r\n this.presentationRequest?.presentationSettingDetails?.find(\r\n (x) => x.blockName == input.presentationDesigner\r\n );\r\n if (\r\n presentationSettingDetail &&\r\n !presentationSettingDetail.isBlockVisible\r\n ) {\r\n input.removeElement();\r\n } else {\r\n input.execute(true, presentationSettingDetail?.configuration);\r\n }\r\n });\r\n\r\n if (this.genericCrud) {\r\n this.genericCrud.descriminatorValue = this.descriminatorValue;\r\n this.genericCrud.presentationSettings = this.presentationRequest;\r\n }\r\n\r\n if (\r\n this.presentationRequest &&\r\n this.presentationRequest.presentationSettingDetails.length > 0\r\n ) {\r\n this.applyConfigurationToElements();\r\n } else {\r\n this.directiveElements?.forEach((input) => {\r\n input.execute(true, undefined);\r\n });\r\n }\r\n }\r\n\r\n //#region private methods\r\n\r\n private _refreshViewGridInformationIfExist() {\r\n if (this.viewGrid) {\r\n if (this.viewGrid.formEndpoint != this.formEndpoint) {\r\n this.viewGrid.formEndpoint = this.formEndpoint;\r\n }\r\n\r\n if (this.viewGrid.formName != this.formName) {\r\n this.viewGrid.formName = this.formName;\r\n }\r\n\r\n if (this.viewGrid.businessClass != this.businessClass) {\r\n this.viewGrid.businessClass = this.businessClass;\r\n }\r\n }\r\n }\r\n\r\n private _refreshGenericGridInformationIfExist() {\r\n if (this.genericGrid) {\r\n }\r\n }\r\n\r\n private _refreshGenericCrudInformationIfExist() {\r\n if (this.genericCrud) {\r\n if (this.genericCrud.formEndpoint != this.formEndpoint) {\r\n this.genericCrud.formEndpoint = this.formEndpoint;\r\n }\r\n\r\n if (this.genericCrud.formName != this.formName) {\r\n this.genericCrud.formName = this.formName;\r\n }\r\n\r\n if (this.genericCrud.businessClass != this.businessClass) {\r\n this.genericCrud.businessClass = this.businessClass;\r\n }\r\n }\r\n }\r\n private _initViewGridIfExist(): void {\r\n if (this.viewGrid) {\r\n //init reporting\r\n this.viewGrid.formEndpoint = this.formEndpoint;\r\n this.viewGrid.formName = this.formName;\r\n this.viewGrid.businessClass = this.businessClass;\r\n if (this.isAdvancedSearchMode) {\r\n this.viewGrid.showExportButton = false;\r\n this.viewGrid.showConsultButton = false;\r\n this.viewGrid.showCalenderView = false;\r\n\r\n // TODO : @by: Hassen,\r\n // @why: Keep all search criteria => usefull for advanced search\r\n //this.viewGrid.showFilterButton = false;\r\n //this.viewGrid.showGlobalSearch = false;\r\n //this.viewGrid.showHeaderFilters = false;\r\n //this.viewGrid.showSearchField = false;\r\n }\r\n //init row selection\r\n // this.viewGrid.selectKeyOnly = this.selectKeyOnly;\r\n // this.viewGrid.selectionMode = this.selectionMode;\r\n // this.viewGrid.selectedItems = this.selectedItems;\r\n // this.viewGrid.key = this.key;\r\n\r\n this._rowsSelectionSubscription =\r\n this.viewGrid.selectedItemsChange.subscribe((items: any[]) =>\r\n this._handleSelectedItemsChangeEvent(items)\r\n );\r\n }\r\n }\r\n\r\n private _initGenericGridIfExist(): void {\r\n if (this.genericGrid) {\r\n if (this.isAdvancedSearchMode) {\r\n this.genericGrid.selectionMode = GridSelectionMode.Single;\r\n this.genericGrid.showActionColumn = false;\r\n this.genericGrid.showCalenderView = false;\r\n this.genericGrid.showExportButton = false;\r\n this.genericGrid.selectKeyOnly = true;\r\n\r\n // TODO : @by: Hassen,\r\n // @why: Keep all search criteria => usefull for advanced search\r\n //this.genericGrid.showFilterButton = false;\r\n //this.genericGrid.showGlobalSearch = false;\r\n //this.genericGrid.showHeaderFilters = false;\r\n //this.genericGrid.showSearchBox = false;\r\n //this.genericGrid.showSearchField = false;\r\n //this.genericGrid.ShowFilterColumns = false;\r\n }\r\n this._rowsSelectionSubscription =\r\n this.genericGrid.selectedItemsChange.subscribe((items: any[]) =>\r\n this._handleSelectedItemsChangeEvent(items)\r\n );\r\n }\r\n }\r\n\r\n private _initGenericCrudIfExist(): void {\r\n if (this.genericCrud) {\r\n //init reporting\r\n if (this.isAdvancedSearchMode) {\r\n this.genericCrud.selectionMode = GridSelectionMode.Single;\r\n this.genericCrud.showAddButton = false;\r\n this.genericCrud.showDeleteButton = false;\r\n this.genericCrud.showConsultButton = false;\r\n this.genericCrud.showEditButton = false;\r\n this.genericCrud.showExportButton = false;\r\n this.genericCrud.showInfoButton = false;\r\n this.genericCrud.showDownloadButton = false;\r\n this.genericCrud.showReporting = false;\r\n this.genericCrud.showUploadButton = false;\r\n this.genericCrud.selectKeyOnly = true;\r\n\r\n // TODO : @by: Hassen,\r\n // @why: Keep all search criteria => usefull for advanced search\r\n //this.genericCrud.showGlobalSearch = false;\r\n //this.genericCrud.showSearchField = false;\r\n //this.genericCrud.showHeaderFilters = false;\r\n this.genericCrud.ngOnInit();\r\n }\r\n this.genericCrud.formEndpoint = this.formEndpoint;\r\n this.genericCrud.formName = this.formName;\r\n this.genericCrud.businessClass = this.businessClass;\r\n\r\n this.presentationRequest =\r\n this._presentationSettingService.getPresentationSettingByComponentIdentifierSync(\r\n this.getComponentIdentifier(),\r\n this.descriminatorValue\r\n ) ?? new PresentationSetting();\r\n this.genericCrud.presentationSettings = this.presentationRequest;\r\n\r\n // if (this.presentationRequest\r\n // && this.presentationRequest.presentationSettingDetails.length > 0\r\n // && this.genericCrud.genericGridComponent) {\r\n // this.genericCrud.genericGridComponent.presentationSettings = this.presentationRequest;\r\n // this.genericCrud.genericGridComponent.search()\r\n // }\r\n\r\n //init row selection\r\n // this.genericCrud.selectKeyOnly = this.selectKeyOnly;\r\n // this.genericCrud.selectionMode = this.selectionMode;\r\n // this.genericCrud.selectedItems = this.selectedItems;\r\n // this.genericCrud.key = this.key;\r\n\r\n this._rowsSelectionSubscription =\r\n this.genericCrud.selectedItemsChange.subscribe((items: any[]) =>\r\n this._handleSelectedItemsChangeEvent(items)\r\n );\r\n }\r\n }\r\n\r\n private _unsubscribeActiveSubscriptions(): void {\r\n if (this._rowsSelectionSubscription) {\r\n this._rowsSelectionSubscription.unsubscribe();\r\n }\r\n\r\n if (this._designModeListSubscription) {\r\n this._designModeListSubscription.unsubscribe();\r\n }\r\n\r\n if (this._addedDirectiveSubscritpion) {\r\n this._addedDirectiveSubscritpion.unsubscribe();\r\n }\r\n\r\n if (this._addedBaseDirectiveSubscritpion) {\r\n this._addedBaseDirectiveSubscritpion.unsubscribe();\r\n }\r\n }\r\n\r\n private _handleSelectedItemsChangeEvent(items: any[]): void {\r\n // this.selectedItems = items;\r\n // console.log('Selected items are : ', this.selectedItems);\r\n }\r\n handleRowDblClick(event: any): void {\r\n let uid = this.genericCrud?.selectedItems[0];\r\n if (uid != undefined) {\r\n this.closeModalWithId(uid);\r\n }\r\n }\r\n closeModalWithId(id: string): void {\r\n if (this._dialogReference) {\r\n this._dialogReference?.close(id);\r\n }\r\n }\r\n @HostListener('dblclick', ['$event'])\r\n onDoubleClicked(event: any): void {\r\n this.handleRowDblClick(event);\r\n }\r\n //#endregion\r\n\r\n initDesignModeSubscription() {\r\n this._designModeListSubscription =\r\n this._layoutHelperService.designModeListObservable.subscribe((data) => {\r\n if (data && data == true) {\r\n this.toggleDesignMode();\r\n }\r\n });\r\n\r\n this._addedDirectiveSubscritpion =\r\n this._presentationDesignerService.addedDirectiveObservable.subscribe(\r\n (data) => {\r\n if (!data.treated) {\r\n this.processSingleElement(data);\r\n }\r\n }\r\n );\r\n\r\n this._addedBaseDirectiveSubscritpion =\r\n this._presentationDesignerBaseService.addedDirectiveObservable.subscribe(\r\n (data) => {\r\n if (!data.treated) {\r\n this.processSingleElement(data);\r\n }\r\n }\r\n );\r\n }\r\n\r\n // #region Presentation Settings\r\n\r\n processSingleElement(directive: (PresentationDesignerDirective | PresentationDesignerDirectiveBase)) {\r\n this.presentationRequest =\r\n this._presentationSettingService.getPresentationSettingByComponentIdentifierSync(\r\n this.getComponentIdentifier(),\r\n this.descriminatorValue\r\n ) ?? new PresentationSetting();\r\n let presentationSettingDetail =\r\n this.presentationRequest?.presentationSettingDetails?.find(\r\n (x) => x.blockName == directive.presentationDesigner\r\n );\r\n if (\r\n presentationSettingDetail == undefined ||\r\n presentationSettingDetail.isBlockVisible\r\n ) {\r\n directive.execute(true, presentationSettingDetail?.configuration);\r\n }\r\n }\r\n\r\n private applyConfigurationToElements() {\r\n this.directiveElements?.forEach((directive) => {\r\n let presentationSettingDetail =\r\n this.presentationRequest?.presentationSettingDetails?.find(\r\n (x) => x.blockName == directive.presentationDesigner\r\n );\r\n if (\r\n presentationSettingDetail == undefined ||\r\n presentationSettingDetail.isBlockVisible\r\n ) {\r\n directive.execute(true, presentationSettingDetail?.configuration);\r\n }\r\n });\r\n\r\n this.configApplied = true;\r\n\r\n // let inputsToAdd = this.directiveElements\r\n // .filter(x => this.presentationRequest?.presentationSettingDetails?.some(y => y.blockName == x.presentationDesigner && y.isBlockVisible))\r\n\r\n // inputsToAdd.forEach(input => {\r\n // let configuration = this.presentationRequest?.presentationSettingDetails?.find(x => x.blockName == input.presentationDesigner)?.configuration\r\n // input.execute(true, configuration)\r\n // });\r\n }\r\n\r\n toggleDesignMode() {\r\n let showHideConfigBtn = document.getElementById(this.configModeButtonId);\r\n\r\n if (showHideConfigBtn) {\r\n this.showHideConfigBtnRef = showHideConfigBtn?.cloneNode(true);\r\n this.showHideConfigBtnParentRef = showHideConfigBtn?.parentNode;\r\n\r\n const oldButtons = document.getElementsByClassName(\r\n this.savePropertiesButtonClassName\r\n );\r\n\r\n if (oldButtons) {\r\n Array.from(oldButtons).forEach((oldButton: any) => {\r\n this._renderer.removeChild(showHideConfigBtn?.parentNode, oldButton);\r\n });\r\n }\r\n\r\n const parentElement = showHideConfigBtn.parentNode;\r\n\r\n this._renderer?.removeChild(parentElement, showHideConfigBtn);\r\n\r\n const tsiButtonRef =\r\n this._viewContainerRef?.createComponent(TsiButtonComponent);\r\n\r\n if (tsiButtonRef) {\r\n tsiButtonRef.setInput(\r\n 'text',\r\n 'shared_tsi_component_save_config_show_hide'\r\n );\r\n tsiButtonRef.setInput('icon', 'save');\r\n tsiButtonRef.setInput('id', this.savePropertyBtnId);\r\n\r\n tsiButtonRef.instance.onClick.subscribe(() => this.saveProperties());\r\n\r\n this._renderer.setAttribute(\r\n tsiButtonRef.location.nativeElement,\r\n 'class',\r\n this.savePropertiesButtonClassName\r\n );\r\n this._renderer?.appendChild(\r\n parentElement,\r\n tsiButtonRef.location.nativeElement\r\n );\r\n\r\n this.presentationRequest =\r\n this._presentationSettingService.getPresentationSettingByComponentIdentifierSync(\r\n this.getComponentIdentifier(),\r\n this.descriminatorValue\r\n ) ?? new PresentationSetting();\r\n\r\n this.directiveElements?.forEach((input) => {\r\n input.insertElement();\r\n if (input instanceof PresentationDesignerDirective) {\r\n input.selectApproriateColumns(this.presentationRequest);\r\n }\r\n input.addCheckboxesToInputs(this.presentationRequest);\r\n });\r\n }\r\n }\r\n }\r\n\r\n getPresentationSetingDetailUid(blockName: string) {\r\n return this.presentationRequest?.presentationSettingDetails?.find(\r\n (x) => x.blockName == blockName\r\n )?.uid;\r\n }\r\n\r\n saveProperties() {\r\n if (!this.presentationRequest) {\r\n this.presentationRequest = new PresentationSetting();\r\n }\r\n\r\n let presentationSettingDetails: PresentationSettingDetail[] = [];\r\n\r\n this.directiveElements?.forEach((directive) => {\r\n let configuration: string | undefined = undefined;\r\n\r\n const sources = [\r\n ...this.genericGrids,\r\n ...this.genericCruds,\r\n ...this.viewGrids,\r\n ];\r\n\r\n const matchedSource = sources.find(\r\n (x) =>\r\n x.formName === directive.presentationDesigner ||\r\n x.id === directive.presentationDesigner\r\n );\r\n\r\n if (matchedSource) {\r\n const gridState = matchedSource.getState();\r\n configuration = gridState ? JSON.stringify(gridState) : undefined;\r\n }\r\n\r\n let object: PresentationSettingDetail = {\r\n blockName: directive.presentationDesigner,\r\n isBlockVisible:\r\n !directive.showHideCheckboxComponentRef?.instance?._checked,\r\n uid: this.getPresentationSetingDetailUid(\r\n directive.presentationDesigner ?? ''\r\n ),\r\n configuration: configuration,\r\n };\r\n presentationSettingDetails.push(object);\r\n });\r\n\r\n this.presentationRequest.componentIdentifer = this.getComponentIdentifier();\r\n this.presentationRequest.presentationSettingDetails =\r\n presentationSettingDetails;\r\n\r\n //this.loading = true\r\n\r\n this.presentationRequest.descriminatorValue = this.descriminatorValue;\r\n if (\r\n this.presentationRequest.uid != null &&\r\n this.presentationRequest.uid != undefined\r\n ) {\r\n this._presentationSettingService\r\n .updatePresentationSetting(\r\n this.presentationRequest,\r\n this.presentationRequest.uid\r\n )\r\n .subscribe({\r\n next: async (data) => {\r\n // this.loading = false\r\n this._messageInfoService.success(\r\n LocalizationKeys.savedSuccessfully\r\n );\r\n await this._presentationSettingService.loadPresentationSettings();\r\n this.processState();\r\n },\r\n error: (error) => {\r\n console.log(error);\r\n this._errorResponseManager.showErrorMessage(error);\r\n },\r\n });\r\n } else {\r\n this._presentationSettingService\r\n .createPresentationSetting(this.presentationRequest)\r\n .subscribe({\r\n next: async (data) => {\r\n // this.loading = false\r\n this._messageInfoService.success(\r\n LocalizationKeys.savedSuccessfully\r\n );\r\n await this._presentationSettingService.loadPresentationSettings();\r\n this.processState();\r\n },\r\n error: (error) => {\r\n console.log(error);\r\n this._errorResponseManager.showErrorMessage(error);\r\n },\r\n });\r\n }\r\n }\r\n\r\n processState() {\r\n this._layoutHelperService.isDesignMode = false;\r\n this._layoutHelperService._designModeListSubject.next(false);\r\n\r\n let savePropertiesBtn = document.getElementById(this.savePropertyBtnId);\r\n\r\n this._renderer.removeChild(\r\n savePropertiesBtn?.parentNode,\r\n savePropertiesBtn\r\n );\r\n\r\n if (this.showHideConfigBtnParentRef && this.showHideConfigBtnRef) {\r\n this._renderer.appendChild(\r\n this.showHideConfigBtnParentRef,\r\n this.showHideConfigBtnRef\r\n );\r\n this.showHideConfigBtnRef = undefined;\r\n }\r\n\r\n this.directiveElements?.forEach((input) => {\r\n input.removeShowHideCheckbox();\r\n const presentationSettingDetail =\r\n this.presentationRequest?.presentationSettingDetails?.find(\r\n (x) => x.blockName == input.presentationDesigner\r\n );\r\n if (\r\n presentationSettingDetail &&\r\n !presentationSettingDetail.isBlockVisible\r\n ) {\r\n input.removeElement();\r\n }\r\n });\r\n\r\n this.applyConfigurationToElements();\r\n }\r\n\r\n // #end region\r\n}\r\n","<p>tsi-list-base works!</p>","import { Component } from '@angular/core';\r\nimport { TsiUploadFicheComponent } from '../tsi-upload-fiche/tsi-upload-fiche.component';\r\nimport { TsiListBaseComponent } from '../../tsi-base/components/tsi-list-base/tsi-list-base.component';\r\nimport { GridColumn } from '../../interfaces/grid/grid-configuration';\r\nimport { DisplayTypes, ModalSizeEnum } from '../../enums';\r\nimport { FichierUploadService } from '../../services/fichier/fichier-upload.service';\r\nimport { appProviders } from '../../consts/app-providers';\r\n\r\n@Component({\r\n selector: 'app-tsi-upload-grid',\r\n templateUrl: './tsi-upload-grid.component.html',\r\n styleUrls: ['./tsi-upload-grid.component.scss'],\r\n providers: [...appProviders]\r\n})\r\nexport class TsiUploadGridComponent extends TsiListBaseComponent {\r\n \r\n table: string | undefined;\r\n \r\n override columns: Array<GridColumn> = [\r\n {\r\n header: 'parambase_param_fichier_typeFichier',\r\n field: 'libelleFichier',\r\n },\r\n {\r\n header: 'parambase_param_fichier_Nom',\r\n field: 'nom',\r\n },\r\n {\r\n header: 'parambase_param_fichier_Objet',\r\n field: 'objet',\r\n },\r\n {\r\n header: 'parambase_param_fichier_Description',\r\n field: 'description',\r\n },\r\n {\r\n header: 'parambase_param_fichier_isFileStorage',\r\n field: 'isFileStorage',\r\n type: DisplayTypes.CHECKBOX_DISPLAY\r\n },\r\n ];\r\n \r\n constructor(\r\n public _fichierService: FichierUploadService) {\r\n super();\r\n // TODO @MedAli to be fixed\r\n // this.businessClass = BusinessClassNames.Fichier;\r\n this.businessClass = \"Fichier\";\r\n }\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n this.setModalSize(ModalSizeEnum.ExtraLarge);\r\n this.comp = TsiUploadFicheComponent;\r\n this.titleComponent = 'parambase_param_fichier_fichiers';\r\n this.table = \"Fichier\";\r\n }\r\n}\r\n","<Tsi-Generic-Crud\r\n [cudComponent]=\"comp\"\r\n [header]=\"titleComponent\"\r\n [columns]=\"columns\"\r\n [crudService]=\"_fichierService\"\r\n [modalSize]=\"modalSize\"\r\n [showUploadButton]=\"false\"\r\n [showDownloadButton]=\"true\"\r\n >\r\n</Tsi-Generic-Crud>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { ButtonType } from '../../../enums/button-type.enum';\r\nimport { TooltipPosition } from '../../../enums/tooltipPosition.enum';\r\n\r\n@Component({\r\n selector: 'Tsi-Submit-Button',\r\n templateUrl: './tsi-submit-button.component.html',\r\n styleUrls: ['./tsi-submit-button.component.css']\r\n})\r\nexport class TsiSubmitButtonComponent {\r\n\r\n @Input() Disabled:boolean = false;\r\n @Input() Text?:string;\r\n @Output() submit: EventEmitter<void> = new EventEmitter<void>() \r\n @Input() tooltipText:string = '';\r\n @Input() tooltipPosition: TooltipPosition = TooltipPosition.Top;\r\n @Input() icon?:string;\r\n @Input() type:ButtonType = ButtonType.Submit;\r\n validate(){\r\n this.submit.emit();\r\n }\r\n}\r\n","<p-button\r\nname=\"submit\"\r\ntype=\"submit\"\r\nclass=\"btn btn-primary\"\r\n[disabled]=\"Disabled\"\r\n(onClick)=\"validate()\"\r\n[pTooltip]=\"tooltipText | localize\"\r\n[tooltipPosition]=\"tooltipPosition\"\r\n[icon]=\"icon\"\r\n[type]=\"type\"\r\n>\r\n{{ Text! | localize }}\r\n</p-button>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { DisplayTypes, GridSelectionMode } from '../../../enums';\r\nimport { GridColumn, ButtonClickResult } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'Tsi-Display-Grid',\r\n templateUrl: './tsi-display-grid.component.html',\r\n styleUrls: ['./tsi-display-grid.component.scss'],\r\n})\r\nexport class TsiDisplayGridComponent {\r\n\r\n //#region local vars\r\n fields?: string[];\r\n displayTypes = DisplayTypes;\r\n selectedFullItems: Array<any> = [];\r\n selectAll: any = false;\r\n keyword: string | undefined;\r\n multipleGridSelectionMode = GridSelectionMode.Multiple;\r\n\r\n //#endregion\r\n\r\n //#region inputs\r\n\r\n @Input() columns: Array<GridColumn> = [];\r\n @Input() showHeader:boolean = true;\r\n @Input() header:string=\"List_des_elements\";\r\n @Input() key: string = 'uid';\r\n @Input() gridData?: Array<any> = [];\r\n @Input() gridSummaryData: any;\r\n\r\n @Input() isTableLoading?: boolean;\r\n @Input() showHaveSumary?: boolean = false;\r\n @Input() selectKeyOnly: boolean = true;\r\n @Input() selectionMode: GridSelectionMode | any = GridSelectionMode.None;\r\n\r\n @Input() parent: any;\r\n\r\n @Input() selectedItems: Array<any> = [];\r\n @Input() showFilters: boolean = true;\r\n @Input() showSort: boolean = true;\r\n @Input() paginator: boolean = true;\r\n @Input() showSummaryFooter: boolean = true;\r\n @Input() globalFilterFields: string[] | undefined;\r\n //#endregion\r\n\r\n //#region outputs\r\n @Output() rowClick: EventEmitter<any> = new EventEmitter();\r\n @Output() rowDoubleClick: EventEmitter<any> = new EventEmitter();\r\n @Output() selectedItemsChange: EventEmitter<Array<any>> = new EventEmitter<Array<any>>();\r\n @Output() buttonColumnClicked: EventEmitter<ButtonClickResult> = new EventEmitter<ButtonClickResult>();\r\n //#endregion\r\n totalCount(): number {\r\n if (this.gridData != null && this.gridData != undefined) {\r\n return this.gridData.length;\r\n }\r\n else {\r\n return 0;\r\n }\r\n }\r\n getData(): any {\r\n return this.gridData ? this.gridData : [];\r\n }\r\n getSummary(col: GridColumn): number {\r\n let sum = 0;\r\n if (col.haveSummary == true) {\r\n\r\n this.gridData?.forEach((row: any) => {\r\n sum += row[col.field];\r\n })\r\n }\r\n return sum;\r\n }\r\n onSelectedItemsChanged() {\r\n if (this.selectKeyOnly) {\r\n let keys: Array<any> = [];\r\n this.selectedFullItems.forEach(v => { keys.push(v[this.key]) });\r\n this.selectedItemsChange.emit(keys);\r\n }\r\n else {\r\n this.selectedItemsChange.emit(this.selectedFullItems);\r\n }\r\n }\r\n onSelectAllChange(event: any) {\r\n this.selectAll = event.checked;\r\n if (this.selectAll) {\r\n this.selectedFullItems = this.getData();\r\n }\r\n else {\r\n this.selectedFullItems = [];\r\n }\r\n this.onSelectedItemsChanged();\r\n }\r\n buttonClicked(key: string, field: string): void {\r\n this.buttonColumnClicked.emit({ field: field, key: key , selectKeyOnly: this.selectKeyOnly});\r\n }\r\n}\r\n","<p-table #dt1 dataKey=\"{{key}}\" [(selectAll)]=\"selectAll\" [selectionMode]=\"selectionMode\" [(selection)]=\"selectedFullItems\"\r\n(onRowUnselect)=\"onSelectedItemsChanged()\" (selectAllChange)=\"onSelectAllChange($event)\" (onRowSelect)=\"onSelectedItemsChanged()\"\r\n [totalRecords]=\"totalCount()\" [reorderableColumns]=\"true\" [columns]=\"columns\" [paginator]=\"paginator\" [rows]=\"10\"\r\n [value]=\"getData()\" [globalFilterFields]=\"globalFilterFields ?? []\" [resizableColumns]=\"true\" [scrollable]=\"true\" appendTo=\"body\" styleClass=\"p-datatable-sm p-datatable-gridlines\"\r\n columnResizeMode=\"expand\" scrollHeight=\"600px\">\r\n <!-- <ng-template *ngIf=\"showHeader\" pTemplate=\"caption\">\r\n {{header | localize}}\r\n </ng-template> -->\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"flex\">\r\n <div *ngIf=\"showHeader\">\r\n {{header | localize}}\r\n </div>\r\n <span class=\"p-input-icon-left ml-auto\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText style=\"padding-left: 2.5rem!important; \" class=\"p-inputtext p-component p-element p-filled\" type=\"text\" #filterGlobalInput (input)=\"dt1.filterGlobal(filterGlobalInput.value, 'contains')\" placeholder=\"{{'' | localize}}\" />\r\n </span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngIf=\"selectionMode == multipleGridSelectionMode\" style=\"width: 4rem\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <th pFrozenColumn *ngIf=\"showHaveSumary\" scope=\"col\" style=\"width:3rem\"></th>\r\n <th pFrozenColumn [frozen]=\"col.isFrozen\" scope=\"col\" [style.width]=\"col.isButton ? '4rem' : (col.width? col.width.getCSSValue() : '')\" [style]=\"col.style\" pTooltip=\"{{col.toolTipText | localize }}\" tooltipPosition=\"top\"\r\n *ngFor=\"let col of columns\" pReorderableColumn pSortableColumn=\"{{col.field}}\">\r\n <span *ngIf=\"!col.isButton\">\r\n <table class=\"p-0 m-0\">\r\n <tr>\r\n <td class=\"col p-0 m-0\">{{ col.header | localize }}\r\n\r\n </td>\r\n <td class=\"col-fixed p-0 m-0\" style=\"width: 1rem\"><p-sortIcon class=\"w-1rem m-0 p-0\"\r\n field=\"{{col.field}}\"></p-sortIcon>\r\n\r\n </td>\r\n </tr>\r\n </table>\r\n\r\n </span>\r\n </th>\r\n </tr>\r\n <tr *ngIf=\"showFilters; else notShowFilters\">\r\n <th *ngIf=\"selectionMode == multipleGridSelectionMode\" style=\"width: 4rem\">\r\n\r\n </th>\r\n <th pFrozenColumn class=\"stick\" *ngIf=\"showHaveSumary\" style=\"width:3rem\"></th>\r\n <th pFrozenColumn [frozen]=\"col.isFrozen\" scope=\"col\" *ngFor=\"let col of columns\">\r\n <p-columnFilter *ngIf=\"!col.isButton\" type=\"text\" field=\"{{col.field}}\"></p-columnFilter>\r\n </th>\r\n </tr>\r\n\r\n <ng-template #notShowFilters>\r\n <ng-container>\r\n <th pFrozenColumn class=\"stick\" *ngIf=\"showHaveSumary\" style=\"width:3rem\"></th>\r\n </ng-container>\r\n </ng-template>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-item let-columns=\"columns\" let-index=\"rowIndex\">\r\n <tr [pReorderableRow]=\"index\">\r\n <td *ngIf=\"selectionMode == multipleGridSelectionMode\">\r\n <p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\r\n </td>\r\n <td pFrozenColumn *ngIf=\"showHaveSumary\" scope=\"col\" style=\"width:3rem\"></td>\r\n <td pTooltip=\"{{col.toolTipText | localize }}\" tooltipPosition=\"top\" pFrozenColumn [frozen]=\"col.isFrozen\" style=\"width: max-content\" *ngFor=\"let col of columns\">\r\n\r\n <!-- Tsi-Currency-Societe-Input -->\r\n\r\n <div *ngIf=\"col.type == displayTypes.CURRENCY_SOCIETE_DISPLAY; else currencyOtherOutputBlock\">\r\n <Tsi-Currency-Societe-Display [inputData]=\"item[col.field]\">\r\n </Tsi-Currency-Societe-Display>\r\n </div>\r\n\r\n\r\n <!-- Tsi-Currency-Other-Input -->\r\n <ng-template #currencyOtherOutputBlock>\r\n <ng-container *ngIf=\"col.type == displayTypes.CURRENCY_OTHER_DISPLAY; else datePickerOutputBlock\">\r\n <Tsi-Currency-Other-Display [currency]=\"col.currencyCode\" [inputData]=\"item[col.field]\">\r\n </Tsi-Currency-Other-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Date-Picker -->\r\n <ng-template #datePickerOutputBlock>\r\n <ng-container *ngIf=\"col.type == displayTypes.DATE_DISPLAY; else checkBoxOutputBlock\">\r\n <Tsi-Date-Display [inputData]=\"item[col.field]\">\r\n </Tsi-Date-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-CheckBox -->\r\n <ng-template #checkBoxOutputBlock>\r\n <ng-container *ngIf=\"col.type == displayTypes.CHECKBOX_DISPLAY; else decimalOutputBlock\">\r\n <Tsi-Checkbox-Display [inputData]=\"item[col.field]\">\r\n </Tsi-Checkbox-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Decimal-Input -->\r\n <ng-template #decimalOutputBlock>\r\n <ng-container *ngIf=\"col.type == displayTypes.DECIMAL_DISPLAY; else integerOutputBlock\">\r\n <Tsi-Decimal-Display [formatDecimal]=\"col.formatDecimal\" [inputData]=\"item[col.field]\" [numOfDecimal]=\"col.numOfDecimal\">\r\n </Tsi-Decimal-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Integer -->\r\n <ng-template #integerOutputBlock>\r\n <ng-container *ngIf=\"col.type == displayTypes.INTEGER_DISPLAY; else rateOutputBlock\">\r\n <Tsi-Integer-Display [inputData]=\"item[col.field]\">\r\n </Tsi-Integer-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Rate-Input -->\r\n <ng-template #rateOutputBlock>\r\n <ng-container *ngIf=\"col.type == displayTypes.RATE_DISPLAY; else displayButtonBlock\">\r\n <Tsi-Rate-Display [isFraction]=\"col.isFraction\" [inputData]=\"item[col.field]\" [numOfDecimal]=\"col.numOfDecimal\">\r\n </Tsi-Rate-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Button -->\r\n <ng-template #displayButtonBlock>\r\n <ng-container *ngIf=\"col.isButton; else defaultTextOutputBlock\">\r\n\r\n <div class=\"flex align-items-center justify-content-center p-0\">\r\n <button class=\"p-0\" pButton pRipple type=\"button\" icon=\"{{col.buttonIcon}}\" class=\"{{col.styleClass}}\"\r\n (click)=\"buttonClicked(item[key], col.field)\">{{col.buttonLabel | localize}}</button>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Text-Box -->\r\n <ng-template #defaultTextOutputBlock>\r\n <ng-container>\r\n <span>\r\n {{item[col.field]}}\r\n </span>\r\n </ng-container>\r\n </ng-template>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template *ngIf=\"showHaveSumary\" pTemplate=\"footer\" let-columns>\r\n <tr class=\"tfooter\">\r\n <td pFrozenColumn scope=\"col\" style=\"width:3rem\">Totals</td>\r\n <td pFrozenColumn [frozen]=\"col.isFrozen\" [style]=\"col.style\" scope=\"col\"\r\n *ngFor=\"let col of columns\">\r\n <div *ngIf=\"col.haveSummary\">\r\n <!-- Tsi-Currency-Societe-Display -->\r\n <div *ngIf=\"col.type == displayTypes.CURRENCY_SOCIETE_DISPLAY; else currencyOtherOutputBlock\">\r\n <Tsi-Currency-Societe-Display [inputData]=\"getSummary(col)\">\r\n </Tsi-Currency-Societe-Display>\r\n </div>\r\n\r\n <!-- Tsi-Currency-Other-Display -->\r\n <ng-template #currencyOtherOutputBlock>\r\n <ng-container *ngIf=\"col.type == displayTypes.CURRENCY_OTHER_DISPLAY; else decimalOutputBlock\">\r\n <Tsi-Currency-Other-Display [currency]=\"col.currencyCode\" [inputData]=\"getSummary(col)\">\r\n </Tsi-Currency-Other-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Decimal-Display -->\r\n <ng-template #decimalOutputBlock>\r\n <ng-container *ngIf=\"col.type == displayTypes.DECIMAL_DISPLAY; else integerOutputBlock\">\r\n <Tsi-Decimal-Display [formatDecimal]=\"col.formatDecimal\" [inputData]=\"getSummary(col)\" [numOfDecimal]=\"col.numOfDecimal\">\r\n </Tsi-Decimal-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Integer-Display -->\r\n <ng-template #integerOutputBlock>\r\n <ng-container *ngIf=\"col.type == displayTypes.INTEGER_DISPLAY; else rateOutputBlock\">\r\n <Tsi-Integer-Display [inputData]=\"getSummary(col)\">\r\n </Tsi-Integer-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Tsi-Rate-Display -->\r\n <ng-template #rateOutputBlock>\r\n <ng-container *ngIf=\"col.type == displayTypes.RATE_DISPLAY; else defaultTextOutputBlock\">\r\n <Tsi-Rate-Display [isFraction]=\"col.isFraction\" [inputData]=\"getSummary(col)\" [numOfDecimal]=\"col.numOfDecimal\">\r\n </Tsi-Rate-Display>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Default -->\r\n <ng-template #defaultTextOutputBlock>\r\n <ng-container>\r\n <span>\r\n {{getSummary(col)}}\r\n </span>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template *ngIf=\"showSummaryFooter\" pTemplate=\"summary\">\r\n There are {{totalCount()}}\r\n <span>\r\n </span>\r\n </ng-template>\r\n</p-table>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'Tsi-Label-Legend',\r\n templateUrl: './tsi-label-legend.component.html',\r\n styleUrls: ['./tsi-label-legend.component.css']\r\n})\r\nexport class TsiLabelLegendComponent {\r\n\r\n //stylesActivated : boolean = TsiStylesHelper.getStateOfStyles();\r\n @Input() labelValue :string = '';\r\n\r\n}\r\n\r\n\r\n","<label\r\n \r\n \r\n for=\"{{labelValue}}\">\r\n {{ labelValue | localize }}\r\n</label>\r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'Tsi-Legend',\r\n templateUrl: './tsi-legend.component.html',\r\n styleUrls: ['./tsi-legend.component.css']\r\n})\r\nexport class TsiLegendComponent implements OnInit {\r\n\r\n //stylesActivated : boolean = TsiStyles.getStateOfStyles();\r\n\r\n constructor() { }\r\n @Input() legendLabel :string = '' ;\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<legend\r\n >\r\n {{legendLabel | localize}}\r\n</legend>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tsi-redirection-message',\r\n templateUrl: './tsi-redirection-message.component.html',\r\n styleUrls: ['./tsi-redirection-message.component.scss']\r\n})\r\nexport class TsiRedirectionMessageComponent implements OnInit {\r\n\r\n @Input() message: string = '';\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n}\r\n","<div class=\"bg-bluegray-900 text-gray-100 p-3 mt-4 flex justify-content-between lg:justify-content-center align-items-center flex-wrap\">\r\n <div class=\"font-bold mr-8\">🔥 Info!</div>\r\n <div class=\"align-items-center hidden lg:flex\">\r\n <span class=\"line-height-3\">{{ message | localize }}</span>\r\n </div>\r\n</div>","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { Segment } from '../../end-points';\r\nimport { logoutReasonEnum } from '../../enums';\r\nimport { IdentityPlatformAuthenticationService, IdentityManagerService } from '../../services';\r\nimport { TsiFormComponentBaseComponent } from '../../tsi-base/components/tsi-form-base/tsi-form-base.component';\r\nimport { appProviders } from '../../consts/app-providers';\r\n\r\n@Component({\r\n selector: 'app-logout-popup',\r\n templateUrl: './logout-popup.component.html',\r\n styleUrls: ['./logout-popup.component.scss'],\r\n providers: [...appProviders]\r\n})\r\nexport class LogoutPopupComponent /*extends TsiFormComponentBaseComponent implements OnInit, OnDestroy*/ {\r\n\r\n // countdownValue: any;\r\n // countdownSub: any;\r\n // logoutReason: logoutReasonEnum = logoutReasonEnum.INACTIVITY;\r\n // logoutReasonEnum = logoutReasonEnum ;\r\n\r\n // constructor(\r\n // public override ref: TsiDialogRef,\r\n // public override config: TsiDialogConfig,\r\n // private _identityAuthorisationService: IdentityPlatformAuthenticationService,\r\n // private _identityManagerService: IdentityManagerService\r\n // ) {\r\n // super();\r\n // }\r\n\r\n\r\n // override ngOnInit(): void {\r\n // this.countdownValue = this.config.data.countDown;\r\n // this.logoutReason = this.config.data.logoutReason;\r\n // this.countdownSub = setInterval(async () => {\r\n // this.countdownValue--;\r\n // if (this.countdownValue <= 0) {\r\n // clearInterval(this.countdownSub);\r\n // console.log('User idle');\r\n // this.ref?.close({ willBeLoggedOut: true });\r\n // await firstValueFrom(this._identityAuthorisationService.logout(this.logoutReason));\r\n // this._identityManagerService.removeAuthToken()\r\n // window.open(Segment.identityPlatformUrlFront, \"_self\");\r\n // }\r\n // }, 1000);\r\n // }\r\n\r\n // override ngOnDestroy(): void {\r\n // if (this.countdownSub) {\r\n // clearInterval(this.countdownSub)\r\n // console.log(\"countdown subscription is cleared.\")\r\n // }\r\n // }\r\n\r\n // stayLoggedIn() {\r\n // this.hide({ willBeLoggedOut: false });\r\n // }\r\n\r\n}\r\n","<!-- <div *ngIf=\"logoutReason === logoutReasonEnum.INACTIVITY\" class=\"modal\">\r\n\t<article class=\"modal-container\">\r\n\t\t<header class=\"modal-container-header\">\r\n\t\t\t<h1 class=\"modal-container-title\">\r\n\t\t\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\">\r\n\t\t\t\t\t<path fill=\"none\" d=\"M0 0h24v24H0z\" />\r\n\t\t\t\t\t<path fill=\"currentColor\" d=\"M14 9V4H5v16h6.056c.328.417.724.785 1.18 1.085l1.39.915H3.993A.993.993 0 0 1 3 21.008V2.992C3 2.455 3.449 2 4.002 2h10.995L21 8v1h-7zm-2 2h9v5.949c0 .99-.501 1.916-1.336 2.465L16.5 21.498l-3.164-2.084A2.953 2.953 0 0 1 12 16.95V11zm2 5.949c0 .316.162.614.436.795l2.064 1.36 2.064-1.36a.954.954 0 0 0 .436-.795V13h-5v3.949z\" />\r\n\t\t\t\t</svg>\r\n\t\t\t\t<Tsi-Label labelValue=\"auto_logout_title\"></Tsi-Label>\r\n\t\t\t</h1>\r\n\t\t\t<button class=\"icon-button\" (click)=\"hide({willBeLoggedOut : false})\">\r\n\t\t\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\">\r\n\t\t\t\t\t<path fill=\"none\" d=\"M0 0h24v24H0z\" />\r\n\t\t\t\t\t<path fill=\"currentColor\" d=\"M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z\" />\r\n\t\t\t\t</svg>\r\n\t\t\t</button>\r\n\t\t</header>\r\n <br/>\r\n\t\t<section class=\"modal-container-body\">\r\n <div class=\"flx\">\r\n <Tsi-Label labelValue=\"auto_logout\"></Tsi-Label>\r\n\t\t\t\t\t<div class=\"flx align-items-start\">\r\n\t\t\t\t\t\t&nbsp;<b>{{countdownValue}}</b>&nbsp;\r\n\t\t\t\t\t\t<Tsi-Label labelValue=\"auto_logout_secondes\"/> \r\n\t\t\t\t\t</div>\r\n </div>\r\n\t\t</section>\r\n <br/>\r\n\t\t<footer class=\"modal-container-footer\">\r\n\t\t\t<button class=\"button is-ghost\" (click)=\"hide({willBeLoggedOut : false})\">{{'auto_logout_stay_loggedin' | localize}}</button>\r\n\t\t</footer>\r\n\t</article>\r\n</div>\r\n\r\n<div *ngIf=\"logoutReason === logoutReasonEnum.EXPIRED_TOKEN\" class=\"modal\">\r\n\t<article class=\"modal-container\">\r\n\t\t<header class=\"modal-container-header\">\r\n\t\t\t<h1 class=\"modal-container-title\">\r\n\t\t\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\">\r\n\t\t\t\t\t<path fill=\"none\" d=\"M0 0h24v24H0z\" />\r\n\t\t\t\t\t<path fill=\"currentColor\" d=\"M14 9V4H5v16h6.056c.328.417.724.785 1.18 1.085l1.39.915H3.993A.993.993 0 0 1 3 21.008V2.992C3 2.455 3.449 2 4.002 2h10.995L21 8v1h-7zm-2 2h9v5.949c0 .99-.501 1.916-1.336 2.465L16.5 21.498l-3.164-2.084A2.953 2.953 0 0 1 12 16.95V11zm2 5.949c0 .316.162.614.436.795l2.064 1.36 2.064-1.36a.954.954 0 0 0 .436-.795V13h-5v3.949z\" />\r\n\t\t\t\t</svg>\r\n\t\t\t\t<Tsi-Label labelValue=\"auto_logout_expired_token_title\"></Tsi-Label>\r\n\t\t\t</h1>\r\n\t\t\t<button class=\"icon-button\" (click)=\"hide()\">\r\n\t\t\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\">\r\n\t\t\t\t\t<path fill=\"none\" d=\"M0 0h24v24H0z\" />\r\n\t\t\t\t\t<path fill=\"currentColor\" d=\"M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z\" />\r\n\t\t\t\t</svg>\r\n\t\t\t</button>\r\n\t\t</header>\r\n <br/>\r\n\t\t<section class=\"modal-container-body\">\r\n <div class=\"flx\">\r\n <Tsi-Label labelValue=\"auto_logout_expired_token_msg\"></Tsi-Label>\r\n </div>\r\n\t\t</section>\r\n <br/>\r\n\t\t<footer class=\"modal-container-footer\">\r\n\t\t\t<button class=\"button is-ghost\" (click)=\"hide()\">{{'Ok' | localize}}</button>\r\n\t\t</footer>\r\n\t</article>\r\n</div> -->","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Component } from '@angular/core';\r\nimport { KeyValue } from '@angular/common';\r\nimport { TsiFormComponentBaseComponent } from '../../tsi-base/components/tsi-form-base/tsi-form-base.component';\r\nimport { LocalizationKeys } from '../../consts/localization-key';\r\nimport { InputTypes, Modes } from '../../enums';\r\nimport { GridColumn } from '../../interfaces';\r\nimport { EntityInfoWithRelations, UpdateEntityInfoWithRelationsRequest } from '../../models';\r\nimport { EntityConfigurationService, ErrorResponseManagerService, TsiNotificationService, TsiConfirmationService, ApiExplorerService } from '../../services';\r\nimport { TypeRegistryHelper } from '../../tsi-helpers';\r\nimport { EndpointInfos } from '../../models/application/configuration/endpoint-infos';\r\nimport { appProviders } from '../../consts/app-providers';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\n\r\n\r\n@Component({\r\n selector: 'app-create-or-edit-entity-informations',\r\n templateUrl: './create-or-edit-entity-informations.component.html',\r\n styleUrl: './create-or-edit-entity-informations.component.scss',\r\n providers: [...appProviders]\r\n})\r\nexport class CreateOrEditEntityInformationsComponent extends TsiFormComponentBaseComponent {\r\n entityWithRelations: EntityInfoWithRelations = new EntityInfoWithRelations();\r\n keyColumnOptions: KeyValue<string, string>[] = [];\r\n endpointInfos: EndpointInfos[] = [];\r\n componentsOptions: KeyValue<string, string>[] = TypeRegistryHelper.getBusinessComponentList();\r\n\r\n\r\n permissionsGridColumns: Array<GridColumn> = [\r\n { header: 'administration_permissions_httpMethod', field: 'httpMethod' },\r\n { header: 'administration_permissions_route', field: 'route' },\r\n { header: 'administration_permissions_accessRights', field: 'accessRights' },\r\n { header: 'administration_permissions_methodName', field: 'methodName' }\r\n ];\r\n\r\n\r\n entitiesRelationsColumns: Array<GridColumn> = [\r\n { header: 'administration_entityRelations_entityFrom', field: 'entityFrom', disabled: true },\r\n { header: 'administration_entityRelations_entityTo', field: 'entityTo' },\r\n { header: 'administration_entityRelations_logCascade', field: 'logCascade', type: InputTypes.CHECKBOX },\r\n { header: 'administration_entityRelations_duplicateCascade', field: 'duplicateCascade', type: InputTypes.CHECKBOX },\r\n { header: 'administration_entityRelations_deleteBehaviour', field: 'deleteBehaviour' }\r\n ]\r\n constructor(\r\n public _entityInformationsService: EntityConfigurationService,\r\n private _errorResponseManagerService: ErrorResponseManagerService,\r\n public override ref: DynamicDialogRef,\r\n public override config: DynamicDialogConfig,\r\n private _notificationService: TsiNotificationService,\r\n private _confirmationService: TsiConfirmationService,\r\n private _apiExplorerService: ApiExplorerService) {\r\n super(ref, config);\r\n }\r\n\r\n getColonnesByClassNameAsKeyValuePair(className?: string): void {\r\n if (className) {\r\n this._entityInformationsService.getColonnesByClassNameAsKeyValuePair(className)\r\n .subscribe(columns => {\r\n this.keyColumnOptions = columns;\r\n this.entityWithRelations.relations.map(er => er.entityFrom = className);\r\n });\r\n }\r\n }\r\n getPermissionsByClassName(): void {\r\n if (this.id) {\r\n this._apiExplorerService.getEndpointsInfos(this.id).subscribe({\r\n next: (endpointsInfos) => {\r\n if (endpointsInfos && Array.isArray(endpointsInfos) && endpointsInfos.length > 0) {\r\n this.endpointInfos = endpointsInfos;\r\n }\r\n },\r\n error: (error) => {\r\n console.error('Error fetching permissions:', error);\r\n this._errorResponseManagerService.showErrorMessage(error);\r\n }\r\n });\r\n }\r\n }\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n this.getColonnesByClassNameAsKeyValuePair(this.id);\r\n this.getPermissionsByClassName();\r\n if (\r\n (this.mode === Modes.edit || this.mode === Modes.delete || this.mode === Modes.consult) &&\r\n this.id !== undefined &&\r\n this.id !== null\r\n ) {\r\n this.isloading = true;\r\n this._entityInformationsService.getEntityInformationsAndRelations(this.id).subscribe({\r\n next: (data) => {\r\n this.entityWithRelations = data;\r\n },\r\n error: (error) => {\r\n console.error('Error fetching entityInformation:', error);\r\n this._errorResponseManagerService.showErrorMessage(error);\r\n },\r\n complete: () => {\r\n this.isloading = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n override save(): void {\r\n super.save()\r\n this.saving = false;\r\n this.isloading = true;\r\n\r\n if (this.mode === Modes.create) {\r\n this._entityInformationsService.create(this.entityWithRelations).subscribe({\r\n next: () => {\r\n this._notificationService.info(this.l(LocalizationKeys.savedSuccessfully));\r\n this.hide(true);\r\n this.onSave.emit();\r\n },\r\n error: (response: HttpErrorResponse) => {\r\n this.saving = false;\r\n this.isloading = false;\r\n this._errorResponseManagerService.showErrorMessage(response);\r\n },\r\n complete: () => {\r\n this.isloading = false;\r\n }\r\n });\r\n }\r\n\r\n else if (\r\n this.mode === Modes.edit\r\n && this.entityWithRelations\r\n && this.entityWithRelations.entity.className\r\n ) {\r\n let updateEntityInfoWithRelationsRequest = new UpdateEntityInfoWithRelationsRequest(this.id ?? '', this.entityWithRelations.entity, this.entityWithRelations.relations);\r\n this._entityInformationsService.update(updateEntityInfoWithRelationsRequest).subscribe({\r\n next: () => {\r\n this._notificationService.info(this.l(LocalizationKeys.updatedSuccessfully));\r\n this.hide(true);\r\n this.onSave.emit();\r\n },\r\n error: (response: HttpErrorResponse) => {\r\n this.saving = false;\r\n this.isloading = false;\r\n this._errorResponseManagerService.showErrorMessage(response);\r\n },\r\n complete: () => {\r\n this.isloading = false;\r\n }\r\n });\r\n }\r\n\r\n else if (this.mode === Modes.delete) {\r\n this._confirmationService.confirm(\r\n LocalizationKeys.confirmDelete,\r\n undefined,\r\n (result: boolean) => {\r\n if (\r\n result\r\n && this.entityWithRelations.entity.className\r\n ) {\r\n this._entityInformationsService.delete(this.id ?? '').subscribe({\r\n next: () => {\r\n this._notificationService.success(this.l(LocalizationKeys.deletedSuccessfully));\r\n this.hide(true);\r\n this.onSave.emit();\r\n },\r\n error: (response: HttpErrorResponse) => {\r\n this._errorResponseManagerService.showErrorMessage(response);\r\n this.saving = false;\r\n this.isloading = false;\r\n },\r\n complete: () => {\r\n this.isloading = false;\r\n }\r\n });\r\n }\r\n }\r\n );\r\n }\r\n }\r\n onAddRelation(): void {\r\n this.entityWithRelations.relations.map(er => er.entityFrom = this.entityWithRelations.entity.className ?? '');\r\n }\r\n}","<tsi-form class=\"form-horizontal\" autocomplete=\"off\" (onSubmit)=\"save()\" [isLoading]=\"isloading\">\r\n <Tsi-Modal-Header [inputTitle]=\"header | modalLabel : mode : 'administration_entityRelations_title' | localize\"\r\n (onCloseClick)=\"hide()\">\r\n </Tsi-Modal-Header>\r\n\r\n <p-tabView>\r\n <p-tabPanel [header]=\"'administration_tab_entityInformation' | localize\">\r\n <fieldset [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n <div class=\"modal-body\">\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_className'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'ClassName'\"\r\n [(inputField)]=\"entityWithRelations.entity.className\"\r\n (inputFieldChange)=\"getColonnesByClassNameAsKeyValuePair($event)\"\r\n [disabled]=\"isDeleteMode() || isConsultMode() || isEditMode()\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_formName'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-8\" [datasource]=\"componentsOptions\"\r\n [(bind)]=\"entityWithRelations.entity.formName\" id-field=\"key\" label-field=\"value\" [showClear]=\"true\"\r\n [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_listComponent'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-8\" [datasource]=\"componentsOptions\"\r\n [(bind)]=\"entityWithRelations.entity.listComponent\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_logged'\"></Tsi-Label>\r\n <Tsi-CheckBox class=\"col-8\" [inputName]=\"'Logged'\" [(inputField)]=\"entityWithRelations.entity.logged\">\r\n </Tsi-CheckBox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_listRoute'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'ListRoute'\"\r\n [(inputField)]=\"entityWithRelations.entity.listRoute\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_formRoute'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'FormRoute'\"\r\n [(inputField)]=\"entityWithRelations.entity.formRoute\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_discriminatorPropertyName'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'DiscriminatorPropertyName'\"\r\n [(inputField)]=\"entityWithRelations.entity.discriminatorPropertyName\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_discriminatorClassName'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'DiscriminatorClassName'\"\r\n [(inputField)]=\"entityWithRelations.entity.discriminatorClassName\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_keyColumns'\"></Tsi-Label>\r\n <div class=\"col-8\">\r\n <p-multiSelect [options]=\"keyColumnOptions\" [(ngModel)]=\"entityWithRelations.entity.keyColumns\"\r\n optionValue=\"key\" optionLabel=\"value\" display=\"chip\" defaultLabel=\"Select columns\" [filter]=\"true\">\r\n </p-multiSelect>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_statusColumnName'\"></Tsi-Label>\r\n \r\n <Tsi-Search-Combo class=\"col-6\" [datasource]=\"keyColumnOptions\"\r\n [(bind)]=\"entityWithRelations.entity.statusColumnName\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_isWorkflow'\"></Tsi-Label>\r\n <Tsi-CheckBox class=\"col-8\" [inputName]=\"'IsWorkflow'\"\r\n [(inputField)]=\"entityWithRelations.entity.isWorkflow\">\r\n </Tsi-CheckBox>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_defaultStatus'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'DefaultStatus'\"\r\n [(inputField)]=\"entityWithRelations.entity.defaultStatus\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_statusEnumName'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'StatusEnumName'\"\r\n [(inputField)]=\"entityWithRelations.entity.statusEnumName\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_advancedSearchComponent'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-8\" [datasource]=\"componentsOptions\"\r\n [(bind)]=\"entityWithRelations.entity.advancedSearchComponent\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-4\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-6\"\r\n [labelValue]=\"'administration_gestionEntityInformation_cardHeaderPhotoColumn'\"></Tsi-Label>\r\n\r\n <Tsi-Search-Combo class=\"col-6\" [datasource]=\"keyColumnOptions\"\r\n [(bind)]=\"entityWithRelations.entity.cardHeaderPhotoColumn\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-4\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-6\"\r\n [labelValue]=\"'administration_gestionEntityInformation_cardTitleColumn'\"></Tsi-Label>\r\n \r\n <Tsi-Search-Combo class=\"col-6\" [datasource]=\"keyColumnOptions\"\r\n [(bind)]=\"entityWithRelations.entity.cardTitleColumn\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div class=\"col-4\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-6\"\r\n [labelValue]=\"'administration_gestionEntityInformation_cardSubHeaderColumn'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-6\" [datasource]=\"keyColumnOptions\"\r\n [(bind)]=\"entityWithRelations.entity.cardSubHeaderColumn\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-2\"\r\n [labelValue]=\"'administration_gestionEntityInformation_cardDescriptionColumn'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-6\" [datasource]=\"keyColumnOptions\"\r\n [(bind)]=\"entityWithRelations.entity.cardDescriptionColumn\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </fieldset>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'administration_tab_relations' | localize\">\r\n <div class=\"grid\">\r\n <Tsi-Generic-Editable-Grid [columns]=\"entitiesRelationsColumns\" [gridData]=\"entityWithRelations.relations\"\r\n [parent]=\"this\" (addedRowEventEmitter)=\"onAddRelation()\" [showAddButton]=\"isEditMode()\">\r\n </Tsi-Generic-Editable-Grid>\r\n </div>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'administration_tab_permissions' | localize\">\r\n <div class=\"grid\">\r\n <tsi-view-grid [header]=\"entityWithRelations.entity.className ?? ''\" class=\"col-12 mb-3\"\r\n [columns]=\"permissionsGridColumns\" [getDataFromApi]=\"false\" [gridData]=\"endpointInfos\">\r\n </tsi-view-grid>\r\n </div>\r\n </p-tabPanel>\r\n </p-tabView>\r\n <Tsi-Modal-Footer [isConsult]=\"isConsultMode()\" [cancelDisabled]=\"saving\" [saveDisabled]=\"isSubmitDisabled()\"\r\n (onCancelClick)=\"hide()\">\r\n </Tsi-Modal-Footer>\r\n</tsi-form>","import { Component } from '@angular/core';\r\nimport { DisplayTypes, ModalSizeEnum } from '../../enums';\r\nimport { GridColumn } from '../../interfaces';\r\nimport { NoteService } from '../../services';\r\nimport { TsiListBaseComponent } from '../../tsi-base/components/tsi-list-base/tsi-list-base.component';\r\nimport { appProviders } from '../../consts/app-providers';\r\n\r\n@Component({\r\n selector: 'app-tsi-notes-grid',\r\n templateUrl: './tsi-notes-grid.component.html',\r\n styleUrls: ['./tsi-notes-grid.component.scss'],\r\n providers: [...appProviders]\r\n})\r\nexport class TsiNotesGridComponent extends TsiListBaseComponent {\r\n override columns: Array<GridColumn> = [\r\n {\r\n header: 'shared_notes_note',\r\n field: 'note',\r\n },\r\n {\r\n header: 'shared_notes_avertir',\r\n field: 'avertir',\r\n type: DisplayTypes.CHECKBOX_DISPLAY,\r\n },\r\n\r\n ];\r\n constructor(public notesService: NoteService) {\r\n super();\r\n // TODO @MedAli to be fixed\r\n // this.businessClass = BusinessClassNames.Notes;\r\n this.businessClass = \"Notes\";\r\n }\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n this.setModalSize(ModalSizeEnum.Medium);\r\n this.comp = \"TsiNotesComponent\";\r\n this.titleComponent = 'shared_notes_note';\r\n }\r\n}\r\n","<Tsi-Generic-Crud [cudComponent]=\"comp\" [header]=\"titleComponent\" [columns]=\"columns\" [crudService]=\"notesService\"\r\n [modalSize]=\"modalSize\" [showUploadButton]=\"false\" [showNoteButton]=\"false\" presentationDesigner [id]=\"'app-tsi-notes-grid'\"\r\n></Tsi-Generic-Crud>","import { Component, EventEmitter, Input, OnChanges, OnDestroy, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\nimport { ProgressBarResponse } from '../../models';\r\nimport { ProgressBarService } from '../../services/progress-bar/progress-bar.service';\r\nimport { Guid } from '../../tsi-helpers';\r\n@Component({\r\n selector: 'tsi-progress-bar',\r\n standalone: false,\r\n templateUrl: './tsi-progress-bar.component.html',\r\n styleUrl: './tsi-progress-bar.component.scss',\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class TsiProgressBarComponent implements OnChanges, OnDestroy {\r\n\r\n @Input() showBar: boolean = true;\r\n @Input() processName!: string | undefined;\r\n\r\n @Input() showValue: boolean = true;\r\n @Input() color: string = '#007ad9'; // #007ad9 #d90019ff\r\n @Input() showCurrentStep: boolean = true;\r\n @Input() unit: string | undefined; // by default\r\n\r\n @Output() completed = new EventEmitter<number>();\r\n\r\n \r\n @Output() showBarChange = new EventEmitter<boolean>();\r\n\r\n title?: string;\r\n currentStep?: string;\r\n progressLevel?: number;\r\n maxLevel?: number;\r\n progressPercent = 0;\r\n warningMessage: string | null = null;\r\n \r\n progressBar: ProgressBarResponse = new ProgressBarResponse();\r\n \r\n private hasEmitted = false;\r\n private isPolling = false;\r\n private intervalPollId?: any;\r\n private hideTimeoutId?: any;\r\n \r\n constructor(\r\n private progressBarService: ProgressBarService\r\n ) {}\r\n \r\n ngOnChanges(changes: SimpleChanges): void {\r\n\r\n if (changes['processName'] || changes['showBar']) {\r\n if (this.showBar && this.processName) {\r\n //this.reset();\r\n //this.loadProgress(this.processName);\r\n this.startPolling(this.processName);\r\n } else {\r\n this.stopPolling();\r\n this.reset();\r\n }\r\n }\r\n\r\n /*if (changes['progressBar']) {\r\n this.updateProgress();\r\n }*/\r\n\r\n }\r\n\r\n\r\n private loadProgress(processName: string): void {\r\n this.progressBarService.getByProcessName(processName).subscribe({\r\n next: (progress) => {\r\n this.progressBar = progress;\r\n\r\n this.title = progress.title;\r\n this.currentStep = progress.currentStep;\r\n this.maxLevel = progress.maxLevel;\r\n this.progressLevel = progress.progressLevel;\r\n this.unit = progress.unit;\r\n \r\n this.updateProgress();\r\n },\r\n error: (err) => {\r\n console.error(`Erreur lors du chargement du processus ${processName}`, err);\r\n }\r\n });\r\n }\r\n\r\n private startPolling(processName: string): void {\r\n if (this.isPolling) return;\r\n\r\n this.isPolling = true;\r\n this.intervalPollId = setInterval(() => {\r\n this.progressBarService.getByProcessName(processName).subscribe({\r\n next: (progress) => {\r\n if (progress.uid != null && progress.uid != Guid.empty) {\r\n this.progressBar = progress;\r\n \r\n const progressLevelChanged = this.progressLevel !== progress.progressLevel;\r\n const maxLevelChanged = this.maxLevel !== progress.maxLevel;\r\n \r\n this.title = progress.title;\r\n this.currentStep = progress.currentStep;\r\n this.maxLevel = progress.maxLevel;\r\n this.progressLevel = progress.progressLevel;\r\n this.unit = progress.unit;\r\n \r\n if (progressLevelChanged || maxLevelChanged) {\r\n this.updateProgress();\r\n }\r\n }\r\n\r\n if (this.progressBar.progressLevel >= this.progressBar.maxLevel) {\r\n this.completed.emit(this.progressPercent);\r\n this.hasEmitted = true;\r\n this.onProgressCompleted();\r\n }\r\n },\r\n error: (err) => {\r\n console.error('Polling error', err);\r\n this.stopPolling();\r\n }\r\n });\r\n }, 2000);\r\n }\r\n\r\n \r\n private updateProgress(): void {\r\n\r\n if (this.progressBar.progressLevel != null && this.progressBar.maxLevel && this.progressBar.maxLevel > 0) {\r\n if (this.progressBar.progressLevel > this.progressBar.maxLevel) {\r\n this.warningMessage = `La valeur ${this.progressBar.progressLevel} dépasse la limite maximale de ${this.progressBar.maxLevel}.`;\r\n return;\r\n }\r\n\r\n this.warningMessage = null;\r\n this.progressPercent = Math.round((this.progressBar.progressLevel / this.progressBar.maxLevel) * 100);\r\n\r\n /*if (this.progressBar.progressLevel >= this.progressBar.maxLevel && !this.hasEmitted) {\r\n this.completed.emit(this.progressPercent);\r\n this.hasEmitted = true;\r\n }*/\r\n \r\n } else {\r\n this.warningMessage = null;\r\n this.progressPercent = 0;\r\n }\r\n }\r\n\r\n hideBar() {\r\n this.showBar = false;\r\n this.showBarChange.emit(this.showBar);\r\n }\r\n\r\n onProgressCompleted(): void {\r\n this.stopPolling();\r\n\r\n //const message = this.progressBar.title ? `${this.progressBar.title} terminé` : 'Processus terminé';\r\n //this.tsiMessageService.infoMessage(message);\r\n\r\n if (this.hideTimeoutId) {\r\n clearTimeout(this.hideTimeoutId);\r\n }\r\n\r\n this.hideTimeoutId = setTimeout(() => {\r\n this.hideBar();\r\n this.reset();\r\n }, 10000);\r\n }\r\n\r\n private stopPolling(): void {\r\n if (this.intervalPollId) {\r\n clearInterval(this.intervalPollId);\r\n this.intervalPollId = undefined;\r\n }\r\n this.isPolling = false;\r\n }\r\n\r\n private reset(): void {\r\n this.progressBar = new ProgressBarResponse();\r\n this.currentStep = this.progressBar.currentStep\r\n this.title = this.progressBar.title\r\n this.maxLevel = this.progressBar.maxLevel\r\n this.progressLevel = this.progressBar.progressLevel\r\n this.progressPercent = 0;\r\n this.warningMessage = null;\r\n this.hasEmitted = false;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n //alert(\"ng OnDestroy\");\r\n this.stopPolling();\r\n if (this.hideTimeoutId) clearTimeout(this.hideTimeoutId);\r\n }\r\n}\r\n","<div class=\"card\" *ngIf=\"showBar\">\r\n \r\n <p-toast />\r\n <p-progressBar [value]=\"progressPercent\" \r\n [showValue]=\"showValue\" \r\n [color]=\"color\" \r\n [style]=\"{ height: '8px' }\" >\r\n\r\n <ng-template pTemplate=\"progressPercent\" let-progressPercent>\r\n <span>{{ progressLevel }} / {{ maxLevel }} {{unit}} ({{ progressPercent }}%)</span>\r\n </ng-template>\r\n \r\n </p-progressBar>\r\n\r\n <div *ngIf=\"warningMessage; else progressBarBlock\" class=\"text-center text-danger p-2\">\r\n <strong>⚠️ {{ warningMessage }}</strong>\r\n </div>\r\n\r\n <ng-template #progressBarBlock>\r\n <div class=\"mt-2 text-center\">\r\n <strong *ngIf=\"unit; else percentOnly\">\r\n {{ progressLevel }} / {{ maxLevel }} {{ unit }} ({{ progressPercent }}%)\r\n </strong>\r\n <ng-template #percentOnly>\r\n <strong>{{ progressPercent }}%</strong>\r\n </ng-template>\r\n\r\n <span *ngIf=\"currentStep && showCurrentStep\"> - {{ currentStep }}</span>\r\n \r\n </div>\r\n\r\n <div class=\"mt-1 text-center\" *ngIf=\"title\">\r\n <small>{{ title }}</small>\r\n </div>\r\n </ng-template>\r\n\r\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { logoutReasonEnum } from '../../enums';\r\nimport { AuthorizationService, IdentityPlatformAuthenticationService, IdentityManagerService, TsiNotificationService, TranslationService, AppSettingsService, ProceedLoginRequest } from '../../services';\r\nimport { LayoutService } from '../../services/application/app.layout.service';\r\nimport { AppRoutes } from '../../routes/app.routes';\r\n\r\n@Component({\r\n selector: 'Tsi-tenants',\r\n templateUrl: './tsi-tenants.component.html',\r\n styleUrls: ['./tsi-tenants.component.scss']\r\n})\r\nexport class TsiTenantsComponent implements OnInit {\r\n\r\n @Input() showTenants: boolean = false;\r\n @Input() isLoading: boolean = false;\r\n @Input() isLoginPage: boolean = false;\r\n @Input() userToken ?: string ;\r\n @Input() showAvancedButtons: boolean = true;\r\n\r\n @Output() cancelEvent = new EventEmitter<void>();\r\n\r\n private _loginModel: any;\r\n @Input()\r\n set loginModel(value: any) { this._loginModel = value; }\r\n get loginModel(): any { return this._loginModel; }\r\n\r\n @Input() tenants: { key: string, value: string }[] = [];\r\n\r\n @Input() applicationUid ?: string;\r\n\r\n selectedTenantUid: string | undefined;\r\n\r\n\r\n languagesInformations: any[] = []\r\n\r\n constructor(\r\n private _auth: AuthorizationService,\r\n private _identityAuthorisationService : IdentityPlatformAuthenticationService,\r\n public _identityManager: IdentityManagerService,\r\n private notifService: TsiNotificationService,\r\n private _router: Router,\r\n private translationService: TranslationService,\r\n private _appSettingsService: AppSettingsService,\r\n private _layoutService: LayoutService,\r\n ) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n \r\n this.tenants = this.tenants.sort((a, b) => a.value.localeCompare(b.value));\r\n\r\n let token = this._identityManager.parseMyAuthToken();\r\n this.selectedTenantUid = token ? token.tenantUid : undefined;\r\n }\r\n\r\n async onTenantChange(tenantUid: any) {\r\n\r\n let currentTenant = this.selectedTenantUid;\r\n this.selectedTenantUid = tenantUid;\r\n\r\n if (!this.isLoginPage && currentTenant !== this.selectedTenantUid) {\r\n this.isLoading = true;\r\n\r\n await this.logout();\r\n await this.proceedLoginAsync();\r\n\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 200);\r\n \r\n }\r\n }\r\n\r\n cancel() {\r\n this.showTenants = false;\r\n this.isLoading = false;\r\n\r\n this.cancelEvent.emit();\r\n }\r\n\r\n async proceedLoginAsync() {\r\n if (!this.selectedTenantUid) {\r\n this.notifService.error('AuthenticationFailure', 'Notification');\r\n return;\r\n }\r\n\r\n this.isLoading = true;\r\n \r\n try {\r\n let proceedLoginRequest : ProceedLoginRequest = new ProceedLoginRequest(this.selectedTenantUid);\r\n const result = await this._identityAuthorisationService.proceedLoginAsync(proceedLoginRequest, this.userToken);\r\n\r\n console.log(\"result => \",result);\r\n\r\n if (!result?.token) {\r\n throw new Error(\"Login response does not contain a valid token\");\r\n }\r\n\r\n this._identityManager.saveAuthToken(result.token);\r\n let parsedToken: any = this._identityManager.parseMyAuthToken();\r\n console.log(parsedToken);\r\n\r\n let languagesInformations = this.languagesInformations.find(x => x.languageCode === parsedToken.langue);\r\n this._identityManager.saveUserLanguage(parsedToken.langue);\r\n\r\n if (languagesInformations?.isRightToLeftMode) {\r\n this._layoutService.enableRtlMode();\r\n this._identityManager.saveRtlMode(\"true\");\r\n await this.translationService.loadLocalizationDS();\r\n }\r\n\r\n this.notifService.success('shared_Successfully_logged_in', 'Notification');\r\n await this._appSettingsService.loadAppSettings();\r\n this._router.navigate([`${AppRoutes.app}/${AppRoutes.home}`]);\r\n\r\n this.isLoading = false;\r\n\r\n } catch (error) {\r\n this.notifService.error('shared_Authentication_Failure', 'Notification');\r\n this.isLoading = false;\r\n } finally {\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n async logout(): Promise<void> {\r\n await firstValueFrom(this._identityAuthorisationService.logout(logoutReasonEnum.VOLONTARY))\r\n }\r\n\r\n}\r\n","<div class=\"flex flex-column gap-4\">\r\n <div *ngIf=\"showTenants\" class=\"w-full loginForm-input\">\r\n <label *ngIf=\"isLoginPage\" for=\"connectionString\" class=\"text-900 text-xl font-medium\">\r\n <Tsi-Label [labelValue]=\"'connectionString'\" class=\"tsi-text-color-default\"></Tsi-Label>\r\n </label>\r\n\r\n <div *ngIf=\"!isLoginPage\" class=\"flex align-items-center cursor-pointer tooltip-text\">\r\n <i class=\"pi pi-database\"></i>\r\n <span>{{ 'connectionString' | localize }}</span>\r\n </div>\r\n\r\n <Tsi-Search-Combo id=\"societe\" id-field=\"key\" label-field=\"value\" [datasource]=\"tenants\"\r\n (bindChange)=\"onTenantChange($event)\" [(bind)]=\"selectedTenantUid\" [showClear]=\"true\"\r\n [showAddButton]=\"showAvancedButtons\" [showSearchButton]=\"showAvancedButtons\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"showTenants && isLoginPage\" class=\"w-ful loginForm-submit flex gap-2\">\r\n\r\n <button pButton id=\"continueButton\" pRipple class=\"w-full p-3 text-xl btn\"\r\n [disabled]=\"!selectedTenantUid || isLoading\" type=\"button\" (click)=\"proceedLoginAsync()\"\r\n [ngClass]=\"{'button-loading' : isLoading }\">\r\n <div class=\"button-text\">\r\n <Tsi-Label [labelValue]=\"'Continuer'\"></Tsi-Label>\r\n </div>\r\n </button>\r\n\r\n <button pButton id=\"cancelButton\" pRipple class=\"w-full p-3 text-xl btn cancel-btn\" [disabled]=\"isLoading\"\r\n type=\"button\" (click)=\"cancel()\">\r\n <div class=\"button-text\">\r\n <Tsi-Label [labelValue]=\"'Cancel'\"></Tsi-Label>\r\n </div>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<app-spinner *ngIf=\"isLoading\" ></app-spinner>","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\nimport { TsiListBaseComponent } from '../../tsi-base/components/tsi-list-base/tsi-list-base.component';\r\nimport { GridColumn } from '../../interfaces/grid/grid-configuration';\r\nimport { ApiExplorerService } from '../../services/application/api-explorer.service';\r\nimport { ModalSizeEnum } from '../../enums/modal-size-enum';\r\n\r\n@Component({\r\n selector: 'app-modal',\r\n template: `\r\n\r\n\r\n <div class=\"modal-backdrop\" *ngIf=\"isOpen\" (click)=\"close()\">\r\n <div class=\"modal-content\" (click)=\"$event.stopPropagation()\">\r\n <div class=\"modal-header\">\r\n <h2>{{ title }}</h2>\r\n <button (click)=\"close()\">×</button>\r\n </div>\r\n <div class=\"modal-body\">\r\n \r\n <ng-content>\r\n </ng-content>\r\n\r\n <button (click)=\"loadData()\" [disabled]=\"isLoading\">Refresh Data</button>\r\n\r\n <tsi-view-grid class=\"col-12\" \r\n [columns]=\"columns\"\r\n [getDataFromApi]=\"false\"\r\n [gridData]=\"gridData\"\r\n [formName]=\"'deleteccpc'\"\r\n ></tsi-view-grid>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n styles: [`\r\n .modal-backdrop {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0,0,0,0.5);\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n z-index: 1000;\r\n }\r\n .modal-content {\r\n background: white;\r\n padding: 20px;\r\n border-radius: 5px;\r\n min-width: 300px;\r\n }\r\n .modal-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: 15px;\r\n }\r\n `]\r\n})\r\nexport class ModalComponent extends TsiListBaseComponent implements OnInit {\r\n\r\n @Input() isOpen = false;\r\n @Input() title = 'Delete Behavior (Parent/Child)';\r\n @Output() closed = new EventEmitter<void>();\r\n\r\n gridData: any;\r\n isLoading = false;\r\n error: string | null = null;\r\n\r\n override columns: Array<GridColumn> = [\r\n {\r\n header: \"Parent Entity\",\r\n field: \"parentEntity\",\r\n },\r\n {\r\n header: \"Child Entity\",\r\n field: \"childEntity\"\r\n },\r\n {\r\n header: \"Delete Behavior\",\r\n field: \"deleteBehavior\"\r\n }\r\n ];\r\n\r\n constructor(\r\n private _apiExplorerService: ApiExplorerService,\r\n public override config: DynamicDialogConfig,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n super();\r\n this.loadData();\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.isOpen) {\r\n this.loadData();\r\n }\r\n }\r\n\r\n loadData(): void {\r\n this.isLoading = true;\r\n this.error = null;\r\n\r\n this._apiExplorerService.getEntityRelations().subscribe({\r\n next: (v) => {\r\n this.gridData = v;\r\n this.isLoading = false;\r\n },\r\n error: (e) => {\r\n console.error(e);\r\n this.error = 'Failed to load data';\r\n this.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n\r\n this._apiExplorerService.getEntityRelations().subscribe({\r\n next: (v) => {\r\n this.gridData = v;\r\n this.cdr.detectChanges();\r\n },\r\n error: (e) => console.error(e),\r\n complete: () => console.info('complete')\r\n });\r\n\r\n this.modalSize = ModalSizeEnum.ExtraLarge;\r\n this.titleComponent = \"Delete Behavior (Parent/Child)\";\r\n }\r\n\r\n close() {\r\n this.isOpen = false;\r\n this.closed.emit();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\r\n// import { AuthorizationService } from '@services/authorization/authorization.service';\r\n// import { IdentityManagerService } from '@services/authorization/identity-manager.service';\r\n// import { AppRoutes } from 'app/app.routes';\r\nimport { Observable } from 'rxjs';\r\nimport { IdentityManagerService } from '../services/authorization/identity-manager.service';\r\nimport { AuthorizationService } from '../services/authorization/authorization.service';\r\nimport { Segment } from '../end-points';\r\nimport { IdentityRoutes } from '../routes/identity.routes';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AdminGuard {\r\n \r\n constructor(private _identityManagerService: IdentityManagerService, private _router: Router, private _authService: AuthorizationService,) {}\r\n\r\n\r\ncanActivate(route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot):| Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean| UrlTree {\r\n\r\n if (this._authService.isAuthenticated() === false) {\r\n window.location.href = `${Segment.identityPlatformUrlFront}/${IdentityRoutes.login}?logout=true`;\r\n return false;\r\n }\r\n else {\r\n\r\n const user = this._identityManagerService.parseMyAuthToken();\r\n if (user && user.isSaasAdmin === \"True\") {\r\n return true;\r\n }\r\n \r\n this._router.navigate(['/app/unauthorized']);\r\n return false;\r\n \r\n } \r\n }\r\n\r\n\r\n \r\n}","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\r\n// import { AuthorizationService } from '@services/authorization/authorization.service';\r\n// import { Segment } from '@services/endpoints/baseuri';\r\n// import { IdentityRoutes } from '@shared/routes/identity.routes';\r\nimport { Observable } from 'rxjs';\r\nimport { IdentityRoutes } from '../routes/identity.routes';\r\nimport { AuthorizationService } from '../services/authorization/authorization.service';\r\nimport { Segment } from '../end-points';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthenticationGuard {\r\n constructor(\r\n private _authService: AuthorizationService,\r\n private _router: Router\r\n ) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot):| Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean| UrlTree {\r\n if (this._authService.isAuthenticated() === false) {\r\n window.location.href = `${Segment.identityPlatformUrlFront}/${IdentityRoutes.login}?logout=true`;\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n\r\n }\r\n}\r\n","import { inject } from '@angular/core';\r\nimport { CanMatchFn, Router } from '@angular/router';\r\nimport { Segment } from '../end-points';\r\nimport { IdentityRoutes } from '../routes/identity.routes';\r\nimport { AuthorizationService, IdentityManagerService } from '../services';\r\nimport { LayoutService } from '../services/application/app.layout.service';\r\n\r\nexport const PermissionGuard: CanMatchFn = (route, segments) => {\r\n\r\n const authService = inject(AuthorizationService);\r\n const identityManagerService = inject(IdentityManagerService);\r\n const router = inject(Router);\r\n const layoutService = inject(LayoutService);\r\n\r\n layoutService.isLoading = true;\r\n if (\r\n route.data &&\r\n route.data['permission'] &&\r\n identityManagerService.isMyAuthTokenValid()\r\n ) {\r\n return authService.checkPermission(route.data['permission']).then(\r\n (result: boolean) => {\r\n layoutService.isLoading = false;\r\n if (result === false) {\r\n router.navigate(['/app/unauthorized']);\r\n }\r\n return result;\r\n },\r\n (reason: any) => {\r\n layoutService.isLoading = false;\r\n router.navigate(['/app/unauthorized']);\r\n return false;\r\n }\r\n );\r\n }\r\n\r\n layoutService.isLoading = false;\r\n window.location.href = `${Segment.identityPlatformUrlFront}/${IdentityRoutes.login}?logout=true`;\r\n return false;\r\n};\r\n","export const AdminRoutes = {\r\n ssoLogin: 'sso-login',\r\n admin: \"admin\",\r\n };","import { DialogService, DynamicDialogConfig, DynamicDialogRef } from \"primeng/dynamicdialog\";\r\nimport { TabView } from \"primeng/tabview\";\r\nimport { JwtHelperService, JWT_OPTIONS } from \"@auth0/angular-jwt\";\r\nimport { ConfirmationService, MessageService } from \"primeng/api\";\r\n\r\nexport const SharedUiTsiProviders = [\r\n { provide: JWT_OPTIONS, useValue: JWT_OPTIONS },\r\n JwtHelperService,\r\n // DialogService,\r\n TabView,\r\n DynamicDialogRef,\r\n MessageService,\r\n ConfirmationService,\r\n DynamicDialogConfig\r\n]","import { SharedComponentReferenceHelper, TypeRegistryHelper } from './tsi-helpers';\r\n\r\nexport function initSharedComponents() {\r\n for (const key in SharedComponentReferenceHelper.compoentsReferences) {\r\n TypeRegistryHelper.registerType(key, SharedComponentReferenceHelper.compoentsReferences[key])\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule, CurrencyPipe, registerLocaleData } from '@angular/common';\r\n//#region ng imports\r\n// import { NgSelectModule } from '@ng-select/ng-select';\r\n//#endregion\r\n\r\n//#region tsi imports\r\nimport { EditableGridComponent } from './tsi-components/input-components/editable-grid/editable-grid.component';\r\nimport { TsiCurrencyOtherDisplayComponent } from './tsi-components/output-components/tsi-currency-other-display/tsi-currency-other-display.component';\r\nimport { TsiCurrencySocieteDisplayComponent } from './tsi-components/output-components/tsi-currency-societe-display/tsi-currency-societe-display.component';\r\nimport { TsiDateDisplayComponent } from './tsi-components/output-components/tsi-date-display/tsi-date-display.component';\r\nimport { TsiDecimalDisplayComponent } from './tsi-components/output-components/tsi-decimal-display/tsi-decimal-display.component';\r\nimport { TsiIntegerDisplayComponent } from './tsi-components/output-components/tsi-integer-display/tsi-integer-display.component';\r\nimport { TsiLabelComponent } from './tsi-components/output-components/tsi-label/tsi-label.component';\r\nimport { TsiParagraphComponent } from './tsi-components/output-components/tsi-paragraph/tsi-paragraph.component';\r\nimport { TsiRateDisplayComponent } from './tsi-components/output-components/tsi-rate-display/tsi-rate-display.component';\r\nimport { TsiDatePickerComponent } from './tsi-components/input-components/tsi-date-picker/tsi-date-picker.component';\r\nimport { TsiDecimalInputComponent } from './tsi-components/input-components/tsi-decimal-input/tsi-decimal-input.component';\r\nimport { TsiIntegerComponent } from './tsi-components/input-components/tsi-integer/tsi-integer.component';\r\nimport { TsiRadioButtonComponent } from './tsi-components/input-components/tsi-radio-button/tsi-radio-button.component';\r\nimport { TsiRateInputComponent } from './tsi-components/input-components/tsi-rate-input/tsi-rate-input.component';\r\nimport { TsiTextAreaComponent } from './tsi-components/input-components/tsi-text-area/tsi-text-area.component';\r\nimport { TsiTextBoxComponent } from './tsi-components/input-components/tsi-text-box/tsi-text-box.component';\r\nimport { TsiCheckboxDisplayComponent } from './tsi-components/output-components/tsi-checkbox-display/tsi-checkbox-display.component';\r\nimport { TsiDecimalPipe } from './pipes/tsi-decimal.pipe';\r\nimport { TsiSearchComboComponent } from './tsi-components/input-components/tsi-search-combo/tsi-search-combo.component';\r\nimport { TsiCheckboxComponent } from './tsi-components/input-components/tsi-checkbox/tsi-checkbox.component';\r\nimport { TsiCurrencyOtherInputComponent } from './tsi-components/input-components/tsi-currency-other-input/tsi-currency-other-input.component';\r\nimport { TsiCurrencySocieteInputComponent } from './tsi-components/input-components/tsi-currency-societe-input/tsi-currency-societe-input.component';\r\n//#endregion\r\n\r\n//#region primeng imports\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { PasswordModule } from 'primeng/password';\r\nimport { TableModule } from 'primeng/table';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { LocalizePipe } from './pipes/localize.pipe';\r\nimport { ToolbarModule } from 'primeng/toolbar';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { ConfirmationService, PrimeNGConfig } from 'primeng/api';\r\nimport { InputNumberModule } from 'primeng/inputnumber';\r\nimport { CalendarModule, Calendar } from 'primeng/calendar';\r\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\r\nCalendar.prototype.getDateFormat = () => 'dd/mm/yy';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { AdDirective } from './tsi-directives/dynamic-component-loader/ad.directive';\r\nimport { ModalLoaderComponent } from './tsi-components/modal-loader/modal-loader.component';\r\nimport { TsiGenericCrudComponent } from './tsi-components/tsi-generic-crud/tsi-generic-crud.component';\r\nimport { TsiGenericGridComponent } from './tsi-components/output-components/tsi-generic-grid/tsi-generic-grid.component';\r\nimport { TsiModalComponent } from './tsi-components/tsi-modal/tsi-modal.component';\r\nimport { TsiModalFooterComponent } from './tsi-components/tsi-modal-footer/tsi-modal-footer.component';\r\nimport { TsiModalHeaderComponent } from './tsi-components/tsi-modal-header/tsi-modal-header.component';\r\nimport { TsiFormComponentBaseComponent } from './tsi-base/components/tsi-form-base/tsi-form-base.component';\r\nimport { ScrollPanelModule } from 'primeng/scrollpanel';\r\nimport { BusyDirective } from './tsi-directives/busy.directive';\r\nimport { TsiSubmitButtonComponent } from './tsi-components/button-components/Tsi-Submit-Button/tsi-submit-button.component';\r\nimport { TabView, TabViewModule } from 'primeng/tabview';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\nimport { ToastModule } from 'primeng/toast';\r\nimport { TsiErrorMessageComponent } from './tsi-components/message-components/tsi-error-message/tsi-error-message.component';\r\nimport { TsiSuccessMessageComponent } from './tsi-components/message-components/tsi-success-message/tsi-success-message.component';\r\nimport { TsiTabPanelComponent } from './tsi-components/tsi-tab-panel/tsi-tab-panel.component';\r\nimport { TsiTabViewComponent } from './tsi-components/tsi-tab-view/tsi-tab-view.component';\r\nimport { ModalLabelPipe } from './pipes/modal-label.pipe';\r\nimport { TsiDisplayGridComponent } from './tsi-components/output-components/tsi-display-grid/tsi-display-grid.component';\r\nimport { TsiLegendComponent } from './tsi-components/output-components/tsi-legend/tsi-legend.component';\r\nimport { TsiLabelLegendComponent } from './tsi-components/output-components/tsi-label-legend/tsi-label-legend.component';\r\nimport { TsiGenericFormComponent } from './tsi-components/tsi-generic-form/tsi-generic-form.component';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { FieldsetModule } from 'primeng/fieldset';\r\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { DisplayNestedPropComponent } from './tsi-components/output-components/display-nested-prop/display-nested-prop.component';\r\nimport { ToNumberPipe } from './pipes/to-number.pipe';\r\nimport { TsiButtonComponent } from './tsi-components/button-components/tsi-button/tsi-button.component';\r\nimport { TsiBaseComponent } from './tsi-base/components/tsi-base/tsi-base.component';\r\nimport { SpinnerComponent } from './tsi-components/spinner/spinner.component';\r\nimport { ReportingComponent } from './tsi-components/reporting/reporting.component';\r\nimport { TsiViewGridComponent } from './tsi-components/output-components/tsi-view-grid/tsi-view-grid.component';\r\nimport { TsiSearchBoxComponent } from './tsi-components/tsi-search-box/tsi-search-box.component';\r\nimport { TsiInfoMessageComponent } from './tsi-components/message-components/tsi-info-message/tsi-info-message.component';\r\nimport { ManageReportingComponent } from './tsi-components/manage-reporting/manage-reporting.component';\r\nimport { TsiFormComponent } from './tsi-components/tsi-form/tsi-form.component';\r\nimport { TsiTimePickerComponent } from './tsi-components/input-components/tsi-time-picker/tsi-time-picker.component';\r\nimport { ModuleMainParameterDirective } from './tsi-directives/module-main-parameter.directive';\r\nimport { TsiRedirectionMessageComponent } from './tsi-components/message-components/tsi-redirection-message/tsi-redirection-message.component';\r\nimport { ManageImportExportComponent } from './tsi-components/manage-import-export/manage-import-export.component';\r\nimport { CreateOrEditModeleImportComponent } from './tsi-components/create-or-edit-modele-import/create-or-edit-modele-import.component';\r\nimport { ValidationDirective } from './tsi-directives/validation.directive';\r\nimport { TsiUploadGridComponent } from './tsi-components/tsi-upload-grid/tsi-upload-grid.component';\r\nimport { TsiUploadFicheComponent } from './tsi-components/tsi-upload-fiche/tsi-upload-fiche.component';\r\nimport { CutLabelPipe } from './pipes/cut-label.pipe';\r\nimport { TsiBubbleInfoComponent } from './tsi-components/tsi-bubble-info/tsi-bubble-info.component';\r\nimport { TsiPopupTextViewerComponent } from './tsi-components/tsi-popup-text-viewer/tsi-popup-text-viewer.component';\r\nimport { AddReportPopupComponent } from './tsi-components/manage-reporting/add-report-popup/add-report-popup.component';\r\nimport { PanelModule } from 'primeng/panel';\r\nimport { TsiFileManagerComponent } from './tsi-components/input-components/tsi-file-manager/tsi-file-manager.component';\r\nimport localeArSa from '@angular/common/locales/ar-SA';\r\nimport localeFr from '@angular/common/locales/fr';\r\nimport { MenuModule } from 'primeng/menu';\r\nimport { AvatarModule } from 'primeng/avatar';\r\nimport { AvatarGroupModule } from 'primeng/avatargroup';\r\nimport { TsiCurrencyPipe } from './pipes/tsi-currency.pipe';\r\nimport { TsiCalenderComponent } from './tsi-components/tsi-calender/tsi-calender.component';\r\nimport { FullCalendarModule } from '@fullcalendar/angular';\r\nimport { ContextMenuComponent } from './tsi-components/tsi-calender/context-menu/context-menu.component';\r\nimport { TsiTooltipComponent } from './tsi-components/tsi-tooltip/tsi-tooltip.component';\r\nimport { TsiTimeDisplayComponent } from './tsi-components/output-components/tsi-time-display/tsi-time-display.component';\r\nimport { TsiSendMailComponent } from './tsi-components/tsi-send-mail/tsi-send-mail.component';\r\nimport { AlertImportMessageComponent } from './tsi-components/alert-import-message/alert-import-message.component';\r\nimport { TsiChangePasswordComponent } from './tsi-components/tsi-change-password/tsi-change-password.component';\r\nimport { AutoSelectDirective } from './tsi-directives/auto-select.directive';\r\nimport { TsiDividerComponent } from './tsi-components/tsi-divider/tsi-divider.component';\r\nimport { TsiTenantsComponent } from './tsi-components/tsi-tenants/tsi-tenants.component';\r\nimport { TsiCodeGeneratorComponent } from './tsi-components/tsi-code-generator/tsi-code-generator.component';\r\nimport { QRCodeModule } from 'angularx-qrcode';\r\nimport { DividerModule } from 'primeng/divider';\r\nimport { TsiFormulaBoxComponent } from './tsi-components/input-components/tsi-formula-box/tsi-formula-box.component';\r\nimport { TsiCardComponent } from './tsi-components/tsi-card/tsi-card.component';\r\nimport { CardModule } from 'primeng/card';\r\nimport { TsiCardListComponent } from './tsi-components/tsi-card-list/tsi-card-list.component';\r\nimport { PaginatorModule } from 'primeng/paginator';\r\nimport { TsiNotesComponent } from './tsi-components/tsi-notes-createoredit/tsi-notes.component';\r\nimport { TsiNotesGridComponent } from './tsi-components/tsi-notes-grid/tsi-notes-grid.component';\r\nimport { TsiNotesAvertirComponent } from './tsi-components/tsi-notes-avertir/tsi-notes-avertir.component';\r\n\r\nimport { TsiImageDisplayComponent } from './tsi-components/output-components/tsi-image-display/tsi-image-display.component';\r\nimport { ImageModule } from 'primeng/image';\r\nimport { TsiLogEventHistoryComponent } from './tsi-components/tsi-log-event-history/tsi-log-event-history.component';\r\nimport { TreeTableModule } from 'primeng/treetable';\r\nimport { TsiFormModalFooterComponent } from './tsi-components/tsi-form-modal-footer/tsi-form-modal-footer.component';\r\nimport { ProgressBarModule } from 'primeng/progressbar';\r\nimport { TsiProgressBarComponent } from './tsi-components/tsi-progress-bar/tsi-progress-bar.component';\r\nimport { TsiKanbanComponent } from './tsi-components/tsi-kanban/tsi-kanban.component';\r\nimport { DragDropModule } from 'primeng/dragdrop';\r\nimport { SplitButtonModule } from 'primeng/splitbutton';\r\nimport { locals } from './consts/locals.const';\r\nimport { LogoutPopupComponent } from './tsi-components/logout-popup/logout-popup.component';\r\nimport { CreateOrEditEntityInformationsComponent } from './tsi-components/create-or-edit-entity-informations/create-or-edit-entity-informations.component';\r\nimport { PresentationDesignerDirective } from './tsi-directives/presentation-designer.directive';\r\nimport { PresentationDesignerDirectiveBase } from './tsi-directives';\r\nimport { ModalComponent } from './tsi-components/modal-component/modal.component';\r\nimport { DialogService, DynamicDialogModule } from 'primeng/dynamicdialog';\r\n\r\n\r\n\r\n//#endregion\r\nconst _primengModules = [\r\n ButtonModule,\r\n AvatarGroupModule,\r\n CheckboxModule,\r\n AvatarModule,\r\n InputTextModule,\r\n PasswordModule,\r\n TableModule,\r\n TreeTableModule,\r\n ToolbarModule,\r\n MenuModule,\r\n DialogModule,\r\n ConfirmDialogModule,\r\n InputNumberModule,\r\n CalendarModule,\r\n RadioButtonModule,\r\n ScrollPanelModule,\r\n ConfirmDialogModule,\r\n TabViewModule,\r\n InputTextareaModule,\r\n ToastModule,\r\n DropdownModule,\r\n TooltipModule,\r\n FieldsetModule,\r\n ProgressSpinnerModule,\r\n FileUploadModule,\r\n MultiSelectModule,\r\n OverlayPanelModule,\r\n PanelModule,\r\n FullCalendarModule,\r\n DividerModule,\r\n CardModule,\r\n PaginatorModule,\r\n ImageModule,\r\n ProgressBarModule,\r\n DragDropModule,\r\n SplitButtonModule,\r\n DynamicDialogModule\r\n];\r\n\r\n// const _ngModules=[\r\n// NgSelectModule,\r\n// ];\r\n\r\nconst _tsiOutputComponents = [\r\n TsiCheckboxDisplayComponent,\r\n TsiCurrencyOtherDisplayComponent,\r\n TsiCurrencySocieteDisplayComponent,\r\n TsiDateDisplayComponent,\r\n TsiDecimalDisplayComponent,\r\n TsiIntegerDisplayComponent,\r\n TsiLabelComponent,\r\n TsiParagraphComponent,\r\n TsiRateDisplayComponent,\r\n TsiDisplayGridComponent,\r\n TsiLegendComponent,\r\n TsiLabelLegendComponent,\r\n TsiViewGridComponent,\r\n TsiBubbleInfoComponent,\r\n TsiProgressBarComponent,\r\n];\r\n\r\nconst _tsiInputComponents = [\r\n EditableGridComponent,\r\n TsiSearchComboComponent,\r\n TsiCheckboxComponent,\r\n TsiCurrencyOtherInputComponent,\r\n TsiCurrencySocieteInputComponent,\r\n TsiDatePickerComponent,\r\n TsiDecimalInputComponent,\r\n TsiIntegerComponent,\r\n TsiRadioButtonComponent,\r\n TsiRateInputComponent,\r\n TsiTextAreaComponent,\r\n TsiTextBoxComponent,\r\n TsiFormulaBoxComponent,\r\n TsiTimePickerComponent,\r\n TsiPopupTextViewerComponent,\r\n TsiLogEventHistoryComponent,\r\n TsiFileManagerComponent\r\n];\r\n\r\nconst _tsiComponents = [\r\n ..._tsiInputComponents,\r\n ..._tsiOutputComponents,\r\n ModalComponent,\r\n ModalLoaderComponent,\r\n TsiGenericCrudComponent,\r\n TsiGenericGridComponent,\r\n TsiModalComponent,\r\n TsiModalFooterComponent,\r\n TsiModalHeaderComponent,\r\n /** */\r\n TsiSubmitButtonComponent,\r\n\r\n TsiFormComponentBaseComponent,\r\n TsiErrorMessageComponent,\r\n TsiButtonComponent, // here\r\n TsiSuccessMessageComponent,\r\n TsiTabPanelComponent,\r\n TsiTabViewComponent,\r\n TsiGenericFormComponent,\r\n ReportingComponent,\r\n TsiSearchBoxComponent,\r\n ManageReportingComponent,\r\n TsiFormComponent,\r\n TsiRedirectionMessageComponent,\r\n TsiDividerComponent,\r\n TsiTenantsComponent,\r\n TsiCodeGeneratorComponent,\r\n TsiCardComponent,\r\n TsiCardListComponent,\r\n TsiCodeGeneratorComponent,\r\n TsiImageDisplayComponent,\r\n TsiFormModalFooterComponent,\r\n TsiKanbanComponent,\r\n LogoutPopupComponent,\r\n CreateOrEditEntityInformationsComponent,\r\n TsiCalenderComponent,\r\n ContextMenuComponent,\r\n TsiTooltipComponent,\r\n TsiTimeDisplayComponent,\r\n TsiSendMailComponent,\r\n AlertImportMessageComponent,\r\n TsiChangePasswordComponent,\r\n TsiCodeGeneratorComponent,\r\n TsiNotesComponent,\r\n TsiNotesGridComponent,\r\n TsiNotesAvertirComponent,\r\n TsiBaseComponent,\r\n SpinnerComponent,\r\n TsiInfoMessageComponent,\r\n ManageImportExportComponent,\r\n CreateOrEditModeleImportComponent,\r\n TsiUploadGridComponent,\r\n TsiUploadFicheComponent,\r\n TsiBubbleInfoComponent,\r\n AddReportPopupComponent,\r\n];\r\n\r\nconst _tsiPipes = [\r\n LocalizePipe,\r\n TsiDecimalPipe,\r\n ModalLabelPipe,\r\n CutLabelPipe\r\n];\r\n\r\nconst _tsiDirectives = [\r\n AdDirective,\r\n BusyDirective,\r\n ModuleMainParameterDirective,\r\n ValidationDirective,\r\n PresentationDesignerDirective,\r\n PresentationDesignerDirectiveBase,\r\n AutoSelectDirective\r\n];\r\n\r\nconst _devExtremeModules = [\r\n\r\n];\r\n\r\nregisterLocaleData(localeArSa, locals.arabicLocal);\r\nregisterLocaleData(localeFr, locals.frenchLocal)\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n ..._tsiPipes,\r\n ..._tsiComponents,\r\n ..._tsiDirectives,\r\n DisplayNestedPropComponent,\r\n ToNumberPipe,\r\n ValidationDirective,\r\n TsiCurrencyPipe,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CurrencyPipe,\r\n QRCodeModule,\r\n ..._primengModules,\r\n ],\r\n exports: [\r\n QRCodeModule,\r\n ..._tsiPipes, ..._primengModules, ..._tsiComponents, ..._tsiDirectives\r\n //, ..._devExtremeModules\r\n ],\r\n providers: [\r\n DialogService\r\n ]\r\n})\r\nexport class SharedModule {\r\n constructor(primengConfig: PrimeNGConfig) {\r\n primengConfig.zIndex = {\r\n modal: 1100,\r\n overlay: 1200,\r\n menu: 1300,\r\n tooltip: 1400\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of tsi-shared-ui\r\n */\r\n\r\nexport * from './lib/pipes';\r\nexport * from './lib/tsi-directives';\r\nexport * from './lib/models';\r\nexport * from './lib/tsi-components';\r\nexport * from './lib/tsi-base';\r\nexport * from './lib/services';\r\nexport * from './lib/guards';\r\nexport * from './lib/enums';\r\nexport * from './lib/types';\r\nexport * from './lib/interfaces';\r\nexport * from './lib/tsi-helpers';\r\nexport * from './lib/end-points';\r\nexport * from './lib/consts'\r\nexport * from './lib/routes'\r\nexport * from './lib/providers'\r\nexport * from './lib/package-initializer'\r\n\r\nexport * from './lib/shared.module'\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TranslationService","i1.LocalizePipe","i1","i1.EntityValidationsService","i2","i3","i4","i1.LayoutHelperService","i2.WorkflowConfigurationService","i3.PresentationDesignerBaseService","i4.LocalizePipe","i3.TsiButtonComponent","i5.TsiButtonComponent","i6.LocalizePipe","i1.TsiModalService","i2.LocalizePipe","i3.TsiMessageService","i3.LocalizePipe","i1.EntityConfigurationService","i2.TsiModalService","i3.TsiNotificationService","i5","i6","i7","i8","i10.TsiBubbleInfoComponent","i11.TsiButtonComponent","i4.TsiBubbleInfoComponent","i5.AutoSelectDirective","i1.ParametresApplicationParambaseService","i1.AppSettingsService","i5.TsiBubbleInfoComponent","i6.AutoSelectDirective","i1.IdentityManagerService","i2.DateHelperService","i4.LayoutService","i7.TsiBubbleInfoComponent","i3.TsiBubbleInfoComponent","i4.AutoSelectDirective","i8.TsiBubbleInfoComponent","i9.AutoSelectDirective","i1.FormulaService","i1.DateHelperService","i2.TsiDecimalPipe","i2.LayoutService","i3.AppSettingsService","i4.TsiCurrencyPipe","i8.TsiSearchComboComponent","i9.TsiCheckboxComponent","i10.TsiCurrencyOtherInputComponent","i11.TsiCurrencySocieteInputComponent","i12.TsiDatePickerComponent","i13.TsiDecimalInputComponent","i14.TsiIntegerComponent","i15.TsiRateInputComponent","i16.TsiTextBoxComponent","i17.TsiFormulaBoxComponent","i18.TsiTimePickerComponent","i19.TsiCheckboxDisplayComponent","i20.TsiCurrencyOtherDisplayComponent","i21.TsiCurrencySocieteDisplayComponent","i22.TsiDateDisplayComponent","i23.TsiDecimalDisplayComponent","i24.TsiIntegerDisplayComponent","i25.TsiRateDisplayComponent","i26.TsiBubbleInfoComponent","i27.TsiButtonComponent","i28.TsiTimeDisplayComponent","i1.TsiMessageService","i1.TsiBubbleInfoComponent","i1.EntityStatusService","i5.TsiSearchComboComponent","i6.TsiCheckboxComponent","i7.TsiCurrencyOtherInputComponent","i8.TsiCurrencySocieteInputComponent","i9.TsiDatePickerComponent","i10.TsiDecimalInputComponent","i11.TsiIntegerComponent","i12.TsiRadioButtonComponent","i13.TsiRateInputComponent","i14.TsiTextBoxComponent","i15.TsiLabelComponent","i16.TsiButtonComponent","i17.PresentationDesignerDirectiveBase","i18.LocalizePipe","i4.TsiButtonComponent","i3.TsiCardComponent","i4.SpinnerComponent","i5.LocalizePipe","i3.EntityStatusService","i4.TsiNotificationService","i7.SpinnerComponent","i2.TsiLabelComponent","i1.TsiNotificationService","i7.ContextMenuComponent","i1.HtmlTemplateGeneratorService","i5.LayoutHelperService","i6.LayoutService","i8.AppSettingsService","i9.ErrorResponseManagerService","i10","i11","i12","i13","i14","i15.TsiCheckboxDisplayComponent","i16.TsiCurrencyOtherDisplayComponent","i17.TsiCurrencySocieteDisplayComponent","i18.TsiDateDisplayComponent","i19.TsiDecimalDisplayComponent","i20.TsiIntegerDisplayComponent","i21.TsiRateDisplayComponent","i22.TsiButtonComponent","i23.TsiSearchBoxComponent","i24.TsiCardListComponent","i25.TsiImageDisplayComponent","i26.TsiKanbanComponent","i27.TsiCalenderComponent","i28.PresentationDesignerDirectiveBase","i29.DisplayNestedPropComponent","i1.ReportingService","i2.IdentityManagerService","i4.TsiMessageService","i5.RecordInfoPopupService","i6.LayoutHelperService","i7.FichierService","i9.TsiButtonComponent","i10.PresentationDesignerDirectiveBase","i6.TsiGenericGridComponent","i7.TsiButtonComponent","i8.ReportingComponent","i9.LocalizePipe","i1.JournalisationApplicationService","i7.TsiDatePickerComponent","i8.TsiTextBoxComponent","i9.TsiCheckboxDisplayComponent","i10.TsiLabelComponent","i11.LocalizePipe","i3.DialogDataService","i4.JournalisationApplicationService","i5.StatusHistoryService","i8.TsiViewGridComponent","i9","i10.LocalizePipe","i2.DialogDataService","i4.DialogDataService","i5.FichierUploadService","i6.RecordInfoPopupService","i7.WorkflowConfigurationService","i8.EntityConfigurationService","i9.NoteService","i14.TsiGenericGridComponent","i15.TsiButtonComponent","i16.ReportingComponent","i3.PresentationDesignerService","i4.TsiGenericCrudComponent","i5.TsiViewGridComponent","i7.EditableGridComponent","i3.IdentityPlatformAuthenticationService","i4.IdentityManagerService","i5.ModuleCodeService","i1.LayoutService","i2.TsiConfirmationService","i4.LayoutHelperService","i5.WorkflowConfigurationService","i11.TsiSearchComboComponent","i12.TsiTextBoxComponent","i13.TsiLabelComponent","i14.ReportingComponent","i15.BusyDirective","i16.PresentationDesignerDirective","i17.LocalizePipe","i1.DialogDataService","i1.NoteService","i1.ErrorResponseManagerService","i1.TsiConfirmationService","i3.TsiCheckboxComponent","i4.TsiTextAreaComponent","i5.TsiTextBoxComponent","i6.TsiLabelComponent","i7.TsiModalFooterComponent","i8.TsiModalHeaderComponent","i9.TsiFormComponent","i10.PresentationDesignerDirective","i1.ModeleImportService","i4.EditableGridComponent","i7.TsiIntegerComponent","i9.TsiLabelComponent","i10.TsiModalFooterComponent","i11.TsiModalHeaderComponent","i12.TsiFormComponent","i13.ModalLabelPipe","i10.TsiViewGridComponent","i12.BusyDirective","i13.LocalizePipe","i2.ReportingService","i4.DashboardModuleService","i5.TsiConfirmationService","i9.TsiSearchComboComponent","i10.TsiCheckboxComponent","i12.TsiTextAreaComponent","i13.TsiTextBoxComponent","i14.TsiLabelComponent","i15.TsiModalFooterComponent","i12.TsiLabelComponent","i13.TsiViewGridComponent","i14.TsiButtonComponent","i16.LocalizePipe","i1.TsiBsModalService","i5.AdDirective","i8.TsiFormComponent","i6.TsiSearchComboComponent","i7.TsiCheckboxComponent","i8.TsiCurrencyOtherInputComponent","i9.TsiCurrencySocieteInputComponent","i10.TsiDatePickerComponent","i11.TsiDecimalInputComponent","i12.TsiIntegerComponent","i16.TsiParagraphComponent","i17.TsiModalFooterComponent","i18.TsiModalHeaderComponent","i19.BusyDirective","i20.LocalizePipe","i21.ModalLabelPipe","i3.TsiTextBoxComponent","i4.TsiLabelComponent","i5.TsiModalFooterComponent","i6.TsiFormComponent","i2.TsiNotificationService","i1.FichierService","i2.ErrorResponseManagerService","i4.TsiCheckboxComponent","i5.TsiDatePickerComponent","i6.TsiTextAreaComponent","i7.TsiTextBoxComponent","i8.TsiFileManagerComponent","i1.FichierUploadService","i2.TsiGenericCrudComponent","i7.TsiCheckboxDisplayComponent","i8.TsiCurrencyOtherDisplayComponent","i9.TsiCurrencySocieteDisplayComponent","i10.TsiDateDisplayComponent","i11.TsiDecimalDisplayComponent","i12.TsiIntegerDisplayComponent","i13.TsiRateDisplayComponent","i14.LocalizePipe","i1.ApiExplorerService","i6.EditableGridComponent","i7.TsiSearchComboComponent","i8.TsiCheckboxComponent","i9.TsiTextBoxComponent","i11.TsiViewGridComponent","i12.TsiModalFooterComponent","i13.TsiModalHeaderComponent","i14.TsiFormComponent","i15.LocalizePipe","i16.ModalLabelPipe","i3.PresentationDesignerDirective","i1.ProgressBarService","i1.AuthorizationService","i1.IdentityPlatformAuthenticationService","i3.LayoutService","i7.TsiLabelComponent","i8.SpinnerComponent","i4.TsiViewGridComponent","i3.AuthorizationService"],"mappings":"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"}