@unipin/angular-applet 18.9.2 → 18.9.4
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/.editorconfig +16 -0
- package/.eslintrc.json +72 -0
- package/.github/ISSUE_TEMPLATE/bug_fix.yml +60 -0
- package/.github/ISSUE_TEMPLATE/dependency_update.yml +20 -0
- package/.github/ISSUE_TEMPLATE/documentation.yml +13 -0
- package/.github/ISSUE_TEMPLATE/engineering.yml +22 -0
- package/.github/ISSUE_TEMPLATE/feature_request.yml +38 -0
- package/.github/ISSUE_TEMPLATE/testing.yml +38 -0
- package/.github/dependabot.yml +11 -0
- package/.github/pull_request_template.md +77 -0
- package/.github/workflows/npm_publish.yml +52 -0
- package/.storybook/main.ts +28 -0
- package/.storybook/preview.ts +19 -0
- package/.storybook/test-runner.ts +29 -0
- package/.storybook/tsconfig.json +14 -0
- package/.storybook/typings.d.ts +4 -0
- package/.vscode/extensions.json +7 -0
- package/.vscode/launch.json +20 -0
- package/.vscode/settings.json +16 -0
- package/.vscode/tasks.json +42 -0
- package/README.md +11 -8
- package/angular.json +102 -0
- package/codegen.yml +8 -0
- package/package.json +86 -38
- package/projects/unipin-angular/README.md +24 -0
- package/projects/unipin-angular/documentation.json +116258 -0
- package/projects/unipin-angular/ng-package.json +19 -0
- package/projects/unipin-angular/package-lock.json +23 -0
- package/projects/unipin-angular/package.json +32 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_accordion.scss +149 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_alert.scss +71 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_badge.scss +38 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_breadcrumb.scss +40 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_button-group.scss +142 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_buttons.scss +209 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_card.scss +234 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_carousel.scss +226 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_close.scss +40 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_containers.scss +41 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_dropdown.scss +249 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_forms.scss +9 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_functions.scss +302 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_grid.scss +33 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_helpers.scss +10 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_images.scss +42 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_list-group.scss +192 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_maps.scss +54 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_mixins.scss +43 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_modal.scss +237 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_nav.scss +172 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_navbar.scss +278 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_offcanvas.scss +144 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_pagination.scss +109 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_placeholders.scss +51 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_popover.scss +196 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_progress.scss +59 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_reboot.scss +610 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_root.scss +73 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_spinners.scss +85 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_tables.scss +164 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_toasts.scss +73 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_tooltip.scss +120 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_transitions.scss +27 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_type.scss +106 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_utilities.scss +647 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/_variables.scss +1634 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/bootstrap-grid.scss +64 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/bootstrap-reboot.scss +9 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/bootstrap-utilities.scss +18 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/bootstrap.scss +24 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/forms/_floating-labels.scss +75 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/forms/_form-check.scss +175 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/forms/_form-control.scss +195 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/forms/_form-range.scss +91 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/forms/_form-select.scss +71 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/forms/_form-text.scss +11 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/forms/_input-group.scss +132 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/forms/_labels.scss +36 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/forms/_validation.scss +12 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/helpers/_clearfix.scss +3 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/helpers/_color-bg.scss +10 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/helpers/_colored-links.scss +12 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/helpers/_position.scss +36 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/helpers/_ratio.scss +26 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/helpers/_stacks.scss +15 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/helpers/_stretched-link.scss +15 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/helpers/_text-truncation.scss +7 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/helpers/_visually-hidden.scss +8 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/helpers/_vr.scss +8 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_alert.scss +15 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_backdrop.scss +14 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_banner.scss +9 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_border-radius.scss +78 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_box-shadow.scss +18 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_breakpoints.scss +127 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_buttons.scss +70 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_caret.scss +64 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_clearfix.scss +9 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_color-scheme.scss +7 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_container.scss +11 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_deprecate.scss +10 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_forms.scss +152 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_gradients.scss +47 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_grid.scss +151 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_image.scss +16 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_list-group.scss +24 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_lists.scss +7 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_pagination.scss +10 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_reset-text.scss +17 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_resize.scss +6 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_table-variants.scss +24 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_text-truncate.scss +8 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_transition.scss +26 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_utilities.scss +97 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_visually-hidden.scss +29 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/utilities/_api.scss +47 -0
- package/projects/unipin-angular/src/assets/private/scss/bootstrap/vendor/_rfs.scss +354 -0
- package/projects/unipin-angular/src/assets/private/scss/theme/variables.scss +59 -0
- package/projects/unipin-angular/src/graphql/generated.d.ts +715 -0
- package/projects/unipin-angular/src/graphql/generated.mjs +49 -0
- package/projects/unipin-angular/src/graphql/generated.ts +19998 -0
- package/projects/unipin-angular/src/lib/components/approval/detail/approval-detail.component.html +14 -0
- package/projects/unipin-angular/src/lib/components/approval/detail/approval-detail.component.scss +0 -0
- package/projects/unipin-angular/src/lib/components/approval/detail/approval-detail.component.ts +90 -0
- package/projects/unipin-angular/src/lib/components/approval/detail/approval-detail.stories.ts +61 -0
- package/projects/unipin-angular/src/lib/components/approval/form/approval-form.component.html +41 -0
- package/projects/unipin-angular/src/lib/components/approval/form/approval-form.component.scss +0 -0
- package/projects/unipin-angular/src/lib/components/approval/form/approval-form.component.ts +152 -0
- package/projects/unipin-angular/src/lib/components/approval/form/approval-form.stories.ts +111 -0
- package/{lib/components/approval/index.d.ts → projects/unipin-angular/src/lib/components/approval/index.ts} +1 -0
- package/projects/unipin-angular/src/lib/components/approval/list/approval-list.component.html +15 -0
- package/projects/unipin-angular/src/lib/components/approval/list/approval-list.component.scss +0 -0
- package/projects/unipin-angular/src/lib/components/approval/list/approval-list.component.ts +136 -0
- package/projects/unipin-angular/src/lib/components/approval/list/approval-list.stories.ts +141 -0
- package/projects/unipin-angular/src/lib/components/approval/list/provide-approval-entities.util.ts +10 -0
- package/projects/unipin-angular/src/lib/components/approval/services/approval.service.ts +46 -0
- package/projects/unipin-angular/src/lib/components/audit/detail/audit-detail.component.html +50 -0
- package/projects/unipin-angular/src/lib/components/audit/detail/audit-detail.component.scss +4 -0
- package/projects/unipin-angular/src/lib/components/audit/detail/audit-detail.component.spec.ts +51 -0
- package/projects/unipin-angular/src/lib/components/audit/detail/audit-detail.component.ts +141 -0
- package/projects/unipin-angular/src/lib/components/audit/detail/audit-detail.stories.ts +126 -0
- package/projects/unipin-angular/src/lib/components/audit/list/audit-list.component.html +5 -0
- package/projects/unipin-angular/src/lib/components/audit/list/audit-list.component.scss +0 -0
- package/projects/unipin-angular/src/lib/components/audit/list/audit-list.component.ts +85 -0
- package/projects/unipin-angular/src/lib/components/audit/list/audit-list.stories.ts +170 -0
- package/projects/unipin-angular/src/lib/components/audit/service/audit.service.ts +48 -0
- package/projects/unipin-angular/src/lib/components/audit/types/audit-detail-form.type.ts +13 -0
- package/projects/unipin-angular/src/lib/components/buttons/group/btn-group.component.html +42 -0
- package/projects/unipin-angular/src/lib/components/buttons/group/btn-group.component.scss +19 -0
- package/projects/unipin-angular/src/lib/components/buttons/group/btn-group.component.ts +72 -0
- package/projects/unipin-angular/src/lib/components/buttons/group/btn-group.stories.ts +132 -0
- package/projects/unipin-angular/src/lib/components/buttons/group/interfaces/btn-group-config.interface.ts +63 -0
- package/projects/unipin-angular/src/lib/components/buttons/loading/btn-loading.component.html +9 -0
- package/projects/unipin-angular/src/lib/components/buttons/loading/btn-loading.component.scss +8 -0
- package/projects/unipin-angular/src/lib/components/buttons/loading/btn-loading.component.ts +87 -0
- package/projects/unipin-angular/src/lib/components/buttons/loading/btn-loading.stories.ts +188 -0
- package/projects/unipin-angular/src/lib/components/containers/applet-container/applet-container.component.html +39 -0
- package/projects/unipin-angular/src/lib/components/containers/applet-container/applet-container.component.scss +68 -0
- package/projects/unipin-angular/src/lib/components/containers/applet-container/applet-container.component.ts +98 -0
- package/projects/unipin-angular/src/lib/components/containers/applet-container/provide-applet-config.util.ts +23 -0
- package/projects/unipin-angular/src/lib/components/containers/colum-header-container/column-header-container.component.html +17 -0
- package/projects/unipin-angular/src/lib/components/containers/colum-header-container/column-header-container.component.scss +4 -0
- package/projects/unipin-angular/src/lib/components/containers/colum-header-container/column-header-container.component.ts +32 -0
- package/projects/unipin-angular/src/lib/components/containers/colum-header-container/column-header.stories.ts +77 -0
- package/projects/unipin-angular/src/lib/components/containers/column-container/column-container.component.html +17 -0
- package/projects/unipin-angular/src/lib/components/containers/column-container/column-container.component.scss +0 -0
- package/projects/unipin-angular/src/lib/components/containers/column-container/column-container.component.ts +139 -0
- package/projects/unipin-angular/src/lib/components/containers/column-container/directives/lazy-route.directive.ts +86 -0
- package/{lib/components/containers/index.d.ts → projects/unipin-angular/src/lib/components/containers/index.ts} +1 -0
- package/{lib/components/containers/list-container/interfaces/list-container-config.interface.d.ts → projects/unipin-angular/src/lib/components/containers/list-container/interfaces/list-container-config.interface.ts} +5 -4
- package/projects/unipin-angular/src/lib/components/containers/list-container/list-pagination-container/list-pagination-container.component.html +19 -0
- package/projects/unipin-angular/src/lib/components/containers/list-container/list-pagination-container/list-pagination-container.component.scss +7 -0
- package/projects/unipin-angular/src/lib/components/containers/list-container/list-pagination-container/list-pagination-container.component.ts +113 -0
- package/projects/unipin-angular/src/lib/components/containers/list-container/list-pagination-container/list-pagination-container.stories.ts +207 -0
- package/projects/unipin-angular/src/lib/components/containers/list-container/list-snapshot-container/list-snapshot-container.component.html +19 -0
- package/projects/unipin-angular/src/lib/components/containers/list-container/list-snapshot-container/list-snapshot-container.component.scss +7 -0
- package/projects/unipin-angular/src/lib/components/containers/list-container/list-snapshot-container/list-snapshot-container.component.ts +114 -0
- package/projects/unipin-angular/src/lib/components/containers/list-container/list-snapshot-container/list-snapshot-container.stories.ts +212 -0
- package/projects/unipin-angular/src/lib/components/containers/modal-container/modal-container.component.html +15 -0
- package/projects/unipin-angular/src/lib/components/containers/modal-container/modal-container.component.scss +2 -0
- package/projects/unipin-angular/src/lib/components/containers/modal-container/modal-container.component.ts +88 -0
- package/projects/unipin-angular/src/lib/components/containers/modal-container/modal-container.stories.ts +66 -0
- package/projects/unipin-angular/src/lib/components/filter/filter.component.html +112 -0
- package/projects/unipin-angular/src/lib/components/filter/filter.component.scss +28 -0
- package/projects/unipin-angular/src/lib/components/filter/filter.component.ts +329 -0
- package/projects/unipin-angular/src/lib/components/filter/filter.stories.ts +176 -0
- package/{lib/components/filter/index.d.ts → projects/unipin-angular/src/lib/components/filter/index.ts} +1 -1
- package/projects/unipin-angular/src/lib/components/filter/interfaces/filter-config.interface.ts +17 -0
- package/projects/unipin-angular/src/lib/components/filter/interfaces/filter-field.interface.ts +73 -0
- package/projects/unipin-angular/src/lib/components/filter/interfaces/filter-search-event.interface.ts +15 -0
- package/projects/unipin-angular/src/lib/components/forms/country-input/form-country-input.component.html +19 -0
- package/projects/unipin-angular/src/lib/components/forms/country-input/form-country-input.component.scss +0 -0
- package/projects/unipin-angular/src/lib/components/forms/country-input/form-country-input.component.ts +210 -0
- package/projects/unipin-angular/src/lib/components/forms/country-input/form-country-input.stories.ts +175 -0
- package/projects/unipin-angular/src/lib/components/forms/currency-input/form-currency-input.component.html +42 -0
- package/projects/unipin-angular/src/lib/components/forms/currency-input/form-currency-input.component.scss +4 -0
- package/projects/unipin-angular/src/lib/components/forms/currency-input/form-currency-input.component.ts +285 -0
- package/projects/unipin-angular/src/lib/components/forms/currency-input/form-currency-input.spec.ts +119 -0
- package/projects/unipin-angular/src/lib/components/forms/currency-input/form-currency-input.stories.ts +243 -0
- package/projects/unipin-angular/src/lib/components/forms/date/form-date.component.html +27 -0
- package/projects/unipin-angular/src/lib/components/forms/date/form-date.component.scss +7 -0
- package/projects/unipin-angular/src/lib/components/forms/date/form-date.component.ts +225 -0
- package/projects/unipin-angular/src/lib/components/forms/date/form-date.stories.ts +201 -0
- package/projects/unipin-angular/src/lib/components/forms/image-picker/directives/drag-n-drop.directive.ts +40 -0
- package/projects/unipin-angular/src/lib/components/forms/image-picker/form-image-picker.component.html +29 -0
- package/projects/unipin-angular/src/lib/components/forms/image-picker/form-image-picker.component.scss +40 -0
- package/projects/unipin-angular/src/lib/components/forms/image-picker/form-image-picker.component.ts +109 -0
- package/projects/unipin-angular/src/lib/components/forms/image-picker/form-image-picker.stories.ts +133 -0
- package/projects/unipin-angular/src/lib/components/forms/input/form-input.component.html +22 -0
- package/projects/unipin-angular/src/lib/components/forms/input/form-input.component.scss +0 -0
- package/projects/unipin-angular/src/lib/components/forms/input/form-input.component.ts +177 -0
- package/projects/unipin-angular/src/lib/components/forms/input/form-input.stories.ts +185 -0
- package/projects/unipin-angular/src/lib/components/forms/number/form-number.component.html +6 -0
- package/projects/unipin-angular/src/lib/components/forms/number/form-number.component.scss +0 -0
- package/projects/unipin-angular/src/lib/components/forms/number/form-number.component.ts +176 -0
- package/projects/unipin-angular/src/lib/components/forms/number/form-number.spec.ts +62 -0
- package/projects/unipin-angular/src/lib/components/forms/number/form-number.stories.ts +150 -0
- package/projects/unipin-angular/src/lib/components/forms/number/pipes/locale-number.pipe.ts +32 -0
- package/projects/unipin-angular/src/lib/components/forms/password/form-password.component.html +11 -0
- package/projects/unipin-angular/src/lib/components/forms/password/form-password.component.scss +5 -0
- package/projects/unipin-angular/src/lib/components/forms/password/form-password.component.ts +177 -0
- package/projects/unipin-angular/src/lib/components/forms/password/form-password.stories.ts +151 -0
- package/projects/unipin-angular/src/lib/components/forms/rate-group-code-input/form-rate-group-code-input.component.html +30 -0
- package/projects/unipin-angular/src/lib/components/forms/rate-group-code-input/form-rate-group-code-input.component.scss +0 -0
- package/projects/unipin-angular/src/lib/components/forms/rate-group-code-input/form-rate-group-code-input.component.ts +271 -0
- package/projects/unipin-angular/src/lib/components/forms/rate-group-code-input/form-rate-group-code-input.stories.ts +248 -0
- package/projects/unipin-angular/src/lib/components/forms/searchable-select/form-searchable-select.component.html +28 -0
- package/projects/unipin-angular/src/lib/components/forms/searchable-select/form-searchable-select.component.scss +0 -0
- package/projects/unipin-angular/src/lib/components/forms/searchable-select/form-searchable-select.component.ts +281 -0
- package/projects/unipin-angular/src/lib/components/forms/searchable-select/form-searchable-select.stories.ts +267 -0
- package/projects/unipin-angular/src/lib/components/forms/select/form-select.component.html +24 -0
- package/projects/unipin-angular/src/lib/components/forms/select/form-select.component.scss +1 -0
- package/projects/unipin-angular/src/lib/components/forms/select/form-select.component.ts +216 -0
- package/projects/unipin-angular/src/lib/components/forms/select/form-select.stories.ts +220 -0
- package/projects/unipin-angular/src/lib/components/forms/textarea/form-textarea.component.html +9 -0
- package/projects/unipin-angular/src/lib/components/forms/textarea/form-textarea.component.scss +0 -0
- package/projects/unipin-angular/src/lib/components/forms/textarea/form-textarea.component.ts +146 -0
- package/projects/unipin-angular/src/lib/components/forms/textarea/form-textarea.stories.ts +163 -0
- package/projects/unipin-angular/src/lib/components/grids/grid-pagination/grid-pagination.component.html +17 -0
- package/projects/unipin-angular/src/lib/components/grids/grid-pagination/grid-pagination.component.scss +8 -0
- package/projects/unipin-angular/src/lib/components/grids/grid-pagination/grid-pagination.component.ts +224 -0
- package/projects/unipin-angular/src/lib/components/grids/grid-pagination/grid-pagination.stories.ts +219 -0
- package/projects/unipin-angular/src/lib/components/grids/grid-snapshot/grid-snapshot.component.html +17 -0
- package/projects/unipin-angular/src/lib/components/grids/grid-snapshot/grid-snapshot.component.scss +8 -0
- package/projects/unipin-angular/src/lib/components/grids/grid-snapshot/grid-snapshot.component.ts +229 -0
- package/projects/unipin-angular/src/lib/components/grids/grid-snapshot/grid-snapshot.stories.ts +173 -0
- package/projects/unipin-angular/src/lib/components/grids/interfaces/grid-config.interface.ts +44 -0
- package/projects/unipin-angular/src/lib/components/grids/services/grid.service.ts +23 -0
- package/{lib/components/index.d.ts → projects/unipin-angular/src/lib/components/index.ts} +14 -2
- package/projects/unipin-angular/src/lib/components/infinite-scroll/directive/infinite-scroll.directive.ts +72 -0
- package/projects/unipin-angular/src/lib/components/infinite-scroll/infinite-scroll.component.html +13 -0
- package/projects/unipin-angular/src/lib/components/infinite-scroll/infinite-scroll.component.scss +10 -0
- package/projects/unipin-angular/src/lib/components/infinite-scroll/infinite-scroll.component.ts +61 -0
- package/projects/unipin-angular/src/lib/components/infinite-scroll/infinite-scroll.stories.ts +80 -0
- package/{lib/components/tabs/index.d.ts → projects/unipin-angular/src/lib/components/tabs/index.ts} +3 -2
- package/projects/unipin-angular/src/lib/components/tabs/tab-content/tab-content.component.html +3 -0
- package/projects/unipin-angular/src/lib/components/tabs/tab-content/tab-content.component.scss +6 -0
- package/projects/unipin-angular/src/lib/components/tabs/tab-content/tab-content.component.ts +56 -0
- package/projects/unipin-angular/src/lib/components/tabs/tab-group/tab-group.component.html +24 -0
- package/projects/unipin-angular/src/lib/components/tabs/tab-group/tab-group.component.scss +39 -0
- package/projects/unipin-angular/src/lib/components/tabs/tab-group/tab-group.component.ts +92 -0
- package/projects/unipin-angular/src/lib/components/tabs/tab.stories.ts +117 -0
- package/projects/unipin-angular/src/lib/guards/auth/auth.guard.ts +11 -0
- package/projects/unipin-angular/src/lib/interceptors/header/header.interceptor.ts +36 -0
- package/projects/unipin-angular/src/lib/interceptors/refresh-token/refresh-token.interceptor.ts +123 -0
- package/projects/unipin-angular/src/lib/interfaces/user/user.interface.ts +27 -0
- package/projects/unipin-angular/src/lib/modules/index.ts +11 -0
- package/projects/unipin-angular/src/lib/modules/micro-frontend/utils/mf-bootstrap.util.ts +74 -0
- package/projects/unipin-angular/src/lib/modules/micro-frontend/utils/mf-global-state.util.ts +20 -0
- package/projects/unipin-angular/src/lib/modules/permission/directive/permission.directive.spec.ts +50 -0
- package/projects/unipin-angular/src/lib/modules/permission/directive/permission.directive.ts +68 -0
- package/projects/unipin-angular/src/lib/modules/permission/guards/permission.guard.spec.ts +76 -0
- package/projects/unipin-angular/src/lib/modules/permission/guards/permission.guard.ts +30 -0
- package/{lib/modules/permission/index.d.ts → projects/unipin-angular/src/lib/modules/permission/index.ts} +1 -0
- package/projects/unipin-angular/src/lib/modules/permission/pages/401/unauthorized.page.html +3 -0
- package/projects/unipin-angular/src/lib/modules/permission/pages/401/unauthorized.page.scss +3 -0
- package/projects/unipin-angular/src/lib/modules/permission/pages/401/unauthorized.page.ts +14 -0
- package/projects/unipin-angular/src/lib/modules/permission/pages/loading/loading.page.html +2 -0
- package/projects/unipin-angular/src/lib/modules/permission/pages/loading/loading.page.scss +4 -0
- package/projects/unipin-angular/src/lib/modules/permission/pages/loading/loading.page.ts +76 -0
- package/projects/unipin-angular/src/lib/modules/permission/pages/loading/provide-loading-config.util.ts +18 -0
- package/projects/unipin-angular/src/lib/modules/permission/services/permission.service.spec.ts +62 -0
- package/projects/unipin-angular/src/lib/modules/permission/services/permission.service.ts +78 -0
- package/projects/unipin-angular/src/lib/resolvers/auth/auth.resolver.spec.ts +46 -0
- package/projects/unipin-angular/src/lib/resolvers/auth/auth.resolver.ts +144 -0
- package/projects/unipin-angular/src/lib/services/auth/auth.service.ts +243 -0
- package/projects/unipin-angular/src/lib/services/country/country.service.ts +47 -0
- package/projects/unipin-angular/src/lib/services/currency/currency.service.ts +44 -0
- package/projects/unipin-angular/src/lib/services/profile/profile.service.ts +86 -0
- package/projects/unipin-angular/src/lib/services/rate-group-code/rate-group-code.service.ts +29 -0
- package/projects/unipin-angular/src/lib/utils/contrast-color-generator/contrast-color-generator.util.spec.ts +19 -0
- package/projects/unipin-angular/src/lib/utils/contrast-color-generator/contrast-color-generator.util.ts +28 -0
- package/projects/unipin-angular/src/lib/utils/form-error-message/form-error-message.util.spec.ts +58 -0
- package/projects/unipin-angular/src/lib/utils/form-error-message/form-error-message.util.ts +30 -0
- package/projects/unipin-angular/src/lib/utils/format-capitalize/format-capitalize.util.spec.ts +30 -0
- package/projects/unipin-angular/src/lib/utils/format-capitalize/format-capitalize.util.ts +22 -0
- package/projects/unipin-angular/src/lib/utils/redirect-to-first-menu/redirect-to-first-menu.util.ts +15 -0
- package/projects/unipin-angular/src/public-api.ts +126 -0
- package/projects/unipin-angular/tsconfig.lib.json +14 -0
- package/projects/unipin-angular/tsconfig.lib.prod.json +10 -0
- package/projects/unipin-angular/tsconfig.spec.json +14 -0
- package/snapshot-serializer.js +12 -0
- package/test-runner-jest.config.js +13 -0
- package/tsconfig.json +51 -0
- package/esm2022/graphql/generated.mjs +0 -888
- package/esm2022/lib/components/approval/detail/approval-detail.component.mjs +0 -78
- package/esm2022/lib/components/approval/form/approval-form.component.mjs +0 -128
- package/esm2022/lib/components/approval/index.mjs +0 -5
- package/esm2022/lib/components/approval/list/approval-list.component.mjs +0 -114
- package/esm2022/lib/components/approval/list/provide-approval-entities.util.mjs +0 -9
- package/esm2022/lib/components/approval/services/approval.service.mjs +0 -46
- package/esm2022/lib/components/audit/detail/audit-detail.component.mjs +0 -123
- package/esm2022/lib/components/audit/index.mjs +0 -3
- package/esm2022/lib/components/audit/list/audit-list.component.mjs +0 -81
- package/esm2022/lib/components/audit/service/audit.service.mjs +0 -49
- package/esm2022/lib/components/audit/types/audit-detail-form.type.mjs +0 -2
- package/esm2022/lib/components/buttons/group/btn-group.component.mjs +0 -43
- package/esm2022/lib/components/buttons/group/interfaces/btn-group-config.interface.mjs +0 -2
- package/esm2022/lib/components/buttons/index.mjs +0 -3
- package/esm2022/lib/components/buttons/loading/btn-loading.component.mjs +0 -48
- package/esm2022/lib/components/containers/applet-container/applet-container.component.mjs +0 -55
- package/esm2022/lib/components/containers/applet-container/provide-applet-config.util.mjs +0 -9
- package/esm2022/lib/components/containers/colum-header-container/column-header-container.component.mjs +0 -23
- package/esm2022/lib/components/containers/column-container/column-container.component.mjs +0 -79
- package/esm2022/lib/components/containers/column-container/directives/lazy-route.directive.mjs +0 -57
- package/esm2022/lib/components/containers/index.mjs +0 -7
- package/esm2022/lib/components/containers/list-container/index.mjs +0 -3
- package/esm2022/lib/components/containers/list-container/interfaces/list-container-config.interface.mjs +0 -2
- package/esm2022/lib/components/containers/list-container/list-pagination-container/list-pagination-container.component.mjs +0 -58
- package/esm2022/lib/components/containers/list-container/list-snapshot-container/list-snapshot-container.component.mjs +0 -57
- package/esm2022/lib/components/containers/modal-container/modal-container.component.mjs +0 -40
- package/esm2022/lib/components/filter/filter.component.mjs +0 -222
- package/esm2022/lib/components/filter/index.mjs +0 -2
- package/esm2022/lib/components/filter/interfaces/filter-config.interface.mjs +0 -2
- package/esm2022/lib/components/filter/interfaces/filter-field.interface.mjs +0 -2
- package/esm2022/lib/components/filter/interfaces/filter-search-event.interface.mjs +0 -2
- package/esm2022/lib/components/forms/country-input/form-country-input.component.mjs +0 -122
- package/esm2022/lib/components/forms/currency-input/form-currency-input.component.mjs +0 -157
- package/esm2022/lib/components/forms/date/form-date.component.mjs +0 -114
- package/esm2022/lib/components/forms/image-picker/directives/drag-n-drop.directive.mjs +0 -49
- package/esm2022/lib/components/forms/image-picker/form-image-picker.component.mjs +0 -68
- package/esm2022/lib/components/forms/index.mjs +0 -12
- package/esm2022/lib/components/forms/input/form-input.component.mjs +0 -98
- package/esm2022/lib/components/forms/number/form-number.component.mjs +0 -97
- package/esm2022/lib/components/forms/number/pipes/locale-number.pipe.mjs +0 -33
- package/esm2022/lib/components/forms/password/form-password.component.mjs +0 -100
- package/esm2022/lib/components/forms/rate-group-code-input/form-rate-group-code-input.component.mjs +0 -135
- package/esm2022/lib/components/forms/searchable-select/form-searchable-select.component.mjs +0 -138
- package/esm2022/lib/components/forms/select/form-select.component.mjs +0 -116
- package/esm2022/lib/components/forms/textarea/form-textarea.component.mjs +0 -88
- package/esm2022/lib/components/grids/grid-pagination/grid-pagination.component.mjs +0 -111
- package/esm2022/lib/components/grids/grid-snapshot/grid-snapshot.component.mjs +0 -109
- package/esm2022/lib/components/grids/index.mjs +0 -4
- package/esm2022/lib/components/grids/interfaces/grid-config.interface.mjs +0 -2
- package/esm2022/lib/components/grids/services/grid.service.mjs +0 -25
- package/esm2022/lib/components/index.mjs +0 -9
- package/esm2022/lib/components/infinite-scroll/directive/infinite-scroll.directive.mjs +0 -43
- package/esm2022/lib/components/infinite-scroll/index.mjs +0 -3
- package/esm2022/lib/components/infinite-scroll/infinite-scroll.component.mjs +0 -36
- package/esm2022/lib/components/tabs/index.mjs +0 -3
- package/esm2022/lib/components/tabs/tab-content/tab-content.component.mjs +0 -37
- package/esm2022/lib/components/tabs/tab-group/tab-group.component.mjs +0 -47
- package/esm2022/lib/guards/auth/auth.guard.mjs +0 -10
- package/esm2022/lib/guards/index.mjs +0 -2
- package/esm2022/lib/interceptors/header/header.interceptor.mjs +0 -29
- package/esm2022/lib/interceptors/index.mjs +0 -3
- package/esm2022/lib/interceptors/refresh-token/refresh-token.interceptor.mjs +0 -83
- package/esm2022/lib/interfaces/index.mjs +0 -2
- package/esm2022/lib/interfaces/user/user.interface.mjs +0 -2
- package/esm2022/lib/modules/index.mjs +0 -3
- package/esm2022/lib/modules/micro-frontend/index.mjs +0 -2
- package/esm2022/lib/modules/micro-frontend/utils/mf-bootstrap.util.mjs +0 -55
- package/esm2022/lib/modules/micro-frontend/utils/mf-global-state.util.mjs +0 -14
- package/esm2022/lib/modules/permission/directive/permission.directive.mjs +0 -41
- package/esm2022/lib/modules/permission/guards/permission.guard.mjs +0 -26
- package/esm2022/lib/modules/permission/index.mjs +0 -7
- package/esm2022/lib/modules/permission/pages/401/unauthorized.page.mjs +0 -15
- package/esm2022/lib/modules/permission/pages/loading/loading.page.mjs +0 -65
- package/esm2022/lib/modules/permission/pages/loading/provide-loading-config.util.mjs +0 -9
- package/esm2022/lib/modules/permission/services/permission.service.mjs +0 -50
- package/esm2022/lib/resolvers/auth/auth.resolver.mjs +0 -87
- package/esm2022/lib/resolvers/index.mjs +0 -2
- package/esm2022/lib/services/auth/auth.service.mjs +0 -171
- package/esm2022/lib/services/country/country.service.mjs +0 -43
- package/esm2022/lib/services/currency/currency.service.mjs +0 -40
- package/esm2022/lib/services/index.mjs +0 -6
- package/esm2022/lib/services/profile/profile.service.mjs +0 -82
- package/esm2022/lib/services/rate-group-code/rate-group-code.service.mjs +0 -31
- package/esm2022/lib/utils/contrast-color-generator/contrast-color-generator.util.mjs +0 -16
- package/esm2022/lib/utils/form-error-message/form-error-message.util.mjs +0 -21
- package/esm2022/lib/utils/format-capitalize/format-capitalize.util.mjs +0 -18
- package/esm2022/lib/utils/index.mjs +0 -5
- package/esm2022/lib/utils/redirect-to-first-menu/redirect-to-first-menu.util.mjs +0 -9
- package/esm2022/public-api.mjs +0 -10
- package/esm2022/unipin-angular-applet.mjs +0 -2
- package/fesm2022/unipin-angular-applet.mjs +0 -4564
- package/fesm2022/unipin-angular-applet.mjs.map +0 -1
- package/graphql/generated.d.ts +0 -15719
- package/index.d.ts +0 -2
- package/lib/components/approval/detail/approval-detail.component.d.ts +0 -26
- package/lib/components/approval/form/approval-form.component.d.ts +0 -33
- package/lib/components/approval/list/approval-list.component.d.ts +0 -33
- package/lib/components/approval/list/provide-approval-entities.util.d.ts +0 -3
- package/lib/components/approval/services/approval.service.d.ts +0 -18
- package/lib/components/audit/detail/audit-detail.component.d.ts +0 -33
- package/lib/components/audit/list/audit-list.component.d.ts +0 -31
- package/lib/components/audit/service/audit.service.d.ts +0 -15
- package/lib/components/audit/types/audit-detail-form.type.d.ts +0 -12
- package/lib/components/buttons/group/btn-group.component.d.ts +0 -18
- package/lib/components/buttons/group/interfaces/btn-group-config.interface.d.ts +0 -11
- package/lib/components/buttons/loading/btn-loading.component.d.ts +0 -19
- package/lib/components/containers/applet-container/applet-container.component.d.ts +0 -22
- package/lib/components/containers/applet-container/provide-applet-config.util.d.ts +0 -15
- package/lib/components/containers/colum-header-container/column-header-container.component.d.ts +0 -7
- package/lib/components/containers/column-container/column-container.component.d.ts +0 -26
- package/lib/components/containers/column-container/directives/lazy-route.directive.d.ts +0 -17
- package/lib/components/containers/list-container/list-pagination-container/list-pagination-container.component.d.ts +0 -23
- package/lib/components/containers/list-container/list-snapshot-container/list-snapshot-container.component.d.ts +0 -23
- package/lib/components/containers/modal-container/modal-container.component.d.ts +0 -16
- package/lib/components/filter/filter.component.d.ts +0 -44
- package/lib/components/filter/interfaces/filter-config.interface.d.ts +0 -5
- package/lib/components/filter/interfaces/filter-field.interface.d.ts +0 -23
- package/lib/components/filter/interfaces/filter-search-event.interface.d.ts +0 -4
- package/lib/components/forms/country-input/form-country-input.component.d.ts +0 -41
- package/lib/components/forms/currency-input/form-currency-input.component.d.ts +0 -52
- package/lib/components/forms/date/form-date.component.d.ts +0 -32
- package/lib/components/forms/image-picker/directives/drag-n-drop.directive.d.ts +0 -10
- package/lib/components/forms/image-picker/form-image-picker.component.d.ts +0 -21
- package/lib/components/forms/input/form-input.component.d.ts +0 -31
- package/lib/components/forms/number/form-number.component.d.ts +0 -27
- package/lib/components/forms/number/pipes/locale-number.pipe.d.ts +0 -8
- package/lib/components/forms/password/form-password.component.d.ts +0 -27
- package/lib/components/forms/rate-group-code-input/form-rate-group-code-input.component.d.ts +0 -41
- package/lib/components/forms/searchable-select/form-searchable-select.component.d.ts +0 -42
- package/lib/components/forms/select/form-select.component.d.ts +0 -33
- package/lib/components/forms/textarea/form-textarea.component.d.ts +0 -26
- package/lib/components/grids/grid-pagination/grid-pagination.component.d.ts +0 -33
- package/lib/components/grids/grid-snapshot/grid-snapshot.component.d.ts +0 -36
- package/lib/components/grids/interfaces/grid-config.interface.d.ts +0 -16
- package/lib/components/grids/services/grid.service.d.ts +0 -12
- package/lib/components/infinite-scroll/directive/infinite-scroll.directive.d.ts +0 -15
- package/lib/components/infinite-scroll/infinite-scroll.component.d.ts +0 -12
- package/lib/components/tabs/tab-content/tab-content.component.d.ts +0 -14
- package/lib/components/tabs/tab-group/tab-group.component.d.ts +0 -18
- package/lib/guards/auth/auth.guard.d.ts +0 -1
- package/lib/interceptors/header/header.interceptor.d.ts +0 -9
- package/lib/interceptors/refresh-token/refresh-token.interceptor.d.ts +0 -14
- package/lib/interfaces/user/user.interface.d.ts +0 -27
- package/lib/modules/index.d.ts +0 -2
- package/lib/modules/micro-frontend/utils/mf-bootstrap.util.d.ts +0 -9
- package/lib/modules/micro-frontend/utils/mf-global-state.util.d.ts +0 -4
- package/lib/modules/permission/directive/permission.directive.d.ts +0 -16
- package/lib/modules/permission/guards/permission.guard.d.ts +0 -2
- package/lib/modules/permission/pages/401/unauthorized.page.d.ts +0 -5
- package/lib/modules/permission/pages/loading/loading.page.d.ts +0 -18
- package/lib/modules/permission/pages/loading/provide-loading-config.util.d.ts +0 -10
- package/lib/modules/permission/services/permission.service.d.ts +0 -21
- package/lib/resolvers/auth/auth.resolver.d.ts +0 -14
- package/lib/services/auth/auth.service.d.ts +0 -39
- package/lib/services/country/country.service.d.ts +0 -16
- package/lib/services/currency/currency.service.d.ts +0 -16
- package/lib/services/profile/profile.service.d.ts +0 -12
- package/lib/services/rate-group-code/rate-group-code.service.d.ts +0 -14
- package/lib/utils/contrast-color-generator/contrast-color-generator.util.d.ts +0 -4
- package/lib/utils/form-error-message/form-error-message.util.d.ts +0 -2
- package/lib/utils/format-capitalize/format-capitalize.util.d.ts +0 -1
- package/lib/utils/redirect-to-first-menu/redirect-to-first-menu.util.d.ts +0 -2
- package/public-api.d.ts +0 -11
- /package/{src → projects/unipin-angular/src}/assets/scss/forms.scss +0 -0
- /package/{src → projects/unipin-angular/src}/assets/scss/grid.scss +0 -0
- /package/{src → projects/unipin-angular/src}/assets/scss/select.scss +0 -0
- /package/{lib/components/audit/index.d.ts → projects/unipin-angular/src/lib/components/audit/index.ts} +0 -0
- /package/{lib/components/buttons/index.d.ts → projects/unipin-angular/src/lib/components/buttons/index.ts} +0 -0
- /package/{lib/components/containers/list-container/index.d.ts → projects/unipin-angular/src/lib/components/containers/list-container/index.ts} +0 -0
- /package/{lib/components/forms/index.d.ts → projects/unipin-angular/src/lib/components/forms/index.ts} +0 -0
- /package/{lib/components/grids/index.d.ts → projects/unipin-angular/src/lib/components/grids/index.ts} +0 -0
- /package/{lib/components/infinite-scroll/index.d.ts → projects/unipin-angular/src/lib/components/infinite-scroll/index.ts} +0 -0
- /package/{lib/guards/index.d.ts → projects/unipin-angular/src/lib/guards/index.ts} +0 -0
- /package/{lib/interceptors/index.d.ts → projects/unipin-angular/src/lib/interceptors/index.ts} +0 -0
- /package/{lib/interfaces/index.d.ts → projects/unipin-angular/src/lib/interfaces/index.ts} +0 -0
- /package/{lib/modules/micro-frontend/index.d.ts → projects/unipin-angular/src/lib/modules/micro-frontend/index.ts} +0 -0
- /package/{lib/resolvers/index.d.ts → projects/unipin-angular/src/lib/resolvers/index.ts} +0 -0
- /package/{lib/services/index.d.ts → projects/unipin-angular/src/lib/services/index.ts} +0 -0
- /package/{lib/utils/index.d.ts → projects/unipin-angular/src/lib/utils/index.ts} +0 -0
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core';
|
|
2
|
-
import { NavigationEnd } from '@angular/router';
|
|
3
|
-
import { filter } from 'rxjs';
|
|
4
|
-
import { IonicModule } from '@ionic/angular';
|
|
5
|
-
import { TabContentComponent, TabGroupComponent } from '../../tabs';
|
|
6
|
-
import { ApprovalFormComponent } from '../form/approval-form.component';
|
|
7
|
-
import { ButtonGroupComponent } from '../../buttons/group/btn-group.component';
|
|
8
|
-
import { ColumnHeaderContainerComponent } from '../../containers/colum-header-container/column-header-container.component';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@angular/router";
|
|
11
|
-
import * as i2 from "@ionic/angular";
|
|
12
|
-
export class ApprovalDetailComponent {
|
|
13
|
-
constructor(router, activatedRoute) {
|
|
14
|
-
this.router = router;
|
|
15
|
-
this.activatedRoute = activatedRoute;
|
|
16
|
-
this.btnConfig = [];
|
|
17
|
-
this.guid = '';
|
|
18
|
-
}
|
|
19
|
-
ngOnInit() {
|
|
20
|
-
this.sub = this.activatedRoute.queryParams.subscribe((params) => {
|
|
21
|
-
if (params) {
|
|
22
|
-
this.guids = params['guids'];
|
|
23
|
-
this.isApprove = params['isApprove'] === 'true';
|
|
24
|
-
this.approvalGroupGuid = params['approvalGroupGuid'];
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
ngAfterViewInit() {
|
|
29
|
-
if (this.guids) {
|
|
30
|
-
this.setChildGuid(this.guids);
|
|
31
|
-
this.changeTab({ fragment: this.activatedRoute.snapshot.fragment, index: 0 });
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
this.setChildGuid([this.activatedRoute.children[0].snapshot.params['guid']]);
|
|
35
|
-
this.changeTab({ fragment: this.activatedRoute.snapshot.fragment, index: 0 });
|
|
36
|
-
this.sub = this.router.events.pipe(filter((e) => e instanceof NavigationEnd)).subscribe({
|
|
37
|
-
next: () => {
|
|
38
|
-
const newGuid = this.activatedRoute.children[0].snapshot.params['guid'];
|
|
39
|
-
if (this.guid !== newGuid) {
|
|
40
|
-
this.guid = newGuid;
|
|
41
|
-
this.setChildGuid([this.guid]);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
ngOnDestroy() {
|
|
48
|
-
this.sub.unsubscribe();
|
|
49
|
-
}
|
|
50
|
-
changeTab({ fragment }) {
|
|
51
|
-
switch (fragment) {
|
|
52
|
-
default:
|
|
53
|
-
this.btnConfig = this.formComponent?.btnConfig ?? [];
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
setChildGuid(guids) {
|
|
57
|
-
this.formComponent?.setGuid(guids, this.approvalGroupGuid, this.isApprove);
|
|
58
|
-
}
|
|
59
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApprovalDetailComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
60
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ApprovalDetailComponent, isStandalone: true, selector: "up-approval-detail", host: { classAttribute: "d-block h-100" }, viewQueries: [{ propertyName: "formComponent", first: true, predicate: ApprovalFormComponent, descendants: true }], ngImport: i0, template: "<up-column-header-container header=\"Approval Detail\" prevUrl=\"/approval\" class=\"bg-white\">\n @if (!formComponent?.isLoading) {\n <up-btn-group id=\"approval-detail-button\" [config]=\"btnConfig\" button />\n }\n @else {\n <ion-skeleton-text class=\"m-0 sk-btn\" button />\n }\n\n <up-tab-group class=\"h-100\" (onChange)=\"changeTab($event)\">\n <up-tab-content header=\"Detail\" fragment=\"detail\">\n <up-approval-form />\n </up-tab-content>\n </up-tab-group>\n</up-column-header-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "component", type: TabGroupComponent, selector: "up-tab-group", outputs: ["onChange", "changed"] }, { kind: "component", type: TabContentComponent, selector: "up-tab-content", inputs: ["header"] }, { kind: "component", type: ButtonGroupComponent, selector: "up-btn-group", inputs: ["config"] }, { kind: "component", type: ColumnHeaderContainerComponent, selector: "up-column-header-container", inputs: ["header", "prevUrl"] }, { kind: "component", type: ApprovalFormComponent, selector: "up-approval-form", inputs: ["isLoading"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
61
|
-
}
|
|
62
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApprovalDetailComponent, decorators: [{
|
|
63
|
-
type: Component,
|
|
64
|
-
args: [{ standalone: true, selector: 'up-approval-detail', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
65
|
-
class: 'd-block h-100'
|
|
66
|
-
}, imports: [
|
|
67
|
-
IonicModule,
|
|
68
|
-
TabGroupComponent,
|
|
69
|
-
TabContentComponent,
|
|
70
|
-
ButtonGroupComponent,
|
|
71
|
-
ColumnHeaderContainerComponent,
|
|
72
|
-
ApprovalFormComponent
|
|
73
|
-
], template: "<up-column-header-container header=\"Approval Detail\" prevUrl=\"/approval\" class=\"bg-white\">\n @if (!formComponent?.isLoading) {\n <up-btn-group id=\"approval-detail-button\" [config]=\"btnConfig\" button />\n }\n @else {\n <ion-skeleton-text class=\"m-0 sk-btn\" button />\n }\n\n <up-tab-group class=\"h-100\" (onChange)=\"changeTab($event)\">\n <up-tab-content header=\"Detail\" fragment=\"detail\">\n <up-approval-form />\n </up-tab-content>\n </up-tab-group>\n</up-column-header-container>\n" }]
|
|
74
|
-
}], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }], propDecorators: { formComponent: [{
|
|
75
|
-
type: ViewChild,
|
|
76
|
-
args: [ApprovalFormComponent]
|
|
77
|
-
}] } });
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hcHByb3ZhbC9kZXRhaWwvYXBwcm92YWwtZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hcHByb3ZhbC9kZXRhaWwvYXBwcm92YWwtZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFrQixhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsTUFBTSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFvQixNQUFNLFlBQVksQ0FBQztBQUV0RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwyRUFBMkUsQ0FBQzs7OztBQW9CM0gsTUFBTSxPQUFPLHVCQUF1QjtJQVVsQyxZQUNxQixNQUFjLEVBQ2QsY0FBOEI7UUFEOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQVQ1QyxjQUFTLEdBQXdCLEVBQUUsQ0FBQztRQUVqQyxTQUFJLEdBQVcsRUFBRSxDQUFDO0lBUXhCLENBQUM7SUFFRSxRQUFRO1FBQ2IsSUFB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Q0osS0FBSyxFQUFFLGVBQWU7cUJBQ3ZCLFdBQ1E7d0JBQ1AsV0FBVzt3QkFDWCxpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQiw4QkFBOEI7d0JBQzlCLHFCQUFxQjtxQkFDdEI7d0dBSXdDLGFBQWE7c0JBQXJELFNBQVM7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaWx0ZXIsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBUYWJDb250ZW50Q29tcG9uZW50LCBUYWJHcm91cENvbXBvbmVudCwgVGFic0NoYW5nZWRFdmVudCB9IGZyb20gJy4uLy4uL3RhYnMnO1xuaW1wb3J0IHsgQnV0dG9uR3JvdXBDb25maWcgfSBmcm9tICcuLi8uLi9idXR0b25zL2dyb3VwL2ludGVyZmFjZXMvYnRuLWdyb3VwLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwcm92YWxGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS9hcHByb3ZhbC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Hcm91cENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2J1dHRvbnMvZ3JvdXAvYnRuLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2x1bW5IZWFkZXJDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb250YWluZXJzL2NvbHVtLWhlYWRlci1jb250YWluZXIvY29sdW1uLWhlYWRlci1jb250YWluZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAndXAtYXBwcm92YWwtZGV0YWlsJyxcbiAgc3R5bGVVcmw6ICcuL2FwcHJvdmFsLWRldGFpbC5jb21wb25lbnQuc2NzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHByb3ZhbC1kZXRhaWwuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZC1ibG9jayBoLTEwMCdcbiAgfSxcbiAgaW1wb3J0czogW1xuICAgIElvbmljTW9kdWxlLFxuICAgIFRhYkdyb3VwQ29tcG9uZW50LFxuICAgIFRhYkNvbnRlbnRDb21wb25lbnQsXG4gICAgQnV0dG9uR3JvdXBDb21wb25lbnQsXG4gICAgQ29sdW1uSGVhZGVyQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIEFwcHJvdmFsRm9ybUNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFwcHJvdmFsRGV0YWlsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBWaWV3Q2hpbGQoQXBwcm92YWxGb3JtQ29tcG9uZW50KSBwdWJsaWMgZm9ybUNvbXBvbmVudD86IEFwcHJvdmFsRm9ybUNvbXBvbmVudDtcbiAgcHVibGljIGJ0bkNvbmZpZzogQnV0dG9uR3JvdXBDb25maWdbXSA9IFtdO1xuICBwcm90ZWN0ZWQgZ3VpZHM/OiBzdHJpbmdbXTtcbiAgcHJvdGVjdGVkIGd1aWQ6IHN0cmluZyA9ICcnO1xuICBwcm90ZWN0ZWQgc3ViITogU3Vic2NyaXB0aW9uOyAgXG4gIHByb3RlY3RlZCBpc0FwcHJvdmU/OiBib29sZWFuO1xuICBwcm90ZWN0ZWQgYXBwcm92YWxHcm91cEd1aWQ/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGVcbiAgKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWIgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XG4gICAgICBpZiAocGFyYW1zKSB7XG4gICAgICAgIHRoaXMuZ3VpZHMgPSBwYXJhbXNbJ2d1aWRzJ107XG4gICAgICAgIHRoaXMuaXNBcHByb3ZlID0gcGFyYW1zWydpc0FwcHJvdmUnXSA9PT0gJ3RydWUnO1xuXG4gICAgICAgIHRoaXMuYXBwcm92YWxHcm91cEd1aWQgPSBwYXJhbXNbJ2FwcHJvdmFsR3JvdXBHdWlkJ107XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWR7XG4gICAgaWYgKHRoaXMuZ3VpZHMpIHtcbiAgICAgIHRoaXMuc2V0Q2hpbGRHdWlkKHRoaXMuZ3VpZHMpO1xuICAgICAgdGhpcy5jaGFuZ2VUYWIoeyBmcmFnbWVudDogdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5mcmFnbWVudCwgaW5kZXg6IDAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0Q2hpbGRHdWlkKFt0aGlzLmFjdGl2YXRlZFJvdXRlLmNoaWxkcmVuWzBdLnNuYXBzaG90LnBhcmFtc1snZ3VpZCddXSk7XG4gICAgICB0aGlzLmNoYW5nZVRhYih7IGZyYWdtZW50OiB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LmZyYWdtZW50LCBpbmRleDogMCB9KTtcblxuICAgICAgdGhpcy5zdWIgPSB0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoKGUpID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5ld0d1aWQ6IHN0cmluZyA9IHRoaXMuYWN0aXZhdGVkUm91dGUuY2hpbGRyZW5bMF0uc25hcHNob3QucGFyYW1zWydndWlkJ107XG5cbiAgICAgICAgICBpZiAodGhpcy5ndWlkICE9PSBuZXdHdWlkKSB7XG4gICAgICAgICAgICB0aGlzLmd1aWQgPSBuZXdHdWlkO1xuICAgICAgICAgICAgdGhpcy5zZXRDaGlsZEd1aWQoWyB0aGlzLmd1aWQgXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZHsgXG4gICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTsgXG4gIH1cblxuICBwdWJsaWMgY2hhbmdlVGFiKHsgZnJhZ21lbnQgfTogVGFic0NoYW5nZWRFdmVudCk6IHZvaWR7XG4gICAgc3dpdGNoIChmcmFnbWVudCkge1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5idG5Db25maWcgPSB0aGlzLmZvcm1Db21wb25lbnQ/LmJ0bkNvbmZpZz8/IFtdO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRDaGlsZEd1aWQoZ3VpZHM6IHN0cmluZ1tdKTogdm9pZHtcbiAgICB0aGlzLmZvcm1Db21wb25lbnQ/LnNldEd1aWQoZ3VpZHMsIHRoaXMuYXBwcm92YWxHcm91cEd1aWQsIHRoaXMuaXNBcHByb3ZlKTtcbiAgfVxufVxuIiwiPHVwLWNvbHVtbi1oZWFkZXItY29udGFpbmVyIGhlYWRlcj1cIkFwcHJvdmFsIERldGFpbFwiIHByZXZVcmw9XCIvYXBwcm92YWxcIiBjbGFzcz1cImJnLXdoaXRlXCI+XG4gICAgQGlmICghZm9ybUNvbXBvbmVudD8uaXNMb2FkaW5nKSB7XG4gICAgICAgIDx1cC1idG4tZ3JvdXAgaWQ9XCJhcHByb3ZhbC1kZXRhaWwtYnV0dG9uXCIgW2NvbmZpZ109XCJidG5Db25maWdcIiBidXR0b24gLz5cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgICA8aW9uLXNrZWxldG9uLXRleHQgY2xhc3M9XCJtLTAgc2stYnRuXCIgYnV0dG9uIC8+XG4gICAgfVxuXG4gICAgPHVwLXRhYi1ncm91cCBjbGFzcz1cImgtMTAwXCIgKG9uQ2hhbmdlKT1cImNoYW5nZVRhYigkZXZlbnQpXCI+XG4gICAgICAgIDx1cC10YWItY29udGVudCBoZWFkZXI9XCJEZXRhaWxcIiBmcmFnbWVudD1cImRldGFpbFwiPlxuICAgICAgICAgICAgPHVwLWFwcHJvdmFsLWZvcm0gLz5cbiAgICAgICAgPC91cC10YWItY29udGVudD5cbiAgICA8L3VwLXRhYi1ncm91cD5cbjwvdXAtY29sdW1uLWhlYWRlci1jb250YWluZXI+XG4iXX0=
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
-
import { DatePipe, JsonPipe } from '@angular/common';
|
|
3
|
-
import { IonicModule } from '@ionic/angular';
|
|
4
|
-
import { ApprovalStatusEnum } from '../../../../graphql/generated';
|
|
5
|
-
import { FormInputComponent } from '../../forms/input/form-input.component';
|
|
6
|
-
import { FormTextareaComponent } from '../../forms/textarea/form-textarea.component';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/router";
|
|
9
|
-
import * as i2 from "../services/approval.service";
|
|
10
|
-
import * as i3 from "../../grids/services/grid.service";
|
|
11
|
-
import * as i4 from "@ionic/angular";
|
|
12
|
-
import * as i5 from "../../../modules/permission/services/permission.service";
|
|
13
|
-
export class ApprovalFormComponent {
|
|
14
|
-
constructor(router, ch, service, gridService, alertCtrl, permService) {
|
|
15
|
-
this.router = router;
|
|
16
|
-
this.ch = ch;
|
|
17
|
-
this.service = service;
|
|
18
|
-
this.gridService = gridService;
|
|
19
|
-
this.alertCtrl = alertCtrl;
|
|
20
|
-
this.permService = permService;
|
|
21
|
-
this.isLoading = true;
|
|
22
|
-
this.btnConfig = [];
|
|
23
|
-
this.data = [];
|
|
24
|
-
}
|
|
25
|
-
ngOnDestroy() {
|
|
26
|
-
this.sub?.unsubscribe();
|
|
27
|
-
}
|
|
28
|
-
setGuid(guids, approvalGroupGuid, isApprove) {
|
|
29
|
-
this.guids = guids;
|
|
30
|
-
if (approvalGroupGuid) {
|
|
31
|
-
this.approvalGroupGuid = approvalGroupGuid;
|
|
32
|
-
}
|
|
33
|
-
this.btnConfig.length = 0;
|
|
34
|
-
this.setLoading(true);
|
|
35
|
-
this.sub = this.service.query({ guids, status: [ApprovalStatusEnum.Approved, ApprovalStatusEnum.Declined, ApprovalStatusEnum.Pending] }, 'data permission reason').subscribe({
|
|
36
|
-
next: ({ data: { approvalMsApprovals: { data } } }) => {
|
|
37
|
-
if (!data || data.length === 0) {
|
|
38
|
-
this.router.navigateByUrl('approval');
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
this.data = data;
|
|
42
|
-
if (data.length === 1) {
|
|
43
|
-
const { status, permission } = data[0];
|
|
44
|
-
if (status === ApprovalStatusEnum.Pending) {
|
|
45
|
-
const perm = permission.split('.');
|
|
46
|
-
if (this.permService.checkPermission(perm[0], perm[1], perm[2])) {
|
|
47
|
-
this.btnConfig.push({ label: 'Approve', icon: 'checkmark', description: 'Approve the approval', disabled: false, onClick: this.request.bind(this) }, { label: 'Decline', icon: 'close', description: 'Decline the approval', color: 'danger', disabled: false, onClick: this.request.bind(this) });
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
let dataCount = 0;
|
|
53
|
-
data.map(({ permission, status }) => {
|
|
54
|
-
if (status === ApprovalStatusEnum.Pending) {
|
|
55
|
-
const perm = permission.split('.');
|
|
56
|
-
if (this.permService.checkPermission(perm[0], perm[1], perm[2])) {
|
|
57
|
-
dataCount++;
|
|
58
|
-
}
|
|
59
|
-
if (dataCount === data.length) {
|
|
60
|
-
if (isApprove) {
|
|
61
|
-
this.btnConfig.push({ label: 'Approve', icon: 'checkmark', description: 'Approve the approval(s)', disabled: false, onClick: this.request.bind(this) });
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
this.btnConfig.push({ label: 'Decline', icon: 'close', description: 'Decline the approval', color: 'danger', disabled: false, onClick: this.request.bind(this) });
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
this.setLoading(false);
|
|
71
|
-
},
|
|
72
|
-
error: ({ message }) => {
|
|
73
|
-
this.showAlert('Error', message);
|
|
74
|
-
this.router.navigateByUrl('approval');
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
request(btn) {
|
|
79
|
-
const isApprove = btn.color !== 'danger';
|
|
80
|
-
this.showAlert('Confirm', `Are you sure want to ${isApprove ? 'approve the approval?' : 'decline the approval? Please input the reason if you want to decline.'}`, [
|
|
81
|
-
{ text: 'Cancel', handler: () => btn.toggleLoading() },
|
|
82
|
-
{
|
|
83
|
-
text: `${isApprove ? 'Approve' : 'Decline'}`,
|
|
84
|
-
handler: ({ reason }) => {
|
|
85
|
-
this.sub?.unsubscribe();
|
|
86
|
-
this.sub = this.service.request({
|
|
87
|
-
reason,
|
|
88
|
-
isApprove,
|
|
89
|
-
guids: this.guids,
|
|
90
|
-
approvalGroupGuid: this.approvalGroupGuid
|
|
91
|
-
}).subscribe({
|
|
92
|
-
next: () => {
|
|
93
|
-
this.showAlert('Success', `Approval ${isApprove ? 'approved' : 'declined'}`);
|
|
94
|
-
this.router.navigateByUrl('approval');
|
|
95
|
-
this.gridService.refreshGridCache('grid-approval-list');
|
|
96
|
-
},
|
|
97
|
-
error: ({ message }) => {
|
|
98
|
-
btn.toggleLoading();
|
|
99
|
-
this.showAlert('Error', message);
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
], [{ name: 'reason', type: 'textarea', placeholder: 'Reason' }]);
|
|
105
|
-
}
|
|
106
|
-
setLoading(b) {
|
|
107
|
-
this.isLoading = b;
|
|
108
|
-
this.ch.markForCheck();
|
|
109
|
-
}
|
|
110
|
-
async showAlert(header, message, buttons = ['OK'], inputs = []) { (await this.alertCtrl.create({ header, message, buttons, inputs })).present(); }
|
|
111
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApprovalFormComponent, deps: [{ token: i1.Router }, { token: i0.ChangeDetectorRef }, { token: i2.ApprovalService }, { token: i3.GridService }, { token: i4.AlertController }, { token: i5.PermissionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
112
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ApprovalFormComponent, isStandalone: true, selector: "up-approval-form", inputs: { isLoading: "isLoading" }, host: { classAttribute: "px-4 pb-4 d-block" }, ngImport: i0, template: "@if (isLoading) {\n <div class=\"d-flex flex-column flex-lg-row gap-4\">\n <div class=\"flex-grow-1\">\n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n </div>\n\n <div class=\"flex-grow-1\">\n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n </div>\n </div>\n \n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n <ion-skeleton-text class=\"m-0 sk-input\" />\n}\n@else {\n @for (d of data; track $index) {\n @if (data.length > 1) {\n <div class=\"d-flex align-items-center gap-2 pb-3 pt-2\">\n <ion-icon name=\"document\" />\n <h5 class=\"m-0\">Approval {{ $index + 1 }}</h5>\n </div>\n }\n \n <div class=\"d-flex flex-column flex-lg-row gap-4\">\n <div class=\"flex-grow-1\">\n <up-input class=\"mb-4\" label=\"Entity\" [disabled]=\"true\" [value]=\"d.entity\" />\n <up-input class=\"mb-4\" label=\"Remark\" [disabled]=\"true\" [value]=\"d.remark\" />\n </div>\n\n <div class=\"flex-grow-1\">\n <up-input class=\"mb-4\" label=\"Created At\" [disabled]=\"true\" [value]=\"d.createdAt | date:'dd MMM yyyy HH:mm'\" />\n <up-input class=\"mb-4\" label=\"Status\" [disabled]=\"true\" [value]=\"d.status\" />\n </div>\n </div>\n\n <up-textarea label=\"JSON\" [disabled]=\"true\" [value]=\"d.data | json\" />\n <up-textarea class=\"mt-4\" label=\"Reason\" [disabled]=\"true\" [value]=\"d.reason\" *ngIf=\"d.status !== 'PENDING'\" />\n }\n}\n", styles: [""], dependencies: [{ kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: JsonPipe, name: "json" }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i4.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i4.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "component", type: FormInputComponent, selector: "up-input", inputs: ["label", "value", "required", "disabled", "min", "max"], outputs: ["onInput"] }, { kind: "component", type: FormTextareaComponent, selector: "up-textarea", inputs: ["value", "required", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
113
|
-
}
|
|
114
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApprovalFormComponent, decorators: [{
|
|
115
|
-
type: Component,
|
|
116
|
-
args: [{ standalone: true, selector: 'up-approval-form', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
117
|
-
class: 'px-4 pb-4 d-block'
|
|
118
|
-
}, imports: [
|
|
119
|
-
DatePipe,
|
|
120
|
-
JsonPipe,
|
|
121
|
-
IonicModule,
|
|
122
|
-
FormInputComponent,
|
|
123
|
-
FormTextareaComponent
|
|
124
|
-
], template: "@if (isLoading) {\n <div class=\"d-flex flex-column flex-lg-row gap-4\">\n <div class=\"flex-grow-1\">\n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n </div>\n\n <div class=\"flex-grow-1\">\n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n </div>\n </div>\n \n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n <ion-skeleton-text class=\"m-0 sk-input\" />\n}\n@else {\n @for (d of data; track $index) {\n @if (data.length > 1) {\n <div class=\"d-flex align-items-center gap-2 pb-3 pt-2\">\n <ion-icon name=\"document\" />\n <h5 class=\"m-0\">Approval {{ $index + 1 }}</h5>\n </div>\n }\n \n <div class=\"d-flex flex-column flex-lg-row gap-4\">\n <div class=\"flex-grow-1\">\n <up-input class=\"mb-4\" label=\"Entity\" [disabled]=\"true\" [value]=\"d.entity\" />\n <up-input class=\"mb-4\" label=\"Remark\" [disabled]=\"true\" [value]=\"d.remark\" />\n </div>\n\n <div class=\"flex-grow-1\">\n <up-input class=\"mb-4\" label=\"Created At\" [disabled]=\"true\" [value]=\"d.createdAt | date:'dd MMM yyyy HH:mm'\" />\n <up-input class=\"mb-4\" label=\"Status\" [disabled]=\"true\" [value]=\"d.status\" />\n </div>\n </div>\n\n <up-textarea label=\"JSON\" [disabled]=\"true\" [value]=\"d.data | json\" />\n <up-textarea class=\"mt-4\" label=\"Reason\" [disabled]=\"true\" [value]=\"d.reason\" *ngIf=\"d.status !== 'PENDING'\" />\n }\n}\n" }]
|
|
125
|
-
}], ctorParameters: () => [{ type: i1.Router }, { type: i0.ChangeDetectorRef }, { type: i2.ApprovalService }, { type: i3.GridService }, { type: i4.AlertController }, { type: i5.PermissionService }], propDecorators: { isLoading: [{
|
|
126
|
-
type: Input
|
|
127
|
-
}] } });
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvYXBwcm92YWwvZm9ybS9hcHByb3ZhbC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hcHByb3ZhbC9mb3JtL2FwcHJvdmFsLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHckQsT0FBTyxFQUFnQyxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRSxPQUFPLEVBQVksa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUs3RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUU1RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7OztBQW1CckYsTUFBTSxPQUFPLHFCQUFxQjtJQVNoQyxZQUNxQixNQUFjLEVBQ2QsRUFBcUIsRUFDckIsT0FBd0IsRUFDeEIsV0FBd0IsRUFDeEIsU0FBMEIsRUFDMUIsV0FBOEI7UUFMOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ3hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtRQWJuQyxjQUFTLEdBQVksSUFBSSxD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bnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVQaXBlLCBKc29uUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBbGVydEJ1dHRvbiwgQWxlcnRDb250cm9sbGVyLCBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IEFwcHJvdmFsLCBBcHByb3ZhbFN0YXR1c0VudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9ncmFwaHFsL2dlbmVyYXRlZCc7XG5pbXBvcnQgeyBCdXR0b25Hcm91cENvbmZpZyB9IGZyb20gJy4uLy4uL2J1dHRvbnMvZ3JvdXAvaW50ZXJmYWNlcy9idG4tZ3JvdXAtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHByb3ZhbFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hcHByb3ZhbC5zZXJ2aWNlJztcbmltcG9ydCB7IEdyaWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZ3JpZHMvc2VydmljZXMvZ3JpZC5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vbW9kdWxlcy9wZXJtaXNzaW9uL3NlcnZpY2VzL3Blcm1pc3Npb24uc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9mb3Jtcy9pbnB1dC9mb3JtLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Mb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9ucy9sb2FkaW5nL2J0bi1sb2FkaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtVGV4dGFyZWFDb21wb25lbnQgfSBmcm9tICcuLi8uLi9mb3Jtcy90ZXh0YXJlYS9mb3JtLXRleHRhcmVhLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3VwLWFwcHJvdmFsLWZvcm0nLFxuICBzdHlsZVVybDogJy4vYXBwcm92YWwtZm9ybS5jb21wb25lbnQuc2NzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHByb3ZhbC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ3B4LTQgcGItNCBkLWJsb2NrJ1xuICB9LFxuICBpbXBvcnRzOiBbXG4gICAgRGF0ZVBpcGUsXG4gICAgSnNvblBpcGUsXG4gICAgSW9uaWNNb2R1bGUsXG4gICAgRm9ybUlucHV0Q29tcG9uZW50LFxuICAgIEZvcm1UZXh0YXJlYUNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFwcHJvdmFsRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgcHVibGljIGlzTG9hZGluZzogYm9vbGVhbiA9IHRydWU7XG4gIHB1YmxpYyByZWFkb25seSBidG5Db25maWc6IEJ1dHRvbkdyb3VwQ29uZmlnW10gPSBbXTtcbiAgcHVibGljIGRhdGE6IEFwcHJvdmFsW10gPSBbXTtcbiAgcHJvdGVjdGVkIGd1aWRzITogc3RyaW5nW107XG4gIHByb3RlY3RlZCBzdWI/OiBTdWJzY3JpcHRpb247XG4gIHByb3RlY3RlZCBhcHByb3ZhbEdyb3VwR3VpZD86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VydmljZTogQXBwcm92YWxTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBncmlkU2VydmljZTogR3JpZFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGFsZXJ0Q3RybDogQWxlcnRDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBwZXJtU2VydmljZTogUGVybWlzc2lvblNlcnZpY2VcbiAgKSB7IH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZHtcbiAgICB0aGlzLnN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRHdWlkKGd1aWRzOiBzdHJpbmdbXSwgYXBwcm92YWxHcm91cEd1aWQ/OiBzdHJpbmcsIGlzQXBwcm92ZT86IGJvb2xlYW4pOiB2b2lke1xuICAgIHRoaXMuZ3VpZHMgPSBndWlkcztcbiAgICBpZiAoYXBwcm92YWxHcm91cEd1aWQpIHtcbiAgICAgIHRoaXMuYXBwcm92YWxHcm91cEd1aWQgPSBhcHByb3ZhbEdyb3VwR3VpZDtcbiAgICB9XG5cbiAgICB0aGlzLmJ0bkNvbmZpZy5sZW5ndGggPSAwO1xuICAgIHRoaXMuc2V0TG9hZGluZyh0cnVlKTtcblxuICAgIHRoaXMuc3ViID0gdGhpcy5zZXJ2aWNlLnF1ZXJ5KHsgZ3VpZHMsIHN0YXR1czogWyBBcHByb3ZhbFN0YXR1c0VudW0uQXBwcm92ZWQsIEFwcHJvdmFsU3RhdHVzRW51bS5EZWNsaW5lZCwgQXBwcm92YWxTdGF0dXNFbnVtLlBlbmRpbmcgXSB9LCAnZGF0YSBwZXJtaXNzaW9uIHJlYXNvbicpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoeyBkYXRhOiB7IGFwcHJvdmFsTXNBcHByb3ZhbHM6IHsgZGF0YSB9fX0pID0+IHtcbiAgICAgICAgaWYgKCFkYXRhIHx8IGRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnYXBwcm92YWwnKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRhdGEgPSBkYXRhIGFzIGFueTtcbiAgICAgICAgaWYgKGRhdGEubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgY29uc3QgeyBzdGF0dXMsIHBlcm1pc3Npb24gfSA9IGRhdGFbMF0gYXMgYW55O1xuXG4gICAgICAgICAgaWYgKHN0YXR1cyA9PT0gQXBwcm92YWxTdGF0dXNFbnVtLlBlbmRpbmcpIHtcbiAgICAgICAgICAgIGNvbnN0IHBlcm06IHN0cmluZ1tdID0gcGVybWlzc2lvbiEuc3BsaXQoJy4nKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucGVybVNlcnZpY2UuY2hlY2tQZXJtaXNzaW9uKHBlcm1bMF0sIHBlcm1bMV0sIHBlcm1bMl0pKSB7XG4gICAgICAgICAgICAgIHRoaXMuYnRuQ29uZmlnLnB1c2goXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0FwcHJvdmUnLCBpY29uOiAnY2hlY2ttYXJrJywgZGVzY3JpcHRpb246ICdBcHByb3ZlIHRoZSBhcHByb3ZhbCcgLCBkaXNhYmxlZDogZmFsc2UsIG9uQ2xpY2s6IHRoaXMucmVxdWVzdC5iaW5kKHRoaXMpIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0RlY2xpbmUnLCBpY29uOiAnY2xvc2UnLCBkZXNjcmlwdGlvbjogJ0RlY2xpbmUgdGhlIGFwcHJvdmFsJywgY29sb3I6ICdkYW5nZXInLCBkaXNhYmxlZDogZmFsc2UsIG9uQ2xpY2s6IHRoaXMucmVxdWVzdC5iaW5kKHRoaXMpIH1cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGV0IGRhdGFDb3VudDogbnVtYmVyID0gMDtcblxuICAgICAgICAgIGRhdGEubWFwKCh7IHBlcm1pc3Npb24sIHN0YXR1cyB9OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChzdGF0dXMgPT09IEFwcHJvdmFsU3RhdHVzRW51bS5QZW5kaW5nKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHBlcm06IHN0cmluZ1tdID0gcGVybWlzc2lvbi5zcGxpdCgnLicpO1xuXG4gICAgICAgICAgICAgIGlmICh0aGlzLnBlcm1TZXJ2aWNlLmNoZWNrUGVybWlzc2lvbihwZXJtWzBdLCBwZXJtWzFdLCBwZXJtWzJdKSkge1xuICAgICAgICAgICAgICAgIGRhdGFDb3VudCsrO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKGRhdGFDb3VudCA9PT0gZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNBcHByb3ZlKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmJ0bkNvbmZpZy5wdXNoKHsgbGFiZWw6ICdBcHByb3ZlJywgaWNvbjogJ2NoZWNrbWFyaycsIGRlc2NyaXB0aW9uOiAnQXBwcm92ZSB0aGUgYXBwcm92YWwocyknICwgZGlzYWJsZWQ6IGZhbHNlLCBvbkNsaWNrOiB0aGlzLnJlcXVlc3QuYmluZCh0aGlzKSB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgdGhpcy5idG5Db25maWcucHVzaCh7IGxhYmVsOiAnRGVjbGluZScsIGljb246ICdjbG9zZScsIGRlc2NyaXB0aW9uOiAnRGVjbGluZSB0aGUgYXBwcm92YWwnLCBjb2xvcjogJ2RhbmdlcicsIGRpc2FibGVkOiBmYWxzZSwgb25DbGljazogdGhpcy5yZXF1ZXN0LmJpbmQodGhpcykgfSlcbiAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKHsgbWVzc2FnZSB9KSA9PiB7XG4gICAgICAgIHRoaXMuc2hvd0FsZXJ0KCdFcnJvcicsIG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCdhcHByb3ZhbCcpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlcXVlc3QoYnRuOiBCdXR0b25Mb2FkaW5nQ29tcG9uZW50KTogdm9pZHtcbiAgICBjb25zdCBpc0FwcHJvdmU6IGJvb2xlYW4gPSBidG4uY29sb3IgIT09ICdkYW5nZXInO1xuXG4gICAgdGhpcy5zaG93QWxlcnQoJ0NvbmZpcm0nLCBgQXJlIHlvdSBzdXJlIHdhbnQgdG8gJHsgaXNBcHByb3ZlPyAnYXBwcm92ZSB0aGUgYXBwcm92YWw/JyA6ICdkZWNsaW5lIHRoZSBhcHByb3ZhbD8gUGxlYXNlIGlucHV0IHRoZSByZWFzb24gaWYgeW91IHdhbnQgdG8gZGVjbGluZS4nIH1gLCBbXG4gICAgICB7IHRleHQ6ICdDYW5jZWwnLCBoYW5kbGVyOiAoKSA9PiBidG4udG9nZ2xlTG9hZGluZygpIH0sXG4gICAgICB7XG4gICAgICAgIHRleHQ6IGAkeyBpc0FwcHJvdmU/ICdBcHByb3ZlJyA6ICdEZWNsaW5lJyB9YCxcbiAgICAgICAgaGFuZGxlcjogKHsgcmVhc29uIH0pID0+IHtcbiAgICAgICAgICB0aGlzLnN1Yj8udW5zdWJzY3JpYmUoKTtcblxuICAgICAgICAgIHRoaXMuc3ViID0gdGhpcy5zZXJ2aWNlLnJlcXVlc3Qoe1xuICAgICAgICAgICAgcmVhc29uLFxuICAgICAgICAgICAgaXNBcHByb3ZlLFxuICAgICAgICAgICAgZ3VpZHM6IHRoaXMuZ3VpZHMsXG4gICAgICAgICAgICBhcHByb3ZhbEdyb3VwR3VpZDogdGhpcy5hcHByb3ZhbEdyb3VwR3VpZFxuICAgICAgICAgIH0pLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc2hvd0FsZXJ0KCdTdWNjZXNzJywgYEFwcHJvdmFsICR7IGlzQXBwcm92ZT8gJ2FwcHJvdmVkJyA6ICdkZWNsaW5lZCcgfWApO1xuICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCdhcHByb3ZhbCcpO1xuXG4gICAgICAgICAgICAgIHRoaXMuZ3JpZFNlcnZpY2UucmVmcmVzaEdyaWRDYWNoZSgnZ3JpZC1hcHByb3ZhbC1saXN0Jyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6ICh7IG1lc3NhZ2UgfTogYW55KSA9PiB7XG4gICAgICAgICAgICAgIGJ0bi50b2dnbGVMb2FkaW5nKCk7XG4gICAgICAgICAgICAgIHRoaXMuc2hvd0FsZXJ0KCdFcnJvcicsIG1lc3NhZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgXSwgW3sgbmFtZTogJ3JlYXNvbicsIHR5cGU6ICd0ZXh0YXJlYScsIHBsYWNlaG9sZGVyOiAnUmVhc29uJyB9XSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0TG9hZGluZyhiOiBib29sZWFuKTogdm9pZHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IGI7XG4gICAgdGhpcy5jaC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBzaG93QWxlcnQoaGVhZGVyOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZywgYnV0dG9uczogKEFsZXJ0QnV0dG9uIHwgc3RyaW5nKVtdID0gWydPSyddLCBpbnB1dHM6IGFueVtdID0gW10pOiBQcm9taXNlPHZvaWQ+eyAoYXdhaXQgdGhpcy5hbGVydEN0cmwuY3JlYXRlKHsgaGVhZGVyLCBtZXNzYWdlLCBidXR0b25zLCBpbnB1dHMgfSkpLnByZXNlbnQoKTsgfVxufVxuIiwiQGlmIChpc0xvYWRpbmcpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtbGctcm93IGdhcC00XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxuICAgICAgICAgICAgPGlvbi1za2VsZXRvbi10ZXh0IGNsYXNzPVwibS0wIG1iLTQgc2staW5wdXRcIiAvPlxuICAgICAgICAgICAgPGlvbi1za2VsZXRvbi10ZXh0IGNsYXNzPVwibS0wIG1iLTQgc2staW5wdXRcIiAvPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTFcIj5cbiAgICAgICAgICAgIDxpb24tc2tlbGV0b24tdGV4dCBjbGFzcz1cIm0tMCBtYi00IHNrLWlucHV0XCIgLz5cbiAgICAgICAgICAgIDxpb24tc2tlbGV0b24tdGV4dCBjbGFzcz1cIm0tMCBtYi00IHNrLWlucHV0XCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgXG4gICAgPGlvbi1za2VsZXRvbi10ZXh0IGNsYXNzPVwibS0wIG1iLTQgc2staW5wdXRcIiAvPlxuICAgIDxpb24tc2tlbGV0b24tdGV4dCBjbGFzcz1cIm0tMCBzay1pbnB1dFwiIC8+XG59XG5AZWxzZSB7XG4gICAgQGZvciAoZCBvZiBkYXRhOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgQGlmIChkYXRhLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHBiLTMgcHQtMlwiPlxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiZG9jdW1lbnRcIiAvPlxuICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cIm0tMFwiPkFwcHJvdmFsIHt7ICRpbmRleCArIDEgfX08L2g1PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICBcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LWxnLXJvdyBnYXAtNFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+XG4gICAgICAgICAgICAgICAgPHVwLWlucHV0IGNsYXNzPVwibWItNFwiIGxhYmVsPVwiRW50aXR5XCIgW2Rpc2FibGVkXT1cInRydWVcIiBbdmFsdWVdPVwiZC5lbnRpdHlcIiAvPlxuICAgICAgICAgICAgICAgIDx1cC1pbnB1dCBjbGFzcz1cIm1iLTRcIiBsYWJlbD1cIlJlbWFya1wiIFtkaXNhYmxlZF09XCJ0cnVlXCIgW3ZhbHVlXT1cImQucmVtYXJrXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTFcIj5cbiAgICAgICAgICAgICAgICA8dXAtaW5wdXQgY2xhc3M9XCJtYi00XCIgbGFiZWw9XCJDcmVhdGVkIEF0XCIgW2Rpc2FibGVkXT1cInRydWVcIiBbdmFsdWVdPVwiZC5jcmVhdGVkQXQgfCBkYXRlOidkZCBNTU0geXl5eSBISDptbSdcIiAvPlxuICAgICAgICAgICAgICAgIDx1cC1pbnB1dCBjbGFzcz1cIm1iLTRcIiBsYWJlbD1cIlN0YXR1c1wiIFtkaXNhYmxlZF09XCJ0cnVlXCIgW3ZhbHVlXT1cImQuc3RhdHVzXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8dXAtdGV4dGFyZWEgbGFiZWw9XCJKU09OXCIgW2Rpc2FibGVkXT1cInRydWVcIiBbdmFsdWVdPVwiZC5kYXRhIHwganNvblwiIC8+XG4gICAgICAgIDx1cC10ZXh0YXJlYSBjbGFzcz1cIm10LTRcIiBsYWJlbD1cIlJlYXNvblwiIFtkaXNhYmxlZF09XCJ0cnVlXCIgW3ZhbHVlXT1cImQucmVhc29uXCIgKm5nSWY9XCJkLnN0YXR1cyAhPT0gJ1BFTkRJTkcnXCIgLz5cbiAgICB9XG59XG4iXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export { ApprovalService } from './services/approval.service';
|
|
2
|
-
export { ApprovalListComponent } from './list/approval-list.component';
|
|
3
|
-
export { provideApprovalEntities, APPROVAL_ENTITIES } from './list/provide-approval-entities.util';
|
|
4
|
-
export { ApprovalDetailComponent } from './detail/approval-detail.component';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvYXBwcm92YWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRW5HLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQXBwcm92YWxTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9hcHByb3ZhbC5zZXJ2aWNlJztcbmV4cG9ydCB7IEFwcHJvdmFsTGlzdENvbXBvbmVudCB9IGZyb20gJy4vbGlzdC9hcHByb3ZhbC1saXN0LmNvbXBvbmVudCc7XG5leHBvcnQgeyBwcm92aWRlQXBwcm92YWxFbnRpdGllcywgQVBQUk9WQUxfRU5USVRJRVMgfSBmcm9tICcuL2xpc3QvcHJvdmlkZS1hcHByb3ZhbC1lbnRpdGllcy51dGlsJztcblxuZXhwb3J0IHsgQXBwcm92YWxEZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2RldGFpbC9hcHByb3ZhbC1kZXRhaWwuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';
|
|
2
|
-
import { formatDate } from '@angular/common';
|
|
3
|
-
import { map } from 'rxjs';
|
|
4
|
-
import { ApprovalStatusEnum } from '../../../../graphql/generated';
|
|
5
|
-
import { APPROVAL_ENTITIES } from './provide-approval-entities.util';
|
|
6
|
-
import { FilterComponent } from '../../filter/filter.component';
|
|
7
|
-
import { ButtonGroupComponent } from '../../buttons/group/btn-group.component';
|
|
8
|
-
import { GridPaginationComponent } from '../../grids/grid-pagination/grid-pagination.component';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@angular/router";
|
|
11
|
-
import * as i2 from "../services/approval.service";
|
|
12
|
-
import * as i3 from "@ionic/angular";
|
|
13
|
-
export class ApprovalListComponent {
|
|
14
|
-
constructor(entities, router, route, service, alertCtrl) {
|
|
15
|
-
this.entities = entities;
|
|
16
|
-
this.router = router;
|
|
17
|
-
this.route = route;
|
|
18
|
-
this.service = service;
|
|
19
|
-
this.alertCtrl = alertCtrl;
|
|
20
|
-
this.gridConfig = {
|
|
21
|
-
noRowText: 'Approval not found',
|
|
22
|
-
colDefs: [
|
|
23
|
-
{ headerName: 'Entity', field: 'entity', checkboxSelection: ({ data: d }) => this.isCheckboxSelectable(d?.approvalGroup) },
|
|
24
|
-
{ headerName: 'Remark', field: 'remark' },
|
|
25
|
-
{ headerName: 'Source Platform', field: 'sourcePlatform' },
|
|
26
|
-
{ headerName: 'Status', field: 'status', maxWidth: 100, cellRenderer: ({ value }) => value ? `<div class="badge m-auto bg-${value === ApprovalStatusEnum.Pending ? 'warning' : value === ApprovalStatusEnum.Approved ? 'success' : 'danger'}">${value}</div>` : '' },
|
|
27
|
-
{ headerName: 'Type', field: 'type', maxWidth: 100 },
|
|
28
|
-
{ headerName: 'Created Date', field: 'createdAt', sort: 'desc', valueFormatter: ({ value }) => value ? formatDate(value, 'dd MMM yyyy HH:mm', 'en-US') : '' }
|
|
29
|
-
],
|
|
30
|
-
getData: (page, pageSize, sortBy, dir) => {
|
|
31
|
-
const policy = this.input.page === page ? 'no-cache' : undefined;
|
|
32
|
-
this.input.page = page;
|
|
33
|
-
this.input.sortBy = sortBy;
|
|
34
|
-
this.input.pageSize = pageSize;
|
|
35
|
-
this.input.sortDirection = dir;
|
|
36
|
-
return this.service.query(this.input, '', policy).pipe(map(({ data: { approvalMsApprovals: { data, totalRecord: t } } }) => ({ data, totalRecord: t })));
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
this.filterConfig = {
|
|
40
|
-
mode: 'advanced',
|
|
41
|
-
fields: [
|
|
42
|
-
{ key: 'status', label: 'Status', type: 'select', initialValue: ['PENDING'], options: [
|
|
43
|
-
{ label: 'Approved', value: ['APPROVED'] },
|
|
44
|
-
{ label: 'Declined', value: ['DECLINED'] },
|
|
45
|
-
{ label: 'Pending', value: ['PENDING'] }
|
|
46
|
-
] },
|
|
47
|
-
{ key: 'type', label: 'Type', type: 'select', options: [
|
|
48
|
-
{ label: 'Creation', value: ['CREATION'] },
|
|
49
|
-
{ label: 'Deletion', value: ['DELETION'] },
|
|
50
|
-
{ label: 'Linkage', value: ['LINKAGE'] },
|
|
51
|
-
{ label: 'Unlink', value: ['UNLINK'] },
|
|
52
|
-
{ label: 'Update', value: ['UPDATE'] }
|
|
53
|
-
] }
|
|
54
|
-
]
|
|
55
|
-
};
|
|
56
|
-
this.btnConfig = [
|
|
57
|
-
{ label: 'Approve', icon: 'checkmark', description: 'Approve the approvals', disabled: true, onClick: this.multipleApproval.bind(this) },
|
|
58
|
-
{ label: 'Decline', icon: 'close', description: 'Decline the approvals', color: 'danger', disabled: true, onClick: this.multipleApproval.bind(this) }
|
|
59
|
-
];
|
|
60
|
-
this.input = { page: 0, pageSize: 50, entity: this.entities };
|
|
61
|
-
}
|
|
62
|
-
setGridApi({ api }) {
|
|
63
|
-
this.gridApi = api;
|
|
64
|
-
}
|
|
65
|
-
openDetail({ guid }) {
|
|
66
|
-
this.router.navigate([`/approval/${guid}`], { preserveFragment: true });
|
|
67
|
-
}
|
|
68
|
-
selectApprovals() {
|
|
69
|
-
const dataGrid = this.gridApi.getSelectedRows();
|
|
70
|
-
this.btnConfig[0].disabled = this.btnConfig[1].disabled = dataGrid.length < 1;
|
|
71
|
-
this.selectedApprovalGroupGuid = dataGrid.length === 0 ? undefined : dataGrid[0].approvalGroup.guid;
|
|
72
|
-
this.gridApi.refreshCells({ force: true });
|
|
73
|
-
}
|
|
74
|
-
search({ data }) {
|
|
75
|
-
this.input.type = data?.type;
|
|
76
|
-
this.input.status = data?.status;
|
|
77
|
-
this.gridApi.getSelectedNodes().forEach((e) => e.setSelected(false));
|
|
78
|
-
this.gridApi.refreshInfiniteCache();
|
|
79
|
-
}
|
|
80
|
-
isCheckboxSelectable(approvalGroup) {
|
|
81
|
-
if (!approvalGroup)
|
|
82
|
-
return false;
|
|
83
|
-
if (approvalGroup.guid === this.selectedApprovalGroupGuid)
|
|
84
|
-
return true;
|
|
85
|
-
return true;
|
|
86
|
-
}
|
|
87
|
-
multipleApproval(btn) {
|
|
88
|
-
btn.toggleLoading();
|
|
89
|
-
this.router.navigate([`/approval/approval-group`], {
|
|
90
|
-
preserveFragment: true,
|
|
91
|
-
queryParams: {
|
|
92
|
-
isApprove: btn.color !== 'danger',
|
|
93
|
-
approvalGroupGuid: this.selectedApprovalGroupGuid,
|
|
94
|
-
guids: this.gridApi.getSelectedRows().map(({ guid }) => guid)
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApprovalListComponent, deps: [{ token: APPROVAL_ENTITIES }, { token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.ApprovalService }, { token: i3.AlertController }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
99
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ApprovalListComponent, isStandalone: true, selector: "up-approval-list", host: { classAttribute: "d-flex flex-column h-100 w-100" }, ngImport: i0, template: "<div class=\"d-flex align-items-center justify-content-between gap-4 p-4 flex-shrink-0 flex-wrap\">\n <div class=\"flex-grow-1 d-flex align-items-center gap-3\">\n <h3 class=\"m-0\">Approval</h3>\n\n <up-btn-group id=\"approval-list\" [config]=\"btnConfig\" />\n </div>\n\n <div class=\"flex-shrink-0 flex-grow-1\">\n <up-filter placeholder=\"Type to search\" id=\"filter-approval-list\" [config]=\"filterConfig\" (onSearch)=\"search($event)\" />\n </div>\n</div>\n\n<div class=\"flex-grow-1 px-1 pb-1\">\n <up-pagination-grid [config]=\"gridConfig\" id=\"grid-approval-list\" rowSelection=\"multiple\" (onGridReady)=\"setGridApi($event)\" (onRowClick)=\"openDetail($event)\" (onSelectionChanged)=\"selectApprovals()\" />\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: FilterComponent, selector: "up-filter", inputs: ["id", "config"], outputs: ["onSearch"] }, { kind: "component", type: ButtonGroupComponent, selector: "up-btn-group", inputs: ["config"] }, { kind: "component", type: GridPaginationComponent, selector: "up-pagination-grid", inputs: ["config", "rowData", "id", "rowModelType", "rowSelection", "getRowClass"], outputs: ["onRowClick", "onGridReady", "onSelectionChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
100
|
-
}
|
|
101
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApprovalListComponent, decorators: [{
|
|
102
|
-
type: Component,
|
|
103
|
-
args: [{ standalone: true, selector: 'up-approval-list', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
104
|
-
class: 'd-flex flex-column h-100 w-100'
|
|
105
|
-
}, imports: [
|
|
106
|
-
FilterComponent,
|
|
107
|
-
ButtonGroupComponent,
|
|
108
|
-
GridPaginationComponent
|
|
109
|
-
], template: "<div class=\"d-flex align-items-center justify-content-between gap-4 p-4 flex-shrink-0 flex-wrap\">\n <div class=\"flex-grow-1 d-flex align-items-center gap-3\">\n <h3 class=\"m-0\">Approval</h3>\n\n <up-btn-group id=\"approval-list\" [config]=\"btnConfig\" />\n </div>\n\n <div class=\"flex-shrink-0 flex-grow-1\">\n <up-filter placeholder=\"Type to search\" id=\"filter-approval-list\" [config]=\"filterConfig\" (onSearch)=\"search($event)\" />\n </div>\n</div>\n\n<div class=\"flex-grow-1 px-1 pb-1\">\n <up-pagination-grid [config]=\"gridConfig\" id=\"grid-approval-list\" rowSelection=\"multiple\" (onGridReady)=\"setGridApi($event)\" (onRowClick)=\"openDetail($event)\" (onSelectionChanged)=\"selectApprovals()\" />\n</div>\n" }]
|
|
110
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
111
|
-
type: Inject,
|
|
112
|
-
args: [APPROVAL_ENTITIES]
|
|
113
|
-
}] }, { type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.ApprovalService }, { type: i3.AlertController }] });
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvYXBwcm92YWwvbGlzdC9hcHByb3ZhbC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hcHByb3ZhbC9saXN0L2FwcHJvdmFsLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFJdkMsT0FBTyxFQUFtQyxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBS3BHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUUvRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7Ozs7QUFpQmhHLE1BQU0sT0FBTyxxQkFBcUI7SUFrRGhDLFlBQzZDLFFBQWtCLEVBQzFDLE1BQWMsRUFDZCxLQUFxQixFQUNyQixPQUF3QixFQUN4QixTQUEwQjtRQUpGLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDMUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ3hCLGNBQVMsR0FBVCxT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QUNmLG9CQUFvQjt3QkFDcEIsdUJBQXVCO3FCQUN4Qjs7MEJBcURFLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBbGVydENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBGZXRjaFBvbGljeSB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgR3JpZEFwaSwgR3JpZFJlYWR5RXZlbnQgfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY29yZSc7XG5pbXBvcnQgeyBBcHByb3ZhbENyaXRlcmlhLCBBcHByb3ZhbEdyb3VwLCBBcHByb3ZhbFN0YXR1c0VudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9ncmFwaHFsL2dlbmVyYXRlZCc7XG5pbXBvcnQgeyBHcmlkQ29uZmlnIH0gZnJvbSAnLi4vLi4vZ3JpZHMvaW50ZXJmYWNlcy9ncmlkLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmlsdGVyQ29uZmlnIH0gZnJvbSAnLi4vLi4vZmlsdGVyL2ludGVyZmFjZXMvZmlsdGVyLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmlsdGVyU2VhcmNoRXZlbnQgfSBmcm9tICcuLi8uLi9maWx0ZXIvaW50ZXJmYWNlcy9maWx0ZXItc2VhcmNoLWV2ZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBCdXR0b25Hcm91cENvbmZpZyB9IGZyb20gJy4uLy4uL2J1dHRvbnMvZ3JvdXAvaW50ZXJmYWNlcy9idG4tZ3JvdXAtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBUFBST1ZBTF9FTlRJVElFUyB9IGZyb20gJy4vcHJvdmlkZS1hcHByb3ZhbC1lbnRpdGllcy51dGlsJztcbmltcG9ydCB7IEFwcHJvdmFsU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FwcHJvdmFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZmlsdGVyL2ZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uR3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi9idXR0b25zL2dyb3VwL2J0bi1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uTG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2J1dHRvbnMvbG9hZGluZy9idG4tbG9hZGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3JpZFBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9ncmlkcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3VwLWFwcHJvdmFsLWxpc3QnLFxuICBzdHlsZVVybDogJy4vYXBwcm92YWwtbGlzdC5jb21wb25lbnQuc2NzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHByb3ZhbC1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2QtZmxleCBmbGV4LWNvbHVtbiBoLTEwMCB3LTEwMCdcbiAgfSxcbiAgaW1wb3J0czogW1xuICAgIEZpbHRlckNvbXBvbmVudCxcbiAgICBCdXR0b25Hcm91cENvbXBvbmVudCxcbiAgICBHcmlkUGFnaW5hdGlvbkNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFwcHJvdmFsTGlzdENvbXBvbmVudCB7XG5cbiAgcHVibGljIHJlYWRvbmx5IGdyaWRDb25maWc6IEdyaWRDb25maWcgPSB7XG4gICAgbm9Sb3dUZXh0OiAnQXBwcm92YWwgbm90IGZvdW5kJyxcbiAgICBjb2xEZWZzOiBbXG4gICAgICB7IGhlYWRlck5hbWU6ICdFbnRpdHknLCBmaWVsZDogJ2VudGl0eScsIGNoZWNrYm94U2VsZWN0aW9uOiAoeyBkYXRhOiBkIH0pID0+IHRoaXMuaXNDaGVja2JveFNlbGVjdGFibGUoZD8uYXBwcm92YWxHcm91cCkgfSxcbiAgICAgIHsgaGVhZGVyTmFtZTogJ1JlbWFyaycsIGZpZWxkOiAncmVtYXJrJyB9LFxuICAgICAgeyBoZWFkZXJOYW1lOiAnU291cmNlIFBsYXRmb3JtJywgZmllbGQ6ICdzb3VyY2VQbGF0Zm9ybScgfSxcbiAgICAgIHsgaGVhZGVyTmFtZTogJ1N0YXR1cycsIGZpZWxkOiAnc3RhdHVzJywgbWF4V2lkdGg6IDEwMCwgY2VsbFJlbmRlcmVyOiAoeyB2YWx1ZSB9OiBhbnkpID0+IHZhbHVlPyBgPGRpdiBjbGFzcz1cImJhZGdlIG0tYXV0byBiZy0keyB2YWx1ZSA9PT0gQXBwcm92YWxTdGF0dXNFbnVtLlBlbmRpbmc/ICd3YXJuaW5nJyA6IHZhbHVlID09PSBBcHByb3ZhbFN0YXR1c0VudW0uQXBwcm92ZWQ/ICdzdWNjZXNzJyA6ICdkYW5nZXInfVwiPiR7IHZhbHVlIH08L2Rpdj5gIDogJycgfSxcbiAgICAgIHsgaGVhZGVyTmFtZTogJ1R5cGUnLCBmaWVsZDogJ3R5cGUnLCBtYXhXaWR0aDogMTAwIH0sXG4gICAgICB7IGhlYWRlck5hbWU6ICdDcmVhdGVkIERhdGUnLCBmaWVsZDogJ2NyZWF0ZWRBdCcsIHNvcnQ6ICdkZXNjJywgdmFsdWVGb3JtYXR0ZXI6ICh7IHZhbHVlIH0pID0+IHZhbHVlPyBmb3JtYXREYXRlKHZhbHVlLCAnZGQgTU1NIHl5eXkgSEg6bW0nLCAnZW4tVVMnKSA6ICcnIH1cbiAgICBdLFxuICAgIGdldERhdGE6IChwYWdlOiBudW1iZXIsIHBhZ2VTaXplOiBudW1iZXIsIHNvcnRCeTogc3RyaW5nLCBkaXI6ICdhc2MnIHwgJ2Rlc2MnKTogT2JzZXJ2YWJsZTx7IGRhdGE6IGFueSwgdG90YWxSZWNvcmQ6IG51bWJlciB9PiA9PiB7XG4gICAgICBjb25zdCBwb2xpY3k6IEZldGNoUG9saWN5IHwgdW5kZWZpbmVkID0gdGhpcy5pbnB1dC5wYWdlID09PSBwYWdlPyAnbm8tY2FjaGUnIDogdW5kZWZpbmVkO1xuXG4gICAgICB0aGlzLmlucHV0LnBhZ2UgPSBwYWdlO1xuICAgICAgdGhpcy5pbnB1dC5zb3J0QnkgPSBzb3J0Qnk7XG4gICAgICB0aGlzLmlucHV0LnBhZ2VTaXplID0gcGFnZVNpemU7XG4gICAgICB0aGlzLmlucHV0LnNvcnREaXJlY3Rpb24gPSBkaXI7XG5cbiAgICAgIHJldHVybiB0aGlzLnNlcnZpY2UucXVlcnkodGhpcy5pbnB1dCwgJycsIHBvbGljeSkucGlwZShcbiAgICAgICAgbWFwKCh7IGRhdGE6IHsgYXBwcm92YWxNc0FwcHJvdmFsczogeyBkYXRhLCB0b3RhbFJlY29yZDogdCB9IH19KSA9PiAoeyBkYXRhLCB0b3RhbFJlY29yZDogdCEgfSkpXG4gICAgICApO1xuICAgIH1cbiAgfTtcbiAgcHVibGljIHJlYWRvbmx5IGZpbHRlckNvbmZpZzogRmlsdGVyQ29uZmlnID0ge1xuICAgIG1vZGU6ICdhZHZhbmNlZCcsXG4gICAgZmllbGRzOiBbXG4gICAgICB7IGtleTogJ3N0YXR1cycsIGxhYmVsOiAnU3RhdHVzJywgdHlwZTogJ3NlbGVjdCcsIGluaXRpYWxWYWx1ZTogWyAnUEVORElORycgXSwgb3B0aW9uczogW1xuICAgICAgICB7IGxhYmVsOiAnQXBwcm92ZWQnLCB2YWx1ZTogWyAnQVBQUk9WRUQnIF0gYXMgYW55IH0sXG4gICAgICAgIHsgbGFiZWw6ICdEZWNsaW5lZCcsIHZhbHVlOiBbICdERUNMSU5FRCcgXSBhcyBhbnkgfSxcbiAgICAgICAgeyBsYWJlbDogJ1BlbmRpbmcnLCB2YWx1ZTogWyAnUEVORElORycgXSBhcyBhbnkgfVxuICAgICAgXX0sXG4gICAgICB7IGtleTogJ3R5cGUnLCBsYWJlbDogJ1R5cGUnLCB0eXBlOiAnc2VsZWN0Jywgb3B0aW9uczogW1xuICAgICAgICB7IGxhYmVsOiAnQ3JlYXRpb24nLCB2YWx1ZTogWyAnQ1JFQVRJT04nIF0gYXMgYW55IH0sXG4gICAgICAgIHsgbGFiZWw6ICdEZWxldGlvbicsIHZhbHVlOiBbICdERUxFVElPTicgXSBhcyBhbnkgfSxcbiAgICAgICAgeyBsYWJlbDogJ0xpbmthZ2UnLCB2YWx1ZTogWyAnTElOS0FHRScgXSBhcyBhbnkgfSxcbiAgICAgICAgeyBsYWJlbDogJ1VubGluaycsIHZhbHVlOiBbICdVTkxJTksnIF0gYXMgYW55IH0sXG4gICAgICAgIHsgbGFiZWw6ICdVcGRhdGUnLCB2YWx1ZTogWyAnVVBEQVRFJyBdIGFzIGFueSB9XG4gICAgICBdfVxuICAgIF1cbiAgfTtcbiAgcHVibGljIGJ0bkNvbmZpZzogQnV0dG9uR3JvdXBDb25maWdbXSA9IFtcbiAgICB7IGxhYmVsOiAnQXBwcm92ZScsIGljb246ICdjaGVja21hcmsnLCBkZXNjcmlwdGlvbjogJ0FwcHJvdmUgdGhlIGFwcHJvdmFscycgLCBkaXNhYmxlZDogdHJ1ZSwgb25DbGljazogdGhpcy5tdWx0aXBsZUFwcHJvdmFsLmJpbmQodGhpcykgfSxcbiAgICB7IGxhYmVsOiAnRGVjbGluZScsIGljb246ICdjbG9zZScsIGRlc2NyaXB0aW9uOiAnRGVjbGluZSB0aGUgYXBwcm92YWxzJywgY29sb3I6ICdkYW5nZXInLCBkaXNhYmxlZDogdHJ1ZSwgb25DbGljazogdGhpcy5tdWx0aXBsZUFwcHJvdmFsLmJpbmQodGhpcykgfVxuICBdO1xuICBwcm90ZWN0ZWQgZ3JpZEFwaSE6IEdyaWRBcGk7XG4gIHByb3RlY3RlZCBzZWxlY3RlZEFwcHJvdmFsR3JvdXBHdWlkPzogc3RyaW5nO1xuICBwcm90ZWN0ZWQgaW5wdXQ6IEFwcHJvdmFsQ3JpdGVyaWEgPSB7IHBhZ2U6IDAsIHBhZ2VTaXplOiA1MCwgZW50aXR5OiB0aGlzLmVudGl0aWVzIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChBUFBST1ZBTF9FTlRJVElFUykgcHVibGljIHJlYWRvbmx5IGVudGl0aWVzOiBzdHJpbmdbXSxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VydmljZTogQXBwcm92YWxTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBhbGVydEN0cmw6IEFsZXJ0Q29udHJvbGxlclxuICApIHsgfVxuXG4gIHB1YmxpYyBzZXRHcmlkQXBpKHsgYXBpIH06IEdyaWRSZWFkeUV2ZW50KTogdm9pZHsgXG4gICAgdGhpcy5ncmlkQXBpID0gYXBpOyBcbiAgfVxuXG4gIHB1YmxpYyBvcGVuRGV0YWlsKHsgZ3VpZCB9OiBhbnkpOiB2b2lkeyBcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbIGAvYXBwcm92YWwvJHsgZ3VpZCB9YCBdLCB7IHByZXNlcnZlRnJhZ21lbnQ6IHRydWUgfSk7IFxuICB9XG5cbiAgcHVibGljIHNlbGVjdEFwcHJvdmFscygpOiB2b2lke1xuICAgIGNvbnN0IGRhdGFHcmlkOiBhbnlbXSA9IHRoaXMuZ3JpZEFwaS5nZXRTZWxlY3RlZFJvd3MoKTtcblxuICAgIHRoaXMuYnRuQ29uZmlnWzBdLmRpc2FibGVkID0gdGhpcy5idG5Db25maWdbMV0uZGlzYWJsZWQgPSBkYXRhR3JpZC5sZW5ndGggPCAxO1xuXG4gICAgdGhpcy5zZWxlY3RlZEFwcHJvdmFsR3JvdXBHdWlkID0gZGF0YUdyaWQubGVuZ3RoID09PSAwPyB1bmRlZmluZWQgOiBkYXRhR3JpZFswXS5hcHByb3ZhbEdyb3VwLmd1aWQ7XG4gICAgdGhpcy5ncmlkQXBpLnJlZnJlc2hDZWxscyh7IGZvcmNlOiB0cnVlIH0pO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaCh7IGRhdGEgfTogRmlsdGVyU2VhcmNoRXZlbnQpOiB2b2lke1xuICAgIHRoaXMuaW5wdXQudHlwZSA9IGRhdGE/LnR5cGU7XG4gICAgdGhpcy5pbnB1dC5zdGF0dXMgPSBkYXRhPy5zdGF0dXM7XG5cbiAgICB0aGlzLmdyaWRBcGkuZ2V0U2VsZWN0ZWROb2RlcygpLmZvckVhY2goKGUpID0+IGUuc2V0U2VsZWN0ZWQoZmFsc2UpKTtcbiAgICB0aGlzLmdyaWRBcGkucmVmcmVzaEluZmluaXRlQ2FjaGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0NoZWNrYm94U2VsZWN0YWJsZShhcHByb3ZhbEdyb3VwPzogQXBwcm92YWxHcm91cCk6IGJvb2xlYW57XG4gICAgaWYgKCFhcHByb3ZhbEdyb3VwKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKGFwcHJvdmFsR3JvdXAuZ3VpZCA9PT0gdGhpcy5zZWxlY3RlZEFwcHJvdmFsR3JvdXBHdWlkKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBtdWx0aXBsZUFwcHJvdmFsKGJ0bjogQnV0dG9uTG9hZGluZ0NvbXBvbmVudCk6IHZvaWR7XG4gICAgYnRuLnRvZ2dsZUxvYWRpbmcoKTtcblxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsgYC9hcHByb3ZhbC9hcHByb3ZhbC1ncm91cGAgXSwge1xuICAgICAgcHJlc2VydmVGcmFnbWVudDogdHJ1ZSxcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgIGlzQXBwcm92ZTogYnRuLmNvbG9yICE9PSAnZGFuZ2VyJyxcbiAgICAgICAgYXBwcm92YWxHcm91cEd1aWQ6IHRoaXMuc2VsZWN0ZWRBcHByb3ZhbEdyb3VwR3VpZCxcbiAgICAgICAgZ3VpZHM6IHRoaXMuZ3JpZEFwaS5nZXRTZWxlY3RlZFJvd3MoKS5tYXAoKHsgZ3VpZCB9KSA9PiBndWlkKVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBnYXAtNCBwLTQgZmxleC1zaHJpbmstMCBmbGV4LXdyYXBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTEgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgICA8aDMgY2xhc3M9XCJtLTBcIj5BcHByb3ZhbDwvaDM+XG5cbiAgICAgICAgPHVwLWJ0bi1ncm91cCBpZD1cImFwcHJvdmFsLWxpc3RcIiBbY29uZmlnXT1cImJ0bkNvbmZpZ1wiIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zaHJpbmstMCBmbGV4LWdyb3ctMVwiPlxuICAgICAgICA8dXAtZmlsdGVyIHBsYWNlaG9sZGVyPVwiVHlwZSB0byBzZWFyY2hcIiBpZD1cImZpbHRlci1hcHByb3ZhbC1saXN0XCIgW2NvbmZpZ109XCJmaWx0ZXJDb25maWdcIiAob25TZWFyY2gpPVwic2VhcmNoKCRldmVudClcIiAvPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMSBweC0xIHBiLTFcIj5cbiAgICA8dXAtcGFnaW5hdGlvbi1ncmlkIFtjb25maWddPVwiZ3JpZENvbmZpZ1wiIGlkPVwiZ3JpZC1hcHByb3ZhbC1saXN0XCIgcm93U2VsZWN0aW9uPVwibXVsdGlwbGVcIiAob25HcmlkUmVhZHkpPVwic2V0R3JpZEFwaSgkZXZlbnQpXCIgKG9uUm93Q2xpY2spPVwib3BlbkRldGFpbCgkZXZlbnQpXCIgKG9uU2VsZWN0aW9uQ2hhbmdlZCk9XCJzZWxlY3RBcHByb3ZhbHMoKVwiIC8+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export const APPROVAL_ENTITIES = new InjectionToken('APPROVAL_ENTITIES');
|
|
3
|
-
export function provideApprovalEntities(entities) {
|
|
4
|
-
return {
|
|
5
|
-
provide: APPROVAL_ENTITIES,
|
|
6
|
-
useValue: entities
|
|
7
|
-
};
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1hcHByb3ZhbC1lbnRpdGllcy51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5pcGluLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2FwcHJvdmFsL2xpc3QvcHJvdmlkZS1hcHByb3ZhbC1lbnRpdGllcy51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFekQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQVcsbUJBQW1CLENBQUMsQ0FBQztBQUVuRixNQUFNLFVBQVUsdUJBQXVCLENBQUMsUUFBa0I7SUFDeEQsT0FBTztRQUNMLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsUUFBUSxFQUFFLFFBQVE7S0FDbkIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IEFQUFJPVkFMX0VOVElUSUVTID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZ1tdPignQVBQUk9WQUxfRU5USVRJRVMnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVBcHByb3ZhbEVudGl0aWVzKGVudGl0aWVzOiBzdHJpbmdbXSk6IFByb3ZpZGVye1xuICByZXR1cm4geyBcbiAgICBwcm92aWRlOiBBUFBST1ZBTF9FTlRJVElFUywgXG4gICAgdXNlVmFsdWU6IGVudGl0aWVzIFxuICB9O1xufVxuIl19
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { gql } from 'apollo-angular';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "apollo-angular";
|
|
5
|
-
export class ApprovalService {
|
|
6
|
-
constructor(apollo) {
|
|
7
|
-
this.apollo = apollo;
|
|
8
|
-
this.baseAttr = `guid createdAt entity remark sourcePlatform status type approvalGroup { guid }`;
|
|
9
|
-
}
|
|
10
|
-
query(input, extraAttr = '', fetchPolicy) {
|
|
11
|
-
return this.apollo.query({
|
|
12
|
-
fetchPolicy,
|
|
13
|
-
variables: { input },
|
|
14
|
-
query: gql `
|
|
15
|
-
query QueryApproval($input: ApprovalCriteria) {
|
|
16
|
-
approvalMsApprovals(input: $input) {
|
|
17
|
-
data {
|
|
18
|
-
${this.baseAttr}
|
|
19
|
-
${extraAttr}
|
|
20
|
-
}
|
|
21
|
-
${input.page === 0 ? 'totalRecord' : ''}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
`
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
request(variables) {
|
|
28
|
-
return this.apollo.mutate({
|
|
29
|
-
variables,
|
|
30
|
-
mutation: gql `
|
|
31
|
-
mutation ${variables.isApprove ? 'ApproveApproval' : 'DeclineApproval'}($approvalGroupGuid: String, $guids: [String], $isApprove: Boolean, $reason: String) {
|
|
32
|
-
approvalMsApproveOrDeclineRequest(approvalGroupGuid: $approvalGroupGuid, guids: $guids, isApprove: $isApprove, reason: $reason)
|
|
33
|
-
}
|
|
34
|
-
`
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApprovalService, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
38
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApprovalService, providedIn: 'root' }); }
|
|
39
|
-
}
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApprovalService, decorators: [{
|
|
41
|
-
type: Injectable,
|
|
42
|
-
args: [{
|
|
43
|
-
providedIn: 'root'
|
|
44
|
-
}]
|
|
45
|
-
}], ctorParameters: () => [{ type: i1.Apollo }] });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hcHByb3ZhbC9zZXJ2aWNlcy9hcHByb3ZhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFVLEdBQUcsRUFBa0IsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBTTdELE1BQU0sT0FBTyxlQUFlO0lBSTFCLFlBQ3FCLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBSGhCLGFBQVEsR0FBVyxnRkFBZ0YsQ0FBQztJQUluSCxDQUFDO0lBRUUsS0FBSyxDQUFDLEtBQXVCLEVBQUUsWUFBb0IsRUFBRSxFQUFFLFdBQXlCO1FBQ3JGLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDdkIsV0FBVztZQUNYLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRTtZQUNwQixLQUFLLEVBQUUsR0FBRyxDQUFBOzs7O2dCQUlDLElBQUksQ0FBQyxRQUFTO2dCQUNkLFNBQVU7O2NBRVosS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRzs7O09BRzdDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE9BQU8sQ0FBQyxTQUF3RDtRQUNyRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ3hCLFNBQVM7WUFDVCxRQUFRLEVBQUUsR0FBRyxDQUFBO21CQUNDLFNBQVMsQ0FBQyxTQUFTLENBQUEsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxpQkFBa0I7OztPQUd4RTtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBbkNVLGVBQWU7bUhBQWYsZUFBZSxjQUZkLE1BQU07OzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBvbGxvUXVlcnlSZXN1bHQsIEZldGNoUG9saWN5IH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQgeyBBcG9sbG8sIGdxbCwgTXV0YXRpb25SZXN1bHQgfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XG5pbXBvcnQgeyBBcHByb3ZhbENyaXRlcmlhLCBQYWdlYWJsZVJlc3BvbnNlLCBNdXRhdGlvbkFwcHJvdmFsTXNBcHByb3ZlT3JEZWNsaW5lUmVxdWVzdEFyZ3MgfSBmcm9tICcuLy4uLy4uLy4uLy4uL2dyYXBocWwvZ2VuZXJhdGVkJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXBwcm92YWxTZXJ2aWNlIHtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYmFzZUF0dHI6IHN0cmluZyA9IGBndWlkIGNyZWF0ZWRBdCBlbnRpdHkgcmVtYXJrIHNvdXJjZVBsYXRmb3JtIHN0YXR1cyB0eXBlIGFwcHJvdmFsR3JvdXAgeyBndWlkIH1gO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCByZWFkb25seSBhcG9sbG86IEFwb2xsb1xuICApIHsgfVxuXG4gIHB1YmxpYyBxdWVyeShpbnB1dDogQXBwcm92YWxDcml0ZXJpYSwgZXh0cmFBdHRyOiBzdHJpbmcgPSAnJywgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeSk6IE9ic2VydmFibGU8QXBvbGxvUXVlcnlSZXN1bHQ8eyBhcHByb3ZhbE1zQXBwcm92YWxzOiBQYWdlYWJsZVJlc3BvbnNlIH0+PntcbiAgICByZXR1cm4gdGhpcy5hcG9sbG8ucXVlcnkoe1xuICAgICAgZmV0Y2hQb2xpY3ksXG4gICAgICB2YXJpYWJsZXM6IHsgaW5wdXQgfSxcbiAgICAgIHF1ZXJ5OiBncWxgXG4gICAgICAgIHF1ZXJ5IFF1ZXJ5QXBwcm92YWwoJGlucHV0OiBBcHByb3ZhbENyaXRlcmlhKSB7XG4gICAgICAgICAgYXBwcm92YWxNc0FwcHJvdmFscyhpbnB1dDogJGlucHV0KSB7XG4gICAgICAgICAgICBkYXRhIHtcbiAgICAgICAgICAgICAgJHsgdGhpcy5iYXNlQXR0ciB9XG4gICAgICAgICAgICAgICR7IGV4dHJhQXR0ciB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkeyBpbnB1dC5wYWdlID09PSAwPyAndG90YWxSZWNvcmQnIDogJycgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgYFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlcXVlc3QodmFyaWFibGVzOiBNdXRhdGlvbkFwcHJvdmFsTXNBcHByb3ZlT3JEZWNsaW5lUmVxdWVzdEFyZ3MpOiBPYnNlcnZhYmxlPE11dGF0aW9uUmVzdWx0PHsgYXBwcm92YWxNc0FwcHJvdmVPckRlY2xpbmVSZXF1ZXN0OiBzdHJpbmcgfT4+e1xuICAgIHJldHVybiB0aGlzLmFwb2xsby5tdXRhdGUoe1xuICAgICAgdmFyaWFibGVzLFxuICAgICAgbXV0YXRpb246IGdxbGBcbiAgICAgICAgbXV0YXRpb24gJHsgdmFyaWFibGVzLmlzQXBwcm92ZT8gJ0FwcHJvdmVBcHByb3ZhbCcgOiAnRGVjbGluZUFwcHJvdmFsJyB9KCRhcHByb3ZhbEdyb3VwR3VpZDogU3RyaW5nLCAkZ3VpZHM6IFtTdHJpbmddLCAkaXNBcHByb3ZlOiBCb29sZWFuLCAkcmVhc29uOiBTdHJpbmcpIHtcbiAgICAgICAgICBhcHByb3ZhbE1zQXBwcm92ZU9yRGVjbGluZVJlcXVlc3QoYXBwcm92YWxHcm91cEd1aWQ6ICRhcHByb3ZhbEdyb3VwR3VpZCwgZ3VpZHM6ICRndWlkcywgaXNBcHByb3ZlOiAkaXNBcHByb3ZlLCByZWFzb246ICRyZWFzb24pXG4gICAgICAgIH1cbiAgICAgIGBcbiAgICB9KTtcbiAgfVxufVxuIl19
|