wini-web-components 2.8.4 → 2.8.6

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.
Files changed (130) hide show
  1. package/dist/index.js.js +11 -11
  2. package/dist/index.js.mjs +745 -882
  3. package/global.d.ts +6 -0
  4. package/package.json +3 -4
  5. package/dist/component/button/button.d.ts +0 -22
  6. package/dist/component/button/button.d.ts.map +0 -1
  7. package/dist/component/calendar/calendar.d.ts +0 -31
  8. package/dist/component/calendar/calendar.d.ts.map +0 -1
  9. package/dist/component/carousel/carousel.d.ts +0 -32
  10. package/dist/component/carousel/carousel.d.ts.map +0 -1
  11. package/dist/component/checkbox/checkbox.d.ts +0 -25
  12. package/dist/component/checkbox/checkbox.d.ts.map +0 -1
  13. package/dist/component/ck-editor/ckeditor.d.ts +0 -36
  14. package/dist/component/ck-editor/ckeditor.d.ts.map +0 -1
  15. package/dist/component/component-status.d.ts +0 -8
  16. package/dist/component/component-status.d.ts.map +0 -1
  17. package/dist/component/date-time-picker/date-time-picker.d.ts +0 -36
  18. package/dist/component/date-time-picker/date-time-picker.d.ts.map +0 -1
  19. package/dist/component/dialog/dialog.d.ts +0 -18
  20. package/dist/component/dialog/dialog.d.ts.map +0 -1
  21. package/dist/component/import-file/import-file.d.ts +0 -34
  22. package/dist/component/import-file/import-file.d.ts.map +0 -1
  23. package/dist/component/infinite-scroll/infinite-scroll.d.ts +0 -18
  24. package/dist/component/infinite-scroll/infinite-scroll.d.ts.map +0 -1
  25. package/dist/component/input-multi-select/input-multi-select.d.ts +0 -22
  26. package/dist/component/input-multi-select/input-multi-select.d.ts.map +0 -1
  27. package/dist/component/input-otp/input-otp.d.ts +0 -23
  28. package/dist/component/input-otp/input-otp.d.ts.map +0 -1
  29. package/dist/component/number-picker/number-picker.d.ts +0 -24
  30. package/dist/component/number-picker/number-picker.d.ts.map +0 -1
  31. package/dist/component/pagination/pagination.d.ts +0 -14
  32. package/dist/component/pagination/pagination.d.ts.map +0 -1
  33. package/dist/component/popup/popup.d.ts +0 -40
  34. package/dist/component/popup/popup.d.ts.map +0 -1
  35. package/dist/component/progress-bar/progress-bar.d.ts +0 -16
  36. package/dist/component/progress-bar/progress-bar.d.ts.map +0 -1
  37. package/dist/component/progress-circle/progress-circle.d.ts +0 -13
  38. package/dist/component/progress-circle/progress-circle.d.ts.map +0 -1
  39. package/dist/component/radio-button/radio-button.d.ts +0 -21
  40. package/dist/component/radio-button/radio-button.d.ts.map +0 -1
  41. package/dist/component/rating/rating.d.ts +0 -24
  42. package/dist/component/rating/rating.d.ts.map +0 -1
  43. package/dist/component/select1/select1.d.ts +0 -32
  44. package/dist/component/select1/select1.d.ts.map +0 -1
  45. package/dist/component/switch/switch.d.ts +0 -24
  46. package/dist/component/switch/switch.d.ts.map +0 -1
  47. package/dist/component/table/table.d.ts +0 -51
  48. package/dist/component/table/table.d.ts.map +0 -1
  49. package/dist/component/tag/tag.d.ts +0 -23
  50. package/dist/component/tag/tag.d.ts.map +0 -1
  51. package/dist/component/text/text.d.ts +0 -16
  52. package/dist/component/text/text.d.ts.map +0 -1
  53. package/dist/component/text-area/text-area.d.ts +0 -28
  54. package/dist/component/text-area/text-area.d.ts.map +0 -1
  55. package/dist/component/text-field/text-field.d.ts +0 -37
  56. package/dist/component/text-field/text-field.d.ts.map +0 -1
  57. package/dist/component/toast-noti/toast-noti.d.ts +0 -5
  58. package/dist/component/toast-noti/toast-noti.d.ts.map +0 -1
  59. package/dist/component/wini-icon/winicon.d.ts +0 -27
  60. package/dist/component/wini-icon/winicon.d.ts.map +0 -1
  61. package/dist/form/login/view.d.ts +0 -41
  62. package/dist/form/login/view.d.ts.map +0 -1
  63. package/dist/index.d.ts +0 -34
  64. package/dist/index.d.ts.map +0 -1
  65. package/dist/language/i18n.d.ts +0 -3
  66. package/dist/language/i18n.d.ts.map +0 -1
  67. package/src/component/button/button.module.css +0 -210
  68. package/src/component/button/button.tsx +0 -57
  69. package/src/component/calendar/calendar.module.css +0 -153
  70. package/src/component/calendar/calendar.tsx +0 -389
  71. package/src/component/carousel/carousel.css +0 -622
  72. package/src/component/carousel/carousel.tsx +0 -91
  73. package/src/component/checkbox/checkbox.module.css +0 -48
  74. package/src/component/checkbox/checkbox.tsx +0 -80
  75. package/src/component/ck-editor/ck-editor.css +0 -206
  76. package/src/component/ck-editor/ckeditor.tsx +0 -522
  77. package/src/component/component-status.tsx +0 -53
  78. package/src/component/date-time-picker/date-time-picker.module.css +0 -94
  79. package/src/component/date-time-picker/date-time-picker.tsx +0 -663
  80. package/src/component/dialog/dialog.module.css +0 -111
  81. package/src/component/dialog/dialog.tsx +0 -109
  82. package/src/component/import-file/import-file.module.css +0 -83
  83. package/src/component/import-file/import-file.tsx +0 -174
  84. package/src/component/infinite-scroll/infinite-scroll.module.css +0 -34
  85. package/src/component/infinite-scroll/infinite-scroll.tsx +0 -35
  86. package/src/component/input-multi-select/input-multi-select.module.css +0 -121
  87. package/src/component/input-multi-select/input-multi-select.tsx +0 -263
  88. package/src/component/input-otp/input-otp.module.css +0 -41
  89. package/src/component/input-otp/input-otp.tsx +0 -110
  90. package/src/component/number-picker/number-picker.module.css +0 -137
  91. package/src/component/number-picker/number-picker.tsx +0 -107
  92. package/src/component/pagination/pagination.module.css +0 -48
  93. package/src/component/pagination/pagination.tsx +0 -88
  94. package/src/component/popup/popup.css +0 -136
  95. package/src/component/popup/popup.tsx +0 -125
  96. package/src/component/progress-bar/progress-bar.module.css +0 -42
  97. package/src/component/progress-bar/progress-bar.tsx +0 -33
  98. package/src/component/progress-circle/progress-circle.css +0 -0
  99. package/src/component/progress-circle/progress-circle.tsx +0 -25
  100. package/src/component/radio-button/radio-button.module.css +0 -51
  101. package/src/component/radio-button/radio-button.tsx +0 -60
  102. package/src/component/rating/rating.module.css +0 -11
  103. package/src/component/rating/rating.tsx +0 -65
  104. package/src/component/select1/select1.module.css +0 -108
  105. package/src/component/select1/select1.tsx +0 -271
  106. package/src/component/switch/switch.module.css +0 -53
  107. package/src/component/switch/switch.tsx +0 -68
  108. package/src/component/table/table.css +0 -74
  109. package/src/component/table/table.tsx +0 -108
  110. package/src/component/tag/tag.module.css +0 -108
  111. package/src/component/tag/tag.tsx +0 -31
  112. package/src/component/text/text.css +0 -27
  113. package/src/component/text/text.tsx +0 -24
  114. package/src/component/text-area/text-area.module.css +0 -57
  115. package/src/component/text-area/text-area.tsx +0 -65
  116. package/src/component/text-field/text-field.module.css +0 -71
  117. package/src/component/text-field/text-field.tsx +0 -102
  118. package/src/component/toast-noti/toast-noti.css +0 -866
  119. package/src/component/toast-noti/toast-noti.tsx +0 -22
  120. package/src/component/wini-icon/winicon.module.css +0 -110
  121. package/src/component/wini-icon/winicon.tsx +0 -9424
  122. package/src/form/login/view.module.css +0 -80
  123. package/src/form/login/view.tsx +0 -138
  124. package/src/global.d.ts +0 -5
  125. package/src/index.tsx +0 -66
  126. package/src/language/i18n.tsx +0 -143
  127. package/src/skin/layout.css +0 -649
  128. package/src/skin/root.css +0 -294
  129. package/src/skin/typography.css +0 -314
  130. package/src/vite-env.d.ts +0 -1
