@solidstarters/solid-core-ui 1.1.15 → 1.1.17

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 (173) hide show
  1. package/dist/components/auth/AuthLayout.d.ts +4 -0
  2. package/dist/components/auth/AuthLayout.d.ts.map +1 -0
  3. package/dist/components/auth/AuthLayout.js +80 -0
  4. package/dist/components/auth/AuthLayout.js.map +1 -0
  5. package/dist/components/auth/ForgotPasswordThankYou.d.ts +2 -0
  6. package/dist/components/auth/ForgotPasswordThankYou.d.ts.map +1 -0
  7. package/dist/components/auth/ForgotPasswordThankYou.js +16 -0
  8. package/dist/components/auth/ForgotPasswordThankYou.js.map +1 -0
  9. package/dist/components/auth/GoogleAuthChecking.d.ts +2 -0
  10. package/dist/components/auth/GoogleAuthChecking.d.ts.map +1 -0
  11. package/dist/components/auth/GoogleAuthChecking.js +99 -0
  12. package/dist/components/auth/GoogleAuthChecking.js.map +1 -0
  13. package/dist/components/auth/SolidChangeForcePassword.d.ts.map +1 -1
  14. package/dist/components/auth/SolidChangeForcePassword.js +44 -39
  15. package/dist/components/auth/SolidChangeForcePassword.js.map +1 -1
  16. package/dist/components/auth/SolidForgotPassword.d.ts.map +1 -1
  17. package/dist/components/auth/SolidForgotPassword.js +1 -2
  18. package/dist/components/auth/SolidForgotPassword.js.map +1 -1
  19. package/dist/components/auth/SolidInitialLoginOtp.d.ts +1 -3
  20. package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
  21. package/dist/components/auth/SolidInitialLoginOtp.js +16 -12
  22. package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
  23. package/dist/components/auth/SolidInitiateRegisterOtp.d.ts +1 -3
  24. package/dist/components/auth/SolidInitiateRegisterOtp.d.ts.map +1 -1
  25. package/dist/components/auth/SolidInitiateRegisterOtp.js +16 -12
  26. package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
  27. package/dist/components/auth/SolidLogin.d.ts.map +1 -1
  28. package/dist/components/auth/SolidLogin.js +12 -8
  29. package/dist/components/auth/SolidLogin.js.map +1 -1
  30. package/dist/components/auth/SolidRegister.d.ts.map +1 -1
  31. package/dist/components/auth/SolidRegister.js +13 -9
  32. package/dist/components/auth/SolidRegister.js.map +1 -1
  33. package/dist/components/auth/SolidResetPassword.d.ts +1 -4
  34. package/dist/components/auth/SolidResetPassword.d.ts.map +1 -1
  35. package/dist/components/auth/SolidResetPassword.js +14 -10
  36. package/dist/components/auth/SolidResetPassword.js.map +1 -1
  37. package/dist/components/common/GeneralSettings.d.ts +1 -3
  38. package/dist/components/common/GeneralSettings.d.ts.map +1 -1
  39. package/dist/components/common/GeneralSettings.js +21 -18
  40. package/dist/components/common/GeneralSettings.js.map +1 -1
  41. package/dist/components/common/NotFound.d.ts +2 -0
  42. package/dist/components/common/NotFound.d.ts.map +1 -0
  43. package/dist/components/common/NotFound.js +7 -0
  44. package/dist/components/common/NotFound.js.map +1 -0
  45. package/dist/components/common/SingleSelectAutoCompleteField.d.ts +1 -1
  46. package/dist/components/common/SingleSelectAutoCompleteField.d.ts.map +1 -1
  47. package/dist/components/common/SingleSelectAutoCompleteField.js +2 -2
  48. package/dist/components/common/SingleSelectAutoCompleteField.js.map +1 -1
  49. package/dist/components/common/SocialMediaLogin.d.ts.map +1 -1
  50. package/dist/components/common/SocialMediaLogin.js +3 -2
  51. package/dist/components/common/SocialMediaLogin.js.map +1 -1
  52. package/dist/components/common/SolidAdmin.d.ts +2 -0
  53. package/dist/components/common/SolidAdmin.d.ts.map +1 -0
  54. package/dist/components/common/SolidAdmin.js +5 -0
  55. package/dist/components/common/SolidAdmin.js.map +1 -0
  56. package/dist/components/common/SolidFormStepper.d.ts.map +1 -1
  57. package/dist/components/common/SolidFormStepper.js +8 -1
  58. package/dist/components/common/SolidFormStepper.js.map +1 -1
  59. package/dist/components/common/SolidThemeLink.d.ts +2 -0
  60. package/dist/components/common/SolidThemeLink.d.ts.map +1 -0
  61. package/dist/components/common/SolidThemeLink.js +5 -0
  62. package/dist/components/common/SolidThemeLink.js.map +1 -0
  63. package/dist/components/common/error.d.ts +9 -0
  64. package/dist/components/common/error.d.ts.map +1 -0
  65. package/dist/components/common/error.js +7 -0
  66. package/dist/components/common/error.js.map +1 -0
  67. package/dist/components/core/common/FilterComponent.js +7 -7
  68. package/dist/components/core/common/FilterComponent.js.map +1 -1
  69. package/dist/components/core/common/SolidConfigureLayoutElement.d.ts.map +1 -1
  70. package/dist/components/core/common/SolidConfigureLayoutElement.js +4 -3
  71. package/dist/components/core/common/SolidConfigureLayoutElement.js.map +1 -1
  72. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  73. package/dist/components/core/common/SolidGlobalSearchElement.js +35 -15
  74. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  75. package/dist/components/core/form/SolidFormLayouts.d.ts +3 -0
  76. package/dist/components/core/form/SolidFormLayouts.d.ts.map +1 -0
  77. package/dist/components/core/form/SolidFormLayouts.js +57 -0
  78. package/dist/components/core/form/SolidFormLayouts.js.map +1 -0
  79. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  80. package/dist/components/core/form/SolidFormView.js +13 -1
  81. package/dist/components/core/form/SolidFormView.js.map +1 -1
  82. package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
  83. package/dist/components/core/form/fields/SolidMediaMultipleField.js +11 -7
  84. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  85. package/dist/components/core/form/fields/SolidMediaSingleField.js +3 -2
  86. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  87. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  88. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +4 -4
  89. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  90. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +1 -1
  91. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  92. package/dist/components/core/kanban/SolidKanbanView.js +2 -2
  93. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  94. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  95. package/dist/components/core/list/SolidListView.js +6 -28
  96. package/dist/components/core/list/SolidListView.js.map +1 -1
  97. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  98. package/dist/components/core/model/CreateModel.js +66 -18
  99. package/dist/components/core/model/CreateModel.js.map +1 -1
  100. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  101. package/dist/components/core/model/FieldMetaData.js +2 -2
  102. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  103. package/dist/components/core/model/FieldMetaDataForm.js +21 -21
  104. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  105. package/dist/components/core/model/ModelMetaData.js +15 -15
  106. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  107. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  108. package/dist/components/core/module/CreateModule.js +5 -2
  109. package/dist/components/core/module/CreateModule.js.map +1 -1
  110. package/dist/components/core/users/CreateUser.js +2 -2
  111. package/dist/components/layout/AdminLayout.d.ts +4 -0
  112. package/dist/components/layout/AdminLayout.d.ts.map +1 -0
  113. package/dist/components/layout/AdminLayout.js +86 -0
  114. package/dist/components/layout/AdminLayout.js.map +1 -0
  115. package/dist/components/layout/AppConfig.d.ts.map +1 -1
  116. package/dist/components/layout/AppConfig.js +4 -9
  117. package/dist/components/layout/AppConfig.js.map +1 -1
  118. package/dist/components/layout/user-profile-menu.js +1 -1
  119. package/dist/components/layout/user-profile-menu.js.map +1 -1
  120. package/dist/index.d.ts +11 -0
  121. package/dist/index.d.ts.map +1 -1
  122. package/dist/index.js +12 -0
  123. package/dist/index.js.map +1 -1
  124. package/dist/nextAuth/authProviders.d.ts +4 -0
  125. package/dist/nextAuth/authProviders.d.ts.map +1 -0
  126. package/dist/nextAuth/authProviders.js +231 -0
  127. package/dist/nextAuth/authProviders.js.map +1 -0
  128. package/dist/nextAuth/refreshAccessToken.d.ts +2 -0
  129. package/dist/nextAuth/refreshAccessToken.d.ts.map +1 -0
  130. package/dist/nextAuth/refreshAccessToken.js +76 -0
  131. package/dist/nextAuth/refreshAccessToken.js.map +1 -0
  132. package/package.json +1 -1
  133. package/src/components/auth/AuthLayout.tsx +126 -0
  134. package/src/components/auth/ForgotPasswordThankYou.tsx +45 -0
  135. package/src/components/auth/GoogleAuthChecking.tsx +60 -0
  136. package/src/components/auth/SolidChangeForcePassword.tsx +21 -32
  137. package/src/components/auth/SolidForgotPassword.tsx +3 -2
  138. package/src/components/auth/SolidInitialLoginOtp.tsx +16 -8
  139. package/src/components/auth/SolidInitiateRegisterOtp.tsx +17 -9
  140. package/src/components/auth/SolidLogin.tsx +16 -10
  141. package/src/components/auth/SolidRegister.tsx +17 -9
  142. package/src/components/auth/SolidResetPassword.tsx +13 -6
  143. package/src/components/common/GeneralSettings.tsx +7 -2
  144. package/src/components/common/NotFound.tsx +22 -0
  145. package/src/components/common/SingleSelectAutoCompleteField.tsx +2 -2
  146. package/src/components/common/SocialMediaLogin.tsx +24 -25
  147. package/src/components/common/SolidAdmin.tsx +7 -0
  148. package/src/components/common/SolidFormStepper.tsx +55 -2
  149. package/src/components/common/SolidThemeLink.tsx +5 -0
  150. package/src/components/common/error.tsx +30 -0
  151. package/src/components/core/common/FilterComponent.tsx +70 -70
  152. package/src/components/core/common/SolidConfigureLayoutElement.tsx +6 -1
  153. package/src/components/core/common/SolidGlobalSearchElement.tsx +45 -17
  154. package/src/components/core/form/SolidFormLayouts.tsx +93 -0
  155. package/src/components/core/form/SolidFormView.tsx +64 -3
  156. package/src/components/core/form/fields/SolidMediaMultipleField.tsx +14 -9
  157. package/src/components/core/form/fields/SolidMediaSingleField.tsx +3 -3
  158. package/src/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +25 -23
  159. package/src/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +1 -1
  160. package/src/components/core/kanban/SolidKanbanView.tsx +4 -4
  161. package/src/components/core/list/SolidListView.tsx +4 -61
  162. package/src/components/core/model/CreateModel.tsx +119 -18
  163. package/src/components/core/model/FieldMetaData.tsx +2 -0
  164. package/src/components/core/model/FieldMetaDataForm.tsx +26 -26
  165. package/src/components/core/model/ModelMetaData.tsx +21 -21
  166. package/src/components/core/module/CreateModule.tsx +11 -3
  167. package/src/components/core/users/CreateUser.tsx +2 -2
  168. package/src/components/layout/AdminLayout.tsx +62 -0
  169. package/src/components/layout/AppConfig.tsx +4 -3
  170. package/src/components/layout/user-profile-menu.tsx +1 -1
  171. package/src/index.ts +17 -1
  172. package/src/nextAuth/authProviders.tsx +220 -0
  173. package/src/nextAuth/refreshAccessToken.tsx +27 -0
