bit-ng-library 12.0.3 → 13.0.0

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 (228) hide show
  1. package/README.md +146 -146
  2. package/bit-ng-library.d.ts +5 -6
  3. package/esm2020/bit-ng-library.mjs +5 -0
  4. package/esm2020/lib/base/components/base.component.mjs +18 -0
  5. package/{esm2015/lib/base/models/base-form.models.js → esm2020/lib/base/models/base-form.models.mjs} +129 -129
  6. package/{esm2015/lib/base/models/base-list.models.js → esm2020/lib/base/models/base-list.models.mjs} +202 -202
  7. package/{esm2015/lib/base/models/base-sublist.models.js → esm2020/lib/base/models/base-sublist.models.mjs} +93 -93
  8. package/{esm2015/lib/base/models/index.js → esm2020/lib/base/models/index.mjs} +5 -5
  9. package/esm2020/lib/base/models/types.mjs +19 -0
  10. package/esm2020/lib/base/shared/base-interface.service.mjs +2 -0
  11. package/esm2020/lib/base/shared/base.filter.mjs +78 -0
  12. package/{esm2015/lib/base/shared/base.service.js → esm2020/lib/base/shared/base.service.mjs} +85 -85
  13. package/{esm2015/lib/base/shared/utils.js → esm2020/lib/base/shared/utils.mjs} +113 -113
  14. package/esm2020/lib/sharedlibrary/components/breadcrumb/bit-breadcrumb.component.mjs +67 -0
  15. package/esm2020/lib/sharedlibrary/components/contol-messages/bit-control-messages.component.mjs +49 -0
  16. package/esm2020/lib/sharedlibrary/components/dialog/bit-dialog.component.mjs +209 -0
  17. package/esm2020/lib/sharedlibrary/components/footer/bit-footer.component.mjs +217 -0
  18. package/esm2020/lib/sharedlibrary/components/form/autocomplete/bit-autocomplete.component.mjs +47 -0
  19. package/esm2020/lib/sharedlibrary/components/form/bit-custom.component.mjs +86 -0
  20. package/esm2020/lib/sharedlibrary/components/form/bit-editable.component.mjs +87 -0
  21. package/esm2020/lib/sharedlibrary/components/form/bit-general.component.mjs +93 -0
  22. package/esm2020/lib/sharedlibrary/components/form/calendar/bit-calendar.component.mjs +37 -0
  23. package/esm2020/lib/sharedlibrary/components/form/checkbox/bit-checkbox.component.mjs +24 -0
  24. package/esm2020/lib/sharedlibrary/components/form/date/bit-date.component.mjs +45 -0
  25. package/esm2020/lib/sharedlibrary/components/form/datetime/bit-datetime.component.mjs +38 -0
  26. package/esm2020/lib/sharedlibrary/components/form/dropdown/bit-dropdown-general.component.mjs +100 -0
  27. package/esm2020/lib/sharedlibrary/components/form/dropdown/bit-dropdown-multiple.component.mjs +80 -0
  28. package/esm2020/lib/sharedlibrary/components/form/dropdown/bit-dropdown.component.mjs +86 -0
  29. package/esm2020/lib/sharedlibrary/components/form/editor/bit-editor.component.mjs +81 -0
  30. package/esm2020/lib/sharedlibrary/components/form/readonly/bit-readonly.component.mjs +96 -0
  31. package/esm2020/lib/sharedlibrary/components/form/switch/bit-switch.component.mjs +43 -0
  32. package/esm2020/lib/sharedlibrary/components/form/text/bit-text.component.mjs +23 -0
  33. package/esm2020/lib/sharedlibrary/components/form/textarea/bit-textarea.component.mjs +21 -0
  34. package/esm2020/lib/sharedlibrary/components/form/time/bit-time.component.mjs +45 -0
  35. package/esm2020/lib/sharedlibrary/components/header/bit-header.component.mjs +48 -0
  36. package/esm2020/lib/sharedlibrary/components/help/bit-help.component.mjs +59 -0
  37. package/esm2020/lib/sharedlibrary/components/loading/bit-loading.component.mjs +65 -0
  38. package/esm2020/lib/sharedlibrary/components/misc/bit-boton-ayuda.component.mjs +44 -0
  39. package/esm2020/lib/sharedlibrary/components/misc/bit-column-boolean.component.mjs +38 -0
  40. package/esm2020/lib/sharedlibrary/components/misc/bit-domain-value.component.mjs +45 -0
  41. package/esm2020/lib/sharedlibrary/components/notificacion/bit-notification-error.component.mjs +110 -0
  42. package/esm2020/lib/sharedlibrary/components/notificacion/bit-notification-toast.component.mjs +45 -0
  43. package/esm2020/lib/sharedlibrary/components/toolbar/bit-toolbar.component.mjs +104 -0
  44. package/esm2020/lib/sharedlibrary/components/upload/bit-ng-upload.component.mjs +133 -0
  45. package/esm2020/lib/sharedlibrary/components/user/bit-user-controls.component.mjs +39 -0
  46. package/{esm2015/lib/sharedlibrary/data/ayudacontextual.js → esm2020/lib/sharedlibrary/data/ayudacontextual.mjs} +12 -12
  47. package/{esm2015/lib/sharedlibrary/data/bitmessage.js → esm2020/lib/sharedlibrary/data/bitmessage.mjs} +21 -21
  48. package/{esm2015/lib/sharedlibrary/data/bitnotification-error.js → esm2020/lib/sharedlibrary/data/bitnotification-error.mjs} +11 -11
  49. package/{esm2015/lib/sharedlibrary/data/bitnotification.js → esm2020/lib/sharedlibrary/data/bitnotification.mjs} +12 -12
  50. package/{esm2015/lib/sharedlibrary/data/configuration-editor.js → esm2020/lib/sharedlibrary/data/configuration-editor.mjs} +20 -20
  51. package/{esm2015/lib/sharedlibrary/data/domain.js → esm2020/lib/sharedlibrary/data/domain.mjs} +9 -9
  52. package/{esm2015/lib/sharedlibrary/data/error.js → esm2020/lib/sharedlibrary/data/error.mjs} +14 -14
  53. package/{esm2015/lib/sharedlibrary/data/fichero.js → esm2020/lib/sharedlibrary/data/fichero.mjs} +18 -18
  54. package/{esm2015/lib/sharedlibrary/data/index.js → esm2020/lib/sharedlibrary/data/index.mjs} +10 -10
  55. package/{esm2015/lib/sharedlibrary/data/item.js → esm2020/lib/sharedlibrary/data/item.mjs} +9 -9
  56. package/esm2020/lib/sharedlibrary/directives/edit-mode.directive.mjs +16 -0
  57. package/esm2020/lib/sharedlibrary/directives/focus-register.directive.mjs +31 -0
  58. package/esm2020/lib/sharedlibrary/directives/view-mode.directive.mjs +16 -0
  59. package/{esm2015/lib/sharedlibrary/global.constants.js → esm2020/lib/sharedlibrary/global.constants.mjs} +24 -24
  60. package/esm2020/lib/sharedlibrary/guards/candeactivate.guard.mjs +13 -0
  61. package/esm2020/lib/sharedlibrary/pipes/capitalize.pipe.mjs +22 -0
  62. package/esm2020/lib/sharedlibrary/pipes/other-actions.pipe.mjs +26 -0
  63. package/esm2020/lib/sharedlibrary/pipes/pipe-cantidadmoneda.pipe.mjs +44 -0
  64. package/esm2020/lib/sharedlibrary/pipes/remove-line-breaks.pipe.mjs +28 -0
  65. package/{esm2015/lib/sharedlibrary/services/ayuda.service.js → esm2020/lib/sharedlibrary/services/ayuda.service.mjs} +38 -37
  66. package/{esm2015/lib/sharedlibrary/services/base-data-adapter.service.js → esm2020/lib/sharedlibrary/services/base-data-adapter.service.mjs} +16 -16
  67. package/esm2020/lib/sharedlibrary/services/base-data.service.mjs +4 -0
  68. package/{esm2015/lib/sharedlibrary/services/custom-validators.service.js → esm2020/lib/sharedlibrary/services/custom-validators.service.mjs} +627 -627
  69. package/esm2020/lib/sharedlibrary/services/domain.service.mjs +24 -0
  70. package/esm2020/lib/sharedlibrary/services/focus.service.mjs +30 -0
  71. package/{esm2015/lib/sharedlibrary/services/general-utils.service.js → esm2020/lib/sharedlibrary/services/general-utils.service.mjs} +143 -142
  72. package/esm2020/lib/sharedlibrary/services/http-utils.service.mjs +175 -0
  73. package/{esm2015/lib/sharedlibrary/services/index.js → esm2020/lib/sharedlibrary/services/index.mjs} +16 -16
  74. package/{esm2015/lib/sharedlibrary/services/locator.service.js → esm2020/lib/sharedlibrary/services/locator.service.mjs} +8 -8
  75. package/esm2020/lib/sharedlibrary/services/message.service.mjs +69 -0
  76. package/esm2020/lib/sharedlibrary/services/session-shared.service.mjs +23 -0
  77. package/esm2020/lib/sharedlibrary/services/tableview.service.mjs +19 -0
  78. package/esm2020/lib/sharedlibrary/services/toolbar.service.mjs +25 -0
  79. package/esm2020/lib/sharedlibrary/services/translate.service.mjs +67 -0
  80. package/{esm2015/lib/sharedlibrary/services/upload.service.js → esm2020/lib/sharedlibrary/services/upload.service.mjs} +57 -55
  81. package/esm2020/lib/sharedlibrary/sharedlibrary.module.mjs +264 -0
  82. package/esm2020/lib/sharedlibrary/utils/custom-http-interceptor.mjs +37 -0
  83. package/{esm2015/public-api.js → esm2020/public-api.mjs} +81 -81
  84. package/fesm2015/bit-ng-library.mjs +4708 -0
  85. package/fesm2015/bit-ng-library.mjs.map +1 -0
  86. package/{fesm2015/bit-ng-library.js → fesm2020/bit-ng-library.mjs} +4562 -4326
  87. package/fesm2020/bit-ng-library.mjs.map +1 -0
  88. package/lib/base/components/base.component.d.ts +8 -5
  89. package/lib/base/models/base-form.models.d.ts +80 -80
  90. package/lib/base/models/base-list.models.d.ts +136 -136
  91. package/lib/base/models/base-sublist.models.d.ts +42 -42
  92. package/lib/base/models/index.d.ts +4 -4
  93. package/lib/base/models/types.d.ts +33 -33
  94. package/lib/base/shared/base-interface.service.d.ts +37 -37
  95. package/lib/base/shared/base.filter.d.ts +37 -37
  96. package/lib/base/shared/base.service.d.ts +59 -59
  97. package/lib/base/shared/utils.d.ts +42 -42
  98. package/lib/sharedlibrary/components/breadcrumb/bit-breadcrumb.component.d.ts +25 -22
  99. package/lib/sharedlibrary/components/contol-messages/bit-control-messages.component.d.ts +15 -12
  100. package/lib/sharedlibrary/components/dialog/bit-dialog.component.d.ts +30 -27
  101. package/lib/sharedlibrary/components/footer/bit-footer.component.d.ts +73 -70
  102. package/lib/sharedlibrary/components/form/autocomplete/bit-autocomplete.component.d.ts +19 -16
  103. package/lib/sharedlibrary/components/form/bit-custom.component.d.ts +35 -32
  104. package/lib/sharedlibrary/components/form/bit-editable.component.d.ts +31 -28
  105. package/lib/sharedlibrary/components/form/bit-general.component.d.ts +41 -38
  106. package/lib/sharedlibrary/components/form/calendar/bit-calendar.component.d.ts +19 -16
  107. package/lib/sharedlibrary/components/form/checkbox/bit-checkbox.component.d.ts +10 -7
  108. package/lib/sharedlibrary/components/form/date/bit-date.component.d.ts +15 -12
  109. package/lib/sharedlibrary/components/form/datetime/bit-datetime.component.d.ts +14 -11
  110. package/lib/sharedlibrary/components/form/dropdown/bit-dropdown-general.component.d.ts +41 -38
  111. package/lib/sharedlibrary/components/form/dropdown/bit-dropdown-multiple.component.d.ts +37 -34
  112. package/lib/sharedlibrary/components/form/dropdown/bit-dropdown.component.d.ts +33 -30
  113. package/lib/sharedlibrary/components/form/editor/bit-editor.component.d.ts +31 -28
  114. package/lib/sharedlibrary/components/form/readonly/bit-readonly.component.d.ts +26 -23
  115. package/lib/sharedlibrary/components/form/switch/bit-switch.component.d.ts +15 -12
  116. package/lib/sharedlibrary/components/form/text/bit-text.component.d.ts +9 -6
  117. package/lib/sharedlibrary/components/form/textarea/bit-textarea.component.d.ts +9 -6
  118. package/lib/sharedlibrary/components/form/time/bit-time.component.d.ts +15 -12
  119. package/lib/sharedlibrary/components/header/bit-header.component.d.ts +22 -19
  120. package/lib/sharedlibrary/components/help/bit-help.component.d.ts +15 -12
  121. package/lib/sharedlibrary/components/loading/bit-loading.component.d.ts +17 -14
  122. package/lib/sharedlibrary/components/misc/bit-boton-ayuda.component.d.ts +12 -9
  123. package/lib/sharedlibrary/components/misc/bit-column-boolean.component.d.ts +13 -10
  124. package/lib/sharedlibrary/components/misc/bit-domain-value.component.d.ts +14 -11
  125. package/lib/sharedlibrary/components/notificacion/bit-notification-error.component.d.ts +34 -31
  126. package/lib/sharedlibrary/components/notificacion/bit-notification-toast.component.d.ts +16 -13
  127. package/lib/sharedlibrary/components/toolbar/bit-toolbar.component.d.ts +39 -36
  128. package/lib/sharedlibrary/components/upload/bit-ng-upload.component.d.ts +49 -46
  129. package/lib/sharedlibrary/components/user/bit-user-controls.component.d.ts +14 -11
  130. package/lib/sharedlibrary/data/ayudacontextual.d.ts +8 -8
  131. package/lib/sharedlibrary/data/bitmessage.d.ts +17 -17
  132. package/lib/sharedlibrary/data/bitnotification-error.d.ts +9 -9
  133. package/lib/sharedlibrary/data/bitnotification.d.ts +10 -10
  134. package/lib/sharedlibrary/data/configuration-editor.d.ts +9 -9
  135. package/lib/sharedlibrary/data/domain.d.ts +7 -7
  136. package/lib/sharedlibrary/data/error.d.ts +12 -12
  137. package/lib/sharedlibrary/data/fichero.d.ts +13 -13
  138. package/lib/sharedlibrary/data/index.d.ts +9 -9
  139. package/lib/sharedlibrary/data/item.d.ts +7 -7
  140. package/lib/sharedlibrary/directives/edit-mode.directive.d.ts +8 -5
  141. package/lib/sharedlibrary/directives/focus-register.directive.d.ts +13 -10
  142. package/lib/sharedlibrary/directives/view-mode.directive.d.ts +8 -5
  143. package/lib/sharedlibrary/global.constants.d.ts +15 -15
  144. package/lib/sharedlibrary/guards/candeactivate.guard.d.ts +11 -8
  145. package/lib/sharedlibrary/pipes/capitalize.pipe.d.ts +10 -7
  146. package/lib/sharedlibrary/pipes/other-actions.pipe.d.ts +7 -4
  147. package/lib/sharedlibrary/pipes/pipe-cantidadmoneda.pipe.d.ts +12 -9
  148. package/lib/sharedlibrary/pipes/remove-line-breaks.pipe.d.ts +7 -4
  149. package/lib/sharedlibrary/services/ayuda.service.d.ts +13 -10
  150. package/lib/sharedlibrary/services/base-data-adapter.service.d.ts +11 -11
  151. package/lib/sharedlibrary/services/base-data.service.d.ts +13 -13
  152. package/lib/sharedlibrary/services/custom-validators.service.d.ts +173 -173
  153. package/lib/sharedlibrary/services/domain.service.d.ts +11 -8
  154. package/lib/sharedlibrary/services/focus.service.d.ts +12 -9
  155. package/lib/sharedlibrary/services/general-utils.service.d.ts +39 -36
  156. package/lib/sharedlibrary/services/http-utils.service.d.ts +34 -31
  157. package/lib/sharedlibrary/services/index.d.ts +15 -15
  158. package/lib/sharedlibrary/services/locator.service.d.ts +8 -8
  159. package/lib/sharedlibrary/services/message.service.d.ts +44 -41
  160. package/lib/sharedlibrary/services/session-shared.service.d.ts +9 -6
  161. package/lib/sharedlibrary/services/tableview.service.d.ts +9 -6
  162. package/lib/sharedlibrary/services/toolbar.service.d.ts +10 -7
  163. package/lib/sharedlibrary/services/translate.service.d.ts +31 -28
  164. package/lib/sharedlibrary/services/upload.service.d.ts +19 -16
  165. package/lib/sharedlibrary/sharedlibrary.module.d.ts +71 -6
  166. package/lib/sharedlibrary/utils/custom-http-interceptor.d.ts +13 -10
  167. package/package.json +19 -7
  168. package/public-api.d.ts +77 -77
  169. package/bit-ng-library.metadata.json +0 -1
  170. package/bundles/bit-ng-library.umd.js +0 -5168
  171. package/bundles/bit-ng-library.umd.js.map +0 -1
  172. package/esm2015/bit-ng-library.js +0 -6
  173. package/esm2015/lib/base/components/base.component.js +0 -15
  174. package/esm2015/lib/base/models/types.js +0 -19
  175. package/esm2015/lib/base/shared/base-interface.service.js +0 -2
  176. package/esm2015/lib/base/shared/base.filter.js +0 -78
  177. package/esm2015/lib/sharedlibrary/components/breadcrumb/bit-breadcrumb.component.js +0 -57
  178. package/esm2015/lib/sharedlibrary/components/contol-messages/bit-control-messages.component.js +0 -43
  179. package/esm2015/lib/sharedlibrary/components/dialog/bit-dialog.component.js +0 -163
  180. package/esm2015/lib/sharedlibrary/components/footer/bit-footer.component.js +0 -206
  181. package/esm2015/lib/sharedlibrary/components/form/autocomplete/bit-autocomplete.component.js +0 -44
  182. package/esm2015/lib/sharedlibrary/components/form/bit-custom.component.js +0 -89
  183. package/esm2015/lib/sharedlibrary/components/form/bit-editable.component.js +0 -83
  184. package/esm2015/lib/sharedlibrary/components/form/bit-general.component.js +0 -81
  185. package/esm2015/lib/sharedlibrary/components/form/calendar/bit-calendar.component.js +0 -38
  186. package/esm2015/lib/sharedlibrary/components/form/checkbox/bit-checkbox.component.js +0 -23
  187. package/esm2015/lib/sharedlibrary/components/form/date/bit-date.component.js +0 -45
  188. package/esm2015/lib/sharedlibrary/components/form/datetime/bit-datetime.component.js +0 -38
  189. package/esm2015/lib/sharedlibrary/components/form/dropdown/bit-dropdown-general.component.js +0 -99
  190. package/esm2015/lib/sharedlibrary/components/form/dropdown/bit-dropdown-multiple.component.js +0 -81
  191. package/esm2015/lib/sharedlibrary/components/form/dropdown/bit-dropdown.component.js +0 -89
  192. package/esm2015/lib/sharedlibrary/components/form/editor/bit-editor.component.js +0 -77
  193. package/esm2015/lib/sharedlibrary/components/form/readonly/bit-readonly.component.js +0 -95
  194. package/esm2015/lib/sharedlibrary/components/form/switch/bit-switch.component.js +0 -43
  195. package/esm2015/lib/sharedlibrary/components/form/text/bit-text.component.js +0 -19
  196. package/esm2015/lib/sharedlibrary/components/form/textarea/bit-textarea.component.js +0 -19
  197. package/esm2015/lib/sharedlibrary/components/form/time/bit-time.component.js +0 -45
  198. package/esm2015/lib/sharedlibrary/components/header/bit-header.component.js +0 -38
  199. package/esm2015/lib/sharedlibrary/components/help/bit-help.component.js +0 -47
  200. package/esm2015/lib/sharedlibrary/components/loading/bit-loading.component.js +0 -55
  201. package/esm2015/lib/sharedlibrary/components/misc/bit-boton-ayuda.component.js +0 -33
  202. package/esm2015/lib/sharedlibrary/components/misc/bit-column-boolean.component.js +0 -28
  203. package/esm2015/lib/sharedlibrary/components/misc/bit-domain-value.component.js +0 -39
  204. package/esm2015/lib/sharedlibrary/components/notificacion/bit-notification-error.component.js +0 -110
  205. package/esm2015/lib/sharedlibrary/components/notificacion/bit-notification-toast.component.js +0 -45
  206. package/esm2015/lib/sharedlibrary/components/toolbar/bit-toolbar.component.js +0 -97
  207. package/esm2015/lib/sharedlibrary/components/upload/bit-ng-upload.component.js +0 -118
  208. package/esm2015/lib/sharedlibrary/components/user/bit-user-controls.component.js +0 -30
  209. package/esm2015/lib/sharedlibrary/directives/edit-mode.directive.js +0 -15
  210. package/esm2015/lib/sharedlibrary/directives/focus-register.directive.js +0 -30
  211. package/esm2015/lib/sharedlibrary/directives/view-mode.directive.js +0 -15
  212. package/esm2015/lib/sharedlibrary/guards/candeactivate.guard.js +0 -10
  213. package/esm2015/lib/sharedlibrary/pipes/capitalize.pipe.js +0 -18
  214. package/esm2015/lib/sharedlibrary/pipes/other-actions.pipe.js +0 -22
  215. package/esm2015/lib/sharedlibrary/pipes/pipe-cantidadmoneda.pipe.js +0 -41
  216. package/esm2015/lib/sharedlibrary/pipes/remove-line-breaks.pipe.js +0 -24
  217. package/esm2015/lib/sharedlibrary/services/base-data.service.js +0 -4
  218. package/esm2015/lib/sharedlibrary/services/domain.service.js +0 -26
  219. package/esm2015/lib/sharedlibrary/services/focus.service.js +0 -28
  220. package/esm2015/lib/sharedlibrary/services/http-utils.service.js +0 -178
  221. package/esm2015/lib/sharedlibrary/services/message.service.js +0 -68
  222. package/esm2015/lib/sharedlibrary/services/session-shared.service.js +0 -22
  223. package/esm2015/lib/sharedlibrary/services/tableview.service.js +0 -18
  224. package/esm2015/lib/sharedlibrary/services/toolbar.service.js +0 -24
  225. package/esm2015/lib/sharedlibrary/services/translate.service.js +0 -67
  226. package/esm2015/lib/sharedlibrary/sharedlibrary.module.js +0 -135
  227. package/esm2015/lib/sharedlibrary/utils/custom-http-interceptor.js +0 -41
  228. package/fesm2015/bit-ng-library.js.map +0 -1
