bit-ng-library 12.0.1 → 13.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 (229) hide show
  1. package/README.md +154 -138
  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/esm2020/lib/sharedlibrary/services/general-utils.service.mjs +143 -0
  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} +4563 -4325
  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 -45
  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 -5165
  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 -116
  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/general-utils.service.js +0 -142
  221. package/esm2015/lib/sharedlibrary/services/http-utils.service.js +0 -178
  222. package/esm2015/lib/sharedlibrary/services/message.service.js +0 -68
  223. package/esm2015/lib/sharedlibrary/services/session-shared.service.js +0 -22
  224. package/esm2015/lib/sharedlibrary/services/tableview.service.js +0 -18
  225. package/esm2015/lib/sharedlibrary/services/toolbar.service.js +0 -24
  226. package/esm2015/lib/sharedlibrary/services/translate.service.js +0 -67
  227. package/esm2015/lib/sharedlibrary/sharedlibrary.module.js +0 -135
  228. package/esm2015/lib/sharedlibrary/utils/custom-http-interceptor.js +0 -41
  229. package/fesm2015/bit-ng-library.js.map +0 -1
package/README.md CHANGED
@@ -1,138 +1,154 @@
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.1] - 2021-09-30
30
-
31
- Se aplican cambios para adecuarse al primeflex3
32
-
33
- ## [12.0.0] - 2021-08-22
34
-
35
- Versión angular12
36
-
37
- ## [11.0.6] - 2021-08-06
38
-
39
- Estilo para el footer sin resultados
40
-
41
- ## [11.0.5] - 2021-07-08
42
-
43
- se restaura el servicio DomainService que había desaparecido tras un delete no sé muy bien porqué
44
-
45
- ## [11.0.4] - 2021-07-08
46
-
47
- se pone firstDayOfWeek a los calendarios de prime
48
-
49
- ## [11.0.3] - 2021-05-20
50
-
51
- Se modifica el bit-ng-upload
52
-
53
- ## [11.0.2] - 2021-05-13
54
-
55
- Se adapta la toolbar a prime para el caso de botones con más acciones
56
-
57
- ## [11.0.1] - 2021-05-05
58
-
59
- Se añade la función objectoToQueryParameters
60
-
61
- ## [11.0.0] - 2021-04-21
62
-
63
- Versión compatible con angular 11
64
-
65
- ## [1.2.4] - 2021-04-21
66
-
67
- se añaden console.log en el envío de la notificacionError al detectarse fallos
68
-
69
- ## [1.2.3] - 2021-03-19
70
-
71
- método para poder ocultar notificaciones de error
72
-
73
- ## [1.2.2] - 2021-03-05
74
-
75
- Se imorta moment versión mini
76
-
77
- ## [1.2.1] - 2021-02-25
78
-
79
- Añadir tag pInputText al input de bit-text-component.
80
-
81
- ## [1.2.0] - 2021-02-05
82
-
83
- Migración a angular 10
84
-
85
- ## [1.1.3] - 2020-09-11
86
-
87
- ### Changed
88
-
89
- Se añade la validación de teléfonos separados por comas
90
-
91
- ## [1.1.2] - 2020-09-10
92
-
93
- ### Changed
94
-
95
- Se arregla un fallo del bit-dropdown-multiple que no traduce el valor emptyTest.
96
- Se añade el parámetro filter al bit-dropdown-multiple para poder indicar si queremos que filtre o no
97
-
98
- ## [1.1.1] - 2020-08-07
99
-
100
- ### Changed
101
-
102
- Se arregla un fallo del bit-dropdown que repetía dos veces el valor empty
103
-
104
- ## [1.1.0] - 2020-07-30
105
-
106
- ### Changed
107
-
108
- Se eliminan los css internos
109
-
110
- ## [1.0.0] - 2020-07-01
111
-
112
- ### Changed
113
-
114
- Primera versión funcional
115
-
116
- ## [1.0.3-alpha1] - 2020-05-14
117
-
118
- ### Changed
119
-
120
- - 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
121
-
122
- ## [1.0.3-alpha1] - 2020-05-13
123
-
124
- ### Changed
125
-
126
- - Label mal construido no se traducía
127
-
128
- ## [1.0.2-alpha1] - 2020-05-13
129
-
130
- ### Changed
131
-
132
- - Se publica la clase BaseLisPaginateComponent
133
-
134
- ## [1.0.1-alpha1] - 2020-05-12
135
-
136
- ### Added
137
-
138
- - 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
+ ## [13.0.1] - 2022-02-03
30
+
31
+ Se elimina moment-mini-ts al presentar problemas de carga con angular 13
32
+
33
+ ## [13.0.0] - 2022-02-02
34
+
35
+ Migración a angular 13
36
+
37
+ ## [12.0.3] - 2021-12-30
38
+
39
+ 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.
40
+
41
+ ## [12.0.2] - 2021-10-20
42
+
43
+ Se aplican cambios para centrar spinner y el breadcrumb
44
+
45
+ ## [12.0.1] - 2021-09-30
46
+
47
+ Se aplican cambios para adecuarse al primeflex3
48
+
49
+ ## [12.0.0] - 2021-08-22
50
+
51
+ Versión angular12
52
+
53
+ ## [11.0.6] - 2021-08-06
54
+
55
+ Estilo para el footer sin resultados
56
+
57
+ ## [11.0.5] - 2021-07-08
58
+
59
+ se restaura el servicio DomainService que había desaparecido tras un delete no sé muy bien porqué
60
+
61
+ ## [11.0.4] - 2021-07-08
62
+
63
+ se pone firstDayOfWeek a los calendarios de prime
64
+
65
+ ## [11.0.3] - 2021-05-20
66
+
67
+ Se modifica el bit-ng-upload
68
+
69
+ ## [11.0.2] - 2021-05-13
70
+
71
+ Se adapta la toolbar a prime para el caso de botones con más acciones
72
+
73
+ ## [11.0.1] - 2021-05-05
74
+
75
+ Se añade la función objectoToQueryParameters
76
+
77
+ ## [11.0.0] - 2021-04-21
78
+
79
+ Versión compatible con angular 11
80
+
81
+ ## [1.2.4] - 2021-04-21
82
+
83
+ se añaden console.log en el envío de la notificacionError al detectarse fallos
84
+
85
+ ## [1.2.3] - 2021-03-19
86
+
87
+ método para poder ocultar notificaciones de error
88
+
89
+ ## [1.2.2] - 2021-03-05
90
+
91
+ Se imorta moment versión mini
92
+
93
+ ## [1.2.1] - 2021-02-25
94
+
95
+ Añadir tag pInputText al input de bit-text-component.
96
+
97
+ ## [1.2.0] - 2021-02-05
98
+
99
+ Migración a angular 10
100
+
101
+ ## [1.1.3] - 2020-09-11
102
+
103
+ ### Changed
104
+
105
+ Se añade la validación de teléfonos separados por comas
106
+
107
+ ## [1.1.2] - 2020-09-10
108
+
109
+ ### Changed
110
+
111
+ Se arregla un fallo del bit-dropdown-multiple que no traduce el valor emptyTest.
112
+ Se añade el parámetro filter al bit-dropdown-multiple para poder indicar si queremos que filtre o no
113
+
114
+ ## [1.1.1] - 2020-08-07
115
+
116
+ ### Changed
117
+
118
+ Se arregla un fallo del bit-dropdown que repetía dos veces el valor empty
119
+
120
+ ## [1.1.0] - 2020-07-30
121
+
122
+ ### Changed
123
+
124
+ Se eliminan los css internos
125
+
126
+ ## [1.0.0] - 2020-07-01
127
+
128
+ ### Changed
129
+
130
+ Primera versión funcional
131
+
132
+ ## [1.0.3-alpha1] - 2020-05-14
133
+
134
+ ### Changed
135
+
136
+ - 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
137
+
138
+ ## [1.0.3-alpha1] - 2020-05-13
139
+
140
+ ### Changed
141
+
142
+ - Label mal construido no se traducía
143
+
144
+ ## [1.0.2-alpha1] - 2020-05-13
145
+
146
+ ### Changed
147
+
148
+ - Se publica la clase BaseLisPaginateComponent
149
+
150
+ ## [1.0.1-alpha1] - 2020-05-12
151
+
152
+ ### Added
153
+
154
+ - Commit inicial
@@ -1,6 +1,5 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- export { ErrorValidateForm as ɵg, TranslatedMessage as ɵf } from './lib/base/models';
6
- export { AyudaService as ɵd, BitMessageService as ɵc, FocusService as ɵa, SessionSharedService as ɵe, 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==