@@ -1,15 +1,21 @@
1
1
  "use client"
2
2
  import { signIn } from 'next-auth/react'
3
- import { useRouter } from 'next/navigation';
3
+ import { usePathname, useRouter } from 'next/navigation';
4
4
  import { Button } from 'primereact/button'
5
5
  import React from 'react'
6
6
 
7
7
  export const SocialMediaLogin = () => {
8
8
  const router = useRouter();
9
-
9
+ const pathname = usePathname();
10
10
  return (
11
11
  <div className="flex justify-content-center mt-4 gap-3">
12
- <Button icon={() => (
12
+ <Button
13
+ className='flex justify-content-center gap-3 w-full google-auth-button'
14
+ outlined
15
+ severity="secondary"
16
+ onClick={() => router.push(`${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/iam/google/connect`)}
17
+ // onClick={()=>signIn('google', {callbackUrl :'https://uat-api.lm.solidxai.com/api/iam/google/connect'})}
18
+ >
13
19
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
14
20
  <g clipPath="url(#clip0_3520_3825)">
15
21
  <path d="M23.0938 9.91355L13.3044 9.91309C12.8721 9.91309 12.5217 10.2634 12.5217 10.6957V13.823C12.5217 14.2552 12.8721 14.6056 13.3044 14.6056H18.8171C18.2135 16.1722 17.0868 17.4842 15.6493 18.3178L18 22.387C21.7707 20.2062 24 16.3799 24 12.0965C24 11.4866 23.955 11.0506 23.8651 10.5597C23.7968 10.1867 23.4729 9.91355 23.0938 9.91355Z" fill="#167EE6" />
@@ -25,30 +31,23 @@ export const SocialMediaLogin = () => {
25
31
  </clipPath>
26
32
  </defs>
27
33
  </svg>
28
- )}
29
- className='flex gap-3'
30
- outlined
31
- severity="secondary"
32
- label='Sign In with Google'
33
- onClick={() => router.push(`${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/iam/google/connect`)}
34
- // onClick={()=>signIn('google', {callbackUrl :'https://uat-api.lm.solidxai.com/api/iam/google/connect'})}
35
- >
34
+ {pathname.includes("register") ? "Continue With Google" : "Sign In with Google"}
36
35
  </Button>
37
36
  {/* <Button icon={() => (
38
- <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" xlinkHref="http://www.w3.org/1999/xlink">
39
- <rect width="24" height="24" fill="url(#pattern0_3520_3835)" />
40
- <defs>
41
- <pattern id="pattern0_3520_3835" patternContentUnits="objectBoundingBox" width="1" height="1">
42
- <use xlinkHref="#image0_3520_3835" transform="scale(0.00195312)" />
43
- </pattern>
44
- <image id="image0_3520_3835" width="512" height="512" xlinkHref="data:image/png;base64,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" />
45
- </defs>
46
- </svg>
47
- )}
48
- outlined
49
- severity="secondary"
50
- >
51
- </Button> */}
37
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" xlinkHref="http://www.w3.org/1999/xlink">
38
+ <rect width="24" height="24" fill="url(#pattern0_3520_3835)" />
39
+ <defs>
40
+ <pattern id="pattern0_3520_3835" patternContentUnits="objectBoundingBox" width="1" height="1">
41
+ <use xlinkHref="#image0_3520_3835" transform="scale(0.00195312)" />
42
+ </pattern>
43
+ <image id="image0_3520_3835" width="512" height="512" xlinkHref="data:image/png;base64,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" />
44
+ </defs>
45
+ </svg>
46
+ )}
47
+ outlined
48
+ severity="secondary"
49
+ >
50
+ </Button> */}
52
51
  </div>
