@inorain_development/hotel-smarters-chat-ui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/README.md +110 -0
  2. package/lib/commonjs/features/chat/components/common/cart-icon.native.js +36 -0
  3. package/lib/commonjs/features/chat/components/common/cart-icon.native.js.map +1 -0
  4. package/lib/commonjs/features/chat/components/common/collapsible.js +20 -0
  5. package/lib/commonjs/features/chat/components/common/collapsible.js.map +1 -0
  6. package/lib/commonjs/features/chat/components/common/collapsible.native.js +38 -0
  7. package/lib/commonjs/features/chat/components/common/collapsible.native.js.map +1 -0
  8. package/lib/commonjs/features/chat/components/product/index.js +13 -0
  9. package/lib/commonjs/features/chat/components/product/index.js.map +1 -0
  10. package/lib/commonjs/features/chat/components/product/product.js +83 -0
  11. package/lib/commonjs/features/chat/components/product/product.js.map +1 -0
  12. package/lib/commonjs/features/chat/components/product/product.model.js +6 -0
  13. package/lib/commonjs/features/chat/components/product/product.model.js.map +1 -0
  14. package/lib/commonjs/features/chat/components/product/product.native.js +125 -0
  15. package/lib/commonjs/features/chat/components/product/product.native.js.map +1 -0
  16. package/lib/commonjs/features/chat/components/service/index.js +13 -0
  17. package/lib/commonjs/features/chat/components/service/index.js.map +1 -0
  18. package/lib/commonjs/features/chat/components/service/service.js +83 -0
  19. package/lib/commonjs/features/chat/components/service/service.js.map +1 -0
  20. package/lib/commonjs/features/chat/components/service/service.model.js +6 -0
  21. package/lib/commonjs/features/chat/components/service/service.model.js.map +1 -0
  22. package/lib/commonjs/features/chat/components/service/service.native.js +106 -0
  23. package/lib/commonjs/features/chat/components/service/service.native.js.map +1 -0
  24. package/lib/commonjs/features/chat/index.d.js +6 -0
  25. package/lib/commonjs/features/chat/index.d.js.map +1 -0
  26. package/lib/commonjs/features/chat/index.d.ts.map +1 -0
  27. package/lib/commonjs/features/chat/index.js +46 -0
  28. package/lib/commonjs/features/chat/index.js.map +1 -0
  29. package/lib/commonjs/features/chat/model/chat.model.js +23 -0
  30. package/lib/commonjs/features/chat/model/chat.model.js.map +1 -0
  31. package/lib/commonjs/features/chat/renderer/index.js +13 -0
  32. package/lib/commonjs/features/chat/renderer/index.js.map +1 -0
  33. package/lib/commonjs/features/chat/renderer/renderer.js +32 -0
  34. package/lib/commonjs/features/chat/renderer/renderer.js.map +1 -0
  35. package/lib/commonjs/features/chat/renderer/renderer.native.js +32 -0
  36. package/lib/commonjs/features/chat/renderer/renderer.native.js.map +1 -0
  37. package/lib/commonjs/index.d.js +17 -0
  38. package/lib/commonjs/index.d.js.map +1 -0
  39. package/lib/commonjs/index.d.ts.map +1 -0
  40. package/lib/commonjs/index.js +17 -0
  41. package/lib/commonjs/index.js.map +1 -0
  42. package/lib/commonjs/native.d.js +6 -0
  43. package/lib/commonjs/native.d.js.map +1 -0
  44. package/lib/commonjs/native.d.ts.map +1 -0
  45. package/lib/commonjs/native.js +46 -0
  46. package/lib/commonjs/native.js.map +1 -0
  47. package/lib/commonjs/package.json +1 -0
  48. package/lib/commonjs/styles/global.css +3 -0
  49. package/lib/commonjs/utils/i18n.utils.js +12 -0
  50. package/lib/commonjs/utils/i18n.utils.js.map +1 -0
  51. package/lib/commonjs/utils/theme.utils.js +37 -0
  52. package/lib/commonjs/utils/theme.utils.js.map +1 -0
  53. package/lib/commonjs/utils/use-expandable-list.js +23 -0
  54. package/lib/commonjs/utils/use-expandable-list.js.map +1 -0
  55. package/lib/commonjs/web.d.js +6 -0
  56. package/lib/commonjs/web.d.js.map +1 -0
  57. package/lib/commonjs/web.d.ts.map +1 -0
  58. package/lib/commonjs/web.js +46 -0
  59. package/lib/commonjs/web.js.map +1 -0
  60. package/lib/module/features/chat/components/common/cart-icon.native.js +32 -0
  61. package/lib/module/features/chat/components/common/cart-icon.native.js.map +1 -0
  62. package/lib/module/features/chat/components/common/collapsible.js +16 -0
  63. package/lib/module/features/chat/components/common/collapsible.js.map +1 -0
  64. package/lib/module/features/chat/components/common/collapsible.native.js +34 -0
  65. package/lib/module/features/chat/components/common/collapsible.native.js.map +1 -0
  66. package/lib/module/features/chat/components/product/index.js +4 -0
  67. package/lib/module/features/chat/components/product/index.js.map +1 -0
  68. package/lib/module/features/chat/components/product/product.js +79 -0
  69. package/lib/module/features/chat/components/product/product.js.map +1 -0
  70. package/lib/module/features/chat/components/product/product.model.js +4 -0
  71. package/lib/module/features/chat/components/product/product.model.js.map +1 -0
  72. package/lib/module/features/chat/components/product/product.native.js +121 -0
  73. package/lib/module/features/chat/components/product/product.native.js.map +1 -0
  74. package/lib/module/features/chat/components/service/index.js +4 -0
  75. package/lib/module/features/chat/components/service/index.js.map +1 -0
  76. package/lib/module/features/chat/components/service/service.js +79 -0
  77. package/lib/module/features/chat/components/service/service.js.map +1 -0
  78. package/lib/module/features/chat/components/service/service.model.js +4 -0
  79. package/lib/module/features/chat/components/service/service.model.js.map +1 -0
  80. package/lib/module/features/chat/components/service/service.native.js +102 -0
  81. package/lib/module/features/chat/components/service/service.native.js.map +1 -0
  82. package/lib/module/features/chat/index.d.js +10 -0
  83. package/lib/module/features/chat/index.d.js.map +1 -0
  84. package/lib/module/features/chat/index.d.ts.map +1 -0
  85. package/lib/module/features/chat/index.js +7 -0
  86. package/lib/module/features/chat/index.js.map +1 -0
  87. package/lib/module/features/chat/model/chat.model.js +19 -0
  88. package/lib/module/features/chat/model/chat.model.js.map +1 -0
  89. package/lib/module/features/chat/renderer/index.js +4 -0
  90. package/lib/module/features/chat/renderer/index.js.map +1 -0
  91. package/lib/module/features/chat/renderer/renderer.js +28 -0
  92. package/lib/module/features/chat/renderer/renderer.js.map +1 -0
  93. package/lib/module/features/chat/renderer/renderer.native.js +28 -0
  94. package/lib/module/features/chat/renderer/renderer.native.js.map +1 -0
  95. package/lib/module/index.d.js +13 -0
  96. package/lib/module/index.d.js.map +1 -0
  97. package/lib/module/index.d.ts.map +1 -0
  98. package/lib/module/index.js +13 -0
  99. package/lib/module/index.js.map +1 -0
  100. package/lib/module/native.d.js +11 -0
  101. package/lib/module/native.d.js.map +1 -0
  102. package/lib/module/native.d.ts.map +1 -0
  103. package/lib/module/native.js +7 -0
  104. package/lib/module/native.js.map +1 -0
  105. package/lib/module/package.json +1 -0
  106. package/lib/module/styles/global.css +3 -0
  107. package/lib/module/utils/i18n.utils.js +8 -0
  108. package/lib/module/utils/i18n.utils.js.map +1 -0
  109. package/lib/module/utils/theme.utils.js +33 -0
  110. package/lib/module/utils/theme.utils.js.map +1 -0
  111. package/lib/module/utils/use-expandable-list.js +19 -0
  112. package/lib/module/utils/use-expandable-list.js.map +1 -0
  113. package/lib/module/web.d.js +10 -0
  114. package/lib/module/web.d.js.map +1 -0
  115. package/lib/module/web.d.ts.map +1 -0
  116. package/lib/module/web.js +7 -0
  117. package/lib/module/web.js.map +1 -0
  118. package/lib/typescript/commonjs/features/chat/components/common/cart-icon.native.d.ts +6 -0
  119. package/lib/typescript/commonjs/features/chat/components/common/cart-icon.native.d.ts.map +1 -0
  120. package/lib/typescript/commonjs/features/chat/components/common/collapsible.d.ts +6 -0
  121. package/lib/typescript/commonjs/features/chat/components/common/collapsible.d.ts.map +1 -0
  122. package/lib/typescript/commonjs/features/chat/components/common/collapsible.native.d.ts +6 -0
  123. package/lib/typescript/commonjs/features/chat/components/common/collapsible.native.d.ts.map +1 -0
  124. package/lib/typescript/commonjs/features/chat/components/product/index.d.ts +3 -0
  125. package/lib/typescript/commonjs/features/chat/components/product/index.d.ts.map +1 -0
  126. package/lib/typescript/commonjs/features/chat/components/product/product.d.ts +4 -0
  127. package/lib/typescript/commonjs/features/chat/components/product/product.d.ts.map +1 -0
  128. package/lib/typescript/commonjs/features/chat/components/product/product.model.d.ts +10 -0
  129. package/lib/typescript/commonjs/features/chat/components/product/product.model.d.ts.map +1 -0
  130. package/lib/typescript/commonjs/features/chat/components/product/product.native.d.ts +4 -0
  131. package/lib/typescript/commonjs/features/chat/components/product/product.native.d.ts.map +1 -0
  132. package/lib/typescript/commonjs/features/chat/components/service/index.d.ts +3 -0
  133. package/lib/typescript/commonjs/features/chat/components/service/index.d.ts.map +1 -0
  134. package/lib/typescript/commonjs/features/chat/components/service/service.d.ts +4 -0
  135. package/lib/typescript/commonjs/features/chat/components/service/service.d.ts.map +1 -0
  136. package/lib/typescript/commonjs/features/chat/components/service/service.model.d.ts +10 -0
  137. package/lib/typescript/commonjs/features/chat/components/service/service.model.d.ts.map +1 -0
  138. package/lib/typescript/commonjs/features/chat/components/service/service.native.d.ts +4 -0
  139. package/lib/typescript/commonjs/features/chat/components/service/service.native.d.ts.map +1 -0
  140. package/lib/typescript/commonjs/features/chat/index.d.ts +8 -0
  141. package/lib/typescript/commonjs/features/chat/index.d.ts.map +1 -0
  142. package/lib/typescript/commonjs/features/chat/model/chat.model.d.ts +31 -0
  143. package/lib/typescript/commonjs/features/chat/model/chat.model.d.ts.map +1 -0
  144. package/lib/typescript/commonjs/features/chat/renderer/index.d.ts +2 -0
  145. package/lib/typescript/commonjs/features/chat/renderer/index.d.ts.map +1 -0
  146. package/lib/typescript/commonjs/features/chat/renderer/renderer.d.ts +5 -0
  147. package/lib/typescript/commonjs/features/chat/renderer/renderer.d.ts.map +1 -0
  148. package/lib/typescript/commonjs/features/chat/renderer/renderer.native.d.ts +5 -0
  149. package/lib/typescript/commonjs/features/chat/renderer/renderer.native.d.ts.map +1 -0
  150. package/lib/typescript/commonjs/index.d.ts +11 -0
  151. package/lib/typescript/commonjs/index.d.ts.map +1 -0
  152. package/lib/typescript/commonjs/native.d.ts +8 -0
  153. package/lib/typescript/commonjs/native.d.ts.map +1 -0
  154. package/lib/typescript/commonjs/package.json +1 -0
  155. package/lib/typescript/commonjs/utils/i18n.utils.d.ts +3 -0
  156. package/lib/typescript/commonjs/utils/i18n.utils.d.ts.map +1 -0
  157. package/lib/typescript/commonjs/utils/theme.utils.d.ts +16 -0
  158. package/lib/typescript/commonjs/utils/theme.utils.d.ts.map +1 -0
  159. package/lib/typescript/commonjs/utils/use-expandable-list.d.ts +8 -0
  160. package/lib/typescript/commonjs/utils/use-expandable-list.d.ts.map +1 -0
  161. package/lib/typescript/commonjs/web.d.ts +8 -0
  162. package/lib/typescript/commonjs/web.d.ts.map +1 -0
  163. package/lib/typescript/module/features/chat/components/common/cart-icon.native.d.ts +6 -0
  164. package/lib/typescript/module/features/chat/components/common/cart-icon.native.d.ts.map +1 -0
  165. package/lib/typescript/module/features/chat/components/common/collapsible.d.ts +6 -0
  166. package/lib/typescript/module/features/chat/components/common/collapsible.d.ts.map +1 -0
  167. package/lib/typescript/module/features/chat/components/common/collapsible.native.d.ts +6 -0
  168. package/lib/typescript/module/features/chat/components/common/collapsible.native.d.ts.map +1 -0
  169. package/lib/typescript/module/features/chat/components/product/index.d.ts +3 -0
  170. package/lib/typescript/module/features/chat/components/product/index.d.ts.map +1 -0
  171. package/lib/typescript/module/features/chat/components/product/product.d.ts +4 -0
  172. package/lib/typescript/module/features/chat/components/product/product.d.ts.map +1 -0
  173. package/lib/typescript/module/features/chat/components/product/product.model.d.ts +10 -0
  174. package/lib/typescript/module/features/chat/components/product/product.model.d.ts.map +1 -0
  175. package/lib/typescript/module/features/chat/components/product/product.native.d.ts +4 -0
  176. package/lib/typescript/module/features/chat/components/product/product.native.d.ts.map +1 -0
  177. package/lib/typescript/module/features/chat/components/service/index.d.ts +3 -0
  178. package/lib/typescript/module/features/chat/components/service/index.d.ts.map +1 -0
  179. package/lib/typescript/module/features/chat/components/service/service.d.ts +4 -0
  180. package/lib/typescript/module/features/chat/components/service/service.d.ts.map +1 -0
  181. package/lib/typescript/module/features/chat/components/service/service.model.d.ts +10 -0
  182. package/lib/typescript/module/features/chat/components/service/service.model.d.ts.map +1 -0
  183. package/lib/typescript/module/features/chat/components/service/service.native.d.ts +4 -0
  184. package/lib/typescript/module/features/chat/components/service/service.native.d.ts.map +1 -0
  185. package/lib/typescript/module/features/chat/index.d.ts +8 -0
  186. package/lib/typescript/module/features/chat/index.d.ts.map +1 -0
  187. package/lib/typescript/module/features/chat/model/chat.model.d.ts +31 -0
  188. package/lib/typescript/module/features/chat/model/chat.model.d.ts.map +1 -0
  189. package/lib/typescript/module/features/chat/renderer/index.d.ts +2 -0
  190. package/lib/typescript/module/features/chat/renderer/index.d.ts.map +1 -0
  191. package/lib/typescript/module/features/chat/renderer/renderer.d.ts +5 -0
  192. package/lib/typescript/module/features/chat/renderer/renderer.d.ts.map +1 -0
  193. package/lib/typescript/module/features/chat/renderer/renderer.native.d.ts +5 -0
  194. package/lib/typescript/module/features/chat/renderer/renderer.native.d.ts.map +1 -0
  195. package/lib/typescript/module/index.d.ts +11 -0
  196. package/lib/typescript/module/index.d.ts.map +1 -0
  197. package/lib/typescript/module/native.d.ts +8 -0
  198. package/lib/typescript/module/native.d.ts.map +1 -0
  199. package/lib/typescript/module/package.json +1 -0
  200. package/lib/typescript/module/utils/i18n.utils.d.ts +3 -0
  201. package/lib/typescript/module/utils/i18n.utils.d.ts.map +1 -0
  202. package/lib/typescript/module/utils/theme.utils.d.ts +16 -0
  203. package/lib/typescript/module/utils/theme.utils.d.ts.map +1 -0
  204. package/lib/typescript/module/utils/use-expandable-list.d.ts +8 -0
  205. package/lib/typescript/module/utils/use-expandable-list.d.ts.map +1 -0
  206. package/lib/typescript/module/web.d.ts +8 -0
  207. package/lib/typescript/module/web.d.ts.map +1 -0
  208. package/nativewind-env.d.ts +1 -0
  209. package/package.json +142 -0
  210. package/src/features/chat/components/common/cart-icon.native.tsx +20 -0
  211. package/src/features/chat/components/common/collapsible.native.tsx +28 -0
  212. package/src/features/chat/components/common/collapsible.tsx +13 -0
  213. package/src/features/chat/components/product/index.ts +2 -0
  214. package/src/features/chat/components/product/product.model.ts +10 -0
  215. package/src/features/chat/components/product/product.native.tsx +117 -0
  216. package/src/features/chat/components/product/product.tsx +80 -0
  217. package/src/features/chat/components/service/index.ts +2 -0
  218. package/src/features/chat/components/service/service.model.ts +10 -0
  219. package/src/features/chat/components/service/service.native.tsx +96 -0
  220. package/src/features/chat/components/service/service.tsx +80 -0
  221. package/src/features/chat/index.d.ts +8 -0
  222. package/src/features/chat/index.d.ts.map +1 -0
  223. package/src/features/chat/index.ts +13 -0
  224. package/src/features/chat/model/chat.model.ts +36 -0
  225. package/src/features/chat/renderer/index.ts +1 -0
  226. package/src/features/chat/renderer/renderer.native.tsx +22 -0
  227. package/src/features/chat/renderer/renderer.tsx +22 -0
  228. package/src/index.d.ts +11 -0
  229. package/src/index.d.ts.map +1 -0
  230. package/src/index.ts +10 -0
  231. package/src/native.d.ts +9 -0
  232. package/src/native.d.ts.map +1 -0
  233. package/src/native.ts +13 -0
  234. package/src/styles/global.css +3 -0
  235. package/src/utils/i18n.utils.ts +7 -0
  236. package/src/utils/theme.utils.ts +47 -0
  237. package/src/utils/use-expandable-list.ts +12 -0
  238. package/src/web.d.ts +8 -0
  239. package/src/web.d.ts.map +1 -0
  240. package/src/web.ts +13 -0
  241. package/tailwind.config.js +43 -0
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ import { useEffect, useRef, useState } from 'react';
4
+ import { Animated, View } from 'react-native';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ export function Collapsible({
7
+ expanded,
8
+ children
9
+ }) {
10
+ const [height, setHeight] = useState(0);
11
+ const anim = useRef(new Animated.Value(0)).current;
12
+ useEffect(() => {
13
+ Animated.timing(anim, {
14
+ toValue: expanded ? height : 0,
15
+ duration: 250,
16
+ useNativeDriver: false
17
+ }).start();
18
+ }, [expanded, height, anim]);
19
+ const onLayout = e => {
20
+ const next = e.nativeEvent.layout.height;
21
+ if (next > 0 && next !== height) setHeight(next);
22
+ };
23
+ return /*#__PURE__*/_jsx(Animated.View, {
24
+ style: {
25
+ height: anim,
26
+ overflow: 'hidden'
27
+ },
28
+ children: /*#__PURE__*/_jsx(View, {
29
+ onLayout: onLayout,
30
+ children: children
31
+ })
32
+ });
33
+ }
34
+ //# sourceMappingURL=collapsible.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useRef","useState","Animated","View","jsx","_jsx","Collapsible","expanded","children","height","setHeight","anim","Value","current","timing","toValue","duration","useNativeDriver","start","onLayout","e","next","nativeEvent","layout","style","overflow"],"sourceRoot":"../../../../../../src","sources":["features/chat/components/common/collapsible.native.tsx"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAEnD,SAASC,QAAQ,EAAEC,IAAI,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG9C,OAAO,SAASC,WAAWA,CAAC;EAAEC,QAAQ;EAAEC;AAAqD,CAAC,EAAE;EAC9F,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGT,QAAQ,CAAC,CAAC,CAAC;EACvC,MAAMU,IAAI,GAAGX,MAAM,CAAC,IAAIE,QAAQ,CAACU,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAElDd,SAAS,CAAC,MAAM;IACdG,QAAQ,CAACY,MAAM,CAACH,IAAI,EAAE;MACpBI,OAAO,EAAER,QAAQ,GAAGE,MAAM,GAAG,CAAC;MAC9BO,QAAQ,EAAE,GAAG;MACbC,eAAe,EAAE;IACnB,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;EACZ,CAAC,EAAE,CAACX,QAAQ,EAAEE,MAAM,EAAEE,IAAI,CAAC,CAAC;EAE5B,MAAMQ,QAAQ,GAAIC,CAAoB,IAAK;IACzC,MAAMC,IAAI,GAAGD,CAAC,CAACE,WAAW,CAACC,MAAM,CAACd,MAAM;IACxC,IAAIY,IAAI,GAAG,CAAC,IAAIA,IAAI,KAAKZ,MAAM,EAAEC,SAAS,CAACW,IAAI,CAAC;EAClD,CAAC;EAED,oBACEhB,IAAA,CAACH,QAAQ,CAACC,IAAI;IAACqB,KAAK,EAAE;MAAEf,MAAM,EAAEE,IAAI;MAAEc,QAAQ,EAAE;IAAS,CAAE;IAAAjB,QAAA,eACzDH,IAAA,CAACF,IAAI;MAACgB,QAAQ,EAAEA,QAAS;MAAAX,QAAA,EAAEA;IAAQ,CAAO;EAAC,CAC9B,CAAC;AAEpB","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { Product } from './product';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Product"],"sourceRoot":"../../../../../../src","sources":["features/chat/components/product/index.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,WAAW","ignoreList":[]}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ import { Fragment } from 'react';
4
+ import { getThemeClasses } from "../../../../utils/theme.utils.js";
5
+ import { resolveText } from "../../../../utils/i18n.utils.js";
6
+ import { useExpandableList } from "../../../../utils/use-expandable-list.js";
7
+ import { Collapsible } from '../common/collapsible';
8
+ import { Theme } from "../../model/chat.model.js";
9
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
10
+ export function Product({
11
+ data,
12
+ theme = Theme.Dark,
13
+ language,
14
+ onSelect
15
+ }) {
16
+ const c = getThemeClasses(theme);
17
+ const items = Array.isArray(data) ? data : [data];
18
+ const {
19
+ head,
20
+ rest,
21
+ expanded,
22
+ hasMore,
23
+ toggle
24
+ } = useExpandableList(items);
25
+ const renderRow = item => {
26
+ const name = resolveText(item.name, language);
27
+ const description = resolveText(item.description, language);
28
+ return /*#__PURE__*/_jsxs("div", {
29
+ className: "flex cursor-pointer items-center gap-3",
30
+ onClick: () => onSelect?.(item),
31
+ children: [/*#__PURE__*/_jsx("img", {
32
+ src: item.image,
33
+ alt: name,
34
+ className: `h-14 w-14 rounded-lg object-cover down-sm:h-12 down-sm:w-12 ${c.iconBg}`
35
+ }), /*#__PURE__*/_jsxs("div", {
36
+ className: "flex min-w-0 flex-1 flex-col gap-1",
37
+ children: [/*#__PURE__*/_jsxs("div", {
38
+ className: "flex items-center justify-between gap-2",
39
+ children: [/*#__PURE__*/_jsx("span", {
40
+ className: `flex-1 truncate text-base font-bold down-sm:text-sm ${c.title}`,
41
+ children: name
42
+ }), /*#__PURE__*/_jsx("span", {
43
+ className: `shrink-0 text-base font-bold down-sm:text-sm ${c.price}`,
44
+ children: item.price
45
+ })]
46
+ }), /*#__PURE__*/_jsx("span", {
47
+ className: `line-clamp-2 text-sm down-sm:text-xs ${c.subtitle}`,
48
+ children: description
49
+ })]
50
+ })]
51
+ });
52
+ };
53
+ return /*#__PURE__*/_jsxs("div", {
54
+ className: `rounded-2xl border px-3 py-2 ${c.surface} ${c.border}`,
55
+ children: [head.map((item, index) => /*#__PURE__*/_jsxs(Fragment, {
56
+ children: [index > 0 ? /*#__PURE__*/_jsx("div", {
57
+ className: `my-2.5 h-px ${c.divider}`
58
+ }) : null, renderRow(item)]
59
+ }, item.id)), hasMore ? /*#__PURE__*/_jsxs(_Fragment, {
60
+ children: [/*#__PURE__*/_jsx(Collapsible, {
61
+ expanded: expanded,
62
+ children: rest.map(item => /*#__PURE__*/_jsxs(Fragment, {
63
+ children: [/*#__PURE__*/_jsx("div", {
64
+ className: `my-2.5 h-px ${c.divider}`
65
+ }), renderRow(item)]
66
+ }, item.id))
67
+ }), /*#__PURE__*/_jsx("div", {
68
+ className: "mt-2 flex justify-center",
69
+ children: /*#__PURE__*/_jsx("button", {
70
+ type: "button",
71
+ onClick: toggle,
72
+ className: `rounded-xl border px-4 py-1.5 text-sm font-medium ${c.actionBorder} ${c.actionText}`,
73
+ children: expanded ? 'Show less' : 'Show more'
74
+ })
75
+ })]
76
+ }) : null]
77
+ });
78
+ }
79
+ //# sourceMappingURL=product.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Fragment","getThemeClasses","resolveText","useExpandableList","Collapsible","Theme","jsx","_jsx","jsxs","_jsxs","_Fragment","Product","data","theme","Dark","language","onSelect","c","items","Array","isArray","head","rest","expanded","hasMore","toggle","renderRow","item","name","description","className","onClick","children","src","image","alt","iconBg","title","price","subtitle","surface","border","map","index","divider","id","type","actionBorder","actionText"],"sourceRoot":"../../../../../../src","sources":["features/chat/components/product/product.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=product.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../../src","sources":["features/chat/components/product/product.model.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+
3
+ import { Fragment, useMemo } from 'react';
4
+ import { Image, Pressable, Text, View } from 'react-native';
5
+ import { getThemeClasses } from "../../../../utils/theme.utils.js";
6
+ import { resolveText } from "../../../../utils/i18n.utils.js";
7
+ import { useExpandableList } from "../../../../utils/use-expandable-list.js";
8
+ import { Collapsible } from "../common/collapsible.native.js";
9
+ import { CartIcon } from "../common/cart-icon.native.js";
10
+ import { ItemAction, Theme } from "../../model/chat.model.js";
11
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
12
+ export function Product({
13
+ data,
14
+ theme = Theme.Dark,
15
+ language,
16
+ actionLabel = 'Add to cart',
17
+ counts,
18
+ onAction,
19
+ onSelect
20
+ }) {
21
+ const c = getThemeClasses(theme);
22
+ const items = Array.isArray(data) ? data : [data];
23
+ const {
24
+ head,
25
+ rest,
26
+ expanded,
27
+ hasMore,
28
+ toggle
29
+ } = useExpandableList(items);
30
+
31
+ // Build an id -> count lookup once so each row stays O(1).
32
+ const countById = useMemo(() => {
33
+ const map = new Map();
34
+ for (const entry of counts ?? []) map.set(entry.id, entry.count);
35
+ return map;
36
+ }, [counts]);
37
+ const renderRow = item => {
38
+ const name = resolveText(item.name, language);
39
+ const description = resolveText(item.description, language);
40
+ const count = countById.get(item.id) ?? 0;
41
+ return /*#__PURE__*/_jsxs(Pressable, {
42
+ className: "flex-row items-center gap-3",
43
+ onPress: () => onSelect?.(item),
44
+ children: [/*#__PURE__*/_jsx(Image, {
45
+ accessibilityLabel: name,
46
+ source: {
47
+ uri: item.image
48
+ },
49
+ className: `h-14 w-14 rounded-lg down-sm:h-12 down-sm:w-12 ${c.iconBg}`
50
+ }), /*#__PURE__*/_jsxs(View, {
51
+ className: "flex-1 gap-1",
52
+ children: [/*#__PURE__*/_jsxs(View, {
53
+ className: "flex-row items-center justify-between gap-2",
54
+ children: [/*#__PURE__*/_jsx(Text, {
55
+ className: `flex-1 text-base font-bold down-sm:text-sm ${c.title}`,
56
+ numberOfLines: 1,
57
+ children: name
58
+ }), count > 0 ? /*#__PURE__*/_jsxs(View, {
59
+ className: `flex-row items-center gap-1 rounded-full px-2 py-0.5 ${c.iconBg}`,
60
+ children: [/*#__PURE__*/_jsx(CartIcon, {
61
+ size: 14,
62
+ color: c.iconColor
63
+ }), /*#__PURE__*/_jsx(Text, {
64
+ className: `text-xs font-semibold ${c.iconText}`,
65
+ children: count
66
+ })]
67
+ }) : null, /*#__PURE__*/_jsx(Text, {
68
+ className: `text-base font-bold down-sm:text-sm ${c.price}`,
69
+ children: item.price
70
+ })]
71
+ }), /*#__PURE__*/_jsxs(View, {
72
+ className: "flex-row items-center justify-between gap-2",
73
+ children: [/*#__PURE__*/_jsx(Text, {
74
+ className: `flex-1 text-sm down-sm:text-xs ${c.subtitle}`,
75
+ numberOfLines: 2,
76
+ children: description
77
+ }), /*#__PURE__*/_jsx(Pressable, {
78
+ accessibilityRole: "button",
79
+ onPress: () => onAction?.(item, ItemAction.Add),
80
+ className: `rounded-xl border px-3 py-1.5 ${c.actionBorder}`,
81
+ children: /*#__PURE__*/_jsx(Text, {
82
+ className: `text-sm font-medium ${c.actionText}`,
83
+ children: actionLabel
84
+ })
85
+ })]
86
+ })]
87
+ })]
88
+ });
89
+ };
90
+ return /*#__PURE__*/_jsx(View, {
91
+ className: "gap-2",
92
+ children: /*#__PURE__*/_jsxs(View, {
93
+ className: `rounded-2xl border px-3 py-2 ${c.surface} ${c.border}`,
94
+ children: [head.map((item, index) => /*#__PURE__*/_jsxs(Fragment, {
95
+ children: [index > 0 ? /*#__PURE__*/_jsx(View, {
96
+ className: `my-2.5 h-px ${c.divider}`
97
+ }) : null, renderRow(item)]
98
+ }, item.id)), hasMore ? /*#__PURE__*/_jsxs(_Fragment, {
99
+ children: [/*#__PURE__*/_jsx(Collapsible, {
100
+ expanded: expanded,
101
+ children: rest.map(item => /*#__PURE__*/_jsxs(Fragment, {
102
+ children: [/*#__PURE__*/_jsx(View, {
103
+ className: `my-2.5 h-px ${c.divider}`
104
+ }), renderRow(item)]
105
+ }, item.id))
106
+ }), /*#__PURE__*/_jsx(View, {
107
+ className: "mt-2 items-center",
108
+ children: /*#__PURE__*/_jsx(Pressable, {
109
+ onPress: toggle,
110
+ className: `rounded-xl border px-4 py-1.5 ${c.actionBorder}`,
111
+ children: /*#__PURE__*/_jsx(Text, {
112
+ className: `text-sm font-medium ${c.actionText}`,
113
+ children: expanded ? 'Show less' : 'Show more'
114
+ })
115
+ })
116
+ })]
117
+ }) : null]
118
+ })
119
+ });
120
+ }
121
+ //# sourceMappingURL=product.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Fragment","useMemo","Image","Pressable","Text","View","getThemeClasses","resolveText","useExpandableList","Collapsible","CartIcon","ItemAction","Theme","jsx","_jsx","jsxs","_jsxs","_Fragment","Product","data","theme","Dark","language","actionLabel","counts","onAction","onSelect","c","items","Array","isArray","head","rest","expanded","hasMore","toggle","countById","map","Map","entry","set","id","count","renderRow","item","name","description","get","className","onPress","children","accessibilityLabel","source","uri","image","iconBg","title","numberOfLines","size","color","iconColor","iconText","price","subtitle","accessibilityRole","Add","actionBorder","actionText","surface","border","index","divider"],"sourceRoot":"../../../../../../src","sources":["features/chat/components/product/product.native.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { Service } from './service';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Service"],"sourceRoot":"../../../../../../src","sources":["features/chat/components/service/index.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,WAAW","ignoreList":[]}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ import { Fragment } from 'react';
4
+ import { getThemeClasses } from "../../../../utils/theme.utils.js";
5
+ import { resolveText } from "../../../../utils/i18n.utils.js";
6
+ import { useExpandableList } from "../../../../utils/use-expandable-list.js";
7
+ import { Collapsible } from '../common/collapsible';
8
+ import { Theme } from "../../model/chat.model.js";
9
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
10
+ export function Service({
11
+ data,
12
+ theme = Theme.Dark,
13
+ language,
14
+ onSelect
15
+ }) {
16
+ const c = getThemeClasses(theme);
17
+ const items = Array.isArray(data) ? data : [data];
18
+ const {
19
+ head,
20
+ rest,
21
+ expanded,
22
+ hasMore,
23
+ toggle
24
+ } = useExpandableList(items);
25
+ const renderRow = item => {
26
+ const name = resolveText(item.name, language);
27
+ const description = resolveText(item.description, language);
28
+ return /*#__PURE__*/_jsxs("div", {
29
+ className: "flex cursor-pointer items-center gap-3",
30
+ onClick: () => onSelect?.(item),
31
+ children: [/*#__PURE__*/_jsx("img", {
32
+ src: item.image,
33
+ alt: name,
34
+ className: `h-14 w-14 rounded-lg object-cover down-sm:h-12 down-sm:w-12 ${c.iconBg}`
35
+ }), /*#__PURE__*/_jsxs("div", {
36
+ className: "flex min-w-0 flex-1 flex-col gap-1",
37
+ children: [/*#__PURE__*/_jsxs("div", {
38
+ className: "flex items-center justify-between gap-2",
39
+ children: [/*#__PURE__*/_jsx("span", {
40
+ className: `flex-1 truncate text-base font-bold down-sm:text-sm ${c.title}`,
41
+ children: name
42
+ }), /*#__PURE__*/_jsx("span", {
43
+ className: `shrink-0 text-base font-bold down-sm:text-sm ${c.price}`,
44
+ children: item.price
45
+ })]
46
+ }), /*#__PURE__*/_jsx("span", {
47
+ className: `line-clamp-2 text-sm down-sm:text-xs ${c.subtitle}`,
48
+ children: description
49
+ })]
50
+ })]
51
+ });
52
+ };
53
+ return /*#__PURE__*/_jsxs("div", {
54
+ className: `rounded-2xl border px-3 py-2 ${c.surface} ${c.border}`,
55
+ children: [head.map((item, index) => /*#__PURE__*/_jsxs(Fragment, {
56
+ children: [index > 0 ? /*#__PURE__*/_jsx("div", {
57
+ className: `my-2.5 h-px ${c.divider}`
58
+ }) : null, renderRow(item)]
59
+ }, item.id)), hasMore ? /*#__PURE__*/_jsxs(_Fragment, {
60
+ children: [/*#__PURE__*/_jsx(Collapsible, {
61
+ expanded: expanded,
62
+ children: rest.map(item => /*#__PURE__*/_jsxs(Fragment, {
63
+ children: [/*#__PURE__*/_jsx("div", {
64
+ className: `my-2.5 h-px ${c.divider}`
65
+ }), renderRow(item)]
66
+ }, item.id))
67
+ }), /*#__PURE__*/_jsx("div", {
68
+ className: "mt-2 flex justify-center",
69
+ children: /*#__PURE__*/_jsx("button", {
70
+ type: "button",
71
+ onClick: toggle,
72
+ className: `rounded-xl border px-4 py-1.5 text-sm font-medium ${c.actionBorder} ${c.actionText}`,
73
+ children: expanded ? 'Show less' : 'Show more'
74
+ })
75
+ })]
76
+ }) : null]
77
+ });
78
+ }
79
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Fragment","getThemeClasses","resolveText","useExpandableList","Collapsible","Theme","jsx","_jsx","jsxs","_jsxs","_Fragment","Service","data","theme","Dark","language","onSelect","c","items","Array","isArray","head","rest","expanded","hasMore","toggle","renderRow","item","name","description","className","onClick","children","src","image","alt","iconBg","title","price","subtitle","surface","border","map","index","divider","id","type","actionBorder","actionText"],"sourceRoot":"../../../../../../src","sources":["features/chat/components/service/service.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=service.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../../src","sources":["features/chat/components/service/service.model.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+
3
+ import { Fragment } from 'react';
4
+ import { Image, Pressable, Text, View } from 'react-native';
5
+ import { getThemeClasses } from "../../../../utils/theme.utils.js";
6
+ import { resolveText } from "../../../../utils/i18n.utils.js";
7
+ import { useExpandableList } from "../../../../utils/use-expandable-list.js";
8
+ import { Collapsible } from "../common/collapsible.native.js";
9
+ import { Theme } from "../../model/chat.model.js";
10
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
11
+ export function Service({
12
+ data,
13
+ theme = Theme.Dark,
14
+ language,
15
+ actionLabel = 'Request',
16
+ onAction,
17
+ onSelect
18
+ }) {
19
+ const c = getThemeClasses(theme);
20
+ const items = Array.isArray(data) ? data : [data];
21
+ const {
22
+ head,
23
+ rest,
24
+ expanded,
25
+ hasMore,
26
+ toggle
27
+ } = useExpandableList(items);
28
+ const renderRow = item => {
29
+ const name = resolveText(item.name, language);
30
+ const description = resolveText(item.description, language);
31
+ return /*#__PURE__*/_jsxs(Pressable, {
32
+ className: "flex-row items-center gap-3",
33
+ onPress: () => onSelect?.(item),
34
+ children: [/*#__PURE__*/_jsx(Image, {
35
+ accessibilityLabel: name,
36
+ source: {
37
+ uri: item.image
38
+ },
39
+ className: `h-14 w-14 rounded-lg down-sm:h-12 down-sm:w-12 ${c.iconBg}`
40
+ }), /*#__PURE__*/_jsxs(View, {
41
+ className: "flex-1 gap-1",
42
+ children: [/*#__PURE__*/_jsxs(View, {
43
+ className: "flex-row items-center justify-between gap-2",
44
+ children: [/*#__PURE__*/_jsx(Text, {
45
+ className: `flex-1 text-base font-bold down-sm:text-sm ${c.title}`,
46
+ numberOfLines: 1,
47
+ children: name
48
+ }), /*#__PURE__*/_jsx(Text, {
49
+ className: `text-base font-bold down-sm:text-sm ${c.price}`,
50
+ children: item.price
51
+ })]
52
+ }), /*#__PURE__*/_jsxs(View, {
53
+ className: "flex-row items-center justify-between gap-2",
54
+ children: [/*#__PURE__*/_jsx(Text, {
55
+ className: `flex-1 text-sm down-sm:text-xs ${c.subtitle}`,
56
+ numberOfLines: 2,
57
+ children: description
58
+ }), /*#__PURE__*/_jsx(Pressable, {
59
+ accessibilityRole: "button",
60
+ onPress: () => onAction?.(item),
61
+ className: `rounded-xl border px-3 py-1.5 ${c.actionBorder}`,
62
+ children: /*#__PURE__*/_jsx(Text, {
63
+ className: `text-sm font-medium ${c.actionText}`,
64
+ children: actionLabel
65
+ })
66
+ })]
67
+ })]
68
+ })]
69
+ });
70
+ };
71
+ return /*#__PURE__*/_jsx(View, {
72
+ className: "gap-2",
73
+ children: /*#__PURE__*/_jsxs(View, {
74
+ className: `rounded-2xl border px-3 py-2 ${c.surface} ${c.border}`,
75
+ children: [head.map((item, index) => /*#__PURE__*/_jsxs(Fragment, {
76
+ children: [index > 0 ? /*#__PURE__*/_jsx(View, {
77
+ className: `my-2.5 h-px ${c.divider}`
78
+ }) : null, renderRow(item)]
79
+ }, item.id)), hasMore ? /*#__PURE__*/_jsxs(_Fragment, {
80
+ children: [/*#__PURE__*/_jsx(Collapsible, {
81
+ expanded: expanded,
82
+ children: rest.map(item => /*#__PURE__*/_jsxs(Fragment, {
83
+ children: [/*#__PURE__*/_jsx(View, {
84
+ className: `my-2.5 h-px ${c.divider}`
85
+ }), renderRow(item)]
86
+ }, item.id))
87
+ }), /*#__PURE__*/_jsx(View, {
88
+ className: "mt-2 items-center",
89
+ children: /*#__PURE__*/_jsx(Pressable, {
90
+ onPress: toggle,
91
+ className: `rounded-xl border px-4 py-1.5 ${c.actionBorder}`,
92
+ children: /*#__PURE__*/_jsx(Text, {
93
+ className: `text-sm font-medium ${c.actionText}`,
94
+ children: expanded ? 'Show less' : 'Show more'
95
+ })
96
+ })
97
+ })]
98
+ }) : null]
99
+ })
100
+ });
101
+ }
102
+ //# sourceMappingURL=service.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Fragment","Image","Pressable","Text","View","getThemeClasses","resolveText","useExpandableList","Collapsible","Theme","jsx","_jsx","jsxs","_jsxs","_Fragment","Service","data","theme","Dark","language","actionLabel","onAction","onSelect","c","items","Array","isArray","head","rest","expanded","hasMore","toggle","renderRow","item","name","description","className","onPress","children","accessibilityLabel","source","uri","image","iconBg","title","numberOfLines","price","subtitle","accessibilityRole","actionBorder","actionText","surface","border","map","index","divider","id"],"sourceRoot":"../../../../../../src","sources":["features/chat/components/service/service.native.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * `chat` feature barrel.
5
+ *
6
+ * Will re-export the feature's public surface (renderer, models, components)
7
+ * once they are implemented.
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=index.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["index.ts"],"mappings":";;AAAA;;;;;;AAMA","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ export { Product } from "./components/product/index.js";
4
+ export { Service } from "./components/service/index.js";
5
+ export { ChatComponentRenderer } from "./renderer/index.js";
6
+ export { ComponentType, ItemAction, Theme } from "./model/chat.model.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Product","Service","ChatComponentRenderer","ComponentType","ItemAction","Theme"],"sourceRoot":"../../../../src","sources":["features/chat/index.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,+BAAsB;AAC9C,SAASC,OAAO,QAAQ,+BAAsB;AAC9C,SAASC,qBAAqB,QAAQ,qBAAY;AAClD,SAASC,aAAa,EAAEC,UAAU,EAAEC,KAAK,QAAQ,uBAAoB","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ export let Theme = /*#__PURE__*/function (Theme) {
4
+ Theme["Dark"] = "dark";
5
+ Theme["Light"] = "light";
6
+ return Theme;
7
+ }({});
8
+ export let ComponentType = /*#__PURE__*/function (ComponentType) {
9
+ ComponentType["Product"] = "product";
10
+ ComponentType["ProductList"] = "productList";
11
+ ComponentType["Service"] = "service";
12
+ ComponentType["ServiceList"] = "serviceList";
13
+ return ComponentType;
14
+ }({});
15
+ export let ItemAction = /*#__PURE__*/function (ItemAction) {
16
+ ItemAction["Add"] = "add";
17
+ return ItemAction;
18
+ }({});
19
+ //# sourceMappingURL=chat.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Theme","ComponentType","ItemAction"],"sourceRoot":"../../../../../src","sources":["features/chat/model/chat.model.ts"],"mappings":";;AAAA,WAAYA,KAAK,0BAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAAA,OAALA,KAAK;AAAA;AAQjB,WAAYC,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAOzB,WAAYC,UAAU,0BAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { ChatComponentRenderer } from './renderer';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ChatComponentRenderer"],"sourceRoot":"../../../../../src","sources":["features/chat/renderer/index.ts"],"mappings":";;AAAA,SAASA,qBAAqB,QAAQ,YAAY","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ import { Product } from '../components/product/product';
4
+ import { Service } from '../components/service/service';
5
+ import { ComponentType } from "../model/chat.model.js";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export function ChatComponentRenderer({
8
+ type,
9
+ ...rest
10
+ }) {
11
+ switch (type) {
12
+ case ComponentType.Product:
13
+ case ComponentType.ProductList:
14
+ return /*#__PURE__*/_jsx(Product, {
15
+ type: type,
16
+ ...rest
17
+ });
18
+ case ComponentType.Service:
19
+ case ComponentType.ServiceList:
20
+ return /*#__PURE__*/_jsx(Service, {
21
+ type: type,
22
+ ...rest
23
+ });
24
+ default:
25
+ return null;
26
+ }
27
+ }
28
+ //# sourceMappingURL=renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Product","Service","ComponentType","jsx","_jsx","ChatComponentRenderer","type","rest","ProductList","ServiceList"],"sourceRoot":"../../../../../src","sources":["features/chat/renderer/renderer.tsx"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,+BAA+B;AACvD,SAASC,OAAO,QAAQ,+BAA+B;AAGvD,SAASC,aAAa,QAAQ,wBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGpD,OAAO,SAASC,qBAAqBA,CAAC;EACpCC,IAAI;EACJ,GAAGC;AAC0C,CAAC,EAAE;EAChD,QAAQD,IAAI;IACV,KAAKJ,aAAa,CAACF,OAAO;IAC1B,KAAKE,aAAa,CAACM,WAAW;MAC5B,oBAAOJ,IAAA,CAACJ,OAAO;QAACM,IAAI,EAAEA,IAAK;QAAA,GAAMC;MAAI,CAAqD,CAAC;IAC7F,KAAKL,aAAa,CAACD,OAAO;IAC1B,KAAKC,aAAa,CAACO,WAAW;MAC5B,oBAAOL,IAAA,CAACH,OAAO;QAACK,IAAI,EAAEA,IAAK;QAAA,GAAMC;MAAI,CAAqD,CAAC;IAC7F;MACE,OAAO,IAAI;EACf;AACF","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ import { Product } from "../components/product/product.native.js";
4
+ import { Service } from "../components/service/service.native.js";
5
+ import { ComponentType } from "../model/chat.model.js";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export function ChatComponentRenderer({
8
+ type,
9
+ ...rest
10
+ }) {
11
+ switch (type) {
12
+ case ComponentType.Product:
13
+ case ComponentType.ProductList:
14
+ return /*#__PURE__*/_jsx(Product, {
15
+ type: type,
16
+ ...rest
17
+ });
18
+ case ComponentType.Service:
19
+ case ComponentType.ServiceList:
20
+ return /*#__PURE__*/_jsx(Service, {
21
+ type: type,
22
+ ...rest
23
+ });
24
+ default:
25
+ return null;
26
+ }
27
+ }
28
+ //# sourceMappingURL=renderer.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Product","Service","ComponentType","jsx","_jsx","ChatComponentRenderer","type","rest","ProductList","ServiceList"],"sourceRoot":"../../../../../src","sources":["features/chat/renderer/renderer.native.tsx"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,yCAAsC;AAC9D,SAASC,OAAO,QAAQ,yCAAsC;AAG9D,SAASC,aAAa,QAAQ,wBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGpD,OAAO,SAASC,qBAAqBA,CAAC;EACpCC,IAAI;EACJ,GAAGC;AAC0C,CAAC,EAAE;EAChD,QAAQD,IAAI;IACV,KAAKJ,aAAa,CAACF,OAAO;IAC1B,KAAKE,aAAa,CAACM,WAAW;MAC5B,oBAAOJ,IAAA,CAACJ,OAAO;QAACM,IAAI,EAAEA,IAAK;QAAA,GAAMC;MAAI,CAAqD,CAAC;IAC7F,KAAKL,aAAa,CAACD,OAAO;IAC1B,KAAKC,aAAa,CAACO,WAAW;MAC5B,oBAAOL,IAAA,CAACH,OAAO;QAACK,IAAI,EAAEA,IAAK;QAAA,GAAMC;MAAI,CAAqD,CAAC;IAC7F;MACE,OAAO,IAAI;EACf;AACF","ignoreList":[]}