@@ -1,80 +0,0 @@
1
- .login-view-container {
2
- gap: 4.8rem;
3
- align-items: center;
4
- min-width: 320px;
5
- max-width: 460px;
6
- }
7
-
8
- .login-view-form-container {
9
- gap: 2rem;
10
- align-items: inherit;
11
- width: 100%;
12
- }
13
-
14
- .login-view-form-container>div:last-child {
15
- padding: 0.4rem 3.2rem;
16
- gap: inherit;
17
- align-items: inherit;
18
- width: 100%;
19
- }
20
-
21
- .login-view-form-container>div:last-child>div {
22
- width: 100%;
23
- }
24
-
25
- button.login-btn {
26
- height: 4.8rem;
27
- width: 100%;
28
- justify-content: center;
29
- background-color: var(--primary-main-color);
30
- color: var(--neutral-text-stable-color);
31
- }
32
-
33
- button:disabled.login-btn {
34
- background-color: var(--neutral-disable-background-color);
35
- color: var(--neutral-text-disabled-color);
36
- cursor: context-menu;
37
- }
38
-
39
- .forgot-password-btn {
40
- color: var(--neutral-text-subtitle-color);
41
- }
42
-
43
- .forgot-password-btn:hover {
44
- text-decoration: underline;
45
- cursor: pointer;
46
- }
47
-
48
- .register-btn:hover {
49
- text-decoration: underline;
50
- cursor: pointer;
51
- }
52
-
53
- .login-social-media {
54
- gap: 1.6rem;
55
- flex-wrap: wrap;
56
- }
57
-
58
- .login-social-media>button {
59
- height: 4.8rem;
60
- width: calc((100% - 1.6rem) / 2);
61
- gap: 1.6rem;
62
- justify-content: center;
63
- border: var(--neutral-bolder-border);
64
- background-color: transparent;
65
- }
66
-
67
- .or-spacing {
68
- gap: 1.2rem;
69
- }
70
-
71
- .or-spacing>div:nth-child(odd) {
72
- height: 1px;
73
- width: 100%;
74
- flex: 1;
75
- background-color: var(--neutral-text-body-reverse-color);
76
- }
77
-
78
- .or-spacing>div:nth-child(even) {
79
- color: var(--neutral-text-subtitle-color);
80
- }
@@ -1,138 +0,0 @@
1
- import React, { CSSProperties } from 'react'
2
- import { Button, Text, TextField, Winicon } from '../../index'
3
- import styles from './view.module.css'
4
- import { FieldValues, useForm, UseFormReturn } from 'react-hook-form'
5
- import { useState } from 'react'
6
- import { useTranslation } from 'react-i18next'
7
-
8
- interface Props {
9
- logo: React.ReactNode | string,
10
- formData: {
11
- "username": { label: string, name: string, prefix?: React.ReactNode, onValidate?: React.FocusEventHandler<HTMLInputElement>, maxLength?: number },
12
- "password": { label: string, name: string, prefix?: React.ReactNode, onValidate?: React.FocusEventHandler<HTMLInputElement>, maxLength?: number },
13
- },
14
- onSubmit?: (data: FieldValues, methods?: UseFormReturn<any>) => void,
15
- title?: string,
16
- orText?: string,
17
- methods?: UseFormReturn<any>,
18
- buttonLoginLabel?: string,
19
- loginWithGoogle?: React.MouseEventHandler<HTMLButtonElement>,
20
- loginWithFacebook?: React.MouseEventHandler<HTMLButtonElement>,
21
- loginWithApple?: React.MouseEventHandler<HTMLButtonElement>,
22
- loginWithMicrosoft?: React.MouseEventHandler<HTMLButtonElement>,
23
- onRegister?: React.MouseEventHandler<HTMLDivElement>,
24
- registerPrefixText?: string,
25
- registerText?: string,
26
- forgotPasswordText?: string,
27
- onForgotPassword?: React.MouseEventHandler<HTMLDivElement>,
28
- style?: CSSProperties,
29
- className?: string,
30
- id?: string
31
- }
32
-
33
- export function WLoginView(props: Props) {
34
- const methods = useForm<any>({ shouldFocusError: false })
35
- const [isShowPass, setShowPass] = useState(false)
36
- const { t } = useTranslation()
37
-
38
- const _onSubmit = (ev: FieldValues) => {
39
- if (props.onSubmit) props.onSubmit(ev, methods)
40
- }
41
-
42
- return <form id={props.id} className={`col login-view-container ${styles['login-view-container']} ${props.className ?? ''}`} style={props.style}>
43
- {typeof props.logo === "string" ? <img alt='logo' src={props.logo} height={"36rem"} /> : props.logo}
44
- <div className={`col login-view-form-container ${styles['login-view-form-container']}`}>
45
- <Text className='heading-4'>{props.title ?? `${t("loginTo")} Wini`}</Text>
46
- <div className='col'>
47
- <div className='col' style={{ gap: "0.8rem", overflow: "visible" }}>
48
- <Text className='label-3'>{props.formData.username.label ?? t("username")}</Text>
49
- <TextField
50
- autoComplete='username'
51
- className="placeholder-2"
52
- placeholder={props.formData.username.label}
53
- style={{ height: "4.8rem" }}
54
- prefix={props.formData.username.prefix}
55
- name={props.formData.username.name}
56
- register={(props.methods ?? methods).register(props.formData.username.name, {
57
- onChange: (ev) => { ev.target.value = ev.target.value.trim() },
58
- onBlur: props.formData.username.onValidate
59
- }) as any}
60
- onComplete={(ev: any) => { ev.target.blur() }}
61
- helperText={(props.methods ?? methods).formState.errors?.[props.formData.username.name]?.message as any}
62
- />
63
- </div>
64
- <div className='col' style={{ gap: "0.8rem", overflow: "visible" }}>
65
- <Text className='label-3'>{props.formData.password.label ?? t("password")}</Text>
66
- <TextField
67
- autoComplete='current-password'
68
- className="placeholder-2"
69
- placeholder={props.formData.password.label}
70
- style={{ height: "4.8rem" }}
71
- prefix={props.formData.password.prefix}
72
- suffix={<button type='button' onClick={() => { setShowPass(!isShowPass) }}><Winicon src={`outline/user interface/${isShowPass ? "view" : "hide"}`} size={"1.6rem"} /></button>}
73
- name={props.formData.password.name}
74
- type={isShowPass ? "text" : "password"}
75
- register={(props.methods ?? methods).register(props.formData.password.name, {
76
- onChange: (ev) => { ev.target.value = ev.target.value.trim() },
77
- onBlur: props.formData.password.onValidate
78
- }) as any}
79
- onComplete={(ev: any) => {
80
- if ((props.methods ?? methods).watch(props.formData.password.name)?.length) {
81
- ev.target.blur()
82
- if (!props.formData.password.onValidate && props.onSubmit) _onSubmit((props.methods ?? methods).getValues())
83
- } else ev.target.blur()
84
- }}
85
- helperText={(props.methods ?? methods).formState.errors?.[props.formData.password.name]?.message as any}
86
- />
87
- </div>
88
- <Text className={`button-text-3 ${styles['forgot-password-btn']}`} onClick={props.onForgotPassword}>{props.forgotPasswordText ?? t("forgotPassword")}</Text>
89
- <div className='col' style={{ gap: "1.6rem" }}>
90
- <Button
91
- disabled={(props.methods ?? methods).watch(props.formData.username.name)?.length && (props.methods ?? methods).watch(props.formData.password.name)?.length ? false : true}
92
- className={`button-text-1 ${styles['login-btn']}`}
93
- onClick={props.onSubmit && (props.methods ?? methods).handleSubmit(_onSubmit)}
94
- label={props.buttonLoginLabel ?? t("login")}
95
- />
96
- <div className='row' style={{ justifyContent: "center", gap: "0.4rem" }}>
97
- <Text className='label-4'>{props.registerPrefixText ?? t("dontHaveAccount")}</Text>
98
- <Text className={`button-text-3 ${styles['register-btn']}`} onClick={props.onRegister}>{props.registerText ?? `${t("signupFor")} Wini`}</Text>
99
- </div>
100
- </div>
101
- {(props.loginWithGoogle || props.loginWithFacebook || props.loginWithApple || props.loginWithMicrosoft) ?
102
- <>
103
- <div className={`row ${styles['or-spacing']}`}>
104
- <div />
105
- <Text className="label-4">{props.orText ?? t("or")}</Text>
106
- <div />
107
- </div>
108
- <div className={`row ${styles['login-social-media']}`}>
109
- {props.loginWithGoogle && <Button
110
- className={`label-1`}
111
- onClick={props.loginWithGoogle}
112
- prefix={<Winicon src='color/social media/google' size={"2rem"} />}
113
- label="Google"
114
- />}
115
- {props.loginWithFacebook && <Button
116
- className={`label-1`}
117
- onClick={props.loginWithFacebook}
118
- prefix={<Winicon src='color/social media/logo-facebook' size={"2rem"} />}
119
- label="Facebook"
120
- />}
121
- {props.loginWithApple && <Button
122
- className={`label-1`}
123
- onClick={props.loginWithApple}
124
- prefix={<Winicon src='color/development/apple' size={"2rem"} />}
125
- label="Apple"
126
- />}
127
- {props.loginWithMicrosoft && <Button
128
- className={`label-1`}
129
- onClick={props.loginWithMicrosoft}
130
- prefix={<Winicon src='color/development/microsoft' size={"2rem"} />}
131
- label="Microsoft"
132
- />}
133
- </div>
134
- </> : null}
135
- </div>
136
- </div>
137
- </form>
138
- }
package/src/global.d.ts DELETED
@@ -1,5 +0,0 @@
1
- declare module '*.css' {
2
- const content: { [className: string]: string };
3
- export default content;
4
- }
5
-
package/src/index.tsx DELETED
@@ -1,66 +0,0 @@
1
- import { Checkbox } from './component/checkbox/checkbox'
2
- import { Select1, OptionsItem } from './component/select1/select1'
3
- import { Switch } from './component/switch/switch'
4
- import { showPopup, closePopup, Popup } from './component/popup/popup'
5
- import { showDialog, Dialog, DialogAlignment } from './component/dialog/dialog'
6
- import { DateTimePicker } from './component/date-time-picker/date-time-picker'
7
- import { SelectMultiple } from './component/input-multi-select/input-multi-select'
8
- import { ProgressBar } from './component/progress-bar/progress-bar'
9
- import { ComponentStatus, getStatusIcon } from './component/component-status'
10
- import { Text } from './component/text/text'
11
- import { Pagination } from './component/pagination/pagination'
12
- import { Table, TbCell, TbHeader, TbRow, TbBody, CellAlignItems } from './component/table/table'
13
- import { TextField } from './component/text-field/text-field'
14
- import { RadioButton } from './component/radio-button/radio-button'
15
- import { TextArea } from './component/text-area/text-area'
16
- import { ImportFile } from './component/import-file/import-file'
17
- import { ToastMessage } from './component/toast-noti/toast-noti'
18
- import { Calendar } from './component/calendar/calendar'
19
- import { InfiniteScroll } from './component/infinite-scroll/infinite-scroll'
20
- import { Rating } from './component/rating/rating'
21
- import { ProgressCircle } from './component/progress-circle/progress-circle'
22
- import { Carousel } from './component/carousel/carousel'
23
- import { ToastContainer } from 'react-toastify'
24
- import { Button } from './component/button/button'
25
- import { Tag } from './component/tag/tag'
26
- import { Winicon } from './component/wini-icon/winicon'
27
- import { NumberPicker } from './component/number-picker/number-picker'
28
- import { InputOtp } from './component/input-otp/input-otp'
29
- import { WLoginView } from './form/login/view'
30
- import { CustomCkEditor5 } from './component/ck-editor/ckeditor'
31
-
32
-
33
- export {
34
- Calendar,
35
- ComponentStatus,
36
- getStatusIcon,
37
- Checkbox,
38
- Select1, Switch,
39
- Popup, showPopup, closePopup,
40
- Dialog, showDialog, DialogAlignment,
41
- DateTimePicker,
42
- SelectMultiple,
43
- ProgressBar,
44
- Text,
45
- Pagination,
46
- Table, TbCell, TbHeader, TbBody, TbRow, CellAlignItems,
47
- TextField,
48
- RadioButton,
49
- TextArea,
50
- ImportFile,
51
- ToastMessage,
52
- InfiniteScroll,
53
- Rating,
54
- ProgressCircle,
55
- Carousel,
56
- ToastContainer,
57
- Button,
58
- Tag,
59
- Winicon,
60
- NumberPicker,
61
- InputOtp,
62
- WLoginView,
63
- CustomCkEditor5
64
- }
65
- export type { OptionsItem }
66
- export { i18n } from './language/i18n';
@@ -1,143 +0,0 @@
1
- import i18n from 'i18next';
2
- import { initReactI18next } from 'react-i18next';
3
-
4
- // Translation resources
5
- const resources = {
6
- en: {
7
- translation: {
8
- su: 'Su',
9
- mo: "Mo",
10
- tu: "Tu",
11
- we: "We",
12
- th: "Th",
13
- fr: "Fr",
14
- sa: "Sa",
15
- yesterday: "Yesterday",
16
- lastWeek: "Last week",
17
- lastMonth: "Last month",
18
- lastYear: "Last year",
19
- january: "January",
20
- february: "February",
21
- march: "March",
22
- april: "April",
23
- may: "May",
24
- june: "June",
25
- july: "July",
26
- august: "August",
27
- september: "September",
28
- october: "October",
29
- november: "November",
30
- december: "December",
31
- today: "Today",
32
- apply: "Apply",
33
- cancel: "Cancel",
34
- submit: "Submit",
35
- limitFileError: "File {{file.name}} exceeds the maximum size of {{sizeTitle}}",
36
- limitFileWarning: "File size should not exceed {{sizeTitle}}.",
37
- uploadFileAction: 'Click or drag and drop to upload file',
38
- file: "File",
39
- remove: "Remove",
40
- choose: "Choose",
41
- select: "Select",
42
- add: "Add",
43
- all: "All",
44
- noResultFound: "No result found",
45
- ofItems: "of {{totalItem}} items",
46
- page: "Page",
47
- go: "Go to",
48
- or: "Or",
49
- username: "Username",
50
- password: "Password",
51
- dontHaveAccount: "Don't have an account?",
52
- forgotPassword: "Forgot your password?",
53
- login: "Log in",
54
- loginTo: "Log in to",
55
- signup: "Sign up",
56
- signupFor: "Sign up for",
57
- "start-date": "Start date",
58
- "end-date": "End date",
59
- reset: "Reset",
60
- date: "Date",
61
- on: "On",
62
- daily: "Daily",
63
- weekly: "Weekly",
64
- monthly: "Monthly",
65
- last: "Last",
66
- },
67
- },
68
- vi: {
69
- translation: {
70
- su: 'CN',
71
- mo: "T2",
72
- tu: "T3",
73
- we: "T4",
74
- th: "T5",
75
- fr: "T6",
76
- sa: "T7",
77
- yesterday: "Hôm qua",
78
- lastWeek: "Tuần trước",
79
- lastMonth: "Tháng trước",
80
- lastYear: "Năm trước",
81
- january: "Tháng 1",
82
- february: "Tháng 2",
83
- march: "Tháng 3",
84
- april: "Tháng 4",
85
- may: "Tháng 5",
86
- june: "Tháng 6",
87
- july: "Tháng 7",
88
- august: "Tháng 8",
89
- september: "Tháng 9",
90
- october: "Tháng 10",
91
- november: "Tháng 11",
92
- december: "Tháng 12",
93
- today: "Hôm nay",
94
- apply: "Áp dụng",
95
- cancel: "Hủy",
96
- submit: "Xác nhận",
97
- limitFileError: "Tệp {{name}} vượt quá dung lượng tối đa {{sizeTitle}}",
98
- limitFileWarning: "Tệp không được vượt quá {{sizeTitle}}.",
99
- uploadFileAction: 'Nhấn hoặc kéo vào để tải tệp lên',
100
- file: "Tệp",
101
- remove: "Xóa",
102
- choose: "Chọn",
103
- select: "Chọn",
104
- add: "Thêm",
105
- all: "Tất cả",
106
- noResultFound: "Không tìm thấy kết quả",
107
- ofItems: "trên {{totalItem}} kết quả",
108
- page: "Trang",
109
- go: "Đi tới",
110
- or: "Hoặc",
111
- username: "Tên đăng nhập",
112
- password: "Mật khẩu",
113
- dontHaveAccount: "Chưa có tài khoản?",
114
- forgotPassword: "Quên mật khẩu?",
115
- login: "Đăng nhập",
116
- loginTo: "Đăng nhập vào",
117
- signup: "Đăng ký",
118
- signupFor: "Đăng ký",
119
- "start-date": "Ngày bắt đầu",
120
- "end-date": "Ngày kết thúc",
121
- reset: "Mặc định",
122
- date: "Ngày",
123
- on: "Vào",
124
- daily: "Hàng ngày",
125
- weekly: "Hàng tuần",
126
- monthly: "Hàng tháng",
127
- last: "Cuối tháng",
128
- },
129
- },
130
- }
131
-
132
- // Initialize i18n
133
- i18n.use(initReactI18next).init({
134
- resources,
135
- lng: 'en', // Default language
136
- fallbackLng: 'en', // Fallback language
137
- // backend: {loadPath: "somevariables"},
138
- interpolation: {
139
- escapeValue: false, // React already escapes values
140
- },
141
- })
142
-
143
- export { i18n }