@sarasanalytics-com/design-system 0.0.43 → 0.0.45

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 (378) hide show
  1. package/README.md +13 -34
  2. package/esm2022/interfaces/avatar-interface.mjs +2 -0
  3. package/esm2022/interfaces/button-interface.mjs +10 -0
  4. package/esm2022/interfaces/card-carousel-interface.mjs +2 -0
  5. package/esm2022/interfaces/chip-interface.mjs +2 -0
  6. package/esm2022/interfaces/grid-interface.mjs +2 -0
  7. package/esm2022/interfaces/guide-card-interface.mjs +2 -0
  8. package/esm2022/interfaces/icon-interface.mjs +16 -0
  9. package/esm2022/interfaces/message-banner.mjs +2 -0
  10. package/esm2022/interfaces/option-interface.mjs +2 -0
  11. package/esm2022/interfaces/select-interface.mjs +2 -0
  12. package/esm2022/interfaces/tab-interface.mjs +2 -0
  13. package/esm2022/interfaces/toast-interface.mjs +2 -0
  14. package/esm2022/lib/accordion/accordion.component.mjs +115 -0
  15. package/esm2022/lib/avatar/avatar.component.mjs +56 -0
  16. package/esm2022/lib/button/button.component.mjs +100 -0
  17. package/esm2022/lib/calendar-header/calendar-header.component.mjs +168 -0
  18. package/esm2022/lib/card/card-body/card-body.component.mjs +11 -0
  19. package/esm2022/lib/card/card-custom-header/card-custom-header.component.mjs +11 -0
  20. package/esm2022/lib/card/card-footer-actions/card-footer-actions.component.mjs +11 -0
  21. package/esm2022/lib/card/card-icon/card-icon.component.mjs +11 -0
  22. package/esm2022/lib/card/card-title-actions/card-title-actions.component.mjs +11 -0
  23. package/esm2022/lib/card/card.component.mjs +111 -0
  24. package/esm2022/lib/card/checkbox-card/checkbox-card.component.mjs +41 -0
  25. package/esm2022/lib/card/guide-card/guide-card.component.mjs +19 -0
  26. package/esm2022/lib/card-carousel/card-carousel.component.mjs +87 -0
  27. package/esm2022/lib/checkbox/checkbox.component.mjs +38 -0
  28. package/esm2022/lib/chips/chips.component.mjs +62 -0
  29. package/esm2022/lib/component-library.component.mjs +19 -0
  30. package/esm2022/lib/component-library.service.mjs +14 -0
  31. package/esm2022/lib/datepicker/datepicker.component.mjs +40 -0
  32. package/esm2022/lib/form-input/form-input.component.mjs +219 -0
  33. package/esm2022/lib/form-select/form-select.component.mjs +77 -0
  34. package/esm2022/lib/grid-cell/grid-cell.component.mjs +84 -0
  35. package/esm2022/lib/header/header.component.mjs +37 -0
  36. package/esm2022/lib/icon/icon.component.mjs +73 -0
  37. package/esm2022/lib/icon/icon.service.mjs +28 -0
  38. package/esm2022/lib/left-nav/left-nav.component.mjs +146 -0
  39. package/esm2022/lib/list/list.component.mjs +23 -0
  40. package/esm2022/lib/message-banner/message-banner.component.mjs +43 -0
  41. package/esm2022/lib/page-layout/page-layout.component.mjs +21 -0
  42. package/esm2022/lib/progress-bar/progress-bar.component.mjs +29 -0
  43. package/esm2022/lib/radio-button/radio-button.component.mjs +33 -0
  44. package/esm2022/lib/scrolling-cards/scrolling-cards.component.mjs +59 -0
  45. package/esm2022/lib/spinner/spinner.component.mjs +22 -0
  46. package/esm2022/lib/stepper/stepper.component.mjs +64 -0
  47. package/esm2022/lib/tabs/tabs.component.mjs +38 -0
  48. package/esm2022/lib/toast/toast.component.mjs +100 -0
  49. package/esm2022/lib/tool-tip/tool-tip.component.mjs +41 -0
  50. package/esm2022/public-api.mjs +56 -0
  51. package/esm2022/sarasanalytics-com-design-system.mjs +5 -0
  52. package/esm2022/utils/validators.mjs +97 -0
  53. package/fesm2022/sarasanalytics-com-design-system.mjs +2001 -0
  54. package/fesm2022/sarasanalytics-com-design-system.mjs.map +1 -0
  55. package/index.d.ts +5 -0
  56. package/interfaces/avatar-interface.d.ts +6 -0
  57. package/interfaces/button-interface.d.ts +22 -0
  58. package/{projects/component-library/src/interfaces/card-carousel-interface.ts → interfaces/card-carousel-interface.d.ts} +1 -2
  59. package/interfaces/chip-interface.d.ts +11 -0
  60. package/interfaces/grid-interface.d.ts +24 -0
  61. package/interfaces/icon-interface.d.ts +4 -0
  62. package/interfaces/select-interface.d.ts +20 -0
  63. package/interfaces/tab-interface.d.ts +6 -0
  64. package/{projects/component-library/src/interfaces/toast-interface.ts → interfaces/toast-interface.d.ts} +1 -1
  65. package/lib/accordion/accordion.component.d.ts +25 -0
  66. package/lib/avatar/avatar.component.d.ts +18 -0
  67. package/lib/button/button.component.d.ts +32 -0
  68. package/lib/calendar-header/calendar-header.component.d.ts +31 -0
  69. package/lib/card/card-body/card-body.component.d.ts +5 -0
  70. package/lib/card/card-custom-header/card-custom-header.component.d.ts +5 -0
  71. package/lib/card/card-footer-actions/card-footer-actions.component.d.ts +5 -0
  72. package/lib/card/card-icon/card-icon.component.d.ts +5 -0
  73. package/lib/card/card-title-actions/card-title-actions.component.d.ts +5 -0
  74. package/lib/card/card.component.d.ts +31 -0
  75. package/lib/card/checkbox-card/checkbox-card.component.d.ts +12 -0
  76. package/lib/card/guide-card/guide-card.component.d.ts +8 -0
  77. package/lib/card-carousel/card-carousel.component.d.ts +27 -0
  78. package/lib/checkbox/checkbox.component.d.ts +9 -0
  79. package/lib/chips/chips.component.d.ts +22 -0
  80. package/lib/component-library.component.d.ts +5 -0
  81. package/lib/component-library.service.d.ts +6 -0
  82. package/lib/datepicker/datepicker.component.d.ts +9 -0
  83. package/lib/form-input/form-input.component.d.ts +67 -0
  84. package/lib/form-select/form-select.component.d.ts +18 -0
  85. package/lib/grid-cell/grid-cell.component.d.ts +20 -0
  86. package/lib/header/header.component.d.ts +14 -0
  87. package/lib/icon/icon.component.d.ts +24 -0
  88. package/lib/icon/icon.service.d.ts +12 -0
  89. package/lib/left-nav/left-nav.component.d.ts +47 -0
  90. package/lib/list/list.component.d.ts +10 -0
  91. package/lib/message-banner/message-banner.component.d.ts +19 -0
  92. package/lib/page-layout/page-layout.component.d.ts +8 -0
  93. package/lib/progress-bar/progress-bar.component.d.ts +13 -0
  94. package/lib/radio-button/radio-button.component.d.ts +12 -0
  95. package/lib/scrolling-cards/scrolling-cards.component.d.ts +36 -0
  96. package/lib/spinner/spinner.component.d.ts +7 -0
  97. package/lib/stepper/stepper.component.d.ts +17 -0
  98. package/lib/tabs/tabs.component.d.ts +15 -0
  99. package/lib/toast/toast.component.d.ts +33 -0
  100. package/lib/tool-tip/tool-tip.component.d.ts +15 -0
  101. package/package.json +19 -74
  102. package/{projects/component-library/src/public-api.ts → public-api.d.ts} +0 -12
  103. package/utils/validators.d.ts +6 -0
  104. package/.editorconfig +0 -16
  105. package/.eslintrc.json +0 -23
  106. package/.storybook/main.ts +0 -21
  107. package/.storybook/manager.ts +0 -17
  108. package/.storybook/preview-head.html +0 -5
  109. package/.storybook/preview.ts +0 -66
  110. package/.storybook/tsconfig.doc.json +0 -10
  111. package/.storybook/tsconfig.json +0 -11
  112. package/.storybook/typings.d.ts +0 -4
  113. package/.vscode/extensions.json +0 -7
  114. package/.vscode/launch.json +0 -20
  115. package/.vscode/settings.json +0 -13
  116. package/.vscode/tasks.json +0 -42
  117. package/angular.json +0 -195
  118. package/build-storybook.log +0 -45
  119. package/documentation.json +0 -0
  120. package/generate-public-api.js +0 -59
  121. package/projects/component-library/README.md +0 -24
  122. package/projects/component-library/ng-package.json +0 -8
  123. package/projects/component-library/package.json +0 -12
  124. package/projects/component-library/src/interfaces/avatar-interface.ts +0 -6
  125. package/projects/component-library/src/interfaces/button-interface.ts +0 -37
  126. package/projects/component-library/src/interfaces/chip-interface.ts +0 -11
  127. package/projects/component-library/src/interfaces/grid-interface.ts +0 -24
  128. package/projects/component-library/src/interfaces/icon-interface.ts +0 -21
  129. package/projects/component-library/src/interfaces/select-interface.ts +0 -20
  130. package/projects/component-library/src/interfaces/tab-interface.ts +0 -6
  131. package/projects/component-library/src/lib/accordion/accordion.component.css +0 -188
  132. package/projects/component-library/src/lib/accordion/accordion.component.html +0 -151
  133. package/projects/component-library/src/lib/accordion/accordion.component.spec.ts +0 -23
  134. package/projects/component-library/src/lib/accordion/accordion.component.ts +0 -129
  135. package/projects/component-library/src/lib/avatar/avatar.component.css +0 -48
  136. package/projects/component-library/src/lib/avatar/avatar.component.html +0 -5
  137. package/projects/component-library/src/lib/avatar/avatar.component.spec.ts +0 -23
  138. package/projects/component-library/src/lib/avatar/avatar.component.ts +0 -50
  139. package/projects/component-library/src/lib/button/button.component.css +0 -145
  140. package/projects/component-library/src/lib/button/button.component.html +0 -25
  141. package/projects/component-library/src/lib/button/button.component.spec.ts +0 -23
  142. package/projects/component-library/src/lib/button/button.component.ts +0 -82
  143. package/projects/component-library/src/lib/calendar-header/calendar-header.component.css +0 -67
  144. package/projects/component-library/src/lib/calendar-header/calendar-header.component.html +0 -20
  145. package/projects/component-library/src/lib/calendar-header/calendar-header.component.spec.ts +0 -23
  146. package/projects/component-library/src/lib/calendar-header/calendar-header.component.ts +0 -191
  147. package/projects/component-library/src/lib/card/card-body/card-body.component.css +0 -0
  148. package/projects/component-library/src/lib/card/card-body/card-body.component.html +0 -1
  149. package/projects/component-library/src/lib/card/card-body/card-body.component.spec.ts +0 -23
  150. package/projects/component-library/src/lib/card/card-body/card-body.component.ts +0 -12
  151. package/projects/component-library/src/lib/card/card-custom-header/card-custom-header.component.css +0 -70
  152. package/projects/component-library/src/lib/card/card-custom-header/card-custom-header.component.html +0 -1
  153. package/projects/component-library/src/lib/card/card-custom-header/card-custom-header.component.spec.ts +0 -23
  154. package/projects/component-library/src/lib/card/card-custom-header/card-custom-header.component.ts +0 -13
  155. package/projects/component-library/src/lib/card/card-footer-actions/card-footer-actions.component.css +0 -4
  156. package/projects/component-library/src/lib/card/card-footer-actions/card-footer-actions.component.html +0 -3
  157. package/projects/component-library/src/lib/card/card-footer-actions/card-footer-actions.component.spec.ts +0 -23
  158. package/projects/component-library/src/lib/card/card-footer-actions/card-footer-actions.component.ts +0 -12
  159. package/projects/component-library/src/lib/card/card-icon/card-icon.component.css +0 -0
  160. package/projects/component-library/src/lib/card/card-icon/card-icon.component.html +0 -1
  161. package/projects/component-library/src/lib/card/card-icon/card-icon.component.spec.ts +0 -23
  162. package/projects/component-library/src/lib/card/card-icon/card-icon.component.ts +0 -12
  163. package/projects/component-library/src/lib/card/card-title-actions/card-title-actions.component.css +0 -3
  164. package/projects/component-library/src/lib/card/card-title-actions/card-title-actions.component.html +0 -1
  165. package/projects/component-library/src/lib/card/card-title-actions/card-title-actions.component.spec.ts +0 -23
  166. package/projects/component-library/src/lib/card/card-title-actions/card-title-actions.component.ts +0 -12
  167. package/projects/component-library/src/lib/card/card.component.css +0 -149
  168. package/projects/component-library/src/lib/card/card.component.html +0 -46
  169. package/projects/component-library/src/lib/card/card.component.spec.ts +0 -23
  170. package/projects/component-library/src/lib/card/card.component.ts +0 -47
  171. package/projects/component-library/src/lib/card/checkbox-card/checkbox-card.component.css +0 -79
  172. package/projects/component-library/src/lib/card/checkbox-card/checkbox-card.component.html +0 -55
  173. package/projects/component-library/src/lib/card/checkbox-card/checkbox-card.component.spec.ts +0 -23
  174. package/projects/component-library/src/lib/card/checkbox-card/checkbox-card.component.ts +0 -44
  175. package/projects/component-library/src/lib/card/guide-card/guide-card.component.css +0 -80
  176. package/projects/component-library/src/lib/card/guide-card/guide-card.component.html +0 -24
  177. package/projects/component-library/src/lib/card/guide-card/guide-card.component.spec.ts +0 -23
  178. package/projects/component-library/src/lib/card/guide-card/guide-card.component.ts +0 -19
  179. package/projects/component-library/src/lib/card-carousel/card-carousel.component.css +0 -91
  180. package/projects/component-library/src/lib/card-carousel/card-carousel.component.html +0 -54
  181. package/projects/component-library/src/lib/card-carousel/card-carousel.component.spec.ts +0 -23
  182. package/projects/component-library/src/lib/card-carousel/card-carousel.component.ts +0 -89
  183. package/projects/component-library/src/lib/checkbox/checkbox.component.css +0 -79
  184. package/projects/component-library/src/lib/checkbox/checkbox.component.html +0 -27
  185. package/projects/component-library/src/lib/checkbox/checkbox.component.spec.ts +0 -23
  186. package/projects/component-library/src/lib/checkbox/checkbox.component.ts +0 -38
  187. package/projects/component-library/src/lib/chips/chips.component.css +0 -129
  188. package/projects/component-library/src/lib/chips/chips.component.html +0 -17
  189. package/projects/component-library/src/lib/chips/chips.component.spec.ts +0 -23
  190. package/projects/component-library/src/lib/chips/chips.component.ts +0 -54
  191. package/projects/component-library/src/lib/component-library.component.spec.ts +0 -23
  192. package/projects/component-library/src/lib/component-library.component.ts +0 -16
  193. package/projects/component-library/src/lib/component-library.service.spec.ts +0 -16
  194. package/projects/component-library/src/lib/component-library.service.ts +0 -9
  195. package/projects/component-library/src/lib/datepicker/datepicker.component.css +0 -33
  196. package/projects/component-library/src/lib/datepicker/datepicker.component.html +0 -11
  197. package/projects/component-library/src/lib/datepicker/datepicker.component.spec.ts +0 -23
  198. package/projects/component-library/src/lib/datepicker/datepicker.component.ts +0 -36
  199. package/projects/component-library/src/lib/form-input/form-input.component.css +0 -164
  200. package/projects/component-library/src/lib/form-input/form-input.component.html +0 -55
  201. package/projects/component-library/src/lib/form-input/form-input.component.spec.ts +0 -23
  202. package/projects/component-library/src/lib/form-input/form-input.component.ts +0 -282
  203. package/projects/component-library/src/lib/form-select/form-select.component.css +0 -158
  204. package/projects/component-library/src/lib/form-select/form-select.component.html +0 -38
  205. package/projects/component-library/src/lib/form-select/form-select.component.spec.ts +0 -23
  206. package/projects/component-library/src/lib/form-select/form-select.component.ts +0 -72
  207. package/projects/component-library/src/lib/grid-cell/grid-cell.component.css +0 -78
  208. package/projects/component-library/src/lib/grid-cell/grid-cell.component.html +0 -31
  209. package/projects/component-library/src/lib/grid-cell/grid-cell.component.spec.ts +0 -23
  210. package/projects/component-library/src/lib/grid-cell/grid-cell.component.ts +0 -89
  211. package/projects/component-library/src/lib/header/header.component.css +0 -62
  212. package/projects/component-library/src/lib/header/header.component.html +0 -23
  213. package/projects/component-library/src/lib/header/header.component.spec.ts +0 -23
  214. package/projects/component-library/src/lib/header/header.component.ts +0 -28
  215. package/projects/component-library/src/lib/icon/icon.component.css +0 -65
  216. package/projects/component-library/src/lib/icon/icon.component.html +0 -9
  217. package/projects/component-library/src/lib/icon/icon.component.ts +0 -64
  218. package/projects/component-library/src/lib/icon/icon.service.ts +0 -26
  219. package/projects/component-library/src/lib/left-nav/left-nav.component.css +0 -109
  220. package/projects/component-library/src/lib/left-nav/left-nav.component.html +0 -51
  221. package/projects/component-library/src/lib/left-nav/left-nav.component.spec.ts +0 -23
  222. package/projects/component-library/src/lib/left-nav/left-nav.component.ts +0 -180
  223. package/projects/component-library/src/lib/list/list.component.css +0 -28
  224. package/projects/component-library/src/lib/list/list.component.html +0 -10
  225. package/projects/component-library/src/lib/list/list.component.spec.ts +0 -23
  226. package/projects/component-library/src/lib/list/list.component.ts +0 -15
  227. package/projects/component-library/src/lib/message-banner/message-banner.component.css +0 -52
  228. package/projects/component-library/src/lib/message-banner/message-banner.component.html +0 -15
  229. package/projects/component-library/src/lib/message-banner/message-banner.component.spec.ts +0 -23
  230. package/projects/component-library/src/lib/message-banner/message-banner.component.ts +0 -31
  231. package/projects/component-library/src/lib/page-layout/page-layout.component.css +0 -76
  232. package/projects/component-library/src/lib/page-layout/page-layout.component.html +0 -30
  233. package/projects/component-library/src/lib/page-layout/page-layout.component.spec.ts +0 -23
  234. package/projects/component-library/src/lib/page-layout/page-layout.component.ts +0 -14
  235. package/projects/component-library/src/lib/progress-bar/progress-bar.component.css +0 -30
  236. package/projects/component-library/src/lib/progress-bar/progress-bar.component.html +0 -4
  237. package/projects/component-library/src/lib/progress-bar/progress-bar.component.spec.ts +0 -23
  238. package/projects/component-library/src/lib/progress-bar/progress-bar.component.ts +0 -24
  239. package/projects/component-library/src/lib/radio-button/radio-button.component.css +0 -128
  240. package/projects/component-library/src/lib/radio-button/radio-button.component.html +0 -28
  241. package/projects/component-library/src/lib/radio-button/radio-button.component.spec.ts +0 -23
  242. package/projects/component-library/src/lib/radio-button/radio-button.component.ts +0 -35
  243. package/projects/component-library/src/lib/scrolling-cards/scrolling-cards.component.css +0 -118
  244. package/projects/component-library/src/lib/scrolling-cards/scrolling-cards.component.html +0 -11
  245. package/projects/component-library/src/lib/scrolling-cards/scrolling-cards.component.spec.ts +0 -23
  246. package/projects/component-library/src/lib/scrolling-cards/scrolling-cards.component.ts +0 -74
  247. package/projects/component-library/src/lib/spinner/spinner.component.css +0 -41
  248. package/projects/component-library/src/lib/spinner/spinner.component.html +0 -1
  249. package/projects/component-library/src/lib/spinner/spinner.component.spec.ts +0 -23
  250. package/projects/component-library/src/lib/spinner/spinner.component.ts +0 -15
  251. package/projects/component-library/src/lib/stepper/stepper.component.css +0 -96
  252. package/projects/component-library/src/lib/stepper/stepper.component.html +0 -14
  253. package/projects/component-library/src/lib/stepper/stepper.component.spec.ts +0 -23
  254. package/projects/component-library/src/lib/stepper/stepper.component.ts +0 -61
  255. package/projects/component-library/src/lib/tabs/tabs.component.css +0 -100
  256. package/projects/component-library/src/lib/tabs/tabs.component.html +0 -16
  257. package/projects/component-library/src/lib/tabs/tabs.component.spec.ts +0 -23
  258. package/projects/component-library/src/lib/tabs/tabs.component.ts +0 -37
  259. package/projects/component-library/src/lib/toast/toast.component.css +0 -115
  260. package/projects/component-library/src/lib/toast/toast.component.html +0 -29
  261. package/projects/component-library/src/lib/toast/toast.component.spec.ts +0 -23
  262. package/projects/component-library/src/lib/toast/toast.component.ts +0 -87
  263. package/projects/component-library/src/lib/tool-tip/tool-tip.component.css +0 -144
  264. package/projects/component-library/src/lib/tool-tip/tool-tip.component.html +0 -31
  265. package/projects/component-library/src/lib/tool-tip/tool-tip.component.spec.ts +0 -23
  266. package/projects/component-library/src/lib/tool-tip/tool-tip.component.ts +0 -37
  267. package/projects/component-library/src/shared/formly-field-wrapper/formly-field-wrapper.component.css +0 -0
  268. package/projects/component-library/src/shared/formly-field-wrapper/formly-field-wrapper.component.html +0 -22
  269. package/projects/component-library/src/shared/formly-field-wrapper/formly-field-wrapper.component.spec.ts +0 -23
  270. package/projects/component-library/src/shared/formly-field-wrapper/formly-field-wrapper.component.ts +0 -13
  271. package/projects/component-library/src/utils/validators.ts +0 -100
  272. package/projects/component-library/tsconfig.lib.json +0 -14
  273. package/projects/component-library/tsconfig.lib.prod.json +0 -10
  274. package/projects/component-library/tsconfig.spec.json +0 -14
  275. package/sarasanalytics-com-design-system-0.0.21.tgz +0 -0
  276. package/src/Saras-logo.svg +0 -15
  277. package/src/app/app.component.css +0 -82
  278. package/src/app/app.component.html +0 -663
  279. package/src/app/app.component.spec.ts +0 -29
  280. package/src/app/app.component.ts +0 -1341
  281. package/src/app/app.config.ts +0 -56
  282. package/src/app/app.routes.ts +0 -3
  283. package/src/app/data.ts +0 -52
  284. package/src/app/kitchen-sink/kitchen-sink.component.css +0 -30
  285. package/src/app/kitchen-sink/kitchen-sink.component.html +0 -7
  286. package/src/app/kitchen-sink/kitchen-sink.component.spec.ts +0 -23
  287. package/src/app/kitchen-sink/kitchen-sink.component.ts +0 -92
  288. package/src/assets/.gitkeep +0 -0
  289. package/src/assets/analysis.svg +0 -1
  290. package/src/assets/arrowRightOutlined.svg +0 -1
  291. package/src/assets/avatar.svg +0 -1
  292. package/src/assets/bpn.svg +0 -1
  293. package/src/assets/businessStatsFilled.svg +0 -1
  294. package/src/assets/channelkey.svg +0 -1
  295. package/src/assets/chatHelpOutlined.svg +0 -1
  296. package/src/assets/checkCircleFilled.svg +0 -1
  297. package/src/assets/checkCircleOutlined.svg +0 -1
  298. package/src/assets/checkOutlined.svg +0 -1
  299. package/src/assets/circleFilled.svg +0 -1
  300. package/src/assets/closeBlueOutlined.svg +0 -1
  301. package/src/assets/closeCircleFilled.svg +0 -1
  302. package/src/assets/closeOutlined.svg +0 -1
  303. package/src/assets/dataonavatar.svg +0 -1
  304. package/src/assets/datonAvatar.png +0 -0
  305. package/src/assets/desktopSpeakerOutlined.svg +0 -1
  306. package/src/assets/disabledCheckboxFilled.svg +0 -1
  307. package/src/assets/doubleDownOutlined.svg +0 -1
  308. package/src/assets/downChevronOutlined.svg +0 -3
  309. package/src/assets/downOutlined.svg +0 -1
  310. package/src/assets/errorCircleOutlined.svg +0 -1
  311. package/src/assets/errorCrossOutlined.svg +0 -3
  312. package/src/assets/eyeFilled.svg +0 -1
  313. package/src/assets/eyeOff.svg +0 -3
  314. package/src/assets/eyeOutlined.svg +0 -1
  315. package/src/assets/formDetailsOutlined.svg +0 -1
  316. package/src/assets/gridViewOutlined.svg +0 -1
  317. package/src/assets/headsetOutlined.svg +0 -3
  318. package/src/assets/homeOutlined.svg +0 -1
  319. package/src/assets/icons/analysis1.svg +0 -1
  320. package/src/assets/infoCircleOutlined.svg +0 -3
  321. package/src/assets/infoTriangleFilled.svg +0 -1
  322. package/src/assets/infoTriangleOutlined.svg +0 -1
  323. package/src/assets/innosupps.svg +0 -1
  324. package/src/assets/leftChevronCircle.svg +0 -2
  325. package/src/assets/locationOutlined.svg +0 -1
  326. package/src/assets/loginDashboard.png +0 -0
  327. package/src/assets/mailOutlined.svg +0 -1
  328. package/src/assets/multiConnectionHub.svg +0 -1
  329. package/src/assets/murad.svg +0 -1
  330. package/src/assets/personOutlined.svg +0 -1
  331. package/src/assets/pricingIcon.svg +0 -3
  332. package/src/assets/rightChevronCircle.svg +0 -1
  333. package/src/assets/rightChevronOutlined.svg +0 -1
  334. package/src/assets/sarasFullLogo.svg +0 -13
  335. package/src/assets/sarasWhite.svg +0 -1
  336. package/src/assets/settingsOutlined.svg +0 -1
  337. package/src/assets/sourcesOutlined.svg +0 -1
  338. package/src/assets/tabDesktopArrowClockwiseOutlined.svg +0 -1
  339. package/src/assets/targetScanOutlined.svg +0 -1
  340. package/src/assets/timerOutlined.svg +0 -5
  341. package/src/assets/upwardTriangleFilled.svg +0 -1
  342. package/src/custom-theme.scss +0 -37
  343. package/src/favicon.ico +0 -0
  344. package/src/index.html +0 -23
  345. package/src/main.ts +0 -6
  346. package/src/stories/GettingStarted.mdx +0 -233
  347. package/src/stories/KitchenSink.stories.ts +0 -109
  348. package/src/stories/accordion.stories.ts +0 -234
  349. package/src/stories/avatar.stories.ts +0 -45
  350. package/src/stories/card-carousel.stories.ts +0 -136
  351. package/src/stories/card.stories.ts +0 -242
  352. package/src/stories/checkbox.stories.ts +0 -238
  353. package/src/stories/chips.stories.ts +0 -61
  354. package/src/stories/custom-button.stories.ts +0 -89
  355. package/src/stories/datepicker.stories.ts +0 -78
  356. package/src/stories/form-input.stories.ts +0 -166
  357. package/src/stories/gridCell.stories.ts +0 -234
  358. package/src/stories/header.stories.ts +0 -61
  359. package/src/stories/icon.stories.ts +0 -65
  360. package/src/stories/leftnav.stories.ts +0 -67
  361. package/src/stories/message-banner.stories.ts +0 -116
  362. package/src/stories/page-layout.stories.ts +0 -200
  363. package/src/stories/progress-bar.stories.ts +0 -40
  364. package/src/stories/radio-button.stories.ts +0 -80
  365. package/src/stories/scrolling-card.stories.ts +0 -36
  366. package/src/stories/selectInput.stories.ts +0 -176
  367. package/src/stories/stepper.stories.ts +0 -92
  368. package/src/stories/tabs.stories.ts +0 -97
  369. package/src/stories/toast.stories.ts +0 -74
  370. package/src/stories/tool-tip.stories.ts +0 -45
  371. package/src/svg.d.ts +0 -1
  372. package/tsconfig.app.json +0 -14
  373. package/tsconfig.json +0 -42
  374. package/tsconfig.spec.json +0 -14
  375. /package/{projects/component-library/src/interfaces/guide-card-interface.ts → interfaces/guide-card-interface.d.ts} +0 -0
  376. /package/{projects/component-library/src/interfaces/message-banner.ts → interfaces/message-banner.d.ts} +0 -0
  377. /package/{projects/component-library/src/interfaces/option-interface.ts → interfaces/option-interface.d.ts} +0 -0
  378. /package/{src → styles}/styles.css +0 -0
