@learncard/react 2.6.55 → 2.6.56

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 (289) hide show
  1. package/dist/cjs/{AchievementCard-9048086b.js → AchievementCard-c8d3cb7b.js} +2 -2
  2. package/dist/cjs/{AchievementCard-9048086b.js.map → AchievementCard-c8d3cb7b.js.map} +1 -1
  3. package/dist/cjs/CertificateDisplayCard-e83baadf.js +1133 -0
  4. package/dist/cjs/CertificateDisplayCard-e83baadf.js.map +1 -0
  5. package/dist/cjs/CircleIcon-6e2d0b8b.js +77 -0
  6. package/dist/cjs/CircleIcon-6e2d0b8b.js.map +1 -0
  7. package/dist/cjs/{Notification-9d230f1b.js → Notification-0bc2680c.js} +2 -2
  8. package/dist/cjs/{Notification-9d230f1b.js.map → Notification-0bc2680c.js.map} +1 -1
  9. package/dist/cjs/{NotificationBoostCard-3b3bd47d.js → NotificationBoostCard-194ae55a.js} +2 -2
  10. package/dist/cjs/{NotificationBoostCard-3b3bd47d.js.map → NotificationBoostCard-194ae55a.js.map} +1 -1
  11. package/dist/cjs/RoundedSquare-7042b3b7.js +57 -0
  12. package/dist/cjs/RoundedSquare-7042b3b7.js.map +1 -0
  13. package/dist/cjs/SchoolIDCard-fcd1a1ff.js +68 -0
  14. package/dist/cjs/SchoolIDCard-fcd1a1ff.js.map +1 -0
  15. package/dist/cjs/{SmallAchievementCard-c76701ce.js → SmallAchievementCard-a1fa862b.js} +2 -2
  16. package/dist/cjs/{SmallAchievementCard-c76701ce.js.map → SmallAchievementCard-a1fa862b.js.map} +1 -1
  17. package/dist/cjs/{Trophy-9ede7f2b.js → Trophy-3d323be3.js} +5 -2
  18. package/dist/cjs/Trophy-3d323be3.js.map +1 -0
  19. package/dist/cjs/{User-92f9cf40.js → User-dde46685.js} +19 -4
  20. package/dist/cjs/User-dde46685.js.map +1 -0
  21. package/dist/cjs/{VCCard-34b194a2.js → VCCard-1e875d62.js} +40 -4
  22. package/dist/cjs/VCCard-1e875d62.js.map +1 -0
  23. package/dist/cjs/{VCDisplayBackFace-919117cc.js → VCDisplayBackFace-48ae7e66.js} +3 -3
  24. package/dist/cjs/{VCDisplayBackFace-919117cc.js.map → VCDisplayBackFace-48ae7e66.js.map} +1 -1
  25. package/dist/cjs/{VCDisplayCard-d1158c4a.js → VCDisplayCard-6ce09757.js} +3 -3
  26. package/dist/cjs/{VCDisplayCard-d1158c4a.js.map → VCDisplayCard-6ce09757.js.map} +1 -1
  27. package/dist/cjs/VCDisplayCard2-b98cabf4.js +2709 -0
  28. package/dist/cjs/VCDisplayCard2-b98cabf4.js.map +1 -0
  29. package/dist/{esm/types.esm-b07820bb.js → cjs/VCVerificationPill-d0edd7ae.js} +75 -2
  30. package/dist/cjs/VCVerificationPill-d0edd7ae.js.map +1 -0
  31. package/dist/cjs/athletics.svg +9 -0
  32. package/dist/cjs/business.svg +9 -0
  33. package/dist/cjs/{constants-ea765e7c.js → constants-d8f1c89f.js} +2 -51
  34. package/dist/cjs/constants-d8f1c89f.js.map +1 -0
  35. package/dist/cjs/creative.svg +9 -0
  36. package/dist/cjs/{credential.helpers-b8363e2e.js → credential.helpers-703fc1a4.js} +222 -9
  37. package/dist/cjs/credential.helpers-703fc1a4.js.map +1 -0
  38. package/dist/cjs/digital.svg +9 -0
  39. package/dist/cjs/durable.svg +9 -0
  40. package/dist/cjs/index-bee9764e.js.map +1 -1
  41. package/dist/cjs/index.es-6d3ea12a.js +194 -0
  42. package/dist/cjs/index.es-6d3ea12a.js.map +1 -0
  43. package/dist/cjs/index.js +45 -30
  44. package/dist/cjs/index.js.map +1 -1
  45. package/dist/cjs/index10.js +30 -2
  46. package/dist/cjs/index10.js.map +1 -1
  47. package/dist/cjs/index11.js +2 -45
  48. package/dist/cjs/index11.js.map +1 -1
  49. package/dist/cjs/index12.js +3 -132
  50. package/dist/cjs/index12.js.map +1 -1
  51. package/dist/cjs/index13.js +188 -2
  52. package/dist/cjs/index13.js.map +1 -1
  53. package/dist/cjs/index14.js +3 -21
  54. package/dist/cjs/index14.js.map +1 -1
  55. package/dist/cjs/index15.js +21 -3
  56. package/dist/cjs/index15.js.map +1 -1
  57. package/dist/cjs/index16.js +3 -5
  58. package/dist/cjs/index16.js.map +1 -1
  59. package/dist/cjs/index17.js +5 -20
  60. package/dist/cjs/index17.js.map +1 -1
  61. package/dist/cjs/index18.js +20 -3
  62. package/dist/cjs/index18.js.map +1 -1
  63. package/dist/cjs/index19.js +3 -2
  64. package/dist/cjs/index19.js.map +1 -1
  65. package/dist/cjs/index2.js +2 -2
  66. package/dist/cjs/index20.js +2 -3
  67. package/dist/cjs/index20.js.map +1 -1
  68. package/dist/cjs/index21.js +3 -8
  69. package/dist/cjs/index21.js.map +1 -1
  70. package/dist/cjs/index22.js +6 -8
  71. package/dist/cjs/index22.js.map +1 -1
  72. package/dist/cjs/index23.js +7 -3
  73. package/dist/cjs/index23.js.map +1 -1
  74. package/dist/cjs/index24.js +3 -5
  75. package/dist/cjs/index24.js.map +1 -1
  76. package/dist/cjs/index25.js +8 -3
  77. package/dist/cjs/index25.js.map +1 -1
  78. package/dist/cjs/index26.js +3 -27
  79. package/dist/cjs/index26.js.map +1 -1
  80. package/dist/cjs/index27.js +4 -27
  81. package/dist/cjs/index27.js.map +1 -1
  82. package/dist/cjs/index28.js +52 -3
  83. package/dist/cjs/index28.js.map +1 -1
  84. package/dist/cjs/index29.js +3 -3
  85. package/dist/cjs/index30.js +3 -3
  86. package/dist/cjs/index31.js +3 -28
  87. package/dist/cjs/index31.js.map +1 -1
  88. package/dist/cjs/index32.js +28 -3
  89. package/dist/cjs/index32.js.map +1 -1
  90. package/dist/cjs/index33.js +3 -3
  91. package/dist/cjs/index34.js +3 -15
  92. package/dist/cjs/index34.js.map +1 -1
  93. package/dist/cjs/index35.js +15 -24
  94. package/dist/cjs/index35.js.map +1 -1
  95. package/dist/cjs/index36.js +90 -5
  96. package/dist/cjs/index36.js.map +1 -1
  97. package/dist/cjs/index37.js +83 -9
  98. package/dist/cjs/index37.js.map +1 -1
  99. package/dist/cjs/index38.js +87 -8
  100. package/dist/cjs/index38.js.map +1 -1
  101. package/dist/cjs/index39.js +97 -2
  102. package/dist/cjs/index39.js.map +1 -1
  103. package/dist/cjs/index40.js +83 -6
  104. package/dist/cjs/index40.js.map +1 -1
  105. package/dist/cjs/index41.js +4 -6
  106. package/dist/cjs/index41.js.map +1 -1
  107. package/dist/cjs/index42.js +6 -6
  108. package/dist/cjs/index43.js +14 -0
  109. package/dist/cjs/index43.js.map +1 -0
  110. package/dist/cjs/index6.js +67 -5
  111. package/dist/cjs/index6.js.map +1 -1
  112. package/dist/cjs/index7.js +4 -5
  113. package/dist/cjs/index7.js.map +1 -1
  114. package/dist/cjs/index8.js +28 -5
  115. package/dist/cjs/index8.js.map +1 -1
  116. package/dist/cjs/index9.js +4 -28
  117. package/dist/cjs/index9.js.map +1 -1
  118. package/dist/cjs/medical.svg +9 -0
  119. package/dist/{esm/CircleIcon-0fa4ca78.js → cjs/numeral-d057158c.js} +3 -68
  120. package/dist/cjs/numeral-d057158c.js.map +1 -0
  121. package/dist/cjs/{SchoolIDCard-c7b4153a.js → react-barcode-41861282.js} +1185 -61
  122. package/dist/cjs/react-barcode-41861282.js.map +1 -0
  123. package/dist/cjs/social.svg +9 -0
  124. package/dist/cjs/stem.svg +9 -0
  125. package/dist/cjs/trade.svg +9 -0
  126. package/dist/cjs/{types-c83b33ec.js → types-7f6324ea.js} +12 -5
  127. package/dist/cjs/types-7f6324ea.js.map +1 -0
  128. package/dist/esm/{AchievementCard-98cfb362.js → AchievementCard-feac0ebb.js} +2 -2
  129. package/dist/esm/{AchievementCard-98cfb362.js.map → AchievementCard-feac0ebb.js.map} +1 -1
  130. package/dist/esm/CertificateDisplayCard-21dadcd3.js +1114 -0
  131. package/dist/esm/CertificateDisplayCard-21dadcd3.js.map +1 -0
  132. package/dist/esm/CircleIcon-f2df135c.js +70 -0
  133. package/dist/esm/CircleIcon-f2df135c.js.map +1 -0
  134. package/dist/esm/{Notification-0f58ef6a.js → Notification-78a215ff.js} +2 -2
  135. package/dist/esm/{Notification-0f58ef6a.js.map → Notification-78a215ff.js.map} +1 -1
  136. package/dist/esm/{NotificationBoostCard-134edf94.js → NotificationBoostCard-9e7197eb.js} +2 -2
  137. package/dist/esm/{NotificationBoostCard-134edf94.js.map → NotificationBoostCard-9e7197eb.js.map} +1 -1
  138. package/dist/esm/RoundedSquare-7458bd73.js +51 -0
  139. package/dist/esm/RoundedSquare-7458bd73.js.map +1 -0
  140. package/dist/esm/SchoolIDCard-b26cd055.js +62 -0
  141. package/dist/esm/SchoolIDCard-b26cd055.js.map +1 -0
  142. package/dist/esm/{SmallAchievementCard-2d87ac82.js → SmallAchievementCard-d0220751.js} +2 -2
  143. package/dist/esm/{SmallAchievementCard-2d87ac82.js.map → SmallAchievementCard-d0220751.js.map} +1 -1
  144. package/dist/esm/{Trophy-702610b8.js → Trophy-ad67f46a.js} +5 -2
  145. package/dist/esm/Trophy-ad67f46a.js.map +1 -0
  146. package/dist/esm/{User-fd276ad5.js → User-9f253521.js} +19 -4
  147. package/dist/esm/User-9f253521.js.map +1 -0
  148. package/dist/esm/{VCCard-ce237f01.js → VCCard-54844601.js} +40 -4
  149. package/dist/esm/VCCard-54844601.js.map +1 -0
  150. package/dist/esm/{VCDisplayBackFace-c8f0cb3a.js → VCDisplayBackFace-a099e38b.js} +3 -3
  151. package/dist/esm/{VCDisplayBackFace-c8f0cb3a.js.map → VCDisplayBackFace-a099e38b.js.map} +1 -1
  152. package/dist/esm/{VCDisplayCard-a35f3a6a.js → VCDisplayCard-5c84851d.js} +3 -3
  153. package/dist/esm/{VCDisplayCard-a35f3a6a.js.map → VCDisplayCard-5c84851d.js.map} +1 -1
  154. package/dist/esm/VCDisplayCard2-0b6776f9.js +2691 -0
  155. package/dist/esm/VCDisplayCard2-0b6776f9.js.map +1 -0
  156. package/dist/{cjs/types.esm-d5381f5d.js → esm/VCVerificationPill-1a8e55d1.js} +63 -3
  157. package/dist/esm/VCVerificationPill-1a8e55d1.js.map +1 -0
  158. package/dist/esm/athletics.svg +9 -0
  159. package/dist/esm/business.svg +9 -0
  160. package/dist/esm/{constants-16a52524.js → constants-938aa64f.js} +3 -50
  161. package/dist/esm/constants-938aa64f.js.map +1 -0
  162. package/dist/esm/creative.svg +9 -0
  163. package/dist/esm/{credential.helpers-89728941.js → credential.helpers-aae8d75f.js} +211 -7
  164. package/dist/esm/credential.helpers-aae8d75f.js.map +1 -0
  165. package/dist/esm/digital.svg +9 -0
  166. package/dist/esm/durable.svg +9 -0
  167. package/dist/esm/index-146dd88a.js.map +1 -1
  168. package/dist/esm/index.es-ed959f7e.js +187 -0
  169. package/dist/esm/index.es-ed959f7e.js.map +1 -0
  170. package/dist/esm/index.js +39 -27
  171. package/dist/esm/index.js.map +1 -1
  172. package/dist/esm/index10.js +29 -1
  173. package/dist/esm/index10.js.map +1 -1
  174. package/dist/esm/index11.js +1 -44
  175. package/dist/esm/index11.js.map +1 -1
  176. package/dist/esm/index12.js +3 -74
  177. package/dist/esm/index12.js.map +1 -1
  178. package/dist/esm/index13.js +127 -2
  179. package/dist/esm/index13.js.map +1 -1
  180. package/dist/esm/index14.js +2 -19
  181. package/dist/esm/index14.js.map +1 -1
  182. package/dist/esm/index15.js +19 -2
  183. package/dist/esm/index15.js.map +1 -1
  184. package/dist/esm/index16.js +2 -4
  185. package/dist/esm/index16.js.map +1 -1
  186. package/dist/esm/index17.js +4 -19
  187. package/dist/esm/index17.js.map +1 -1
  188. package/dist/esm/index18.js +19 -2
  189. package/dist/esm/index18.js.map +1 -1
  190. package/dist/esm/index19.js +2 -1
  191. package/dist/esm/index19.js.map +1 -1
  192. package/dist/esm/index2.js +2 -2
  193. package/dist/esm/index20.js +1 -2
  194. package/dist/esm/index20.js.map +1 -1
  195. package/dist/esm/index21.js +2 -6
  196. package/dist/esm/index21.js.map +1 -1
  197. package/dist/esm/index22.js +4 -7
  198. package/dist/esm/index22.js.map +1 -1
  199. package/dist/esm/index23.js +6 -2
  200. package/dist/esm/index23.js.map +1 -1
  201. package/dist/esm/index24.js +2 -3
  202. package/dist/esm/index24.js.map +1 -1
  203. package/dist/esm/index25.js +6 -2
  204. package/dist/esm/index25.js.map +1 -1
  205. package/dist/esm/index26.js +2 -25
  206. package/dist/esm/index26.js.map +1 -1
  207. package/dist/esm/index27.js +2 -22
  208. package/dist/esm/index27.js.map +1 -1
  209. package/dist/esm/index28.js +47 -2
  210. package/dist/esm/index28.js.map +1 -1
  211. package/dist/esm/index29.js +2 -1
  212. package/dist/esm/index29.js.map +1 -1
  213. package/dist/esm/index30.js +1 -2
  214. package/dist/esm/index30.js.map +1 -1
  215. package/dist/esm/index31.js +2 -27
  216. package/dist/esm/index31.js.map +1 -1
  217. package/dist/esm/index32.js +27 -2
  218. package/dist/esm/index32.js.map +1 -1
  219. package/dist/esm/index33.js +2 -2
  220. package/dist/esm/index34.js +2 -6
  221. package/dist/esm/index34.js.map +1 -1
  222. package/dist/esm/index35.js +6 -23
  223. package/dist/esm/index35.js.map +1 -1
  224. package/dist/esm/index36.js +89 -4
  225. package/dist/esm/index36.js.map +1 -1
  226. package/dist/esm/index37.js +82 -8
  227. package/dist/esm/index37.js.map +1 -1
  228. package/dist/esm/index38.js +86 -7
  229. package/dist/esm/index38.js.map +1 -1
  230. package/dist/esm/index39.js +90 -2
  231. package/dist/esm/index39.js.map +1 -1
  232. package/dist/esm/index40.js +83 -1
  233. package/dist/esm/index40.js.map +1 -1
  234. package/dist/esm/index41.js +3 -3
  235. package/dist/esm/index42.js +3 -5
  236. package/dist/esm/index42.js.map +1 -1
  237. package/dist/esm/index43.js +6 -0
  238. package/dist/esm/index43.js.map +1 -0
  239. package/dist/esm/index6.js +66 -4
  240. package/dist/esm/index6.js.map +1 -1
  241. package/dist/esm/index7.js +3 -3
  242. package/dist/esm/index8.js +26 -4
  243. package/dist/esm/index8.js.map +1 -1
  244. package/dist/esm/index9.js +3 -27
  245. package/dist/esm/index9.js.map +1 -1
  246. package/dist/esm/medical.svg +9 -0
  247. package/dist/{cjs/CircleIcon-a606678d.js → esm/numeral-804ed0c4.js} +2 -76
  248. package/dist/esm/numeral-804ed0c4.js.map +1 -0
  249. package/dist/esm/{SchoolIDCard-01422d53.js → react-barcode-ecb18dfe.js} +1184 -60
  250. package/dist/esm/react-barcode-ecb18dfe.js.map +1 -0
  251. package/dist/esm/social.svg +9 -0
  252. package/dist/esm/stem.svg +9 -0
  253. package/dist/esm/trade.svg +9 -0
  254. package/dist/esm/{types-7081a9e5.js → types-c31e4bae.js} +12 -6
  255. package/dist/esm/types-c31e4bae.js.map +1 -0
  256. package/dist/index.d.ts +348 -11
  257. package/dist/main.css +1 -1
  258. package/dist/main.js +1 -1
  259. package/package.json +5 -4
  260. package/dist/cjs/CircleIcon-a606678d.js.map +0 -1
  261. package/dist/cjs/SchoolIDCard-c7b4153a.js.map +0 -1
  262. package/dist/cjs/Trophy-9ede7f2b.js.map +0 -1
  263. package/dist/cjs/User-92f9cf40.js.map +0 -1
  264. package/dist/cjs/VCCard-34b194a2.js.map +0 -1
  265. package/dist/cjs/VCDisplayCard2-c112b1d9.js +0 -1254
  266. package/dist/cjs/VCDisplayCard2-c112b1d9.js.map +0 -1
  267. package/dist/cjs/VCVerificationPill-0e60ff1b.js +0 -75
  268. package/dist/cjs/VCVerificationPill-0e60ff1b.js.map +0 -1
  269. package/dist/cjs/constants-ea765e7c.js.map +0 -1
  270. package/dist/cjs/credential.helpers-b8363e2e.js.map +0 -1
  271. package/dist/cjs/index-838fa72c.js +0 -1186
  272. package/dist/cjs/index-838fa72c.js.map +0 -1
  273. package/dist/cjs/types-c83b33ec.js.map +0 -1
  274. package/dist/cjs/types.esm-d5381f5d.js.map +0 -1
  275. package/dist/esm/CircleIcon-0fa4ca78.js.map +0 -1
  276. package/dist/esm/SchoolIDCard-01422d53.js.map +0 -1
  277. package/dist/esm/Trophy-702610b8.js.map +0 -1
  278. package/dist/esm/User-fd276ad5.js.map +0 -1
  279. package/dist/esm/VCCard-ce237f01.js.map +0 -1
  280. package/dist/esm/VCDisplayCard2-531202a8.js +0 -1247
  281. package/dist/esm/VCDisplayCard2-531202a8.js.map +0 -1
  282. package/dist/esm/VCVerificationPill-aa305f20.js +0 -65
  283. package/dist/esm/VCVerificationPill-aa305f20.js.map +0 -1
  284. package/dist/esm/constants-16a52524.js.map +0 -1
  285. package/dist/esm/credential.helpers-89728941.js.map +0 -1
  286. package/dist/esm/index-4fa491c1.js +0 -1184
  287. package/dist/esm/index-4fa491c1.js.map +0 -1
  288. package/dist/esm/types-7081a9e5.js.map +0 -1
  289. package/dist/esm/types.esm-b07820bb.js.map +0 -1
