ui-soxo-bootstrap-core 2.4.24
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 +9 -0
- package/.github/workflows/npm-publish.yml +33 -0
- package/.husky/pre-commit +12 -0
- package/.prettierrc.json +11 -0
- package/babel.config.js +3 -0
- package/core/assets/images/vector.png +0 -0
- package/core/components/component-loader/component-loader.js +125 -0
- package/core/components/component-wrapper/component-wrapper.js +122 -0
- package/core/components/extra-info/extra-info-details.js +172 -0
- package/core/components/extra-info/extra-info-details.scss +27 -0
- package/core/components/extra-info/extra-info.js +134 -0
- package/core/components/index.js +18 -0
- package/core/components/landing-api/landing-api.js +492 -0
- package/core/components/landing-api/landing-api.scss +19 -0
- package/core/components/menu-template-api/menu-template-api.js +321 -0
- package/core/components/root-application-api/root-application-api.js +174 -0
- package/core/components/root-application-api/root-application.api.scss +0 -0
- package/core/index.js +14 -0
- package/core/lib/Store.js +363 -0
- package/core/lib/assets/Tick-icon.png +0 -0
- package/core/lib/assets/blue-slate-theme.png +0 -0
- package/core/lib/assets/dark-theme.png +0 -0
- package/core/lib/assets/deep-purple-theme.png +0 -0
- package/core/lib/assets/light-theme.png +0 -0
- package/core/lib/assets/nura-theme.png +0 -0
- package/core/lib/assets/plant.png +0 -0
- package/core/lib/assets/welcome-image.png +0 -0
- package/core/lib/assets/white-haze-theme.png +0 -0
- package/core/lib/components/application-bootstrap/application-bootstrap.js +115 -0
- package/core/lib/components/application-bootstrap/application-bootstrap.scss +0 -0
- package/core/lib/components/approval-form/approval-form.js +280 -0
- package/core/lib/components/approval-form/approval-form.scss +184 -0
- package/core/lib/components/approval-list/approval-list.js +143 -0
- package/core/lib/components/approval-list/approval-list.scss +3 -0
- package/core/lib/components/approval-list/components/request-card/request-card.js +43 -0
- package/core/lib/components/approval-list/components/request-card/request-card.scss +31 -0
- package/core/lib/components/camera/camera.js +231 -0
- package/core/lib/components/camera/camera.scss +86 -0
- package/core/lib/components/comment-block/comment-block.js +139 -0
- package/core/lib/components/comment-block/comment-block.scss +3 -0
- package/core/lib/components/confirm-modal/confirm-modal.js +82 -0
- package/core/lib/components/confirm-modal/confirm-modal.scss +3 -0
- package/core/lib/components/consent/consent.js +67 -0
- package/core/lib/components/consent/consent.scss +0 -0
- package/core/lib/components/consent/pdf-signature.js +299 -0
- package/core/lib/components/consent/signature-pad.js +90 -0
- package/core/lib/components/consent/signature-pad.scss +14 -0
- package/core/lib/components/file-upload/file-upload.js +133 -0
- package/core/lib/components/finger-print-reader/finger-print-reader.js +296 -0
- package/core/lib/components/finger-print-reader/finger-print-reader.scss +47 -0
- package/core/lib/components/finger-print-search/finger-print-search.js +200 -0
- package/core/lib/components/finger-print-search/finger-print-search.scss +47 -0
- package/core/lib/components/global-header/animations.js +18 -0
- package/core/lib/components/global-header/global-header.js +413 -0
- package/core/lib/components/global-header/global-header.scss +369 -0
- package/core/lib/components/header/generic-header.js +76 -0
- package/core/lib/components/header/generic-header.scss +99 -0
- package/core/lib/components/image-preview/image-preview.js +33 -0
- package/core/lib/components/image-wrapper/image-wrapper.js +108 -0
- package/core/lib/components/image-wrapper/image-wrapper.scss +13 -0
- package/core/lib/components/index.js +203 -0
- package/core/lib/components/landing/landing.js +404 -0
- package/core/lib/components/landing/landing.scss +0 -0
- package/core/lib/components/language-switcher/language-switcher.js +50 -0
- package/core/lib/components/menu-context/menu-context.js +70 -0
- package/core/lib/components/menu-template/menu-template.js +250 -0
- package/core/lib/components/menu-template/menu-template.scss +9 -0
- package/core/lib/components/modal-search/modal-search.js +153 -0
- package/core/lib/components/modal-search/modal-search.scss +79 -0
- package/core/lib/components/modal-wrapper/modal-manager.js +16 -0
- package/core/lib/components/modal-wrapper/modal-wrapper.js +108 -0
- package/core/lib/components/modal-wrapper/modal-wrapper.scss +14 -0
- package/core/lib/components/notice-board/notice-board.js +132 -0
- package/core/lib/components/notice-board/notice-board.scss +65 -0
- package/core/lib/components/page-container/page-container.js +55 -0
- package/core/lib/components/page-container/page-container.scss +8 -0
- package/core/lib/components/page-header/page-header.js +23 -0
- package/core/lib/components/page-header/page-header.scss +18 -0
- package/core/lib/components/pdf-viewer/pdf-viewer.js +56 -0
- package/core/lib/components/portlet-table/components/table-actions/table-actions.js +58 -0
- package/core/lib/components/portlet-table/components/table-actions/table-actions.scss +1 -0
- package/core/lib/components/portlet-table/components/table-data/table-data.js +107 -0
- package/core/lib/components/portlet-table/components/table-data/table-data.scss +0 -0
- package/core/lib/components/portlet-table/portlet-table.js +63 -0
- package/core/lib/components/portlet-table/portlet-table.scss +90 -0
- package/core/lib/components/progress-bar/progress-bar.js +58 -0
- package/core/lib/components/progress-bar/progress-bar.scss +15 -0
- package/core/lib/components/request-form/request-form.js +110 -0
- package/core/lib/components/request-form/request-form.scss +0 -0
- package/core/lib/components/root-application/root-application.js +70 -0
- package/core/lib/components/rupee/rupee.js +14 -0
- package/core/lib/components/script-input/script-input.js +169 -0
- package/core/lib/components/script-input/script-input.scss +8 -0
- package/core/lib/components/sidemenu/animations.js +52 -0
- package/core/lib/components/sidemenu/sidemenu.js +617 -0
- package/core/lib/components/sidemenu/sidemenu.scss +264 -0
- package/core/lib/components/spotlight-search/spotlight-search.component.js +636 -0
- package/core/lib/components/spotlight-search/spotlight-search.component.scss +78 -0
- package/core/lib/components/table-wrapper/table-wrapper.js +136 -0
- package/core/lib/components/table-wrapper/table-wrapper.scss +72 -0
- package/core/lib/components/ui_elements/Loader.js +13 -0
- package/core/lib/components/ui_elements/Notify.js +13 -0
- package/core/lib/components/ui_elements/PlaceHolder.js +34 -0
- package/core/lib/components/web-camera/web-camera.js +162 -0
- package/core/lib/components/web-camera/web-camera.scss +28 -0
- package/core/lib/core.md +9 -0
- package/core/lib/elements/Elements.md +3 -0
- package/core/lib/elements/basic/LoggedUserRedirect.js +21 -0
- package/core/lib/elements/basic/PrivateRoute.js +16 -0
- package/core/lib/elements/basic/button/Button.md +43 -0
- package/core/lib/elements/basic/button/button.js +170 -0
- package/core/lib/elements/basic/button/button.scss +0 -0
- package/core/lib/elements/basic/card/Card.md +15 -0
- package/core/lib/elements/basic/card/card.js +40 -0
- package/core/lib/elements/basic/card/card.scss +14 -0
- package/core/lib/elements/basic/checkbox/checkbox.js +23 -0
- package/core/lib/elements/basic/col/col.js +16 -0
- package/core/lib/elements/basic/copy-to-clipboard/Readme.md +40 -0
- package/core/lib/elements/basic/copy-to-clipboard/copy-to-clipboard.js +62 -0
- package/core/lib/elements/basic/country-phone-input/Readme.md +98 -0
- package/core/lib/elements/basic/country-phone-input/country-phone-input.js +107 -0
- package/core/lib/elements/basic/country-phone-input/phone-input.scss +62 -0
- package/core/lib/elements/basic/datepicker/datepicker.js +33 -0
- package/core/lib/elements/basic/dragabble-wrapper/draggable-wrapper.js +61 -0
- package/core/lib/elements/basic/empty/empty.js +15 -0
- package/core/lib/elements/basic/fingerprint-protrected/fingerprint-protected.js +118 -0
- package/core/lib/elements/basic/fingerprint-protrected/fingerprint-protected.scss +10 -0
- package/core/lib/elements/basic/form/Readme.md +0 -0
- package/core/lib/elements/basic/form/form.js +70 -0
- package/core/lib/elements/basic/form/form.scss +4 -0
- package/core/lib/elements/basic/image/image.js +45 -0
- package/core/lib/elements/basic/image/image.scss +17 -0
- package/core/lib/elements/basic/image/readme.md +26 -0
- package/core/lib/elements/basic/image-viewer/image-viewer.js +109 -0
- package/core/lib/elements/basic/image-viewer/image-viewer.scss +8 -0
- package/core/lib/elements/basic/input/input.js +81 -0
- package/core/lib/elements/basic/input/readme.md +77 -0
- package/core/lib/elements/basic/json-input/json-input.js +51 -0
- package/core/lib/elements/basic/menu-dashboard/menu-dashboard.js +216 -0
- package/core/lib/elements/basic/menu-dashboard/menu-dashboard.scss +28 -0
- package/core/lib/elements/basic/modal/modal.js +64 -0
- package/core/lib/elements/basic/modal/readme.md +62 -0
- package/core/lib/elements/basic/popconfirm/popconfirm.js +18 -0
- package/core/lib/elements/basic/popover/popover.js +13 -0
- package/core/lib/elements/basic/radio/radio.js +18 -0
- package/core/lib/elements/basic/rangepicker/rangepicker.js +51 -0
- package/core/lib/elements/basic/rangepicker/rangepicker.scss +18 -0
- package/core/lib/elements/basic/rangepicker/readme.md +82 -0
- package/core/lib/elements/basic/reference-select/readme.md +19 -0
- package/core/lib/elements/basic/reference-select/reference-select.js +337 -0
- package/core/lib/elements/basic/row/row.js +16 -0
- package/core/lib/elements/basic/select/select.js +47 -0
- package/core/lib/elements/basic/select-box/readme.md +53 -0
- package/core/lib/elements/basic/select-box/select-box.js +63 -0
- package/core/lib/elements/basic/skeleton/readme.md +35 -0
- package/core/lib/elements/basic/skeleton/skeleton.js +36 -0
- package/core/lib/elements/basic/skeleton/skeleton.scss +53 -0
- package/core/lib/elements/basic/space/space.js +13 -0
- package/core/lib/elements/basic/switch/readme.md +29 -0
- package/core/lib/elements/basic/switch/switch.js +58 -0
- package/core/lib/elements/basic/tab/tab.js +15 -0
- package/core/lib/elements/basic/table/readme.md +9 -0
- package/core/lib/elements/basic/table/table.js +100 -0
- package/core/lib/elements/basic/table/table.scss +0 -0
- package/core/lib/elements/basic/tag/tag.js +63 -0
- package/core/lib/elements/basic/tag/tag.scss +3 -0
- package/core/lib/elements/basic/timeline/timeline.js +14 -0
- package/core/lib/elements/basic/title/readme.md +20 -0
- package/core/lib/elements/basic/title/title.js +38 -0
- package/core/lib/elements/basic/title/title.scss +0 -0
- package/core/lib/elements/basic/user-search/user-search.js +192 -0
- package/core/lib/elements/complex/barcode/barcode.js +27 -0
- package/core/lib/elements/complex/bargraph/bar-graph.js +262 -0
- package/core/lib/elements/complex/basic-table/basic-table.js +111 -0
- package/core/lib/elements/complex/basic-table/basic-table.scss +4 -0
- package/core/lib/elements/complex/date-display/date-display.js +37 -0
- package/core/lib/elements/complex/error-boundary/error-boundary.js +29 -0
- package/core/lib/elements/complex/google-location-input/map-container-library-load.js +93 -0
- package/core/lib/elements/complex/google-map/google-map.js +230 -0
- package/core/lib/elements/complex/google-map/google-map.scss +13 -0
- package/core/lib/elements/complex/line-graph/line-graph.js +108 -0
- package/core/lib/elements/complex/location-search-input/location-search-input.js +100 -0
- package/core/lib/elements/complex/maps/maps.js +0 -0
- package/core/lib/elements/complex/pie-chart/pie-chart.js +203 -0
- package/core/lib/elements/complex/qr-code/qr-code.js +27 -0
- package/core/lib/elements/complex/qrscanner/qrscanner.js +57 -0
- package/core/lib/elements/complex/search-debounce/search-debounce.js +37 -0
- package/core/lib/elements/complex/statistic-card/dashboard-statistic-card.js +76 -0
- package/core/lib/elements/complex/statistic-card/statistic-card.js +28 -0
- package/core/lib/elements/index.js +226 -0
- package/core/lib/hooks/device-detect.js +26 -0
- package/core/lib/hooks/index.js +19 -0
- package/core/lib/hooks/use-location.js +33 -0
- package/core/lib/hooks/use-window-size.js +34 -0
- package/core/lib/i18n.js +70 -0
- package/core/lib/index.js +106 -0
- package/core/lib/introduction.md +74 -0
- package/core/lib/js-styleguide.md +4112 -0
- package/core/lib/models/actions/actions.js +128 -0
- package/core/lib/models/actions/components/action-detail/action-detail.js +190 -0
- package/core/lib/models/actions/components/action-detail/action-detail.scss +0 -0
- package/core/lib/models/actions/components/custom-actions/custom-actions.js +186 -0
- package/core/lib/models/actions/components/custom-actions/custom-actions.scss +0 -0
- package/core/lib/models/attachments/attachments.js +231 -0
- package/core/lib/models/base-loader.js +99 -0
- package/core/lib/models/base.js +716 -0
- package/core/lib/models/branches/branches.js +125 -0
- package/core/lib/models/checklists/checklists.js +115 -0
- package/core/lib/models/columns/columns.js +169 -0
- package/core/lib/models/columns/components/columns-add/columns-add.js +172 -0
- package/core/lib/models/columns/components/columns-add/columns-add.scss +0 -0
- package/core/lib/models/comments/comments.js +213 -0
- package/core/lib/models/departments/departments.js +107 -0
- package/core/lib/models/financial-years/financial_years.js +127 -0
- package/core/lib/models/forms/components/form-creator/form-creator.js +624 -0
- package/core/lib/models/forms/components/form-creator/form-creator.scss +30 -0
- package/core/lib/models/forms/components/form-detail/form-detail.js +224 -0
- package/core/lib/models/forms/components/form-detail/form-detail.scss +0 -0
- package/core/lib/models/forms/forms.js +122 -0
- package/core/lib/models/index.js +203 -0
- package/core/lib/models/invoice-numbers/invoice_numbers.js +204 -0
- package/core/lib/models/lookup-types/components/lookup-detail/lookup-detail.js +145 -0
- package/core/lib/models/lookup-types/components/lookup-detail/lookup-detail.scss +0 -0
- package/core/lib/models/lookup-types/lookup-types.js +113 -0
- package/core/lib/models/lookup-values/components/lookup-values-add/lookup-values-add.js +126 -0
- package/core/lib/models/lookup-values/components/lookup-values-add/lookup-values-add.scss +0 -0
- package/core/lib/models/lookup-values/lookup-values.js +107 -0
- package/core/lib/models/menu-roles/menu-roles.js +127 -0
- package/core/lib/models/menus/components/menu-add/menu-add.js +228 -0
- package/core/lib/models/menus/components/menu-add/menu-add.scss +0 -0
- package/core/lib/models/menus/components/menu-detail/menu-detail.js +170 -0
- package/core/lib/models/menus/components/menu-detail/menu-detail.scss +0 -0
- package/core/lib/models/menus/components/menu-list/menu-list.js +593 -0
- package/core/lib/models/menus/components/menu-list/menu-list.scss +6 -0
- package/core/lib/models/menus/components/menu-roles-add/menu-roles-add.js +183 -0
- package/core/lib/models/menus/components/menu-roles-add/menu-roles-add.scss +0 -0
- package/core/lib/models/menus/menus.js +499 -0
- package/core/lib/models/models/components/model-detail/model-detail.js +137 -0
- package/core/lib/models/models/components/model-detail/model-detail.scss +0 -0
- package/core/lib/models/models/components/models.js +128 -0
- package/core/lib/models/modules/modules.js +204 -0
- package/core/lib/models/outbox/outbox.js +73 -0
- package/core/lib/models/pages/pages.js +107 -0
- package/core/lib/models/permissions/permissions.js +71 -0
- package/core/lib/models/process/components/process-add/process-add.js +181 -0
- package/core/lib/models/process/components/process-add/process-add.scss +0 -0
- package/core/lib/models/process/components/process-dashboard/process-dashboard.js +602 -0
- package/core/lib/models/process/components/process-dashboard/process-dashboard.scss +62 -0
- package/core/lib/models/process/components/process-detail/process-detail.js +140 -0
- package/core/lib/models/process/components/process-detail/process-detail.scss +0 -0
- package/core/lib/models/process/components/process-timeline/process-timeline.js +140 -0
- package/core/lib/models/process/components/task-detail/task-detail.js +240 -0
- package/core/lib/models/process/components/task-detail/task-detail.scss +27 -0
- package/core/lib/models/process/components/task-form/task-form.js +529 -0
- package/core/lib/models/process/components/task-form/task-form.scss +7 -0
- package/core/lib/models/process/components/task-list/task-list.js +221 -0
- package/core/lib/models/process/components/task-list/task-list.scss +14 -0
- package/core/lib/models/process/components/task-overview/task-overview.js +300 -0
- package/core/lib/models/process/components/task-overview/task-overview.scss +0 -0
- package/core/lib/models/process/components/task-overview-legacy/task-overview-legacy.js +192 -0
- package/core/lib/models/process/components/task-overview-legacy/task-overview.scss +0 -0
- package/core/lib/models/process/components/task-routes/task-routes.js +45 -0
- package/core/lib/models/process/components/task-status/task-status.js +176 -0
- package/core/lib/models/process/components/task-status/task-status.scss +11 -0
- package/core/lib/models/process/process.js +781 -0
- package/core/lib/models/process-transactions/process-transactions.js +124 -0
- package/core/lib/models/roles/roles.js +106 -0
- package/core/lib/models/scripts/scripts.js +111 -0
- package/core/lib/models/step-transactions/step-transcations.js +148 -0
- package/core/lib/models/steps/components/step-add/step-add.js +261 -0
- package/core/lib/models/steps/components/step-add/step-add.scss +0 -0
- package/core/lib/models/steps/components/step-detail/step-detail.js +157 -0
- package/core/lib/models/steps/components/step-detail/step-detail.scss +0 -0
- package/core/lib/models/steps/steps.js +357 -0
- package/core/lib/models/user-preferences/user-preferences.js +83 -0
- package/core/lib/models/users/components/user-add/user-add.js +226 -0
- package/core/lib/models/users/components/user-add/user-add.scss +0 -0
- package/core/lib/models/users/users.js +120 -0
- package/core/lib/modules/business/launch-page/launch-page.js +29 -0
- package/core/lib/modules/business/launch-page/launch-page.scss +6 -0
- package/core/lib/modules/business/slots/slots.js +231 -0
- package/core/lib/modules/business/slots/slots.scss +108 -0
- package/core/lib/modules/forms/components/field-customizer/field-customizer.js +139 -0
- package/core/lib/modules/forms/components/field-customizer/field-customizer.scss +0 -0
- package/core/lib/modules/forms/components/field-selector/field-selector.js +157 -0
- package/core/lib/modules/forms/components/field-selector/field-selector.scss +25 -0
- package/core/lib/modules/forms/components/form-display/form-display.js +203 -0
- package/core/lib/modules/forms/components/form-display/form-display.scss +9 -0
- package/core/lib/modules/forms/components/tab-customizer/tab-customizer.js +125 -0
- package/core/lib/modules/forms/components/tab-customizer/tab-customizer.scss +0 -0
- package/core/lib/modules/generic/generic-add/generic-add.js +213 -0
- package/core/lib/modules/generic/generic-add/generic-add.scss +0 -0
- package/core/lib/modules/generic/generic-detail/generic-detail.js +199 -0
- package/core/lib/modules/generic/generic-detail/generic-detail.scss +0 -0
- package/core/lib/modules/generic/generic-edit/generic-edit.js +120 -0
- package/core/lib/modules/generic/generic-edit/generic-edit.scss +0 -0
- package/core/lib/modules/generic/generic-list/ExportReactCSV.js +62 -0
- package/core/lib/modules/generic/generic-list/generic-list.js +705 -0
- package/core/lib/modules/generic/generic-list/generic-list.scss +34 -0
- package/core/lib/modules/generic/generic-upload/generic-upload.js +484 -0
- package/core/lib/modules/generic/generic-upload/generic-upload.scss +0 -0
- package/core/lib/modules/generic/table-settings/table-settings.js +226 -0
- package/core/lib/modules/generic/table-settings/table-settings.scss +37 -0
- package/core/lib/modules/index.js +52 -0
- package/core/lib/modules/modules-routes/module-routes.js +35 -0
- package/core/lib/modules/modules-routes/module-routes.scss +0 -0
- package/core/lib/pages/change-password/change-password.js +211 -0
- package/core/lib/pages/change-password/change-password.scss +76 -0
- package/core/lib/pages/homepage/homepage.js +53 -0
- package/core/lib/pages/index.js +20 -0
- package/core/lib/pages/login/login.js +617 -0
- package/core/lib/pages/login/login.scss +346 -0
- package/core/lib/pages/manage-users/manage-users.js +429 -0
- package/core/lib/pages/manage-users/manage-users.scss +26 -0
- package/core/lib/pages/profile/profile.js +247 -0
- package/core/lib/pages/profile/profile.scss +107 -0
- package/core/lib/pages/profile/theme-config.js +18 -0
- package/core/lib/pages/profile/themes-backup.json +311 -0
- package/core/lib/pages/profile/themes.json +254 -0
- package/core/lib/pages/register/register.js +177 -0
- package/core/lib/pages/register/register.scss +128 -0
- package/core/lib/react-styleguide.md +757 -0
- package/core/lib/utils/api/api.utils.js +188 -0
- package/core/lib/utils/api/readme.md +426 -0
- package/core/lib/utils/async.js +36 -0
- package/core/lib/utils/common/common.utils.js +123 -0
- package/core/lib/utils/common/readme.md +30 -0
- package/core/lib/utils/date/date.utils.js +295 -0
- package/core/lib/utils/date/readme.md +2 -0
- package/core/lib/utils/firebase.support.utils.js +99 -0
- package/core/lib/utils/firebase.utils.js +808 -0
- package/core/lib/utils/form/Form.md +0 -0
- package/core/lib/utils/form/form.utils.js +256 -0
- package/core/lib/utils/generic/generic.utils.js +69 -0
- package/core/lib/utils/http/auth.helper.js +95 -0
- package/core/lib/utils/http/http.utils.js +157 -0
- package/core/lib/utils/http/readme.md +14 -0
- package/core/lib/utils/index.js +46 -0
- package/core/lib/utils/location/location.utils.js +137 -0
- package/core/lib/utils/location/readme.md +18 -0
- package/core/lib/utils/modal.utils.js +16 -0
- package/core/lib/utils/notification.utils.js +35 -0
- package/core/lib/utils/pwa/pwa.utils.js +88 -0
- package/core/lib/utils/script.utils.js +235 -0
- package/core/lib/utils/setting.utils.js +69 -0
- package/core/lib/utils/upload.utils.js +30 -0
- package/core/models/Preference/Preferences.js +46 -0
- package/core/models/base/base.js +399 -0
- package/core/models/base-clone-loader.js +107 -0
- package/core/models/base-clone.js +187 -0
- package/core/models/base-loader.js +97 -0
- package/core/models/core-scripts/core-scripts.js +150 -0
- package/core/models/dashboard/dashboard.js +187 -0
- package/core/models/detail-loader.js +88 -0
- package/core/models/groups.js +82 -0
- package/core/models/index.js +94 -0
- package/core/models/lookup-types/components/lookup-detail/lookup-detail.js +129 -0
- package/core/models/lookup-types/lookup-types.js +96 -0
- package/core/models/lookup-values/components/lookup-values-modal/lookup-values-modal.js +95 -0
- package/core/models/lookup-values/components/lookup-values-modal/lookup-values-modal.scss +0 -0
- package/core/models/lookup-values/lookup-values.js +92 -0
- package/core/models/menu-roles/components/menu-roles-add/menu-roles-add.js +153 -0
- package/core/models/menu-roles/components/menu-roles-add/menu-roles-add.scss +0 -0
- package/core/models/menu-roles/menu-roles.js +158 -0
- package/core/models/menus/components/menu-add/menu-add.js +325 -0
- package/core/models/menus/components/menu-add/menu-add.scss +31 -0
- package/core/models/menus/components/menu-detail/menu-detail.js +263 -0
- package/core/models/menus/components/menu-list/menu-list.js +392 -0
- package/core/models/menus/components/menu-lists/menu-lists.js +429 -0
- package/core/models/menus/components/menu-lists/menu-lists.scss +41 -0
- package/core/models/menus/menus.js +291 -0
- package/core/models/model-columns.js +121 -0
- package/core/models/models/components/model-detail/model-add.js +120 -0
- package/core/models/models/components/model-detail/model-detail.js +133 -0
- package/core/models/models/components/model-detail/model-detail.scss +0 -0
- package/core/models/models/models.js +154 -0
- package/core/models/pages/components/page-add/page-add.js +163 -0
- package/core/models/pages/components/page-add/page-add.scss +31 -0
- package/core/models/pages/components/page-details/page-details.js +210 -0
- package/core/models/pages/components/page-list/page-list.js +248 -0
- package/core/models/pages/pages.js +142 -0
- package/core/models/pages/pages.scss +0 -0
- package/core/models/pages.js +142 -0
- package/core/models/roles/components/role-add/role-add.js +248 -0
- package/core/models/roles/components/role-list/role-list.js +408 -0
- package/core/models/roles/roles.js +188 -0
- package/core/models/user-roles/components/user-roles-add/user-roles-add.js +149 -0
- package/core/models/user-roles/components/user-roles-add/user-roles-add.scss +0 -0
- package/core/models/user-roles/user-roles.js +99 -0
- package/core/models/users/components/user-add/user-add.js +458 -0
- package/core/models/users/components/user-detail/user-detail.js +236 -0
- package/core/models/users/components/user-detail/user-detail.scss +0 -0
- package/core/models/users/components/user-list/user-list.js +397 -0
- package/core/models/users/users.js +185 -0
- package/core/modules/Informations/change-info/change-info.js +618 -0
- package/core/modules/Informations/change-info/change-info.scss +135 -0
- package/core/modules/dashboard/components/dashboard-card/animations.js +65 -0
- package/core/modules/dashboard/components/dashboard-card/dashboard-card.js +197 -0
- package/core/modules/dashboard/components/dashboard-card/menu-dashboard-card.js +430 -0
- package/core/modules/dashboard/components/dashboard-card/menu-dashboard-card.scss +60 -0
- package/core/modules/dashboard/components/pop-query-dashboard/pop-query-dashboard.js +66 -0
- package/core/modules/generic/components/generic-add/generic-add.js +121 -0
- package/core/modules/generic/components/generic-add/generic-add.scss +13 -0
- package/core/modules/generic/components/generic-add-modal/generic-add-modal.js +125 -0
- package/core/modules/generic/components/generic-add-modal/generic-add-modal.scss +13 -0
- package/core/modules/generic/components/generic-detail/generic-detail.js +184 -0
- package/core/modules/generic/components/generic-detail/generic-detail.scss +25 -0
- package/core/modules/generic/components/generic-edit/generic-edit.js +123 -0
- package/core/modules/generic/components/generic-edit/generic-edit.scss +0 -0
- package/core/modules/generic/components/generic-list/generic-list.js +335 -0
- package/core/modules/generic/components/generic-list/generic-list.scss +35 -0
- package/core/modules/index.js +54 -0
- package/core/modules/module-routes/module-routes.js +37 -0
- package/core/modules/module-routes/module-routes.scss +0 -0
- package/core/modules/reporting/components/reporting-dashboard/reporting-dashboard.js +1101 -0
- package/core/modules/reporting/components/reporting-dashboard/reporting-dashboard.scss +171 -0
- package/core/pages/homepage-api/homepage-api.js +106 -0
- package/core/pages/homepage-api/homepage-api.scss +234 -0
- package/core/pages/homepage-api/menu-dashboard.js +169 -0
- package/core/pages/homepage-api/menu-dashboard.scss +12 -0
- package/core/translation.json +54 -0
- package/core/translations.json +20 -0
- package/core/utils/script.utils.js +130 -0
- package/core/utils/settings.utils.js +26 -0
- package/eslint.config.mjs +79 -0
- package/index.js +36 -0
- package/package.json +118 -0
- package/tsconfig.json +27 -0
- package/webpack.config.js +174 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file QrScanner
|
|
3
|
+
* @description
|
|
4
|
+
* This component handles real-time QR code scanning using the device camera.
|
|
5
|
+
* It uses the `html5-qrcode` library to initialize the camera and process QR code data.
|
|
6
|
+
* When a valid QR code is detected, the scanner stops automatically,
|
|
7
|
+
* and callback functions are invoked to handle the scanned result and close the scanner.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import React, { useEffect, useRef } from 'react';
|
|
11
|
+
import { Html5Qrcode } from 'html5-qrcode';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* QrScanner Component
|
|
15
|
+
*
|
|
16
|
+
* @component
|
|
17
|
+
* @param {Function} onScanSuccess - Callback function to handle the scanned QR code value.
|
|
18
|
+
* @param {Function} onClose - Callback function triggered when the scanner is stopped (can be used for cleanup or redirection).
|
|
19
|
+
*
|
|
20
|
+
* @returns A div element where the camera stream and QR scanning UI will appear.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
const QrScanner = ({ onScanSuccess, onClose }) => {
|
|
24
|
+
const scannerRef = useRef(null);
|
|
25
|
+
const isStopped = useRef(false);
|
|
26
|
+
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
const scanner = new Html5Qrcode('qr-scanner-region');
|
|
29
|
+
scannerRef.current = scanner;
|
|
30
|
+
|
|
31
|
+
scanner
|
|
32
|
+
.start({ facingMode: 'environment' }, { fps: 10, qrbox: 250 }, async (decodedText) => {
|
|
33
|
+
if (!isStopped.current) {
|
|
34
|
+
isStopped.current = true;
|
|
35
|
+
await scanner.stop(); // Ensure it's stopped only once
|
|
36
|
+
onScanSuccess(decodedText);
|
|
37
|
+
onClose(); // Let parent control redirection
|
|
38
|
+
}
|
|
39
|
+
})
|
|
40
|
+
.catch((err) => {
|
|
41
|
+
console.error('QR Scan Error:', err);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
return () => {
|
|
45
|
+
if (!isStopped.current) {
|
|
46
|
+
isStopped.current = true;
|
|
47
|
+
scanner.stop().catch((e) => {
|
|
48
|
+
// console.warn("Stop error (likely already stopped):", e.message);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
}, [onScanSuccess, onClose]);
|
|
53
|
+
|
|
54
|
+
return <div id="qr-scanner-region" style={{ width: '100%', height: 300 }} />;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export default QrScanner;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author Hasna
|
|
3
|
+
* Component to debounce api without debounce function
|
|
4
|
+
*/
|
|
5
|
+
import React, { useState, useEffect } from 'react'
|
|
6
|
+
|
|
7
|
+
import { Input } from 'antd'
|
|
8
|
+
|
|
9
|
+
const { Search } = Input
|
|
10
|
+
|
|
11
|
+
export default function SearchDebounce({ value, onChange }) {
|
|
12
|
+
// To store query
|
|
13
|
+
const [query, setQuery] = useState(value)
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* To avoid repeated call of Api, function will be triggered whenever query changes
|
|
17
|
+
*/
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
const getData = setTimeout(() => {
|
|
20
|
+
// Api that has to be called at repeated intervals
|
|
21
|
+
onChange(query)
|
|
22
|
+
}, 900)
|
|
23
|
+
|
|
24
|
+
return () => clearTimeout(getData)
|
|
25
|
+
}, [query])
|
|
26
|
+
|
|
27
|
+
return (
|
|
28
|
+
// Component to search query
|
|
29
|
+
<Search
|
|
30
|
+
placeholder="Enter Search Value"
|
|
31
|
+
value={query}
|
|
32
|
+
onChange={(e) => {
|
|
33
|
+
setQuery(e.target.value)
|
|
34
|
+
}}
|
|
35
|
+
/>
|
|
36
|
+
)
|
|
37
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DashboardStatisticCard
|
|
3
|
+
* Renders a title and a list of key–value stats.
|
|
4
|
+
* Values are formatted as currency using formatMoneyGlobal().
|
|
5
|
+
*/
|
|
6
|
+
export default function DashboardStatisticCard({ result, title, ...props }) {
|
|
7
|
+
if (!result) return null;
|
|
8
|
+
|
|
9
|
+
// Extract stat labels
|
|
10
|
+
const keys = Object.keys(result);
|
|
11
|
+
|
|
12
|
+
return (
|
|
13
|
+
<div style={styles.container}>
|
|
14
|
+
{title && <span style={styles.title}>{title}</span>}
|
|
15
|
+
|
|
16
|
+
{keys.map((key,index) => (
|
|
17
|
+
<div
|
|
18
|
+
key={key}
|
|
19
|
+
style={{
|
|
20
|
+
...styles.row,
|
|
21
|
+
borderBottom: index === keys.length - 1 ? 'none' : '1px solid #f0f0f0',
|
|
22
|
+
}}
|
|
23
|
+
>
|
|
24
|
+
<span style={styles.label}>{key}</span>
|
|
25
|
+
<span style={styles.value}>{formatMoneyGlobal(result[key])}</span>
|
|
26
|
+
</div>
|
|
27
|
+
))}
|
|
28
|
+
</div>
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* formatMoneyGlobal
|
|
34
|
+
* Converts any numeric value to "1,234.56" format.
|
|
35
|
+
* Non-numeric values are returned unchanged.
|
|
36
|
+
*/
|
|
37
|
+
export const formatMoneyGlobal = (value) => {
|
|
38
|
+
if (value == null || value === '') return '0.00';
|
|
39
|
+
|
|
40
|
+
const num = Number(value);
|
|
41
|
+
if (isNaN(num)) return value;
|
|
42
|
+
|
|
43
|
+
return num.toLocaleString('en-US', {
|
|
44
|
+
minimumFractionDigits: 2,
|
|
45
|
+
maximumFractionDigits: 2,
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
// Inline styles
|
|
50
|
+
const styles = {
|
|
51
|
+
container: {
|
|
52
|
+
display: 'flex',
|
|
53
|
+
flexDirection: 'column',
|
|
54
|
+
gap: '10px',
|
|
55
|
+
cursor: 'pointer',
|
|
56
|
+
width: '100%',
|
|
57
|
+
padding: '1px',
|
|
58
|
+
},
|
|
59
|
+
title: {
|
|
60
|
+
fontSize: '15px',
|
|
61
|
+
fontWeight: 600,
|
|
62
|
+
marginBottom: '4px',
|
|
63
|
+
},
|
|
64
|
+
row: {
|
|
65
|
+
display: 'flex',
|
|
66
|
+
justifyContent: 'space-between',
|
|
67
|
+
paddingBottom: '4px',
|
|
68
|
+
borderBottom: '1px solid #f0f0f0',
|
|
69
|
+
},
|
|
70
|
+
label: {
|
|
71
|
+
fontSize: '14px',
|
|
72
|
+
},
|
|
73
|
+
value: {
|
|
74
|
+
fontSize: '15px',
|
|
75
|
+
},
|
|
76
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
import React from "react";
|
|
5
|
+
|
|
6
|
+
import { Statistic } from "antd";
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Basic Tabular
|
|
12
|
+
*
|
|
13
|
+
* @param {*} param0
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
export default function StatisticCard({ result, ...props }) {
|
|
17
|
+
return (
|
|
18
|
+
<>
|
|
19
|
+
{Object.keys(result).map((key) => {
|
|
20
|
+
return (
|
|
21
|
+
<>
|
|
22
|
+
<Statistic title={key} value={result[key]} {...props} />
|
|
23
|
+
</>
|
|
24
|
+
);
|
|
25
|
+
})}
|
|
26
|
+
</>
|
|
27
|
+
);
|
|
28
|
+
}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* All the basic elements of the core library
|
|
4
|
+
*
|
|
5
|
+
*
|
|
6
|
+
* We are creating wrappers for all existing components so that
|
|
7
|
+
* we can build a design system .
|
|
8
|
+
*
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
// Typography elements
|
|
13
|
+
|
|
14
|
+
import Title from './basic/title/title';
|
|
15
|
+
|
|
16
|
+
// Typography elements Ends
|
|
17
|
+
|
|
18
|
+
// Loaders
|
|
19
|
+
|
|
20
|
+
import Skeleton from './basic/skeleton/skeleton';
|
|
21
|
+
|
|
22
|
+
// Loaders Ends
|
|
23
|
+
|
|
24
|
+
// Buttons
|
|
25
|
+
|
|
26
|
+
// Buttons Ends
|
|
27
|
+
|
|
28
|
+
// Table
|
|
29
|
+
|
|
30
|
+
import BasicTable from './complex/basic-table/basic-table';
|
|
31
|
+
|
|
32
|
+
import Table from './basic/table/table';
|
|
33
|
+
|
|
34
|
+
import Modal from './basic/modal/modal';
|
|
35
|
+
|
|
36
|
+
import Select from './basic/select/select';
|
|
37
|
+
|
|
38
|
+
import Tag from './basic/tag/tag';
|
|
39
|
+
|
|
40
|
+
// Table Ends
|
|
41
|
+
|
|
42
|
+
// Card
|
|
43
|
+
|
|
44
|
+
import Card from './basic/card/card';
|
|
45
|
+
|
|
46
|
+
// Card Ends
|
|
47
|
+
|
|
48
|
+
// Image Starts
|
|
49
|
+
import Image from './basic/image/image';
|
|
50
|
+
|
|
51
|
+
import ImageWrapper from '../components/image-wrapper/image-wrapper';
|
|
52
|
+
|
|
53
|
+
// import { PdfViewer } from '../components';
|
|
54
|
+
|
|
55
|
+
// Image Ends
|
|
56
|
+
|
|
57
|
+
// Modal
|
|
58
|
+
|
|
59
|
+
// Modal Ends
|
|
60
|
+
|
|
61
|
+
// Form Elements
|
|
62
|
+
|
|
63
|
+
import Form from './basic/form/form';
|
|
64
|
+
|
|
65
|
+
import InputComponent from './basic/input/input';
|
|
66
|
+
|
|
67
|
+
import FileUpload from '../components/file-upload/file-upload';
|
|
68
|
+
|
|
69
|
+
import CountryPhoneInput from './basic/country-phone-input/country-phone-input';
|
|
70
|
+
|
|
71
|
+
// Select Box
|
|
72
|
+
|
|
73
|
+
import SelectBox from './basic/select-box/select-box';
|
|
74
|
+
|
|
75
|
+
import ReferenceSelect from './basic/reference-select/reference-select';
|
|
76
|
+
|
|
77
|
+
import DatePicker from './basic/datepicker/datepicker';
|
|
78
|
+
|
|
79
|
+
import DraggableWrapper from './basic/dragabble-wrapper/draggable-wrapper';
|
|
80
|
+
// import SelectBox from "./basic/select-box/select-box";
|
|
81
|
+
|
|
82
|
+
// import ReferenceSelect from "./basic/reference-select/reference-select";
|
|
83
|
+
|
|
84
|
+
// Select Box Ends
|
|
85
|
+
|
|
86
|
+
import Switch from './basic/switch/switch';
|
|
87
|
+
|
|
88
|
+
import Button from './basic/button/button';
|
|
89
|
+
|
|
90
|
+
import RangePicker from './basic/rangepicker/rangepicker';
|
|
91
|
+
|
|
92
|
+
import Checkbox from './basic/checkbox/checkbox';
|
|
93
|
+
|
|
94
|
+
import JSONInput from './basic/json-input/json-input';
|
|
95
|
+
|
|
96
|
+
// Form Elements Ends
|
|
97
|
+
|
|
98
|
+
// Graph Elements
|
|
99
|
+
|
|
100
|
+
import PieChart from './complex/pie-chart/pie-chart';
|
|
101
|
+
|
|
102
|
+
import LineGraph from './complex/line-graph/line-graph';
|
|
103
|
+
|
|
104
|
+
import BarGraph from './complex/bargraph/bar-graph';
|
|
105
|
+
|
|
106
|
+
import StatisticCard from './complex/statistic-card/statistic-card';
|
|
107
|
+
|
|
108
|
+
// Graph Elements Ends
|
|
109
|
+
|
|
110
|
+
// Maps
|
|
111
|
+
|
|
112
|
+
import GoogleMap from './complex/google-map/google-map';
|
|
113
|
+
|
|
114
|
+
// import MapContainer from './complex/google-location-input/map-container-library-load'
|
|
115
|
+
|
|
116
|
+
import LocationSearchInput from './complex/location-search-input/location-search-input';
|
|
117
|
+
|
|
118
|
+
// Maps Ends
|
|
119
|
+
|
|
120
|
+
// Interfaces
|
|
121
|
+
|
|
122
|
+
import CopyToClipBoard from './basic/copy-to-clipboard/copy-to-clipboard';
|
|
123
|
+
|
|
124
|
+
import QRcode from './complex/qr-code/qr-code';
|
|
125
|
+
|
|
126
|
+
import Barcode from './complex/barcode/barcode';
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
import QrScanner from './complex/qrscanner/qrscanner';
|
|
130
|
+
import Popconfirm from './basic/popconfirm/popconfirm';
|
|
131
|
+
|
|
132
|
+
// Interfaces Ends
|
|
133
|
+
|
|
134
|
+
//import GoogleApiWrapper from 'google-maps-react';
|
|
135
|
+
// import ImageViewer from './basic/image-viewer/image-viewer';
|
|
136
|
+
// import ScriptInput from '../components/script-input/script-input';
|
|
137
|
+
// import PopQueryDashboard from './complex/pop-query-dashboard';
|
|
138
|
+
|
|
139
|
+
import UserSearch from './basic/user-search/user-search';
|
|
140
|
+
|
|
141
|
+
import Radio from './basic/radio/radio';
|
|
142
|
+
|
|
143
|
+
import Popover from './basic/popover/popover';
|
|
144
|
+
|
|
145
|
+
import Tabs from './basic/tab/tab';
|
|
146
|
+
|
|
147
|
+
import Empty from './basic/empty/empty';
|
|
148
|
+
|
|
149
|
+
import Space from './basic/space/space';
|
|
150
|
+
|
|
151
|
+
import Row from './basic/row/row';
|
|
152
|
+
|
|
153
|
+
import Col from './basic/col/col';
|
|
154
|
+
|
|
155
|
+
import TimeLine from './basic/timeline/timeline';
|
|
156
|
+
|
|
157
|
+
import MenuDashBoardComponent from './basic/menu-dashboard/menu-dashboard';
|
|
158
|
+
|
|
159
|
+
// import message from './basic/message/message'
|
|
160
|
+
// import UserSearch from "./basic/user-search/user-search";
|
|
161
|
+
|
|
162
|
+
export {
|
|
163
|
+
// Typography Elements
|
|
164
|
+
Title,
|
|
165
|
+
// Typography Elements Ends
|
|
166
|
+
// Loaders
|
|
167
|
+
Skeleton,
|
|
168
|
+
TimeLine,
|
|
169
|
+
Row,
|
|
170
|
+
Col,
|
|
171
|
+
Tabs,
|
|
172
|
+
Empty,
|
|
173
|
+
Space,
|
|
174
|
+
// message,
|
|
175
|
+
|
|
176
|
+
// Loaders Ends
|
|
177
|
+
|
|
178
|
+
// Form Elements
|
|
179
|
+
Form,
|
|
180
|
+
DatePicker,
|
|
181
|
+
DraggableWrapper,
|
|
182
|
+
Tag,
|
|
183
|
+
Popconfirm,
|
|
184
|
+
Popover,
|
|
185
|
+
|
|
186
|
+
// Form Elements Ends
|
|
187
|
+
Select,
|
|
188
|
+
SelectBox,
|
|
189
|
+
ReferenceSelect,
|
|
190
|
+
Switch,
|
|
191
|
+
Modal,
|
|
192
|
+
Button,
|
|
193
|
+
Radio,
|
|
194
|
+
Card,
|
|
195
|
+
Table,
|
|
196
|
+
QRcode,
|
|
197
|
+
QrScanner,
|
|
198
|
+
Barcode,
|
|
199
|
+
RangePicker,
|
|
200
|
+
JSONInput,
|
|
201
|
+
BasicTable,
|
|
202
|
+
LineGraph,
|
|
203
|
+
BarGraph,
|
|
204
|
+
StatisticCard,
|
|
205
|
+
// SelectBox,
|
|
206
|
+
// PopQueryDashboard,
|
|
207
|
+
CopyToClipBoard,
|
|
208
|
+
LocationSearchInput,
|
|
209
|
+
//GoogleApiWrapper,
|
|
210
|
+
// MapContainer,
|
|
211
|
+
PieChart,
|
|
212
|
+
GoogleMap,
|
|
213
|
+
InputComponent,
|
|
214
|
+
CountryPhoneInput,
|
|
215
|
+
// PdfViewer,
|
|
216
|
+
|
|
217
|
+
// ImageViewer
|
|
218
|
+
Image,
|
|
219
|
+
FileUpload,
|
|
220
|
+
ImageWrapper,
|
|
221
|
+
UserSearch,
|
|
222
|
+
Checkbox,
|
|
223
|
+
MenuDashBoardComponent,
|
|
224
|
+
|
|
225
|
+
// ScriptInput
|
|
226
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// utils/useDeviceDetect.js
|
|
2
|
+
import React, { useEffect, useState } from "react";
|
|
3
|
+
|
|
4
|
+
export default function useDeviceDetect() {
|
|
5
|
+
const [isMobile, setMobile] = useState(false);
|
|
6
|
+
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
|
|
9
|
+
// const userAgent =
|
|
10
|
+
// typeof window.navigator === "undefined" ? "" : navigator.userAgent;
|
|
11
|
+
|
|
12
|
+
// const mobile = Boolean(
|
|
13
|
+
// userAgent.match(
|
|
14
|
+
// /Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile|WPDesktop/i
|
|
15
|
+
// )
|
|
16
|
+
// );
|
|
17
|
+
|
|
18
|
+
let mobile = ((window.innerWidth <= 800))
|
|
19
|
+
// || (window.innerHeight <= 700))
|
|
20
|
+
|
|
21
|
+
setMobile(mobile);
|
|
22
|
+
|
|
23
|
+
}, []);
|
|
24
|
+
|
|
25
|
+
return { isMobile };
|
|
26
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
import useDeviceDetect from './device-detect';
|
|
5
|
+
|
|
6
|
+
import useWindowSize from './use-window-size';
|
|
7
|
+
|
|
8
|
+
import useFormUtils from './../utils/form/form.utils';
|
|
9
|
+
import useLocation from './use-location';
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
export {
|
|
13
|
+
useDeviceDetect,
|
|
14
|
+
useWindowSize,
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
useFormUtils,
|
|
18
|
+
useLocation
|
|
19
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
|
|
2
|
+
import React, { useEffect } from 'react';
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Hook will listen to location change and trigger the listener
|
|
7
|
+
*
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
10
|
+
export default function useLocation() {
|
|
11
|
+
|
|
12
|
+
const [path, setPath] = React.useState(window.location.pathname);
|
|
13
|
+
|
|
14
|
+
const listenToPopstate = () => {
|
|
15
|
+
|
|
16
|
+
const winPath = window.location.pathname;
|
|
17
|
+
|
|
18
|
+
setPath(winPath);
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
|
|
23
|
+
window.addEventListener("popstate", listenToPopstate);
|
|
24
|
+
|
|
25
|
+
return () => {
|
|
26
|
+
window.removeEventListener("popstate", listenToPopstate);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
}, []);
|
|
30
|
+
|
|
31
|
+
return path;
|
|
32
|
+
|
|
33
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
import React, { useState, useEffect, useRef } from 'react';
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
// Hook
|
|
7
|
+
export default function useWindowSize() {
|
|
8
|
+
|
|
9
|
+
// Initialize state with undefined width/height so server and client renders match
|
|
10
|
+
// Learn more here: https://joshwcomeau.com/react/the-perils-of-rehydration/
|
|
11
|
+
const [windowSize, setWindowSize] = useState({
|
|
12
|
+
width: undefined,
|
|
13
|
+
height: undefined,
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
// Handler to call on window resize
|
|
18
|
+
function handleResize() {
|
|
19
|
+
// Set window width/height to state
|
|
20
|
+
setWindowSize({
|
|
21
|
+
width: window.innerWidth,
|
|
22
|
+
height: window.innerHeight,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
// Add event listener
|
|
26
|
+
window.addEventListener("resize", handleResize);
|
|
27
|
+
// Call handler right away so state gets updated with initial window size
|
|
28
|
+
handleResize();
|
|
29
|
+
// Remove event listener on cleanup
|
|
30
|
+
return () => window.removeEventListener("resize", handleResize);
|
|
31
|
+
}, []); // Empty array ensures that effect is only run on mount
|
|
32
|
+
return windowSize;
|
|
33
|
+
}
|
|
34
|
+
|
package/core/lib/i18n.js
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Component to initialize i18n
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import i18n from 'i18next';
|
|
6
|
+
import { initReactI18next } from 'react-i18next';
|
|
7
|
+
import LanguageDetector from 'i18next-browser-languagedetector';
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
i18n
|
|
11
|
+
// detect user language
|
|
12
|
+
// learn more: https://github.com/i18next/i18next-browser-languageDetector
|
|
13
|
+
.use(LanguageDetector)
|
|
14
|
+
// pass the i18n instance to react-i18next.
|
|
15
|
+
.use(initReactI18next)
|
|
16
|
+
// init i18next
|
|
17
|
+
// for all options read: https://www.i18next.com/overview/configuration-options
|
|
18
|
+
.init({
|
|
19
|
+
debug: false,
|
|
20
|
+
useSuspense: true,
|
|
21
|
+
lng: localStorage.selectedLanguage || process.env.REACT_APP_LANGUAGE || 'en',
|
|
22
|
+
fallbackLng: 'en',
|
|
23
|
+
interpolation: {
|
|
24
|
+
escapeValue: false, // not needed for react as it escapes by default
|
|
25
|
+
},
|
|
26
|
+
resources: {
|
|
27
|
+
en: {
|
|
28
|
+
translation: {
|
|
29
|
+
description: {
|
|
30
|
+
part1: 'Edit <1>src/App.js</1> and save to reload.',
|
|
31
|
+
part2: 'Learn React',
|
|
32
|
+
part3: "Download",
|
|
33
|
+
part4: "New Appointment"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
hi: {
|
|
38
|
+
translation: {
|
|
39
|
+
description: {
|
|
40
|
+
part1: 'Ändere <1>src/App.js</1> und speichere um neu zu laden.',
|
|
41
|
+
part2: 'Lerne React',
|
|
42
|
+
part3: "डाउनलोड करना",
|
|
43
|
+
part4: "नव नियुक्ति"
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
ja: {
|
|
48
|
+
translation: {
|
|
49
|
+
description: {
|
|
50
|
+
part1: 'ثثثثثثثثثثثث',
|
|
51
|
+
part2: 'ثثثثثثثثثثثث',
|
|
52
|
+
part3: "ダウンロード",
|
|
53
|
+
part4: "新しい予定"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
ma: {
|
|
58
|
+
translation: {
|
|
59
|
+
description: {
|
|
60
|
+
part1: 'afspraken',
|
|
61
|
+
part2: 'ثثثثثثثثثثثث',
|
|
62
|
+
part3: "татаж авах",
|
|
63
|
+
part4: "Шинэ уулзалт"
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
export default i18n;
|