53
52
  )
54
53
  }
@@ -0,0 +1,7 @@
1
+ import React from 'react'
2
+
3
+ export const SolidAdmin = () => {
4
+ return (
5
+ <div>SolidAdmin</div>
6
+ )
7
+ }
@@ -1,12 +1,65 @@
1
+ "use client"
1
2
  import { Button } from 'primereact/button'
2
- import React from 'react'
3
+ import { OverlayPanel } from 'primereact/overlaypanel';
4
+ import React, { useRef } from 'react'
3
5
 
4
6
  export const SolidFormStepper = () => {
7
+ const formStepperOverlay = useRef(null);
8
+
5
9
  return (
6
10
  <div className='flex justify-content-end'>
7
11
  <Button type='button' severity='secondary' className='solid-step-button btn-step-first'>Step 1</Button>
8
12
  <Button type='button' className='solid-step-button btn-step'>Step 2</Button>
9
- <Button type='button' className='solid-step-button btn-step-last'>Step 3</Button>
13
+ <Button type='button' className='solid-step-button btn-step-last relative'>
14
+ Step 3
15
+ <div className='absolute' style={{ right: 8 }}>
16
+ <Button
17
+ type='button'
18
+ icon="pi pi-angle-down"
19
+ text
20
+ size='small'
21
+ style={{ height: 24, width: '1.5rem' }}
22
+ onClick={(e) =>
23
+ // @ts-ignore
24
+ formStepperOverlay.current.toggle(e)
25
+ }
26
+ />
27
+ <OverlayPanel ref={formStepperOverlay} className="solid-custom-overlay solid-form-stepper-overlay">
28
+ <div className='flex flex-column gap-1 p-1'>
29
+ <Button
30
+ type='button'
31
+ label='Step 01'
32
+ size='small'
33
+ text
34
+ />
35
+ <Button
36
+ type='button'
37
+ label='Step 02'
38
+ size='small'
39
+ text
40
+ />
41
+ <Button
42
+ type='button'
43
+ label='Step 03'
44
+ size='small'
45
+ text
46
+ />
47
+ <Button
48
+ type='button'
49
+ label='Step 04'
50
+ size='small'
51
+ text
52
+ />
53
+ <Button
54
+ type='button'
55
+ label='Step 05'
56
+ size='small'
57
+ text
58
+ />
59
+ </div>
60
+ </OverlayPanel>
61
+ </div>
62
+ </Button>
10
63
  </div>
11
64
  )
12
65
  }
