ui-soxo-bootstrap-core 2.4.25-dev.41 → 2.4.25-dev.46
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/.babelrc +8 -8
- package/.github/workflows/npm-publish.yml +52 -55
- package/.husky/pre-commit +11 -11
- package/.prettierrc.json +10 -10
- package/babel.config.js +2 -2
- package/core/components/component-loader/component-loader.js +125 -125
- package/core/components/component-wrapper/component-wrapper.js +121 -121
- package/core/components/external-window/external-window.js +236 -236
- package/core/components/external-window/external-window.test.js +80 -80
- package/core/components/extra-info/extra-info-details.js +155 -155
- package/core/components/extra-info/extra-info-details.scss +26 -26
- package/core/components/extra-info/extra-info.js +134 -134
- package/core/components/index.js +20 -20
- package/core/components/landing-api/landing-api.js +492 -492
- package/core/components/landing-api/landing-api.scss +19 -19
- package/core/components/menu-template-api/menu-template-api.js +321 -321
- package/core/components/root-application-api/root-application-api.js +174 -174
- package/core/index.js +13 -13
- package/core/lib/Store.js +365 -365
- package/core/lib/components/application-bootstrap/application-bootstrap.js +115 -115
- package/core/lib/components/approval-form/approval-form.js +280 -280
- package/core/lib/components/approval-form/approval-form.scss +183 -183
- package/core/lib/components/approval-list/approval-list.js +143 -143
- package/core/lib/components/approval-list/approval-list.scss +2 -2
- package/core/lib/components/approval-list/components/request-card/request-card.js +42 -42
- package/core/lib/components/approval-list/components/request-card/request-card.scss +30 -30
- package/core/lib/components/camera/camera.js +230 -230
- package/core/lib/components/camera/camera.scss +86 -86
- package/core/lib/components/comment-block/comment-block.js +138 -138
- package/core/lib/components/comment-block/comment-block.scss +3 -3
- package/core/lib/components/confirm-modal/confirm-modal.js +82 -82
- package/core/lib/components/confirm-modal/confirm-modal.scss +2 -2
- package/core/lib/components/consent/consent.js +67 -67
- package/core/lib/components/consent/pdf-signature.js +299 -299
- package/core/lib/components/consent/signature-pad.js +90 -90
- package/core/lib/components/consent/signature-pad.scss +14 -14
- package/core/lib/components/file-upload/file-upload.js +133 -133
- package/core/lib/components/finger-print-reader/finger-print-reader.js +295 -295
- package/core/lib/components/finger-print-reader/finger-print-reader.scss +47 -47
- package/core/lib/components/finger-print-search/finger-print-search.js +200 -200
- package/core/lib/components/finger-print-search/finger-print-search.scss +47 -47
- package/core/lib/components/global-header/animations.js +18 -18
- package/core/lib/components/global-header/global-header.js +412 -412
- package/core/lib/components/global-header/global-header.scss +369 -369
- package/core/lib/components/header/generic-header.js +76 -76
- package/core/lib/components/header/generic-header.scss +99 -99
- package/core/lib/components/image-preview/image-preview.js +33 -33
- package/core/lib/components/image-wrapper/image-wrapper.js +108 -108
- package/core/lib/components/image-wrapper/image-wrapper.scss +12 -12
- package/core/lib/components/index.js +206 -206
- package/core/lib/components/landing/landing.js +403 -403
- package/core/lib/components/language-switcher/language-switcher.js +49 -49
- package/core/lib/components/menu-context/menu-context.js +69 -69
- package/core/lib/components/menu-template/menu-template.js +249 -249
- package/core/lib/components/menu-template/menu-template.scss +9 -9
- package/core/lib/components/modal-search/modal-search.js +153 -153
- package/core/lib/components/modal-search/modal-search.scss +78 -78
- package/core/lib/components/modal-wrapper/modal-manager.js +15 -15
- package/core/lib/components/modal-wrapper/modal-wrapper.js +108 -108
- package/core/lib/components/modal-wrapper/modal-wrapper.scss +13 -13
- package/core/lib/components/notice-board/notice-board.js +132 -132
- package/core/lib/components/notice-board/notice-board.scss +65 -65
- package/core/lib/components/page-container/page-container.js +55 -55
- package/core/lib/components/page-container/page-container.scss +8 -8
- package/core/lib/components/page-header/page-header.js +23 -23
- package/core/lib/components/page-header/page-header.scss +17 -17
- package/core/lib/components/pdf-viewer/pdf-viewer.js +56 -56
- package/core/lib/components/portlet-table/components/table-actions/table-actions.js +58 -58
- package/core/lib/components/portlet-table/components/table-actions/table-actions.scss +1 -1
- package/core/lib/components/portlet-table/components/table-data/table-data.js +106 -106
- package/core/lib/components/portlet-table/portlet-table.js +63 -63
- package/core/lib/components/portlet-table/portlet-table.scss +90 -90
- package/core/lib/components/progress-bar/progress-bar.js +58 -58
- package/core/lib/components/progress-bar/progress-bar.scss +15 -15
- package/core/lib/components/request-form/request-form.js +110 -110
- package/core/lib/components/root-application/root-application.js +70 -70
- package/core/lib/components/rupee/rupee.js +14 -14
- package/core/lib/components/script-input/script-input.js +169 -169
- package/core/lib/components/script-input/script-input.scss +8 -8
- package/core/lib/components/sidemenu/animations.js +51 -51
- package/core/lib/components/sidemenu/sidemenu.js +572 -572
- package/core/lib/components/sidemenu/sidemenu.scss +277 -277
- package/core/lib/components/spotlight-search/spotlight-search.component.js +635 -635
- package/core/lib/components/spotlight-search/spotlight-search.component.scss +78 -78
- package/core/lib/components/table-wrapper/table-wrapper.js +135 -135
- package/core/lib/components/table-wrapper/table-wrapper.scss +72 -72
- package/core/lib/components/ui_elements/Loader.js +12 -12
- package/core/lib/components/ui_elements/Notify.js +12 -12
- package/core/lib/components/ui_elements/PlaceHolder.js +33 -33
- package/core/lib/components/web-camera/web-camera.js +161 -161
- package/core/lib/components/web-camera/web-camera.scss +28 -28
- package/core/lib/core.md +9 -9
- package/core/lib/elements/Elements.md +2 -2
- package/core/lib/elements/basic/LoggedUserRedirect.js +21 -21
- package/core/lib/elements/basic/PrivateRoute.js +16 -16
- package/core/lib/elements/basic/button/Button.md +43 -43
- package/core/lib/elements/basic/button/button.js +170 -170
- package/core/lib/elements/basic/card/Card.md +15 -15
- package/core/lib/elements/basic/card/card.js +40 -40
- package/core/lib/elements/basic/card/card.scss +13 -13
- package/core/lib/elements/basic/checkbox/checkbox.js +23 -23
- package/core/lib/elements/basic/col/col.js +15 -15
- package/core/lib/elements/basic/copy-to-clipboard/Readme.md +40 -40
- package/core/lib/elements/basic/copy-to-clipboard/copy-to-clipboard.js +61 -61
- package/core/lib/elements/basic/country-phone-input/Readme.md +98 -98
- package/core/lib/elements/basic/country-phone-input/country-phone-input.js +106 -106
- package/core/lib/elements/basic/country-phone-input/phone-input.scss +61 -61
- package/core/lib/elements/basic/datepicker/datepicker.js +33 -33
- package/core/lib/elements/basic/dragabble-wrapper/draggable-wrapper.js +136 -136
- package/core/lib/elements/basic/empty/empty.js +14 -14
- package/core/lib/elements/basic/fingerprint-protrected/fingerprint-protected.js +118 -118
- package/core/lib/elements/basic/fingerprint-protrected/fingerprint-protected.scss +10 -10
- package/core/lib/elements/basic/form/form.js +70 -70
- package/core/lib/elements/basic/form/form.scss +3 -3
- package/core/lib/elements/basic/image/image.js +45 -45
- package/core/lib/elements/basic/image/image.scss +17 -17
- package/core/lib/elements/basic/image/readme.md +26 -26
- package/core/lib/elements/basic/image-viewer/image-viewer.js +108 -108
- package/core/lib/elements/basic/image-viewer/image-viewer.scss +7 -7
- package/core/lib/elements/basic/input/input.js +81 -81
- package/core/lib/elements/basic/input/readme.md +77 -77
- package/core/lib/elements/basic/json-input/json-input.js +51 -51
- package/core/lib/elements/basic/menu-dashboard/menu-dashboard.js +216 -216
- package/core/lib/elements/basic/menu-dashboard/menu-dashboard.scss +28 -28
- package/core/lib/elements/basic/menu-tree/menu-tree.js +114 -114
- package/core/lib/elements/basic/modal/modal.js +64 -64
- package/core/lib/elements/basic/modal/readme.md +62 -62
- package/core/lib/elements/basic/popconfirm/popconfirm.js +17 -17
- package/core/lib/elements/basic/popover/popover.js +12 -12
- package/core/lib/elements/basic/radio/radio.js +18 -18
- package/core/lib/elements/basic/rangepicker/rangepicker.js +141 -141
- package/core/lib/elements/basic/rangepicker/rangepicker.scss +24 -24
- package/core/lib/elements/basic/rangepicker/readme.md +81 -81
- package/core/lib/elements/basic/reference-select/readme.md +18 -18
- package/core/lib/elements/basic/reference-select/reference-select.js +337 -337
- package/core/lib/elements/basic/row/row.js +15 -15
- package/core/lib/elements/basic/select/select.js +46 -46
- package/core/lib/elements/basic/select-box/readme.md +52 -52
- package/core/lib/elements/basic/select-box/select-box.js +63 -63
- package/core/lib/elements/basic/skeleton/readme.md +35 -35
- package/core/lib/elements/basic/skeleton/skeleton.js +35 -35
- package/core/lib/elements/basic/skeleton/skeleton.scss +53 -53
- package/core/lib/elements/basic/space/space.js +12 -12
- package/core/lib/elements/basic/switch/readme.md +29 -29
- package/core/lib/elements/basic/switch/switch.js +67 -67
- package/core/lib/elements/basic/tab/tab.js +14 -14
- package/core/lib/elements/basic/table/readme.md +8 -8
- package/core/lib/elements/basic/table/table.js +100 -100
- package/core/lib/elements/basic/tag/tag.js +63 -63
- package/core/lib/elements/basic/tag/tag.scss +2 -2
- package/core/lib/elements/basic/timeline/timeline.js +13 -13
- package/core/lib/elements/basic/title/readme.md +20 -20
- package/core/lib/elements/basic/title/title.js +37 -37
- package/core/lib/elements/basic/user-search/user-search.js +192 -192
- package/core/lib/elements/complex/barcode/barcode.js +27 -27
- package/core/lib/elements/complex/bargraph/bar-graph.js +262 -262
- package/core/lib/elements/complex/basic-table/basic-table.js +110 -110
- package/core/lib/elements/complex/basic-table/basic-table.scss +4 -4
- package/core/lib/elements/complex/date-display/date-display.js +37 -37
- package/core/lib/elements/complex/error-boundary/error-boundary.js +29 -29
- package/core/lib/elements/complex/google-location-input/map-container-library-load.js +92 -92
- package/core/lib/elements/complex/google-map/google-map.js +230 -230
- package/core/lib/elements/complex/google-map/google-map.scss +13 -13
- package/core/lib/elements/complex/line-graph/line-graph.js +108 -108
- package/core/lib/elements/complex/location-search-input/location-search-input.js +100 -100
- package/core/lib/elements/complex/pie-chart/pie-chart.js +202 -202
- package/core/lib/elements/complex/qr-code/qr-code.js +27 -27
- package/core/lib/elements/complex/qrscanner/qrscanner.js +57 -57
- package/core/lib/elements/complex/search-debounce/search-debounce.js +37 -37
- package/core/lib/elements/complex/statistic-card/dashboard-statistic-card.js +75 -75
- package/core/lib/elements/complex/statistic-card/statistic-card.js +28 -28
- package/core/lib/elements/index.js +226 -226
- package/core/lib/hooks/device-detect.js +25 -25
- package/core/lib/hooks/index.js +9 -9
- package/core/lib/hooks/use-location.js +33 -33
- package/core/lib/hooks/use-otp-timer.js +80 -80
- package/core/lib/hooks/use-window-size.js +34 -34
- package/core/lib/i18n.js +69 -69
- package/core/lib/index.js +106 -106
- package/core/lib/introduction.md +73 -73
- package/core/lib/js-styleguide.md +4112 -4112
- package/core/lib/models/actions/actions.js +127 -127
- package/core/lib/models/actions/components/action-detail/action-detail.js +190 -190
- package/core/lib/models/actions/components/custom-actions/custom-actions.js +185 -185
- package/core/lib/models/attachments/attachments.js +231 -231
- package/core/lib/models/base-loader.js +99 -99
- package/core/lib/models/base.js +716 -716
- package/core/lib/models/branches/branches.js +125 -125
- package/core/lib/models/checklists/checklists.js +114 -114
- package/core/lib/models/columns/columns.js +169 -169
- package/core/lib/models/columns/components/columns-add/columns-add.js +171 -171
- package/core/lib/models/comments/comments.js +213 -213
- package/core/lib/models/departments/departments.js +107 -107
- package/core/lib/models/financial-years/financial_years.js +127 -127
- package/core/lib/models/forms/components/form-creator/form-creator.js +590 -590
- package/core/lib/models/forms/components/form-creator/form-creator.scss +29 -29
- package/core/lib/models/forms/components/form-detail/form-detail.js +224 -224
- package/core/lib/models/forms/forms.js +121 -121
- package/core/lib/models/index.js +203 -203
- package/core/lib/models/invoice-numbers/invoice_numbers.js +204 -204
- package/core/lib/models/lookup-types/components/lookup-detail/lookup-detail.js +145 -145
- package/core/lib/models/lookup-types/lookup-types.js +113 -113
- package/core/lib/models/lookup-values/components/lookup-values-add/lookup-values-add.js +126 -126
- package/core/lib/models/lookup-values/lookup-values.js +107 -107
- package/core/lib/models/menu-roles/menu-roles.js +127 -127
- package/core/lib/models/menus/components/menu-add/menu-add.js +228 -228
- package/core/lib/models/menus/components/menu-detail/menu-detail.js +170 -170
- package/core/lib/models/menus/components/menu-list/menu-list.js +593 -593
- package/core/lib/models/menus/components/menu-list/menu-list.scss +5 -5
- package/core/lib/models/menus/components/menu-roles-add/menu-roles-add.js +183 -183
- package/core/lib/models/menus/menus.js +499 -499
- package/core/lib/models/models/components/model-detail/model-detail.js +137 -137
- package/core/lib/models/models/components/models.js +128 -128
- package/core/lib/models/modules/modules.js +204 -204
- package/core/lib/models/outbox/outbox.js +73 -73
- package/core/lib/models/pages/pages.js +107 -107
- package/core/lib/models/permissions/permissions.js +71 -71
- package/core/lib/models/process/components/process-add/process-add.js +181 -181
- package/core/lib/models/process/components/process-dashboard/process-dashboard.js +601 -601
- package/core/lib/models/process/components/process-dashboard/process-dashboard.scss +62 -62
- package/core/lib/models/process/components/process-detail/process-detail.js +140 -140
- package/core/lib/models/process/components/process-timeline/process-timeline.js +139 -139
- package/core/lib/models/process/components/task-detail/task-detail.js +240 -240
- package/core/lib/models/process/components/task-detail/task-detail.scss +27 -27
- package/core/lib/models/process/components/task-form/task-form.js +528 -528
- package/core/lib/models/process/components/task-form/task-form.scss +7 -7
- package/core/lib/models/process/components/task-list/task-list.js +221 -221
- package/core/lib/models/process/components/task-list/task-list.scss +14 -14
- package/core/lib/models/process/components/task-overview/task-overview.js +299 -299
- package/core/lib/models/process/components/task-overview-legacy/task-overview-legacy.js +192 -192
- package/core/lib/models/process/components/task-routes/task-routes.js +45 -45
- package/core/lib/models/process/components/task-status/task-status.js +175 -175
- package/core/lib/models/process/components/task-status/task-status.scss +11 -11
- package/core/lib/models/process/process.js +780 -780
- package/core/lib/models/process-transactions/process-transactions.js +123 -123
- package/core/lib/models/roles/roles.js +106 -106
- package/core/lib/models/scripts/scripts.js +111 -111
- package/core/lib/models/step-transactions/step-transcations.js +147 -147
- package/core/lib/models/steps/components/step-add/step-add.js +261 -261
- package/core/lib/models/steps/components/step-detail/step-detail.js +157 -157
- package/core/lib/models/steps/steps.js +356 -356
- package/core/lib/models/user-preferences/user-preferences.js +83 -83
- package/core/lib/models/users/components/user-add/user-add.js +226 -226
- package/core/lib/models/users/users.js +119 -119
- package/core/lib/modules/business/launch-page/launch-page.js +29 -29
- package/core/lib/modules/business/launch-page/launch-page.scss +5 -5
- package/core/lib/modules/business/slots/slots.js +231 -231
- package/core/lib/modules/business/slots/slots.scss +108 -108
- package/core/lib/modules/forms/components/field-customizer/field-customizer.js +138 -138
- package/core/lib/modules/forms/components/field-selector/field-selector.js +157 -157
- package/core/lib/modules/forms/components/field-selector/field-selector.scss +25 -25
- package/core/lib/modules/forms/components/form-display/form-display.js +203 -203
- package/core/lib/modules/forms/components/form-display/form-display.scss +9 -9
- package/core/lib/modules/forms/components/tab-customizer/tab-customizer.js +124 -124
- package/core/lib/modules/generic/generic-add/generic-add.js +213 -213
- package/core/lib/modules/generic/generic-detail/generic-detail.js +199 -199
- package/core/lib/modules/generic/generic-edit/generic-edit.js +120 -120
- package/core/lib/modules/generic/generic-list/ExportReactCSV.js +62 -62
- package/core/lib/modules/generic/generic-list/generic-list.js +705 -705
- package/core/lib/modules/generic/generic-list/generic-list.scss +34 -34
- package/core/lib/modules/generic/generic-upload/generic-upload.js +483 -483
- package/core/lib/modules/generic/table-settings/table-settings.js +226 -226
- package/core/lib/modules/generic/table-settings/table-settings.scss +37 -37
- package/core/lib/modules/index.js +52 -52
- package/core/lib/modules/modules-routes/module-routes.js +35 -35
- package/core/lib/pages/change-password/change-password.js +211 -211
- package/core/lib/pages/change-password/change-password.scss +76 -76
- package/core/lib/pages/homepage/homepage.js +53 -53
- package/core/lib/pages/index.js +19 -19
- package/core/lib/pages/login/login.js +735 -735
- package/core/lib/pages/login/login.scss +458 -458
- package/core/lib/pages/manage-users/manage-users.js +429 -429
- package/core/lib/pages/manage-users/manage-users.scss +25 -25
- package/core/lib/pages/profile/profile.js +247 -247
- package/core/lib/pages/profile/profile.scss +107 -107
- package/core/lib/pages/profile/theme-config.js +18 -18
- package/core/lib/pages/profile/themes-backup.json +310 -310
- package/core/lib/pages/profile/themes.json +254 -254
- package/core/lib/pages/register/register.js +176 -176
- package/core/lib/pages/register/register.scss +128 -128
- package/core/lib/react-styleguide.md +756 -756
- package/core/lib/utils/api/api.utils.js +188 -188
- package/core/lib/utils/api/readme.md +426 -426
- package/core/lib/utils/async.js +35 -35
- package/core/lib/utils/common/common.utils.js +123 -123
- package/core/lib/utils/common/readme.md +30 -30
- package/core/lib/utils/date/date.utils.js +295 -295
- package/core/lib/utils/date/readme.md +2 -2
- package/core/lib/utils/firebase.support.utils.js +98 -98
- package/core/lib/utils/firebase.utils.js +808 -808
- package/core/lib/utils/form/form.utils.js +255 -255
- package/core/lib/utils/generic/generic.utils.js +69 -69
- package/core/lib/utils/http/auth.helper.js +95 -95
- package/core/lib/utils/http/http.utils.js +157 -157
- package/core/lib/utils/http/readme.md +14 -14
- package/core/lib/utils/index.js +45 -45
- package/core/lib/utils/location/location.utils.js +137 -137
- package/core/lib/utils/location/readme.md +18 -18
- package/core/lib/utils/modal.utils.js +15 -15
- package/core/lib/utils/notification.utils.js +34 -34
- package/core/lib/utils/pwa/pwa.utils.js +88 -88
- package/core/lib/utils/script.utils.js +235 -235
- package/core/lib/utils/setting.utils.js +68 -68
- package/core/lib/utils/upload.utils.js +29 -29
- package/core/models/Preference/Preferences.js +46 -46
- package/core/models/base/base.js +399 -399
- package/core/models/base-clone-loader.js +107 -107
- package/core/models/base-clone.js +187 -187
- package/core/models/base-loader.js +97 -97
- package/core/models/core-scripts/core-scripts.js +150 -150
- package/core/models/dashboard/dashboard.js +201 -201
- package/core/models/detail-loader.js +88 -88
- package/core/models/doctor/components/doctor-add/doctor-add.js +422 -422
- package/core/models/doctor/components/doctor-add/doctor-add.scss +32 -32
- package/core/models/groups.js +82 -82
- package/core/models/index.js +100 -100
- package/core/models/lookup-types/components/lookup-detail/lookup-detail.js +129 -129
- package/core/models/lookup-types/lookup-types.js +96 -96
- package/core/models/lookup-values/components/lookup-values-modal/lookup-values-modal.js +95 -95
- package/core/models/lookup-values/lookup-values.js +92 -92
- package/core/models/menu-roles/components/menu-roles-add/menu-roles-add.js +153 -153
- package/core/models/menu-roles/menu-roles.js +158 -158
- package/core/models/menus/components/menu-add/menu-add.js +288 -288
- package/core/models/menus/components/menu-add/menu-add.scss +31 -31
- package/core/models/menus/components/menu-detail/menu-detail.js +263 -263
- package/core/models/menus/components/menu-list/menu-list.js +392 -392
- package/core/models/menus/components/menu-lists/menu-lists.js +585 -585
- package/core/models/menus/components/menu-lists/menu-lists.scss +46 -46
- package/core/models/menus/menus.js +291 -291
- package/core/models/model-columns.js +121 -121
- package/core/models/models/components/model-detail/model-add.js +120 -120
- package/core/models/models/components/model-detail/model-detail.js +133 -133
- package/core/models/models/models.js +154 -154
- package/core/models/pages/components/page-add/page-add.js +163 -163
- package/core/models/pages/components/page-add/page-add.scss +30 -30
- package/core/models/pages/components/page-details/page-details.js +209 -209
- package/core/models/pages/components/page-list/page-list.js +248 -248
- package/core/models/pages/pages.js +142 -142
- package/core/models/pages.js +142 -142
- package/core/models/roles/components/role-add/role-add.js +312 -312
- package/core/models/roles/components/role-add/role-add.scss +4 -4
- package/core/models/roles/components/role-list/role-list.js +386 -386
- package/core/models/roles/roles.js +205 -205
- package/core/models/staff/components/staff-add/staff-add.js +468 -464
- package/core/models/user-roles/components/user-roles-add/user-roles-add.js +149 -149
- package/core/models/user-roles/user-roles.js +99 -99
- package/core/models/users/components/assign-role/assign-role.js +300 -298
- package/core/models/users/components/assign-role/assign-role.scss +117 -117
- package/core/models/users/components/user-add/user-add.js +853 -853
- package/core/models/users/components/user-add/user-edit.js +89 -89
- package/core/models/users/components/user-detail/user-detail.js +236 -236
- package/core/models/users/components/user-list/user-list.js +397 -397
- package/core/models/users/users.js +353 -353
- package/core/modules/Informations/change-info/change-info.js +618 -618
- package/core/modules/Informations/change-info/change-info.scss +134 -134
- package/core/modules/dashboard/components/dashboard-card/animations.js +64 -64
- package/core/modules/dashboard/components/dashboard-card/dashboard-card.js +197 -197
- package/core/modules/dashboard/components/dashboard-card/menu-dashboard-card.js +430 -430
- package/core/modules/dashboard/components/dashboard-card/menu-dashboard-card.scss +59 -59
- package/core/modules/dashboard/components/pop-query-dashboard/pop-query-dashboard.js +66 -66
- package/core/modules/generic/components/generic-add/generic-add.js +121 -121
- package/core/modules/generic/components/generic-add/generic-add.scss +13 -13
- package/core/modules/generic/components/generic-add-modal/generic-add-modal.js +125 -125
- package/core/modules/generic/components/generic-add-modal/generic-add-modal.scss +13 -13
- package/core/modules/generic/components/generic-detail/generic-detail.js +184 -184
- package/core/modules/generic/components/generic-detail/generic-detail.scss +25 -25
- package/core/modules/generic/components/generic-edit/generic-edit.js +123 -123
- package/core/modules/generic/components/generic-list/generic-list.js +335 -335
- package/core/modules/generic/components/generic-list/generic-list.scss +35 -35
- package/core/modules/index.js +42 -42
- package/core/modules/module-routes/module-routes.js +37 -37
- package/core/modules/reporting/components/index.js +6 -6
- package/core/modules/reporting/components/reporting-dashboard/reporting-dashboard.js +1223 -1223
- package/core/modules/reporting/components/reporting-dashboard/reporting-dashboard.scss +171 -171
- package/core/modules/steps/action-buttons.js +76 -76
- package/core/modules/steps/action-buttons.scss +15 -15
- package/core/modules/steps/steps.js +379 -379
- package/core/modules/steps/steps.scss +159 -159
- package/core/modules/steps/timeline.js +54 -54
- package/core/pages/homepage-api/homepage-api.js +106 -106
- package/core/pages/homepage-api/homepage-api.scss +233 -233
- package/core/pages/homepage-api/menu-dashboard.js +169 -169
- package/core/pages/homepage-api/menu-dashboard.scss +11 -11
- package/core/translation.json +53 -53
- package/core/translations.json +19 -19
- package/core/utils/script.utils.js +129 -129
- package/core/utils/settings.utils.js +25 -25
- package/eslint.config.mjs +79 -79
- package/index.js +35 -35
- package/jest.config.js +7 -7
- package/jest.setup.js +1 -1
- package/package.json +123 -123
- package/tsconfig.json +26 -26
- package/webpack.config.js +173 -173
|
@@ -1,337 +1,337 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* Generic Form create accepts an array of fields to update any resource
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import React, { useState, useEffect } from 'react';
|
|
7
|
-
|
|
8
|
-
import { Select } from 'antd';
|
|
9
|
-
|
|
10
|
-
import { BaseLoader } from '../../..';
|
|
11
|
-
|
|
12
|
-
const { Option } = Select;
|
|
13
|
-
|
|
14
|
-
// #TODO
|
|
15
|
-
/**
|
|
16
|
-
* Below is the plan for clearing the pending list
|
|
17
|
-
*
|
|
18
|
-
* nura single needs to be removed ,
|
|
19
|
-
*
|
|
20
|
-
* as it has no dependency , Passing path should be a feature of both firebase and SQL Implementation
|
|
21
|
-
* Or the component should accept model
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Component for selecting head
|
|
28
|
-
*
|
|
29
|
-
* @param {*} param0
|
|
30
|
-
* @returns
|
|
31
|
-
*/
|
|
32
|
-
function ReferenceSelect({
|
|
33
|
-
model,
|
|
34
|
-
path = '',
|
|
35
|
-
config,
|
|
36
|
-
value,
|
|
37
|
-
queries = [],
|
|
38
|
-
onChange,
|
|
39
|
-
label = 'name',
|
|
40
|
-
mode = '',
|
|
41
|
-
field = 'id',
|
|
42
|
-
allowClear,
|
|
43
|
-
sortKey, // Key for sorting
|
|
44
|
-
sortOrder = 'asc', // default to ascending,
|
|
45
|
-
...componentProps
|
|
46
|
-
}) {
|
|
47
|
-
let [options, setOptions] = useState([]);
|
|
48
|
-
|
|
49
|
-
useEffect(() => {
|
|
50
|
-
loadOptions();
|
|
51
|
-
}, []);
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Conditionally sorts an array of objects based on a specified key and order.
|
|
55
|
-
*
|
|
56
|
-
* @param {Array} data - The array of objects to be sorted.
|
|
57
|
-
* @returns {Array} - The sorted array if sorting is enabled and data is an array; otherwise, returns the original data.
|
|
58
|
-
*
|
|
59
|
-
* Sorting behavior:
|
|
60
|
-
* - Only proceeds if `sortKey` is truthy and `data` is a valid array.
|
|
61
|
-
* - Sorts in ascending order by default; descending if `sortOrder` is `'desc'`.
|
|
62
|
-
* - Case-insensitive sorting using `String.prototype.localeCompare`.
|
|
63
|
-
*
|
|
64
|
-
* Assumptions:
|
|
65
|
-
* - `sortKey`, `label`, and `sortOrder` are variables available in the enclosing scope.
|
|
66
|
-
*/
|
|
67
|
-
function sortIfNeeded(data) {
|
|
68
|
-
if (!sortKey || !Array.isArray(data)) return data;
|
|
69
|
-
|
|
70
|
-
const key = sortKey;
|
|
71
|
-
const order = sortOrder === 'desc' ? -1 : 1;
|
|
72
|
-
|
|
73
|
-
return [...data].sort((a, b) => {
|
|
74
|
-
const aVal = a?.[key]?.toString().toLowerCase() || '';
|
|
75
|
-
const bVal = b?.[key]?.toString().toLowerCase() || '';
|
|
76
|
-
return aVal.localeCompare(bVal) * order;
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Loads and sets options based on the current `mode`, fetching data via the `model` or `BaseLoader`.
|
|
82
|
-
* Handles optional sorting and applying a default value condition if specified.
|
|
83
|
-
*/
|
|
84
|
-
function loadOptions() {
|
|
85
|
-
// Destructure defaultValueCondition from componentProps, with a fallback of null
|
|
86
|
-
const { defaultValueCondition = null } = componentProps;
|
|
87
|
-
|
|
88
|
-
// Case 1: 'nura-base' mode – used for general fetch via config
|
|
89
|
-
if (mode === 'nura-base') {
|
|
90
|
-
// Fetch data from model using config
|
|
91
|
-
model.get({ ...config }).then((response) => {
|
|
92
|
-
// Extract result from response or fallback to response directly
|
|
93
|
-
let data = response.result || response;
|
|
94
|
-
|
|
95
|
-
// Conditionally sort the data using external sortIfNeeded function
|
|
96
|
-
data = sortIfNeeded(data);
|
|
97
|
-
|
|
98
|
-
// Set the sorted (or original) data to options
|
|
99
|
-
setOptions(data);
|
|
100
|
-
|
|
101
|
-
// If a defaultValueCondition is defined and data is not empty, apply it
|
|
102
|
-
if (defaultValueCondition && data.length) {
|
|
103
|
-
triggerDefaultValue(data);
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
// Case 2: 'nura-single' mode – fetches based on 'queries'
|
|
108
|
-
} else if (mode === 'nura-single') {
|
|
109
|
-
// Fetch data from model with given queries
|
|
110
|
-
model.get(queries).then(({ result }) => {
|
|
111
|
-
// Sort the result if needed
|
|
112
|
-
const data = sortIfNeeded(result);
|
|
113
|
-
|
|
114
|
-
// Set the (possibly sorted) data to options
|
|
115
|
-
setOptions(data);
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
// Case 3: All other modes
|
|
119
|
-
} else {
|
|
120
|
-
// Determine fetcher: use BaseLoader if path is provided, otherwise use model
|
|
121
|
-
const fetcher = path ? new BaseLoader({ path }) : model;
|
|
122
|
-
|
|
123
|
-
// Fetch data using the selected fetcher
|
|
124
|
-
fetcher.get(queries).then((result) => {
|
|
125
|
-
// Extract data using fetcher's name property
|
|
126
|
-
let data = path ? result[fetcher.name] : result[model.name];
|
|
127
|
-
|
|
128
|
-
// Sort the data if sorting is enabled
|
|
129
|
-
data = sortIfNeeded(data);
|
|
130
|
-
|
|
131
|
-
// Set the sorted (or original) data to options
|
|
132
|
-
setOptions(data);
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* Function defaults the value from the matching record
|
|
139
|
-
* @param {*} records
|
|
140
|
-
*/
|
|
141
|
-
function triggerDefaultValue(records) {
|
|
142
|
-
const { defaultValueCondition = null } = componentProps;
|
|
143
|
-
|
|
144
|
-
let matching = defaultValueCondition(records);
|
|
145
|
-
|
|
146
|
-
if (matching) {
|
|
147
|
-
onChange(matching[field]);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
let props = {};
|
|
152
|
-
|
|
153
|
-
if (mode == 'multiple') {
|
|
154
|
-
props.mode = mode;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
return (
|
|
158
|
-
<div className="head-selector">
|
|
159
|
-
<Select
|
|
160
|
-
allowClear={allowClear}
|
|
161
|
-
showSearch // Enables the search functionality in the Select dropdown
|
|
162
|
-
filterOption={(input, option) => {
|
|
163
|
-
// Custom filtering function to match the search input with the options
|
|
164
|
-
const searchText = input.toLowerCase().trim(); // Converts the search input to lowercase and trims whitespace
|
|
165
|
-
|
|
166
|
-
const optionLabel = option.children?.toString().toLowerCase().trim(); // Converts the option label to lowercase and trims whitespace
|
|
167
|
-
|
|
168
|
-
return optionLabel.includes(searchText); // Checks if the option label includes the search text
|
|
169
|
-
}}
|
|
170
|
-
{...props}
|
|
171
|
-
style={{ width: '100%' }}
|
|
172
|
-
onChange={onChange}
|
|
173
|
-
value={value}
|
|
174
|
-
{...componentProps}
|
|
175
|
-
>
|
|
176
|
-
{options.map((option, key) => (
|
|
177
|
-
<Option key={key} value={option[field]} record={option}>
|
|
178
|
-
{option[label]}
|
|
179
|
-
</Option>
|
|
180
|
-
))}
|
|
181
|
-
</Select>
|
|
182
|
-
</div>
|
|
183
|
-
);
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
export default ReferenceSelect;
|
|
187
|
-
|
|
188
|
-
// import React, { useState } from "react";
|
|
189
|
-
|
|
190
|
-
// import PropTypes from "prop-types";
|
|
191
|
-
|
|
192
|
-
// import 'antd/dist/antd.css';
|
|
193
|
-
|
|
194
|
-
// /**
|
|
195
|
-
// * A reference Select component.
|
|
196
|
-
// */
|
|
197
|
-
// function ReferenceSelect({ options, onSelect, defaultValue }) {
|
|
198
|
-
// const [selectedValue, setSelectedValue] = useState(defaultValue);
|
|
199
|
-
|
|
200
|
-
// const handleChange = (event) => {
|
|
201
|
-
// const value = event.target.value;
|
|
202
|
-
// setSelectedValue(value);
|
|
203
|
-
// onSelect(value);
|
|
204
|
-
// };
|
|
205
|
-
|
|
206
|
-
// useEffect(() => {
|
|
207
|
-
// loadOptions()
|
|
208
|
-
// }, [])
|
|
209
|
-
|
|
210
|
-
// /**
|
|
211
|
-
// * Load the matching heads
|
|
212
|
-
// */
|
|
213
|
-
// function loadOptions() {
|
|
214
|
-
|
|
215
|
-
// const { defaultValueCondition = null } = componentProps
|
|
216
|
-
|
|
217
|
-
// // Mode to handle all cases of Nura/StopTB/Medicant
|
|
218
|
-
// if (mode === 'nura-base') {
|
|
219
|
-
|
|
220
|
-
// model.get({ ...config }).then((response) => {
|
|
221
|
-
|
|
222
|
-
// // Since base class implementation , data is available under data.
|
|
223
|
-
// if (response.result) {
|
|
224
|
-
// setOptions(response.result);
|
|
225
|
-
// } else {
|
|
226
|
-
// setOptions(response)
|
|
227
|
-
// }
|
|
228
|
-
|
|
229
|
-
// // Default value
|
|
230
|
-
// if (defaultValueCondition) {
|
|
231
|
-
|
|
232
|
-
// // If the response
|
|
233
|
-
// if (response.result.length) {
|
|
234
|
-
|
|
235
|
-
// // Trigger the default value
|
|
236
|
-
// triggerDefaultValue(response.result);
|
|
237
|
-
// }
|
|
238
|
-
|
|
239
|
-
// // #Temporary Handling
|
|
240
|
-
// if (response.length) {
|
|
241
|
-
|
|
242
|
-
// triggerDefaultValue(response);
|
|
243
|
-
// }
|
|
244
|
-
// }
|
|
245
|
-
// })
|
|
246
|
-
|
|
247
|
-
// } else if (mode === 'nura-single') {
|
|
248
|
-
|
|
249
|
-
// model.get(queries).then(({ result }) => {
|
|
250
|
-
|
|
251
|
-
// setOptions(result);
|
|
252
|
-
|
|
253
|
-
// })
|
|
254
|
-
|
|
255
|
-
// } else {
|
|
256
|
-
|
|
257
|
-
// if (path) {
|
|
258
|
-
|
|
259
|
-
// let dynamicModel = new BaseLoader({ path })
|
|
260
|
-
|
|
261
|
-
// dynamicModel.get(queries).then((result) => {
|
|
262
|
-
|
|
263
|
-
// setOptions(result[dynamicModel.name]);
|
|
264
|
-
|
|
265
|
-
// })
|
|
266
|
-
|
|
267
|
-
// } else {
|
|
268
|
-
|
|
269
|
-
// model.get(queries).then((result) => {
|
|
270
|
-
|
|
271
|
-
// setOptions(result[model.name]);
|
|
272
|
-
|
|
273
|
-
// })
|
|
274
|
-
// }
|
|
275
|
-
// }
|
|
276
|
-
// }
|
|
277
|
-
|
|
278
|
-
// /**
|
|
279
|
-
// * Function defaults the value from the matching record
|
|
280
|
-
// */
|
|
281
|
-
// function triggerDefaultValue(records) {
|
|
282
|
-
|
|
283
|
-
// const { defaultValueCondition = null } = componentProps
|
|
284
|
-
|
|
285
|
-
// let matching = defaultValueCondition(records);
|
|
286
|
-
|
|
287
|
-
// if (matching) {
|
|
288
|
-
|
|
289
|
-
// onChange(matching[field]);
|
|
290
|
-
// }
|
|
291
|
-
// }
|
|
292
|
-
|
|
293
|
-
// let props = {}
|
|
294
|
-
|
|
295
|
-
// if (mode == 'multiple') {
|
|
296
|
-
// props.mode = mode;
|
|
297
|
-
// }
|
|
298
|
-
|
|
299
|
-
// return (
|
|
300
|
-
// <div className="head-selector">
|
|
301
|
-
// <Select {...props} style={{ width: '100%' }} onChange={onChange} value={value} {...componentProps}>
|
|
302
|
-
// {options.map((option, key) => (
|
|
303
|
-
// <Option key={key} value={option[field]} record={option}>
|
|
304
|
-
// {option[label]}
|
|
305
|
-
// </Option>
|
|
306
|
-
// ))}
|
|
307
|
-
// </Select>
|
|
308
|
-
// </div>
|
|
309
|
-
// );
|
|
310
|
-
// }
|
|
311
|
-
|
|
312
|
-
// ReferenceSelect.propTypes = {
|
|
313
|
-
// /**
|
|
314
|
-
// * An array of reference options for the Select component.
|
|
315
|
-
// */
|
|
316
|
-
// options: PropTypes.arrayOf(
|
|
317
|
-
// PropTypes.shape({
|
|
318
|
-
// value: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
|
|
319
|
-
// .isRequired,
|
|
320
|
-
// label: PropTypes.string.isRequired,
|
|
321
|
-
// })
|
|
322
|
-
// ).isRequired,
|
|
323
|
-
// /**
|
|
324
|
-
// * A callback function that is called when a reference is selected.
|
|
325
|
-
// */
|
|
326
|
-
// onSelect: PropTypes.func.isRequired,
|
|
327
|
-
// /**
|
|
328
|
-
// * The default value for the Select component.
|
|
329
|
-
// */
|
|
330
|
-
// defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
|
331
|
-
// };
|
|
332
|
-
|
|
333
|
-
// ReferenceSelect.defaultProps = {
|
|
334
|
-
// defaultValue: "",
|
|
335
|
-
// };
|
|
336
|
-
|
|
337
|
-
// export default ReferenceSelect;
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* Generic Form create accepts an array of fields to update any resource
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import React, { useState, useEffect } from 'react';
|
|
7
|
+
|
|
8
|
+
import { Select } from 'antd';
|
|
9
|
+
|
|
10
|
+
import { BaseLoader } from '../../..';
|
|
11
|
+
|
|
12
|
+
const { Option } = Select;
|
|
13
|
+
|
|
14
|
+
// #TODO
|
|
15
|
+
/**
|
|
16
|
+
* Below is the plan for clearing the pending list
|
|
17
|
+
*
|
|
18
|
+
* nura single needs to be removed ,
|
|
19
|
+
*
|
|
20
|
+
* as it has no dependency , Passing path should be a feature of both firebase and SQL Implementation
|
|
21
|
+
* Or the component should accept model
|
|
22
|
+
*
|
|
23
|
+
*
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Component for selecting head
|
|
28
|
+
*
|
|
29
|
+
* @param {*} param0
|
|
30
|
+
* @returns
|
|
31
|
+
*/
|
|
32
|
+
function ReferenceSelect({
|
|
33
|
+
model,
|
|
34
|
+
path = '',
|
|
35
|
+
config,
|
|
36
|
+
value,
|
|
37
|
+
queries = [],
|
|
38
|
+
onChange,
|
|
39
|
+
label = 'name',
|
|
40
|
+
mode = '',
|
|
41
|
+
field = 'id',
|
|
42
|
+
allowClear,
|
|
43
|
+
sortKey, // Key for sorting
|
|
44
|
+
sortOrder = 'asc', // default to ascending,
|
|
45
|
+
...componentProps
|
|
46
|
+
}) {
|
|
47
|
+
let [options, setOptions] = useState([]);
|
|
48
|
+
|
|
49
|
+
useEffect(() => {
|
|
50
|
+
loadOptions();
|
|
51
|
+
}, []);
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Conditionally sorts an array of objects based on a specified key and order.
|
|
55
|
+
*
|
|
56
|
+
* @param {Array} data - The array of objects to be sorted.
|
|
57
|
+
* @returns {Array} - The sorted array if sorting is enabled and data is an array; otherwise, returns the original data.
|
|
58
|
+
*
|
|
59
|
+
* Sorting behavior:
|
|
60
|
+
* - Only proceeds if `sortKey` is truthy and `data` is a valid array.
|
|
61
|
+
* - Sorts in ascending order by default; descending if `sortOrder` is `'desc'`.
|
|
62
|
+
* - Case-insensitive sorting using `String.prototype.localeCompare`.
|
|
63
|
+
*
|
|
64
|
+
* Assumptions:
|
|
65
|
+
* - `sortKey`, `label`, and `sortOrder` are variables available in the enclosing scope.
|
|
66
|
+
*/
|
|
67
|
+
function sortIfNeeded(data) {
|
|
68
|
+
if (!sortKey || !Array.isArray(data)) return data;
|
|
69
|
+
|
|
70
|
+
const key = sortKey;
|
|
71
|
+
const order = sortOrder === 'desc' ? -1 : 1;
|
|
72
|
+
|
|
73
|
+
return [...data].sort((a, b) => {
|
|
74
|
+
const aVal = a?.[key]?.toString().toLowerCase() || '';
|
|
75
|
+
const bVal = b?.[key]?.toString().toLowerCase() || '';
|
|
76
|
+
return aVal.localeCompare(bVal) * order;
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Loads and sets options based on the current `mode`, fetching data via the `model` or `BaseLoader`.
|
|
82
|
+
* Handles optional sorting and applying a default value condition if specified.
|
|
83
|
+
*/
|
|
84
|
+
function loadOptions() {
|
|
85
|
+
// Destructure defaultValueCondition from componentProps, with a fallback of null
|
|
86
|
+
const { defaultValueCondition = null } = componentProps;
|
|
87
|
+
|
|
88
|
+
// Case 1: 'nura-base' mode – used for general fetch via config
|
|
89
|
+
if (mode === 'nura-base') {
|
|
90
|
+
// Fetch data from model using config
|
|
91
|
+
model.get({ ...config }).then((response) => {
|
|
92
|
+
// Extract result from response or fallback to response directly
|
|
93
|
+
let data = response.result || response;
|
|
94
|
+
|
|
95
|
+
// Conditionally sort the data using external sortIfNeeded function
|
|
96
|
+
data = sortIfNeeded(data);
|
|
97
|
+
|
|
98
|
+
// Set the sorted (or original) data to options
|
|
99
|
+
setOptions(data);
|
|
100
|
+
|
|
101
|
+
// If a defaultValueCondition is defined and data is not empty, apply it
|
|
102
|
+
if (defaultValueCondition && data.length) {
|
|
103
|
+
triggerDefaultValue(data);
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
// Case 2: 'nura-single' mode – fetches based on 'queries'
|
|
108
|
+
} else if (mode === 'nura-single') {
|
|
109
|
+
// Fetch data from model with given queries
|
|
110
|
+
model.get(queries).then(({ result }) => {
|
|
111
|
+
// Sort the result if needed
|
|
112
|
+
const data = sortIfNeeded(result);
|
|
113
|
+
|
|
114
|
+
// Set the (possibly sorted) data to options
|
|
115
|
+
setOptions(data);
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
// Case 3: All other modes
|
|
119
|
+
} else {
|
|
120
|
+
// Determine fetcher: use BaseLoader if path is provided, otherwise use model
|
|
121
|
+
const fetcher = path ? new BaseLoader({ path }) : model;
|
|
122
|
+
|
|
123
|
+
// Fetch data using the selected fetcher
|
|
124
|
+
fetcher.get(queries).then((result) => {
|
|
125
|
+
// Extract data using fetcher's name property
|
|
126
|
+
let data = path ? result[fetcher.name] : result[model.name];
|
|
127
|
+
|
|
128
|
+
// Sort the data if sorting is enabled
|
|
129
|
+
data = sortIfNeeded(data);
|
|
130
|
+
|
|
131
|
+
// Set the sorted (or original) data to options
|
|
132
|
+
setOptions(data);
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Function defaults the value from the matching record
|
|
139
|
+
* @param {*} records
|
|
140
|
+
*/
|
|
141
|
+
function triggerDefaultValue(records) {
|
|
142
|
+
const { defaultValueCondition = null } = componentProps;
|
|
143
|
+
|
|
144
|
+
let matching = defaultValueCondition(records);
|
|
145
|
+
|
|
146
|
+
if (matching) {
|
|
147
|
+
onChange(matching[field]);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
let props = {};
|
|
152
|
+
|
|
153
|
+
if (mode == 'multiple') {
|
|
154
|
+
props.mode = mode;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
return (
|
|
158
|
+
<div className="head-selector">
|
|
159
|
+
<Select
|
|
160
|
+
allowClear={allowClear}
|
|
161
|
+
showSearch // Enables the search functionality in the Select dropdown
|
|
162
|
+
filterOption={(input, option) => {
|
|
163
|
+
// Custom filtering function to match the search input with the options
|
|
164
|
+
const searchText = input.toLowerCase().trim(); // Converts the search input to lowercase and trims whitespace
|
|
165
|
+
|
|
166
|
+
const optionLabel = option.children?.toString().toLowerCase().trim(); // Converts the option label to lowercase and trims whitespace
|
|
167
|
+
|
|
168
|
+
return optionLabel.includes(searchText); // Checks if the option label includes the search text
|
|
169
|
+
}}
|
|
170
|
+
{...props}
|
|
171
|
+
style={{ width: '100%' }}
|
|
172
|
+
onChange={onChange}
|
|
173
|
+
value={value}
|
|
174
|
+
{...componentProps}
|
|
175
|
+
>
|
|
176
|
+
{options.map((option, key) => (
|
|
177
|
+
<Option key={key} value={option[field]} record={option}>
|
|
178
|
+
{option[label]}
|
|
179
|
+
</Option>
|
|
180
|
+
))}
|
|
181
|
+
</Select>
|
|
182
|
+
</div>
|
|
183
|
+
);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
export default ReferenceSelect;
|
|
187
|
+
|
|
188
|
+
// import React, { useState } from "react";
|
|
189
|
+
|
|
190
|
+
// import PropTypes from "prop-types";
|
|
191
|
+
|
|
192
|
+
// import 'antd/dist/antd.css';
|
|
193
|
+
|
|
194
|
+
// /**
|
|
195
|
+
// * A reference Select component.
|
|
196
|
+
// */
|
|
197
|
+
// function ReferenceSelect({ options, onSelect, defaultValue }) {
|
|
198
|
+
// const [selectedValue, setSelectedValue] = useState(defaultValue);
|
|
199
|
+
|
|
200
|
+
// const handleChange = (event) => {
|
|
201
|
+
// const value = event.target.value;
|
|
202
|
+
// setSelectedValue(value);
|
|
203
|
+
// onSelect(value);
|
|
204
|
+
// };
|
|
205
|
+
|
|
206
|
+
// useEffect(() => {
|
|
207
|
+
// loadOptions()
|
|
208
|
+
// }, [])
|
|
209
|
+
|
|
210
|
+
// /**
|
|
211
|
+
// * Load the matching heads
|
|
212
|
+
// */
|
|
213
|
+
// function loadOptions() {
|
|
214
|
+
|
|
215
|
+
// const { defaultValueCondition = null } = componentProps
|
|
216
|
+
|
|
217
|
+
// // Mode to handle all cases of Nura/StopTB/Medicant
|
|
218
|
+
// if (mode === 'nura-base') {
|
|
219
|
+
|
|
220
|
+
// model.get({ ...config }).then((response) => {
|
|
221
|
+
|
|
222
|
+
// // Since base class implementation , data is available under data.
|
|
223
|
+
// if (response.result) {
|
|
224
|
+
// setOptions(response.result);
|
|
225
|
+
// } else {
|
|
226
|
+
// setOptions(response)
|
|
227
|
+
// }
|
|
228
|
+
|
|
229
|
+
// // Default value
|
|
230
|
+
// if (defaultValueCondition) {
|
|
231
|
+
|
|
232
|
+
// // If the response
|
|
233
|
+
// if (response.result.length) {
|
|
234
|
+
|
|
235
|
+
// // Trigger the default value
|
|
236
|
+
// triggerDefaultValue(response.result);
|
|
237
|
+
// }
|
|
238
|
+
|
|
239
|
+
// // #Temporary Handling
|
|
240
|
+
// if (response.length) {
|
|
241
|
+
|
|
242
|
+
// triggerDefaultValue(response);
|
|
243
|
+
// }
|
|
244
|
+
// }
|
|
245
|
+
// })
|
|
246
|
+
|
|
247
|
+
// } else if (mode === 'nura-single') {
|
|
248
|
+
|
|
249
|
+
// model.get(queries).then(({ result }) => {
|
|
250
|
+
|
|
251
|
+
// setOptions(result);
|
|
252
|
+
|
|
253
|
+
// })
|
|
254
|
+
|
|
255
|
+
// } else {
|
|
256
|
+
|
|
257
|
+
// if (path) {
|
|
258
|
+
|
|
259
|
+
// let dynamicModel = new BaseLoader({ path })
|
|
260
|
+
|
|
261
|
+
// dynamicModel.get(queries).then((result) => {
|
|
262
|
+
|
|
263
|
+
// setOptions(result[dynamicModel.name]);
|
|
264
|
+
|
|
265
|
+
// })
|
|
266
|
+
|
|
267
|
+
// } else {
|
|
268
|
+
|
|
269
|
+
// model.get(queries).then((result) => {
|
|
270
|
+
|
|
271
|
+
// setOptions(result[model.name]);
|
|
272
|
+
|
|
273
|
+
// })
|
|
274
|
+
// }
|
|
275
|
+
// }
|
|
276
|
+
// }
|
|
277
|
+
|
|
278
|
+
// /**
|
|
279
|
+
// * Function defaults the value from the matching record
|
|
280
|
+
// */
|
|
281
|
+
// function triggerDefaultValue(records) {
|
|
282
|
+
|
|
283
|
+
// const { defaultValueCondition = null } = componentProps
|
|
284
|
+
|
|
285
|
+
// let matching = defaultValueCondition(records);
|
|
286
|
+
|
|
287
|
+
// if (matching) {
|
|
288
|
+
|
|
289
|
+
// onChange(matching[field]);
|
|
290
|
+
// }
|
|
291
|
+
// }
|
|
292
|
+
|
|
293
|
+
// let props = {}
|
|
294
|
+
|
|
295
|
+
// if (mode == 'multiple') {
|
|
296
|
+
// props.mode = mode;
|
|
297
|
+
// }
|
|
298
|
+
|
|
299
|
+
// return (
|
|
300
|
+
// <div className="head-selector">
|
|
301
|
+
// <Select {...props} style={{ width: '100%' }} onChange={onChange} value={value} {...componentProps}>
|
|
302
|
+
// {options.map((option, key) => (
|
|
303
|
+
// <Option key={key} value={option[field]} record={option}>
|
|
304
|
+
// {option[label]}
|
|
305
|
+
// </Option>
|
|
306
|
+
// ))}
|
|
307
|
+
// </Select>
|
|
308
|
+
// </div>
|
|
309
|
+
// );
|
|
310
|
+
// }
|
|
311
|
+
|
|
312
|
+
// ReferenceSelect.propTypes = {
|
|
313
|
+
// /**
|
|
314
|
+
// * An array of reference options for the Select component.
|
|
315
|
+
// */
|
|
316
|
+
// options: PropTypes.arrayOf(
|
|
317
|
+
// PropTypes.shape({
|
|
318
|
+
// value: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
|
|
319
|
+
// .isRequired,
|
|
320
|
+
// label: PropTypes.string.isRequired,
|
|
321
|
+
// })
|
|
322
|
+
// ).isRequired,
|
|
323
|
+
// /**
|
|
324
|
+
// * A callback function that is called when a reference is selected.
|
|
325
|
+
// */
|
|
326
|
+
// onSelect: PropTypes.func.isRequired,
|
|
327
|
+
// /**
|
|
328
|
+
// * The default value for the Select component.
|
|
329
|
+
// */
|
|
330
|
+
// defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
|
331
|
+
// };
|
|
332
|
+
|
|
333
|
+
// ReferenceSelect.defaultProps = {
|
|
334
|
+
// defaultValue: "",
|
|
335
|
+
// };
|
|
336
|
+
|
|
337
|
+
// export default ReferenceSelect;
|