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.
- package/README.md +146 -146
- package/bit-ng-library.d.ts +5 -6
- package/esm2020/bit-ng-library.mjs +5 -0
- package/esm2020/lib/base/components/base.component.mjs +18 -0
- package/{esm2015/lib/base/models/base-form.models.js → esm2020/lib/base/models/base-form.models.mjs} +129 -129
- package/{esm2015/lib/base/models/base-list.models.js → esm2020/lib/base/models/base-list.models.mjs} +202 -202
- package/{esm2015/lib/base/models/base-sublist.models.js → esm2020/lib/base/models/base-sublist.models.mjs} +93 -93
- package/{esm2015/lib/base/models/index.js → esm2020/lib/base/models/index.mjs} +5 -5
- package/esm2020/lib/base/models/types.mjs +19 -0
- package/esm2020/lib/base/shared/base-interface.service.mjs +2 -0
- package/esm2020/lib/base/shared/base.filter.mjs +78 -0
- package/{esm2015/lib/base/shared/base.service.js → esm2020/lib/base/shared/base.service.mjs} +85 -85
- package/{esm2015/lib/base/shared/utils.js → esm2020/lib/base/shared/utils.mjs} +113 -113
- package/esm2020/lib/sharedlibrary/components/breadcrumb/bit-breadcrumb.component.mjs +67 -0
- package/esm2020/lib/sharedlibrary/components/contol-messages/bit-control-messages.component.mjs +49 -0
- package/esm2020/lib/sharedlibrary/components/dialog/bit-dialog.component.mjs +209 -0
- package/esm2020/lib/sharedlibrary/components/footer/bit-footer.component.mjs +217 -0
- package/esm2020/lib/sharedlibrary/components/form/autocomplete/bit-autocomplete.component.mjs +47 -0
- package/esm2020/lib/sharedlibrary/components/form/bit-custom.component.mjs +86 -0
- package/esm2020/lib/sharedlibrary/components/form/bit-editable.component.mjs +87 -0
- package/esm2020/lib/sharedlibrary/components/form/bit-general.component.mjs +93 -0
- package/esm2020/lib/sharedlibrary/components/form/calendar/bit-calendar.component.mjs +37 -0
- package/esm2020/lib/sharedlibrary/components/form/checkbox/bit-checkbox.component.mjs +24 -0
- package/esm2020/lib/sharedlibrary/components/form/date/bit-date.component.mjs +45 -0
- package/esm2020/lib/sharedlibrary/components/form/datetime/bit-datetime.component.mjs +38 -0
- package/esm2020/lib/sharedlibrary/components/form/dropdown/bit-dropdown-general.component.mjs +100 -0
- package/esm2020/lib/sharedlibrary/components/form/dropdown/bit-dropdown-multiple.component.mjs +80 -0
- package/esm2020/lib/sharedlibrary/components/form/dropdown/bit-dropdown.component.mjs +86 -0
- package/esm2020/lib/sharedlibrary/components/form/editor/bit-editor.component.mjs +81 -0
- package/esm2020/lib/sharedlibrary/components/form/readonly/bit-readonly.component.mjs +96 -0
- package/esm2020/lib/sharedlibrary/components/form/switch/bit-switch.component.mjs +43 -0
- package/esm2020/lib/sharedlibrary/components/form/text/bit-text.component.mjs +23 -0
- package/esm2020/lib/sharedlibrary/components/form/textarea/bit-textarea.component.mjs +21 -0
- package/esm2020/lib/sharedlibrary/components/form/time/bit-time.component.mjs +45 -0
- package/esm2020/lib/sharedlibrary/components/header/bit-header.component.mjs +48 -0
- package/esm2020/lib/sharedlibrary/components/help/bit-help.component.mjs +59 -0
- package/esm2020/lib/sharedlibrary/components/loading/bit-loading.component.mjs +65 -0
- package/esm2020/lib/sharedlibrary/components/misc/bit-boton-ayuda.component.mjs +44 -0
- package/esm2020/lib/sharedlibrary/components/misc/bit-column-boolean.component.mjs +38 -0
- package/esm2020/lib/sharedlibrary/components/misc/bit-domain-value.component.mjs +45 -0
- package/esm2020/lib/sharedlibrary/components/notificacion/bit-notification-error.component.mjs +110 -0
- package/esm2020/lib/sharedlibrary/components/notificacion/bit-notification-toast.component.mjs +45 -0
- package/esm2020/lib/sharedlibrary/components/toolbar/bit-toolbar.component.mjs +104 -0
- package/esm2020/lib/sharedlibrary/components/upload/bit-ng-upload.component.mjs +133 -0
- package/esm2020/lib/sharedlibrary/components/user/bit-user-controls.component.mjs +39 -0
- package/{esm2015/lib/sharedlibrary/data/ayudacontextual.js → esm2020/lib/sharedlibrary/data/ayudacontextual.mjs} +12 -12
- package/{esm2015/lib/sharedlibrary/data/bitmessage.js → esm2020/lib/sharedlibrary/data/bitmessage.mjs} +21 -21
- package/{esm2015/lib/sharedlibrary/data/bitnotification-error.js → esm2020/lib/sharedlibrary/data/bitnotification-error.mjs} +11 -11
- package/{esm2015/lib/sharedlibrary/data/bitnotification.js → esm2020/lib/sharedlibrary/data/bitnotification.mjs} +12 -12
- package/{esm2015/lib/sharedlibrary/data/configuration-editor.js → esm2020/lib/sharedlibrary/data/configuration-editor.mjs} +20 -20
- package/{esm2015/lib/sharedlibrary/data/domain.js → esm2020/lib/sharedlibrary/data/domain.mjs} +9 -9
- package/{esm2015/lib/sharedlibrary/data/error.js → esm2020/lib/sharedlibrary/data/error.mjs} +14 -14
- package/{esm2015/lib/sharedlibrary/data/fichero.js → esm2020/lib/sharedlibrary/data/fichero.mjs} +18 -18
- package/{esm2015/lib/sharedlibrary/data/index.js → esm2020/lib/sharedlibrary/data/index.mjs} +10 -10
- package/{esm2015/lib/sharedlibrary/data/item.js → esm2020/lib/sharedlibrary/data/item.mjs} +9 -9
- package/esm2020/lib/sharedlibrary/directives/edit-mode.directive.mjs +16 -0
- package/esm2020/lib/sharedlibrary/directives/focus-register.directive.mjs +31 -0
- package/esm2020/lib/sharedlibrary/directives/view-mode.directive.mjs +16 -0
- package/{esm2015/lib/sharedlibrary/global.constants.js → esm2020/lib/sharedlibrary/global.constants.mjs} +24 -24
- package/esm2020/lib/sharedlibrary/guards/candeactivate.guard.mjs +13 -0
- package/esm2020/lib/sharedlibrary/pipes/capitalize.pipe.mjs +22 -0
- package/esm2020/lib/sharedlibrary/pipes/other-actions.pipe.mjs +26 -0
- package/esm2020/lib/sharedlibrary/pipes/pipe-cantidadmoneda.pipe.mjs +44 -0
- package/esm2020/lib/sharedlibrary/pipes/remove-line-breaks.pipe.mjs +28 -0
- package/{esm2015/lib/sharedlibrary/services/ayuda.service.js → esm2020/lib/sharedlibrary/services/ayuda.service.mjs} +38 -37
- package/{esm2015/lib/sharedlibrary/services/base-data-adapter.service.js → esm2020/lib/sharedlibrary/services/base-data-adapter.service.mjs} +16 -16
- package/esm2020/lib/sharedlibrary/services/base-data.service.mjs +4 -0
- package/{esm2015/lib/sharedlibrary/services/custom-validators.service.js → esm2020/lib/sharedlibrary/services/custom-validators.service.mjs} +627 -627
- package/esm2020/lib/sharedlibrary/services/domain.service.mjs +24 -0
- package/esm2020/lib/sharedlibrary/services/focus.service.mjs +30 -0
- package/{esm2015/lib/sharedlibrary/services/general-utils.service.js → esm2020/lib/sharedlibrary/services/general-utils.service.mjs} +143 -142
- package/esm2020/lib/sharedlibrary/services/http-utils.service.mjs +175 -0
- package/{esm2015/lib/sharedlibrary/services/index.js → esm2020/lib/sharedlibrary/services/index.mjs} +16 -16
- package/{esm2015/lib/sharedlibrary/services/locator.service.js → esm2020/lib/sharedlibrary/services/locator.service.mjs} +8 -8
- package/esm2020/lib/sharedlibrary/services/message.service.mjs +69 -0
- package/esm2020/lib/sharedlibrary/services/session-shared.service.mjs +23 -0
- package/esm2020/lib/sharedlibrary/services/tableview.service.mjs +19 -0
- package/esm2020/lib/sharedlibrary/services/toolbar.service.mjs +25 -0
- package/esm2020/lib/sharedlibrary/services/translate.service.mjs +67 -0
- package/{esm2015/lib/sharedlibrary/services/upload.service.js → esm2020/lib/sharedlibrary/services/upload.service.mjs} +57 -55
- package/esm2020/lib/sharedlibrary/sharedlibrary.module.mjs +264 -0
- package/esm2020/lib/sharedlibrary/utils/custom-http-interceptor.mjs +37 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +81 -81
- package/fesm2015/bit-ng-library.mjs +4708 -0
- package/fesm2015/bit-ng-library.mjs.map +1 -0
- package/{fesm2015/bit-ng-library.js → fesm2020/bit-ng-library.mjs} +4562 -4326
- package/fesm2020/bit-ng-library.mjs.map +1 -0
- package/lib/base/components/base.component.d.ts +8 -5
- package/lib/base/models/base-form.models.d.ts +80 -80
- package/lib/base/models/base-list.models.d.ts +136 -136
- package/lib/base/models/base-sublist.models.d.ts +42 -42
- package/lib/base/models/index.d.ts +4 -4
- package/lib/base/models/types.d.ts +33 -33
- package/lib/base/shared/base-interface.service.d.ts +37 -37
- package/lib/base/shared/base.filter.d.ts +37 -37
- package/lib/base/shared/base.service.d.ts +59 -59
- package/lib/base/shared/utils.d.ts +42 -42
- package/lib/sharedlibrary/components/breadcrumb/bit-breadcrumb.component.d.ts +25 -22
- package/lib/sharedlibrary/components/contol-messages/bit-control-messages.component.d.ts +15 -12
- package/lib/sharedlibrary/components/dialog/bit-dialog.component.d.ts +30 -27
- package/lib/sharedlibrary/components/footer/bit-footer.component.d.ts +73 -70
- package/lib/sharedlibrary/components/form/autocomplete/bit-autocomplete.component.d.ts +19 -16
- package/lib/sharedlibrary/components/form/bit-custom.component.d.ts +35 -32
- package/lib/sharedlibrary/components/form/bit-editable.component.d.ts +31 -28
- package/lib/sharedlibrary/components/form/bit-general.component.d.ts +41 -38
- package/lib/sharedlibrary/components/form/calendar/bit-calendar.component.d.ts +19 -16
- package/lib/sharedlibrary/components/form/checkbox/bit-checkbox.component.d.ts +10 -7
- package/lib/sharedlibrary/components/form/date/bit-date.component.d.ts +15 -12
- package/lib/sharedlibrary/components/form/datetime/bit-datetime.component.d.ts +14 -11
- package/lib/sharedlibrary/components/form/dropdown/bit-dropdown-general.component.d.ts +41 -38
- package/lib/sharedlibrary/components/form/dropdown/bit-dropdown-multiple.component.d.ts +37 -34
- package/lib/sharedlibrary/components/form/dropdown/bit-dropdown.component.d.ts +33 -30
- package/lib/sharedlibrary/components/form/editor/bit-editor.component.d.ts +31 -28
- package/lib/sharedlibrary/components/form/readonly/bit-readonly.component.d.ts +26 -23
- package/lib/sharedlibrary/components/form/switch/bit-switch.component.d.ts +15 -12
- package/lib/sharedlibrary/components/form/text/bit-text.component.d.ts +9 -6
- package/lib/sharedlibrary/components/form/textarea/bit-textarea.component.d.ts +9 -6
- package/lib/sharedlibrary/components/form/time/bit-time.component.d.ts +15 -12
- package/lib/sharedlibrary/components/header/bit-header.component.d.ts +22 -19
- package/lib/sharedlibrary/components/help/bit-help.component.d.ts +15 -12
- package/lib/sharedlibrary/components/loading/bit-loading.component.d.ts +17 -14
- package/lib/sharedlibrary/components/misc/bit-boton-ayuda.component.d.ts +12 -9
- package/lib/sharedlibrary/components/misc/bit-column-boolean.component.d.ts +13 -10
- package/lib/sharedlibrary/components/misc/bit-domain-value.component.d.ts +14 -11
- package/lib/sharedlibrary/components/notificacion/bit-notification-error.component.d.ts +34 -31
- package/lib/sharedlibrary/components/notificacion/bit-notification-toast.component.d.ts +16 -13
- package/lib/sharedlibrary/components/toolbar/bit-toolbar.component.d.ts +39 -36
- package/lib/sharedlibrary/components/upload/bit-ng-upload.component.d.ts +49 -46
- package/lib/sharedlibrary/components/user/bit-user-controls.component.d.ts +14 -11
- package/lib/sharedlibrary/data/ayudacontextual.d.ts +8 -8
- package/lib/sharedlibrary/data/bitmessage.d.ts +17 -17
- package/lib/sharedlibrary/data/bitnotification-error.d.ts +9 -9
- package/lib/sharedlibrary/data/bitnotification.d.ts +10 -10
- package/lib/sharedlibrary/data/configuration-editor.d.ts +9 -9
- package/lib/sharedlibrary/data/domain.d.ts +7 -7
- package/lib/sharedlibrary/data/error.d.ts +12 -12
- package/lib/sharedlibrary/data/fichero.d.ts +13 -13
- package/lib/sharedlibrary/data/index.d.ts +9 -9
- package/lib/sharedlibrary/data/item.d.ts +7 -7
- package/lib/sharedlibrary/directives/edit-mode.directive.d.ts +8 -5
- package/lib/sharedlibrary/directives/focus-register.directive.d.ts +13 -10
- package/lib/sharedlibrary/directives/view-mode.directive.d.ts +8 -5
- package/lib/sharedlibrary/global.constants.d.ts +15 -15
- package/lib/sharedlibrary/guards/candeactivate.guard.d.ts +11 -8
- package/lib/sharedlibrary/pipes/capitalize.pipe.d.ts +10 -7
- package/lib/sharedlibrary/pipes/other-actions.pipe.d.ts +7 -4
- package/lib/sharedlibrary/pipes/pipe-cantidadmoneda.pipe.d.ts +12 -9
- package/lib/sharedlibrary/pipes/remove-line-breaks.pipe.d.ts +7 -4
- package/lib/sharedlibrary/services/ayuda.service.d.ts +13 -10
- package/lib/sharedlibrary/services/base-data-adapter.service.d.ts +11 -11
- package/lib/sharedlibrary/services/base-data.service.d.ts +13 -13
- package/lib/sharedlibrary/services/custom-validators.service.d.ts +173 -173
- package/lib/sharedlibrary/services/domain.service.d.ts +11 -8
- package/lib/sharedlibrary/services/focus.service.d.ts +12 -9
- package/lib/sharedlibrary/services/general-utils.service.d.ts +39 -36
- package/lib/sharedlibrary/services/http-utils.service.d.ts +34 -31
- package/lib/sharedlibrary/services/index.d.ts +15 -15
- package/lib/sharedlibrary/services/locator.service.d.ts +8 -8
- package/lib/sharedlibrary/services/message.service.d.ts +44 -41
- package/lib/sharedlibrary/services/session-shared.service.d.ts +9 -6
- package/lib/sharedlibrary/services/tableview.service.d.ts +9 -6
- package/lib/sharedlibrary/services/toolbar.service.d.ts +10 -7
- package/lib/sharedlibrary/services/translate.service.d.ts +31 -28
- package/lib/sharedlibrary/services/upload.service.d.ts +19 -16
- package/lib/sharedlibrary/sharedlibrary.module.d.ts +71 -6
- package/lib/sharedlibrary/utils/custom-http-interceptor.d.ts +13 -10
- package/package.json +19 -7
- package/public-api.d.ts +77 -77
- package/bit-ng-library.metadata.json +0 -1
- package/bundles/bit-ng-library.umd.js +0 -5168
- package/bundles/bit-ng-library.umd.js.map +0 -1
- package/esm2015/bit-ng-library.js +0 -6
- package/esm2015/lib/base/components/base.component.js +0 -15
- package/esm2015/lib/base/models/types.js +0 -19
- package/esm2015/lib/base/shared/base-interface.service.js +0 -2
- package/esm2015/lib/base/shared/base.filter.js +0 -78
- package/esm2015/lib/sharedlibrary/components/breadcrumb/bit-breadcrumb.component.js +0 -57
- package/esm2015/lib/sharedlibrary/components/contol-messages/bit-control-messages.component.js +0 -43
- package/esm2015/lib/sharedlibrary/components/dialog/bit-dialog.component.js +0 -163
- package/esm2015/lib/sharedlibrary/components/footer/bit-footer.component.js +0 -206
- package/esm2015/lib/sharedlibrary/components/form/autocomplete/bit-autocomplete.component.js +0 -44
- package/esm2015/lib/sharedlibrary/components/form/bit-custom.component.js +0 -89
- package/esm2015/lib/sharedlibrary/components/form/bit-editable.component.js +0 -83
- package/esm2015/lib/sharedlibrary/components/form/bit-general.component.js +0 -81
- package/esm2015/lib/sharedlibrary/components/form/calendar/bit-calendar.component.js +0 -38
- package/esm2015/lib/sharedlibrary/components/form/checkbox/bit-checkbox.component.js +0 -23
- package/esm2015/lib/sharedlibrary/components/form/date/bit-date.component.js +0 -45
- package/esm2015/lib/sharedlibrary/components/form/datetime/bit-datetime.component.js +0 -38
- package/esm2015/lib/sharedlibrary/components/form/dropdown/bit-dropdown-general.component.js +0 -99
- package/esm2015/lib/sharedlibrary/components/form/dropdown/bit-dropdown-multiple.component.js +0 -81
- package/esm2015/lib/sharedlibrary/components/form/dropdown/bit-dropdown.component.js +0 -89
- package/esm2015/lib/sharedlibrary/components/form/editor/bit-editor.component.js +0 -77
- package/esm2015/lib/sharedlibrary/components/form/readonly/bit-readonly.component.js +0 -95
- package/esm2015/lib/sharedlibrary/components/form/switch/bit-switch.component.js +0 -43
- package/esm2015/lib/sharedlibrary/components/form/text/bit-text.component.js +0 -19
- package/esm2015/lib/sharedlibrary/components/form/textarea/bit-textarea.component.js +0 -19
- package/esm2015/lib/sharedlibrary/components/form/time/bit-time.component.js +0 -45
- package/esm2015/lib/sharedlibrary/components/header/bit-header.component.js +0 -38
- package/esm2015/lib/sharedlibrary/components/help/bit-help.component.js +0 -47
- package/esm2015/lib/sharedlibrary/components/loading/bit-loading.component.js +0 -55
- package/esm2015/lib/sharedlibrary/components/misc/bit-boton-ayuda.component.js +0 -33
- package/esm2015/lib/sharedlibrary/components/misc/bit-column-boolean.component.js +0 -28
- package/esm2015/lib/sharedlibrary/components/misc/bit-domain-value.component.js +0 -39
- package/esm2015/lib/sharedlibrary/components/notificacion/bit-notification-error.component.js +0 -110
- package/esm2015/lib/sharedlibrary/components/notificacion/bit-notification-toast.component.js +0 -45
- package/esm2015/lib/sharedlibrary/components/toolbar/bit-toolbar.component.js +0 -97
- package/esm2015/lib/sharedlibrary/components/upload/bit-ng-upload.component.js +0 -118
- package/esm2015/lib/sharedlibrary/components/user/bit-user-controls.component.js +0 -30
- package/esm2015/lib/sharedlibrary/directives/edit-mode.directive.js +0 -15
- package/esm2015/lib/sharedlibrary/directives/focus-register.directive.js +0 -30
- package/esm2015/lib/sharedlibrary/directives/view-mode.directive.js +0 -15
- package/esm2015/lib/sharedlibrary/guards/candeactivate.guard.js +0 -10
- package/esm2015/lib/sharedlibrary/pipes/capitalize.pipe.js +0 -18
- package/esm2015/lib/sharedlibrary/pipes/other-actions.pipe.js +0 -22
- package/esm2015/lib/sharedlibrary/pipes/pipe-cantidadmoneda.pipe.js +0 -41
- package/esm2015/lib/sharedlibrary/pipes/remove-line-breaks.pipe.js +0 -24
- package/esm2015/lib/sharedlibrary/services/base-data.service.js +0 -4
- package/esm2015/lib/sharedlibrary/services/domain.service.js +0 -26
- package/esm2015/lib/sharedlibrary/services/focus.service.js +0 -28
- package/esm2015/lib/sharedlibrary/services/http-utils.service.js +0 -178
- package/esm2015/lib/sharedlibrary/services/message.service.js +0 -68
- package/esm2015/lib/sharedlibrary/services/session-shared.service.js +0 -22
- package/esm2015/lib/sharedlibrary/services/tableview.service.js +0 -18
- package/esm2015/lib/sharedlibrary/services/toolbar.service.js +0 -24
- package/esm2015/lib/sharedlibrary/services/translate.service.js +0 -67
- package/esm2015/lib/sharedlibrary/sharedlibrary.module.js +0 -135
- package/esm2015/lib/sharedlibrary/utils/custom-http-interceptor.js +0 -41
- 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
|
package/bit-ng-library.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
export
|
|
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=
|
package/{esm2015/lib/base/models/base-form.models.js → esm2020/lib/base/models/base-form.models.mjs}
RENAMED
|
@@ -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==
|