@@ -0,0 +1,5 @@
1
+ export const SolidThemeLink = () => {
2
+ return (
3
+ <link id="theme-css" href={`/themes/solid-light-purple/theme.css`} rel="stylesheet"></link>
4
+ )
5
+ }
@@ -0,0 +1,30 @@
1
+ "use client"; // Error components must be Client Components
2
+
3
+ interface CustomError extends Error {
4
+ errMessage: string;
5
+ }
6
+
7
+ export default function Error({
8
+ error,
9
+ reset,
10
+ }: {
11
+ error: CustomError;
12
+ reset?: () => void;
13
+ }) {
14
+ return (
15
+ <div>
16
+ <div className="d-flex justify-content-center align-items-center vh-100">
17
+ <div className="text-center">
18
+ <h2 className="display-4 fw-bold">{error?.errMessage}</h2>
19
+ <p className="fs-3">
20
+ <span className="text-danger">Opps!</span> Something went wrong!
21
+ </p>
22
+ <p className="lead">Sorry for inconvience</p>
23
+ <button className="btn btn-primary" onClick={() => reset?.()}>
24
+ Try again
25
+ </button>
26
+ </div>
27
+ </div>
28
+ </div>
29
+ );
30
+ }
@@ -94,64 +94,64 @@ const FilterRuleComponent = ({ viewData, fields, rule, onChange, onAddRule, onAd
94
94
  // <div style={{ marginLeft: (level - 1) * 10 + 'px' }} className="filter-rule">
95
95
 
96
96
  <div className='mt-2'>
97
- <div className='formgrid grid'>
98
- <div className='col-3'>
99
- <Dropdown
100
- key={rule.id}
101
- value={fieldName.name}
102
- onChange={e => {
103
- setFieldName({ name: e.value, value: e.value })
104
- onChange(rule.id, 'fieldName', e.value)
105
- }}
106
- options={fields}
107
- optionLabel='name'
108
- optionValue='name'
109
- placeholder="Select Field"
110
- className='w-full'
111
- />
112
- </div>
113
- <div className='col-7'>
114
- <div className='formgrid grid'>
115
- {rule.fieldName ?
116
- <SolidFilterFields viewData={viewData} fieldMetadata={viewData.data.solidFieldsMetadata[rule.fieldName]} onChange={onChange} index={rule.id} rule={rule}></SolidFilterFields>
117
- : <>
118
- <div className='col-6'>
119
- <InputText
120
- disabled
121
- value={rule.value || ''}
122
- placeholder="operator"
123
- className='w-full'
124
- />
125
- </div>
126
- <div className='col-6'>
127
- <InputText
128
- disabled
129
- value={rule.value || ''}
130
- placeholder="value"
131
- className='w-full'
132
- />
133
- </div>
134
- </>
135
- }
97
+ <div className='flex align-items-center gap-3'>
98
+ <div className='formgrid grid w-full'>
99
+ <div className='col-4'>
100
+ <Dropdown
101
+ key={rule.id}
102
+ value={fieldName.value}
103
+ onChange={e => {
104
+ setFieldName({ name: e.value, value: e.value })
105
+ onChange(rule.id, 'fieldName', e.value)
106
+ }}
107
+ options={fields}
108
+ optionLabel='name'
109
+ optionValue='value'
110
+ placeholder="Select Field"
111
+ className='w-full'
112
+ />
136
113
  </div>
137
- </div>
138
- <div className='col-2'>
139
- <div className='formgrid grid'>
140
- <div className='col-4 flex align-items-center'>
141
- <Button text severity='secondary' icon="pi pi-plus" size='small' onClick={() => onAddRule(rule.parentRule)} className='solid-filter-action-btn' />
142
- </div>
143
- <div className='col-4 flex align-items-center'>
144
- <Button text severity='secondary' icon={
145
- <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
146
- <path d="M11.6665 13.334H13.3332V11.6673H14.9998V10.0007H13.3332V8.33398H11.6665V10.0007H9.99984V11.6673H11.6665V13.334ZM3.33317 16.6673C2.87484 16.6673 2.48248 16.5041 2.15609 16.1777C1.8297 15.8513 1.6665 15.459 1.6665 15.0007V5.00065C1.6665 4.54232 1.8297 4.14996 2.15609 3.82357C2.48248 3.49718 2.87484 3.33398 3.33317 3.33398H8.33317L9.99984 5.00065H16.6665C17.1248 5.00065 17.5172 5.16385 17.8436 5.49023C18.17 5.81662 18.3332 6.20898 18.3332 6.66732V15.0007C18.3332 15.459 18.17 15.8513 17.8436 16.1777C17.5172 16.5041 17.1248 16.6673 16.6665 16.6673H3.33317ZM3.33317 15.0007H16.6665V6.66732H9.31234L7.64567 5.00065H3.33317V15.0007Z" fill="#4B4D52" />
147
- </svg>
148
- } size='small' onClick={() => onAddGroup(rule.id)} className='solid-filter-action-btn p-0' />
149
- </div>
150
- <div className='col-4 flex align-items-center'>
151
- <Button text severity='secondary' icon="pi pi-trash" size='small' onClick={() => onDelete(rule.id)} className='solid-filter-action-btn' />
114
+ <div className='col-8'>
115
+ <div className='formgrid grid'>
116
+ {rule.fieldName ?
117
+ <SolidFilterFields viewData={viewData} fieldMetadata={viewData.data.solidFieldsMetadata[rule.fieldName]} onChange={onChange} index={rule.id} rule={rule}></SolidFilterFields>
118
+ : <>
119
+ <div className='col-6'>
120
+ <InputText
121
+ disabled
122
+ value={rule.value || ''}
123
+ placeholder="operator"
124
+ className='w-full'
125
+ />
126
+ </div>
127
+ <div className='col-6'>
128
+ <InputText
129
+ disabled
130
+ value={rule.value || ''}
131
+ placeholder="value"
132
+ className='w-full'
133
+ />
134
+ </div>
135
+ </>
136
+ }
152
137
  </div>
153
138
  </div>
154
139
  </div>
140
+ <div className='formgrid grid'>
141
+ <div className='col-4 px-0 flex align-items-center'>
142
+ <Button text severity='secondary' icon="pi pi-plus" size='small' onClick={() => onAddRule(rule.parentRule)} className='solid-filter-action-btn' />
143
+ </div>
144
+ <div className='col-4 px-0 flex align-items-center'>
145
+ <Button text severity='secondary' icon={
146
+ <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
147
+ <path d="M11.6665 13.334H13.3332V11.6673H14.9998V10.0007H13.3332V8.33398H11.6665V10.0007H9.99984V11.6673H11.6665V13.334ZM3.33317 16.6673C2.87484 16.6673 2.48248 16.5041 2.15609 16.1777C1.8297 15.8513 1.6665 15.459 1.6665 15.0007V5.00065C1.6665 4.54232 1.8297 4.14996 2.15609 3.82357C2.48248 3.49718 2.87484 3.33398 3.33317 3.33398H8.33317L9.99984 5.00065H16.6665C17.1248 5.00065 17.5172 5.16385 17.8436 5.49023C18.17 5.81662 18.3332 6.20898 18.3332 6.66732V15.0007C18.3332 15.459 18.17 15.8513 17.8436 16.1777C17.5172 16.5041 17.1248 16.6673 16.6665 16.6673H3.33317ZM3.33317 15.0007H16.6665V6.66732H9.31234L7.64567 5.00065H3.33317V15.0007Z" fill="#4B4D52" />
148
+ </svg>
149
+ } size='small' onClick={() => onAddGroup(rule.id)} className='solid-filter-action-btn p-0' />
150
+ </div>
151
+ <div className='col-4 px-0 flex align-items-center'>
152
+ <Button text severity='secondary' icon="pi pi-trash" size='small' onClick={() => onDelete(rule.id)} className='solid-filter-action-btn' />
153
+ </div>
154
+ </div>
155
155
  </div>
156
156
 
157
157
  {rule.children && rule.children.map(nestedRule => (
@@ -380,24 +380,24 @@ const FilterComponent = ({ viewData, fields, filterRules, setFilterRules, transf
380
380
 
381
381
  return (
382
382
  <div className=''>
383
- {filterRules.map(rule => (
384
- <FilterGroupComponent
385
- key={rule.id}
386
- viewData={viewData}
387
- fields={fields}
388
- group={rule}
389
- onChange={handleChange}
390
- onAddRule={handleAddRule}
391
- onAddGroup={handleAddGroup}
392
- onDelete={handleDeleteRule}
393
- level={0} // Top-level group
394
- />
395
- ))}
396
- <div className='text-center'>
383
+ {filterRules.map(rule => (
384
+ <FilterGroupComponent
385
+ key={rule.id}
386
+ viewData={viewData}
387
+ fields={fields}
388
+ group={rule}
389
+ onChange={handleChange}
390
+ onAddRule={handleAddRule}
391
+ onAddGroup={handleAddGroup}
392
+ onDelete={handleDeleteRule}
393
+ level={0} // Top-level group
394
+ />
395
+ ))}
396
+ <div className='text-left mt-3'>
397
397
  <Button label="Apply" size="small" onClick={() => transformFilterRules(filterRules)} type="submit" className="small-button" />
398
-
398
+ {/*
399
399
  <br></br>
400
- <textarea value={printedState} readOnly rows={20} cols={100} style={{ marginTop: '20px' }} />
400
+ <textarea value={printedState} readOnly rows={20} cols={100} style={{ marginTop: '20px' }} /> */}
401
401
  </div>
402
402
  </div>
403
403
  );
@@ -16,6 +16,7 @@ export const SolidConfigureLayoutElement = ({ setShowArchived, showArchived, vie
16
16
  // const [visible, setVisible] = useState<boolean>(false);
17
17
  const op = useRef(null);
18
18
  const customizeLayout = useRef(null);
19
+ const [isOverlayOpen, setIsOverlayOpen] = useState(true);
19
20
 
20
21
  const categories: FilterColumns[] = [
21
22
  { name: 'ID', key: 'A' },
@@ -64,6 +65,7 @@ export const SolidConfigureLayoutElement = ({ setShowArchived, showArchived, vie
64
65
  icon='pi pi-sliders-h'
65
66
  label="Customize Layout"
66
67
  size="small"
68
+ text={isOverlayOpen}
67
69
  className="text-left gap-2 w-13rem"
68
70
  // @ts-ignore
69
71
  onClick={(e) => customizeLayout.current.toggle(e)}
@@ -71,7 +73,10 @@ export const SolidConfigureLayoutElement = ({ setShowArchived, showArchived, vie
71
73
  />
72
74
  <p className="mt-3 mb-1 font-medium" style={{ color: 'var(--gray-400)' }}>Saved Layouts</p>
73
75
  <Button text severity="secondary" label="Diet Tracking" icon="pi pi-plus" size="small" />
74
- <OverlayPanel ref={customizeLayout} className="customize-layout-panel" style={{ minWidth: 250 }}>
76
+ <OverlayPanel ref={customizeLayout} className="customize-layout-panel" style={{ minWidth: 250 }}
77
+ onShow={() => setIsOverlayOpen(false)}
78
+ onHide={() => setIsOverlayOpen(true)}
79
+ >
75
80
  <div className="solid-layout-accordion">
76
81
  <Accordion multiple expandIcon="pi pi-chevron-down" collapseIcon="pi pi-chevron-up">
77
82
  <AccordionTab header="Switch Type">
@@ -149,7 +149,7 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, handleApplyCusto
149
149
  useEffect(() => {
150
150
  if (viewData?.data?.solidFieldsMetadata) {
151
151
  const fieldsData = viewData?.data?.solidFieldsMetadata
152
- const fieldsList = Object.entries(fieldsData).map(([key, value]: any) => ({ name: key, value: key }));
152
+ const fieldsList = Object.entries(fieldsData).map(([key, value]: any) => ({ name: value.displayName, value: key }));
153
153
  setFields(fieldsList)
154
154
  }
155
155
  }, [])
@@ -196,10 +196,8 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, handleApplyCusto
196
196
  if (inputValue?.trim()) {
197
197
  const newChip = { columnName: columnName || firstFilterableFieldName, value: inputValue.trim() };
198
198
 
199
- setSearchChips((prevChips) => {
200
- const updatedChips = [...prevChips, newChip];
201
- return updatedChips
202
- });
199
+ setSearchChips((prevChips) => [...prevChips, newChip]);
200
+ setInputValue(""); // Clear input value
203
201
  }
204
202
  }
205
203
 
@@ -228,7 +226,7 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, handleApplyCusto
228
226
  children: searchChips.map((chip) => ({
229
227
  children: [],
230
228
  fieldName: chip.columnName,
231
- id: null,
229
+ id: Date.now() + getRandomInt(1, 500),
232
230
  matchMode: "$containsi",
233
231
  parentRule: 1,
234
232
  type: "rule",
@@ -275,9 +273,25 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, handleApplyCusto
275
273
  return <div className="flex align-items-center gap-2 text-base" dangerouslySetInnerHTML={{ __html: item }}></div>;
276
274
  };
277
275
 
276
+ const handleRemoveChip = (removedChipValue: any) => {
277
+ console.log("Removing chip:", removedChipValue);
278
+
279
+ setSearchChips((prevChips) => {
280
+ const updatedChips = prevChips.filter((chip) => chip.value !== removedChipValue);
281
+ console.log("Updated searchChips after removal:", updatedChips);
282
+ return updatedChips;
283
+ });
284
+
285
+ // Prevent clearing customChip if it is different from the removed chip
286
+ if (customChip === removedChipValue) {
287
+ console.log("Clearing custom chip:", customChip);
288
+ setCustomChip("");
289
+ }
290
+ };
291
+
278
292
  return (
279
293
  <div className="flex justify-content-center solid-custom-filter-wrapper">
280
- <div className="p-inputgroup flex-1"
294
+ <div className="p-inputgroup flex-1 custom-input-group"
281
295
  ref={chipsRef}
282
296
  onClick={(e) => {
283
297
  e.preventDefault();
@@ -288,11 +302,23 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, handleApplyCusto
288
302
  >
289
303
  <Chips
290
304
  value={chipsToDisplay}
291
- onChange={handleChipChange}
292
- onRemove={(e) => {
293
- setCustomChip("");
294
- setSearchChips([]);
295
- clearFilter();
305
+ onChange={(e: any) => {
306
+ // Compare previous and new values to detect removal
307
+ if (e.value.length < searchChips.length) {
308
+ const removedChip = searchChips.find(chip => !e.value.includes(chip.value));
309
+ if (removedChip) {
310
+ handleRemoveChip(removedChip.value);
311
+ }
312
+ } else {
313
+ setSearchChips(e.value.map((val: any) => ({ columnName: firstFilterableFieldName, value: val })));
314
+ }
315
+ }}
316
+ onRemove={(event) => {
317
+ setSearchChips((prevChips) => prevChips.filter((chip) => chip.value !== event.value));
318
+ if (searchChips.length === 1) {
319
+ setCustomChip("");
320
+ clearFilter();
321
+ }
296
322
  }}
297
323
  itemTemplate={customChipTemplate}
298
324
  onKeyDown={handleKeyDown}
@@ -303,13 +329,15 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, handleApplyCusto
303
329
  />
304
330
  <Button
305
331
  icon="pi pi-search"
332
+ style={{ fontSize: 10 }}
306
333
  severity="secondary"
307
334
  outlined size="small"
308
- onClick={(e) => {
309
- if (op.current && e.target) {
310
- op.current.toggle(e);
311
- }
312
- }}
335
+ onClick={() => setShowGlobalSearchElement(true)}
336
+ // onClick={(e) => {
337
+ // if (op.current && e.target) {
338
+ // op.current.toggle(e);
339
+ // }
340
+ // }}
313
341
  />
314
342
  </div>
315
343
  <OverlayPanel ref={op} className="solid-custom-overlay" style={{ minWidth: 378 }}>
@@ -0,0 +1,93 @@
1
+ "use client"
2
+ import { useGetmodelByIdQuery } from "@/redux/api/modelApi";
3
+ import { useGetmoduleByIdQuery } from "@/redux/api/moduleApi";
4
+ import { useGetusersByIdQuery } from "@/redux/api/userApi";
5
+ import { useEffect } from "react";
6
+ import CreateModel from "../model/CreateModel";
7
+ import CreateModule from "../module/CreateModule";
8
+ import CreateUser from "../users/CreateUser";
9
+ import SolidFormView from "./SolidFormView";
10
+ import { camelCase } from "change-case";
11
+
12
+ type SolidViewParams = {
13
+ params: {
14
+ moduleName: string;
15
+ modelName: string;
16
+ id: string;
17
+ };
18
+ };
19
+
20
+ const SolidFormLayouts = ({ params }: any) => {
21
+
22
+ const {
23
+ data: modelData,
24
+ error,
25
+ isLoading,
26
+ isError,
27
+ refetch
28
+ } = useGetmodelByIdQuery(params.id);
29
+ useEffect(() => {
30
+ refetch();
31
+ }, [refetch]);
32
+
33
+ const {
34
+ data: moduleData,
35
+ error: moduleError,
36
+ isLoading: isModuleLoading,
37
+ isError: isModuleError,
38
+ refetch: refetchModule
39
+ } = useGetmoduleByIdQuery(params.id);
40
+ useEffect(() => {
41
+ refetchModule();
42
+ }, [refetchModule]);
43
+
44
+ const {
45
+ data: userData,
46
+ error: usererror,
47
+ isLoading: isuserLoading,
48
+ isError: isuserError,
49
+ refetch: refetchuser
50
+ } = useGetusersByIdQuery(params.id);
51
+ useEffect(() => {
52
+ refetchuser();
53
+ }, [refetchuser]);
54
+
55
+ return (
56
+ <div className="page-parent-wrapper">
57
+ {params.modelName === "model-metadata" &&
58
+ // <SolidFormView {...params} embeded={false} modelName={camelCase(params.modelName)} />
59
+ (params.id === "new" ?
60
+ <CreateModel params={params}></CreateModel>
61
+ :
62
+ <CreateModel params={params} data={modelData?.data}></CreateModel>
63
+ )
64
+ }
65
+ {params.modelName === "module-metadata" &&
66
+ // <SolidFormView {...params} embeded={false} modelName={camelCase(params.modelName)} />
67
+ (params.id === "new" ?
68
+ <CreateModule params={params}></CreateModule>
69
+ :
70
+ <CreateModule params={params} data={moduleData?.data}></CreateModule>
71
+ )
72
+ }
73
+
74
+ {params.modelName === "user" &&
75
+ // <SolidFormView {...params} embeded={false} modelName={camelCase(params.modelName)} />
76
+ (params.id === "new" ?
77
+ <CreateUser params={params}></CreateUser>
78
+ :
79
+ <CreateUser params={params} data={userData?.data}></CreateUser>
80
+ )
81
+ }
82
+
83
+ {params.modelName === "field-metadata" &&
84
+ <SolidFormView {...params} embeded={false} modelName={camelCase(params.modelName)} />
85
+ }
86
+ {params.modelName !== "field-metadata" && params.modelName !== "model-metadata" && params.modelName !== "module-metadata" && params.modelName !== "user" &&
87
+ <SolidFormView {...params} embeded={false} modelName={camelCase(params.modelName)} />
88
+ }
89
+ </div>
90
+ )
91
+ }
92
+
93
+ export default SolidFormLayouts