package/README.md CHANGED
@@ -1,146 +1,146 @@
1
- # BitNgLibrary
2
-
3
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.1.6.
4
-
5
- ## Code scaffolding
6
-
7
- Run `ng generate component component-name --project bit-ng-library` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project bit-ng-library`.
8
-
9
- > Note: Don't forget to add `--project bit-ng-library` or else it will be added to the default project in your `angular.json` file.
10
-
11
- ## Build
12
-
13
- Run `ng build bit-ng-library --configuration production` to build the project. The build artifacts will be stored in the `dist/` directory.
14
-
15
- ## Publishing
16
-
17
- After building your library with `ng build bit-ng-library`, go to the dist folder `cd dist/bit-ng-library` and run `npm publish`.
18
-
19
- ## Running unit tests
20
-
21
- Run `ng test bit-ng-library` to execute the unit tests via [Karma](https://karma-runner.github.io).
22
-
23
- ## Further help
24
-
25
- To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
26
-
27
- ## changelog
28
-
29
- ## [12.0.3] - 2021-12-30
30
-
31
- Nuevo parámetro "inputAccept" para el "input file" del componente BitNgUpload, que permite restringir los tipos de ficheros del explorador de archivos al elegir un archivo para subida.
32
-
33
- ## [12.0.2] - 2021-10-20
34
-
35
- Se aplican cambios para centrar spinner y el breadcrumb
36
-
37
- ## [12.0.1] - 2021-09-30
38
-
39
- Se aplican cambios para adecuarse al primeflex3
40
-
41
- ## [12.0.0] - 2021-08-22
42
-
43
- Versión angular12
44
-
45
- ## [11.0.6] - 2021-08-06
46
-
47
- Estilo para el footer sin resultados
48
-
49
- ## [11.0.5] - 2021-07-08
50
-
51
- se restaura el servicio DomainService que había desaparecido tras un delete no sé muy bien porqué
52
-
53
- ## [11.0.4] - 2021-07-08
54
-
55
- se pone firstDayOfWeek a los calendarios de prime
56
-
57
- ## [11.0.3] - 2021-05-20
58
-
59
- Se modifica el bit-ng-upload
60
-
61
- ## [11.0.2] - 2021-05-13
62
-
63
- Se adapta la toolbar a prime para el caso de botones con más acciones
64
-
65
- ## [11.0.1] - 2021-05-05
66
-
67
- Se añade la función objectoToQueryParameters
68
-
69
- ## [11.0.0] - 2021-04-21
70
-
71
- Versión compatible con angular 11
72
-
73
- ## [1.2.4] - 2021-04-21
74
-
75
- se añaden console.log en el envío de la notificacionError al detectarse fallos
76
-
77
- ## [1.2.3] - 2021-03-19
78
-
79
- método para poder ocultar notificaciones de error
80
-
81
- ## [1.2.2] - 2021-03-05
82
-
83
- Se imorta moment versión mini
84
-
85
- ## [1.2.1] - 2021-02-25
86
-
87
- Añadir tag pInputText al input de bit-text-component.
88
-
89
- ## [1.2.0] - 2021-02-05
90
-
91
- Migración a angular 10
92
-
93
- ## [1.1.3] - 2020-09-11
94
-
95
- ### Changed
96
-
97
- Se añade la validación de teléfonos separados por comas
98
-
99
- ## [1.1.2] - 2020-09-10
100
-
101
- ### Changed
102
-
103
- Se arregla un fallo del bit-dropdown-multiple que no traduce el valor emptyTest.
104
- Se añade el parámetro filter al bit-dropdown-multiple para poder indicar si queremos que filtre o no
105
-
106
- ## [1.1.1] - 2020-08-07
107
-
108
- ### Changed
109
-
110
- Se arregla un fallo del bit-dropdown que repetía dos veces el valor empty
111
-
112
- ## [1.1.0] - 2020-07-30
113
-
114
- ### Changed
115
-
116
- Se eliminan los css internos
117
-
118
- ## [1.0.0] - 2020-07-01
119
-
120
- ### Changed
121
-
122
- Primera versión funcional
123
-
124
- ## [1.0.3-alpha1] - 2020-05-14
125
-
126
- ### Changed
127
-
128
- - Se modifica el observable que notifica el cambio de idioma de Subject a BehaviourSubject por un issue que siempre se emitía el valor ca cuando te resuscribías
129
-
130
- ## [1.0.3-alpha1] - 2020-05-13
131
-
132
- ### Changed
133
-
134
- - Label mal construido no se traducía
135
-
136
- ## [1.0.2-alpha1] - 2020-05-13
137
-
138
- ### Changed
139
-
140
- - Se publica la clase BaseLisPaginateComponent
141
-
142
- ## [1.0.1-alpha1] - 2020-05-12
143
-
144
- ### Added
145
-
146
- - Commit inicial
1
+ # BitNgLibrary
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.1.6.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project bit-ng-library` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project bit-ng-library`.
8
+
9
+ > Note: Don't forget to add `--project bit-ng-library` or else it will be added to the default project in your `angular.json` file.
10
+
11
+ ## Build
12
+
13
+ Run `ng build bit-ng-library --configuration production` to build the project. The build artifacts will be stored in the `dist/` directory.
14
+
15
+ ## Publishing
16
+
17
+ After building your library with `ng build bit-ng-library`, go to the dist folder `cd dist/bit-ng-library` and run `npm publish`.
18
+
19
+ ## Running unit tests
20
+
21
+ Run `ng test bit-ng-library` to execute the unit tests via [Karma](https://karma-runner.github.io).
22
+
23
+ ## Further help
24
+
25
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
26
+
27
+ ## changelog
28
+
29
+ ## [12.0.3] - 2021-12-30
30
+
31
+ Nuevo parámetro "inputAccept" para el "input file" del componente BitNgUpload, que permite restringir los tipos de ficheros del explorador de archivos al elegir un archivo para subida.
32
+
33
+ ## [12.0.2] - 2021-10-20
34
+
35
+ Se aplican cambios para centrar spinner y el breadcrumb
36
+
37
+ ## [12.0.1] - 2021-09-30
38
+
39
+ Se aplican cambios para adecuarse al primeflex3
40
+
41
+ ## [12.0.0] - 2021-08-22
42
+
43
+ Versión angular12
44
+
45
+ ## [11.0.6] - 2021-08-06
46
+
47
+ Estilo para el footer sin resultados
48
+
49
+ ## [11.0.5] - 2021-07-08
50
+
51
+ se restaura el servicio DomainService que había desaparecido tras un delete no sé muy bien porqué
52
+
53
+ ## [11.0.4] - 2021-07-08
54
+
55
+ se pone firstDayOfWeek a los calendarios de prime
56
+
57
+ ## [11.0.3] - 2021-05-20
58
+
59
+ Se modifica el bit-ng-upload
60
+
61
+ ## [11.0.2] - 2021-05-13
62
+
63
+ Se adapta la toolbar a prime para el caso de botones con más acciones
64
+
65
+ ## [11.0.1] - 2021-05-05
66
+
67
+ Se añade la función objectoToQueryParameters
68
+
69
+ ## [11.0.0] - 2021-04-21
70
+
71
+ Versión compatible con angular 11
72
+
73
+ ## [1.2.4] - 2021-04-21
74
+
75
+ se añaden console.log en el envío de la notificacionError al detectarse fallos
76
+
77
+ ## [1.2.3] - 2021-03-19
78
+
79
+ método para poder ocultar notificaciones de error
80
+
81
+ ## [1.2.2] - 2021-03-05
82
+
83
+ Se imorta moment versión mini
84
+
85
+ ## [1.2.1] - 2021-02-25
86
+
87
+ Añadir tag pInputText al input de bit-text-component.
88
+
89
+ ## [1.2.0] - 2021-02-05
90
+
91
+ Migración a angular 10
92
+
93
+ ## [1.1.3] - 2020-09-11
94
+
95
+ ### Changed
96
+
97
+ Se añade la validación de teléfonos separados por comas
98
+
99
+ ## [1.1.2] - 2020-09-10
100
+
101
+ ### Changed
102
+
103
+ Se arregla un fallo del bit-dropdown-multiple que no traduce el valor emptyTest.
104
+ Se añade el parámetro filter al bit-dropdown-multiple para poder indicar si queremos que filtre o no
105
+
106
+ ## [1.1.1] - 2020-08-07
107
+
108
+ ### Changed
109
+
110
+ Se arregla un fallo del bit-dropdown que repetía dos veces el valor empty
111
+
112
+ ## [1.1.0] - 2020-07-30
113
+
114
+ ### Changed
115
+
116
+ Se eliminan los css internos
117
+
118
+ ## [1.0.0] - 2020-07-01
119
+
120
+ ### Changed
121
+
122
+ Primera versión funcional
123
+
124
+ ## [1.0.3-alpha1] - 2020-05-14
125
+
126
+ ### Changed
127
+
128
+ - Se modifica el observable que notifica el cambio de idioma de Subject a BehaviourSubject por un issue que siempre se emitía el valor ca cuando te resuscribías
129
+
130
+ ## [1.0.3-alpha1] - 2020-05-13
131
+
132
+ ### Changed
133
+
134
+ - Label mal construido no se traducía
135
+
136
+ ## [1.0.2-alpha1] - 2020-05-13
137
+
138
+ ### Changed
139
+
140
+ - Se publica la clase BaseLisPaginateComponent
141
+
142
+ ## [1.0.1-alpha1] - 2020-05-12
143
+
144
+ ### Added
145
+
146
+ - Commit inicial
@@ -1,6 +1,5 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- export { ErrorValidateForm as ɵh, TranslatedMessage as ɵg } from './lib/base/models';
6
- export { AyudaService as ɵe, BitMessageService as ɵc, FocusService as ɵa, GeneralUtils as ɵd, SessionSharedService as ɵf, TranslateService as ɵb } from './lib/sharedlibrary/services';
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="bit-ng-library" />
5
+ export * from './public-api';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0LW5nLWxpYnJhcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9iaXQtbmctbGlicmFyeS9zcmMvYml0LW5nLWxpYnJhcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,18 @@
1
+ import { Subject } from "rxjs";
2
+ import { Directive } from "@angular/core";
3
+ import * as i0 from "@angular/core";
4
+ export class BaseComponent {
5
+ constructor() {
6
+ this.destroy$ = new Subject();
7
+ }
8
+ ngOnDestroy() {
9
+ this.destroy$.next(true);
10
+ this.destroy$.unsubscribe();
11
+ }
12
+ }
13
+ BaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: BaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
14
+ BaseComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: BaseComponent, ngImport: i0 });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: BaseComponent, decorators: [{
16
+ type: Directive
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iaXQtbmctbGlicmFyeS9zcmMvbGliL2Jhc2UvY29tcG9uZW50cy9iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzFDLE1BQU0sT0FBZ0IsYUFBYTtJQURuQztRQUVFLGFBQVEsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztLQU1yRDtJQUpDLFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7OzBHQU5tQixhQUFhOzhGQUFiLGFBQWE7MkZBQWIsYUFBYTtrQkFEbEMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNvbXBvbmVudCB7XG4gIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
@@ -1,129 +1,129 @@
1
- import { PageStatus, FormType } from "../../sharedlibrary/global.constants";
2
- export class BaseFormAdapter {
3
- constructor(fnCreateObject, fnGetToolbarObjectLoaded) {
4
- this.fnCreateObject = fnCreateObject;
5
- this.fnGetToolbarObjectLoaded = fnGetToolbarObjectLoaded;
6
- }
7
- getInitialState(optional) {
8
- const initialState = Object.assign({
9
- item: this.fnCreateObject(),
10
- toolbar: this.initToolbar(),
11
- status: PageStatus.Init,
12
- readOnly: false,
13
- formType: FormType.Insert,
14
- currentTab: 0,
15
- loaded: false,
16
- updated: false
17
- }, optional);
18
- return initialState;
19
- }
20
- handleCreateObject(state) {
21
- const item = this.fnCreateObject();
22
- const status = PageStatus.Init;
23
- const toolbar = this.initToolbar();
24
- const formType = FormType.Insert;
25
- return Object.assign({}, state, {
26
- item,
27
- status,
28
- toolbar,
29
- formType
30
- });
31
- }
32
- handleLoadObject(state) {
33
- const status = PageStatus.Searching;
34
- const loaded = false;
35
- return Object.assign({}, state, { status, loaded });
36
- }
37
- handleLoadObjectSuccess(payload, state) {
38
- const item = payload;
39
- const status = PageStatus.Init;
40
- const loaded = true;
41
- let toolbar;
42
- let formType;
43
- toolbar = this.fnGetToolbarObjectLoaded(item);
44
- formType = FormType.Update;
45
- return Object.assign({}, state, {
46
- item,
47
- status,
48
- toolbar,
49
- formType,
50
- loaded
51
- });
52
- }
53
- handleSaveObject(state) {
54
- const updated = false;
55
- return Object.assign({}, state, { updated });
56
- }
57
- handleSaveObjectSuccess(payload, state) {
58
- const item = payload;
59
- let toolbar = this.fnGetToolbarObjectLoaded(item);
60
- const formType = FormType.Update;
61
- const status = PageStatus.FinishSearch;
62
- const updated = true;
63
- return Object.assign({}, state, { item, formType, status, updated, toolbar });
64
- }
65
- handleSaveObjectFail(state) {
66
- const status = PageStatus.Error;
67
- const updated = false;
68
- return Object.assign({}, state, { status, updated });
69
- }
70
- handleSetFormReadOnly(payload, state) {
71
- const readOnly = payload;
72
- return Object.assign({}, state, { readOnly });
73
- }
74
- getSelectors() {
75
- return {
76
- getItem: (state) => state.item,
77
- getToolbar: (state) => (state.readOnly ? {} : state.toolbar),
78
- getStatus: (state) => state.status,
79
- getFormType: (state) => state.formType,
80
- getCurrentTab: (state) => state.currentTab,
81
- getReadOnly: (state) => state.readOnly,
82
- getLoaded: (state) => state.loaded,
83
- getUpdated: (state) => state.updated
84
- };
85
- }
86
- initToolbar() {
87
- return getInitToolbar();
88
- }
89
- }
90
- export function createBaseFormAdapter(fnCreateObject, fnGetToolbarObjectLoaded) {
91
- return new BaseFormAdapter(fnCreateObject, fnGetToolbarObjectLoaded ? fnGetToolbarObjectLoaded : getToolbarObjectLoadedDefault);
92
- }
93
- export function getInitToolbar() {
94
- return {
95
- //mínimos toolbar de un formulario
96
- save: { visible: true, enable: true },
97
- delete: { visible: false, enable: true },
98
- print: { visible: false, enable: false }
99
- };
100
- }
101
- export function getToolbarObjectLoadedDefault() {
102
- return {
103
- save: { visible: true, enable: true },
104
- delete: { visible: true, enable: true },
105
- print: { visible: true, enable: true }
106
- };
107
- }
108
- // Construye una toolbar para un formulario en función del tip de formulario y de si el botón de guardar debe estar activo
109
- export function makeToolbarForm(formType, saveEnable) {
110
- switch (formType) {
111
- case FormType.Select:
112
- return { print: { visible: true, enable: true } };
113
- case FormType.Insert:
114
- return {
115
- save: { visible: true, enable: saveEnable },
116
- delete: { visible: false, enable: true },
117
- print: { visible: false, enable: false }
118
- };
119
- case FormType.Update:
120
- return {
121
- save: { visible: true, enable: saveEnable },
122
- delete: { visible: true, enable: true },
123
- print: { visible: true, enable: true }
124
- };
125
- default:
126
- return {};
127
- }
128
- }
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtLm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JpdC1uZy1saWJyYXJ5L3NyYy9saWIvYmFzZS9tb2RlbHMvYmFzZS1mb3JtLm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBYzVFLE1BQU0sT0FBTyxlQUFlO0lBQzFCLFlBQXNCLGNBQXlDLEVBQVksd0JBQWtEO1FBQXZHLG1CQUFjLEdBQWQsY0FBYyxDQUEyQjtRQUFZLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7SUFBRyxDQUFDO0lBRWpJLGVBQWUsQ0FBNkIsUUFBYztRQUN4RCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUNoQztZQUNFLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQzNCLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzNCLE1BQU0sRUFBRSxVQUFVLENBQUMsSUFBSTtZQUN2QixRQUFRLEVBQUUsS0FBSztZQUNmLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTTtZQUN6QixVQUFVLEVBQUUsQ0FBQztZQUNiLE1BQU0sRUFBRSxLQUFLO1lBQ2IsT0FBTyxFQUFFLEtBQUs7U0FDZixFQUNELFFBQVEsQ0FDVCxDQUFDO1FBQ0YsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVELGtCQUFrQixDQUE2QixLQUFRO1FBQ3JELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNuQyxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQy9CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ2pDLE9BQU8sTUFBTSxDQUFD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RUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtLQUN2QyxDQUFDO0FBQ0osQ0FBQztBQWFELDBIQUEwSDtBQUMxSCxNQUFNLFVBQVUsZUFBZSxDQUFDLFFBQWtCLEVBQUUsVUFBbUI7SUFDckUsUUFBUSxRQUFRLEVBQUU7UUFDaEIsS0FBSyxRQUFRLENBQUMsTUFBTTtZQUNsQixPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNwRCxLQUFLLFFBQVEsQ0FBQyxNQUFNO1lBQ2xCLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFO2dCQUMzQyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ3hDLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTthQUN6QyxDQUFDO1FBQ0osS0FBSyxRQUFRLENBQUMsTUFBTTtZQUNsQixPQUFPO2dCQUNMLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRTtnQkFDM0MsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUN2QyxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7YUFDdkMsQ0FBQztRQUNKO1lBQ0UsT0FBTyxFQUFFLENBQUM7S0FDYjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYWdlU3RhdHVzLCBGb3JtVHlwZSB9IGZyb20gXCIuLi8uLi9zaGFyZWRsaWJyYXJ5L2dsb2JhbC5jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgRmFjdG9yeUNyZWF0ZU5ld09iamVjdCwgRmFjdG9yeUNyZWF0ZVRvb2xiYXIgfSBmcm9tIFwiLi90eXBlc1wiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCYXNlRm9ybVN0YXRlPFQ+IHtcclxuICBpdGVtOiBUO1xyXG4gIHRvb2xiYXI6IGFueTtcclxuICBzdGF0dXM6IFBhZ2VTdGF0dXM7XHJcbiAgcmVhZE9ubHk6IGJvb2xlYW47XHJcbiAgZm9ybVR5cGU6IEZvcm1UeXBlO1xyXG4gIGN1cnJlbnRUYWI6IG51bWJlcjtcclxuICBsb2FkZWQ6IGJvb2xlYW47XHJcbiAgdXBkYXRlZDogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEJhc2VGb3JtQWRhcHRlcjxUPiB7XHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGZuQ3JlYXRlT2JqZWN0OiBGYWN0b3J5Q3JlYXRlTmV3T2JqZWN0PFQ+LCBwcm90ZWN0ZWQgZm5HZXRUb29sYmFyT2JqZWN0TG9hZGVkPzogRmFjdG9yeUNyZWF0ZVRvb2xiYXI8VD4pIHt9XHJcblxyXG4gIGdldEluaXRpYWxTdGF0ZTxTIGV4dGVuZHMgQmFzZUZvcm1TdGF0ZTxUPj4ob3B0aW9uYWw/OiBhbnkpOiBTIHtcclxuICAgIGNvbnN0IGluaXRpYWxTdGF0ZSA9IE9iamVjdC5hc3NpZ24oXHJcbiAgICAgIHtcclxuICAgICAgICBpdGVtOiB0aGlzLmZuQ3JlYXRlT2JqZWN0KCksXHJcbiAgICAgICAgdG9vbGJhcjogdGhpcy5pbml0VG9vbGJhcigpLFxyXG4gICAgICAgIHN0YXR1czogUGFnZVN0YXR1cy5Jbml0LFxyXG4gICAgICAgIHJlYWRPbmx5OiBmYWxzZSxcclxuICAgICAgICBmb3JtVHlwZTogRm9ybVR5cGUuSW5zZXJ0LFxyXG4gICAgICAgIGN1cnJlbnRUYWI6IDAsXHJcbiAgICAgICAgbG9hZGVkOiBmYWxzZSxcclxuICAgICAgICB1cGRhdGVkOiBmYWxzZVxyXG4gICAgICB9LFxyXG4gICAgICBvcHRpb25hbFxyXG4gICAgKTtcclxuICAgIHJldHVybiBpbml0aWFsU3RhdGU7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDcmVhdGVPYmplY3Q8UyBleHRlbmRzIEJhc2VGb3JtU3RhdGU8VD4+KHN0YXRlOiBTKTogUyB7XHJcbiAgICBjb25zdCBpdGVtID0gdGhpcy5mbkNyZWF0ZU9iamVjdCgpO1xyXG4gICAgY29uc3Qgc3RhdHVzID0gUGFnZVN0YXR1cy5Jbml0O1xyXG4gICAgY29uc3QgdG9vbGJhciA9IHRoaXMuaW5pdFRvb2xiYXIoKTtcclxuICAgIGNvbnN0IGZvcm1UeXBlID0gRm9ybVR5cGUuSW5zZXJ0O1xyXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7XHJcbiAgICAgIGl0ZW0sXHJcbiAgICAgIHN0YXR1cyxcclxuICAgICAgdG9vbGJhcixcclxuICAgICAgZm9ybVR5cGVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlTG9hZE9iamVjdDxTIGV4dGVuZHMgQmFzZUZvcm1TdGF0ZTxUPj4oc3RhdGU6IFMpOiBTIHtcclxuICAgIGNvbnN0IHN0YXR1cyA9IFBhZ2VTdGF0dXMuU2VhcmNoaW5nO1xyXG4gICAgY29uc3QgbG9hZGVkID0gZmFsc2U7XHJcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHsgc3RhdHVzLCBsb2FkZWQgfSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVMb2FkT2JqZWN0U3VjY2VzczxTIGV4dGVuZHMgQmFzZUZvcm1TdGF0ZTxUPj4ocGF5bG9hZDogVCwgc3RhdGU6IFMpOiBTIHtcclxuICAgIGNvbnN0IGl0ZW0gPSBwYXlsb2FkO1xyXG4gICAgY29uc3Qgc3RhdHVzID0gUGFnZVN0YXR1cy5Jbml0O1xyXG4gICAgY29uc3QgbG9hZGVkID0gdHJ1ZTtcclxuICAgIGxldCB0b29sYmFyO1xyXG4gICAgbGV0IGZvcm1UeXBlO1xyXG4gICAgdG9vbGJhciA9IHRoaXMuZm5HZXRUb29sYmFyT2JqZWN0TG9hZGVkKGl0ZW0pO1xyXG4gICAgZm9ybVR5cGUgPSBGb3JtVHlwZS5VcGRhdGU7XHJcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHtcclxuICAgICAgaXRlbSxcclxuICAgICAgc3RhdHVzLFxyXG4gICAgICB0b29sYmFyLFxyXG4gICAgICBmb3JtVHlwZSxcclxuICAgICAgbG9hZGVkXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVNhdmVPYmplY3Q8UyBleHRlbmRzIEJhc2VGb3JtU3RhdGU8VD4+KHN0YXRlOiBTKTogUyB7XHJcbiAgICBjb25zdCB1cGRhdGVkID0gZmFsc2U7XHJcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHsgdXBkYXRlZCB9KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVNhdmVPYmplY3RTdWNjZXNzPFMgZXh0ZW5kcyBCYXNlRm9ybVN0YXRlPFQ+PihwYXlsb2FkOiBULCBzdGF0ZTogUyk6IFMge1xyXG4gICAgY29uc3QgaXRlbSA9IHBheWxvYWQ7XHJcbiAgICBsZXQgdG9vbGJhciA9IHRoaXMuZm5HZXRUb29sYmFyT2JqZWN0TG9hZGVkKGl0ZW0pO1xyXG4gICAgY29uc3QgZm9ybVR5cGUgPSBGb3JtVHlwZS5VcGRhdGU7XHJcbiAgICBjb25zdCBzdGF0dXMgPSBQYWdlU3RhdHVzLkZpbmlzaFNlYXJjaDtcclxuICAgIGNvbnN0IHVwZGF0ZWQgPSB0cnVlO1xyXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7IGl0ZW0sIGZvcm1UeXBlLCBzdGF0dXMsIHVwZGF0ZWQsIHRvb2xiYXIgfSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTYXZlT2JqZWN0RmFpbDxTIGV4dGVuZHMgQmFzZUZvcm1TdGF0ZTxUPj4oc3RhdGU6IFMpOiBTIHtcclxuICAgIGNvbnN0IHN0YXR1cyA9IFBhZ2VTdGF0dXMuRXJyb3I7XHJcbiAgICBjb25zdCB1cGRhdGVkID0gZmFsc2U7XHJcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHsgc3RhdHVzLCB1cGRhdGVkIH0pO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlU2V0Rm9ybVJlYWRPbmx5PFMgZXh0ZW5kcyBCYXNlRm9ybVN0YXRlPFQ+PihwYXlsb2FkOiBib29sZWFuLCBzdGF0ZTogUyk6IFMge1xyXG4gICAgY29uc3QgcmVhZE9ubHkgPSBwYXlsb2FkO1xyXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7IHJlYWRPbmx5IH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VsZWN0b3JzKCk6IEJhc2VGb3JtU2VsZWN0b3JzPFQ+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGdldEl0ZW06IChzdGF0ZTogQmFzZUZvcm1TdGF0ZTxUPikgPT4gc3RhdGUuaXRlbSxcclxuICAgICAgZ2V0VG9vbGJhcjogKHN0YXRlOiBCYXNlRm9ybVN0YXRlPFQ+KSA9PiAoc3RhdGUucmVhZE9ubHkgPyB7fSA6IHN0YXRlLnRvb2xiYXIpLFxyXG4gICAgICBnZXRTdGF0dXM6IChzdGF0ZTogQmFzZUZvcm1TdGF0ZTxUPikgPT4gc3RhdGUuc3RhdHVzLFxyXG4gICAgICBnZXRGb3JtVHlwZTogKHN0YXRlOiBCYXNlRm9ybVN0YXRlPFQ+KSA9PiBzdGF0ZS5mb3JtVHlwZSxcclxuICAgICAgZ2V0Q3VycmVudFRhYjogKHN0YXRlOiBCYXNlRm9ybVN0YXRlPFQ+KSA9PiBzdGF0ZS5jdXJyZW50VGFiLFxyXG4gICAgICBnZXRSZWFkT25seTogKHN0YXRlOiBCYXNlRm9ybVN0YXRlPFQ+KSA9PiBzdGF0ZS5yZWFkT25seSxcclxuICAgICAgZ2V0TG9hZGVkOiAoc3RhdGU6IEJhc2VGb3JtU3RhdGU8VD4pID0+IHN0YXRlLmxvYWRlZCxcclxuICAgICAgZ2V0VXBkYXRlZDogKHN0YXRlOiBCYXNlRm9ybVN0YXRlPFQ+KSA9PiBzdGF0ZS51cGRhdGVkXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgaW5pdFRvb2xiYXIoKSB7XHJcbiAgICByZXR1cm4gZ2V0SW5pdFRvb2xiYXIoKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCYXNlRm9ybUFkYXB0ZXI8VD4oZm5DcmVhdGVPYmplY3Q6IEZhY3RvcnlDcmVhdGVOZXdPYmplY3Q8VD4sIGZuR2V0VG9vbGJhck9iamVjdExvYWRlZD86IEZhY3RvcnlDcmVhdGVUb29sYmFyPFQ+KTogQmFzZUZvcm1BZGFwdGVyPFQ+IHtcclxuICByZXR1cm4gbmV3IEJhc2VGb3JtQWRhcHRlcihmbkNyZWF0ZU9iamVjdCwgZm5HZXRUb29sYmFyT2JqZWN0TG9hZGVkID8gZm5HZXRUb29sYmFyT2JqZWN0TG9hZGVkIDogZ2V0VG9vbGJhck9iamVjdExvYWRlZERlZmF1bHQpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5pdFRvb2xiYXIoKSB7XHJcbiAgcmV0dXJuIHtcclxuICAgIC8vbcOtbmltb3MgdG9vbGJhciBkZSB1biBmb3JtdWxhcmlvXHJcbiAgICBzYXZlOiB7IHZpc2libGU6IHRydWUsIGVuYWJsZTogdHJ1ZSB9LFxyXG4gICAgZGVsZXRlOiB7IHZpc2libGU6IGZhbHNlLCBlbmFibGU6IHRydWUgfSxcclxuICAgIHByaW50OiB7IHZpc2libGU6IGZhbHNlLCBlbmFibGU6IGZhbHNlIH1cclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9vbGJhck9iamVjdExvYWRlZERlZmF1bHQoKSB7XHJcbiAgcmV0dXJuIHtcclxuICAgIHNhdmU6IHsgdmlzaWJsZTogdHJ1ZSwgZW5hYmxlOiB0cnVlIH0sXHJcbiAgICBkZWxldGU6IHsgdmlzaWJsZTogdHJ1ZSwgZW5hYmxlOiB0cnVlIH0sXHJcbiAgICBwcmludDogeyB2aXNpYmxlOiB0cnVlLCBlbmFibGU6IHRydWUgfVxyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgQmFzZUZvcm1TZWxlY3RvcnM8VD4gPSB7XHJcbiAgZ2V0SXRlbTogKHN0YXRlOiBCYXNlRm9ybVN0YXRlPFQ+KSA9PiBUO1xyXG4gIGdldFRvb2xiYXI6IChzdGF0ZTogQmFzZUZvcm1TdGF0ZTxUPikgPT4gYW55O1xyXG4gIGdldFN0YXR1czogKHN0YXRlOiBCYXNlRm9ybVN0YXRlPFQ+KSA9PiBQYWdlU3RhdHVzO1xyXG4gIGdldEZvcm1UeXBlOiAoc3RhdGU6IEJhc2VGb3JtU3RhdGU8VD4pID0+IEZvcm1UeXBlO1xyXG4gIGdldEN1cnJlbnRUYWI6IChzdGF0ZTogQmFzZUZvcm1TdGF0ZTxUPikgPT4gbnVtYmVyO1xyXG4gIGdldFJlYWRPbmx5OiAoc3RhdGU6IEJhc2VGb3JtU3RhdGU8VD4pID0+IGJvb2xlYW47XHJcbiAgZ2V0TG9hZGVkOiAoc3RhdGU6IEJhc2VGb3JtU3RhdGU8VD4pID0+IGJvb2xlYW47XHJcbiAgZ2V0VXBkYXRlZDogKHN0YXRlOiBCYXNlRm9ybVN0YXRlPFQ+KSA9PiBib29sZWFuO1xyXG59O1xyXG5cclxuLy8gQ29uc3RydXllIHVuYSB0b29sYmFyIHBhcmEgdW4gZm9ybXVsYXJpbyBlbiBmdW5jacOzbiBkZWwgdGlwIGRlIGZvcm11bGFyaW8geSBkZSBzaSBlbCBib3TDs24gZGUgZ3VhcmRhciBkZWJlIGVzdGFyIGFjdGl2b1xyXG5leHBvcnQgZnVuY3Rpb24gbWFrZVRvb2xiYXJGb3JtKGZvcm1UeXBlOiBGb3JtVHlwZSwgc2F2ZUVuYWJsZTogYm9vbGVhbik6IGFueSB7XHJcbiAgc3dpdGNoIChmb3JtVHlwZSkge1xyXG4gICAgY2FzZSBGb3JtVHlwZS5TZWxlY3Q6XHJcbiAgICAgIHJldHVybiB7IHByaW50OiB7IHZpc2libGU6IHRydWUsIGVuYWJsZTogdHJ1ZSB9IH07XHJcbiAgICBjYXNlIEZvcm1UeXBlLkluc2VydDpcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBzYXZlOiB7IHZpc2libGU6IHRydWUsIGVuYWJsZTogc2F2ZUVuYWJsZSB9LFxyXG4gICAgICAgIGRlbGV0ZTogeyB2aXNpYmxlOiBmYWxzZSwgZW5hYmxlOiB0cnVlIH0sXHJcbiAgICAgICAgcHJpbnQ6IHsgdmlzaWJsZTogZmFsc2UsIGVuYWJsZTogZmFsc2UgfVxyXG4gICAgICB9O1xyXG4gICAgY2FzZSBGb3JtVHlwZS5VcGRhdGU6XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgc2F2ZTogeyB2aXNpYmxlOiB0cnVlLCBlbmFibGU6IHNhdmVFbmFibGUgfSxcclxuICAgICAgICBkZWxldGU6IHsgdmlzaWJsZTogdHJ1ZSwgZW5hYmxlOiB0cnVlIH0sXHJcbiAgICAgICAgcHJpbnQ6IHsgdmlzaWJsZTogdHJ1ZSwgZW5hYmxlOiB0cnVlIH1cclxuICAgICAgfTtcclxuICAgIGRlZmF1bHQ6XHJcbiAgICAgIHJldHVybiB7fTtcclxuICB9XHJcbn1cclxuIl19
1
+ import { PageStatus, FormType } from "../../sharedlibrary/global.constants";
2
+ export class BaseFormAdapter {
3
+ constructor(fnCreateObject, fnGetToolbarObjectLoaded) {
4
+ this.fnCreateObject = fnCreateObject;
5
+ this.fnGetToolbarObjectLoaded = fnGetToolbarObjectLoaded;
6
+ }
7
+ getInitialState(optional) {
8
+ const initialState = Object.assign({
9
+ item: this.fnCreateObject(),
10
+ toolbar: this.initToolbar(),
11
+ status: PageStatus.Init,
12
+ readOnly: false,
13
+ formType: FormType.Insert,
14
+ currentTab: 0,
15
+ loaded: false,
16
+ updated: false
17
+ }, optional);
18
+ return initialState;
19
+ }
20
+ handleCreateObject(state) {
21
+ const item = this.fnCreateObject();
22
+ const status = PageStatus.Init;
23
+ const toolbar = this.initToolbar();
24
+ const formType = FormType.Insert;
25
+ return Object.assign({}, state, {
26
+ item,
27
+ status,
28
+ toolbar,
29
+ formType
30
+ });
31
+ }
32
+ handleLoadObject(state) {
33
+ const status = PageStatus.Searching;
34
+ const loaded = false;
35
+ return Object.assign({}, state, { status, loaded });
36
+ }
37
+ handleLoadObjectSuccess(payload, state) {
38
+ const item = payload;
39
+ const status = PageStatus.Init;
40
+ const loaded = true;
41
+ let toolbar;
42
+ let formType;
43
+ toolbar = this.fnGetToolbarObjectLoaded(item);
44
+ formType = FormType.Update;
45
+ return Object.assign({}, state, {
46
+ item,
47
+ status,
48
+ toolbar,
49
+ formType,
50
+ loaded
51
+ });
52
+ }
53
+ handleSaveObject(state) {
54
+ const updated = false;
55
+ return Object.assign({}, state, { updated });
56
+ }
57
+ handleSaveObjectSuccess(payload, state) {
58
+ const item = payload;
59
+ let toolbar = this.fnGetToolbarObjectLoaded(item);
60
+ const formType = FormType.Update;
61
+ const status = PageStatus.FinishSearch;
62
+ const updated = true;
63
+ return Object.assign({}, state, { item, formType, status, updated, toolbar });
64
+ }
65
+ handleSaveObjectFail(state) {
66
+ const status = PageStatus.Error;
67
+ const updated = false;
68
+ return Object.assign({}, state, { status, updated });
69
+ }
70
+ handleSetFormReadOnly(payload, state) {
71
+ const readOnly = payload;
72
+ return Object.assign({}, state, { readOnly });
73
+ }
74
+ getSelectors() {
75
+ return {
76
+ getItem: (state) => state.item,
77
+ getToolbar: (state) => (state.readOnly ? {} : state.toolbar),
78
+ getStatus: (state) => state.status,
79
+ getFormType: (state) => state.formType,
80
+ getCurrentTab: (state) => state.currentTab,
81
+ getReadOnly: (state) => state.readOnly,
82
+ getLoaded: (state) => state.loaded,
83
+ getUpdated: (state) => state.updated
84
+ };
85
+ }
86
+ initToolbar() {
87
+ return getInitToolbar();
88
+ }
89
+ }
90
+ export function createBaseFormAdapter(fnCreateObject, fnGetToolbarObjectLoaded) {
91
+ return new BaseFormAdapter(fnCreateObject, fnGetToolbarObjectLoaded ? fnGetToolbarObjectLoaded : getToolbarObjectLoadedDefault);
92
+ }
93
+ export function getInitToolbar() {
94
+ return {
95
+ //mínimos toolbar de un formulario
96
+ save: { visible: true, enable: true },
97
+ delete: { visible: false, enable: true },
98
+ print: { visible: false, enable: false }
99
+ };
100
+ }
101
+ export function getToolbarObjectLoadedDefault() {
102
+ return {
103
+ save: { visible: true, enable: true },
104
+ delete: { visible: true, enable: true },
105
+ print: { visible: true, enable: true }
106
+ };
107
+ }
108
+ // Construye una toolbar para un formulario en función del tip de formulario y de si el botón de guardar debe estar activo
109
+ export function makeToolbarForm(formType, saveEnable) {
110
+ switch (formType) {
111
+ case FormType.Select:
112
+ return { print: { visible: true, enable: true } };
113
+ case FormType.Insert:
114
+ return {
115
+ save: { visible: true, enable: saveEnable },
116
+ delete: { visible: false, enable: true },
117
+ print: { visible: false, enable: false }
118
+ };
119
+ case FormType.Update:
120
+ return {
121
+ save: { visible: true, enable: saveEnable },
122
+ delete: { visible: true, enable: true },
123
+ print: { visible: true, enable: true }
124
+ };
125
+ default:
126
+ return {};
127
+ }
128
+ }
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtLm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JpdC1uZy1saWJyYXJ5L3NyYy9saWIvYmFzZS9tb2RlbHMvYmFzZS1mb3JtLm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBYzVFLE1BQU0sT0FBTyxlQUFlO0lBQzFCLFlBQXNCLGNBQXlDLEVBQVksd0JBQWtEO1FBQXZHLG1CQUFjLEdBQWQsY0FBYyxDQUEyQjtRQUFZLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7SUFBRyxDQUFDO0lBRWpJLGVBQWUsQ0FBNkIsUUFBYztRQUN4RCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUNoQztZQUNFLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQzNCLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzNCLE1BQU0sRUFBRSxVQUFVLENBQUMsSUFBSTtZQUN2QixRQUFRLEVBQUUsS0FBSztZQUNmLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTTtZQUN6QixVQUFVLEVBQUUsQ0FBQztZQUNiLE1BQU0sRUFBRSxLQUFLO1lBQ2IsT0FBTyxFQUFFLEtBQUs7U0FDZixFQUNELFFBQVEsQ0FDVCxDQUFDO1FBQ0YsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVELGtCQUFrQixDQUE2QixLQUFRO1FBQ3JELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNuQyxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQy9CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ2pDLE9BQU8sTUFBTSxDQUFD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RUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtLQUN2QyxDQUFDO0FBQ0osQ0FBQztBQWFELDBIQUEwSDtBQUMxSCxNQUFNLFVBQVUsZUFBZSxDQUFDLFFBQWtCLEVBQUUsVUFBbUI7SUFDckUsUUFBUSxRQUFRLEVBQUU7UUFDaEIsS0FBSyxRQUFRLENBQUMsTUFBTTtZQUNsQixPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNwRCxLQUFLLFFBQVEsQ0FBQyxNQUFNO1lBQ2xCLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFO2dCQUMzQyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ3hDLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTthQUN6QyxDQUFDO1FBQ0osS0FBSyxRQUFRLENBQUMsTUFBTTtZQUNsQixPQUFPO2dCQUNMLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRTtnQkFDM0MsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUN2QyxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7YUFDdkMsQ0FBQztRQUNKO1lBQ0UsT0FBTyxFQUFFLENBQUM7S0FDYjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYWdlU3RhdHVzLCBGb3JtVHlwZSB9IGZyb20gXCIuLi8uLi9zaGFyZWRsaWJyYXJ5L2dsb2JhbC5jb25zdGFudHNcIjtcbmltcG9ydCB7IEZhY3RvcnlDcmVhdGVOZXdPYmplY3QsIEZhY3RvcnlDcmVhdGVUb29sYmFyIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBCYXNlRm9ybVN0YXRlPFQ+IHtcbiAgaXRlbTogVDtcbiAgdG9vbGJhcjogYW55O1xuICBzdGF0dXM6IFBhZ2VTdGF0dXM7XG4gIHJlYWRPbmx5OiBib29sZWFuO1xuICBmb3JtVHlwZTogRm9ybVR5cGU7XG4gIGN1cnJlbnRUYWI6IG51bWJlcjtcbiAgbG9hZGVkOiBib29sZWFuO1xuICB1cGRhdGVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQmFzZUZvcm1BZGFwdGVyPFQ+IHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGZuQ3JlYXRlT2JqZWN0OiBGYWN0b3J5Q3JlYXRlTmV3T2JqZWN0PFQ+LCBwcm90ZWN0ZWQgZm5HZXRUb29sYmFyT2JqZWN0TG9hZGVkPzogRmFjdG9yeUNyZWF0ZVRvb2xiYXI8VD4pIHt9XG5cbiAgZ2V0SW5pdGlhbFN0YXRlPFMgZXh0ZW5kcyBCYXNlRm9ybVN0YXRlPFQ+PihvcHRpb25hbD86IGFueSk6IFMge1xuICAgIGNvbnN0IGluaXRpYWxTdGF0ZSA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7XG4gICAgICAgIGl0ZW06IHRoaXMuZm5DcmVhdGVPYmplY3QoKSxcbiAgICAgICAgdG9vbGJhcjogdGhpcy5pbml0VG9vbGJhcigpLFxuICAgICAgICBzdGF0dXM6IFBhZ2VTdGF0dXMuSW5pdCxcbiAgICAgICAgcmVhZE9ubHk6IGZhbHNlLFxuICAgICAgICBmb3JtVHlwZTogRm9ybVR5cGUuSW5zZXJ0LFxuICAgICAgICBjdXJyZW50VGFiOiAwLFxuICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICB1cGRhdGVkOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIG9wdGlvbmFsXG4gICAgKTtcbiAgICByZXR1cm4gaW5pdGlhbFN0YXRlO1xuICB9XG5cbiAgaGFuZGxlQ3JlYXRlT2JqZWN0PFMgZXh0ZW5kcyBCYXNlRm9ybVN0YXRlPFQ+PihzdGF0ZTogUyk6IFMge1xuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmZuQ3JlYXRlT2JqZWN0KCk7XG4gICAgY29uc3Qgc3RhdHVzID0gUGFnZVN0YXR1cy5Jbml0O1xuICAgIGNvbnN0IHRvb2xiYXIgPSB0aGlzLmluaXRUb29sYmFyKCk7XG4gICAgY29uc3QgZm9ybVR5cGUgPSBGb3JtVHlwZS5JbnNlcnQ7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7XG4gICAgICBpdGVtLFxuICAgICAgc3RhdHVzLFxuICAgICAgdG9vbGJhcixcbiAgICAgIGZvcm1UeXBlXG4gICAgfSk7XG4gIH1cblxuICBoYW5kbGVMb2FkT2JqZWN0PFMgZXh0ZW5kcyBCYXNlRm9ybVN0YXRlPFQ+PihzdGF0ZTogUyk6IFMge1xuICAgIGNvbnN0IHN0YXR1cyA9IFBhZ2VTdGF0dXMuU2VhcmNoaW5nO1xuICAgIGNvbnN0IGxvYWRlZCA9IGZhbHNlO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgeyBzdGF0dXMsIGxvYWRlZCB9KTtcbiAgfVxuXG4gIGhhbmRsZUxvYWRPYmplY3RTdWNjZXNzPFMgZXh0ZW5kcyBCYXNlRm9ybVN0YXRlPFQ+PihwYXlsb2FkOiBULCBzdGF0ZTogUyk6IFMge1xuICAgIGNvbnN0IGl0ZW0gPSBwYXlsb2FkO1xuICAgIGNvbnN0IHN0YXR1cyA9IFBhZ2VTdGF0dXMuSW5pdDtcbiAgICBjb25zdCBsb2FkZWQgPSB0cnVlO1xuICAgIGxldCB0b29sYmFyO1xuICAgIGxldCBmb3JtVHlwZTtcbiAgICB0b29sYmFyID0gdGhpcy5mbkdldFRvb2xiYXJPYmplY3RMb2FkZWQoaXRlbSk7XG4gICAgZm9ybVR5cGUgPSBGb3JtVHlwZS5VcGRhdGU7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7XG4gICAgICBpdGVtLFxuICAgICAgc3RhdHVzLFxuICAgICAgdG9vbGJhcixcbiAgICAgIGZvcm1UeXBlLFxuICAgICAgbG9hZGVkXG4gICAgfSk7XG4gIH1cblxuICBoYW5kbGVTYXZlT2JqZWN0PFMgZXh0ZW5kcyBCYXNlRm9ybVN0YXRlPFQ+PihzdGF0ZTogUyk6IFMge1xuICAgIGNvbnN0IHVwZGF0ZWQgPSBmYWxzZTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHsgdXBkYXRlZCB9KTtcbiAgfVxuXG4gIGhhbmRsZVNhdmVPYmplY3RTdWNjZXNzPFMgZXh0ZW5kcyBCYXNlRm9ybVN0YXRlPFQ+PihwYXlsb2FkOiBULCBzdGF0ZTogUyk6IFMge1xuICAgIGNvbnN0IGl0ZW0gPSBwYXlsb2FkO1xuICAgIGxldCB0b29sYmFyID0gdGhpcy5mbkdldFRvb2xiYXJPYmplY3RMb2FkZWQoaXRlbSk7XG4gICAgY29uc3QgZm9ybVR5cGUgPSBGb3JtVHlwZS5VcGRhdGU7XG4gICAgY29uc3Qgc3RhdHVzID0gUGFnZVN0YXR1cy5GaW5pc2hTZWFyY2g7XG4gICAgY29uc3QgdXBkYXRlZCA9IHRydWU7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7IGl0ZW0sIGZvcm1UeXBlLCBzdGF0dXMsIHVwZGF0ZWQsIHRvb2xiYXIgfSk7XG4gIH1cblxuICBoYW5kbGVTYXZlT2JqZWN0RmFpbDxTIGV4dGVuZHMgQmFzZUZvcm1TdGF0ZTxUPj4oc3RhdGU6IFMpOiBTIHtcbiAgICBjb25zdCBzdGF0dXMgPSBQYWdlU3RhdHVzLkVycm9yO1xuICAgIGNvbnN0IHVwZGF0ZWQgPSBmYWxzZTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHsgc3RhdHVzLCB1cGRhdGVkIH0pO1xuICB9XG5cbiAgaGFuZGxlU2V0Rm9ybVJlYWRPbmx5PFMgZXh0ZW5kcyBCYXNlRm9ybVN0YXRlPFQ+PihwYXlsb2FkOiBib29sZWFuLCBzdGF0ZTogUyk6IFMge1xuICAgIGNvbnN0IHJlYWRPbmx5ID0gcGF5bG9hZDtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHsgcmVhZE9ubHkgfSk7XG4gIH1cblxuICBnZXRTZWxlY3RvcnMoKTogQmFzZUZvcm1TZWxlY3RvcnM8VD4ge1xuICAgIHJldHVybiB7XG4gICAgICBnZXRJdGVtOiAoc3RhdGU6IEJhc2VGb3JtU3RhdGU8VD4pID0+IHN0YXRlLml0ZW0sXG4gICAgICBnZXRUb29sYmFyOiAoc3RhdGU6IEJhc2VGb3JtU3RhdGU8VD4pID0+IChzdGF0ZS5yZWFkT25seSA/IHt9IDogc3RhdGUudG9vbGJhciksXG4gICAgICBnZXRTdGF0dXM6IChzdGF0ZTogQmFzZUZvcm1TdGF0ZTxUPikgPT4gc3RhdGUuc3RhdHVzLFxuICAgICAgZ2V0Rm9ybVR5cGU6IChzdGF0ZTogQmFzZUZvcm1TdGF0ZTxUPikgPT4gc3RhdGUuZm9ybVR5cGUsXG4gICAgICBnZXRDdXJyZW50VGFiOiAoc3RhdGU6IEJhc2VGb3JtU3RhdGU8VD4pID0+IHN0YXRlLmN1cnJlbnRUYWIsXG4gICAgICBnZXRSZWFkT25seTogKHN0YXRlOiBCYXNlRm9ybVN0YXRlPFQ+KSA9PiBzdGF0ZS5yZWFkT25seSxcbiAgICAgIGdldExvYWRlZDogKHN0YXRlOiBCYXNlRm9ybVN0YXRlPFQ+KSA9PiBzdGF0ZS5sb2FkZWQsXG4gICAgICBnZXRVcGRhdGVkOiAoc3RhdGU6IEJhc2VGb3JtU3RhdGU8VD4pID0+IHN0YXRlLnVwZGF0ZWRcbiAgICB9O1xuICB9XG5cbiAgaW5pdFRvb2xiYXIoKSB7XG4gICAgcmV0dXJuIGdldEluaXRUb29sYmFyKCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJhc2VGb3JtQWRhcHRlcjxUPihmbkNyZWF0ZU9iamVjdDogRmFjdG9yeUNyZWF0ZU5ld09iamVjdDxUPiwgZm5HZXRUb29sYmFyT2JqZWN0TG9hZGVkPzogRmFjdG9yeUNyZWF0ZVRvb2xiYXI8VD4pOiBCYXNlRm9ybUFkYXB0ZXI8VD4ge1xuICByZXR1cm4gbmV3IEJhc2VGb3JtQWRhcHRlcihmbkNyZWF0ZU9iamVjdCwgZm5HZXRUb29sYmFyT2JqZWN0TG9hZGVkID8gZm5HZXRUb29sYmFyT2JqZWN0TG9hZGVkIDogZ2V0VG9vbGJhck9iamVjdExvYWRlZERlZmF1bHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5pdFRvb2xiYXIoKSB7XG4gIHJldHVybiB7XG4gICAgLy9tw61uaW1vcyB0b29sYmFyIGRlIHVuIGZvcm11bGFyaW9cbiAgICBzYXZlOiB7IHZpc2libGU6IHRydWUsIGVuYWJsZTogdHJ1ZSB9LFxuICAgIGRlbGV0ZTogeyB2aXNpYmxlOiBmYWxzZSwgZW5hYmxlOiB0cnVlIH0sXG4gICAgcHJpbnQ6IHsgdmlzaWJsZTogZmFsc2UsIGVuYWJsZTogZmFsc2UgfVxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9vbGJhck9iamVjdExvYWRlZERlZmF1bHQoKSB7XG4gIHJldHVybiB7XG4gICAgc2F2ZTogeyB2aXNpYmxlOiB0cnVlLCBlbmFibGU6IHRydWUgfSxcbiAgICBkZWxldGU6IHsgdmlzaWJsZTogdHJ1ZSwgZW5hYmxlOiB0cnVlIH0sXG4gICAgcHJpbnQ6IHsgdmlzaWJsZTogdHJ1ZSwgZW5hYmxlOiB0cnVlIH1cbiAgfTtcbn1cblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBCYXNlRm9ybVNlbGVjdG9yczxUPiA9IHtcbiAgZ2V0SXRlbTogKHN0YXRlOiBCYXNlRm9ybVN0YXRlPFQ+KSA9PiBUO1xuICBnZXRUb29sYmFyOiAoc3RhdGU6IEJhc2VGb3JtU3RhdGU8VD4pID0+IGFueTtcbiAgZ2V0U3RhdHVzOiAoc3RhdGU6IEJhc2VGb3JtU3RhdGU8VD4pID0+IFBhZ2VTdGF0dXM7XG4gIGdldEZvcm1UeXBlOiAoc3RhdGU6IEJhc2VGb3JtU3RhdGU8VD4pID0+IEZvcm1UeXBlO1xuICBnZXRDdXJyZW50VGFiOiAoc3RhdGU6IEJhc2VGb3JtU3RhdGU8VD4pID0+IG51bWJlcjtcbiAgZ2V0UmVhZE9ubHk6IChzdGF0ZTogQmFzZUZvcm1TdGF0ZTxUPikgPT4gYm9vbGVhbjtcbiAgZ2V0TG9hZGVkOiAoc3RhdGU6IEJhc2VGb3JtU3RhdGU8VD4pID0+IGJvb2xlYW47XG4gIGdldFVwZGF0ZWQ6IChzdGF0ZTogQmFzZUZvcm1TdGF0ZTxUPikgPT4gYm9vbGVhbjtcbn07XG5cbi8vIENvbnN0cnV5ZSB1bmEgdG9vbGJhciBwYXJhIHVuIGZvcm11bGFyaW8gZW4gZnVuY2nDs24gZGVsIHRpcCBkZSBmb3JtdWxhcmlvIHkgZGUgc2kgZWwgYm90w7NuIGRlIGd1YXJkYXIgZGViZSBlc3RhciBhY3Rpdm9cbmV4cG9ydCBmdW5jdGlvbiBtYWtlVG9vbGJhckZvcm0oZm9ybVR5cGU6IEZvcm1UeXBlLCBzYXZlRW5hYmxlOiBib29sZWFuKTogYW55IHtcbiAgc3dpdGNoIChmb3JtVHlwZSkge1xuICAgIGNhc2UgRm9ybVR5cGUuU2VsZWN0OlxuICAgICAgcmV0dXJuIHsgcHJpbnQ6IHsgdmlzaWJsZTogdHJ1ZSwgZW5hYmxlOiB0cnVlIH0gfTtcbiAgICBjYXNlIEZvcm1UeXBlLkluc2VydDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNhdmU6IHsgdmlzaWJsZTogdHJ1ZSwgZW5hYmxlOiBzYXZlRW5hYmxlIH0sXG4gICAgICAgIGRlbGV0ZTogeyB2aXNpYmxlOiBmYWxzZSwgZW5hYmxlOiB0cnVlIH0sXG4gICAgICAgIHByaW50OiB7IHZpc2libGU6IGZhbHNlLCBlbmFibGU6IGZhbHNlIH1cbiAgICAgIH07XG4gICAgY2FzZSBGb3JtVHlwZS5VcGRhdGU6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzYXZlOiB7IHZpc2libGU6IHRydWUsIGVuYWJsZTogc2F2ZUVuYWJsZSB9LFxuICAgICAgICBkZWxldGU6IHsgdmlzaWJsZTogdHJ1ZSwgZW5hYmxlOiB0cnVlIH0sXG4gICAgICAgIHByaW50OiB7IHZpc2libGU6IHRydWUsIGVuYWJsZTogdHJ1ZSB9XG4gICAgICB9O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4ge307XG4gIH1cbn1cbiJdfQ==