@@ -1,1341 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { RouterOutlet } from '@angular/router';
3
- import { ButtonComponent } from '../../projects/component-library/src/lib/button/button.component';
4
- import { KitchenSinkComponent } from './kitchen-sink/kitchen-sink.component';
5
- import { ChipsComponent } from '../../projects/component-library/src/lib/chips/chips.component';
6
- import { AvatarComponent } from '../../projects/component-library/src/lib/avatar/avatar.component';
7
- import { GridCellComponent } from '../../projects/component-library/src/lib/grid-cell/grid-cell.component';
8
- import { ColDef, GridReadyEvent } from 'ag-grid-community';
9
- import { AgGridAngular } from 'ag-grid-angular';
10
- import rawData from './data';
11
- import { GridInterface } from '../../projects/component-library/src/interfaces/grid-interface';
12
- import { FormGroup, FormsModule, FormControl, Validators } from '@angular/forms';
13
- import { FormlyFieldConfig } from '@ngx-formly/core';
14
- import { ReactiveFormsModule } from '@angular/forms';
15
- import { FormlyModule } from '@ngx-formly/core';
16
- import { CommonModule } from '@angular/common';
17
- import { NgSelectModule } from '@ng-select/ng-select';
18
- import { ToolTipComponent } from '../../projects/component-library/src/lib/tool-tip/tool-tip.component';
19
- import { ToastComponent } from '../../projects/component-library/src/lib/toast/toast.component';
20
- import { HeaderComponent } from '../../projects/component-library/src/lib/header/header.component';
21
- import { TabsComponent } from '../../projects/component-library/src/lib/tabs/tabs.component';
22
- import { TabInterface } from '../../projects/component-library/src/interfaces/tab-interface';
23
- import { DatepickerComponent } from '../../projects/component-library/src/lib/datepicker/datepicker.component';
24
- import { Renderer2 } from '@angular/core';
25
- import { SelectInterface } from '../../projects/component-library/src/interfaces/select-interface';
26
- import { IconName, StepperComponent } from '../../projects/component-library/src/public-api';
27
-
28
- import { CardComponent } from '../../projects/component-library/src/lib/card/card.component';
29
- import { ILeftNav, LeftNavComponent } from '../../projects/component-library/src/lib/left-nav/left-nav.component';
30
- import { customEmailValidator, phoneNumberValidator } from '../../projects/component-library/src/utils/validators';
31
- import { CardTitleActionsComponent } from '../../projects/component-library/src/lib/card/card-title-actions/card-title-actions.component';
32
- import { CardCustomHeaderComponent } from '../../projects/component-library/src/lib/card/card-custom-header/card-custom-header.component';
33
- import { CardFooterActionsComponent } from '../../projects/component-library/src/lib/card/card-footer-actions/card-footer-actions.component';
34
- import { CardBodyComponent } from '../../projects/component-library/src/lib/card/card-body/card-body.component';
35
- import { ChipInterface } from '../../projects/component-library/src/interfaces/chip-interface';
36
- import { CardIconComponent } from '../../projects/component-library/src/lib/card/card-icon/card-icon.component';
37
- import { IconComponent } from '../../projects/component-library/src/lib/icon/icon.component';
38
- import { HttpClientModule } from '@angular/common/http';
39
- import { IInputEvent, IInputEventType, IInputParam } from '../../projects/component-library/src/lib/form-input/form-input.component';
40
- // import { DynamicIcon } from '../../projects/component-library/src/lib/form-input/form-input.component';
41
- import { ProgressBarComponent } from '../../projects/component-library/src/lib/progress-bar/progress-bar.component';
42
- import { MatProgressBarModule } from '@angular/material/progress-bar';
43
- import { MatCheckboxModule } from '@angular/material/checkbox';
44
- import { SpinnerComponent } from '../../projects/component-library/src/lib/spinner/spinner.component';
45
- import { GuideCardComponent } from "../../projects/component-library/src/lib/card/guide-card/guide-card.component";
46
- import { GuideStep } from '../../projects/component-library/src/interfaces/guide-card-interface';
47
- import { RadioButtonComponent } from '../../projects/component-library/src/lib/radio-button/radio-button.component';
48
- import { OptionInterface } from '../../projects/component-library/src/interfaces/option-interface'; import { CardCarouselComponent } from '../../projects/component-library/src/lib/card-carousel/card-carousel.component';
49
- import { ScrollingCardsComponent } from '../../projects/component-library/src/lib/scrolling-cards/scrolling-cards.component';
50
- import { PageLayoutComponent } from '../../projects/component-library/src/lib/page-layout/page-layout.component';
51
- import { CheckboxComponent } from '../../projects/component-library/src/lib/checkbox/checkbox.component';
52
- import { ListComponent } from '../../projects/component-library/src/lib/list/list.component'
53
- import { CheckboxCardComponent } from '../../projects/component-library/src/lib/card/checkbox-card/checkbox-card.component';
54
- import { remove, reduce, map } from 'lodash';
55
- import { MatExpansionModule } from '@angular/material/expansion';
56
- import { MatTooltipModule } from '@angular/material/tooltip';
57
- import { AccordionComponent } from '../../projects/component-library/src/lib/accordion/accordion.component'
58
- import { MessageBannerComponent } from '../../projects/component-library/src/lib/message-banner/message-banner.component';
59
- @Component({
60
- selector: 'app-root',
61
- standalone: true,
62
- imports: [
63
- CommonModule,
64
- MatProgressBarModule,
65
- RouterOutlet,
66
- ButtonComponent,
67
- KitchenSinkComponent,
68
- ChipsComponent,
69
- AvatarComponent,
70
- GridCellComponent,
71
- AgGridAngular,
72
- //imports for grid
73
- ReactiveFormsModule,
74
- FormlyModule,
75
- ReactiveFormsModule,
76
- NgSelectModule,
77
- FormsModule,
78
- //imports for sa-select and sa-stepper
79
- ToolTipComponent,
80
- ToastComponent,
81
- HeaderComponent,
82
- DatepickerComponent,
83
- StepperComponent,
84
- TabsComponent,
85
- CardComponent,
86
- RadioButtonComponent,
87
- CardTitleActionsComponent,
88
- CardCustomHeaderComponent,
89
- CardFooterActionsComponent,
90
- CardBodyComponent,
91
- CardIconComponent,
92
- LeftNavComponent,
93
- IconComponent,
94
- HttpClientModule,
95
- ProgressBarComponent,
96
- SpinnerComponent,
97
- GuideCardComponent,
98
- CardCarouselComponent,
99
- ScrollingCardsComponent,
100
- PageLayoutComponent,
101
- CheckboxComponent,
102
- MatCheckboxModule,
103
- ListComponent,
104
- CheckboxCardComponent,
105
- MatExpansionModule,
106
- MatTooltipModule,
107
- AccordionComponent,
108
- MessageBannerComponent
109
- ],
110
- templateUrl: './app.component.html',
111
- styleUrl: './app.component.css'
112
- })
113
- export class AppComponent {
114
- global_theme: string = 'purple-theme';
115
-
116
- constructor(private renderer: Renderer2) {
117
- this.renderer.addClass(document.body, this.global_theme);
118
- }
119
-
120
- testComp = ButtonComponent;
121
- testInputs = [
122
- ["primary", "outline", "transparent"], // type
123
- ["default", "error", "disabled"], // state
124
- ["small", "medium", "large"], // size
125
- ["Button"], // text
126
- ["../assets/sourcesOutlined.svg"], // ImagePath
127
- ["both"], // iconPosition
128
- ["https://sarasanalytics.com"], // href
129
- ["self"], // hrefTarget
130
- ]
131
- testParams = [
132
- "type",
133
- "state",
134
- "size",
135
- "text",
136
- "ImagePath",
137
- "iconPosition",
138
- "href",
139
- "hrefTarget",
140
- ]
141
-
142
- testCompChip = ChipsComponent;
143
- testInputsChip = [
144
- ["regular", "small", "large"], // type
145
- ["primary", "secondary", "neutral", "success", "error", "warning"], // state
146
- ["filled", "outline"], // filling
147
- ["Chip text"], // text
148
- ["../assets/closeBlueOutlined.svg"], // iconPath
149
- ["both"], // iconPosition
150
- ["../assets/circleFilled.svg"], // largeStateIcon
151
- ["Good"], // largeStateText
152
- ];
153
- testParamsChip = [
154
- "type",
155
- "state",
156
- "filling",
157
- "text",
158
- "iconPath",
159
- "iconPosition",
160
- "largeStateIcon",
161
- "largeStateText",
162
- ]
163
-
164
- testCompAvatar = AvatarComponent;
165
- testInputsAvatar = [
166
- ["../assets/avatar.svg", ""],
167
- ["extra-small", "small", "medium", "large", "extra-large"],
168
- ["AB"]
169
- ];
170
- testParamsAvatar = ["imagePath", "size", "altText"];
171
-
172
- testSVGPreview = IconComponent;
173
- testSVGPreviewInputs = [
174
- ["analysis", "arrowRightOutlined", "avatar",
175
- "businessStatsFilled", "chatHelpOutlined", "checkCircleFilled",
176
- "checkCircleOutlined", "checkOutlined", "circleFilled",
177
- "closeBlueOutlined", "closeCircleFilled", "closeOutlined",
178
- "doubleDownOutlined", "downChevronOutlined", "eyeFilled",
179
- "eyeOutlined", "formDetailsOutlined", "gridViewOutlined",
180
- "homeOutlined", "infoCircleOutlined", "infoTriangleFilled",
181
- "infoTriangleOutlined", "innosupps", "locationOutlined",
182
- "mailOutlined", "multiConnectionHub", "personOutlined",
183
- "rightChevronOutlined", "sarasWhite", "settingsOutlined",
184
- "sourcesOutlined", "targetScanOutlined", "upwardTriangleFilled", "headsetOutlined"
185
- ],
186
- ["44"],
187
- ["AB"]
188
- ];
189
- testSVGPreviewParams = ["icon", "size", "altText"];
190
-
191
- params: GridInterface = {
192
- cellType: '',
193
- viewText: false,
194
- viewLeadingIcon: false,
195
- viewTrailingIcon: false,
196
- viewButton: false,
197
- viewChip: false,
198
- viewAvatar: false,
199
- }
200
-
201
- handleChipClick(evt: any) {
202
- const prevData = this.rowData[evt.rowId]["Chip"].chipConfig;
203
- if (prevData == undefined) return;
204
- for (let i = 0; i < prevData.length; i++) {
205
- if (prevData[i].id == evt.id) {
206
- this.rowData[evt.rowId]["Chip"].chipConfig?.splice(i, 1);
207
- break;
208
- }
209
- }
210
- }
211
-
212
- // for every in cell in a row, returning a grid-interface object to specify how it should be rendered.
213
- rowData = rawData.map((current): { [key: string]: GridInterface } => {
214
- return {
215
- "Text": {
216
- ...this.params,
217
- viewText: true,
218
- cellType: 'row',
219
- text: current.rowNo,
220
- },
221
- "Numeric": {
222
- ...this.params,
223
- viewText: true,
224
- cellType: 'numeric',
225
- text: Math.floor(((current.rowNo * 23) / 77) * 75),
226
- },
227
- "Leading Icon": {
228
- ...this.params,
229
- viewText: true,
230
- cellType: 'interactive',
231
- text: current.name,
232
- iconPath: '../assets/targetScanOutlined.svg',
233
- viewLeadingIcon: true,
234
- interactiveLinkTarget: 'blank',
235
- linkClicked: (evt: Event) => {
236
- console.log(evt);
237
- }
238
- },
239
- "Chip": {
240
- ...this.params,
241
- cellType: 'row',
242
- viewChip: true,
243
- chipConfig: [
244
- {
245
- id: 0,
246
- text: current.chip,
247
- type: 'primary',
248
- state: 'regular',
249
- filling: 'filled',
250
- iconPath: '../assets/closeBlueOutlined.svg',
251
- iconPosition: 'left',
252
- largeStateIcon: '',
253
- largeStateText: '',
254
- },
255
- {
256
- id: 1,
257
- text: current.chip2,
258
- type: 'secondary',
259
- state: 'regular',
260
- filling: 'filled',
261
- iconPath: '../assets/closeBlueOutlined.svg',
262
- iconPosition: 'left',
263
- largeStateIcon: '',
264
- largeStateText: '',
265
- },
266
- {
267
- id: 2,
268
- text: current.chip3,
269
- type: 'error',
270
- state: 'regular',
271
- filling: 'filled',
272
- iconPath: '../assets/closeBlueOutlined.svg',
273
- iconPosition: 'left',
274
- largeStateIcon: '',
275
- largeStateText: '',
276
- },
277
- ],
278
- chipClicked: (evt: Event) => {
279
- console.log(evt);
280
- this.handleChipClick(evt);
281
- }
282
- },
283
- "Button": {
284
- ...this.params,
285
- cellType: "row",
286
- viewButton: true,
287
- buttonConfig: {
288
- id: 0,
289
- type: 'outline',
290
- state: current.buttonState,
291
- size: 'small',
292
- text: 'Button',
293
- href: current.link,
294
- imagePath: '../assets/sourcesOutlined.svg',
295
- iconPosition: 'both',
296
- hrefTarget: 'blank',
297
- },
298
- buttonClicked: (evt: Event) => {
299
- console.log(evt);
300
- }
301
- },
302
- "Avatar": {
303
- ...this.params,
304
- viewText: true,
305
- cellType: "row",
306
- avatarConfig: {
307
- id: 0,
308
- size: 'small',
309
- imagePath: current.personPhoto,
310
- altText: 'AB'
311
- },
312
- viewAvatar: true,
313
- text: current.personName,
314
- subText: current.personDesignation,
315
- avatarClicked: (evt: Event) => {
316
- console.log(evt);
317
- }
318
- },
319
- "Subtext": {
320
- ...this.params,
321
- viewText: true,
322
- cellType: "row",
323
- text: "Text",
324
- subText: "Subtext"
325
- },
326
- "All": {
327
- cellType: 'row',
328
- viewText: true,
329
- viewLeadingIcon: true,
330
- viewTrailingIcon: true,
331
- viewButton: true,
332
- viewChip: true,
333
- viewAvatar: true,
334
- iconPath: '../assets/targetScanOutlined.svg',
335
- chipConfig: [
336
- {
337
- id: 2,
338
- text: current.chip3,
339
- type: 'error',
340
- state: 'regular',
341
- filling: 'filled',
342
- iconPath: '../assets/sourcesOutlined.svg',
343
- iconPosition: 'left',
344
- largeStateIcon: '',
345
- largeStateText: '',
346
- }
347
- ],
348
- buttonConfig: {
349
- id: 0,
350
- type: 'outline',
351
- state: current.buttonState,
352
- size: 'small',
353
- text: 'Button',
354
- href: current.link,
355
- imagePath: '../assets/sourcesOutlined.svg',
356
- iconPosition: 'both',
357
- hrefTarget: 'blank',
358
- },
359
- avatarConfig: {
360
- id: 0,
361
- size: 'small',
362
- imagePath: '../assets/avatar.svg',
363
- altText: 'AB'
364
- },
365
- text: "Text",
366
- subText: "subText",
367
- }
368
- }
369
- }
370
- );
371
- colDefs: ColDef[] = [
372
- {
373
- field: "Text",
374
- comparator: (_valueA, _valueB, nodeA, nodeB) => {
375
- return Number(nodeA.data.Text.text) - Number(nodeB.data.Text.text)
376
- },
377
- resizable: false,
378
- cellRenderer: GridCellComponent,
379
- },
380
- {
381
- field: "Numeric",
382
- comparator: (_valueA, _valueB, nodeA, nodeB) => {
383
- return Number(nodeA.data.Numeric.text) - Number(nodeB.data.Numeric.text)
384
- },
385
- resizable: false,
386
- filter: 'agNumberColumnFilter',
387
- valueFormatter: p => p.data.Numeric.text,
388
- cellRenderer: GridCellComponent,
389
- },
390
- {
391
- field: "Leading Icon",
392
- headerCheckboxSelection: true,
393
- resizable: false,
394
- cellRenderer: GridCellComponent,
395
- },
396
- {
397
- field: "Chip",
398
- resizable: false,
399
- cellRenderer: GridCellComponent,
400
- },
401
- {
402
- field: "Button",
403
- resizable: false,
404
- cellRenderer: GridCellComponent,
405
- },
406
- {
407
- field: "Avatar",
408
- resizable: false,
409
- cellRenderer: GridCellComponent,
410
- },
411
- {
412
- field: "Subtext",
413
- resizable: false,
414
- cellRenderer: GridCellComponent,
415
- },
416
- {
417
- field: "All",
418
- resizable: false,
419
- cellRenderer: GridCellComponent,
420
- }
421
- ]
422
- onGridReady(evt: GridReadyEvent) {
423
- evt.api.autoSizeAllColumns();
424
- }
425
-
426
- // model: any = {
427
- // "Test-select": [{
428
- // "id": 0,
429
- // "name": "One"
430
- // }],
431
- // "Test-stepper": {
432
- // "id": 2,
433
- // }
434
- // };
435
- form = new FormGroup({});
436
-
437
- fields2: FormlyFieldConfig[] = [{
438
- key: 'email',
439
- type: 'input',
440
- props: {
441
- type: 'email',
442
- label: 'Email',
443
- placeholder: 'Enter your email address',
444
- required: true,
445
- appearance: 'outline'
446
- },
447
- }]
448
-
449
- selectProps = {
450
- options: [
451
- { id: 0, name: "Afghanistan", dial_code: "+93", code: "AF" },
452
- { id: 1, name: "Aland Islands", dial_code: "+358", code: "AX" },
453
- { id: 2, name: "Algeria", dial_code: "+213", code: "DZ" }
454
- ],
455
- searchable: true,
456
- disabled: false,
457
- change: () => {
458
- console.log(this.model);
459
- },
460
- params: {
461
- label: 'Label',
462
- supportText: "Supporting text",
463
- dropIcon: '../assets/downChevronOutlined.svg',
464
- dropIconPosition: 'both',
465
- multiple: false,
466
- iconPath: "../assets/closeBlueOutlined.svg",
467
- text: "chip",
468
- type: "regular",
469
- state: "primary",
470
- filling: "filled",
471
- iconPosition: "left",
472
- }
473
- };
474
-
475
- model = {
476
- "Test-select": this.selectProps.options[1],
477
- brand_name: 'sakdada',
478
- 'company-input': 'sakdada',
479
- };
480
- fields: FormlyFieldConfig[] = [
481
- {
482
- key: 'Test-select',
483
- type: 'sa-select',
484
- props: this.selectProps,
485
- className: "col-6"
486
- },
487
- {
488
- "key": "brand_name",
489
- "type": "sa-input",
490
- "props": {
491
- "label": "Enter your brand name",
492
- "required": true,
493
- "description": "If you manage multiple brands, don’t worry—you can add them later",
494
- "column": false,
495
- "state": "default",
496
- "disabled": false,
497
- "placeholder": "brand name",
498
- "bigLabel": "Enter your brand name",
499
- "bigDescription": "If you manage multiple brands, don’t worry—you can add them later",
500
- },
501
- "id": "formly_1_sa-input_brand_name_0",
502
- "hooks": {},
503
- "modelOptions": {},
504
- "validation": {
505
- "messages": {}
506
- },
507
- "resetOnHide": true,
508
- "wrappers": [],
509
- "expressions": {},
510
- "expressionProperties": {}
511
- },
512
- {
513
- key: 'company-input',
514
- type: 'sa-input',
515
- className: "col-6",
516
- props: {
517
- disabled: false,
518
- value: '',
519
- required: true,
520
- // dynamicIcon: DynamicIcon.PASSWORD,
521
- params: {
522
- supportText: 'Enter your password here',
523
- placeholder: 'password',
524
- type: 'password',
525
- validators: [Validators.required]
526
- }
527
- }
528
- }, {
529
- key: 'phone_input',
530
- type: 'sa-input',
531
- className: "col-6",
532
- props: {
533
- disabled: false,
534
- value: '',
535
- // dynamicIcon: DynamicIcon.STATUS,
536
- params: {
537
- supportText: 'this input is for demo',
538
- placeholder: 'Phone Number',
539
- type: 'tel',
540
- dependent: 'Test-select',
541
- validators: [phoneNumberValidator('Test-select')]
542
- }
543
- }
544
- }
545
- // {
546
- // key: 'Test-stepper',
547
- // type: 'sa-stepper',
548
- // props: {
549
- // disabled: false,
550
- // options: [
551
- // { id: 0, name: 'Zero' },
552
- // { id: 1, name: 'One' },
553
- // { id: 2, name: 'Two' },
554
- // { id: 3, name: 'Three' },
555
- // ],
556
- // params: {
557
- // editable: true,
558
- // doneIcon: "../assets/tick.svg"
559
- // }
560
- // }
561
- // }
562
- ];
563
-
564
- /* validate email */
565
- formEmailEvent(data: IInputEvent): Promise<IInputParam | null> {
566
-
567
- return new Promise((s, r) => {
568
- if (data.type === IInputEventType.INPUT_CHANGE) {
569
- console.log('formEventClick', data.formControl.errors);
570
-
571
- if (!data.formControl.hasError('email') && !data.formControl.hasError('required')) {
572
- if (data.value === 'sk@gm.com') { // is workemail
573
- // s({ icon: { name: 'checkmark', color: '#33961F', show: true } })
574
- } else { // not work email
575
- !data.formControl.touched && data.formControl.markAsTouched();
576
- data.formControl.setErrors({ 'invalid': 'Please use a work email; personal emails (e.g., @gmail, @outlook) are not accepted.' })
577
- // s({ icon: { name: 'checkmark', color: '', show: true } });
578
- }
579
- } else {
580
- // s({ icon: { name: 'checkmark', color: '', show: false } })
581
- }
582
- }
583
- })
584
-
585
- }
586
-
587
- submit(model: any) {
588
- console.log(model);
589
- if (this.form.invalid) {
590
- this.form.markAllAsTouched();
591
- this.form.markAsTouched();
592
- this.form.get('email-input')?.markAsTouched()
593
- } else {
594
-
595
- }
596
- }
597
-
598
- stepLabels = [
599
- { id: 0, name: 'Zero' },
600
- { id: 1, name: 'One' },
601
- { id: 2, name: 'Two' },
602
- { id: 3, name: 'Three' },
603
- ];
604
- editable = true;
605
- doneIcon = "../assets/checkOutlined.svg";
606
- stepped(evt: any) {
607
- console.log(evt);
608
- }
609
-
610
- skip = () => { console.log("skipped") };
611
- seen = () => { console.log("seen") };
612
-
613
- messages: string[] = [
614
- "This first line can act as the subheading of this onboarding tooltip",
615
- "This second line can act as the subheading of this onboarding tooltip",
616
- "This third line can act as the subheading of this onboarding tooltip",
617
- "This fourth line can act as the subheading of this onboarding tooltip",
618
- ]
619
-
620
- heading: string = "Heading";
621
- subHeading: string = "Subheading text"
622
- percent = 30
623
- statusIcon = "../assets/infoTriangleFilled"
624
- clicked(num: number) { num ? this.percent += 5 : this.percent -= 5 }
625
-
626
- info = [
627
- ["Info Text 1", "../assets/personOutlined.svg"],
628
- ["Info Text 2", "../assets/locationOutlined.svg"],
629
- ["Info Text 3", "../assets/mailOutlined.svg"]
630
- ]
631
- chipConfig = [
632
- ["Chip 1", "success"],
633
- ["Chip 2", "warning"],
634
- ["Chip 3", "error"],
635
- ]
636
- mainButton = "+ Button"
637
- helperButton = "Helper"
638
- header = "Header"
639
-
640
- tabs: TabInterface[] = [
641
- {
642
- tabName: "Tab 1",
643
- tabIcon: "../assets/sourcesOutlined.svg",
644
- iconPosition: "left",
645
- badgeContent: "3 new",
646
- },
647
- {
648
- tabName: "Tab 2",
649
- tabIcon: "../assets/gridViewOutlined.svg",
650
- iconPosition: "right",
651
- badgeContent: "9 new",
652
- },
653
- {
654
- tabName: "Tab 3",
655
- tabIcon: "../assets/infoTriangleFilled.svg",
656
- iconPosition: "left",
657
- badgeContent: "17 new",
658
- },
659
- {
660
- tabName: "Tab 4",
661
- tabIcon: "../assets/personOutlined.svg",
662
- iconPosition: "right",
663
- },
664
- {
665
- tabName: "Tab 5",
666
- tabIcon: "../assets/mailOutlined.svg",
667
- badgeContent: "6 new",
668
- iconPosition: "both",
669
- }
670
- ]
671
-
672
- defaultTab = 2;
673
- tabSwitch(evt: any) {
674
- console.log(evt);
675
- }
676
-
677
- range = new FormGroup({
678
- start: new FormControl(),
679
- end: new FormControl(),
680
- });
681
-
682
- leftNavData: ILeftNav = {
683
- items: [{
684
- title: 'Home',
685
- icon: 'homeOutlined',
686
- disable: false,
687
- tooltip: '',
688
- relativePath: true,
689
- path: 'home'
690
- }, {
691
- title: 'Pricing',
692
- icon: 'formDetailsOutlined',
693
- disable: true,
694
- tooltip: '',
695
- relativePath: true,
696
- path: ''
697
- }, {
698
- title: 'Setting',
699
- icon: 'settingsOutlined',
700
- disable: true,
701
- tooltip: 'coming soon',
702
- relativePath: true,
703
- path: ''
704
- }],
705
- footerItems: [{
706
- title: 'Help',
707
- icon: 'chatHelpOutlined',
708
- disable: true,
709
- tooltip: ''
710
- }, {
711
- title: 'Name',
712
- disable: false,
713
- tooltip: '',
714
- type: 'AVATAR'
715
- }, {
716
- title: 'Chevron',
717
- icon: 'doubleDownOutlined',
718
- disable: true,
719
- tooltip: ''
720
- }]
721
- }
722
-
723
- datonCardChip: ChipInterface = {
724
- id: '',
725
- text: 'Not started yet',
726
- type: 'small',
727
- state: 'neutral',
728
- filling: 'filled'
729
- }
730
- keyFeaturesIcon = '../assets/chatHelpOutlined.svg';
731
-
732
-
733
- guideCardSteps: GuideStep[] = [
734
- {
735
- title: "Define your target audience",
736
- description: "Identify the specific group of people you want to reach with your marketing efforts. Consider demographics, interests, and behaviors."
737
- },
738
- {
739
- title: "Set clear marketing goals",
740
- description: "Establish specific, measurable, achievable, relevant, and time-bound (SMART) objectives for your marketing plan."
741
- },
742
- {
743
- title: "Conduct market research",
744
- description: "Analyze your competitors, industry trends, and customer needs to inform your marketing strategy."
745
- },
746
- {
747
- title: "Choose your marketing channels",
748
- description: "Select the most effective platforms and methods to reach your target audience, such as social media, email marketing, or content marketing."
749
- },
750
- {
751
- title: "Develop your marketing message"
752
- },
753
- {
754
- title: "Set your marketing budget",
755
- description: "Allocate resources to different marketing activities based on their potential impact and alignment with your goals."
756
- },
757
- {
758
- title: "Implement your marketing tactics",
759
- description: "Execute your planned marketing activities across chosen channels, ensuring consistency in messaging and branding."
760
- },
761
- {
762
- title: "Monitor and measure results"
763
- }
764
- ];
765
- //for testimonial card
766
- titleIcon = `../assets/innosupps.svg`;
767
- cardIcon = `../assets/avatar.svg`;
768
- cardBody = `"Saras Analytics provides reliable, data-driven insights that empower us to make informed decisions with confidence."`
769
- title = 'Jason Panzer';
770
- subtitle = 'CEO, Innosupps';
771
- testimonialLogo: IconName = 'innosupps';
772
- //for radio-button
773
- radioOptions = [
774
- { value: 'option1', label: 'We are a Brand' },
775
- { value: 'option2', label: 'Option 2' },
776
- { value: 'option3', label: 'We are an Agency' },
777
- ];
778
- selectedRadio: OptionInterface = { value: 'option3', label: 'We are an Agency' };
779
- columnRadio: boolean = false;
780
- onRadioSelectionChange(value: OptionInterface): void {
781
- this.selectedRadio = value;
782
- }
783
- //for checkbox
784
- checkboxOptions = [ //options
785
- { value: 'option1', label: 'We are a Brand' },
786
- { value: 'option2', label: 'Option 2' },
787
- { value: 'option3', label: 'We are an Agency' },
788
- ]
789
- selectedValuesCheckbox: OptionInterface[] = [{ value: 'option1', label: 'We are a Brand' }];
790
- onCheckboxSelectionChange(values: OptionInterface[]): void {
791
- this.selectedValuesCheckbox = values
792
- console.log("checkbox", values)
793
- }
794
- //for checkbox card
795
- checkboxCardLogo = 'desktopSpeakerOutlined';
796
- checkboxCardTitle = 'Marketing';
797
- checkboxCardListIcon = 'checkCircleOutlined';
798
- listItems = [
799
- { text: 'Optimize marketing campaigns for better ROI' },
800
- { text: 'Compare marketing performance across all channels' },
801
- { text: 'Measure customer acquisition cost by campaign and channel' }
802
- ];
803
- checkboxCardSelected = false;
804
-
805
- checkboxCardsList = [
806
- {
807
- 'featureIcon': 'desktopSpeakerOutlined',
808
- 'title': 'Marketing',
809
- 'listIcon': 'checkCircleOutlined',
810
- 'listItems': [
811
- { text: 'Optimize marketing campaigns for better ROI' },
812
- { text: 'Compare marketing performance across all channels' },
813
- { text: 'Measure customer acquisition cost by campaign and channel' }
814
- ],
815
- 'isCardSelected': false,
816
- "disabled": false
817
- },
818
- {
819
- 'featureIcon': 'desktopSpeakerOutlined',
820
- 'title': 'Product',
821
- 'listIcon': 'checkCircleOutlined',
822
- 'listItems': [
823
- { text: 'Optimize marketing campaigns for better ROI' },
824
- { text: 'Compare marketing performance across all channels' },
825
- { text: 'Measure customer acquisition cost by campaign and channel' }
826
- ],
827
- 'isCardSelected': false,
828
- "disabled": false
829
- },
830
- {
831
- 'featureIcon': 'desktopSpeakerOutlined',
832
- 'title': 'Operations',
833
- 'listIcon': 'checkCircleOutlined',
834
- 'listItems': [
835
- { text: 'Optimize marketing campaigns for better ROI' },
836
- { text: 'Compare marketing performance across all channels' },
837
- { text: 'Measure customer acquisition cost by campaign and channel' }
838
- ],
839
- 'isCardSelected': true,
840
- 'customWrapperClass': 'sa-card-checkbox-wrapper',
841
- "disabled": false
842
- },
843
- {
844
- 'featureIcon': 'tabDesktopArrowClockwiseOutlined',
845
- 'title': 'Re-marketing & Activation',
846
- 'isCardSelected': false,
847
- 'customWrapperClass': 'sa-card-checkbox-wrapper',
848
- "disabled": true,
849
- "description": 'Coming soon!!',
850
- "descriptionIcon": 'timerOutlined',
851
- 'showButtons': [
852
- {
853
- 'label': 'Contact us to activate now',
854
- 'icon': 'headsetOutlined',
855
- 'type': 'submit',
856
- 'class': 'open-chat-button',
857
- 'iconPosition': 'left',
858
- 'buttonType': 'outline',
859
- 'size': 'large',
860
- 'state': 'default',
861
- 'iconSize': '17'
862
- },
863
- ]
864
- },
865
- ]
866
-
867
- handleCardClick(event: any) {
868
- console.log(event);
869
- }
870
-
871
- handleCheckboxChange(event: any) {
872
- console.log(event)
873
- }
874
-
875
- //for list
876
- selectedCheckboxCards: any[] = [];
877
- handleCardSelection(selectedCard: any, isSelected: boolean) {
878
- if (isSelected) {
879
- this.selectedCheckboxCards.push(selectedCard);
880
- } else {
881
- remove(this.selectedCheckboxCards, (card) => card.title === selectedCard.title)
882
- }
883
- console.log(this.selectedCheckboxCards)
884
- }
885
-
886
- //for accordion
887
- onAccordionOpened($event: any, accordionName: string) {
888
- console.log(event)
889
- }
890
- accordionCardMessage = "This first line can act as the subheading of this onboarding tooltip"
891
- accordionCustomWrapperClass: string = 'sa-card-checkbox-wrapper';
892
- accordionCardDetails = [{
893
- title: 'Amazon Ads',
894
- tooltip: "Track and analyze performance metrics for Amazon advertising campaigns, including impressions, clicks, and conversions.",
895
- selected: false,
896
- }, {
897
- title: 'Google Ads',
898
- tooltip: "Track and analyze performance metrics for Amazon advertising campaigns, including impressions, clicks, and conversions.",
899
- selected: false,
900
- }, {
901
- title: 'Marketing Overview',
902
- tooltip: "Track and analyze performance metrics for Amazon advertising campaigns, including impressions, clicks, and conversions.",
903
- selected: false,
904
- }, {
905
- title: 'Facebook Ads',
906
- tooltip: "Track and analyze performance metrics for Amazon advertising campaigns, including impressions, clicks, and conversions.",
907
- selected: false,
908
- }]
909
- accordionPanelTitle: string = 'Marketing';
910
- accordionExpanded: boolean = true;
911
- handleAccordionCardSelection(event: any) {
912
- console.log(event)
913
- }
914
- //for accordion formly
915
- panelData = [
916
- {
917
- key: 'marketingPanel',
918
- title: 'Marketing',
919
- accordionExpanded: false,
920
- cardMessage: 'Marketing-specific features',
921
- titleChip: {
922
- label: 'Selected',
923
- type: 'small',
924
- state: 'neutral',
925
- filling: 'filled',
926
- changeStateTo: 'error',
927
- text: ' {count} Selected',
928
- },
929
- features: [
930
- {
931
- title: 'Amazon Ads',
932
- tooltip: 'Track Amazon ad performance.',
933
- isSelected: false,
934
- disabled: true
935
- },
936
- {
937
- title: 'Google Ads',
938
- tooltip: 'Analyze Google ad metrics.',
939
- isSelected: true,
940
- },
941
- {
942
- title: 'Marketing Overview',
943
- tooltip: 'Track and analyze performance metrics for Amazon advertising campaigns, including impressions, clicks, and conversions.',
944
- isSelected: false,
945
- },
946
- {
947
- title: 'Facebook Ads',
948
- tooltip: 'Track and analyze performance metrics for Amazon advertising campaigns, including impressions, clicks, and conversions.',
949
- isSelected: false,
950
- },
951
- ],
952
- },
953
- {
954
- key: 'accountingPanel',
955
- title: 'Accounting',
956
- accordionExpanded: true,
957
- cardMessage: 'Accounting-specific features',
958
- customWrapperClass: '',
959
- titleChip: {
960
- label: 'Selected',
961
- type: 'small',
962
- state: 'neutral',
963
- filling: 'filled',
964
- changeStateTo: 'primary',
965
- text: '{count} Selected',
966
- },
967
- features: [
968
- {
969
- title: 'QuickBooks',
970
- tooltip: 'Integrate QuickBooks data.',
971
- isSelected: false,
972
- },
973
- {
974
- title: 'Xero',
975
- tooltip: 'Connect Xero accounting.',
976
- isSelected: true,
977
- },
978
- {
979
- title: 'Shopify',
980
- tooltip: 'Track Amazon ad performance.',
981
- isSelected: false,
982
- },
983
- {
984
- title: 'Klaviyo',
985
- tooltip: 'Analyze Google ad metrics.',
986
- isSelected: true,
987
- },
988
- ],
989
- advancedFeaturesExpanded: true,
990
- advancedFeatures: [
991
- {
992
- title: 'Magento',
993
- tooltip: 'Integrate Magento data.',
994
- isSelected: false,
995
- disabled: true,
996
- featureChip: {
997
- label: 'Advanced',
998
- type: 'small',
999
- state: 'primary',
1000
- filling: 'filled',
1001
- },
1002
- },
1003
- {
1004
- title: 'Shiphero',
1005
- tooltip: 'Connect Xero accounting.',
1006
- isSelected: false,
1007
- disabled: true
1008
- },
1009
- ],
1010
- advancedFeatureDisclaimer: 'Please reach out to us to activate the advanced dashboards',
1011
- advancedFeatureTitle: 'View Advanced Features',
1012
- advancedFeatureToggleTitle: 'Hide Advanced Features',
1013
- advancedFeatureDisclaimerButtons: [
1014
- {
1015
- text: 'Learn More',
1016
- type: 'transparent',
1017
- size: 'small',
1018
- state: 'default'
1019
- }, {
1020
- text: 'Schedule a call',
1021
- type: 'outline',
1022
- size: 'small',
1023
- state: 'default',
1024
- iconPosition: 'left',
1025
- icon: "headsetOutlined",
1026
- buttonIconSize: "14"
1027
- }
1028
- ]
1029
- },
1030
- ];
1031
- accordionForm = new FormGroup({});
1032
- accordionModel = {
1033
-
1034
- };
1035
- accordionFields: FormlyFieldConfig[] = [
1036
- {
1037
- key: 'accordionPanelGroup',
1038
- wrappers: ['wrapper'],
1039
- props: {
1040
- label: 'Choose the features that you would like to activate',
1041
- description: `Based on your selected features and preferences, we'll recommend the most relevant dashboards to support your goals`,
1042
- helpText: 'helptext here'
1043
- },
1044
- fieldGroupClassName: 'accordions-group-container',
1045
- fieldGroup: this.panelData.map(panel => ({
1046
- key: panel.key,
1047
- type: 'sa-accordion',
1048
- className: 'accordion-group-container',
1049
- props: {
1050
- panelTitle: panel.title,
1051
- accordionExpanded: panel.accordionExpanded,
1052
- cardMessage: panel.cardMessage,
1053
- customWrapperClass: panel.customWrapperClass || 'sa-card-accordion-wrapper',
1054
- titleChip: panel.titleChip,
1055
- expandedIcon: 'downChevronOutlined',
1056
- collapsedIcon: 'rightChevronOutlined',
1057
- tooltipIcon: 'infoCircleOutlined',
1058
- advancedTooltipIcon: 'infoCircleOutlined',
1059
- featureCardWidth: '628px',
1060
- advancedFeatureCardWidth: '623px',
1061
- featuresList: panel.features,
1062
- advancedFeatures: panel.advancedFeatures,
1063
- advancedFeaturesExpanded: panel.advancedFeaturesExpanded || false,
1064
- advancedFeatureTitle: panel.advancedFeatureTitle || 'View Advanced Features',
1065
- advancedFeatureToggleTitle: panel.advancedFeatureToggleTitle || 'Hide Advanced Features',
1066
- advancedFeatureDisclaimerButtons: panel.advancedFeatureDisclaimerButtons,
1067
- advancedFeatureDisclaimer: panel.advancedFeatureDisclaimer,
1068
- ...(panel.advancedFeatureDisclaimerButtons && {
1069
- onButtonClick: (button: any) => this.onButtonClick(panel, button)
1070
- }),
1071
- },
1072
- }))
1073
- }
1074
- ]
1075
-
1076
- //radio formly
1077
- radioForm = new FormGroup({});
1078
- radioModel = {
1079
- "radio-select": 'option3'
1080
- };
1081
- radioFields: FormlyFieldConfig[] = [
1082
- {
1083
- key: 'radio-select',
1084
- type: 'sa-radio-button',
1085
- props: {
1086
- options: [
1087
- { value: 'option1', label: 'We are a Brand' },
1088
- { value: 'option2', label: 'Option 2' },
1089
- { value: 'option3', label: 'We are an Agency' },
1090
- ],
1091
- label: 'Select an Option',
1092
- column: false,
1093
- },
1094
- },
1095
- ];
1096
- modelChangeHandler(event: any) {
1097
- console.log(event)
1098
- }
1099
-
1100
- //checkbox formly
1101
- checkboxForm = new FormGroup({});
1102
- checkboxModel = {
1103
- "checkbox-select": ['option2']
1104
- };
1105
- checkboxFields: FormlyFieldConfig[] = [
1106
- {
1107
- "key": "organization_type",
1108
- "type": "sa-radio-button",
1109
- "props": {
1110
- "label": "How would you best describe your organization?",
1111
- "required": true,
1112
- "options": [
1113
- {
1114
- "label": "We are a Brand",
1115
- "value": "We are a Brand"
1116
- },
1117
- {
1118
- "label": "We are an Agency",
1119
- "value": "We are an Agency"
1120
- }
1121
- ],
1122
- "description": "Select any one to ensure we tailor Pulse to fit your needs",
1123
- "column": false,
1124
- "state": "default",
1125
- "disabled": false,
1126
- "placeholder": "",
1127
- "type": "chipsMultiSelect",
1128
- },
1129
- "id": "formly_2_sa-radio-button_organization_type_0",
1130
- "hooks": {},
1131
- "modelOptions": {},
1132
- "validation": {
1133
- "messages": {}
1134
- },
1135
- "resetOnHide": true,
1136
- "wrappers": [],
1137
- "expressions": {},
1138
- "expressionProperties": {}
1139
- },
1140
- {
1141
- "key": "onboarding_function_type",
1142
- "type": "sa-checkbox",
1143
- "props": {
1144
- "label": "Which areas do you want to improve and grow using data insights?",
1145
- "required": true,
1146
- "options": [
1147
- {
1148
- "label": "Marketing",
1149
- "value": "Marketing"
1150
- },
1151
- {
1152
- "label": "Sales",
1153
- "value": "Sales"
1154
- },
1155
- {
1156
- "label": "Finance",
1157
- "value": "Finance"
1158
- },
1159
- {
1160
- "label": "Operations",
1161
- "value": "Operations"
1162
- },
1163
- {
1164
- "label": "Product",
1165
- "value": "Product"
1166
- },
1167
- {
1168
- "label": "Customer",
1169
- "value": "Customer"
1170
- }
1171
- ],
1172
- "description": "Pulse delivers a single source of truth for the entire business. You can start with any function and expand later",
1173
- "column": false,
1174
- "state": "default",
1175
- "disabled": false,
1176
- "placeholder": ""
1177
- },
1178
- "id": "formly_2_sa-checkbox_onboarding_function_type_1",
1179
- "hooks": {},
1180
- "modelOptions": {},
1181
- "validation": {
1182
- "messages": {}
1183
- },
1184
- "resetOnHide": true,
1185
- "wrappers": [],
1186
- "expressions": {},
1187
- "expressionProperties": {}
1188
- }
1189
- ];
1190
- //for checkbox card formly
1191
- checkboxCardForm = new FormGroup({});
1192
- checkboxCardModel = {
1193
- checkboxCardGroup: reduce(
1194
- map(this.checkboxCardsList, (card, index) => {
1195
- if (card.disabled) return null;
1196
- return {
1197
- [`card_${index}`]: card.isCardSelected,
1198
- };
1199
- }),
1200
- (acc, cur) => (cur ? { ...acc, ...cur } : acc),
1201
- {}
1202
- ),
1203
- };
1204
- checkboxCardFields: FormlyFieldConfig[] = [
1205
- {
1206
- key: 'checkboxCardGroup',
1207
- fieldGroupClassName: 'checkbox-card-group',
1208
- fieldGroup: this.checkboxCardsList.map((card, index) => ({
1209
- key: `card_${index}`,
1210
- type: 'sa-checkbox-card',
1211
- props: {
1212
- featureIcon: card.featureIcon,
1213
- title: card.title,
1214
- listIcon: card.listIcon,
1215
- listItems: card.listItems,
1216
- width: '40.25rem',
1217
- customWrapperClass: card.customWrapperClass || 'sa-card-checkbox-wrapper',
1218
- isCardSelected: card.isCardSelected,
1219
- disabled: card.disabled,
1220
- showButtons: card.showButtons,
1221
- description: card.description,
1222
- descriptionIcon: card.descriptionIcon,
1223
- ...(card.showButtons && { onButtonClick: () => this.onButtonClick(card) }),
1224
- },
1225
- defaultValue: card.isCardSelected,
1226
- })),
1227
- },
1228
- ];
1229
- onButtonClick(card: any, button?: any) {
1230
- if (card.disabled) {
1231
- console.log(`Button clicked on disabled card: ${card.title}`, {
1232
- button
1233
- });
1234
- } else {
1235
- console.log(`Button clicked on enabled card: ${card.title}`, {
1236
- button
1237
- });
1238
- }
1239
- }
1240
- //for carousel
1241
- carouselCards = [
1242
- {
1243
- id: 1,
1244
- avatarIcon: 'avatar',
1245
- title: 'Jason Panzer',
1246
- subtitle: 'CEO, Innosupps',
1247
- logoIcon: 'innosupps',
1248
- body: '"Saras Analytics provides reliable, data-driven insights that empower us to make informed decisions with confidence."'
1249
- },
1250
- {
1251
- id: 1,
1252
- avatarIcon: 'avatar',
1253
- title: 'Michael Jackson',
1254
- subtitle: 'CEO, Innosupps',
1255
- logoIcon: 'bpn',
1256
- body: '"Saras Analytics provides reliable, data-driven insights that empower us to make informed decisions with confidence."'
1257
- },
1258
- {
1259
- id: 3,
1260
- avatarIcon: 'avatar',
1261
- title: 'Michael Chen',
1262
- subtitle: 'Founder, GreenEco Solutions',
1263
- logoIcon: 'murad',
1264
- body: '"Saras Analytics has been instrumental in helping us identify and capitalize on sustainable market trends. Their insights are invaluable."'
1265
- },
1266
- {
1267
- id: 4,
1268
- avatarIcon: 'avatar',
1269
- title: 'Emily Rodriguez',
1270
- subtitle: 'Data person, HealthTech',
1271
- logoIcon: 'downChevronOutlined',
1272
- body: `"The precision and reliability of Saras Analytics' data have significantly improved our research outcomes."`
1273
- },
1274
- {
1275
- id: 5,
1276
- avatarIcon: 'avatar',
1277
- title: 'Alex Kowalski',
1278
- subtitle: 'CTO, FinServe Global',
1279
- logoIcon: 'checkOutlined',
1280
- body: `Saras Analytics platform has streamlined our data processing, allowing us to focus on strategy rather than data management.Highly recommended.`
1281
- },
1282
- {
1283
- id: 6,
1284
- avatarIcon: 'avatar',
1285
- title: 'Olivia Thompson',
1286
- subtitle: 'Head of E-commerce, RetailGiant',
1287
- logoIcon: 'infoTriangleFilled',
1288
- body: `"The insights we've gained through Saras Analytics have directly contributed to a 25% boost in our online sales.Their platform is intuitive"`
1289
- },
1290
- {
1291
- id: 7,
1292
- avatarIcon: 'avatar',
1293
- title: 'Alex Kowalski',
1294
- subtitle: 'CTO, FinServe Global',
1295
- logoIcon: 'closeCircleFilled',
1296
- body: `Saras Analytics platform has streamlined our data processing, allowing us to focus on strategy rather than data management.Highly recommended.`
1297
- },
1298
- {
1299
- id: 8,
1300
- avatarIcon: 'avatar',
1301
- title: 'Olivia Thompson',
1302
- subtitle: 'Head of E-commerce, RetailGiant',
1303
- logoIcon: 'locationOutlined',
1304
- body: `"The insights we've gained through Saras Analytics have directly contributed to a 25% boost in our online sales.Their platform is intuitive"`
1305
- },
1306
- {
1307
- id: 9,
1308
- avatarIcon: 'avatar',
1309
- title: 'Alex Kowalski',
1310
- subtitle: 'CTO, FinServe Global',
1311
- logoIcon: 'personOutlined',
1312
- body: `Saras Analytics platform has streamlined our data processing, allowing us to focus on strategy rather than data management.Highly recommended.`
1313
- },
1314
- {
1315
- id: 10,
1316
- avatarIcon: 'avatar',
1317
- title: 'Olivia Thompson',
1318
- subtitle: 'Head of E-commerce, RetailGiant',
1319
- logoIcon: 'multiConnectionHub',
1320
- body: `"The insights we've gained through Saras Analytics have directly contributed to a 25% boost in our online sales.Their platform is intuitive"`
1321
- }, {
1322
- id: 11,
1323
- avatarIcon: 'avatar',
1324
- title: 'Alex Kowalski',
1325
- subtitle: 'CTO, FinServe Global',
1326
- logoIcon: 'targetScanOutlined',
1327
- body: `Saras Analytics platform has streamlined our data processing, allowing us to focus on strategy rather than data management.Highly recommended.`
1328
- },
1329
- {
1330
- id: 12,
1331
- avatarIcon: 'avatar',
1332
- title: 'Olivia Thompson',
1333
- subtitle: 'Head of E-commerce, RetailGiant',
1334
- logoIcon: 'bpn',
1335
- body: `"The insights we've gained through Saras Analytics have directly contributed to a 25% boost in our online sales.Their platform is intuitive"`
1336
- }
1337
- // Add more testimonials here
1338
- ];
1339
- }
1340
-
1341
-