@@ -1,1254 +0,0 @@
1
- 'use strict';
2
-
3
- var React = require('react');
4
- require('./index-838fa72c.js');
5
- var VCVerificationCheck = require('./VCVerificationCheck-46fa75d3.js');
6
- var DefaultFace = require('./default-face.jpeg');
7
- var credential_helpers = require('./credential.helpers-b8363e2e.js');
8
- var Lightbox = require('./Lightbox-f19e13d2.js');
9
- var types_esm = require('./types.esm-d5381f5d.js');
10
- var AwardRibbon = require('./AwardRibbon-14ba45fb.js');
11
- var index = require('./index-bee9764e.js');
12
-
13
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
-
15
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
16
- var DefaultFace__default = /*#__PURE__*/_interopDefaultLegacy(DefaultFace);
17
-
18
- const AcuteCheckmark = ({ className = "" }) => {
19
- return /* @__PURE__ */ React__default["default"].createElement("svg", {
20
- width: "16",
21
- height: "11",
22
- viewBox: "0 0 16 11",
23
- fill: "none",
24
- xmlns: "http://www.w3.org/2000/svg",
25
- className
26
- }, /* @__PURE__ */ React__default["default"].createElement("path", {
27
- d: "M0.5 4.26859L5.96103 10.5L15.3 0.5H10.6348L5.96103 6.3205L4.49338 4.06677L0.5 4.26859Z",
28
- fill: "#00BA88"
29
- }));
30
- };
31
-
32
- const Camera = ({ className = "" }) => {
33
- return /* @__PURE__ */ React__default["default"].createElement("svg", {
34
- width: "25",
35
- height: "24",
36
- viewBox: "0 0 25 24",
37
- fill: "none",
38
- xmlns: "http://www.w3.org/2000/svg",
39
- className
40
- }, /* @__PURE__ */ React__default["default"].createElement("path", {
41
- d: "M20.7415 5.81958H18.6871C18.0439 5.81958 17.4439 5.49798 17.0887 4.96518L16.2295 3.67398C15.8743 3.14118 15.2743 2.81958 14.6311 2.81958L10.6855 2.81958C10.0423 2.81958 9.44231 3.14118 9.08711 3.67398L8.22791 4.96518C7.87271 5.49798 7.27271 5.81958 6.62951 5.81958H4.57991C3.51911 5.81958 2.65991 6.67878 2.65991 7.73958L2.65991 18.8996C2.65991 19.9604 3.51911 20.8196 4.57991 20.8196L20.7415 20.8196C21.8023 20.8196 22.6615 19.9604 22.6615 18.8996L22.6615 7.73958C22.6615 6.67878 21.8023 5.81958 20.7415 5.81958ZM12.7399 17.738C10.0903 17.738 7.93991 15.5876 7.93991 12.938C7.93991 10.2884 10.0903 8.13798 12.7399 8.13798C15.3895 8.13798 17.5399 10.2884 17.5399 12.938C17.5399 15.5876 15.3895 17.738 12.7399 17.738Z",
42
- fill: "white"
43
- }));
44
- };
45
-
46
- const ExclamationPoint = ({ className = "" }) => {
47
- return /* @__PURE__ */ React__default["default"].createElement("svg", {
48
- width: "5",
49
- height: "11",
50
- viewBox: "0 0 5 11",
51
- fill: "none",
52
- xmlns: "http://www.w3.org/2000/svg",
53
- className
54
- }, /* @__PURE__ */ React__default["default"].createElement("path", {
55
- d: "M1.1338 6.58451L0.5 0.5H4.30282L3.66901 6.58451H1.1338ZM2.40141 10.5C1.85681 10.5 1.4108 10.3357 1.06338 10.007C0.715963 9.66901 0.542253 9.26995 0.542253 8.80986C0.542253 8.34037 0.715963 7.94601 1.06338 7.62676C1.4108 7.30751 1.85681 7.14789 2.40141 7.14789C2.9554 7.14789 3.40141 7.30751 3.73944 7.62676C4.08685 7.94601 4.26056 8.34037 4.26056 8.80986C4.26056 9.26995 4.08685 9.66901 3.73944 10.007C3.40141 10.3357 2.9554 10.5 2.40141 10.5Z",
56
- fill: "#FACC15"
57
- }));
58
- };
59
-
60
- const GenericDocumentIcon = ({ className = "" }) => {
61
- return /* @__PURE__ */ React__default["default"].createElement("svg", {
62
- width: "41",
63
- height: "40",
64
- viewBox: "0 0 41 40",
65
- fill: "none",
66
- xmlns: "http://www.w3.org/2000/svg",
67
- className
68
- }, /* @__PURE__ */ React__default["default"].createElement("path", {
69
- d: "M5.5 4.66675C5.5 3.0099 6.84315 1.66675 8.5 1.66675H18.6813C21.3361 1.66675 23.8555 2.83885 25.5655 4.86953L33.3842 14.1542C34.7507 15.7769 35.5 17.8301 35.5 19.9515V35.3334C35.5 36.9903 34.1569 38.3334 32.5 38.3334H8.5C6.84315 38.3334 5.5 36.9903 5.5 35.3334V4.66675Z",
70
- fill: "#FF3636"
71
- }), /* @__PURE__ */ React__default["default"].createElement("path", {
72
- d: "M22 13V2.5C26 3.5 34.5 14 35.5 18H27C23 18 22 16 22 13Z",
73
- fill: "#FF7A7A"
74
- }));
75
- };
76
-
77
- const InfoIcon = ({ className = "", color = "#A8ACBD" }) => {
78
- return /* @__PURE__ */ React__default["default"].createElement("svg", {
79
- width: "22",
80
- height: "21",
81
- viewBox: "0 0 22 21",
82
- fill: "none",
83
- xmlns: "http://www.w3.org/2000/svg",
84
- className
85
- }, /* @__PURE__ */ React__default["default"].createElement("path", {
86
- d: "M11.0003 0.34375C8.99153 0.34375 7.02793 0.939404 5.35774 2.05539C3.68755 3.17137 2.3858 4.75756 1.6171 6.61337C0.848395 8.46918 0.647267 10.5113 1.03915 12.4814C1.43103 14.4515 2.39832 16.2612 3.8187 17.6816C5.23907 19.1019 7.04874 20.0692 9.01886 20.4611C10.989 20.853 13.0311 20.6519 14.8869 19.8832C16.7427 19.1144 18.3289 17.8127 19.4449 16.1425C20.5608 14.4723 21.1565 12.5087 21.1565 10.5C21.1534 7.80735 20.0824 5.22588 18.1784 3.32188C16.2744 1.41789 13.6929 0.346862 11.0003 0.34375V0.34375ZM11.0002 5.03125C11.2319 5.03125 11.4585 5.09998 11.6512 5.22875C11.8439 5.35751 11.9941 5.54054 12.0828 5.75467C12.1715 5.9688 12.1947 6.20443 12.1495 6.43175C12.1043 6.65907 11.9927 6.86788 11.8288 7.03177C11.6649 7.19566 11.4561 7.30727 11.2288 7.35248C11.0015 7.3977 10.7658 7.37449 10.5517 7.2858C10.3376 7.1971 10.1545 7.0469 10.0258 6.85418C9.89701 6.66147 9.82828 6.4349 9.82828 6.20313C9.82828 6.04923 9.85859 5.89685 9.91748 5.75467C9.97637 5.61249 10.0627 5.4833 10.1715 5.37448C10.2803 5.26566 10.4095 5.17934 10.5517 5.12045C10.6939 5.06156 10.8463 5.03125 11.0002 5.03125H11.0002ZM11.7815 15.9688H11.0003C10.8976 15.9688 10.796 15.9486 10.7012 15.9094C10.6064 15.8702 10.5202 15.8126 10.4477 15.7401C10.3751 15.6675 10.3176 15.5814 10.2783 15.4865C10.2391 15.3917 10.2189 15.2901 10.219 15.1875V10.5C10.0118 10.5 9.81309 10.4177 9.66657 10.2712C9.52006 10.1247 9.43775 9.92595 9.43775 9.71875C9.43775 9.51155 9.52006 9.31284 9.66657 9.16632C9.81309 9.01981 10.0118 8.9375 10.219 8.9375H11.0003C11.1029 8.93744 11.2045 8.95761 11.2993 8.99685C11.3941 9.03609 11.4803 9.09363 11.5528 9.16619C11.6254 9.23875 11.6829 9.3249 11.7222 9.41971C11.7614 9.51452 11.7816 9.61614 11.7815 9.71875V14.4063C11.9887 14.4063 12.1874 14.4886 12.3339 14.6351C12.4804 14.7816 12.5628 14.9803 12.5628 15.1875C12.5628 15.3947 12.4804 15.5934 12.3339 15.7399C12.1874 15.8864 11.9887 15.9688 11.7815 15.9688Z",
87
- fill: color
88
- }));
89
- };
90
-
91
- const LeftArrow = ({ className = "", size = "20" }) => {
92
- return /* @__PURE__ */ React__default["default"].createElement("svg", {
93
- width: size,
94
- height: size,
95
- viewBox: "0 0 20 20",
96
- fill: "none",
97
- xmlns: "http://www.w3.org/2000/svg",
98
- className
99
- }, /* @__PURE__ */ React__default["default"].createElement("path", {
100
- d: "M8.93299 17.942L1.43299 10.442C1.31582 10.3247 1.25 10.1657 1.25 9.99999C1.25 9.83423 1.31582 9.67526 1.43299 9.55802L8.93299 2.05802C9.02041 1.97062 9.13178 1.91111 9.25301 1.887C9.37425 1.8629 9.49991 1.87528 9.61412 1.92258C9.72832 1.96989 9.82593 2.04999 9.89461 2.15277C9.96329 2.25554 9.99995 2.37638 9.99996 2.49999V5.62499H16.25C16.5814 5.62537 16.8991 5.75718 17.1334 5.99152C17.3678 6.22586 17.4996 6.54358 17.5 6.87499V13.125C17.4996 13.4564 17.3678 13.7741 17.1334 14.0085C16.8991 14.2428 16.5814 14.3746 16.25 14.375H9.99996V17.5C9.99995 17.6236 9.96329 17.7444 9.89461 17.8472C9.82593 17.95 9.72832 18.0301 9.61412 18.0774C9.49991 18.1247 9.37425 18.1371 9.25301 18.113C9.13178 18.0889 9.02041 18.0294 8.93299 17.942Z",
101
- fill: "currentColor"
102
- }));
103
- };
104
-
105
- const LinkIcon = ({ className = "" }) => {
106
- return /* @__PURE__ */ React__default["default"].createElement("svg", {
107
- width: "33",
108
- height: "32",
109
- viewBox: "0 0 33 32",
110
- fill: "none",
111
- xmlns: "http://www.w3.org/2000/svg",
112
- className
113
- }, /* @__PURE__ */ React__default["default"].createElement("path", {
114
- d: "M16.8117 7.91003L18.2677 6.45403C18.7784 5.94292 19.3847 5.53742 20.0521 5.26071C20.7195 4.98399 21.4348 4.84148 22.1573 4.84131C22.8798 4.84114 23.5953 4.98332 24.2628 5.25973C24.9303 5.53613 25.5368 5.94135 26.0477 6.45222C26.5586 6.9631 26.9638 7.56962 27.2402 8.23714C27.5166 8.90466 27.6588 9.6201 27.6586 10.3426C27.6584 11.0651 27.5159 11.7804 27.2392 12.4478C26.9625 13.1152 26.557 13.7216 26.0459 14.2322L22.5104 17.7677C21.9996 18.2785 21.3933 18.6836 20.726 18.96C20.0587 19.2364 19.3435 19.3787 18.6213 19.3787C17.899 19.3787 17.1838 19.2364 16.5165 18.96C15.8492 18.6836 15.2429 18.2785 14.7322 17.7677",
115
- stroke: "#6366F1",
116
- strokeWidth: "3",
117
- strokeLinecap: "round",
118
- strokeLinejoin: "round"
119
- }), /* @__PURE__ */ React__default["default"].createElement("path", {
120
- d: "M16.188 24.0902L14.7322 25.546C14.2216 26.0571 13.6152 26.4626 12.9478 26.7393C12.2804 27.016 11.5651 27.1585 10.8426 27.1587C10.1201 27.1589 9.40466 27.0167 8.73714 26.7403C8.06962 26.4639 7.4631 26.0586 6.95222 25.5478C6.44135 25.0369 6.03613 24.4304 5.75973 23.7629C5.48332 23.0953 5.34114 22.3799 5.34131 21.6574C5.34148 20.9349 5.48399 20.2195 5.76071 19.5521C6.03742 18.8848 6.44292 18.2784 6.95403 17.7678L10.4896 14.2323C11.0003 13.7215 11.6066 13.3164 12.2739 13.04C12.9412 12.7636 13.6564 12.6213 14.3787 12.6213C15.1009 12.6213 15.8161 12.7636 16.4834 13.04C17.1507 13.3164 17.757 13.7215 18.2677 14.2323",
121
- stroke: "#6366F1",
122
- strokeWidth: "3",
123
- strokeLinecap: "round",
124
- strokeLinejoin: "round"
125
- }));
126
- };
127
-
128
- const RoundedX = ({ className = "" }) => {
129
- return /* @__PURE__ */ React__default["default"].createElement("svg", {
130
- width: "24",
131
- height: "24",
132
- viewBox: "0 0 24 24",
133
- fill: "none",
134
- xmlns: "http://www.w3.org/2000/svg",
135
- className
136
- }, /* @__PURE__ */ React__default["default"].createElement("path", {
137
- d: "M18.75 5.25L5.25 18.75",
138
- stroke: "#18224E",
139
- strokeWidth: "4",
140
- strokeLinecap: "round",
141
- strokeLinejoin: "round"
142
- }), /* @__PURE__ */ React__default["default"].createElement("path", {
143
- d: "M18.75 18.75L5.25 5.25",
144
- stroke: "#18224E",
145
- strokeWidth: "4",
146
- strokeLinecap: "round",
147
- strokeLinejoin: "round"
148
- }));
149
- };
150
-
151
- const VideoIcon = ({ className = "", size = "25" }) => {
152
- return /* @__PURE__ */ React__default["default"].createElement("svg", {
153
- width: size,
154
- height: size,
155
- viewBox: "0 0 25 24",
156
- fill: "none",
157
- xmlns: "http://www.w3.org/2000/svg",
158
- className
159
- }, /* @__PURE__ */ React__default["default"].createElement("path", {
160
- fillRule: "evenodd",
161
- clipRule: "evenodd",
162
- d: "M6.61304 4.5H12.4051C14.8271 4.5 16.5181 6.16904 16.5181 8.56091V15.4391C16.5181 17.831 14.8271 19.5 12.4051 19.5H6.61304C4.19102 19.5 2.5 17.831 2.5 15.4391V8.56091C2.5 6.16904 4.19102 4.5 6.61304 4.5ZM20.458 6.87898C20.897 6.65563 21.412 6.67898 21.831 6.94294C22.25 7.20589 22.5 7.66274 22.5 8.16223V15.8384C22.5 16.3389 22.25 16.7947 21.831 17.0577C21.602 17.2008 21.346 17.2739 21.088 17.2739C20.873 17.2739 20.658 17.2231 20.457 17.1206L18.976 16.3734C18.428 16.0952 18.088 15.5369 18.088 14.9165V9.08305C18.088 8.46173 18.428 7.90335 18.976 7.62721L20.458 6.87898Z",
163
- fill: "white"
164
- }));
165
- };
166
-
167
- const X = ({ className = "" }) => {
168
- return /* @__PURE__ */ React__default["default"].createElement("svg", {
169
- width: "11",
170
- height: "11",
171
- viewBox: "0 0 11 11",
172
- fill: "none",
173
- xmlns: "http://www.w3.org/2000/svg",
174
- className
175
- }, /* @__PURE__ */ React__default["default"].createElement("path", {
176
- d: "M7.47753 10.25C7.20582 9.8045 6.92868 9.37104 6.6461 8.94962C6.37439 8.52218 6.08637 8.09173 5.78206 7.65827C5.49948 8.07969 5.22233 8.50412 4.95062 8.93156C4.67891 9.35298 4.41807 9.78042 4.1681 10.2139L0.5 10.1055C1.15211 9.33492 1.78247 8.57335 2.39111 7.82082C3.01061 7.06828 3.60294 6.3007 4.1681 5.51806C3.5812 4.74747 2.98344 3.98891 2.3748 3.2424C1.77704 2.48986 1.17384 1.73131 0.565211 0.96673L4.38003 0.75C4.77129 1.57478 5.23864 2.3815 5.78206 3.17015C6.01029 2.77883 6.24397 2.38451 6.48307 1.98717C6.73305 1.58983 6.96672 1.17744 7.18409 0.75L10.95 0.912548C10.2979 1.67712 9.67839 2.43267 9.0915 3.17918C8.5046 3.9257 7.92314 4.68124 7.34711 5.44582C7.9014 6.21039 8.46113 6.95691 9.02629 7.68536C9.60231 8.41382 10.1783 9.1513 10.7544 9.89781L7.47753 10.25Z",
177
- fill: "#FF2C3C"
178
- }));
179
- };
180
-
181
- const FitText = ({
182
- text,
183
- width,
184
- className = "",
185
- minFontSize = 10,
186
- maxFontSize = 100
187
- }) => {
188
- const textRef = React.useRef(null);
189
- let animationFrameId = null;
190
- const adjustFontSize = () => {
191
- var _a;
192
- if (textRef.current) {
193
- const currentFontSize = parseFloat(window.getComputedStyle(textRef.current).getPropertyValue("font-size"));
194
- textRef.current.style.whiteSpace = "nowrap";
195
- const parentWidth = (_a = textRef.current.parentNode) == null ? void 0 : _a.clientWidth;
196
- const scrollWidth = textRef.current.scrollWidth || textRef.current.offsetWidth;
197
- if (scrollWidth === 0) {
198
- if (animationFrameId !== null) {
199
- cancelAnimationFrame(animationFrameId);
200
- }
201
- animationFrameId = requestAnimationFrame(adjustFontSize);
202
- return;
203
- }
204
- const newFontSize = Math.min(Math.max(parentWidth / scrollWidth * currentFontSize, minFontSize), maxFontSize);
205
- textRef.current.style.fontSize = `${newFontSize}px`;
206
- textRef.current.style.whiteSpace = newFontSize === minFontSize ? "normal" : "nowrap";
207
- }
208
- };
209
- const handleResize = () => {
210
- if (animationFrameId !== null) {
211
- cancelAnimationFrame(animationFrameId);
212
- }
213
- animationFrameId = requestAnimationFrame(adjustFontSize);
214
- };
215
- React.useEffect(() => {
216
- window.addEventListener("resize", handleResize);
217
- adjustFontSize();
218
- return () => {
219
- window.removeEventListener("resize", handleResize);
220
- if (animationFrameId !== null) {
221
- cancelAnimationFrame(animationFrameId);
222
- }
223
- };
224
- }, [text]);
225
- return /* @__PURE__ */ React__default["default"].createElement("div", {
226
- style: { width },
227
- className: `text-center ${className}`
228
- }, /* @__PURE__ */ React__default["default"].createElement("span", {
229
- className: `text-[${minFontSize}px] transition-[font-size] whitespace-nowrap`,
230
- ref: textRef
231
- }, text));
232
- };
233
-
234
- const InfoBox = ({ text, handleClose, backgroundColor = "#6366F1" }) => {
235
- const bgColorWithOpacity = `${backgroundColor}1F`;
236
- return /* @__PURE__ */ React__default["default"].createElement("div", {
237
- className: "info-box p-[10px] rounded-[10px] w-full font-poppins text-[12px] leading[18px]",
238
- style: { backgroundColor: bgColorWithOpacity }
239
- }, text, " ", /* @__PURE__ */ React__default["default"].createElement("button", {
240
- onClick: handleClose,
241
- className: "text-indigo-500 font-[700] select-none"
242
- }, "Close"));
243
- };
244
-
245
- const IssueHistoryBox = ({
246
- issueHistory,
247
- customIssueHistoryComponent
248
- }) => {
249
- let renderIssueHistory = issueHistory == null ? void 0 : issueHistory.map((issueItem) => {
250
- return /* @__PURE__ */ React__default["default"].createElement("div", {
251
- className: "flex items-center issue-log-item border-b-[1px] py-[5px] border-grayscale-200 border-solid w-full",
252
- key: issueItem == null ? void 0 : issueItem.id
253
- }, /* @__PURE__ */ React__default["default"].createElement("div", {
254
- className: "profile-thumb-img vc-issuee-image h-[35px] w-[35px] rounded-full overflow-hidden"
255
- }, /* @__PURE__ */ React__default["default"].createElement("img", {
256
- className: "h-full w-full object-cover select-none",
257
- src: (issueItem == null ? void 0 : issueItem.thumb) || DefaultFace__default["default"],
258
- alt: "profile"
259
- })), /* @__PURE__ */ React__default["default"].createElement("div", {
260
- className: "ml-[9px] flex flex-col justify-center"
261
- }, /* @__PURE__ */ React__default["default"].createElement("p", {
262
- className: "issue-item-name font-montserrat font-semibold text-grayscale-900 text-[14px] "
263
- }, issueItem == null ? void 0 : issueItem.name), /* @__PURE__ */ React__default["default"].createElement("p", {
264
- className: "issue-item-date font-montserrat text-[12px] text-grayscale-600 "
265
- }, issueItem == null ? void 0 : issueItem.date)));
266
- });
267
- return /* @__PURE__ */ React__default["default"].createElement("div", {
268
- className: "bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full relative"
269
- }, /* @__PURE__ */ React__default["default"].createElement("h3", {
270
- className: "text-[20px] leading-[20px] text-grayscale-900"
271
- }, "Issue Log"), !customIssueHistoryComponent ? renderIssueHistory : customIssueHistoryComponent);
272
- };
273
-
274
- const BYTE_UNITS = [
275
- 'B',
276
- 'kB',
277
- 'MB',
278
- 'GB',
279
- 'TB',
280
- 'PB',
281
- 'EB',
282
- 'ZB',
283
- 'YB',
284
- ];
285
-
286
- const BIBYTE_UNITS = [
287
- 'B',
288
- 'kiB',
289
- 'MiB',
290
- 'GiB',
291
- 'TiB',
292
- 'PiB',
293
- 'EiB',
294
- 'ZiB',
295
- 'YiB',
296
- ];
297
-
298
- const BIT_UNITS = [
299
- 'b',
300
- 'kbit',
301
- 'Mbit',
302
- 'Gbit',
303
- 'Tbit',
304
- 'Pbit',
305
- 'Ebit',
306
- 'Zbit',
307
- 'Ybit',
308
- ];
309
-
310
- const BIBIT_UNITS = [
311
- 'b',
312
- 'kibit',
313
- 'Mibit',
314
- 'Gibit',
315
- 'Tibit',
316
- 'Pibit',
317
- 'Eibit',
318
- 'Zibit',
319
- 'Yibit',
320
- ];
321
-
322
- /*
323
- Formats the given number using `Number#toLocaleString`.
324
- - If locale is a string, the value is expected to be a locale-key (for example: `de`).
325
- - If locale is true, the system default locale is used for translation.
326
- - If no value for locale is specified, the number is returned unmodified.
327
- */
328
- const toLocaleString = (number, locale, options) => {
329
- let result = number;
330
- if (typeof locale === 'string' || Array.isArray(locale)) {
331
- result = number.toLocaleString(locale, options);
332
- } else if (locale === true || options !== undefined) {
333
- result = number.toLocaleString(undefined, options);
334
- }
335
-
336
- return result;
337
- };
338
-
339
- function prettyBytes(number, options) {
340
- if (!Number.isFinite(number)) {
341
- throw new TypeError(`Expected a finite number, got ${typeof number}: ${number}`);
342
- }
343
-
344
- options = {
345
- bits: false,
346
- binary: false,
347
- ...options,
348
- };
349
-
350
- const UNITS = options.bits
351
- ? (options.binary ? BIBIT_UNITS : BIT_UNITS)
352
- : (options.binary ? BIBYTE_UNITS : BYTE_UNITS);
353
-
354
- if (options.signed && number === 0) {
355
- return ` 0 ${UNITS[0]}`;
356
- }
357
-
358
- const isNegative = number < 0;
359
- const prefix = isNegative ? '-' : (options.signed ? '+' : '');
360
-
361
- if (isNegative) {
362
- number = -number;
363
- }
364
-
365
- let localeOptions;
366
-
367
- if (options.minimumFractionDigits !== undefined) {
368
- localeOptions = {minimumFractionDigits: options.minimumFractionDigits};
369
- }
370
-
371
- if (options.maximumFractionDigits !== undefined) {
372
- localeOptions = {maximumFractionDigits: options.maximumFractionDigits, ...localeOptions};
373
- }
374
-
375
- if (number < 1) {
376
- const numberString = toLocaleString(number, options.locale, localeOptions);
377
- return prefix + numberString + ' ' + UNITS[0];
378
- }
379
-
380
- const exponent = Math.min(Math.floor(options.binary ? Math.log(number) / Math.log(1024) : Math.log10(number) / 3), UNITS.length - 1);
381
- number /= (options.binary ? 1024 : 1000) ** exponent;
382
-
383
- if (!localeOptions) {
384
- number = number.toPrecision(3);
385
- }
386
-
387
- const numberString = toLocaleString(Number(number), options.locale, localeOptions);
388
-
389
- const unit = UNITS[exponent];
390
-
391
- return prefix + numberString + ' ' + unit;
392
- }
393
-
394
- const getBaseUrl = (url) => {
395
- return url.replace(/(https?:\/\/(www\.)?)/, "").split("/")[0];
396
- };
397
-
398
- var __async = (__this, __arguments, generator) => {
399
- return new Promise((resolve, reject) => {
400
- var fulfilled = (value) => {
401
- try {
402
- step(generator.next(value));
403
- } catch (e) {
404
- reject(e);
405
- }
406
- };
407
- var rejected = (value) => {
408
- try {
409
- step(generator.throw(value));
410
- } catch (e) {
411
- reject(e);
412
- }
413
- };
414
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
415
- step((generator = generator.apply(__this, __arguments)).next());
416
- });
417
- };
418
- const defaultGetFileMetadata = (url) => __async(undefined, null, function* () {
419
- var _a;
420
- const isFilestack = url.includes("filestack");
421
- if (!isFilestack)
422
- return;
423
- const urlParams = (_a = url.split(".com/")[1]) == null ? void 0 : _a.split("/");
424
- if (!urlParams)
425
- return;
426
- const handle = urlParams[urlParams.length - 1];
427
- let fetchFailed = false;
428
- const data = yield fetch(`https://cdn.filestackcontent.com/${handle}/metadata`).then((res) => res.json()).catch(() => fetchFailed = true);
429
- if (fetchFailed)
430
- return;
431
- const fileExtension = data.filename.split(".")[1];
432
- return {
433
- fileExtension,
434
- sizeInBytes: data.size,
435
- numberOfPages: void 0
436
- };
437
- });
438
- const defaultGetVideoMetadata = (url) => __async(undefined, null, function* () {
439
- const isYoutube = url.includes("youtube");
440
- if (!isYoutube)
441
- return;
442
- const metadataUrl = `http://youtube.com/oembed?url=${url}&format=json`;
443
- let fetchFailed = false;
444
- const metadata = yield fetch(metadataUrl).then((res) => res.json()).catch(() => fetchFailed = true);
445
- if (fetchFailed)
446
- return;
447
- return {
448
- title: metadata.title,
449
- imageUrl: metadata.thumbnail_url,
450
- videoLength: ""
451
- };
452
- });
453
- const MediaAttachmentsBox = ({
454
- attachments,
455
- getFileMetadata = defaultGetFileMetadata,
456
- getVideoMetadata = defaultGetVideoMetadata,
457
- onMediaAttachmentClick,
458
- enableLightbox = false
459
- }) => {
460
- const [documentMetadata, setDocumentMetadata] = React.useState({});
461
- const [videoMetadata, setVideoMetadata] = React.useState({});
462
- const mediaAttachments = [];
463
- const documentsAndLinks = [];
464
- attachments.forEach((a) => {
465
- switch (a.type) {
466
- case "document":
467
- case "link":
468
- documentsAndLinks.push(a);
469
- break;
470
- case "photo":
471
- case "video":
472
- mediaAttachments.push(a);
473
- break;
474
- }
475
- });
476
- React.useEffect(() => {
477
- const getMetadata = (attachments2) => __async(undefined, null, function* () {
478
- const docMetadata = {};
479
- const videoMetadata2 = {};
480
- yield Promise.all(attachments2.map((attachment) => __async(this, null, function* () {
481
- if (attachment.type === "document") {
482
- docMetadata[attachment.url] = yield getFileMetadata(attachment.url);
483
- } else if (attachment.type === "video") {
484
- videoMetadata2[attachment.url] = yield getVideoMetadata(attachment.url);
485
- }
486
- })));
487
- setVideoMetadata(videoMetadata2);
488
- setDocumentMetadata(docMetadata);
489
- });
490
- const videos = attachments.filter((a) => a.type === "video");
491
- getMetadata([...documentsAndLinks, ...videos]);
492
- }, []);
493
- const [currentLightboxUrl, setCurrentLightboxUrl] = React.useState(void 0);
494
- const lightboxItems = mediaAttachments.filter((a) => a.type === "photo" || a.type === "video");
495
- const handleMediaAttachmentClick = (url, type) => {
496
- if (type === "photo" || type === "video") {
497
- setCurrentLightboxUrl(url);
498
- }
499
- onMediaAttachmentClick == null ? void 0 : onMediaAttachmentClick(url, type);
500
- };
501
- return /* @__PURE__ */ React__default["default"].createElement("div", {
502
- className: "media-attachments-box bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full"
503
- }, /* @__PURE__ */ React__default["default"].createElement("h3", {
504
- className: "text-[20px] leading-[20px] text-grayscale-900"
505
- }, "Media Attachments"), mediaAttachments.length > 0 && /* @__PURE__ */ React__default["default"].createElement("div", {
506
- className: "flex gap-[5px] justify-between flex-wrap w-full"
507
- }, enableLightbox && /* @__PURE__ */ React__default["default"].createElement(Lightbox.Lightbox, {
508
- items: lightboxItems,
509
- currentUrl: currentLightboxUrl,
510
- setCurrentUrl: setCurrentLightboxUrl
511
- }), mediaAttachments.map((media, index) => {
512
- var _a, _b;
513
- let innerContent;
514
- let title = media.title;
515
- if (media.type === "video") {
516
- const metadata = videoMetadata[media.url];
517
- title = (_a = title || (metadata == null ? void 0 : metadata.title)) != null ? _a : "";
518
- const baseUrl = getBaseUrl(media.url);
519
- const iconTop = title || baseUrl;
520
- innerContent = /* @__PURE__ */ React__default["default"].createElement("div", {
521
- className: "absolute top-0 left-0 right-0 bottom-0 bg-cover bg-no-repeat font-poppins text-white text-[12px] font-[400] leading-[17px] flex flex-col justify-end items-start p-[10px] text-left bg-rose-600 rounded-[15px]",
522
- style: {
523
- backgroundImage: (metadata == null ? void 0 : metadata.imageUrl) ? `linear-gradient(180deg, rgba(0, 0, 0, 0) 44.20%, rgba(0, 0, 0, 0.6) 69%), url(${(_b = metadata == null ? void 0 : metadata.imageUrl) != null ? _b : ""})` : void 0
524
- }
525
- }, !(metadata == null ? void 0 : metadata.imageUrl) && /* @__PURE__ */ React__default["default"].createElement(VideoIcon, {
526
- size: "60",
527
- className: "m-auto"
528
- }), /* @__PURE__ */ React__default["default"].createElement("div", {
529
- className: `absolute ${iconTop ? "top-[10px]" : "bottom-[10px]"} left-[10px] z-10 flex items-center gap-[5px]`
530
- }, (metadata == null ? void 0 : metadata.imageUrl) && /* @__PURE__ */ React__default["default"].createElement(VideoIcon, null), (metadata == null ? void 0 : metadata.videoLength) && /* @__PURE__ */ React__default["default"].createElement("span", {
531
- className: "leading-[23px]"
532
- }, metadata.videoLength)), baseUrl && /* @__PURE__ */ React__default["default"].createElement("span", {
533
- className: "font-[600]"
534
- }, baseUrl), title && /* @__PURE__ */ React__default["default"].createElement("span", {
535
- className: "line-clamp-2"
536
- }, title));
537
- } else {
538
- innerContent = /* @__PURE__ */ React__default["default"].createElement("div", {
539
- className: "absolute top-0 left-0 right-0 bottom-0 h-min"
540
- }, /* @__PURE__ */ React__default["default"].createElement("img", {
541
- className: "rounded-[15px]",
542
- src: media.url
543
- }), /* @__PURE__ */ React__default["default"].createElement(Camera, {
544
- className: "relative bottom-[30px] left-[10px] z-10"
545
- }));
546
- }
547
- const className = `media-attachment ${media.type} w-[49%] pt-[49%] overflow-hidden relative`;
548
- if (onMediaAttachmentClick || enableLightbox) {
549
- return /* @__PURE__ */ React__default["default"].createElement("button", {
550
- key: index,
551
- className,
552
- onClick: () => handleMediaAttachmentClick(media.url, media.type)
553
- }, innerContent);
554
- }
555
- return /* @__PURE__ */ React__default["default"].createElement("div", {
556
- key: index,
557
- className
558
- }, innerContent);
559
- })), documentsAndLinks.length > 0 && /* @__PURE__ */ React__default["default"].createElement("div", {
560
- className: "w-full flex flex-col gap-[5px]"
561
- }, documentsAndLinks.map((docOrLink, index) => {
562
- var _a;
563
- const metadata = docOrLink.type === "document" ? documentMetadata[docOrLink.url] : void 0;
564
- const { fileExtension, sizeInBytes, numberOfPages } = metadata != null ? metadata : {};
565
- let baseUrl = "";
566
- if (docOrLink.type === "link") {
567
- baseUrl = getBaseUrl(docOrLink.url);
568
- }
569
- const innerContent = /* @__PURE__ */ React__default["default"].createElement("div", {
570
- className: "flex flex-col gap-[5px]"
571
- }, /* @__PURE__ */ React__default["default"].createElement("div", {
572
- className: "flex gap-[5px] items-center"
573
- }, docOrLink.type === "document" && /* @__PURE__ */ React__default["default"].createElement(GenericDocumentIcon, {
574
- className: "shrink-0"
575
- }), docOrLink.type === "link" && /* @__PURE__ */ React__default["default"].createElement(LinkIcon, {
576
- className: "shrink-0"
577
- }), /* @__PURE__ */ React__default["default"].createElement("span", {
578
- className: "text-grayscale-900 font-[400]"
579
- }, (_a = docOrLink.title) != null ? _a : "No title")), docOrLink.type === "document" && metadata && /* @__PURE__ */ React__default["default"].createElement("a", {
580
- href: docOrLink.url,
581
- target: "_blank",
582
- rel: "noreferrer",
583
- className: "text-grayscale-600 font-[600] px-[5px] hover:underline"
584
- }, fileExtension && /* @__PURE__ */ React__default["default"].createElement("span", {
585
- className: "uppercase"
586
- }, fileExtension), fileExtension && (numberOfPages || sizeInBytes) && " \u2022 ", numberOfPages && /* @__PURE__ */ React__default["default"].createElement("span", null, numberOfPages, " page", numberOfPages === 1 ? "" : "s"), numberOfPages && sizeInBytes && " \u2022 ", sizeInBytes && /* @__PURE__ */ React__default["default"].createElement("span", null, prettyBytes(sizeInBytes))), docOrLink.type === "link" && /* @__PURE__ */ React__default["default"].createElement("a", {
587
- href: docOrLink.url,
588
- target: "_blank",
589
- rel: "noreferrer",
590
- className: "text-indigo-500 font-[600] px-[5px] hover:underline"
591
- }, baseUrl));
592
- const className = `row-attachment ${docOrLink.type} bg-grayscale-100 rounded-[15px] p-[10px] w-full font-poppins text-[12px] leading-[18px] tracking-[-0.33px] text-left`;
593
- if (onMediaAttachmentClick) {
594
- return /* @__PURE__ */ React__default["default"].createElement("button", {
595
- key: index,
596
- className,
597
- onClick: () => handleMediaAttachmentClick(docOrLink.url, docOrLink.type)
598
- }, innerContent);
599
- }
600
- return /* @__PURE__ */ React__default["default"].createElement("div", {
601
- key: index,
602
- className
603
- }, innerContent);
604
- })));
605
- };
606
-
607
- const RibbonEnd = ({
608
- side,
609
- className = "",
610
- height = "64"
611
- }) => {
612
- const halfHeight = parseInt(height) / 2;
613
- return /* @__PURE__ */ React__default["default"].createElement("svg", {
614
- className,
615
- width: "30",
616
- height,
617
- viewBox: `0 0 30 ${height}`,
618
- fill: "none",
619
- xmlns: "http://www.w3.org/2000/svg",
620
- style: { transform: `scaleX(${side === "left" ? "1" : "-1"})` }
621
- }, /* @__PURE__ */ React__default["default"].createElement("g", {
622
- filter: "url(#filter0_d_4620_22659)"
623
- }, /* @__PURE__ */ React__default["default"].createElement("path", {
624
- d: `M0 0H30V${height}H0L6.36364 ${halfHeight}L0 0Z`,
625
- fill: "white"
626
- }), /* @__PURE__ */ React__default["default"].createElement("path", {
627
- d: `M3.08593 2.5H27.5V${height}H3.08593L8.80922 ${halfHeight}L8.91926 30L8.80922 29.4812L3.08593 2.5Z`,
628
- stroke: "#EEF2FF",
629
- strokeWidth: "5"
630
- })), /* @__PURE__ */ React__default["default"].createElement("defs", null, /* @__PURE__ */ React__default["default"].createElement("filter", {
631
- id: "filter0_d_4620_22659",
632
- x: "0",
633
- y: "0",
634
- width: "30",
635
- height,
636
- filterUnits: "userSpaceOnUse",
637
- colorInterpolationFilters: "sRGB"
638
- }, /* @__PURE__ */ React__default["default"].createElement("feFlood", {
639
- floodOpacity: "0",
640
- result: "BackgroundImageFix"
641
- }), /* @__PURE__ */ React__default["default"].createElement("feColorMatrix", {
642
- in: "SourceAlpha",
643
- type: "matrix",
644
- values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0",
645
- result: "hardAlpha"
646
- }), /* @__PURE__ */ React__default["default"].createElement("feOffset", {
647
- dy: "4"
648
- }), /* @__PURE__ */ React__default["default"].createElement("feComposite", {
649
- in2: "hardAlpha",
650
- operator: "out"
651
- }), /* @__PURE__ */ React__default["default"].createElement("feColorMatrix", {
652
- type: "matrix",
653
- values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"
654
- }), /* @__PURE__ */ React__default["default"].createElement("feBlend", {
655
- mode: "normal",
656
- in2: "BackgroundImageFix",
657
- result: "effect1_dropShadow_4620_22659"
658
- }), /* @__PURE__ */ React__default["default"].createElement("feBlend", {
659
- mode: "normal",
660
- in: "SourceGraphic",
661
- in2: "effect1_dropShadow_4620_22659",
662
- result: "shape"
663
- }))));
664
- };
665
-
666
- const TruncateTextBox = ({
667
- headerText,
668
- headerClassName = "",
669
- text,
670
- truncateThreshold = 132,
671
- children,
672
- className = "truncate-text-box"
673
- }) => {
674
- const needsTruncate = (text == null ? void 0 : text.length) > truncateThreshold;
675
- const [showFullText, setShowFullText] = React.useState(false);
676
- const truncated = needsTruncate && !showFullText;
677
- const displayText = truncated ? text.substring(0, truncateThreshold) : text;
678
- return /* @__PURE__ */ React__default["default"].createElement("div", {
679
- className: `${className} bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full"`
680
- }, /* @__PURE__ */ React__default["default"].createElement("h3", {
681
- className: `${headerClassName} text-[20px] leading-[20px] text-grayscale-900`
682
- }, headerText), /* @__PURE__ */ React__default["default"].createElement("p", {
683
- className: "text-[12px] text-grayscale-700 leading-[18px] font-poppins font-[400] mb-0"
684
- }, displayText, truncated && /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, "...", " ", /* @__PURE__ */ React__default["default"].createElement("button", {
685
- className: "text-indigo-500 font-[700]",
686
- onClick: () => setShowFullText(true)
687
- }, "More")), needsTruncate && showFullText && /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, " ", /* @__PURE__ */ React__default["default"].createElement("button", {
688
- className: "text-indigo-500 font-[700]",
689
- onClick: () => setShowFullText(false)
690
- }, "Close"))), children);
691
- };
692
-
693
- const truncateWithEllipsis = (str, maxLength) => {
694
- return str.length > maxLength ? `${str.substring(0, maxLength)}...` : str;
695
- };
696
- const capitalize = (string) => {
697
- return string ? string[0].toUpperCase() + string.slice(1) : "";
698
- };
699
-
700
- const VerificationRow = ({ verification }) => {
701
- var _a, _b;
702
- const [showInfo, setShowInfo] = React.useState(false);
703
- const statusColor = credential_helpers.getColorForVerificationStatus(verification.status);
704
- const getIcon = () => {
705
- switch (verification.status) {
706
- case types_esm.VerificationStatusEnum.Success:
707
- return /* @__PURE__ */ React__default["default"].createElement(AcuteCheckmark, null);
708
- case types_esm.VerificationStatusEnum.Error:
709
- return /* @__PURE__ */ React__default["default"].createElement(ExclamationPoint, null);
710
- case types_esm.VerificationStatusEnum.Failed:
711
- return /* @__PURE__ */ React__default["default"].createElement(X, null);
712
- }
713
- };
714
- let primaryText = verification.check ? `${verification.check}: ${verification.message}` : verification.message;
715
- if (verification.status === types_esm.VerificationStatusEnum.Failed) {
716
- primaryText = (_b = (_a = verification.message) != null ? _a : verification.details) != null ? _b : "";
717
- }
718
- primaryText = capitalize(primaryText);
719
- const infoText = "";
720
- return /* @__PURE__ */ React__default["default"].createElement("div", {
721
- className: "verification-row flex flex-col gap-[5px] font-poppins border-b-[1px] border-grayscale-200 border-solid w-full py-[10px] last:border-0 last:pb-0"
722
- }, /* @__PURE__ */ React__default["default"].createElement("span", {
723
- className: "font-[700] text-[11px] leading-[16px] uppercase flex items-center gap-[3px] select-none",
724
- style: { color: statusColor }
725
- }, getIcon(), verification.status, infoText ), showInfo && infoText && /* @__PURE__ */ React__default["default"].createElement(InfoBox, {
726
- text: infoText,
727
- handleClose: () => setShowInfo(false),
728
- backgroundColor: statusColor
729
- }), /* @__PURE__ */ React__default["default"].createElement("span", {
730
- className: "font-[400] text-[14px] leading-[21px] text-grayscale-900"
731
- }, primaryText));
732
- };
733
-
734
- const VerificationsBox = ({ verificationItems }) => {
735
- const [showInfo, setShowInfo] = React.useState(false);
736
- return /* @__PURE__ */ React__default["default"].createElement("div", {
737
- className: "verifications-box bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full relative"
738
- }, /* @__PURE__ */ React__default["default"].createElement("h3", {
739
- className: "text-[20px] leading-[20px] text-grayscale-900"
740
- }, "Credential Verifications"), /* @__PURE__ */ React__default["default"].createElement("button", {
741
- className: "absolute top-[17px] right-[17px]",
742
- onClick: () => setShowInfo(!showInfo)
743
- }, /* @__PURE__ */ React__default["default"].createElement(InfoIcon, {
744
- color: showInfo ? "#6366F1" : void 0
745
- })), showInfo && /* @__PURE__ */ React__default["default"].createElement(InfoBox, {
746
- text: "Credential verifications check the cryptographic proof of digital credentials to ensure their authenticity and accuracy.",
747
- handleClose: () => setShowInfo(false)
748
- }), verificationItems.map((verification, index) => /* @__PURE__ */ React__default["default"].createElement(VerificationRow, {
749
- key: index,
750
- verification
751
- })));
752
- };
753
-
754
- const VC2BackFace = ({
755
- credential,
756
- verificationItems,
757
- getFileMetadata,
758
- getVideoMetadata,
759
- onMediaAttachmentClick,
760
- issueHistory,
761
- showBackButton,
762
- showFrontFace,
763
- customDescription,
764
- customCriteria,
765
- customIssueHistoryComponent,
766
- enableLightbox
767
- }) => {
768
- var _a;
769
- const expiration = credential.expirationDate ? credential_helpers.format(new Date(credential.expirationDate), "MMM dd, yyyy") : void 0;
770
- const isExpired = credential.expirationDate && Number(new Date(credential.expirationDate)) < Number(new Date());
771
- const achievement = "achievement" in credential.credentialSubject ? credential.credentialSubject.achievement : void 0;
772
- const criteria = (_a = achievement == null ? void 0 : achievement.criteria) == null ? void 0 : _a.narrative;
773
- const description = achievement == null ? void 0 : achievement.description;
774
- return /* @__PURE__ */ React__default["default"].createElement("section", {
775
- className: "vc-back-face flex flex-col gap-[20px] w-full px-[15px]"
776
- }, showBackButton && /* @__PURE__ */ React__default["default"].createElement("div", {
777
- className: "w-full"
778
- }, /* @__PURE__ */ React__default["default"].createElement("button", {
779
- className: "vc-card-back-button rounded-full h-[50px] px-[15px] flex items-center justify-center gap-[5px] z-50 text-[30px] text-white select-none",
780
- onClick: showFrontFace
781
- }, /* @__PURE__ */ React__default["default"].createElement(LeftArrow, {
782
- className: "text-white",
783
- size: "25"
784
- }), "Details")), customDescription && /* @__PURE__ */ React__default["default"].createElement(TruncateTextBox, {
785
- headerText: "About",
786
- text: description,
787
- className: "description-box"
788
- }, customDescription), !customDescription && (description || expiration) && /* @__PURE__ */ React__default["default"].createElement(TruncateTextBox, {
789
- headerText: "About",
790
- text: description,
791
- className: "description-box"
792
- }, expiration && /* @__PURE__ */ React__default["default"].createElement("p", {
793
- className: "text-grayscale-800 font-poppins font-[600] text-[12px] leading-[18px] mb-0"
794
- }, "Expire", isExpired ? "d" : "s", " on ", expiration)), customCriteria && /* @__PURE__ */ React__default["default"].createElement(TruncateTextBox, {
795
- headerText: "Criteria",
796
- text: description,
797
- className: "description-box"
798
- }, customCriteria), !customCriteria && criteria && /* @__PURE__ */ React__default["default"].createElement(TruncateTextBox, {
799
- headerText: "Criteria",
800
- text: criteria,
801
- className: "criteria-box"
802
- }), issueHistory && (issueHistory == null ? void 0 : issueHistory.length) > 0 && /* @__PURE__ */ React__default["default"].createElement(IssueHistoryBox, {
803
- issueHistory,
804
- customIssueHistoryComponent
805
- }), credential.attachments && credential.attachments.length > 0 && /* @__PURE__ */ React__default["default"].createElement(MediaAttachmentsBox, {
806
- attachments: credential.attachments,
807
- getFileMetadata,
808
- getVideoMetadata,
809
- onMediaAttachmentClick,
810
- enableLightbox
811
- }), verificationItems && verificationItems.length > 0 && /* @__PURE__ */ React__default["default"].createElement(VerificationsBox, {
812
- verificationItems
813
- }));
814
- };
815
-
816
- const VC2FrontFaceInfo = ({
817
- issuee,
818
- issuer,
819
- subjectDID,
820
- subjectImageComponent,
821
- issuerImageComponent,
822
- customBodyCardComponent,
823
- createdAt,
824
- imageUrl,
825
- customThumbComponent
826
- }) => {
827
- const issuerName = truncateWithEllipsis(credential_helpers.getNameFromProfile(issuer != null ? issuer : ""), 25);
828
- const issueeName = truncateWithEllipsis(credential_helpers.getNameFromProfile(issuee != null ? issuee : ""), 25);
829
- const issuerImage = credential_helpers.getImageFromProfile(issuer != null ? issuer : "");
830
- const issueeImage = credential_helpers.getImageFromProfile(issuee != null ? issuee : "");
831
- const getImageElement = (imageUrl2, alt, overrideComponent) => {
832
- if (overrideComponent)
833
- return overrideComponent;
834
- return /* @__PURE__ */ React__default["default"].createElement("img", {
835
- className: "h-full w-full object-cover select-none",
836
- src: imageUrl2 || DefaultFace__default["default"],
837
- alt
838
- });
839
- };
840
- const issueeImageEl = getImageElement(issueeImage, "Issuee image", subjectImageComponent);
841
- const issuerImageEl = getImageElement(issuerImage, "Issuer image", issuerImageComponent);
842
- return /* @__PURE__ */ React__default["default"].createElement("section", {
843
- className: "vc-front-face w-full px-[15px] flex flex-col items-center gap-[15px]"
844
- }, imageUrl && !customThumbComponent && /* @__PURE__ */ React__default["default"].createElement("img", {
845
- className: "vc-front-image h-[130px] w-[130px] rounded-[10px]",
846
- src: imageUrl
847
- }), customThumbComponent && customThumbComponent, /* @__PURE__ */ React__default["default"].createElement("div", {
848
- className: "vc-issue-info-box bg-white flex flex-col items-center gap-[5px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full"
849
- }, customBodyCardComponent && customBodyCardComponent, !customBodyCardComponent && /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */ React__default["default"].createElement("h3", {
850
- className: "text-[27px] flex flex-col text-center leading-[130%] text-grayscale-900 capitalize"
851
- }, issueeName, subjectDID && /* @__PURE__ */ React__default["default"].createElement("span", {
852
- className: "text-[12px] text-grayscale-700 leading-[18px] font-poppins font-[400] m-0 p-0 normal-case"
853
- }, subjectDID)), /* @__PURE__ */ React__default["default"].createElement("div", {
854
- className: "relative"
855
- }, /* @__PURE__ */ React__default["default"].createElement("div", {
856
- className: "vc-issuee-image h-[60px] w-[60px] rounded-full overflow-hidden"
857
- }, issueeImageEl), /* @__PURE__ */ React__default["default"].createElement("div", {
858
- className: "vc-issuer-image h-[30px] w-[30px] rounded-full overflow-hidden absolute bottom-[-12px] right-[-12px]"
859
- }, issuerImageEl)), /* @__PURE__ */ React__default["default"].createElement("div", {
860
- className: "vc-issue-details mt-[10px] flex flex-col items-center font-montserrat text-[14px] leading-[20px]"
861
- }, /* @__PURE__ */ React__default["default"].createElement("span", {
862
- className: "created-at text-grayscale-700"
863
- }, createdAt), /* @__PURE__ */ React__default["default"].createElement("span", {
864
- className: "issued-by text-grayscale-900 font-[500]"
865
- }, "by ", /* @__PURE__ */ React__default["default"].createElement("strong", {
866
- className: "font-[700]"
867
- }, issuerName))))));
868
- };
869
-
870
- /*! @license Rematrix v0.2.2
871
-
872
- Copyright 2018 Fisssion LLC.
873
-
874
- Permission is hereby granted, free of charge, to any person obtaining a copy
875
- of this software and associated documentation files (the "Software"), to deal
876
- in the Software without restriction, including without limitation the rights
877
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
878
- copies of the Software, and to permit persons to whom the Software is
879
- furnished to do so, subject to the following conditions:
880
-
881
- The above copyright notice and this permission notice shall be included in
882
- all copies or substantial portions of the Software.
883
-
884
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
885
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
886
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
887
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
888
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
889
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
890
- THE SOFTWARE.
891
- */
892
- /**
893
- * @module Rematrix
894
- */
895
-
896
- /**
897
- * Transformation matrices in the browser come in two flavors:
898
- *
899
- * - `matrix` using 6 values (short)
900
- * - `matrix3d` using 16 values (long)
901
- *
902
- * This utility follows this [conversion guide](https://goo.gl/EJlUQ1)
903
- * to expand short form matrices to their equivalent long form.
904
- *
905
- * @param {array} source - Accepts both short and long form matrices.
906
- * @return {array}
907
- */
908
- function format(source) {
909
- if (source.constructor !== Array) {
910
- throw new TypeError('Expected array.')
911
- }
912
- if (source.length === 16) {
913
- return source
914
- }
915
- if (source.length === 6) {
916
- var matrix = identity();
917
- matrix[0] = source[0];
918
- matrix[1] = source[1];
919
- matrix[4] = source[2];
920
- matrix[5] = source[3];
921
- matrix[12] = source[4];
922
- matrix[13] = source[5];
923
- return matrix
924
- }
925
- throw new RangeError('Expected array with either 6 or 16 values.')
926
- }
927
-
928
- /**
929
- * Returns a matrix representing no transformation. The product of any matrix
930
- * multiplied by the identity matrix will be the original matrix.
931
- *
932
- * > **Tip:** Similar to how `5 * 1 === 5`, where `1` is the identity.
933
- *
934
- * @return {array}
935
- */
936
- function identity() {
937
- var matrix = [];
938
- for (var i = 0; i < 16; i++) {
939
- i % 5 == 0 ? matrix.push(1) : matrix.push(0);
940
- }
941
- return matrix
942
- }
943
-
944
- /**
945
- * Returns a 4x4 matrix describing the combined transformations
946
- * of both arguments.
947
- *
948
- * > **Note:** Order is very important. For example, rotating 45°
949
- * along the Z-axis, followed by translating 500 pixels along the
950
- * Y-axis... is not the same as translating 500 pixels along the
951
- * Y-axis, followed by rotating 45° along on the Z-axis.
952
- *
953
- * @param {array} m - Accepts both short and long form matrices.
954
- * @param {array} x - Accepts both short and long form matrices.
955
- * @return {array}
956
- */
957
- function multiply(m, x) {
958
- var fm = format(m);
959
- var fx = format(x);
960
- var product = [];
961
-
962
- for (var i = 0; i < 4; i++) {
963
- var row = [fm[i], fm[i + 4], fm[i + 8], fm[i + 12]];
964
- for (var j = 0; j < 4; j++) {
965
- var k = j * 4;
966
- var col = [fx[k], fx[k + 1], fx[k + 2], fx[k + 3]];
967
- var result =
968
- row[0] * col[0] + row[1] * col[1] + row[2] * col[2] + row[3] * col[3];
969
-
970
- product[i + k] = result;
971
- }
972
- }
973
-
974
- return product
975
- }
976
-
977
- /**
978
- * Attempts to return a 4x4 matrix describing the CSS transform
979
- * matrix passed in, but will return the identity matrix as a
980
- * fallback.
981
- *
982
- * **Tip:** In virtually all cases, this method is used to convert
983
- * a CSS matrix (retrieved as a `string` from computed styles) to
984
- * its equivalent array format.
985
- *
986
- * @param {string} source - String containing a valid CSS `matrix` or `matrix3d` property.
987
- * @return {array}
988
- */
989
- function parse(source) {
990
- if (typeof source === 'string') {
991
- var match = source.match(/matrix(3d)?\(([^)]+)\)/);
992
- if (match) {
993
- var raw = match[2].split(', ').map(parseFloat);
994
- return format(raw)
995
- }
996
- }
997
- return identity()
998
- }
999
-
1000
- /**
1001
- * Returns a 4x4 matrix describing X-axis scaling.
1002
- *
1003
- * @param {number} scalar - Decimal multiplier.
1004
- * @return {array}
1005
- */
1006
- function scaleX(scalar) {
1007
- var matrix = identity();
1008
- matrix[0] = scalar;
1009
- return matrix
1010
- }
1011
-
1012
- /**
1013
- * Returns a 4x4 matrix describing Y-axis scaling.
1014
- *
1015
- * @param {number} scalar - Decimal multiplier.
1016
- * @return {array}
1017
- */
1018
- function scaleY(scalar) {
1019
- var matrix = identity();
1020
- matrix[5] = scalar;
1021
- return matrix
1022
- }
1023
-
1024
- /**
1025
- * Returns a 4x4 matrix describing X-axis translation.
1026
- *
1027
- * @param {number} distance - Measured in pixels.
1028
- * @return {array}
1029
- */
1030
- function translateX(distance) {
1031
- var matrix = identity();
1032
- matrix[12] = distance;
1033
- return matrix
1034
- }
1035
-
1036
- /**
1037
- * Returns a 4x4 matrix describing Y-axis translation.
1038
- *
1039
- * @param {number} distance - Measured in pixels.
1040
- * @return {array}
1041
- */
1042
- function translateY(distance) {
1043
- var matrix = identity();
1044
- matrix[13] = distance;
1045
- return matrix
1046
- }
1047
-
1048
- var e=function(t){return "number"==typeof t},i=function(t){return "function"==typeof t},n=function(t){return "[object Object]"===Object.prototype.toString.call(t)},r=function(t){return Array.prototype.slice.apply(t)},s=function(t){var e=t.reduce(function(t,e){return t[e]=(t[e]||0)+1,t},{});return Object.keys(e).filter(function(t){return e[t]>1})};function a(t){return [].slice.call(arguments,1).forEach(function(e){if(e)for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);}),t}var o,l=function(t,e,i){return t+(e-t)*i},p={__proto__:null,isNumber:e,isFunction:i,isObject:n,toArray:r,getDuplicateValsAsStrings:s,assign:a,tweenProp:l},c$1="data-flip-id",u$1="data-inverse-flip-id",d$1="data-portal-key",f$1="data-exit-container",h$1={__proto__:null,DATA_FLIP_ID:c$1,DATA_INVERSE_FLIP_ID:u$1,DATA_FLIP_COMPONENT_ID:"data-flip-component-id",DATA_FLIP_CONFIG:"data-flip-config",DATA_PORTAL_KEY:d$1,DATA_EXIT_CONTAINER:f$1},g={noWobble:{stiffness:200,damping:26},gentle:{stiffness:120,damping:14},veryGentle:{stiffness:130,damping:17},wobbly:{stiffness:180,damping:12},stiff:{stiffness:260,damping:26}},m$1=function(t){return n(t)?t:Object.keys(g).indexOf(t)>-1?g[t]:{}};"undefined"!=typeof window&&(o=window.requestAnimationFrame);var v=o=o||function(t){window.setTimeout(t,1e3/60);},y$1=Date.now(),_="object"==typeof performance&&"function"==typeof performance.now?function(){return performance.now()}:function(){return Date.now()-y$1};function S(t,e){var i=t.indexOf(e);-1!==i&&t.splice(i,1);}var E=/*#__PURE__*/function(){function t(){}return t.prototype.run=function(){var t=this;v(function(){t.springSystem.loop(_());});},t}(),A=function(){this.position=0,this.velocity=0;},C=0,b=.001,I=/*#__PURE__*/function(){function t(t){this._id="s"+C++,this._springSystem=t,this.listeners=[],this._startValue=0,this._currentState=new A,this._displacementFromRestThreshold=.001,this._endValue=0,this._overshootClampingEnabled=!1,this._previousState=new A,this._restSpeedThreshold=.001,this._tempState=new A,this._timeAccumulator=0,this._wasAtRest=!0,this._cachedSpringConfig={};}var e=t.prototype;return e.getId=function(){return this._id},e.destroy=function(){this.listeners=[],this._springSystem.deregisterSpring(this);},e.setSpringConfig=function(t){return this._springConfig=t,this},e.getCurrentValue=function(){return this._currentState.position},e.getDisplacementDistanceForState=function(t){return Math.abs(this._endValue-t.position)},e.setEndValue=function(t){if(t===this._endValue)return this;if(this.prevEndValue=t,this._endValue===t&&this.isAtRest())return this;this._startValue=this.getCurrentValue(),this._endValue=t,this._springSystem.activateSpring(this.getId());for(var e=0,i=this.listeners.length;e<i;e++){var n=this.listeners[e].onSpringEndStateChange;n&&n(this);}return this},e.setVelocity=function(t){return t===this._currentState.velocity||(this._currentState.velocity=t,this._springSystem.activateSpring(this.getId())),this},e.setCurrentValue=function(t){this._startValue=t,this._currentState.position=t;for(var e=0,i=this.listeners.length;e<i;e++){var n=this.listeners[e];n.onSpringUpdate&&n.onSpringUpdate(this);}return this},e.setAtRest=function(){return this._endValue=this._currentState.position,this._tempState.position=this._currentState.position,this._currentState.velocity=0,this},e.setOvershootClampingEnabled=function(t){return this._overshootClampingEnabled=t,this},e.isOvershooting=function(){var t=this._startValue,e=this._endValue;return this._springConfig.tension>0&&(t<e&&this.getCurrentValue()>e||t>e&&this.getCurrentValue()<e)},e.advance=function(t,e){var i=this.isAtRest();if(!i||!this._wasAtRest){var n=e;e>.064&&(n=.064),this._timeAccumulator+=n;for(var r,s,a,o,l,p,c=this._springConfig.tension,u=this._springConfig.friction,d=this._currentState.position,f=this._currentState.velocity,h=this._tempState.position,g=this._tempState.velocity;this._timeAccumulator>=b;)this._timeAccumulator-=b,this._timeAccumulator<b&&(this._previousState.position=d,this._previousState.velocity=f),s=c*(this._endValue-h)-u*f,o=c*(this._endValue-(h=d+(r=f)*b*.5))-u*(g=f+s*b*.5),p=c*(this._endValue-(h=d+(a=g)*b*.5))-u*(g=f+o*b*.5),h=d+(l=g)*b,d+=1/6*(r+2*(a+l)+(g=f+p*b))*b,f+=1/6*(s+2*(o+p)+(c*(this._endValue-h)-u*g))*b;this._tempState.position=h,this._tempState.velocity=g,this._currentState.position=d,this._currentState.velocity=f,this._timeAccumulator>0&&this._interpolate(this._timeAccumulator/b),(this.isAtRest()||this._overshootClampingEnabled&&this.isOvershooting())&&(this._springConfig.tension>0?(this._startValue=this._endValue,this._currentState.position=this._endValue):(this._endValue=this._currentState.position,this._startValue=this._endValue),this.setVelocity(0),i=!0);var m=!1;this._wasAtRest&&(this._wasAtRest=!1,m=!0);var v=!1;i&&(this._wasAtRest=!0,v=!0),this.notifyPositionUpdated(m,v);}},e.notifyPositionUpdated=function(t,e){var i=this;this.listeners.filter(Boolean).forEach(function(n){t&&n.onSpringActivate&&!i._onActivateCalled&&(n.onSpringActivate(i),i._onActivateCalled=!0),n.onSpringUpdate&&n.onSpringUpdate(i),e&&n.onSpringAtRest&&n.onSpringAtRest(i);});},e.systemShouldAdvance=function(){return !this.isAtRest()||!this.wasAtRest()},e.wasAtRest=function(){return this._wasAtRest},e.isAtRest=function(){return Math.abs(this._currentState.velocity)<this._restSpeedThreshold&&(this.getDisplacementDistanceForState(this._currentState)<=this._displacementFromRestThreshold||0===this._springConfig.tension)},e._interpolate=function(t){this._currentState.position=this._currentState.position*t+this._previousState.position*(1-t),this._currentState.velocity=this._currentState.velocity*t+this._previousState.velocity*(1-t);},e.addListener=function(t){return this.listeners.push(t),this},e.addOneTimeListener=function(t){var e=this;return Object.keys(t).forEach(function(i){var n;t[i]=(n=t[i],function(){n.apply(void 0,[].slice.call(arguments)),e.removeListener(t);});}),this.listeners.push(t),this},e.removeListener=function(t){return S(this.listeners,t),this},t}(),w=/*#__PURE__*/function(){function t(t){this.looper=t||new E,this.looper.springSystem=this,this.listeners=[],this._activeSprings=[],this._idleSpringIndices=[],this._isIdle=!0,this._lastTimeMillis=-1,this._springRegistry={};}var e=t.prototype;return e.createSpring=function(t,e){return this.createSpringWithConfig({tension:t,friction:e})},e.createSpringWithConfig=function(t){var e=new I(this);return this.registerSpring(e),e.setSpringConfig(t),e},e.getIsIdle=function(){return this._isIdle},e.registerSpring=function(t){this._springRegistry[t.getId()]=t;},e.deregisterSpring=function(t){S(this._activeSprings,t),delete this._springRegistry[t.getId()];},e.advance=function(t,e){for(var i=this;this._idleSpringIndices.length>0;)this._idleSpringIndices.pop();for(this._activeSprings.filter(Boolean).forEach(function(n){n.systemShouldAdvance()?n.advance(t/1e3,e/1e3):i._idleSpringIndices.push(i._activeSprings.indexOf(n));});this._idleSpringIndices.length>0;){var n=this._idleSpringIndices.pop();n>=0&&this._activeSprings.splice(n,1);}},e.loop=function(t){var e;-1===this._lastTimeMillis&&(this._lastTimeMillis=t-1);var i=t-this._lastTimeMillis;this._lastTimeMillis=t;var n=0,r=this.listeners.length;for(n=0;n<r;n++)(e=this.listeners[n]).onBeforeIntegrate&&e.onBeforeIntegrate(this);for(this.advance(t,i),0===this._activeSprings.length&&(this._isIdle=!0,this._lastTimeMillis=-1),n=0;n<r;n++)(e=this.listeners[n]).onAfterIntegrate&&e.onAfterIntegrate(this);this._isIdle||this.looper.run();},e.activateSpring=function(t){var e=this._springRegistry[t];-1===this._activeSprings.indexOf(e)&&this._activeSprings.push(e),this.getIsIdle()&&(this._isIdle=!1,this.looper.run());},t}(),O=new w,x=function(t){var e=t.springConfig,i=e.overshootClamping,n=t.getOnUpdateFunc,r=t.onAnimationEnd,s=t.onSpringActivate,a=O.createSpring(e.stiffness,e.damping);a.setOvershootClampingEnabled(!!i);var o={onSpringActivate:s,onSpringAtRest:function(){a.destroy(),r();},onSpringUpdate:n({spring:a,onAnimationEnd:r})};return a.addListener(o),a},U=function(t){var e=x(t);return e.setEndValue(1),e},V=function(t,e){if(void 0===e&&(e={}),t&&t.length){e.reverse&&t.reverse();var i,n="number"!=typeof(i=e.speed)?1.1:1+Math.min(Math.max(5*i,0),5),r=1/Math.max(Math.min(t.length,100),10),s=t.map(function(t,e){var i=t.getOnUpdateFunc;return t.getOnUpdateFunc=function(t){var a=i(t);return function(t){var i=t.getCurrentValue();(i=i<.01?0:i>.99?1:i)>=r&&s[e+1]&&s[e+1](Math.max(Math.min(i*n,1),0)),a(t);}},t}).map(function(t){var e=x(t);if(e)return e.setEndValue.bind(e)}).filter(Boolean);s[0]&&s[0](1);}},F=function(t){return [0,1,4,5,12,13].map(function(e){return t[e]})},P=function(t){return t.top<window.innerHeight&&t.bottom>0&&t.left<window.innerWidth&&t.right>0};function D(t){return JSON.parse(t.dataset.flipConfig||"{}")}var R=function(t,e){var i;return a(t,((i={})[e[0]]=e[1],i))},T=function(t,e){return r(e?document.querySelectorAll("["+d$1+'="'+e+'"]'):t.querySelectorAll("["+c$1+"]"))},M=function(t){return t.map(function(t){return [t,t.getBoundingClientRect()]})},k=function(n){var o=n.cachedOrderedFlipIds,p=void 0===o?[]:o,f=n.inProgressAnimations,h=void 0===f?{}:f,v=n.flippedElementPositionsBeforeUpdate,y=void 0===v?{}:v,_=n.flipCallbacks,S=void 0===_?{}:_,E=n.containerEl,A=n.applyTransformOrigin,C=n.spring,b=n.debug,I=n.portalKey,w=n.staggerConfig,O=void 0===w?{}:w,x=n.decisionData,k=void 0===x?{}:x,j=n.handleEnterUpdateDelete,B=n.onComplete,N=n.onStart;if(!window.matchMedia("(prefers-reduced-motion: reduce)").matches){var L,q=M(T((L={element:E,portalKey:I}).element,L.portalKey)).map(function(t){var e=t[0],i=t[1],n=window.getComputedStyle(e);return [e.dataset.flipId,{element:e,rect:i,opacity:parseFloat(n.opacity),transform:n.transform}]}).reduce(R,{}),X=function(t){var e=t.containerEl,i=t.portalKey;return i?function(t){return function(e){return r(document.querySelectorAll("["+d$1+'="'+t+'"]'+e))}}(i):e?function(t){var e=Math.random().toFixed(5);return t.dataset.flipperId=e,function(i){return r(t.querySelectorAll('[data-flipper-id="'+e+'"] '+i))}}(e):function(){return []}}({containerEl:E,portalKey:I}),Y=function(t){return function(e){return t("["+c$1+'="'+e+'"]')[0]}}(X),W=function(t){return y[t]&&q[t]},K=Object.keys(y).concat(Object.keys(q)).filter(function(t){return !W(t)}),H={flipCallbacks:S,getElement:Y,flippedElementPositionsBeforeUpdate:y,flippedElementPositionsAfterUpdate:q,inProgressAnimations:h,decisionData:k},J=function(t){var e,i=t.unflippedIds,n=t.flipCallbacks,r=t.getElement,s=t.flippedElementPositionsBeforeUpdate,a=t.flippedElementPositionsAfterUpdate,o=t.inProgressAnimations,l=t.decisionData,p=i.filter(function(t){return a[t]}).filter(function(t){return n[t]&&n[t].onAppear}),c=i.filter(function(t){return s[t]&&n[t]&&n[t].onExit}),u=new Promise(function(t){e=t;}),d=[],f=0,h=c.map(function(t,i){var r=s[t].domDataForExitAnimations,a=r.element,p=r.parent,c=r.childPosition,u=c.top,h=c.left,g=c.width,m=c.height;"static"===getComputedStyle(p).position&&(p.style.position="relative"),a.style.transform="matrix(1, 0, 0, 1, 0, 0)",a.style.position="absolute",a.style.top=u+"px",a.style.left=h+"px",a.style.height=m+"px",a.style.width=g+"px";var v=d.filter(function(t){return t[0]===p})[0];v||(v=[p,document.createDocumentFragment()],d.push(v)),v[1].appendChild(a),f+=1;var y=function(){try{p.removeChild(a);}catch(t){}finally{0==(f-=1)&&e();}};return o[t]={stop:y},function(){return n[t].onExit(a,i,y,l)}});return d.forEach(function(t){t[0].appendChild(t[1]);}),h.length||e(),{hideEnteringElements:function(){p.forEach(function(t){var e=r(t);e&&(e.style.opacity="0");});},animateEnteringElements:function(){p.forEach(function(t,e){var i=r(t);i&&n[t].onAppear(i,e,l);});},animateExitingElements:function(){return h.forEach(function(t){return t()}),u}}}(a({},H,{unflippedIds:K})),z=J.hideEnteringElements,G=J.animateEnteringElements,Q=J.animateExitingElements,Z=a({},H,{containerEl:E,flippedIds:p.filter(W),applyTransformOrigin:A,spring:C,debug:b,staggerConfig:O,scopedSelector:X,onComplete:B});N&&N(E,k);var $=function(n){var o,p=n.flippedIds,c=n.flipCallbacks,d=n.inProgressAnimations,f=n.flippedElementPositionsBeforeUpdate,h=n.flippedElementPositionsAfterUpdate,v=n.applyTransformOrigin,y=n.spring,_=n.getElement,S=n.debug,E=n.staggerConfig,A=void 0===E?{}:E,C=n.decisionData,b=void 0===C?{}:C,I=n.onComplete,w=n.containerEl,O=new Promise(function(t){o=t;});if(I&&O.then(function(){return I(w,b)}),!p.length)return function(){return o([]),O};var x=[],R=_(p[0]),T=R?R.ownerDocument.querySelector("body"):document.querySelector("body");s(p);var M=p.map(function(n){var s=f[n].rect,p=h[n].rect,_=f[n].opacity,S=h[n].opacity,E=p.width<1||p.height<1,A=h[n].element;if(!P(s)&&!P(p))return !1;if(!A)return !1;var C,I,w,O=D(A),U=(w=(I=void 0===(C={flipperSpring:y,flippedSpring:O.spring})?{}:C).flippedSpring,a({},g.noWobble,m$1(I.flipperSpring),m$1(w))),V=!0===O.stagger?"default":O.stagger,R={element:A,id:n,stagger:V,springConfig:U};if(c[n]&&c[n].shouldFlip&&!c[n].shouldFlip(b.previous,b.current))return !1;var k=Math.abs(s.left-p.left)+Math.abs(s.top-p.top),j=Math.abs(s.width-p.width)+Math.abs(s.height-p.height),B=Math.abs(S-_);if(0===s.height&&0===p.height||0===s.width&&0===p.width||k<.5&&j<.5&&B<.01)return !1;var N=parse(h[n].transform),L={matrix:N},q={matrix:[]},X=[N];O.translate&&(X.push(translateX(s.left-p.left)),X.push(translateY(s.top-p.top))),O.scale&&(X.push(scaleX(Math.max(s.width,1)/Math.max(p.width,1))),X.push(scaleY(Math.max(s.height,1)/Math.max(p.height,1)))),O.opacity&&(q.opacity=_,L.opacity=S);var Y=[];if(!c[n]||!c[n].shouldInvert||c[n].shouldInvert(b.previous,b.current)){var W=function(t,e){return r(t.querySelectorAll("["+u$1+'="'+e+'"]'))}(A,n);Y=W.map(function(t){return [t,D(t)]});}q.matrix=F(X.reduce(multiply)),L.matrix=F(L.matrix);var K,H=function(t){var i=t.element,n=t.invertedChildren,r=t.body;return function(t){var s=t.matrix,a=t.opacity,o=t.forceMinVals;if(e(a)&&(i.style.opacity=a+""),o&&(i.style.minHeight="1px",i.style.minWidth="1px"),s){var l=function(t){return "matrix("+t.join(", ")+")"}(s);i.style.transform=l,n&&function(t){var e=t.matrix,i=t.body;t.invertedChildren.forEach(function(t){var n=t[0],r=t[1];if(i.contains(n)){var s=e[0],a=e[3],o=e[5],l={translateX:0,translateY:0,scaleX:1,scaleY:1},p="";r.translate&&(l.translateX=-e[4]/s,l.translateY=-o/a,p+="translate("+l.translateX+"px, "+l.translateY+"px)"),r.scale&&(l.scaleX=1/s,l.scaleY=1/a,p+=" scale("+l.scaleX+", "+l.scaleY+")"),n.style.transform=p;}});}({invertedChildren:n,matrix:s,body:r});}}}({element:A,invertedChildren:Y,body:T});if(c[n]&&c[n].onComplete){var J=c[n].onComplete;K=function(){return J(A,b)};}var z=e(q.opacity)&&e(L.opacity)&&q.opacity!==L.opacity,G=!1;return a({},R,{stagger:V,springConfig:U,getOnUpdateFunc:function(t){var e=t.spring,i=t.onAnimationEnd;return d[n]={destroy:e.destroy.bind(e),onAnimationEnd:i},function(t){c[n]&&c[n].onSpringUpdate&&c[n].onSpringUpdate(t.getCurrentValue()),G||(G=!0,c[n]&&c[n].onStart&&c[n].onStart(A,b));var e=t.getCurrentValue();if(T.contains(A)){var i={matrix:[]};i.matrix=q.matrix.map(function(t,i){return l(t,L.matrix[i],e)}),z&&(i.opacity=l(q.opacity,L.opacity,e)),H(i);}else t.destroy();}},initializeFlip:function(){H({matrix:q.matrix,opacity:z?q.opacity:void 0,forceMinVals:E}),c[n]&&c[n].onStartImmediate&&c[n].onStartImmediate(A,b),O.transformOrigin?A.style.transformOrigin=O.transformOrigin:v&&(A.style.transformOrigin="0 0"),Y.forEach(function(t){var e=t[0],i=t[1];i.transformOrigin?e.style.transformOrigin=i.transformOrigin:v&&(e.style.transformOrigin="0 0");});},onAnimationEnd:function(t){delete d[n],i(K)&&K(),A.style.transform="",Y.forEach(function(t){t[0].style.transform="";}),E&&A&&(A.style.minHeight="",A.style.minWidth=""),t||(x.push(n),x.length>=M.length&&o(x));},delayUntil:O.delayUntil})}).filter(Boolean);if(M.forEach(function(t){return (0, t.initializeFlip)()}),S)return function(){};var k=M.filter(function(t){return t.delayUntil&&(e=t.delayUntil,M.filter(function(t){return t.id===e}).length);var e;}),j={},B={},N={};k.forEach(function(t){t.stagger?(N[t.stagger]=!0,B[t.delayUntil]?B[t.delayUntil].push(t.stagger):B[t.delayUntil]=[t.stagger]):j[t.delayUntil]?j[t.delayUntil].push(t):j[t.delayUntil]=[t];});var L=M.filter(function(t){return t.stagger}).reduce(function(t,e){return t[e.stagger]?t[e.stagger].push(e):t[e.stagger]=[e],t},{}),q=M.filter(function(t){return -1===k.indexOf(t)});return q.forEach(function(t){t.onSpringActivate=function(){j[t.id]&&j[t.id].forEach(U),B[t.id]&&Object.keys(B[t.id].reduce(function(t,e){var i;return a(t,((i={})[e]=!0,i))},{})).forEach(function(t){V(L[t],A[t]);});};}),function(){return M.length||o([]),q.filter(function(t){return !t.stagger}).forEach(U),Object.keys(L).forEach(function(t){N[t]||V(L[t],A[t]);}),O}}(Z);j?j({hideEnteringElements:z,animateEnteringElements:G,animateExitingElements:Q,animateFlippedElements:$}):(z(),Q().then(G),$());}},j=function(t){var e=t.element,i=t.flipCallbacks,n=void 0===i?{}:i,s=t.inProgressAnimations,o=void 0===s?{}:s,l=T(e,t.portalKey),p=r(e.querySelectorAll("["+u$1+"]")),c={},d=[],h={};l.filter(function(t){return n&&n[t.dataset.flipId]&&n[t.dataset.flipId].onExit}).forEach(function(t){var e=t.parentNode;if(t.closest){var i=t.closest("["+f$1+"]");i&&(e=i);}var n=d.findIndex(function(t){return t[0]===e});-1===n&&(d.push([e,e.getBoundingClientRect()]),n=d.length-1),c[t.dataset.flipId]=d[n][1],h[t.dataset.flipId]=e;});var g=M(l),m=g.map(function(t){var e=t[0],i=t[1],r={};if(n&&n[e.dataset.flipId]&&n[e.dataset.flipId].onExit){var s=c[e.dataset.flipId];a(r,{element:e,parent:h[e.dataset.flipId],childPosition:{top:i.top-s.top,left:i.left-s.left,width:i.width,height:i.height}});}return [e.dataset.flipId,{rect:i,opacity:parseFloat(window.getComputedStyle(e).opacity||"1"),domDataForExitAnimations:r}]}).reduce(R,{});return function(t,e){Object.keys(t).forEach(function(e){t[e].destroy&&t[e].destroy(),t[e].onAnimationEnd&&t[e].onAnimationEnd(!0),delete t[e];}),e.forEach(function(t){t.style.transform="",t.style.opacity="";});}(o,l.concat(p)),{flippedElementPositions:m,cachedOrderedFlipIds:g.map(function(t){return t[0].dataset.flipId})}};new w;
1049
-
1050
- function c(e,t){return (c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function d(e,t){if(null==e)return {};var r,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t.indexOf(r=o[n])>=0||(i[r]=e[r]);return i}var f=React.createContext({}),u=React.createContext("portal"),h=function(t){var r,n;function i(){var e;return (e=t.apply(this,arguments)||this).inProgressAnimations={},e.flipCallbacks={},e.el=void 0,e}n=t,(r=i).prototype=Object.create(n.prototype),r.prototype.constructor=r,c(r,n);var l=i.prototype;return l.getSnapshotBeforeUpdate=function(e){return e.flipKey!==this.props.flipKey&&this.el?j({element:this.el,flipCallbacks:this.flipCallbacks,inProgressAnimations:this.inProgressAnimations,portalKey:this.props.portalKey}):null},l.componentDidUpdate=function(e,t,r){this.props.flipKey!==e.flipKey&&this.el&&k({flippedElementPositionsBeforeUpdate:r.flippedElementPositions,cachedOrderedFlipIds:r.cachedOrderedFlipIds,containerEl:this.el,inProgressAnimations:this.inProgressAnimations,flipCallbacks:this.flipCallbacks,applyTransformOrigin:this.props.applyTransformOrigin,spring:this.props.spring,debug:this.props.debug,portalKey:this.props.portalKey,staggerConfig:this.props.staggerConfig,handleEnterUpdateDelete:this.props.handleEnterUpdateDelete,decisionData:{previous:e.decisionData,current:this.props.decisionData},onComplete:this.props.onComplete,onStart:this.props.onStart});},l.render=function(){var t=this,r=this.props,n=r.portalKey,i=React__default["default"].createElement(f.Provider,{value:this.flipCallbacks},React__default["default"].createElement(r.element,{className:r.className,ref:function(e){return t.el=e}},this.props.children));return n&&(i=React__default["default"].createElement(u.Provider,{value:n},i)),i},i}(React.Component);h.defaultProps={applyTransformOrigin:!0,element:"div"};var m=function(e){var t,r=e.children,o=e.flipId,p$1=e.inverseFlipId,a=e.portalKey,c=d(e,["children","flipId","inverseFlipId","portalKey"]),f=r,u=function(e){return "function"==typeof e}(f);if(!u)try{f=React.Children.only(r);}catch(e){throw new Error("Each Flipped component must wrap a single child")}c.scale||c.translate||c.opacity||p.assign(c,{translate:!0,scale:!0,opacity:!0});var h=((t={})[h$1.DATA_FLIP_CONFIG]=JSON.stringify(c),t);return void 0!==o?h[h$1.DATA_FLIP_ID]=String(o):p$1&&(h[h$1.DATA_INVERSE_FLIP_ID]=String(p$1)),void 0!==a&&(h[h$1.DATA_PORTAL_KEY]=a),u?f(h):React.cloneElement(f,h)},y=function(t){var r=t.children,n=t.flipId,i=t.shouldFlip,o=t.shouldInvert,p$1=t.onAppear,s=t.onStart,a=t.onStartImmediate,c=t.onComplete,h=t.onExit,y=t.onSpringUpdate,g=d(t,["children","flipId","shouldFlip","shouldInvert","onAppear","onStart","onStartImmediate","onComplete","onExit","onSpringUpdate"]);return r?g.inverseFlipId?React__default["default"].createElement(m,Object.assign({},g),r):React__default["default"].createElement(u.Consumer,null,function(t){return React__default["default"].createElement(f.Consumer,null,function(d){return p.isObject(d)&&n&&(d[n]={shouldFlip:i,shouldInvert:o,onAppear:p$1,onStart:s,onStartImmediate:a,onComplete:c,onExit:h,onSpringUpdate:y}),React__default["default"].createElement(m,Object.assign({flipId:n},g,{portalKey:t}),r)})}):null};y.displayName="Flipped";
1051
-
1052
- const getCategoryTextColor = (category = index.LCCategoryEnum.achievement) => {
1053
- if (category === index.LCCategoryEnum.socialBadge)
1054
- return "text-cyan-700";
1055
- if (category === index.LCCategoryEnum.skill)
1056
- return "text-indigo-600";
1057
- if (category === index.LCCategoryEnum.achievement)
1058
- return "text-spice-600";
1059
- if (category === index.LCCategoryEnum.learningHistory)
1060
- return "text-emerald-700";
1061
- if (category === index.LCCategoryEnum.id)
1062
- return "text-yellow-400";
1063
- if (category === index.LCCategoryEnum.workHistory)
1064
- return "text-rose-600";
1065
- if (category === index.LCCategoryEnum.course)
1066
- return "text-emerald-700";
1067
- if (category === index.LCCategoryEnum.job)
1068
- return "text-rose-600";
1069
- if (category === index.LCCategoryEnum.currency)
1070
- return "text-cyan-700";
1071
- if (category === index.LCCategoryEnum.membership)
1072
- return "text-teal-500";
1073
- return "text-spice-600";
1074
- };
1075
- const VCDisplayCardCategoryType = ({
1076
- categoryType = index.LCCategoryEnum.achievement
1077
- }) => {
1078
- const categoryColor = getCategoryTextColor(categoryType);
1079
- return /* @__PURE__ */ React__default["default"].createElement("span", {
1080
- className: `uppercase font-poppins text-[12px] font-[600] leading-[12px] select-none ${categoryColor}`
1081
- }, categoryType);
1082
- };
1083
-
1084
- const VCDisplayCard2 = ({
1085
- categoryType,
1086
- credential,
1087
- verificationItems,
1088
- issueeOverride,
1089
- issuerOverride,
1090
- subjectDID,
1091
- subjectImageComponent,
1092
- issuerImageComponent,
1093
- verificationInProgress = false,
1094
- handleXClick,
1095
- getFileMetadata,
1096
- getVideoMetadata,
1097
- onMediaAttachmentClick,
1098
- bottomRightIcon,
1099
- customFooterComponent,
1100
- customBodyCardComponent,
1101
- customThumbComponent,
1102
- customCriteria,
1103
- customDescription,
1104
- customIssueHistoryComponent,
1105
- issueHistory,
1106
- titleOverride,
1107
- showBackButton = true,
1108
- enableLightbox,
1109
- customRibbonCategoryComponent,
1110
- customFrontButton
1111
- }) => {
1112
- var _a, _b, _c, _d, _e;
1113
- const {
1114
- title = "",
1115
- createdAt,
1116
- issuer: _issuer = "",
1117
- issuee: _issuee = "",
1118
- imageUrl
1119
- } = credential_helpers.getInfoFromCredential(credential, "MMM dd, yyyy");
1120
- const issuee = issueeOverride || _issuee;
1121
- const issuer = issuerOverride || _issuer;
1122
- const [isFront, setIsFront] = React.useState(true);
1123
- const [headerHeight, setHeaderHeight] = React.useState(100);
1124
- const [headerWidth, setHeaderWidth] = React.useState(0);
1125
- const headerRef = React.useRef(null);
1126
- React.useLayoutEffect(() => {
1127
- setTimeout(() => {
1128
- var _a2, _b2, _c2, _d2;
1129
- setHeaderHeight((_b2 = (_a2 = headerRef.current) == null ? void 0 : _a2.clientHeight) != null ? _b2 : 100);
1130
- setHeaderWidth((_d2 = (_c2 = headerRef.current) == null ? void 0 : _c2.clientWidth) != null ? _d2 : 0);
1131
- }, 10);
1132
- });
1133
- let worstVerificationStatus = verificationItems.reduce((currentWorst, verification) => {
1134
- switch (currentWorst) {
1135
- case types_esm.VerificationStatusEnum.Success:
1136
- return verification.status;
1137
- case types_esm.VerificationStatusEnum.Error:
1138
- return verification.status === types_esm.VerificationStatusEnum.Failed ? verification.status : currentWorst;
1139
- case types_esm.VerificationStatusEnum.Failed:
1140
- return currentWorst;
1141
- }
1142
- }, types_esm.VerificationStatusEnum.Success);
1143
- const statusColor = credential_helpers.getColorForVerificationStatus(worstVerificationStatus);
1144
- const backgroundStyle = {
1145
- backgroundColor: (_a = credential.display) == null ? void 0 : _a.backgroundColor,
1146
- backgroundImage: ((_b = credential.display) == null ? void 0 : _b.backgroundImage) ? `linear-gradient(to bottom, rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.25)), url(${(_c = credential.display) == null ? void 0 : _c.backgroundImage})` : void 0,
1147
- backgroundSize: "cover",
1148
- backgroundPosition: "center",
1149
- backgroundAttachment: "fixed"
1150
- };
1151
- const _title = titleOverride || title;
1152
- return /* @__PURE__ */ React__default["default"].createElement(h, {
1153
- className: "w-full",
1154
- flipKey: isFront
1155
- }, /* @__PURE__ */ React__default["default"].createElement(y, {
1156
- flipId: "card"
1157
- }, /* @__PURE__ */ React__default["default"].createElement("section", {
1158
- className: "vc-display-card font-mouse flex flex-col items-center border-solid border-[5px] border-white rounded-[30px] overflow-visible z-10 min-h-[800px] max-w-[400px] relative bg-white shadow-3xl"
1159
- }, /* @__PURE__ */ React__default["default"].createElement(RibbonEnd, {
1160
- side: "left",
1161
- className: "absolute left-[-30px] top-[50px] z-0",
1162
- height: "100"
1163
- }), /* @__PURE__ */ React__default["default"].createElement(RibbonEnd, {
1164
- side: "right",
1165
- className: "absolute right-[-30px] top-[50px] z-0",
1166
- height: "100"
1167
- }), /* @__PURE__ */ React__default["default"].createElement("h1", {
1168
- ref: headerRef,
1169
- className: "vc-card-header px-[20px] pb-[10px] pt-[3px] overflow-visible mt-[40px] absolute text-center bg-white border-y-[5px] border-[#EEF2FF] shadow-bottom w-[calc(100%_+_16px)] rounded-t-[8px] z-50",
1170
- style: { wordBreak: "break-word" }
1171
- }, customRibbonCategoryComponent && customRibbonCategoryComponent, !customRibbonCategoryComponent && /* @__PURE__ */ React__default["default"].createElement(VCDisplayCardCategoryType, {
1172
- categoryType
1173
- }), /* @__PURE__ */ React__default["default"].createElement(FitText, {
1174
- text: _title != null ? _title : "",
1175
- maxFontSize: 32,
1176
- minFontSize: 20,
1177
- width: ((headerWidth != null ? headerWidth : 290) - 40).toString(),
1178
- className: "vc-card-header-main-title text-[#18224E] leading-[100%] text-shadow text-[32px]"
1179
- })), isFront && handleXClick && /* @__PURE__ */ React__default["default"].createElement("button", {
1180
- className: "vc-card-x-button absolute top-[-25px] bg-white rounded-full h-[50px] w-[50px] flex items-center justify-center z-50",
1181
- onClick: handleXClick
1182
- }, /* @__PURE__ */ React__default["default"].createElement(RoundedX, null)), /* @__PURE__ */ React__default["default"].createElement("div", {
1183
- className: "relative pt-[114px] vc-card-content-container flex flex-col items-center grow basis-0 min-h-0 h-full w-full rounded-t-[30px] bg-[#353E64] rounded-b-[200px]",
1184
- style: backgroundStyle
1185
- }, /* @__PURE__ */ React__default["default"].createElement(y, {
1186
- flipId: "scroll-container"
1187
- }, /* @__PURE__ */ React__default["default"].createElement("div", {
1188
- className: "vc-card-content-scroll-container w-full pt-[20px] min-h-full flex flex-col justify-start items-center rounded-t-[30px] rounded-b-[200px] overflow-y-auto scrollbar-hide pb-[50px]"
1189
- }, isFront && /* @__PURE__ */ React__default["default"].createElement(y, {
1190
- flipId: "face"
1191
- }, /* @__PURE__ */ React__default["default"].createElement(VC2FrontFaceInfo, {
1192
- issuee,
1193
- subjectDID,
1194
- issuer,
1195
- title,
1196
- subjectImageComponent,
1197
- issuerImageComponent,
1198
- customBodyCardComponent,
1199
- customThumbComponent,
1200
- createdAt: createdAt != null ? createdAt : "",
1201
- imageUrl
1202
- })), !isFront && /* @__PURE__ */ React__default["default"].createElement(y, {
1203
- flipId: "face"
1204
- }, /* @__PURE__ */ React__default["default"].createElement(VC2BackFace, {
1205
- credential,
1206
- verificationItems,
1207
- issueHistory,
1208
- getFileMetadata,
1209
- getVideoMetadata,
1210
- onMediaAttachmentClick,
1211
- showBackButton,
1212
- showFrontFace: () => setIsFront(true),
1213
- customDescription,
1214
- customCriteria,
1215
- customIssueHistoryComponent,
1216
- enableLightbox
1217
- })), isFront && customFrontButton, isFront && !customFrontButton && /* @__PURE__ */ React__default["default"].createElement(y, {
1218
- flipId: "details-back-button"
1219
- }, /* @__PURE__ */ React__default["default"].createElement("button", {
1220
- type: "button",
1221
- className: "vc-toggle-side-button text-white shadow-bottom bg-[#00000099] px-[30px] py-[8px] rounded-[40px] text-[28px] tracking-[0.75px] uppercase leading-[28px] mt-[40px] w-fit select-none",
1222
- onClick: () => setIsFront(!isFront)
1223
- }, "Details")), !isFront && /* @__PURE__ */ React__default["default"].createElement(y, {
1224
- flipId: "details-back-button"
1225
- }, /* @__PURE__ */ React__default["default"].createElement("button", {
1226
- type: "button",
1227
- className: "vc-toggle-side-button text-white shadow-bottom bg-[#00000099] px-[30px] py-[8px] rounded-[40px] text-[28px] tracking-[0.75px] uppercase leading-[28px] mt-[40px] w-fit select-none",
1228
- onClick: () => setIsFront(!isFront)
1229
- }, /* @__PURE__ */ React__default["default"].createElement("span", {
1230
- className: "flex gap-[10px] items-center"
1231
- }, /* @__PURE__ */ React__default["default"].createElement(LeftArrow, null), "Back")))))), /* @__PURE__ */ React__default["default"].createElement("footer", {
1232
- className: "vc-card-footer w-full flex justify-between p-[5px] mt-[5px]"
1233
- }, customFooterComponent && customFooterComponent, !customFooterComponent && /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, worstVerificationStatus === types_esm.VerificationStatusEnum.Failed ? /* @__PURE__ */ React__default["default"].createElement("div", {
1234
- className: "w-[40px]",
1235
- role: "presentation"
1236
- }) : /* @__PURE__ */ React__default["default"].createElement(VCVerificationCheck.VCVerificationCheckWithSpinner, {
1237
- spinnerSize: "40px",
1238
- size: "32px",
1239
- loading: verificationInProgress
1240
- }), /* @__PURE__ */ React__default["default"].createElement("div", {
1241
- className: "vc-footer-text font-montserrat flex flex-col items-center justify-center text-[12px] font-[700] leading-[15px] select-none"
1242
- }, /* @__PURE__ */ React__default["default"].createElement("span", {
1243
- className: "text-[#4F4F4F]"
1244
- }, "Verified Credential"), /* @__PURE__ */ React__default["default"].createElement("span", {
1245
- className: "vc-footer-status uppercase",
1246
- style: { color: statusColor }
1247
- }, worstVerificationStatus)), /* @__PURE__ */ React__default["default"].createElement("div", {
1248
- className: "vc-footer-icon rounded-[20px] h-[40px] w-[40px] flex items-center justify-center overflow-hidden",
1249
- style: { backgroundColor: (_d = bottomRightIcon == null ? void 0 : bottomRightIcon.color) != null ? _d : "#6366F1" }
1250
- }, (_e = bottomRightIcon == null ? void 0 : bottomRightIcon.image) != null ? _e : /* @__PURE__ */ React__default["default"].createElement(AwardRibbon.AwardRibbon, null)))))));
1251
- };
1252
-
1253
- exports.VCDisplayCard2 = VCDisplayCard2;
1254
- //# sourceMappingURL=VCDisplayCard2-c112b1d9.js.map