@atomsolution/sdk-merchant 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +93 -0
- package/dist/App.d.ts +3 -0
- package/dist/assets/locales/en/common.json.d.ts +18 -0
- package/dist/assets/locales/en/digistore-id.json.d.ts +32 -0
- package/dist/assets/locales/en/download-sample.json.d.ts +59 -0
- package/dist/assets/locales/en/file.json.d.ts +48 -0
- package/dist/assets/locales/en/form.json.d.ts +85 -0
- package/dist/assets/locales/en/merchant-batch-create-form.json.d.ts +92 -0
- package/dist/assets/locales/en/table.json.d.ts +36 -0
- package/dist/assets/locales/vi/common.json.d.ts +18 -0
- package/dist/assets/locales/vi/digistore-id.json.d.ts +32 -0
- package/dist/assets/locales/vi/download-sample.json.d.ts +59 -0
- package/dist/assets/locales/vi/file.json.d.ts +48 -0
- package/dist/assets/locales/vi/form.json.d.ts +85 -0
- package/dist/assets/locales/vi/merchant-batch-create-form.json.d.ts +92 -0
- package/dist/assets/locales/vi/table.json.d.ts +35 -0
- package/dist/bvbLogo.png +0 -0
- package/dist/components/MerchantBatchCreateForm/DownloadSampleFile.d.ts +1 -0
- package/dist/components/MerchantBatchCreateForm/FileUpload/fileUploadButton.d.ts +6 -0
- package/dist/components/MerchantBatchCreateForm/FileUpload/sheetDropDown.d.ts +7 -0
- package/dist/components/MerchantBatchCreateForm/Layout/Layout.d.ts +12 -0
- package/dist/components/MerchantBatchCreateForm/ProductInfoPreview/ProductPreviewTable/CategoryCell.d.ts +8 -0
- package/dist/components/MerchantBatchCreateForm/ProductInfoPreview/ProductPreviewTable/UploadImageCell.d.ts +9 -0
- package/dist/components/MerchantBatchCreateForm/ProductInfoPreview/ProductPreviewTable/index.d.ts +8 -0
- package/dist/components/MerchantBatchCreateForm/ProductInfoPreview/index.d.ts +2 -0
- package/dist/components/MerchantBatchCreateForm/fieldMappingPopup.d.ts +8 -0
- package/dist/components/MerchantBatchCreateForm/fileUploadTab.d.ts +1 -0
- package/dist/components/MerchantBatchCreateForm/hook/useFileValidator.d.ts +8 -0
- package/dist/components/MerchantBatchCreateForm/index.d.ts +1 -0
- package/dist/components/MerchantBatchCreateForm/mergeAndCheckData.d.ts +1 -0
- package/dist/components/MerchantBatchCreateForm/modals/CreateProductConfirmModal.d.ts +10 -0
- package/dist/components/MerchantBatchCreateForm/modals/CreateProductSuccessModal.d.ts +12 -0
- package/dist/components/MerchantBatchCreateForm/modals/DeleteImageConfirmModal.d.ts +8 -0
- package/dist/components/MerchantBatchCreateForm/modals/UpdateProductModal/CategoriesInput/index.d.ts +9 -0
- package/dist/components/MerchantBatchCreateForm/modals/UpdateProductModal/UnitSelect/UnitSelectUI/DropdownContent/ActionButtons.d.ts +7 -0
- package/dist/components/MerchantBatchCreateForm/modals/UpdateProductModal/UnitSelect/UnitSelectUI/DropdownContent/AddOptionComponent.d.ts +13 -0
- package/dist/components/MerchantBatchCreateForm/modals/UpdateProductModal/UnitSelect/UnitSelectUI/DropdownContent/OptionItem/EditOptionComponent.d.ts +14 -0
- package/dist/components/MerchantBatchCreateForm/modals/UpdateProductModal/UnitSelect/UnitSelectUI/DropdownContent/OptionItem/index.d.ts +18 -0
- package/dist/components/MerchantBatchCreateForm/modals/UpdateProductModal/UnitSelect/UnitSelectUI/DropdownContent/SelectButton.d.ts +11 -0
- package/dist/components/MerchantBatchCreateForm/modals/UpdateProductModal/UnitSelect/UnitSelectUI/DropdownContent/index.d.ts +22 -0
- package/dist/components/MerchantBatchCreateForm/modals/UpdateProductModal/UnitSelect/UnitSelectUI/index.d.ts +4 -0
- package/dist/components/MerchantBatchCreateForm/modals/UpdateProductModal/UnitSelect/UnitSelectUI/utils/LocalStorage.d.ts +6 -0
- package/dist/components/MerchantBatchCreateForm/modals/UpdateProductModal/UnitSelect/UnitSelectUI/utils/validation.d.ts +7 -0
- package/dist/components/MerchantBatchCreateForm/modals/UpdateProductModal/UnitSelect/index.d.ts +10 -0
- package/dist/components/MerchantBatchCreateForm/modals/UpdateProductModal/UploadImage.d.ts +12 -0
- package/dist/components/MerchantBatchCreateForm/modals/UpdateProductModal/index.d.ts +16 -0
- package/dist/components/MerchantBatchCreateForm/store/useMappingStore.d.ts +9 -0
- package/dist/components/MerchantBatchCreateForm/store/useUploadStore.d.ts +27 -0
- package/dist/components/MerchantBatchCreateForm/utils/download.d.ts +4 -0
- package/dist/components/MerchantBatchCreateForm/utils/upload.d.ts +5 -0
- package/dist/components/MerchantEdit/AddressFields.d.ts +16 -0
- package/dist/components/MerchantEdit/FileUpload.d.ts +13 -0
- package/dist/components/MerchantEdit/Header.d.ts +9 -0
- package/dist/components/MerchantEdit/UserTypeForm.d.ts +22 -0
- package/dist/components/MerchantEdit/index.d.ts +10 -0
- package/dist/components/MerchantRegistrationForm/AddressFields.d.ts +16 -0
- package/dist/components/MerchantRegistrationForm/FileUpload.d.ts +12 -0
- package/dist/components/MerchantRegistrationForm/Header.d.ts +9 -0
- package/dist/components/MerchantRegistrationForm/IndustrySelect.d.ts +8 -0
- package/dist/components/MerchantRegistrationForm/MerchantRegistrationForm.d.ts +37 -0
- package/dist/components/MerchantRegistrationForm/UserTypeForm.d.ts +21 -0
- package/dist/components/MerchantTable/index.d.ts +11 -0
- package/dist/components/MerchantTable/merchantTableAction.d.ts +8 -0
- package/dist/components/MerchantTable/merchantTableFilter.d.ts +16 -0
- package/dist/components/MerchantTable/merchantTableHeader.d.ts +6 -0
- package/dist/components/MerchantView/AddressFields.d.ts +16 -0
- package/dist/components/MerchantView/FileUpload.d.ts +13 -0
- package/dist/components/MerchantView/Header.d.ts +9 -0
- package/dist/components/MerchantView/UserTypeForm.d.ts +22 -0
- package/dist/components/MerchantView/index.d.ts +10 -0
- package/dist/components/NewAccountCreate/FormHeader.d.ts +8 -0
- package/dist/components/NewAccountCreate/Icon.d.ts +6 -0
- package/dist/components/NewAccountCreate/InputField.d.ts +21 -0
- package/dist/components/NewAccountCreate/PasswordRequirements.d.ts +6 -0
- package/dist/components/NewAccountCreate/RequirementItem.d.ts +6 -0
- package/dist/components/NewAccountCreate/SubmitButton.d.ts +11 -0
- package/dist/components/NewAccountCreate/index.d.ts +8 -0
- package/dist/components/NewAccountCreate/types.d.ts +7 -0
- package/dist/components/common/button.d.ts +11 -0
- package/dist/components/common/custom-toast/index.d.ts +6 -0
- package/dist/components/common/dataTable/dataTable.d.ts +25 -0
- package/dist/components/common/dataTable/pagination.d.ts +14 -0
- package/dist/components/common/dataTable/statusBadge.d.ts +9 -0
- package/dist/components/common/dataTable/tableBody.d.ts +8 -0
- package/dist/components/common/dataTable/tableHeader.d.ts +6 -0
- package/dist/components/common/dataTable/tableSkeleton.d.ts +7 -0
- package/dist/components/common/datePicker.d.ts +10 -0
- package/dist/components/common/dropdownMenu.d.ts +27 -0
- package/dist/components/common/dropdownMenuAbsolute.d.ts +4 -0
- package/dist/components/common/form/error-message.d.ts +14 -0
- package/dist/components/common/input.d.ts +3 -0
- package/dist/components/common/label.d.ts +6 -0
- package/dist/components/common/modals/ConfirmModal.d.ts +13 -0
- package/dist/components/common/modals/ExitConfirmGuard.d.ts +11 -0
- package/dist/components/common/modals/WrapModal.d.ts +9 -0
- package/dist/components/common/number-input.d.ts +5 -0
- package/dist/components/ui/button.d.ts +12 -0
- package/dist/components/ui/confirmModal.d.ts +10 -0
- package/dist/components/ui/error-modal.d.ts +8 -0
- package/dist/components/ui/input.d.ts +18 -0
- package/dist/components/ui/success-modal.d.ts +8 -0
- package/dist/configs/portalAxiosClient.d.ts +2 -0
- package/dist/configs/wesapAxiosClient.d.ts +2 -0
- package/dist/constants/merchant-batch-create-form.constant.d.ts +4 -0
- package/dist/fonts/inter/Inter_18pt-Bold.ttf +0 -0
- package/dist/fonts/inter/Inter_18pt-Medium.ttf +0 -0
- package/dist/fonts/inter/Inter_18pt-Regular.ttf +0 -0
- package/dist/fonts/inter/Inter_18pt-SemiBold.ttf +0 -0
- package/dist/hooks/use-address.d.ts +9 -0
- package/dist/hooks/use-create-merchant.d.ts +20 -0
- package/dist/hooks/use-edit-merchant.d.ts +20 -0
- package/dist/hooks/use-media-query.d.ts +1 -0
- package/dist/hooks/use-merchant-table.d.ts +13 -0
- package/dist/hooks/use-translation.d.ts +10 -0
- package/dist/hooks/useClickOutside.d.ts +3 -0
- package/dist/hooks/useDebounce.d.ts +1 -0
- package/dist/hooks/useMCCList.d.ts +6 -0
- package/dist/hooks/useMerchantDetail.d.ts +8 -0
- package/dist/hooks/usePasswordValidation.d.ts +9 -0
- package/dist/index.cjs +73887 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.esm.js +73871 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/main.d.ts +0 -0
- package/dist/provider/index.d.ts +5 -0
- package/dist/provider/toast-provider.d.ts +2 -0
- package/dist/services/MCCList.d.ts +2 -0
- package/dist/services/addressService.d.ts +10 -0
- package/dist/services/create-products.service.d.ts +6 -0
- package/dist/services/createDigistoreAccountService.d.ts +7 -0
- package/dist/services/editFormService.d.ts +5 -0
- package/dist/services/merchantFormService.d.ts +5 -0
- package/dist/services/merchantService.d.ts +3 -0
- package/dist/store/use-external-config.store.d.ts +10 -0
- package/dist/store/use-portal-api-config.store.d.ts +8 -0
- package/dist/store/use-unsaved-changes.store.d.ts +11 -0
- package/dist/store/use-wesap-api-config.store.d.ts +10 -0
- package/dist/style.css +2971 -0
- package/dist/types/MCCList.d.ts +5 -0
- package/dist/types/addressType.d.ts +17 -0
- package/dist/types/formData.d.ts +58 -0
- package/dist/types/global.d.ts +3 -0
- package/dist/types/merchant-batch-create-form/product-info-preview.d.ts +45 -0
- package/dist/types/merchant-batch-create-form/sheet-product-validation.d.ts +10 -0
- package/dist/types/merchant-batch-create-form/table.d.ts +1 -0
- package/dist/types/merchant-batch-create-form/unit-select.d.ts +14 -0
- package/dist/types/merchantDetail.d.ts +30 -0
- package/dist/types/merchantTableData.d.ts +16 -0
- package/dist/types/user.d.ts +23 -0
- package/dist/utils/commonFunctions.d.ts +2 -0
- package/dist/utils/datetime.d.ts +8 -0
- package/dist/utils/form.d.ts +1 -0
- package/dist/utils/mapLicenseData.d.ts +25 -0
- package/dist/utils/merchantTableData.d.ts +3 -0
- package/dist/utils/tokenManager.d.ts +2 -0
- package/dist/utils/translations.d.ts +685 -0
- package/dist/vite.svg +1 -0
- package/package.json +90 -0
package/README.md
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# SDK Merchant
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
## Getting started
|
|
6
|
+
|
|
7
|
+
To make it easy for you to get started with GitLab, here's a list of recommended next steps.
|
|
8
|
+
|
|
9
|
+
Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)!
|
|
10
|
+
|
|
11
|
+
## Add your files
|
|
12
|
+
|
|
13
|
+
- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files
|
|
14
|
+
- [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command:
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
cd existing_repo
|
|
18
|
+
git remote add origin https://git.zrise.app/frontend/sdk/sdk-merchant.git
|
|
19
|
+
git branch -M main
|
|
20
|
+
git push -uf origin main
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Integrate with your tools
|
|
24
|
+
|
|
25
|
+
- [ ] [Set up project integrations](https://git.zrise.app/frontend/sdk/sdk-merchant/-/settings/integrations)
|
|
26
|
+
|
|
27
|
+
## Collaborate with your team
|
|
28
|
+
|
|
29
|
+
- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/)
|
|
30
|
+
- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
|
|
31
|
+
- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)
|
|
32
|
+
- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/)
|
|
33
|
+
- [ ] [Set auto-merge](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html)
|
|
34
|
+
|
|
35
|
+
## Test and Deploy
|
|
36
|
+
|
|
37
|
+
Use the built-in continuous integration in GitLab.
|
|
38
|
+
|
|
39
|
+
- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html)
|
|
40
|
+
- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing (SAST)](https://docs.gitlab.com/ee/user/application_security/sast/)
|
|
41
|
+
- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html)
|
|
42
|
+
- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/)
|
|
43
|
+
- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html)
|
|
44
|
+
|
|
45
|
+
***
|
|
46
|
+
|
|
47
|
+
# Editing this README
|
|
48
|
+
|
|
49
|
+
When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thanks to [makeareadme.com](https://www.makeareadme.com/) for this template.
|
|
50
|
+
|
|
51
|
+
## Suggestions for a good README
|
|
52
|
+
|
|
53
|
+
Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information.
|
|
54
|
+
|
|
55
|
+
## Name
|
|
56
|
+
Choose a self-explaining name for your project.
|
|
57
|
+
|
|
58
|
+
## Description
|
|
59
|
+
Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors.
|
|
60
|
+
|
|
61
|
+
## Badges
|
|
62
|
+
On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge.
|
|
63
|
+
|
|
64
|
+
## Visuals
|
|
65
|
+
Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method.
|
|
66
|
+
|
|
67
|
+
## Installation
|
|
68
|
+
Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection.
|
|
69
|
+
|
|
70
|
+
## Usage
|
|
71
|
+
Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README.
|
|
72
|
+
|
|
73
|
+
## Support
|
|
74
|
+
Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc.
|
|
75
|
+
|
|
76
|
+
## Roadmap
|
|
77
|
+
If you have ideas for releases in the future, it is a good idea to list them in the README.
|
|
78
|
+
|
|
79
|
+
## Contributing
|
|
80
|
+
State if you are open to contributions and what your requirements are for accepting them.
|
|
81
|
+
|
|
82
|
+
For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self.
|
|
83
|
+
|
|
84
|
+
You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser.
|
|
85
|
+
|
|
86
|
+
## Authors and acknowledgment
|
|
87
|
+
Show your appreciation to those who have contributed to the project.
|
|
88
|
+
|
|
89
|
+
## License
|
|
90
|
+
For open source projects, say how it is licensed.
|
|
91
|
+
|
|
92
|
+
## Project status
|
|
93
|
+
If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers.
|
package/dist/App.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
"cancel": "Cancel",
|
|
3
|
+
"confirm": "Confirm",
|
|
4
|
+
"leave": "Leave",
|
|
5
|
+
"exitConfirmGuard": {
|
|
6
|
+
"reload": {
|
|
7
|
+
"title": "Confirm page reload",
|
|
8
|
+
"description": "Are you sure you want to reload the page?\nAll unsaved changes will be lost."
|
|
9
|
+
},
|
|
10
|
+
"back": {
|
|
11
|
+
"title": "Confirm leaving",
|
|
12
|
+
"description": "Are you sure you want to leave this page?\nAll unsaved changes will be lost."
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
;
|
|
17
|
+
|
|
18
|
+
export default _default;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
"title": "Request to create a new Digistore ID account",
|
|
3
|
+
"note_login_success_with": "You have successfully logged in with account",
|
|
4
|
+
"note_desc": "To enhance user experience and strengthen Digistore Security, you must create a Digistore ID account to access Digistore Merchant.",
|
|
5
|
+
"note_from_date": "Starting",
|
|
6
|
+
"note_use_digis_acc_to_access": "the Digistore ID will be used to access the Digistore platforms and will replace the previous accounts.",
|
|
7
|
+
"form_email_label": "Email",
|
|
8
|
+
"form_email_placeholder": "Enter your Email",
|
|
9
|
+
"form_pwd_label": "Password",
|
|
10
|
+
"form_pwd_placeholder": "Enter password",
|
|
11
|
+
"form_pwd_err_required": "Please enter password",
|
|
12
|
+
"form_pwd_err_invalid": "Please enter a valid password",
|
|
13
|
+
"form_confirm_pwd_label": "Confirm password",
|
|
14
|
+
"form_confirm_pwd_placeholder": "Confirm password",
|
|
15
|
+
"form_confirm_pwd_err_required": "Please confirm your password",
|
|
16
|
+
"form_confirm_pwd_err_no_match": "Confirm password does not match",
|
|
17
|
+
"form_submit_btn": "Create account",
|
|
18
|
+
"pwd_requirement_title": "Password must contain:",
|
|
19
|
+
"pwd_requirement_length": "Length from 8-35 characters",
|
|
20
|
+
"pwd_requirement_uppercase": "At least 1 uppercase letter",
|
|
21
|
+
"pwd_requirement_lowercase": "At least 1 lowercase letter",
|
|
22
|
+
"pwd_requirement_number": "At least 1 number",
|
|
23
|
+
"pwd_requirement_no_vietnamese": "No spaces and Vietnamese with diacritics",
|
|
24
|
+
|
|
25
|
+
"success_toast_title": "Success",
|
|
26
|
+
"success_toast_des": "Create account successfully!",
|
|
27
|
+
"error_toast_title": "Error",
|
|
28
|
+
"error_toast_des": "Failed to create account!"
|
|
29
|
+
}
|
|
30
|
+
;
|
|
31
|
+
|
|
32
|
+
export default _default;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
"title": "Download Sample File",
|
|
3
|
+
"description": "Download the sample file, fill in product information, and upload it so the system can automatically generate the product list for you. The sample file is the standard template used for bulk product creation.\nPlease refer to the guide table below to input in the correct format.",
|
|
4
|
+
"downloadButton": "Download Sample File",
|
|
5
|
+
"guideTitle": "Information Entry Guide",
|
|
6
|
+
"headers": {
|
|
7
|
+
"title": "Title",
|
|
8
|
+
"format": "Format",
|
|
9
|
+
"requirement": "Requirement",
|
|
10
|
+
"example": "Example"
|
|
11
|
+
},
|
|
12
|
+
"fields": {
|
|
13
|
+
"productCode": {
|
|
14
|
+
"title": "Product Code",
|
|
15
|
+
"format": "- Length <b>2–20 characters</b> (letters, numbers, valid characters: A–Z, a–z, 0–9, - _ .) <br/>- No spaces, do not use < > : \" / \\ | ? * @ # $ % !",
|
|
16
|
+
"requirement": "Required",
|
|
17
|
+
"requirementClass": "text-red-500",
|
|
18
|
+
"example": "Valid: MSP001 <br/>Invalid: MPS 001"
|
|
19
|
+
},
|
|
20
|
+
"productName": {
|
|
21
|
+
"title": "Product Name",
|
|
22
|
+
"format": "- Length <b>2–50 characters</b>, spaces allowed. <br/>- Do not use special characters < > : \" / \\ | ? @ # $ % !",
|
|
23
|
+
"requirement": "Required",
|
|
24
|
+
"requirementClass": "text-red-500",
|
|
25
|
+
"example": "BEEF BELLY IN SAUCE (KOREA)"
|
|
26
|
+
},
|
|
27
|
+
"price": {
|
|
28
|
+
"title": "Price",
|
|
29
|
+
"format": "- Integer <b>>= 1,000 VND</b>. No negative values, no decimals.",
|
|
30
|
+
"requirement": "Required",
|
|
31
|
+
"requirementClass": "text-red-500",
|
|
32
|
+
"example": "Valid: 100,000 <br/>Invalid: -10/10.5+,..."
|
|
33
|
+
},
|
|
34
|
+
"unit": {
|
|
35
|
+
"title": "Unit",
|
|
36
|
+
"format": "- Length <b>2–20 characters</b>, spaces allowed. <br/>- Do not use special characters < > : \" / \\ | ? @ # $ % ! , .",
|
|
37
|
+
"requirement": "Required",
|
|
38
|
+
"requirementClass": "text-red-500",
|
|
39
|
+
"example": "Valid: Bottle/Jar/Kilogram <br/>Invalid: Label, Tag"
|
|
40
|
+
},
|
|
41
|
+
"category": {
|
|
42
|
+
"title": "Product Category",
|
|
43
|
+
"format": "- Length <b>2–50 characters</b>, spaces allowed. <br/>- Do not use special characters < > : \" / \\ | ? * @ # $ % !",
|
|
44
|
+
"requirement": "Optional",
|
|
45
|
+
"requirementClass": "text-[#2C2C2C]",
|
|
46
|
+
"example": "REGIONAL SPECIALTY / VEGETARIAN DISH"
|
|
47
|
+
},
|
|
48
|
+
"image": {
|
|
49
|
+
"title": "Product Image",
|
|
50
|
+
"format": "- Image format: <b>.jpeg, .jpg or .png</b> <br/>- Image URL must be <b>publicly accessible</b> from storage sources <br/>• Personal device (Recommended) <br/>• Public image hosting websites <br/>• Cloud storage: Google Drive, OneDrive,… <br/>- Maximum image size: <b>1MB</b>",
|
|
51
|
+
"requirement": "Optional",
|
|
52
|
+
"requirementClass": "",
|
|
53
|
+
"example": "<div class='flex flex-col gap-3'><a href='https://drive.google.com/filed/1Ft2SF2aedBGWhNNuhM5Uen3oxko_qca7/view?usp=sharing'' target='_blank' class='underline text-[#0082FF]'>https://drive.google.com/filed/1Ft2SF2aedBGWhNNuhM5Uen3oxko_qca7/view?usp=sharing</a><p class='text-[#2C2C2C]'>C:\\Users\\Public\\Downloads\\images\\2358.png</p></div>"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
;
|
|
58
|
+
|
|
59
|
+
export default _default;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
"fileTooLarge": "File exceeds the maximum size, please choose another",
|
|
3
|
+
"invalidExtension": "Only .xlsx format is supported",
|
|
4
|
+
"sheetTooLong": "Sheet {{sheetName}} has {{rowCount}} rows, exceeding the limit of 100",
|
|
5
|
+
"readError": "Error while reading file",
|
|
6
|
+
"uploadTitle": "Upload or drop your file here",
|
|
7
|
+
"uploadHint": "Maximum 2MB in .xlsx format",
|
|
8
|
+
"sheetLabel": "Sheet",
|
|
9
|
+
"chooseFile": "Choose file",
|
|
10
|
+
"uploading": "Uploading",
|
|
11
|
+
"upload": "Upload",
|
|
12
|
+
"buttonOpen": "Map fields",
|
|
13
|
+
"systemField": "System field",
|
|
14
|
+
"fileField": "File field",
|
|
15
|
+
"arrow": "←",
|
|
16
|
+
"placeholder": "-- Select column --",
|
|
17
|
+
"reset": "Reset",
|
|
18
|
+
"systemFields": [
|
|
19
|
+
"Product Code",
|
|
20
|
+
"Product Name",
|
|
21
|
+
"Price",
|
|
22
|
+
"Unit",
|
|
23
|
+
"Product Category"
|
|
24
|
+
],
|
|
25
|
+
"title": "Upload Product List",
|
|
26
|
+
"instruction1": "After formatting is complete, upload the file here. The system will verify the file and return any corrections needed if information is not in the correct format for import into the system.",
|
|
27
|
+
"instruction2": "Each upload is limited to 1 file and up to 100 rows of information (products). If the list contains more rows than allowed, the system will take rows 1 through 100 in order (excluding the header).",
|
|
28
|
+
"deleteFile": "Delete file",
|
|
29
|
+
"tabs": {
|
|
30
|
+
"sampleDownload": "Download sample file",
|
|
31
|
+
"uploadFile": "Upload product list"
|
|
32
|
+
},
|
|
33
|
+
"setFirstRowAsHeader": "Set first row as header",
|
|
34
|
+
"noCompatibleData": "No information to process. Please check your upload file again!",
|
|
35
|
+
"uploadingSummary": "You are uploading <span class='text-[#1E2A7B]'>{{count}}</span> new entries from file <span class='text-[#1E2A7B]'>{{file}}</span>, sheet <span class='text-[#1E2A7B]'>{{sheet}}</span>",
|
|
36
|
+
"cancel": "Cancel",
|
|
37
|
+
"checkData": "Check data",
|
|
38
|
+
"checking": "Checking...",
|
|
39
|
+
"cancelConfirmTitle": "Are you sure you want to cancel the upload task?",
|
|
40
|
+
"cancelConfirmDesc": "Uploaded data will not be saved or used to create products.",
|
|
41
|
+
"close": "Close",
|
|
42
|
+
"stopUpload": "Stop upload",
|
|
43
|
+
"mergeDataTitle": "Merge Fields & Validate Data",
|
|
44
|
+
"mergeDescription": "Each upload is limited to 1 file and up to 100 rows of information (products).\n If the list contains more rows than allowed, the system will take rows 1 through 100 in order (excluding the header).\n\nPreview data from the .xlsx file. Map each column in the file to a system field to continue creating products."
|
|
45
|
+
}
|
|
46
|
+
;
|
|
47
|
+
|
|
48
|
+
export default _default;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
"object": "Object",
|
|
3
|
+
"merchantInfo": "Merchant Information to Introduce",
|
|
4
|
+
"taxCode": "Tax Code",
|
|
5
|
+
"shortName": "Short Name/Brand *",
|
|
6
|
+
"householdName": "Household Business Name *",
|
|
7
|
+
"referralCode": "Referral Code",
|
|
8
|
+
"phone": "Phone Number",
|
|
9
|
+
"businessLicense": "Business License *",
|
|
10
|
+
"uploadFile": "Upload File",
|
|
11
|
+
"email": "Email",
|
|
12
|
+
"businessName": "Business Name *",
|
|
13
|
+
"profile_detail": "Profile Detail",
|
|
14
|
+
"profile_list": "Profile List",
|
|
15
|
+
"draft": "Draft",
|
|
16
|
+
"pending": "Pending",
|
|
17
|
+
"processing": "Processing",
|
|
18
|
+
"done": "Done",
|
|
19
|
+
"rejected": "Rejected",
|
|
20
|
+
"individual": "Individual",
|
|
21
|
+
"household": "Household",
|
|
22
|
+
"business": "Business",
|
|
23
|
+
"merchant_info": "Merchant Information to Introduce",
|
|
24
|
+
"merchant_info_description": "Please provide detailed information about the new Merchant. By introducing the Merchant, I agree to provide Merchant data and accept BVBank's User Service Agreement.",
|
|
25
|
+
"merchant_profile": "Merchant Profile",
|
|
26
|
+
"add_new_profile": "Add New Profile",
|
|
27
|
+
"uploaded_file": "Uploaded File",
|
|
28
|
+
"upload_icon": "Upload Icon",
|
|
29
|
+
"upload_file": "Upload File",
|
|
30
|
+
"file_format_info": "(PDF, PNG, JPEG – max 5MB)",
|
|
31
|
+
"upload_button": "Upload File",
|
|
32
|
+
"remove_file": "Remove File",
|
|
33
|
+
"address": "Address",
|
|
34
|
+
"country": "Country",
|
|
35
|
+
"city": "Province/City",
|
|
36
|
+
"district": "District",
|
|
37
|
+
"ward": "Ward/Commune",
|
|
38
|
+
"street": "Street",
|
|
39
|
+
"not_selected": "Not selected",
|
|
40
|
+
"not_entered": "Address not entered",
|
|
41
|
+
"tax_code": "Tax Code",
|
|
42
|
+
"full_name": "Full Name",
|
|
43
|
+
"phone_number": "Phone Number",
|
|
44
|
+
"industry": "Industry",
|
|
45
|
+
"referral_code": "Referral Code",
|
|
46
|
+
"household_business_name": "Household Business Name",
|
|
47
|
+
"short_name_brand": "Short Name/Brand",
|
|
48
|
+
"business_license": "Business License",
|
|
49
|
+
"tax_document": "Tax Document",
|
|
50
|
+
"enterprise_name": "Enterprise Name",
|
|
51
|
+
"representative": "Representative",
|
|
52
|
+
"business_registration_number": "Business Registration Number",
|
|
53
|
+
"required_field_error": "This field is required",
|
|
54
|
+
"invalid_email_error": "Invalid email",
|
|
55
|
+
"invalid_phone_number_error": "Invalid phone number",
|
|
56
|
+
"business_license_required_error": "Business license upload required",
|
|
57
|
+
"tax_document_required_error": "Tax document upload required",
|
|
58
|
+
"form_validation_error": "Please fill in all required information and check for errors",
|
|
59
|
+
"file_upload_required_error": "Please upload both business license and tax document",
|
|
60
|
+
"submit_error": "An error occurred while submitting data",
|
|
61
|
+
"update_error": "An error occurred while updating the merchant",
|
|
62
|
+
"business_license_success_msg": "Data filled from business license",
|
|
63
|
+
"business_license_error_msg": "Unable to read business license file. Try a clearer image.",
|
|
64
|
+
"business_license_empty_data_msg": "No valid data found from business license",
|
|
65
|
+
"business_license_overwrite_modal_title": "Overwrite data from business license?",
|
|
66
|
+
"tax_document_success_msg": "Data filled from tax document",
|
|
67
|
+
"tax_document_error_msg": "Unable to read tax document file. Try a clearer image.",
|
|
68
|
+
"tax_document_empty_data_msg": "No valid data found from tax document",
|
|
69
|
+
"tax_document_overwrite_modal_title": "Overwrite data from tax document?",
|
|
70
|
+
"overwrite_data": "Overwrite data?",
|
|
71
|
+
"overwrite_data_description": "Some fields already have data. Do you want to overwrite with information extracted from the document?",
|
|
72
|
+
"submit_profile": "Submit Profile",
|
|
73
|
+
"update_profile": "Update Profile",
|
|
74
|
+
"select_industry": "Select industry",
|
|
75
|
+
"loading_industries": "Loading industries...",
|
|
76
|
+
"success_announcement": "You submitted successfully",
|
|
77
|
+
"error_occur": "An error occurred",
|
|
78
|
+
"close": "Close",
|
|
79
|
+
"success_form": "Please wait for approval",
|
|
80
|
+
"yes": "Yes",
|
|
81
|
+
"no": "No"
|
|
82
|
+
}
|
|
83
|
+
;
|
|
84
|
+
|
|
85
|
+
export default _default;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
"merge_validate_data_title": "Merge fields & Validate data",
|
|
3
|
+
"merge_limit_description": "Each list upload is limited to a maximum of 1 file and 100 data rows (products).\nIf the list contains more rows than allowed, the system will use rows 1 to 100 (excluding the header).",
|
|
4
|
+
"merge_validate_data_description": "Preview data from the .xlsx file. Map each column in the file to the system fields to proceed with creating products.",
|
|
5
|
+
"upload_information_description1": "You are uploading",
|
|
6
|
+
"upload_information_description2": "new records from the file",
|
|
7
|
+
"sheet": "sheet",
|
|
8
|
+
"create_product_button": "Create products",
|
|
9
|
+
"image": "Product Image",
|
|
10
|
+
"no_image": "No Image",
|
|
11
|
+
"name": "Product Name",
|
|
12
|
+
"code": "Product Code",
|
|
13
|
+
"price_vat": "Price",
|
|
14
|
+
"category": "Category",
|
|
15
|
+
"unit": "Unit",
|
|
16
|
+
"not_available": "Not available",
|
|
17
|
+
"note": "Note",
|
|
18
|
+
"valid_info": "Valid information",
|
|
19
|
+
"actions": "Actions",
|
|
20
|
+
"edit": "Edit",
|
|
21
|
+
"external_duplicate_code": "Product code already exists on server",
|
|
22
|
+
"external_duplicate_name": "Product name already exists on server",
|
|
23
|
+
"internal_duplicate_code": "Product code duplicated in file",
|
|
24
|
+
"internal_duplicate_name": "Product name duplicated in file",
|
|
25
|
+
"confirm_create_title": "Confirm create new products",
|
|
26
|
+
"confirm_create_description_1": "You are creating",
|
|
27
|
+
"confirm_create_description_2": "in the uploaded list. Product information can be edited after the system completes the task.",
|
|
28
|
+
"success_title": "Create products completed",
|
|
29
|
+
"created_success": "Created successfully",
|
|
30
|
+
"created_failed": "Created failed",
|
|
31
|
+
"success_description": "Choose download to see the detailed creation status. This information won't be saved and cannot be viewed again after leaving this task.",
|
|
32
|
+
"cancel": "Cancel",
|
|
33
|
+
"close": "Close",
|
|
34
|
+
"download": "Download",
|
|
35
|
+
"export_failed_filename": "failed_products_list",
|
|
36
|
+
"edit_product_title": "Edit product",
|
|
37
|
+
"price_vat_full": "Price",
|
|
38
|
+
"update": "Update",
|
|
39
|
+
"add": "Add",
|
|
40
|
+
"enter_new_option": "Enter new option...",
|
|
41
|
+
"delete": "Delete",
|
|
42
|
+
"no_options": "No options available",
|
|
43
|
+
"select_unit": "Select unit",
|
|
44
|
+
"img_invalid_url": "Unable to retrieve image information",
|
|
45
|
+
"img_invalid_size": "Invalid image selected",
|
|
46
|
+
"img_invalid_extension": "Invalid image selected",
|
|
47
|
+
"toast_upload_image_success": "Upload image successfully",
|
|
48
|
+
"upload_image": "Upload image",
|
|
49
|
+
|
|
50
|
+
"code_min": "Product code must be at least 2 characters",
|
|
51
|
+
"code_max": "Product code must not exceed 20 characters",
|
|
52
|
+
"code_invalid_chars": "Product code can only contain letters, numbers, hyphens (-), underscores (_), no spaces",
|
|
53
|
+
|
|
54
|
+
"toast_success_title": "Success",
|
|
55
|
+
"toast_error_title": "Error",
|
|
56
|
+
"toast_create_products_success": "Create products list successfully",
|
|
57
|
+
"toast_create_products_failed": "Failed to create products list",
|
|
58
|
+
"toast_update_product_success": "Product updated successfully",
|
|
59
|
+
"export_col_code": "Product ID",
|
|
60
|
+
"export_col_img": "Image",
|
|
61
|
+
"export_col_name": "Product name",
|
|
62
|
+
"export_col_unit": "Unit",
|
|
63
|
+
"export_col_price": "Price",
|
|
64
|
+
"export_col_category": "Category",
|
|
65
|
+
"export_col_status": "Status",
|
|
66
|
+
"export_status_success": "Success",
|
|
67
|
+
"export_status_failed": "Failed",
|
|
68
|
+
"export_filename_created_product": "bulkupload",
|
|
69
|
+
"export_header_created_time": "Created on Digistore Merchant at",
|
|
70
|
+
"unit_exists": "Unit already exists",
|
|
71
|
+
"enter_category_name": "Enter category name",
|
|
72
|
+
"toast_validate_products_failed": "Failed to validate product list with server",
|
|
73
|
+
"name_must_be_string": "Product name must be a string",
|
|
74
|
+
"name_required": "Product name is not allowed to be empty",
|
|
75
|
+
"name_invalid": "Product name is invalid",
|
|
76
|
+
"unit_must_be_string": "Product unit must be a string",
|
|
77
|
+
"unit_required": "Product unit is not allowed to be empty",
|
|
78
|
+
"unit_invalid": "Product unit is invalid",
|
|
79
|
+
"code_must_be_string": "Product code must be a string",
|
|
80
|
+
"code_required": "Product code is not allowed to be empty",
|
|
81
|
+
"code_invalid": "Product code is invalid",
|
|
82
|
+
"price_required": "Product price is not allowed to be empty",
|
|
83
|
+
"price_invalid": "Product price is invalid",
|
|
84
|
+
"category_must_be_string": "Product category must be a string",
|
|
85
|
+
"category_invalid": "Product category is invalid",
|
|
86
|
+
"toast_delete_image_success": "Delete image successfully",
|
|
87
|
+
"delete_image_confirm_title": "Confirm delete image",
|
|
88
|
+
"delete_image_confirm_description": "Are you sure you want to delete this product image?"
|
|
89
|
+
}
|
|
90
|
+
;
|
|
91
|
+
|
|
92
|
+
export default _default;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
"submitDate": "Submit Date",
|
|
3
|
+
"object": "Account type",
|
|
4
|
+
"status": "Status",
|
|
5
|
+
"search": "Search",
|
|
6
|
+
"addNew": "Add New",
|
|
7
|
+
"reset": "Reset",
|
|
8
|
+
"apply": "Apply",
|
|
9
|
+
"no": "No",
|
|
10
|
+
"name": "Name",
|
|
11
|
+
"industry": "Industry",
|
|
12
|
+
"brand": "Brand",
|
|
13
|
+
"businessCode": "Business Code",
|
|
14
|
+
"rejectNote": "Reject Note",
|
|
15
|
+
"action": "Action",
|
|
16
|
+
"rowCount": "Row Count",
|
|
17
|
+
"subject": "Subject",
|
|
18
|
+
"businessType": "Business Type",
|
|
19
|
+
"all": "All",
|
|
20
|
+
"searchPlaceholder": "Enter name, phone number, ... to search",
|
|
21
|
+
"merchantProfile": "Merchant Profile",
|
|
22
|
+
"profileList": "Profile List",
|
|
23
|
+
"numRows": "Number of rows",
|
|
24
|
+
"DONE": "Done",
|
|
25
|
+
"DRAFT": "Draft",
|
|
26
|
+
"PROCESSING": "Processing",
|
|
27
|
+
"PENDING APPROVAL": "Pending Approval",
|
|
28
|
+
"REJECTED": "Rejected",
|
|
29
|
+
"BUSINESS": "Business",
|
|
30
|
+
"PERSONAL": "Personal",
|
|
31
|
+
"HOUSEHOLD": "Household",
|
|
32
|
+
"select_date_range": "Select date range"
|
|
33
|
+
}
|
|
34
|
+
;
|
|
35
|
+
|
|
36
|
+
export default _default;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
"cancel": "Hủy",
|
|
3
|
+
"confirm": "Xác nhận",
|
|
4
|
+
"leave": "Rời khỏi",
|
|
5
|
+
"exitConfirmGuard": {
|
|
6
|
+
"reload": {
|
|
7
|
+
"title": "Xác nhận tải lại trang",
|
|
8
|
+
"description": "Bạn có chắc chắn muốn tải lại trang?\nMọi thay đổi chưa lưu sẽ bị mất."
|
|
9
|
+
},
|
|
10
|
+
"back": {
|
|
11
|
+
"title": "Xác nhận rời khỏi",
|
|
12
|
+
"description": "Bạn có chắc chắn muốn rời khỏi trang?\nMọi thay đổi chưa lưu sẽ bị mất."
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
;
|
|
17
|
+
|
|
18
|
+
export default _default;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
"title": "Yêu cầu tạo mới tài khoản Digistore ID",
|
|
3
|
+
"note_login_success_with": "Bạn đã đăng nhập thành công với tài khoản",
|
|
4
|
+
"note_desc": "Nhằm tạo sự thuận tiện cho người dùng cũng như đảm bảo tính bảo mật của Digistore Merchant, bạn cần tạo tài khoản Digistore ID để tiếp tục.",
|
|
5
|
+
"note_from_date": "Từ ngày",
|
|
6
|
+
"note_use_digis_acc_to_access": "tài khoản Digistore ID sẽ được sử dụng để truy cập toàn bộ nền tảng thuộc Digistore Merchant thay cho các tài khoản đã tạo trước đó.",
|
|
7
|
+
"form_email_label": "Email",
|
|
8
|
+
"form_email_placeholder": "Nhập Email của bạn",
|
|
9
|
+
"form_pwd_label": "Nhập mật khẩu",
|
|
10
|
+
"form_pwd_placeholder": "Nhập mật khẩu",
|
|
11
|
+
"form_pwd_err_required": "Vui lòng nhập mật khẩu",
|
|
12
|
+
"form_pwd_err_invalid": "Vui lòng nhập mật khẩu hợp lệ",
|
|
13
|
+
"form_confirm_pwd_label": "Xác nhận mật khẩu",
|
|
14
|
+
"form_confirm_pwd_placeholder": "Nhập xác nhận mật khẩu",
|
|
15
|
+
"form_confirm_pwd_err_required": "Vui lòng nhập xác nhận mật khẩu",
|
|
16
|
+
"form_confirm_pwd_err_no_match": "Xác nhận mật khẩu không khớp",
|
|
17
|
+
"form_submit_btn": "Tạo tài khoản",
|
|
18
|
+
"pwd_requirement_title": "Mật khẩu phải đảm bảo:",
|
|
19
|
+
"pwd_requirement_length": "Có độ dài từ 8-35 ký tự",
|
|
20
|
+
"pwd_requirement_uppercase": "Có ít nhất 1 chữ cái in hoa",
|
|
21
|
+
"pwd_requirement_lowercase": "Có ít nhất 1 chữ cái thường",
|
|
22
|
+
"pwd_requirement_number": "Có ít nhất 1 chữ số",
|
|
23
|
+
"pwd_requirement_no_vietnamese": "Không sử dụng tiếng Việt có dấu và khoảng trắng",
|
|
24
|
+
|
|
25
|
+
"success_toast_title": "Thành công",
|
|
26
|
+
"success_toast_des": "Tài khoản đã được tạo thành công!",
|
|
27
|
+
"error_toast_title": "Lỗi",
|
|
28
|
+
"error_toast_des": "Tạo tài khoản thất bại!"
|
|
29
|
+
}
|
|
30
|
+
;
|
|
31
|
+
|
|
32
|
+
export default _default;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
"title": "Tải file mẫu",
|
|
3
|
+
"description": "Tải file mẫu, điền thông tin sản phẩm và tải lên để hệ thống tự động tạo danh sách sản phẩm cho bạn. Tệp mẫu tiêu chuẩn dùng cho chức năng tạo sản phẩm hàng loạt.\nVui lòng tham khảo bảng hướng dẫn bên dưới để nhập đúng định dạng.",
|
|
4
|
+
"downloadButton": "Tải file mẫu",
|
|
5
|
+
"guideTitle": "Hướng dẫn khai thông tin",
|
|
6
|
+
"headers": {
|
|
7
|
+
"title": "Tiêu đề",
|
|
8
|
+
"format": "Định dạng",
|
|
9
|
+
"requirement": "Yêu cầu",
|
|
10
|
+
"example": "Ví dụ"
|
|
11
|
+
},
|
|
12
|
+
"fields": {
|
|
13
|
+
"productCode": {
|
|
14
|
+
"title": "Mã sản phẩm",
|
|
15
|
+
"format": "- Độ dài <b>2–20 ký tự</b> (chữ, số, ký tự hợp lệ: A–Z, a–z, 0–9, - _ .) <br/>- Không khoảng trắng, không dùng < > : \" / \\ | ? * @ # $ % !",
|
|
16
|
+
"requirement": "Bắt buộc",
|
|
17
|
+
"requirementClass": "text-red-500",
|
|
18
|
+
"example": "Hợp lệ: MSP001 <br/>Không hợp lệ: MPS 001"
|
|
19
|
+
},
|
|
20
|
+
"productName": {
|
|
21
|
+
"title": "Tên sản phẩm",
|
|
22
|
+
"format": "- Độ dài <b>2–50 ký tự</b>, cho phép khoảng trắng. <br/>- Không dùng ký tự đặc biệt < > : \" / \\ | ? @ # $ % !",
|
|
23
|
+
"requirement": "Bắt buộc",
|
|
24
|
+
"requirementClass": "text-red-500",
|
|
25
|
+
"example": "BA CHỈ BÒ NƯỚC SỐT THỊT (HÀN QUỐC)"
|
|
26
|
+
},
|
|
27
|
+
"price": {
|
|
28
|
+
"title": "Giá",
|
|
29
|
+
"format": "- Số nguyên <b>>= 1.000 VND</b>. Không âm, không thập phân.",
|
|
30
|
+
"requirement": "Bắt buộc",
|
|
31
|
+
"requirementClass": "text-red-500",
|
|
32
|
+
"example": "Hợp lệ: 100.000 <br/>Không hợp lệ: -10/10,5+,..."
|
|
33
|
+
},
|
|
34
|
+
"unit": {
|
|
35
|
+
"title": "Đơn vị tính",
|
|
36
|
+
"format": "- Độ dài <b>2–20 ký tự</b>, cho phép khoảng trắng. <br/>- Không dùng ký tự đặc biệt < > : \" / \\ | ? @ # $ % ! , .",
|
|
37
|
+
"requirement": "Bắt buộc",
|
|
38
|
+
"requirementClass": "text-red-500",
|
|
39
|
+
"example": "Hợp lệ: Chai/Lọ/Ki-lô-gam <br/>Không hợp lệ: Tem, nhãn"
|
|
40
|
+
},
|
|
41
|
+
"category": {
|
|
42
|
+
"title": "Danh mục sản phẩm",
|
|
43
|
+
"format": "- Độ dài <b>2–50 ký tự</b>, cho phép khoảng trắng. <br/>- Không dùng ký tự đặc biệt < > : \" / \\ | ? * @ # $ % !",
|
|
44
|
+
"requirement": "Tùy chọn",
|
|
45
|
+
"requirementClass": "text-[#2C2C2C]",
|
|
46
|
+
"example": "ĐẶC SẢN VÙNG QUÊ / MÓN ĂN CHAY"
|
|
47
|
+
},
|
|
48
|
+
"image": {
|
|
49
|
+
"title": "Hình ảnh sản phẩm",
|
|
50
|
+
"format": "- Hình ảnh có định dạng: <b>.jpeg, .jpg hoặc .png</b> <br/>- Đường dẫn URL của hình ảnh ở <b>chế độ công khai</b> từ các nguồn lưu trữ <br/>• Thiết bị cá nhân (Khuyến khích) <br/>• Trang mạng đang tải hình ảnh công khai <br/>• Lưu trữ trực tuyến: Google Drive, One Drive,… <br/>- Dung lượng ảnh tối đa: <b>1MB</b>",
|
|
51
|
+
"requirement": "Tùy chọn",
|
|
52
|
+
"requirementClass": "",
|
|
53
|
+
"example": "<div class='flex flex-col gap-3'><a href='https://drive.google.com/filed/1Ft2SF2aedBGWhNNuhM5Uen3oxko_qca7/view?usp=sharing'' target='_blank' class='underline text-[#0082FF]'>https://drive.google.com/filed/1Ft2SF2aedBGWhNNuhM5Uen3oxko_qca7/view?usp=sharing</a><p class='text-[#2C2C2C]'>C:\\Users\\Public\\Downloads\\images\\2358.png</p></div>"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
;
|
|
58
|
+
|
|
59
|
+
export default _default;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
"fileTooLarge": "Tệp quá giới hạn tối đa, vui lòng chọn lại",
|
|
3
|
+
"invalidExtension": "Chỉ hỗ trợ định dạng .xlsx",
|
|
4
|
+
"sheetTooLong": "Sheet {{sheetName}} có {{rowCount}} dòng, vượt quá giới hạn 100",
|
|
5
|
+
"readError": "Lỗi khi đọc file",
|
|
6
|
+
"uploadTitle": "Tải lên hoặc thả tập tin của bạn vào đây",
|
|
7
|
+
"uploadHint": "Tối đa 2MB ở định dạng .xlsx",
|
|
8
|
+
"sheetLabel": "Trang tính",
|
|
9
|
+
"chooseFile": "Chọn tệp",
|
|
10
|
+
"uploading": "Đang tải lên",
|
|
11
|
+
"upload": "Tải lên",
|
|
12
|
+
"buttonOpen": "Ghép trường thông tin",
|
|
13
|
+
"systemField": "Trường hệ thống",
|
|
14
|
+
"fileField": "Trường từ tệp",
|
|
15
|
+
"arrow": "←",
|
|
16
|
+
"placeholder": "-- Chọn cột --",
|
|
17
|
+
"reset": "Khôi phục lại",
|
|
18
|
+
"systemFields": [
|
|
19
|
+
"Mã sản phẩm",
|
|
20
|
+
"Tên sản phẩm",
|
|
21
|
+
"Giá",
|
|
22
|
+
"Đơn vị tính",
|
|
23
|
+
"Danh mục sản phẩm"
|
|
24
|
+
],
|
|
25
|
+
"title": "Tải lên danh sách sản phẩm",
|
|
26
|
+
"instruction1": "Sau khi hoàn tất định dạng, hãy tải tệp lên đây. Hệ thống sẽ kiểm tra và trả kết quả cần chỉnh sửa trong trường hợp có thông tin không đúng định dạng để nhập vào hệ thống.",
|
|
27
|
+
"instruction2": "Mỗi lượt tải lên danh sách chỉ được tối đa 01 tệp và tối đa 100 dòng thông tin (sản phẩm). Trường hợp danh sách có nhiều hơn số dòng thông tin quy định, hệ thống sẽ lấy theo thứ tự dòng thông tin số 1 đến dòng thông tin số 100 (không bao gồm tiêu đề).",
|
|
28
|
+
"deleteFile": "Xóa file",
|
|
29
|
+
"tabs": {
|
|
30
|
+
"sampleDownload": "Tải xuống tệp mẫu",
|
|
31
|
+
"uploadFile": "Tải lên danh sách"
|
|
32
|
+
},
|
|
33
|
+
"setFirstRowAsHeader": "Đặt dòng đầu tiên làm tiêu đề",
|
|
34
|
+
"noCompatibleData": "Không có thông tin để xử lý. Vui lòng kiểm tra lại tệp tải lên!",
|
|
35
|
+
"uploadingSummary": "Bạn đang tải lên <span class='text-[#1E2A7B]'>{{count}}</span> thông tin mới từ tệp <span class='text-[#1E2A7B]'>{{file}}</span>, trang tính <span class='text-[#1E2A7B]'>{{sheet}}</span>",
|
|
36
|
+
"cancel": "Hủy",
|
|
37
|
+
"checkData": "Kiểm tra dữ liệu",
|
|
38
|
+
"checking": "Đang kiểm tra...",
|
|
39
|
+
"cancelConfirmTitle": "Bạn có chắc muốn thoát tác vụ tải lên danh sách?",
|
|
40
|
+
"cancelConfirmDesc": "Thông tin đã tải lên sẽ không được lưu và không được dùng để tạo sản phẩm.",
|
|
41
|
+
"close": "Đóng",
|
|
42
|
+
"stopUpload": "Ngưng tải lên",
|
|
43
|
+
"mergeDataTitle": "Ghép trường & Kiểm tra dữ liệu",
|
|
44
|
+
"mergeDescription": "Mỗi lượt tải lên danh sách chỉ được tối đa 01 tệp và tối đa 100 dòng thông tin (sản phẩm). \n Trường hợp danh sách có nhiều hơn số dòng thông tin quy định, hệ thống sẽ lấy theo thứ tự dòng thông tin số 1 đến dòng thông tin số 100 (không bao gồm tiêu đề).\n \nXem trước dữ liệu từ file .xlsx. Ghép từng cột trong file với trường của hệ thống để tiếp tục tạo sản phẩm."
|
|
45
|
+
}
|
|
46
|
+
;
|
|
47
|
+
|
|
48
|
+
export default _default;
|