@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,170 @@
1
+ import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
2
+ import { ProgressBarResponse } from '../../models';
3
+ import { Guid } from '../../tsi-helpers';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../services/progress-bar/progress-bar.service";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "primeng/api";
8
+ import * as i4 from "primeng/toast";
9
+ import * as i5 from "primeng/progressbar";
10
+ export class TsiProgressBarComponent {
11
+ constructor(progressBarService) {
12
+ this.progressBarService = progressBarService;
13
+ this.showBar = true;
14
+ this.showValue = true;
15
+ this.color = '#007ad9'; // #007ad9 #d90019ff
16
+ this.showCurrentStep = true;
17
+ this.completed = new EventEmitter();
18
+ this.showBarChange = new EventEmitter();
19
+ this.progressPercent = 0;
20
+ this.warningMessage = null;
21
+ this.progressBar = new ProgressBarResponse();
22
+ this.hasEmitted = false;
23
+ this.isPolling = false;
24
+ }
25
+ ngOnChanges(changes) {
26
+ if (changes['processName'] || changes['showBar']) {
27
+ if (this.showBar && this.processName) {
28
+ //this.reset();
29
+ //this.loadProgress(this.processName);
30
+ this.startPolling(this.processName);
31
+ }
32
+ else {
33
+ this.stopPolling();
34
+ this.reset();
35
+ }
36
+ }
37
+ /*if (changes['progressBar']) {
38
+ this.updateProgress();
39
+ }*/
40
+ }
41
+ loadProgress(processName) {
42
+ this.progressBarService.getByProcessName(processName).subscribe({
43
+ next: (progress) => {
44
+ this.progressBar = progress;
45
+ this.title = progress.title;
46
+ this.currentStep = progress.currentStep;
47
+ this.maxLevel = progress.maxLevel;
48
+ this.progressLevel = progress.progressLevel;
49
+ this.unit = progress.unit;
50
+ this.updateProgress();
51
+ },
52
+ error: (err) => {
53
+ console.error(`Erreur lors du chargement du processus ${processName}`, err);
54
+ }
55
+ });
56
+ }
57
+ startPolling(processName) {
58
+ if (this.isPolling)
59
+ return;
60
+ this.isPolling = true;
61
+ this.intervalPollId = setInterval(() => {
62
+ this.progressBarService.getByProcessName(processName).subscribe({
63
+ next: (progress) => {
64
+ if (progress.uid != null && progress.uid != Guid.empty) {
65
+ this.progressBar = progress;
66
+ const progressLevelChanged = this.progressLevel !== progress.progressLevel;
67
+ const maxLevelChanged = this.maxLevel !== progress.maxLevel;
68
+ this.title = progress.title;
69
+ this.currentStep = progress.currentStep;
70
+ this.maxLevel = progress.maxLevel;
71
+ this.progressLevel = progress.progressLevel;
72
+ this.unit = progress.unit;
73
+ if (progressLevelChanged || maxLevelChanged) {
74
+ this.updateProgress();
75
+ }
76
+ }
77
+ if (this.progressBar.progressLevel >= this.progressBar.maxLevel) {
78
+ this.completed.emit(this.progressPercent);
79
+ this.hasEmitted = true;
80
+ this.onProgressCompleted();
81
+ }
82
+ },
83
+ error: (err) => {
84
+ console.error('Polling error', err);
85
+ this.stopPolling();
86
+ }
87
+ });
88
+ }, 2000);
89
+ }
90
+ updateProgress() {
91
+ if (this.progressBar.progressLevel != null && this.progressBar.maxLevel && this.progressBar.maxLevel > 0) {
92
+ if (this.progressBar.progressLevel > this.progressBar.maxLevel) {
93
+ this.warningMessage = `La valeur ${this.progressBar.progressLevel} dépasse la limite maximale de ${this.progressBar.maxLevel}.`;
94
+ return;
95
+ }
96
+ this.warningMessage = null;
97
+ this.progressPercent = Math.round((this.progressBar.progressLevel / this.progressBar.maxLevel) * 100);
98
+ /*if (this.progressBar.progressLevel >= this.progressBar.maxLevel && !this.hasEmitted) {
99
+ this.completed.emit(this.progressPercent);
100
+ this.hasEmitted = true;
101
+ }*/
102
+ }
103
+ else {
104
+ this.warningMessage = null;
105
+ this.progressPercent = 0;
106
+ }
107
+ }
108
+ hideBar() {
109
+ this.showBar = false;
110
+ this.showBarChange.emit(this.showBar);
111
+ }
112
+ onProgressCompleted() {
113
+ this.stopPolling();
114
+ //const message = this.progressBar.title ? `${this.progressBar.title} terminé` : 'Processus terminé';
115
+ //this.tsiMessageService.infoMessage(message);
116
+ if (this.hideTimeoutId) {
117
+ clearTimeout(this.hideTimeoutId);
118
+ }
119
+ this.hideTimeoutId = setTimeout(() => {
120
+ this.hideBar();
121
+ this.reset();
122
+ }, 10000);
123
+ }
124
+ stopPolling() {
125
+ if (this.intervalPollId) {
126
+ clearInterval(this.intervalPollId);
127
+ this.intervalPollId = undefined;
128
+ }
129
+ this.isPolling = false;
130
+ }
131
+ reset() {
132
+ this.progressBar = new ProgressBarResponse();
133
+ this.currentStep = this.progressBar.currentStep;
134
+ this.title = this.progressBar.title;
135
+ this.maxLevel = this.progressBar.maxLevel;
136
+ this.progressLevel = this.progressBar.progressLevel;
137
+ this.progressPercent = 0;
138
+ this.warningMessage = null;
139
+ this.hasEmitted = false;
140
+ }
141
+ ngOnDestroy() {
142
+ //alert("ng OnDestroy");
143
+ this.stopPolling();
144
+ if (this.hideTimeoutId)
145
+ clearTimeout(this.hideTimeoutId);
146
+ }
147
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiProgressBarComponent, deps: [{ token: i1.ProgressBarService }], target: i0.ɵɵFactoryTarget.Component }); }
148
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiProgressBarComponent, selector: "tsi-progress-bar", inputs: { showBar: "showBar", processName: "processName", showValue: "showValue", color: "color", showCurrentStep: "showCurrentStep", unit: "unit" }, outputs: { completed: "completed", showBarChange: "showBarChange" }, usesOnChanges: true, ngImport: i0, template: "<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>\u26A0\uFE0F {{ 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>", styles: ["::ng-deep .custom-progress-bar .p-progressbar{height:30px!important}::ng-deep .custom-progress-bar .p-progressbar-value{font-size:14px;line-height:30px}::ng-deep .custom-progress-bar .p-progressbar-value{background-color:#007ad9}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "component", type: i5.ProgressBar, selector: "p-progressBar", inputs: ["value", "showValue", "styleClass", "style", "unit", "mode", "color"] }], encapsulation: i0.ViewEncapsulation.None }); }
149
+ }
150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiProgressBarComponent, decorators: [{
151
+ type: Component,
152
+ args: [{ selector: 'tsi-progress-bar', standalone: false, encapsulation: ViewEncapsulation.None, template: "<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>\u26A0\uFE0F {{ 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>", styles: ["::ng-deep .custom-progress-bar .p-progressbar{height:30px!important}::ng-deep .custom-progress-bar .p-progressbar-value{font-size:14px;line-height:30px}::ng-deep .custom-progress-bar .p-progressbar-value{background-color:#007ad9}\n"] }]
153
+ }], ctorParameters: () => [{ type: i1.ProgressBarService }], propDecorators: { showBar: [{
154
+ type: Input
155
+ }], processName: [{
156
+ type: Input
157
+ }], showValue: [{
158
+ type: Input
159
+ }], color: [{
160
+ type: Input
161
+ }], showCurrentStep: [{
162
+ type: Input
163
+ }], unit: [{
164
+ type: Input
165
+ }], completed: [{
166
+ type: Output
167
+ }], showBarChange: [{
168
+ type: Output
169
+ }] } });
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLXByb2dyZXNzLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90c2ktc2hhcmVkLXVpL3NyYy9saWIvdHNpLWNvbXBvbmVudHMvdHNpLXByb2dyZXNzLWJhci90c2ktcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy90c2ktcHJvZ3Jlc3MtYmFyL3RzaS1wcm9ncmVzcy1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUF3QixNQUFNLEVBQWlCLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVuRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7QUFRekMsTUFBTSxPQUFPLHVCQUF1QjtJQTZCbEMsWUFDVSxrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQTVCdkMsWUFBTyxHQUFZLElBQUksQ0FBQztRQUd4QixjQUFTLEdBQVksSUFBSSxDQUFDO1FBQzFCLFVBQUssR0FBVyxTQUFTLENBQUMsQ0FBQyxvQkFBb0I7UUFDL0Msb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFHL0IsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFHdkMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBTXRELG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLG1CQUFjLEdBQWtCLElBQUksQ0FBQztRQUVyQyxnQkFBVyxHQUF3QixJQUFJLG1CQUFtQixFQUFFLENBQUM7UUFFckQsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixj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QUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFBO1FBQ3pDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUE7UUFDbkQsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVc7UUFDVCx3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksSUFBSSxDQUFDLGFBQWE7WUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNELENBQUM7K0dBakxVLHVCQUF1QjttR0FBdkIsdUJBQXVCLHdTQ1hwQyw2ckNBb0NNOzs0RkR6Qk8sdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNFLGtCQUFrQixjQUNoQixLQUFLLGlCQUdGLGlCQUFpQixDQUFDLElBQUk7dUZBSTVCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVJLFNBQVM7c0JBQWxCLE1BQU07Z0JBR0csYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUHJvZ3Jlc3NCYXJSZXNwb25zZSB9IGZyb20gJy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IFByb2dyZXNzQmFyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEd1aWQgfSBmcm9tICcuLi8uLi90c2ktaGVscGVycyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHNpLXByb2dyZXNzLWJhcicsXHJcbiAgc3RhbmRhbG9uZTogZmFsc2UsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RzaS1wcm9ncmVzcy1iYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi90c2ktcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5zY3NzJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHNpUHJvZ3Jlc3NCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBJbnB1dCgpIHNob3dCYXI6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHByb2Nlc3NOYW1lITogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICBASW5wdXQoKSBzaG93VmFsdWU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGNvbG9yOiBzdHJpbmcgPSAnIzAwN2FkOSc7IC8vICMwMDdhZDkgI2Q5MDAxOWZmXHJcbiAgQElucHV0KCkgc2hvd0N1cnJlbnRTdGVwOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSB1bml0OiBzdHJpbmcgfCB1bmRlZmluZWQ7IC8vIGJ5ICBkZWZhdWx0XHJcblxyXG4gIEBPdXRwdXQoKSBjb21wbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcbiAgXHJcbiAgQE91dHB1dCgpIHNob3dCYXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGN1cnJlbnRTdGVwPzogc3RyaW5nO1xyXG4gIHByb2dyZXNzTGV2ZWw/OiBudW1iZXI7XHJcbiAgbWF4TGV2ZWw/OiBudW1iZXI7XHJcbiAgcHJvZ3Jlc3NQZXJjZW50ID0gMDtcclxuICB3YXJuaW5nTWVzc2FnZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgXHJcbiAgcHJvZ3Jlc3NCYXI6IFByb2dyZXNzQmFyUmVzcG9uc2UgPSBuZXcgUHJvZ3Jlc3NCYXJSZXNwb25zZSgpO1xyXG4gIFxyXG4gIHByaXZhdGUgaGFzRW1pdHRlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgaXNQb2xsaW5nID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBpbnRlcnZhbFBvbGxJZD86IGFueTtcclxuICBwcml2YXRlIGhpZGVUaW1lb3V0SWQ/OiBhbnk7XHJcbiAgXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHByb2dyZXNzQmFyU2VydmljZTogUHJvZ3Jlc3NCYXJTZXJ2aWNlXHJcbiAgKSB7fVxyXG4gIFxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuXHJcbiAgaWYgKGNoYW5nZXNbJ3Byb2Nlc3NOYW1lJ10gfHwgY2hhbmdlc1snc2hvd0JhciddKSB7XHJcbiAgICAgIGlmICh0aGlzLnNob3dCYXIgJiYgdGhpcy5wcm9jZXNzTmFtZSkge1xyXG4gICAgICAgIC8vdGhpcy5yZXNldCgpO1xyXG4gICAgICAgIC8vdGhpcy5sb2FkUHJvZ3Jlc3ModGhpcy5wcm9jZXNzTmFtZSk7XHJcbiAgICAgICAgdGhpcy5zdGFydFBvbGxpbmcodGhpcy5wcm9jZXNzTmFtZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zdG9wUG9sbGluZygpO1xyXG4gICAgICAgIHRoaXMucmVzZXQoKTtcclxuICAgICAgfVxyXG4gIH1cclxuXHJcbiAgLyppZiAoY2hhbmdlc1sncHJvZ3Jlc3NCYXInXSkge1xyXG4gICAgICB0aGlzLnVwZGF0ZVByb2dyZXNzKCk7XHJcbiAgfSovXHJcblxyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgbG9hZFByb2dyZXNzKHByb2Nlc3NOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMucHJvZ3Jlc3NCYXJTZXJ2aWNlLmdldEJ5UHJvY2Vzc05hbWUocHJvY2Vzc05hbWUpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChwcm9ncmVzcykgPT4ge1xyXG4gICAgICAgIHRoaXMucHJvZ3Jlc3NCYXIgPSBwcm9ncmVzcztcclxuXHJcbiAgICAgICAgdGhpcy50aXRsZSA9ICBwcm9ncmVzcy50aXRsZTtcclxuICAgICAgICB0aGlzLmN1cnJlbnRTdGVwID0gIHByb2dyZXNzLmN1cnJlbnRTdGVwO1xyXG4gICAgICAgIHRoaXMubWF4TGV2ZWwgPSAgcHJvZ3Jlc3MubWF4TGV2ZWw7XHJcbiAgICAgICAgdGhpcy5wcm9ncmVzc0xldmVsID0gIHByb2dyZXNzLnByb2dyZXNzTGV2ZWw7XHJcbiAgICAgICAgdGhpcy51bml0ID0gIHByb2dyZXNzLnVuaXQ7XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy51cGRhdGVQcm9ncmVzcygpO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEVycmV1ciBsb3JzIGR1IGNoYXJnZW1lbnQgZHUgcHJvY2Vzc3VzICR7cHJvY2Vzc05hbWV9YCwgZXJyKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXJ0UG9sbGluZyhwcm9jZXNzTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc1BvbGxpbmcpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmlzUG9sbGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmludGVydmFsUG9sbElkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICB0aGlzLnByb2dyZXNzQmFyU2VydmljZS5nZXRCeVByb2Nlc3NOYW1lKHByb2Nlc3NOYW1lKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChwcm9ncmVzcykgPT4ge1xyXG4gICAgICAgICAgaWYgKHByb2dyZXNzLnVpZCAhPSBudWxsICYmIHByb2dyZXNzLnVpZCAhPSBHdWlkLmVtcHR5KSB7XHJcbiAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3NCYXIgPSBwcm9ncmVzcztcclxuICBcclxuICAgICAgICAgICAgY29uc3QgcHJvZ3Jlc3NMZXZlbENoYW5nZWQgPSB0aGlzLnByb2dyZXNzTGV2ZWwgIT09IHByb2dyZXNzLnByb2dyZXNzTGV2ZWw7XHJcbiAgICAgICAgICAgIGNvbnN0IG1heExldmVsQ2hhbmdlZCA9IHRoaXMubWF4TGV2ZWwgIT09IHByb2dyZXNzLm1heExldmVsO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgdGhpcy50aXRsZSA9ICBwcm9ncmVzcy50aXRsZTtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50U3RlcCA9ICBwcm9ncmVzcy5jdXJyZW50U3RlcDtcclxuICAgICAgICAgICAgdGhpcy5tYXhMZXZlbCA9ICBwcm9ncmVzcy5tYXhMZXZlbDtcclxuICAgICAgICAgICAgdGhpcy5wcm9ncmVzc0xldmVsID0gIHByb2dyZXNzLnByb2dyZXNzTGV2ZWw7XHJcbiAgICAgICAgICAgIHRoaXMudW5pdCA9ICBwcm9ncmVzcy51bml0O1xyXG4gICAgICAgIFxyXG4gICAgICAgICAgICBpZiAocHJvZ3Jlc3NMZXZlbENoYW5nZWQgfHwgbWF4TGV2ZWxDaGFuZ2VkKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVQcm9ncmVzcygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5wcm9ncmVzc0Jhci5wcm9ncmVzc0xldmVsID49IHRoaXMucHJvZ3Jlc3NCYXIubWF4TGV2ZWwpIHtcclxuICAgICAgICAgICAgdGhpcy5jb21wbGV0ZWQuZW1pdCh0aGlzLnByb2dyZXNzUGVyY2VudCk7XHJcbiAgICAgICAgICAgIHRoaXMuaGFzRW1pdHRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMub25Qcm9ncmVzc0NvbXBsZXRlZCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdQb2xsaW5nIGVycm9yJywgZXJyKTtcclxuICAgICAgICAgIHRoaXMuc3RvcFBvbGxpbmcoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSwgMjAwMCk7XHJcbiAgfVxyXG5cclxuICBcclxuICBwcml2YXRlIHVwZGF0ZVByb2dyZXNzKCk6IHZvaWQge1xyXG5cclxuICAgIGlmICh0aGlzLnByb2dyZXNzQmFyLnByb2dyZXNzTGV2ZWwgIT0gbnVsbCAmJiB0aGlzLnByb2dyZXNzQmFyLm1heExldmVsICYmIHRoaXMucHJvZ3Jlc3NCYXIubWF4TGV2ZWwgPiAwKSB7XHJcbiAgICAgIGlmICh0aGlzLnByb2dyZXNzQmFyLnByb2dyZXNzTGV2ZWwgPiB0aGlzLnByb2dyZXNzQmFyLm1heExldmVsKSB7XHJcbiAgICAgICAgdGhpcy53YXJuaW5nTWVzc2FnZSA9IGBMYSB2YWxldXIgJHt0aGlzLnByb2dyZXNzQmFyLnByb2dyZXNzTGV2ZWx9IGTDqXBhc3NlIGxhIGxpbWl0ZSBtYXhpbWFsZSBkZSAke3RoaXMucHJvZ3Jlc3NCYXIubWF4TGV2ZWx9LmA7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLndhcm5pbmdNZXNzYWdlID0gbnVsbDtcclxuICAgICAgdGhpcy5wcm9ncmVzc1BlcmNlbnQgPSBNYXRoLnJvdW5kKCh0aGlzLnByb2dyZXNzQmFyLnByb2dyZXNzTGV2ZWwgLyB0aGlzLnByb2dyZXNzQmFyLm1heExldmVsKSAqIDEwMCk7XHJcblxyXG4gICAgICAvKmlmICh0aGlzLnByb2dyZXNzQmFyLnByb2dyZXNzTGV2ZWwgPj0gdGhpcy5wcm9ncmVzc0Jhci5tYXhMZXZlbCAmJiAhdGhpcy5oYXNFbWl0dGVkKSB7XHJcbiAgICAgICAgdGhpcy5jb21wbGV0ZWQuZW1pdCh0aGlzLnByb2dyZXNzUGVyY2VudCk7XHJcbiAgICAgICAgdGhpcy5oYXNFbWl0dGVkID0gdHJ1ZTtcclxuICAgICAgfSovXHJcbiAgICAgXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLndhcm5pbmdNZXNzYWdlID0gbnVsbDtcclxuICAgICAgdGhpcy5wcm9ncmVzc1BlcmNlbnQgPSAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGlkZUJhcigpIHtcclxuICAgIHRoaXMuc2hvd0JhciA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93QmFyQ2hhbmdlLmVtaXQodGhpcy5zaG93QmFyKTtcclxuICB9XHJcblxyXG4gIG9uUHJvZ3Jlc3NDb21wbGV0ZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0b3BQb2xsaW5nKCk7XHJcblxyXG4gICAgLy9jb25zdCBtZXNzYWdlID0gdGhpcy5wcm9ncmVzc0Jhci50aXRsZSA/IGAke3RoaXMucHJvZ3Jlc3NCYXIudGl0bGV9IHRlcm1pbsOpYCA6ICdQcm9jZXNzdXMgdGVybWluw6knO1xyXG4gICAgLy90aGlzLnRzaU1lc3NhZ2VTZXJ2aWNlLmluZm9NZXNzYWdlKG1lc3NhZ2UpO1xyXG5cclxuICAgIGlmICh0aGlzLmhpZGVUaW1lb3V0SWQpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaGlkZVRpbWVvdXRJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5oaWRlVGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuaGlkZUJhcigpO1xyXG4gICAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICB9LCAxMDAwMCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0b3BQb2xsaW5nKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaW50ZXJ2YWxQb2xsSWQpIHtcclxuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsUG9sbElkKTtcclxuICAgICAgdGhpcy5pbnRlcnZhbFBvbGxJZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIHRoaXMuaXNQb2xsaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5wcm9ncmVzc0JhciA9IG5ldyBQcm9ncmVzc0JhclJlc3BvbnNlKCk7XHJcbiAgICB0aGlzLmN1cnJlbnRTdGVwID0gdGhpcy5wcm9ncmVzc0Jhci5jdXJyZW50U3RlcFxyXG4gICAgdGhpcy50aXRsZSA9IHRoaXMucHJvZ3Jlc3NCYXIudGl0bGVcclxuICAgIHRoaXMubWF4TGV2ZWwgPSB0aGlzLnByb2dyZXNzQmFyLm1heExldmVsXHJcbiAgICB0aGlzLnByb2dyZXNzTGV2ZWwgPSB0aGlzLnByb2dyZXNzQmFyLnByb2dyZXNzTGV2ZWxcclxuICAgIHRoaXMucHJvZ3Jlc3NQZXJjZW50ID0gMDtcclxuICAgIHRoaXMud2FybmluZ01lc3NhZ2UgPSBudWxsO1xyXG4gICAgdGhpcy5oYXNFbWl0dGVkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIC8vYWxlcnQoXCJuZyBPbkRlc3Ryb3lcIik7XHJcbiAgICB0aGlzLnN0b3BQb2xsaW5nKCk7XHJcbiAgICBpZiAodGhpcy5oaWRlVGltZW91dElkKSBjbGVhclRpbWVvdXQodGhpcy5oaWRlVGltZW91dElkKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmRcIiAqbmdJZj1cInNob3dCYXJcIj5cclxuICBcclxuICA8cC10b2FzdCAvPlxyXG4gIDxwLXByb2dyZXNzQmFyIFt2YWx1ZV09XCJwcm9ncmVzc1BlcmNlbnRcIiBcclxuICAgICAgICBbc2hvd1ZhbHVlXT1cInNob3dWYWx1ZVwiIFxyXG4gICAgICAgIFtjb2xvcl09XCJjb2xvclwiIFxyXG4gICAgICAgIFtzdHlsZV09XCJ7IGhlaWdodDogJzhweCcgfVwiID5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwicHJvZ3Jlc3NQZXJjZW50XCIgbGV0LXByb2dyZXNzUGVyY2VudD5cclxuICAgICAgPHNwYW4+e3sgcHJvZ3Jlc3NMZXZlbCB9fSAvIHt7IG1heExldmVsIH19IHt7dW5pdH19ICh7eyBwcm9ncmVzc1BlcmNlbnQgfX0lKTwvc3Bhbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgXHJcbiAgPC9wLXByb2dyZXNzQmFyPlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwid2FybmluZ01lc3NhZ2U7IGVsc2UgcHJvZ3Jlc3NCYXJCbG9ja1wiIGNsYXNzPVwidGV4dC1jZW50ZXIgdGV4dC1kYW5nZXIgcC0yXCI+XHJcbiAgICA8c3Ryb25nPuKaoO+4jyB7eyB3YXJuaW5nTWVzc2FnZSB9fTwvc3Ryb25nPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bmctdGVtcGxhdGUgI3Byb2dyZXNzQmFyQmxvY2s+XHJcbiAgICA8ZGl2IGNsYXNzPVwibXQtMiB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICA8c3Ryb25nICpuZ0lmPVwidW5pdDsgZWxzZSBwZXJjZW50T25seVwiPlxyXG4gICAgICAgIHt7IHByb2dyZXNzTGV2ZWwgfX0gLyB7eyBtYXhMZXZlbCB9fSB7eyB1bml0IH19ICh7eyBwcm9ncmVzc1BlcmNlbnQgfX0lKVxyXG4gICAgICA8L3N0cm9uZz5cclxuICAgICAgPG5nLXRlbXBsYXRlICNwZXJjZW50T25seT5cclxuICAgICAgICA8c3Ryb25nPnt7IHByb2dyZXNzUGVyY2VudCB9fSU8L3N0cm9uZz5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiY3VycmVudFN0ZXAgJiYgc2hvd0N1cnJlbnRTdGVwXCI+IC0ge3sgY3VycmVudFN0ZXAgfX08L3NwYW4+XHJcbiAgICBcclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJtdC0xIHRleHQtY2VudGVyXCIgKm5nSWY9XCJ0aXRsZVwiPlxyXG4gICAgICA8c21hbGw+e3sgdGl0bGUgfX08L3NtYWxsPlxyXG4gICAgPC9kaXY+XHJcbiAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG48L2Rpdj4iXX0=
@@ -0,0 +1,142 @@
1
+ import { Component, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
+ import { TooltipPosition } from '../../enums/tooltipPosition.enum';
3
+ import { InputTypes, LayoutOrientation } from '../../enums';
4
+ import { FilterHelper } from '../../tsi-helpers/filter-helper';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../services/status/entityStatus.service";
7
+ import * as i2 from "@angular/common";
8
+ import * as i3 from "@angular/forms";
9
+ import * as i4 from "primeng/inputtext";
10
+ import * as i5 from "../input-components/tsi-search-combo/tsi-search-combo.component";
11
+ import * as i6 from "../input-components/tsi-checkbox/tsi-checkbox.component";
12
+ import * as i7 from "../input-components/tsi-currency-other-input/tsi-currency-other-input.component";
13
+ import * as i8 from "../input-components/tsi-currency-societe-input/tsi-currency-societe-input.component";
14
+ import * as i9 from "../input-components/tsi-date-picker/tsi-date-picker.component";
15
+ import * as i10 from "../input-components/tsi-decimal-input/tsi-decimal-input.component";
16
+ import * as i11 from "../input-components/tsi-integer/tsi-integer.component";
17
+ import * as i12 from "../input-components/tsi-radio-button/tsi-radio-button.component";
18
+ import * as i13 from "../input-components/tsi-rate-input/tsi-rate-input.component";
19
+ import * as i14 from "../input-components/tsi-text-box/tsi-text-box.component";
20
+ import * as i15 from "../output-components/tsi-label/tsi-label.component";
21
+ import * as i16 from "../button-components/tsi-button/tsi-button.component";
22
+ import * as i17 from "../../tsi-directives/presentation-designer-base.directive";
23
+ import * as i18 from "../../pipes/localize.pipe";
24
+ export class TsiSearchBoxComponent {
25
+ //#endregion
26
+ //#region inputs
27
+ set searchFields(value) {
28
+ if (value) {
29
+ //reset
30
+ this._searchFields = [];
31
+ //init using value
32
+ this._searchFields = FilterHelper.initSearchFields(value);
33
+ }
34
+ }
35
+ get searchFields() {
36
+ return this._searchFields;
37
+ }
38
+ set businessClass(value) {
39
+ this._businessClass = value;
40
+ this.getEntityStatus();
41
+ }
42
+ get businessClass() {
43
+ return this._businessClass;
44
+ }
45
+ //#endregion
46
+ constructor(entityStatusService) {
47
+ this.entityStatusService = entityStatusService;
48
+ this.inputTypes = InputTypes;
49
+ this.fakeAlwaysFalseCondition = false;
50
+ this.tooltipPosition = TooltipPosition;
51
+ this.layoutOrientationRef = LayoutOrientation;
52
+ this.prop = '';
53
+ this.isRtlMode = false;
54
+ this.isSearchButtonDisabled = false;
55
+ this.searchFieldsApplied = new EventEmitter();
56
+ this.keywordValueChanged = new EventEmitter();
57
+ this.statusFilterChanged = new EventEmitter();
58
+ this.comboBoxLabelChanged = new EventEmitter();
59
+ this.entityStatusList = [];
60
+ this._init();
61
+ }
62
+ ngOnInit() { }
63
+ //#region events handlers
64
+ onSearchFieldValueChange(searchField) {
65
+ this.searchFieldsChange.emit(this.searchFields);
66
+ }
67
+ onSearch() {
68
+ this.keywordValueChanged.emit(this.keyword);
69
+ this.searchFieldsApplied.emit(this.searchFields);
70
+ }
71
+ //#endregion
72
+ //#region private methods
73
+ _init() {
74
+ this._searchFields = [];
75
+ this.searchFieldsChange = new EventEmitter();
76
+ }
77
+ getComboLabel(searchField, label) {
78
+ searchField.comboboxLabel = label;
79
+ this.comboBoxLabelChanged.emit(this.searchFields);
80
+ }
81
+ // Getter for status
82
+ get status() {
83
+ return this._status;
84
+ }
85
+ // Setter for status
86
+ set status(value) {
87
+ this._status = value;
88
+ }
89
+ getEntityStatus() {
90
+ this.entityStatusService.getEntityStatus(this.businessClass).subscribe({
91
+ next: (data) => {
92
+ if (!data)
93
+ return;
94
+ if (data.entityStatus && Array.isArray(data.entityStatus)) {
95
+ this.entityStatusList = data.entityStatus;
96
+ }
97
+ this.status = data.defaultStatus;
98
+ },
99
+ });
100
+ }
101
+ //#endregion
102
+ onStatusChange(evt) {
103
+ this.status = evt;
104
+ this.statusFilterChanged.emit(this.status);
105
+ }
106
+ handleKeyDown(event) {
107
+ if (event.key === 'F5' || event.key === 'Enter') {
108
+ event.preventDefault();
109
+ this.onSearch();
110
+ }
111
+ }
112
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiSearchBoxComponent, deps: [{ token: i1.EntityStatusService }], target: i0.ɵɵFactoryTarget.Component }); }
113
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiSearchBoxComponent, selector: "tsi-search-box", inputs: { searchFields: "searchFields", businessClass: "businessClass", isRtlMode: "isRtlMode", isSearchButtonDisabled: "isSearchButtonDisabled", entityInfo: "entityInfo" }, outputs: { searchFieldsChange: "searchFieldsChange", searchFieldsApplied: "searchFieldsApplied", keywordValueChanged: "keywordValueChanged", statusFilterChanged: "statusFilterChanged", comboBoxLabelChanged: "comboBoxLabelChanged" }, host: { listeners: { "window:keydown": "handleKeyDown($event)" } }, ngImport: i0, template: "<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>", styles: [".no-pad{padding:0 0 0 5px!important}.pt-5{padding-top:5px}:host ::ng-deep #status-filter Tsi-Search-Combo p-dropdown .p-dropdown{width:140px!important;height:28px!important;border-left:none!important;border-radius:0!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "component", type: i5.TsiSearchComboComponent, selector: "Tsi-Search-Combo", inputs: ["elementSourceUrl", "listSourceUrl", "id-field", "label-field", "multiple", "sort", "showClear", "reloadDataSource", "isFiltered", "selectedLabel", "maxWidth", "businessClass", "currentRowItem", "datasource", "bind", "showSearchButton", "showAddButton", "showConsultButton", "showUpdateButton"], outputs: ["bindChange", "datasource-loaded", "init", "isLoaded", "selectedLabelChange", "onClick", "onSearchButtonClick"] }, { kind: "component", type: i6.TsiCheckboxComponent, selector: "Tsi-CheckBox", inputs: ["class", "isBinary", "checked", "tooltipText", "tooltipPosition"], outputs: ["inputFieldChange", "checkedChange"] }, { kind: "component", type: i7.TsiCurrencyOtherInputComponent, selector: "Tsi-Currency-Other-Input", inputs: ["numOfDecimal", "currency", "class"], outputs: ["inputFieldChange"] }, { kind: "component", type: i8.TsiCurrencySocieteInputComponent, selector: "Tsi-Currency-Societe-Input", inputs: ["class"], outputs: ["inputFieldChange"] }, { kind: "component", type: i9.TsiDatePickerComponent, selector: "Tsi-Date-Picker", inputs: ["required", "showTime", "showButtonBar"], outputs: ["inputFieldChange"] }, { kind: "component", type: i10.TsiDecimalInputComponent, selector: "Tsi-Decimal-Input", inputs: ["numOfDecimal", "class"], outputs: ["inputFieldChange"] }, { kind: "component", type: i11.TsiIntegerComponent, selector: "Tsi-Integer", inputs: ["class", "minValue", "maxValue", "delayChangeTime"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i12.TsiRadioButtonComponent, selector: "Tsi-Radio-Button", inputs: ["dataSource", "class", "layoutOrientation"], outputs: ["inputFieldChange"] }, { kind: "component", type: i13.TsiRateInputComponent, selector: "Tsi-Rate-Input", inputs: ["required", "isFraction", "numOfDecimal"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i14.TsiTextBoxComponent, selector: "Tsi-Text-Box", inputs: ["textBoxType", "autocomplete"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i15.TsiLabelComponent, selector: "Tsi-Label", inputs: ["labelValue", "styleClass", "infoText"] }, { kind: "component", type: i16.TsiButtonComponent, selector: "Tsi-Button", inputs: ["disabled", "text", "style", "tooltipText", "tooltipPosition", "buttonType", "icon", "styleClass", "iconSrc", "id", "iconWidth", "iconClass"], outputs: ["onClick", "rightClick"] }, { kind: "directive", type: i17.PresentationDesignerDirectiveBase, selector: "[presentationDesignerBase]", inputs: ["presentationDesigner", "presentationDesignerBase"] }, { kind: "pipe", type: i18.LocalizePipe, name: "localize" }] }); }
114
+ }
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiSearchBoxComponent, decorators: [{
116
+ type: Component,
117
+ args: [{ selector: 'tsi-search-box', template: "<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>", styles: [".no-pad{padding:0 0 0 5px!important}.pt-5{padding-top:5px}:host ::ng-deep #status-filter Tsi-Search-Combo p-dropdown .p-dropdown{width:140px!important;height:28px!important;border-left:none!important;border-radius:0!important}\n"] }]
118
+ }], ctorParameters: () => [{ type: i1.EntityStatusService }], propDecorators: { searchFields: [{
119
+ type: Input
120
+ }], businessClass: [{
121
+ type: Input
122
+ }], isRtlMode: [{
123
+ type: Input
124
+ }], isSearchButtonDisabled: [{
125
+ type: Input
126
+ }], entityInfo: [{
127
+ type: Input
128
+ }], searchFieldsChange: [{
129
+ type: Output
130
+ }], searchFieldsApplied: [{
131
+ type: Output
132
+ }], keywordValueChanged: [{
133
+ type: Output
134
+ }], statusFilterChanged: [{
135
+ type: Output
136
+ }], comboBoxLabelChanged: [{
137
+ type: Output
138
+ }], handleKeyDown: [{
139
+ type: HostListener,
140
+ args: ['window:keydown', ['$event']]
141
+ }] } });
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLXNlYXJjaC1ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL3RzaS1jb21wb25lbnRzL3RzaS1zZWFyY2gtYm94L3RzaS1zZWFyY2gtYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy90c2ktc2VhcmNoLWJveC90c2ktc2VhcmNoLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUc1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTy9ELE1BQU0sT0FBTyxxQkFBcUI7SUFTaEMsWUFBWTtJQUVaLGdCQUFnQjtJQUNoQixJQUFhLFlBQVksQ0FBQyxLQUFxQztRQUM3RCxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsT0FBTztZQUNQLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1lBRXhCLGtCQUFrQjtZQUNsQixJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1RCxDQUFDO0lBQ0gsQ0FBQztJQUNELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBYSxhQUFhLENBQUMsS0FBeUI7UUFDbkQsSUFBSSxDQUFDLGNB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QUMsQ0FBQztJQUM3QyxDQUFDO0lBR0QsYUFBYSxDQUFDLEtBQW9CO1FBQ2hDLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxJQUFJLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUNoRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDOytHQTVHVSxxQkFBcUI7bUdBQXJCLHFCQUFxQixpaEJDWmxDLDJzVkE0S007OzRGRGhLTyxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsZ0JBQWdCO3dGQWdCYixZQUFZO3NCQUF4QixLQUFLO2dCQWFPLGFBQWE7c0JBQXpCLEtBQUs7Z0JBUUcsU0FBUztzQkFBakIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFJSSxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQTREUCxhQUFhO3NCQURaLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUMsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vZW51bXMvdG9vbHRpcFBvc2l0aW9uLmVudW0nO1xyXG5pbXBvcnQgeyBJbnB1dFR5cGVzLCBMYXlvdXRPcmllbnRhdGlvbiB9IGZyb20gJy4uLy4uL2VudW1zJztcclxuaW1wb3J0IHsgU2VhcmNoRmllbGQsIGVudGl0eUluZm8sIEtleVZhbHVlUGFpciwgRW50aXR5UHJvcGVydGllc1Jlc3BvbnNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgRW50aXR5U3RhdHVzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0YXR1cy9lbnRpdHlTdGF0dXMuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbHRlckhlbHBlciB9IGZyb20gJy4uLy4uL3RzaS1oZWxwZXJzL2ZpbHRlci1oZWxwZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0c2ktc2VhcmNoLWJveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RzaS1zZWFyY2gtYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90c2ktc2VhcmNoLWJveC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHNpU2VhcmNoQm94Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvLyNyZWdpb24gbG9jYWwgdmFyc1xyXG4gIHByaXZhdGUgX3NlYXJjaEZpZWxkcyE6IEFycmF5PFNlYXJjaEZpZWxkPjtcclxuICBpbnB1dFR5cGVzID0gSW5wdXRUeXBlcztcclxuICBmYWtlQWx3YXlzRmFsc2VDb25kaXRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuICB0b29sdGlwUG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb247XHJcbiAga2V5d29yZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIGxheW91dE9yaWVudGF0aW9uUmVmID0gTGF5b3V0T3JpZW50YXRpb25cclxuICBwcm9wOiBzdHJpbmcgPSAnJztcclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy8jcmVnaW9uIGlucHV0c1xyXG4gIEBJbnB1dCgpIHNldCBzZWFyY2hGaWVsZHModmFsdWU6IEFycmF5PFNlYXJjaEZpZWxkPiB8IHVuZGVmaW5lZCkge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIC8vcmVzZXRcclxuICAgICAgdGhpcy5fc2VhcmNoRmllbGRzID0gW107XHJcblxyXG4gICAgICAvL2luaXQgdXNpbmcgdmFsdWVcclxuICAgICAgdGhpcy5fc2VhcmNoRmllbGRzID0gRmlsdGVySGVscGVyLmluaXRTZWFyY2hGaWVsZHModmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXQgc2VhcmNoRmllbGRzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaEZpZWxkcztcclxuICB9XHJcbiAgcHJpdmF0ZSBfYnVzaW5lc3NDbGFzcyA6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBzZXQgYnVzaW5lc3NDbGFzcyh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcbiAgIHRoaXMuX2J1c2luZXNzQ2xhc3MgPSB2YWx1ZTtcclxuICAgdGhpcy5nZXRFbnRpdHlTdGF0dXMoKTtcclxuICB9XHJcbiAgZ2V0IGJ1c2luZXNzQ2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYnVzaW5lc3NDbGFzcztcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGlzUnRsTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzU2VhcmNoQnV0dG9uRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBlbnRpdHlJbmZvOiBlbnRpdHlJbmZvIHwgdW5kZWZpbmVkO1xyXG4gIC8vI3JlZ2lvblxyXG5cclxuICAvLyNyZWdpb24gb3V0cHV0c1xyXG4gIEBPdXRwdXQoKSBzZWFyY2hGaWVsZHNDaGFuZ2UhOiBFdmVudEVtaXR0ZXI8QXJyYXk8U2VhcmNoRmllbGQ+PjtcclxuICBAT3V0cHV0KCkgc2VhcmNoRmllbGRzQXBwbGllZDogRXZlbnRFbWl0dGVyPEFycmF5PFNlYXJjaEZpZWxkPj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PFNlYXJjaEZpZWxkPj4oKTtcclxuICBAT3V0cHV0KCkga2V5d29yZFZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPHN0cmluZyB8IHVuZGVmaW5lZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IHVuZGVmaW5lZD4oKTtcclxuICBAT3V0cHV0KCkgc3RhdHVzRmlsdGVyQ2hhbmdlZDogRXZlbnRFbWl0dGVyPHN0cmluZyB8IHVuZGVmaW5lZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IHVuZGVmaW5lZD4oKTtcclxuICBAT3V0cHV0KCkgY29tYm9Cb3hMYWJlbENoYW5nZWQgOiBFdmVudEVtaXR0ZXI8QXJyYXk8U2VhcmNoRmllbGQ+PiA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8U2VhcmNoRmllbGQ+PigpXHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZW50aXR5U3RhdHVzU2VydmljZTogRW50aXR5U3RhdHVzU2VydmljZSkge1xyXG4gICAgdGhpcy5faW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7fVxyXG5cclxuICAvLyNyZWdpb24gZXZlbnRzIGhhbmRsZXJzXHJcbiAgb25TZWFyY2hGaWVsZFZhbHVlQ2hhbmdlKHNlYXJjaEZpZWxkOiBTZWFyY2hGaWVsZCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hGaWVsZHNDaGFuZ2UuZW1pdCh0aGlzLnNlYXJjaEZpZWxkcyk7XHJcbiAgfVxyXG4gIG9uU2VhcmNoKCkge1xyXG4gICAgdGhpcy5rZXl3b3JkVmFsdWVDaGFuZ2VkLmVtaXQodGhpcy5rZXl3b3JkKTtcclxuICAgIHRoaXMuc2VhcmNoRmllbGRzQXBwbGllZC5lbWl0KHRoaXMuc2VhcmNoRmllbGRzKTtcclxuICB9XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBwcml2YXRlIG1ldGhvZHNcclxuICBwcml2YXRlIF9pbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2VhcmNoRmllbGRzID0gW107XHJcbiAgICB0aGlzLnNlYXJjaEZpZWxkc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8U2VhcmNoRmllbGQ+PigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29tYm9MYWJlbChzZWFyY2hGaWVsZDogU2VhcmNoRmllbGQsIGxhYmVsOiBzdHJpbmcpIHtcclxuICAgIHNlYXJjaEZpZWxkLmNvbWJvYm94TGFiZWwgPSBsYWJlbDtcclxuICAgIHRoaXMuY29tYm9Cb3hMYWJlbENoYW5nZWQuZW1pdCh0aGlzLnNlYXJjaEZpZWxkcyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zdGF0dXM6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAvLyBHZXR0ZXIgZm9yIHN0YXR1c1xyXG4gIGdldCBzdGF0dXMoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl9zdGF0dXM7XHJcbiAgfVxyXG4gIC8vIFNldHRlciBmb3Igc3RhdHVzXHJcbiAgc2V0IHN0YXR1cyh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLl9zdGF0dXMgPSB2YWx1ZTtcclxuICB9XHJcbiAgZW50aXR5U3RhdHVzTGlzdDogS2V5VmFsdWVQYWlyPHN0cmluZywgc3RyaW5nPltdID0gW107XHJcbiAgcHJpdmF0ZSBnZXRFbnRpdHlTdGF0dXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVudGl0eVN0YXR1c1NlcnZpY2UuZ2V0RW50aXR5U3RhdHVzKHRoaXMuYnVzaW5lc3NDbGFzcykuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGRhdGE6IEVudGl0eVByb3BlcnRpZXNSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmICghZGF0YSkgcmV0dXJuO1xyXG5cclxuICAgICAgICBpZiAoZGF0YS5lbnRpdHlTdGF0dXMgJiYgQXJyYXkuaXNBcnJheShkYXRhLmVudGl0eVN0YXR1cykpIHtcclxuICAgICAgICAgIHRoaXMuZW50aXR5U3RhdHVzTGlzdCA9IGRhdGEuZW50aXR5U3RhdHVzO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnN0YXR1cyA9IGRhdGEuZGVmYXVsdFN0YXR1cztcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgb25TdGF0dXNDaGFuZ2UoZXZ0OiBhbnkpe1xyXG4gICAgdGhpcy5zdGF0dXMgPSBldnQ7XHJcbiAgICB0aGlzLnN0YXR1c0ZpbHRlckNoYW5nZWQuZW1pdCh0aGlzLnN0YXR1cyk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5ZG93bicsWyckZXZlbnQnXSlcclxuICBoYW5kbGVLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KXtcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdGNScgfHwgZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMub25TZWFyY2goKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICA8ZGl2IGNsYXNzPVwiZ3JpZCBwLTJcIiBbbmdDbGFzc109XCJ7J3AtMyc6IGlzUnRsTW9kZX1cIj5cclxuICAgIDxkaXYgKm5nRm9yPVwibGV0IHNlYXJjaEZpZWxkIG9mIHNlYXJjaEZpZWxkc1wiIGNsYXNzPVwie3tzZWFyY2hGaWVsZC5zdHlsZUNsYXNzfX0gZ3JpZCBuby1wYWRcIlxyXG4gICAgcHJlc2VudGF0aW9uRGVzaWduZXJCYXNlPVwie3tzZWFyY2hGaWVsZC5maWVsZH19XCI+XHJcbiAgICAgIDwhLS0gTm90IE1heE1pbiA9PT0gU2luZ2xlIEZpbHRlciBJbnB1dCAtLT5cclxuICAgICAgPCEtLSBGYWtlIGVsZW1lbnQgdG8gZXNjYXBlIGJpemFycmUgaW5wdXQgZm9ybWF0IC0tPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiZmFrZUFsd2F5c0ZhbHNlQ29uZGl0aW9uOyBlbHNlIHNlYXJjaENvbWJvQmxvY2tcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDwhLS0gVHNpLVNlYXJjaC1Db21ibyAtLT5cclxuICAgICAgPG5nLXRlbXBsYXRlICNzZWFyY2hDb21ib0Jsb2NrPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWFyY2hGaWVsZC50eXBlID09IGlucHV0VHlwZXMuU0VBUkNIX0NPTUJPOyBlbHNlIGN1cnJlbmN5U29jaWV0ZUlucHV0QmxvY2tcIj5cclxuICAgICAgICAgICAgPFRzaS1MYWJlbCBjbGFzcz1cInt7c2VhcmNoRmllbGQubGFiZWxTdHlsZUNsYXNzfX0gcHItMVwiXHJcbiAgICAgICAgICAgICAgW2xhYmVsVmFsdWVdPVwic2VhcmNoRmllbGQubGFiZWxWYWx1ZSB8IGxvY2FsaXplXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDxUc2ktU2VhcmNoLUNvbWJvIGNsYXNzPVwie3tzZWFyY2hGaWVsZC5pbnB1dFN0eWxlQ2xhc3N9fVwiIFtlbGVtZW50U291cmNlVXJsXT1cInNlYXJjaEZpZWxkLmVsZW1lbnRTb3VyY2VVcmxcIlxyXG4gICAgICAgICAgICAgIFtsaXN0U291cmNlVXJsXT1cInNlYXJjaEZpZWxkLmxpc3RTb3VyY2VVcmxcIiBbKGJpbmQpXT1cInNlYXJjaEZpZWxkLnZhbHVlXCJcclxuICAgICAgICAgICAgICBpZC1maWVsZD1cInt7c2VhcmNoRmllbGQuaWRGaWVsZH19XCIgbGFiZWwtZmllbGQ9XCJ7e3NlYXJjaEZpZWxkLmxhYmVsRmllbGR9fVwiXHJcbiAgICAgICAgICAgICAgW2lzRmlsdGVyZWRdPVwic2VhcmNoRmllbGQuaXNGaWx0ZXJlZFwiIChiaW5kQ2hhbmdlKT1cIm9uU2VhcmNoRmllbGRWYWx1ZUNoYW5nZShzZWFyY2hGaWVsZClcIlxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZWFyY2hGaWVsZC5kaXNhYmxlZCA/PyBmYWxzZVwiIFsoc2VsZWN0ZWRMYWJlbCldPVwic2VhcmNoRmllbGQuY29tYm9ib3hMYWJlbFwiXHJcbiAgICAgICAgICAgICAgKHNlbGVjdGVkTGFiZWxDaGFuZ2UpPVwiZ2V0Q29tYm9MYWJlbChzZWFyY2hGaWVsZCwkZXZlbnQpXCJcclxuICAgICAgICAgICAgICBbYnVzaW5lc3NDbGFzc109XCJzZWFyY2hGaWVsZC5idXNpbmVzc0NsYXNzID8/ICcnXCIgW3Nob3dBZGRCdXR0b25dPVwic2VhcmNoRmllbGQuc2hvd0FkZEJ1dHRvbiA/PyB0cnVlXCIgW3Nob3dVcGRhdGVCdXR0b25dPVwic2VhcmNoRmllbGQuc2hvd1VwZGF0ZUJ1dHRvbiA/PyB1bmRlZmluZWRcIiBbc2hvd0NvbnN1bHRCdXR0b25dPVwic2VhcmNoRmllbGQuc2hvd0NvbnN1bHRCdXR0b24gPz8gdW5kZWZpbmVkXCJcclxuICAgICAgICAgICAgICBbc2hvd1NlYXJjaEJ1dHRvbl09XCJzZWFyY2hGaWVsZC5zaG93U2VhcmNoQnV0dG9uID8/IHRydWVcIj48L1RzaS1TZWFyY2gtQ29tYm8+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgPCEtLSBUc2ktQ3VycmVuY3ktU29jaWV0ZS1JbnB1dCAtLT5cclxuICAgICAgPG5nLXRlbXBsYXRlICNjdXJyZW5jeVNvY2lldGVJbnB1dEJsb2NrPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWFyY2hGaWVsZC50eXBlID09IGlucHV0VHlwZXMuQ1VSUkVOQ1lfU09DSUVURV9JTlBVVDsgZWxzZSBjdXJyZW5jeU90aGVySW5wdXRCbG9ja1wiPlxyXG4gICAgICAgICAgICA8VHNpLUxhYmVsIGNsYXNzPVwie3tzZWFyY2hGaWVsZC5sYWJlbFN0eWxlQ2xhc3N9fVwiXHJcbiAgICAgICAgICAgICAgW2xhYmVsVmFsdWVdPVwic2VhcmNoRmllbGQubGFiZWxWYWx1ZSB8IGxvY2FsaXplXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDxUc2ktQ3VycmVuY3ktU29jaWV0ZS1JbnB1dCBjbGFzcz1cInt7c2VhcmNoRmllbGQuaW5wdXRTdHlsZUNsYXNzfX1cIiBbaW5wdXROYW1lXT1cInNlYXJjaEZpZWxkLmZpZWxkXCJcclxuICAgICAgICAgICAgICBbaW5wdXRJZF09XCJzZWFyY2hGaWVsZC5maWVsZFwiIFsoaW5wdXRGaWVsZCldPVwic2VhcmNoRmllbGQudmFsdWVcIlxyXG4gICAgICAgICAgICAgIChpbnB1dEZpZWxkQ2hhbmdlKT1cIm9uU2VhcmNoRmllbGRWYWx1ZUNoYW5nZShzZWFyY2hGaWVsZClcIiBbZGlzYWJsZWRdPVwic2VhcmNoRmllbGQuZGlzYWJsZWQgPz8gZmFsc2VcIj5cclxuICAgICAgICAgICAgPC9Uc2ktQ3VycmVuY3ktU29jaWV0ZS1JbnB1dD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgIDwhLS0gVHNpLUN1cnJlbmN5LU90aGVyLUlucHV0IC0tPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2N1cnJlbmN5T3RoZXJJbnB1dEJsb2NrPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWFyY2hGaWVsZC50eXBlID09IGlucHV0VHlwZXMuQ1VSUkVOQ1lfT1RIRVJfSU5QVVQ7IGVsc2UgZGF0ZVBpY2tlcklucHV0QmxvY2tcIj5cclxuICAgICAgICAgICAgPFRzaS1MYWJlbCBjbGFzcz1cInt7c2VhcmNoRmllbGQubGFiZWxTdHlsZUNsYXNzfX1cIlxyXG4gICAgICAgICAgICAgIFtsYWJlbFZhbHVlXT1cInNlYXJjaEZpZWxkLmxhYmVsVmFsdWUgfCBsb2NhbGl6ZVwiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICA8VHNpLUN1cnJlbmN5LU90aGVyLUlucHV0IGNsYXNzPVwie3tzZWFyY2hGaWVsZC5pbnB1dFN0eWxlQ2xhc3N9fVwiIFtpbnB1dE5hbWVdPVwic2VhcmNoRmllbGQuZmllbGRcIlxyXG4gICAgICAgICAgICAgIFtpbnB1dElkXT1cInNlYXJjaEZpZWxkLmZpZWxkXCIgWyhpbnB1dEZpZWxkKV09XCJzZWFyY2hGaWVsZC52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgKGlucHV0RmllbGRDaGFuZ2UpPVwib25TZWFyY2hGaWVsZFZhbHVlQ2hhbmdlKHNlYXJjaEZpZWxkKVwiIFtkaXNhYmxlZF09XCJzZWFyY2hGaWVsZC5kaXNhYmxlZCA/PyBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgW2N1cnJlbmN5XT1cInNlYXJjaEZpZWxkLmN1cnJlbmN5XCI+XHJcbiAgICAgICAgICAgIDwvVHNpLUN1cnJlbmN5LU90aGVyLUlucHV0PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgPCEtLSBUc2ktRGF0ZS1QaWNrZXIgLS0+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGF0ZVBpY2tlcklucHV0QmxvY2s+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlYXJjaEZpZWxkLnR5cGUgPT0gaW5wdXRUeXBlcy5EQVRFOyBlbHNlIGRhdGV0aW1lUGlja2VySW5wdXRCbG9ja1wiPlxyXG4gICAgICAgICAgICA8VHNpLUxhYmVsIGNsYXNzPVwie3tzZWFyY2hGaWVsZC5sYWJlbFN0eWxlQ2xhc3N9fVwiXHJcbiAgICAgICAgICAgICAgW2xhYmVsVmFsdWVdPVwic2VhcmNoRmllbGQubGFiZWxWYWx1ZSB8IGxvY2FsaXplXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDxUc2ktRGF0ZS1QaWNrZXIgY2xhc3M9XCJ7e3NlYXJjaEZpZWxkLmlucHV0U3R5bGVDbGFzc319XCIgW2lucHV0TmFtZV09XCJzZWFyY2hGaWVsZC5maWVsZFwiXHJcbiAgICAgICAgICAgICAgW2lucHV0SWRdPVwic2VhcmNoRmllbGQuZmllbGRcIiBbKGlucHV0RmllbGQpXT1cInNlYXJjaEZpZWxkLnZhbHVlXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2VhcmNoRmllbGQuZGlzYWJsZWQgPz8gZmFsc2VcIiAoaW5wdXRGaWVsZENoYW5nZSk9XCJvblNlYXJjaEZpZWxkVmFsdWVDaGFuZ2Uoc2VhcmNoRmllbGQpXCI+XHJcbiAgICAgICAgICAgIDwvVHNpLURhdGUtUGlja2VyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgPCEtLSBUc2ktRGF0ZS1QaWNrZXIgLS0+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGF0ZXRpbWVQaWNrZXJJbnB1dEJsb2NrPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWFyY2hGaWVsZC50eXBlID09IGlucHV0VHlwZXMuREFURVRJTUU7IGVsc2UgY2hlY2tCb3hJbnB1dEJsb2NrXCI+XHJcbiAgICAgICAgICAgIDxUc2ktTGFiZWwgY2xhc3M9XCJ7e3NlYXJjaEZpZWxkLmxhYmVsU3R5bGVDbGFzc319XCJcclxuICAgICAgICAgICAgICBbbGFiZWxWYWx1ZV09XCJzZWFyY2hGaWVsZC5sYWJlbFZhbHVlIHwgbG9jYWxpemVcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPFRzaS1EYXRlLVBpY2tlciBjbGFzcz1cInt7c2VhcmNoRmllbGQuaW5wdXRTdHlsZUNsYXNzfX1cIiBbc2hvd1RpbWVdPVwidHJ1ZVwiIFtpbnB1dE5hbWVdPVwic2VhcmNoRmllbGQuZmllbGRcIlxyXG4gICAgICAgICAgICAgIFtpbnB1dElkXT1cInNlYXJjaEZpZWxkLmZpZWxkXCIgWyhpbnB1dEZpZWxkKV09XCJzZWFyY2hGaWVsZC52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNlYXJjaEZpZWxkLmRpc2FibGVkID8/IGZhbHNlXCIgKGlucHV0RmllbGRDaGFuZ2UpPVwib25TZWFyY2hGaWVsZFZhbHVlQ2hhbmdlKHNlYXJjaEZpZWxkKVwiPlxyXG4gICAgICAgICAgICA8L1RzaS1EYXRlLVBpY2tlcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgIDwhLS0gVHNpLUNoZWNrQm94IC0tPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2NoZWNrQm94SW5wdXRCbG9jaz5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VhcmNoRmllbGQudHlwZSA9PSBpbnB1dFR5cGVzLkNIRUNLQk9YOyBlbHNlIGRlY2ltYWxJbnB1dEJsb2NrXCI+XHJcbiAgICAgICAgICAgIDxUc2ktTGFiZWwgY2xhc3M9XCJ7e3NlYXJjaEZpZWxkLmxhYmVsU3R5bGVDbGFzc319XCJcclxuICAgICAgICAgICAgICBbbGFiZWxWYWx1ZV09XCJzZWFyY2hGaWVsZC5sYWJlbFZhbHVlIHwgbG9jYWxpemVcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPFRzaS1DaGVja0JveCBjbGFzcz1cInt7c2VhcmNoRmllbGQuaW5wdXRTdHlsZUNsYXNzfX1cIiBbaW5wdXROYW1lXT1cInNlYXJjaEZpZWxkLmZpZWxkXCJcclxuICAgICAgICAgICAgICBbaW5wdXRJZF09XCJzZWFyY2hGaWVsZC5maWVsZFwiIFsoaW5wdXRGaWVsZCldPVwic2VhcmNoRmllbGQudmFsdWVcIlxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZWFyY2hGaWVsZC5kaXNhYmxlZCA/PyBmYWxzZVwiIChpbnB1dEZpZWxkQ2hhbmdlKT1cIm9uU2VhcmNoRmllbGRWYWx1ZUNoYW5nZShzZWFyY2hGaWVsZClcIj5cclxuICAgICAgICAgICAgPC9Uc2ktQ2hlY2tCb3g+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICA8IS0tIFRzaS1EZWNpbWFsLUlucHV0IC0tPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2RlY2ltYWxJbnB1dEJsb2NrPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWFyY2hGaWVsZC50eXBlID09IGlucHV0VHlwZXMuREVDSU1BTF9JTlBVVDsgZWxzZSBpbnRlZ2VySW5wdXRCbG9ja1wiPlxyXG4gICAgICAgICAgICA8VHNpLUxhYmVsIGNsYXNzPVwie3tzZWFyY2hGaWVsZC5sYWJlbFN0eWxlQ2xhc3N9fVwiXHJcbiAgICAgICAgICAgICAgW2xhYmVsVmFsdWVdPVwic2VhcmNoRmllbGQubGFiZWxWYWx1ZSB8IGxvY2FsaXplXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDxUc2ktRGVjaW1hbC1JbnB1dCBjbGFzcz1cInt7c2VhcmNoRmllbGQuaW5wdXRTdHlsZUNsYXNzfX1cIiBbaW5wdXROYW1lXT1cInNlYXJjaEZpZWxkLmZpZWxkXCJcclxuICAgICAgICAgICAgICBbaW5wdXRJZF09XCJzZWFyY2hGaWVsZC5maWVsZFwiIFsoaW5wdXRGaWVsZCldPVwic2VhcmNoRmllbGQudmFsdWVcIlxyXG4gICAgICAgICAgICAgIChpbnB1dEZpZWxkQ2hhbmdlKT1cIm9uU2VhcmNoRmllbGRWYWx1ZUNoYW5nZShzZWFyY2hGaWVsZClcIiBbZGlzYWJsZWRdPVwic2VhcmNoRmllbGQuZGlzYWJsZWQgPz8gZmFsc2VcIlxyXG4gICAgICAgICAgICAgIFtudW1PZkRlY2ltYWxdPVwic2VhcmNoRmllbGQubnVtT2ZEZWNpbWFsXCI+XHJcbiAgICAgICAgICAgIDwvVHNpLURlY2ltYWwtSW5wdXQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICA8IS0tIFRzaS1JbnRlZ2VyIC0tPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2ludGVnZXJJbnB1dEJsb2NrPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWFyY2hGaWVsZC50eXBlID09IGlucHV0VHlwZXMuSU5URUdFUjsgZWxzZSByYXRlSW5wdXRCbG9ja1wiPlxyXG4gICAgICAgICAgICA8VHNpLUxhYmVsIGNsYXNzPVwie3tzZWFyY2hGaWVsZC5sYWJlbFN0eWxlQ2xhc3N9fVwiXHJcbiAgICAgICAgICAgICAgW2xhYmVsVmFsdWVdPVwic2VhcmNoRmllbGQubGFiZWxWYWx1ZSB8IGxvY2FsaXplXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ7e3NlYXJjaEZpZWxkPy5pbnB1dFN0eWxlQ2xhc3N9fVwiPlxyXG4gICAgICAgICAgICAgIDxUc2ktSW50ZWdlciBbaW5wdXROYW1lXT1cInNlYXJjaEZpZWxkLmZpZWxkXCIgW2lucHV0SWRdPVwic2VhcmNoRmllbGQuZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgWyhpbnB1dEZpZWxkKV09XCJzZWFyY2hGaWVsZC52YWx1ZVwiIChpbnB1dEZpZWxkQ2hhbmdlKT1cIm9uU2VhcmNoRmllbGRWYWx1ZUNoYW5nZShzZWFyY2hGaWVsZClcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNlYXJjaEZpZWxkLmRpc2FibGVkID8/IGZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgPC9Uc2ktSW50ZWdlcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICA8IS0tIFRzaS1SYXRlLUlucHV0IC0tPlxyXG4gICAgICA8bmctdGVtcGxhdGUgICNyYXRlSW5wdXRCbG9jaz5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VhcmNoRmllbGQudHlwZSA9PSBpbnB1dFR5cGVzLlJBVEVfSU5QVVQ7IGVsc2UgcmFkaW9JbnB1dEJsb2NrXCI+XHJcbiAgICAgICAgICAgIDxUc2ktTGFiZWwgY2xhc3M9XCJ7e3NlYXJjaEZpZWxkLmxhYmVsU3R5bGVDbGFzc319XCJcclxuICAgICAgICAgICAgICBbbGFiZWxWYWx1ZV09XCJzZWFyY2hGaWVsZC5sYWJlbFZhbHVlIHwgbG9jYWxpemVcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPFRzaS1SYXRlLUlucHV0IGNsYXNzPVwie3tzZWFyY2hGaWVsZC5pbnB1dFN0eWxlQ2xhc3N9fVwiIFtpbnB1dE5hbWVdPVwic2VhcmNoRmllbGQuZmllbGRcIlxyXG4gICAgICAgICAgICAgIFtpbnB1dElkXT1cInNlYXJjaEZpZWxkLmZpZWxkXCIgWyhpbnB1dEZpZWxkKV09XCJzZWFyY2hGaWVsZC52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgKGlucHV0RmllbGRDaGFuZ2UpPVwib25TZWFyY2hGaWVsZFZhbHVlQ2hhbmdlKHNlYXJjaEZpZWxkKVwiIFtpc0ZyYWN0aW9uXT1cInNlYXJjaEZpZWxkLmlzRnJhY3Rpb25cIlxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZWFyY2hGaWVsZC5kaXNhYmxlZCA/PyBmYWxzZVwiPlxyXG4gICAgICAgICAgICA8L1RzaS1SYXRlLUlucHV0PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICNyYWRpb0lucHV0QmxvY2s+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlYXJjaEZpZWxkLnR5cGUgPT0gaW5wdXRUeXBlcy5SQURJT19CVVRUT047IGVsc2UgZGVmYXVsdFRleHRJbnB1dEJsb2NrXCI+XHJcbiAgICAgICAgICAgIDxUc2ktTGFiZWwgY2xhc3M9XCJ7e3NlYXJjaEZpZWxkLmxhYmVsU3R5bGVDbGFzc319XCJcclxuICAgICAgICAgICAgICBbbGFiZWxWYWx1ZV09XCJzZWFyY2hGaWVsZC5sYWJlbFZhbHVlIHwgbG9jYWxpemVcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPFRzaS1SYWRpby1CdXR0b24gY2xhc3M9XCJ7e3NlYXJjaEZpZWxkLmlucHV0U3R5bGVDbGFzc319XCIgW2lucHV0TmFtZV09XCJzZWFyY2hGaWVsZC5maWVsZFwiXHJcbiAgICAgICAgICAgICAgWyhpbnB1dEZpZWxkKV09XCJzZWFyY2hGaWVsZC52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgKGlucHV0RmllbGRDaGFuZ2UpPVwib25TZWFyY2hGaWVsZFZhbHVlQ2hhbmdlKHNlYXJjaEZpZWxkKVwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNlYXJjaEZpZWxkLmRpc2FibGVkID8/IGZhbHNlXCJcclxuICAgICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJzZWFyY2hGaWVsZC5yYWRpb0J1dHRvbkRhdGFzb3VyY2VcIlxyXG4gICAgICAgICAgICAgIFtsYXlvdXRPcmllbnRhdGlvbl09XCJzZWFyY2hGaWVsZC5sYXlvdXRPcmllbnRhdGlvbiA/PyBsYXlvdXRPcmllbnRhdGlvblJlZi52ZXJ0aWNhbFwiPlxyXG4gICAgICAgICAgICA8L1RzaS1SYWRpby1CdXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICA8IS0tIFRzaS1UZXh0LUJveCAtLT5cclxuICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VGV4dElucHV0QmxvY2s+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPFRzaS1MYWJlbCBjbGFzcz1cInt7c2VhcmNoRmllbGQubGFiZWxTdHlsZUNsYXNzfX0gcHItMVwiXHJcbiAgICAgICAgICAgICAgW2xhYmVsVmFsdWVdPVwic2VhcmNoRmllbGQubGFiZWxWYWx1ZSB8IGxvY2FsaXplXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDxUc2ktVGV4dC1Cb3ggY2xhc3M9XCJ7e3NlYXJjaEZpZWxkLmlucHV0U3R5bGVDbGFzc319XCIgW2lucHV0TmFtZV09XCJzZWFyY2hGaWVsZC5maWVsZFwiXHJcbiAgICAgICAgICAgICAgW2lucHV0SWRdPVwic2VhcmNoRmllbGQuZmllbGRcIiBbKGlucHV0RmllbGQpXT1cInNlYXJjaEZpZWxkLnZhbHVlXCJcclxuICAgICAgICAgICAgICAoaW5wdXRGaWVsZENoYW5nZSk9XCJvblNlYXJjaEZpZWxkVmFsdWVDaGFuZ2Uoc2VhcmNoRmllbGQpXCIgW2Rpc2FibGVkXT1cInNlYXJjaEZpZWxkLmRpc2FibGVkID8/IGZhbHNlXCI+XHJcbiAgICAgICAgICAgIDwvVHNpLVRleHQtQm94PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8IS0tICAtLT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInctZnVsbCBmbGV4IHB4LTJcIj5cclxuICAgICAgPGRpdiBbbmdDbGFzc109XCJpc1J0bE1vZGUgPyAncnRsLW1vZGUnIDogJ2x0ci1tb2RlJyBcIiBjbGFzcz1cInAtaW5wdXRncm91cCBydGwtbW9kZSBoLTJyZW0gbm8tcGFkXCI+XHJcbiAgICAgICAgPGRpdiBwcmVzZW50YXRpb25EZXNpZ25lckJhc2U9XCJnbG9iYWxfc2VhcmNoXCIgY2xhc3M9XCJwLWlucHV0Z3JvdXAgcnRsLW1vZGUgaC0ycmVtIG5vLXBhZFwiPlxyXG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwiXCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImtleXdvcmRcIiBwSW5wdXRUZXh0IFtwbGFjZWhvbGRlcl09XCInZ2xvYmFsX3NlYXJjaCcgfCBsb2NhbGl6ZVwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYnVzaW5lc3NDbGFzcyAmJiBlbnRpdHlTdGF0dXNMaXN0ICYmIGVudGl0eVN0YXR1c0xpc3QubGVuZ3RoID4gMFwiIGlkPVwic3RhdHVzLWZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIiBbcHJlc2VudGF0aW9uRGVzaWduZXJCYXNlXT1cImVudGl0eUluZm8/LnN0YXR1c0NvbHVtbk5hbWVcIj5cclxuICAgICAgICAgICAgICA8VHNpLVNlYXJjaC1Db21ibyBbaWQtZmllbGRdPVwiJ2tleSdcIiBbcGxhY2VIb2xkZXJdPVwiJ1N0YXR1dCdcIiBbbGFiZWwtZmllbGRdPVwiJ3ZhbHVlJ1wiIChiaW5kQ2hhbmdlKT1cIm9uU3RhdHVzQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgW2RhdGFzb3VyY2VdPVwiZW50aXR5U3RhdHVzTGlzdFwiID5cclxuICAgICAgICAgICAgICA8L1RzaS1TZWFyY2gtQ29tYm8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgcHJlc2VudGF0aW9uRGVzaWduZXJCYXNlPVwic2VhcmNoX2J1dHRvblwiPlxyXG4gICAgICAgICAgPFRzaS1CdXR0b24gc3R5bGVDbGFzcz1cInAtZWxlbWVudCBuZy10bnMtYzc5NTgzNTAzLTEyMjEgcC1idXR0b24gcC1jb21wb25lbnQgcC1idXR0b24taWNvbi1vbmx5XCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1NlYXJjaEJ1dHRvbkRpc2FibGVkXCIgaWNvbj1cInBpIHBpLXNlYXJjaFwiIFt0b29sdGlwUG9zaXRpb25dPVwidG9vbHRpcFBvc2l0aW9uLlRvcFwiXHJcbiAgICAgICAgICAgIHRvb2x0aXBUZXh0PVwic2hhcmVkX3RzaS1zZWFyY2hfYm94X3JlY2hlcmNoZXJcIiAoY2xpY2spPVwib25TZWFyY2goKVwiPjwvVHNpLUJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -0,0 +1,37 @@
1
+ import { Component } from '@angular/core';
2
+ import { ButtonType } from '../../enums/button-type.enum';
3
+ import { TsiFormComponentBaseComponent } from '../../tsi-base/components/tsi-form-base/tsi-form-base.component';
4
+ import { appProviders } from '../../consts/app-providers';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../services";
7
+ import * as i2 from "primeng/dynamicdialog";
8
+ import * as i3 from "../input-components/tsi-text-box/tsi-text-box.component";
9
+ import * as i4 from "../output-components/tsi-label/tsi-label.component";
10
+ import * as i5 from "../tsi-modal-footer/tsi-modal-footer.component";
11
+ import * as i6 from "../tsi-form/tsi-form.component";
12
+ export class TsiSendMailComponent extends TsiFormComponentBaseComponent {
13
+ constructor(_dialogService, ref, config) {
14
+ super(ref, config);
15
+ this._dialogService = _dialogService;
16
+ this.ref = ref;
17
+ this.config = config;
18
+ this.buttonType = ButtonType;
19
+ this.saveSubject = this.config.data.saveSubject;
20
+ this.toAddress = this.config.data.email;
21
+ }
22
+ save() {
23
+ super.save();
24
+ this._dialogService.setData({ toAddress: this.toAddress, ccAddress: this.ccAddress, objet: this.objet, message: this.message });
25
+ if (this.saveSubject) {
26
+ this.saveSubject.next({ data: 'save' });
27
+ }
28
+ this.ref.close();
29
+ }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiSendMailComponent, deps: [{ token: i1.DialogDataService }, { token: i2.DynamicDialogRef }, { token: i2.DynamicDialogConfig }], target: i0.ɵɵFactoryTarget.Component }); }
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiSendMailComponent, selector: "app-tsi-send-mail", providers: [...appProviders], usesInheritance: true, ngImport: i0, template: "\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>", styles: [""], dependencies: [{ kind: "component", type: i3.TsiTextBoxComponent, selector: "Tsi-Text-Box", inputs: ["textBoxType", "autocomplete"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i4.TsiLabelComponent, selector: "Tsi-Label", inputs: ["labelValue", "styleClass", "infoText"] }, { kind: "component", type: i5.TsiModalFooterComponent, selector: "Tsi-Modal-Footer", inputs: ["cancelDisabled", "saveDisabled", "cancelLabel", "saveLabel", "isConsult", "isDuplicate", "isOnlyCreate"], outputs: ["onCancelClick", "onSaveClick"] }, { kind: "component", type: i6.TsiFormComponent, selector: "tsi-form", inputs: ["class", "autocomplete", "optionalEndpoints", "disabled", "isLoading", "modalSize", "formEndpoint", "formName", "isReportingToolbarDisabled", "isCreateOnly"], outputs: ["onSubmit", "onSubmitFormWorkflowConfiguration", "formRefChange", "onStatusChange"] }] }); }
32
+ }
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiSendMailComponent, decorators: [{
34
+ type: Component,
35
+ args: [{ selector: 'app-tsi-send-mail', providers: [...appProviders], template: "\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>" }]
36
+ }], ctorParameters: () => [{ type: i1.DialogDataService }, { type: i2.DynamicDialogRef }, { type: i2.DynamicDialogConfig }] });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLXNlbmQtbWFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90c2ktc2hhcmVkLXVpL3NyYy9saWIvdHNpLWNvbXBvbmVudHMvdHNpLXNlbmQtbWFpbC90c2ktc2VuZC1tYWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy90c2ktc2VuZC1tYWlsL3RzaS1zZW5kLW1haWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRzFELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBRWhILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7QUFRMUQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLDZCQUE2QjtJQVNyRSxZQUNVLGNBQWlDLEVBQ3pCLEdBQXFCLEVBQ3JCLE1BQTJCO1FBRXpDLEtBQUssQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFKYixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDekIsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFQN0MsZUFBVSxHQUFHLFVBQVUsQ0FBQTtRQVVuQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNoRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUM1QyxDQUFDO0lBQ00sSUFBSTtRQUNULEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUMsU0FBUyxFQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDO1FBQ2hJLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbkIsQ0FBQzsrR0F6Qlksb0JBQW9CO21HQUFwQixvQkFBb0IsNENBRnBCLENBQUMsR0FBRyxZQUFZLENBQUMsaURDWjlCLCsvQ0E4QmE7OzRGRGhCQSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0UsbUJBQW1CLGFBR2xCLENBQUMsR0FBRyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJ1dHRvblR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9idXR0b24tdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgRHluYW1pY0RpYWxvZ0NvbmZpZywgRHluYW1pY0RpYWxvZ1JlZiB9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVHNpRm9ybUNvbXBvbmVudEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi90c2ktYmFzZS9jb21wb25lbnRzL3RzaS1mb3JtLWJhc2UvdHNpLWZvcm0tYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaWFsb2dEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgYXBwUHJvdmlkZXJzIH0gZnJvbSAnLi4vLi4vY29uc3RzL2FwcC1wcm92aWRlcnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdHNpLXNlbmQtbWFpbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RzaS1zZW5kLW1haWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RzaS1zZW5kLW1haWwuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFsuLi5hcHBQcm92aWRlcnNdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUc2lTZW5kTWFpbENvbXBvbmVudCBleHRlbmRzIFRzaUZvcm1Db21wb25lbnRCYXNlQ29tcG9uZW50e1xyXG4gIHRvQWRkcmVzczogc3RyaW5nfHVuZGVmaW5lZDtcclxuICBjY0FkZHJlc3M6IHN0cmluZ3x1bmRlZmluZWQ7XHJcbiAgb2JqZXQ6IHN0cmluZ3x1bmRlZmluZWQ7XHJcbiAgbWVzc2FnZTogc3RyaW5nfHVuZGVmaW5lZDtcclxuICBidXR0b25UeXBlID0gQnV0dG9uVHlwZVxyXG5cclxuICBzYXZlU3ViamVjdDogU3ViamVjdDxhbnk+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2RpYWxvZ1NlcnZpY2U6IERpYWxvZ0RhdGFTZXJ2aWNlLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIHJlZjogRHluYW1pY0RpYWxvZ1JlZixcclxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25maWc6IER5bmFtaWNEaWFsb2dDb25maWdcclxuICApIHtcclxuICAgICAgc3VwZXIocmVmLCBjb25maWcpO1xyXG4gICAgICB0aGlzLnNhdmVTdWJqZWN0ID0gdGhpcy5jb25maWcuZGF0YS5zYXZlU3ViamVjdDtcclxuICAgICAgdGhpcy50b0FkZHJlc3MgPSB0aGlzLmNvbmZpZy5kYXRhLmVtYWlsO1xyXG4gIH1cclxub3ZlcnJpZGUgc2F2ZSgpOiB2b2lkIHtcclxuICAgIHN1cGVyLnNhdmUoKVxyXG4gIHRoaXMuX2RpYWxvZ1NlcnZpY2Uuc2V0RGF0YSh7dG9BZGRyZXNzIDogdGhpcy50b0FkZHJlc3MsIGNjQWRkcmVzcyA6IHRoaXMuY2NBZGRyZXNzLCBvYmpldDogdGhpcy5vYmpldCwgbWVzc2FnZTogdGhpcy5tZXNzYWdlfSk7XHJcbiAgaWYgKHRoaXMuc2F2ZVN1YmplY3QpIHtcclxuICAgIHRoaXMuc2F2ZVN1YmplY3QubmV4dCh7IGRhdGE6ICdzYXZlJyB9KTtcclxuICB9XHJcbiAgdGhpcy5yZWYuY2xvc2UoKTtcclxufVxyXG4gIFxyXG5cclxuXHJcblxyXG59XHJcbiIsIlxyXG4gIDwhLS0gPFRzaS1CdXR0b24gW2J1dHRvblR5cGVdPVwiYnV0dG9uVHlwZS5TdWJtaXRcIiB0ZXh0PVwie3sncGFpZV9wYXJhbWV0cmVfcGFyYW1ldHJlQXBwX3Rlc3QnIHwgbG9jYWxpemV9fVwiIChvbkNsaWNrKT1cIlNlbmRFbWFpbCgpXCI+PC9Uc2ktQnV0dG9uPiAtLT5cclxuICA8dHNpLWZvcm0gKG9uU3VibWl0KT1cInNhdmUoKVwiIFtpc0xvYWRpbmddPVwiaXNsb2FkaW5nXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIiBjb2wtMTJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxyXG4gICAgICAgICAgICA8VHNpLUxhYmVsIGNsYXNzPVwiY29sLTJcIiBbbGFiZWxWYWx1ZV09XCIncGFpZV9wYXJhbWV0cmVfcGFyYW1ldHJlQXBwX2VfbWFpbF9kZXN0aW5hdGFpcmUnXCI+XHJcbiAgICAgICAgICAgIDwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICA8VHNpLVRleHQtQm94IGNsYXNzPVwiY29sLThcIiBbaW5wdXROYW1lXT1cIidsaWJlbGxlJ1wiIFsoaW5wdXRGaWVsZCldPVwidG9BZGRyZXNzXCI+PC9Uc2ktVGV4dC1Cb3g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImdyaWRcIj5cclxuICAgICAgICAgIDxUc2ktTGFiZWwgY2xhc3M9XCJjb2wtMlwiIFtsYWJlbFZhbHVlXT1cIidwYWllX3BhcmFtZXRyZV9wYXJhbWV0cmVBcHBfQWRyZXNzZUNDJ1wiPlxyXG4gICAgICAgICAgPC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICA8VHNpLVRleHQtQm94IGNsYXNzPVwiY29sLThcIiBbaW5wdXROYW1lXT1cIidsaWJlbGxlJ1wiIFsoaW5wdXRGaWVsZCldPVwiY2NBZGRyZXNzXCI+PC9Uc2ktVGV4dC1Cb3g+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxyXG4gICAgICAgIDxUc2ktTGFiZWwgY2xhc3M9XCJjb2wtMlwiIFtsYWJlbFZhbHVlXT1cIidwYWllX3BhcmFtZXRyZV9wYXJhbWV0cmVBcHBfT2JqZXQnXCI+XHJcbiAgICAgICAgPC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgPFRzaS1UZXh0LUJveCBjbGFzcz1cImNvbC04XCIgW2lucHV0TmFtZV09XCInbGliZWxsZSdcIiBbKGlucHV0RmllbGQpXT1cIm9iamV0XCI+PC9Uc2ktVGV4dC1Cb3g+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJncmlkXCI+XHJcbiAgICAgIDxUc2ktTGFiZWwgY2xhc3M9XCJjb2wtMlwiIFtsYWJlbFZhbHVlXT1cIidwYWllX3BhcmFtZXRyZV9wYXJhbWV0cmVBcHBfTWVzc2FnZSdcIj5cclxuICAgICAgPC9Uc2ktTGFiZWw+XHJcbiAgICAgIDxUc2ktVGV4dC1Cb3ggY2xhc3M9XCJjb2wtOFwiIFtpbnB1dE5hbWVdPVwiJ2xpYmVsbGUnXCIgWyhpbnB1dEZpZWxkKV09XCJtZXNzYWdlXCI+PC9Uc2ktVGV4dC1Cb3g+XHJcbiAgPC9kaXY+XHJcbiAgICAgIFxyXG4gIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gICAgPFRzaS1Nb2RhbC1Gb290ZXIgKG9uQ2FuY2VsQ2xpY2spPVwiaGlkZSgpXCI+IDwvVHNpLU1vZGFsLUZvb3Rlcj5cclxuICA8L3RzaS1mb3JtPiJdfQ==
@@ -0,0 +1,52 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "primeng/tabview";
4
+ export class TsiTabPanelComponent {
5
+ constructor() {
6
+ //#region Inputs
7
+ this.heading = '';
8
+ this.closable = false;
9
+ this.headerStyleClass = '';
10
+ this.cache = true;
11
+ this.tooltipPosition = 'top';
12
+ this.tooltipPositionStyle = 'absolute';
13
+ this.tooltipStyleClass = '';
14
+ this.selected = false;
15
+ this.disabled = false;
16
+ this.leftIcon = '';
17
+ this.rightIcon = '';
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiTabPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiTabPanelComponent, selector: "tsi-tab-panel", inputs: { heading: "heading", closable: "closable", headerStyle: "headerStyle", headerStyleClass: "headerStyleClass", cache: "cache", tooltip: "tooltip", tooltipPosition: "tooltipPosition", tooltipPositionStyle: "tooltipPositionStyle", tooltipStyleClass: "tooltipStyleClass", selected: "selected", disabled: "disabled", leftIcon: "leftIcon", rightIcon: "rightIcon" }, ngImport: i0, template: "<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>", styles: [""], dependencies: [{ kind: "component", type: i1.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }] }); }
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiTabPanelComponent, decorators: [{
23
+ type: Component,
24
+ args: [{ selector: 'tsi-tab-panel', template: "<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>" }]
25
+ }], propDecorators: { heading: [{
26
+ type: Input
27
+ }], closable: [{
28
+ type: Input
29
+ }], headerStyle: [{
30
+ type: Input
31
+ }], headerStyleClass: [{
32
+ type: Input
33
+ }], cache: [{
34
+ type: Input
35
+ }], tooltip: [{
36
+ type: Input
37
+ }], tooltipPosition: [{
38
+ type: Input
39
+ }], tooltipPositionStyle: [{
40
+ type: Input
41
+ }], tooltipStyleClass: [{
42
+ type: Input
43
+ }], selected: [{
44
+ type: Input
45
+ }], disabled: [{
46
+ type: Input
47
+ }], leftIcon: [{
48
+ type: Input
49
+ }], rightIcon: [{
50
+ type: Input
51
+ }] } });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLXRhYi1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90c2ktc2hhcmVkLXVpL3NyYy9saWIvdHNpLWNvbXBvbmVudHMvdHNpLXRhYi1wYW5lbC90c2ktdGFiLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy90c2ktdGFiLXBhbmVsL3RzaS10YWItcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU9qRCxNQUFNLE9BQU8sb0JBQW9CO0lBTGpDO1FBT0UsZ0JBQWdCO1FBQ1AsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUVyQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBSTFCLHFCQUFnQixHQUFXLEVBQUUsQ0FBQztRQUU5QixVQUFLLEdBQVksSUFBSSxDQUFDO1FBSXRCLG9CQUFlLEdBQWlCLEtBQUssQ0FBQztRQUV0Qyx5QkFBb0IsR0FBVyxVQUFVLENBQUM7UUFFMUMsc0JBQWlCLEdBQVcsRUFBRSxDQUFDO1FBRS9CLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGNBQVMsR0FBVyxFQUFFLENBQUM7S0FLakM7K0dBN0JZLG9CQUFvQjttR0FBcEIsb0JBQW9CLHFhQ1BqQyx3ZEFhOEQ7OzRGRE5qRCxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsZUFBZTs4QkFPaEIsT0FBTztzQkFBZixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLO2dCQUVHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFFRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHNpLXRhYi1wYW5lbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RzaS10YWItcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RzaS10YWItcGFuZWwuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHNpVGFiUGFuZWxDb21wb25lbnQge1xyXG5cclxuICAvLyNyZWdpb24gSW5wdXRzXHJcbiAgQElucHV0KCkgaGVhZGluZzogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIGNsb3NhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGhlYWRlclN0eWxlOiBhbnk7XHJcblxyXG4gIEBJbnB1dCgpIGhlYWRlclN0eWxlQ2xhc3M6IHN0cmluZyA9ICcnO1xyXG5cclxuICBASW5wdXQoKSBjYWNoZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIHRvb2x0aXA6IGFueTtcclxuXHJcbiAgQElucHV0KCkgdG9vbHRpcFBvc2l0aW9uOiBzdHJpbmcgfCBhbnkgPSAndG9wJztcclxuXHJcbiAgQElucHV0KCkgdG9vbHRpcFBvc2l0aW9uU3R5bGU6IHN0cmluZyA9ICdhYnNvbHV0ZSc7XHJcblxyXG4gIEBJbnB1dCgpIHRvb2x0aXBTdHlsZUNsYXNzOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQElucHV0KCkgc2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGxlZnRJY29uOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSByaWdodEljb246IHN0cmluZyA9ICcnO1xyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvLyNyZWdpb24gT3V0cHV0c1xyXG4gIC8vI3JlZ2lvblxyXG59XHJcbiIsIjxwLXRhYlBhbmVsXHJcbltoZWFkZXJdPVwiaGVhZGluZ1wiXHJcblt0b29sdGlwU3R5bGVDbGFzc109XCJ0b29sdGlwU3R5bGVDbGFzc1wiXHJcblt0b29sdGlwUG9zaXRpb25TdHlsZV09XCJ0b29sdGlwUG9zaXRpb25TdHlsZVwiXHJcblt0b29sdGlwUG9zaXRpb25dPVwidG9vbHRpcFBvc2l0aW9uXCJcclxuW3Rvb2x0aXBdPVwidG9vbHRpcFwiXHJcbltjYWNoZV09XCJjYWNoZVwiXHJcbltoZWFkZXJTdHlsZUNsYXNzXT1cImhlYWRlclN0eWxlQ2xhc3NcIlxyXG5baGVhZGVyU3R5bGVdPVwiaGVhZGVyU3R5bGVcIlxyXG5bY2xvc2FibGVdPVwiY2xvc2FibGVcIlxyXG5bc2VsZWN0ZWRdPVwic2VsZWN0ZWRcIlxyXG5bZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG5bbGVmdEljb25dPVwibGVmdEljb25cIlxyXG5bcmlnaHRJY29uXT1cInJpZ2h0SWNvblwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L3AtdGFiUGFuZWw+Il19