react-id-card-generator 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (825) hide show
  1. package/README.md +214 -0
  2. package/dist/cjs/_virtual/_commonjsHelpers.js +11 -0
  3. package/dist/cjs/_virtual/_commonjsHelpers.js.map +1 -0
  4. package/dist/cjs/_virtual/index.js +6 -0
  5. package/dist/cjs/_virtual/index.js.map +1 -0
  6. package/dist/cjs/_virtual/make-built-in.js +6 -0
  7. package/dist/cjs/_virtual/make-built-in.js.map +1 -0
  8. package/dist/cjs/_virtual/new-promise-capability.js +6 -0
  9. package/dist/cjs/_virtual/new-promise-capability.js.map +1 -0
  10. package/dist/cjs/_virtual/object-define-properties.js +6 -0
  11. package/dist/cjs/_virtual/object-define-properties.js.map +1 -0
  12. package/dist/cjs/_virtual/object-define-property.js +6 -0
  13. package/dist/cjs/_virtual/object-define-property.js.map +1 -0
  14. package/dist/cjs/_virtual/object-get-own-property-descriptor.js +6 -0
  15. package/dist/cjs/_virtual/object-get-own-property-descriptor.js.map +1 -0
  16. package/dist/cjs/_virtual/object-get-own-property-names.js +6 -0
  17. package/dist/cjs/_virtual/object-get-own-property-names.js.map +1 -0
  18. package/dist/cjs/_virtual/object-get-own-property-symbols.js +6 -0
  19. package/dist/cjs/_virtual/object-get-own-property-symbols.js.map +1 -0
  20. package/dist/cjs/_virtual/object-property-is-enumerable.js +6 -0
  21. package/dist/cjs/_virtual/object-property-is-enumerable.js.map +1 -0
  22. package/dist/cjs/_virtual/performance-now.js +6 -0
  23. package/dist/cjs/_virtual/performance-now.js.map +1 -0
  24. package/dist/cjs/_virtual/qrious.js +6 -0
  25. package/dist/cjs/_virtual/qrious.js.map +1 -0
  26. package/dist/cjs/_virtual/shared-store.js +6 -0
  27. package/dist/cjs/_virtual/shared-store.js.map +1 -0
  28. package/dist/cjs/components/IDCardDesigner.js +283 -0
  29. package/dist/cjs/components/IDCardDesigner.js.map +1 -0
  30. package/dist/cjs/components/IDCardGenerator.js +139 -0
  31. package/dist/cjs/components/IDCardGenerator.js.map +1 -0
  32. package/dist/cjs/components/IDCardPreview.js +168 -0
  33. package/dist/cjs/components/IDCardPreview.js.map +1 -0
  34. package/dist/cjs/core/exportUtils.js +155 -0
  35. package/dist/cjs/core/exportUtils.js.map +1 -0
  36. package/dist/cjs/core/qrUtils.js +64 -0
  37. package/dist/cjs/core/qrUtils.js.map +1 -0
  38. package/dist/cjs/hooks/useFieldMapping.js +148 -0
  39. package/dist/cjs/hooks/useFieldMapping.js.map +1 -0
  40. package/dist/cjs/hooks/useIDCardExport.js +81 -0
  41. package/dist/cjs/hooks/useIDCardExport.js.map +1 -0
  42. package/dist/cjs/hooks/useIDCardTemplate.js +155 -0
  43. package/dist/cjs/hooks/useIDCardTemplate.js.map +1 -0
  44. package/dist/cjs/index.js +48 -0
  45. package/dist/cjs/index.js.map +1 -0
  46. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js +30 -0
  47. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js.map +1 -0
  48. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/defineProperty.js +15 -0
  49. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/defineProperty.js.map +1 -0
  50. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +17 -0
  51. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/toPrimitive.js.map +1 -0
  52. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +12 -0
  53. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js.map +1 -0
  54. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/typeof.js +14 -0
  55. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/typeof.js.map +1 -0
  56. package/dist/cjs/node_modules/canvg/lib/index.es.js +6645 -0
  57. package/dist/cjs/node_modules/canvg/lib/index.es.js.map +1 -0
  58. package/dist/cjs/node_modules/core-js/internals/a-callable.js +18 -0
  59. package/dist/cjs/node_modules/core-js/internals/a-callable.js.map +1 -0
  60. package/dist/cjs/node_modules/core-js/internals/a-constructor.js +18 -0
  61. package/dist/cjs/node_modules/core-js/internals/a-constructor.js.map +1 -0
  62. package/dist/cjs/node_modules/core-js/internals/a-possible-prototype.js +16 -0
  63. package/dist/cjs/node_modules/core-js/internals/a-possible-prototype.js.map +1 -0
  64. package/dist/cjs/node_modules/core-js/internals/add-to-unscopables.js +30 -0
  65. package/dist/cjs/node_modules/core-js/internals/add-to-unscopables.js.map +1 -0
  66. package/dist/cjs/node_modules/core-js/internals/advance-string-index.js +14 -0
  67. package/dist/cjs/node_modules/core-js/internals/advance-string-index.js.map +1 -0
  68. package/dist/cjs/node_modules/core-js/internals/an-instance.js +15 -0
  69. package/dist/cjs/node_modules/core-js/internals/an-instance.js.map +1 -0
  70. package/dist/cjs/node_modules/core-js/internals/an-object.js +17 -0
  71. package/dist/cjs/node_modules/core-js/internals/an-object.js.map +1 -0
  72. package/dist/cjs/node_modules/core-js/internals/array-includes.js +39 -0
  73. package/dist/cjs/node_modules/core-js/internals/array-includes.js.map +1 -0
  74. package/dist/cjs/node_modules/core-js/internals/array-method-is-strict.js +16 -0
  75. package/dist/cjs/node_modules/core-js/internals/array-method-is-strict.js.map +1 -0
  76. package/dist/cjs/node_modules/core-js/internals/array-reduce.js +51 -0
  77. package/dist/cjs/node_modules/core-js/internals/array-reduce.js.map +1 -0
  78. package/dist/cjs/node_modules/core-js/internals/array-slice.js +10 -0
  79. package/dist/cjs/node_modules/core-js/internals/array-slice.js.map +1 -0
  80. package/dist/cjs/node_modules/core-js/internals/check-correctness-of-iteration.js +49 -0
  81. package/dist/cjs/node_modules/core-js/internals/check-correctness-of-iteration.js.map +1 -0
  82. package/dist/cjs/node_modules/core-js/internals/classof-raw.js +15 -0
  83. package/dist/cjs/node_modules/core-js/internals/classof-raw.js.map +1 -0
  84. package/dist/cjs/node_modules/core-js/internals/classof.js +39 -0
  85. package/dist/cjs/node_modules/core-js/internals/classof.js.map +1 -0
  86. package/dist/cjs/node_modules/core-js/internals/copy-constructor-properties.js +28 -0
  87. package/dist/cjs/node_modules/core-js/internals/copy-constructor-properties.js.map +1 -0
  88. package/dist/cjs/node_modules/core-js/internals/correct-is-regexp-logic.js +22 -0
  89. package/dist/cjs/node_modules/core-js/internals/correct-is-regexp-logic.js.map +1 -0
  90. package/dist/cjs/node_modules/core-js/internals/correct-prototype-getter.js +15 -0
  91. package/dist/cjs/node_modules/core-js/internals/correct-prototype-getter.js.map +1 -0
  92. package/dist/cjs/node_modules/core-js/internals/create-iter-result-object.js +10 -0
  93. package/dist/cjs/node_modules/core-js/internals/create-iter-result-object.js.map +1 -0
  94. package/dist/cjs/node_modules/core-js/internals/create-non-enumerable-property.js +20 -0
  95. package/dist/cjs/node_modules/core-js/internals/create-non-enumerable-property.js.map +1 -0
  96. package/dist/cjs/node_modules/core-js/internals/create-property-descriptor.js +13 -0
  97. package/dist/cjs/node_modules/core-js/internals/create-property-descriptor.js.map +1 -0
  98. package/dist/cjs/node_modules/core-js/internals/define-built-in-accessor.js +17 -0
  99. package/dist/cjs/node_modules/core-js/internals/define-built-in-accessor.js.map +1 -0
  100. package/dist/cjs/node_modules/core-js/internals/define-built-in.js +38 -0
  101. package/dist/cjs/node_modules/core-js/internals/define-built-in.js.map +1 -0
  102. package/dist/cjs/node_modules/core-js/internals/define-global-property.js +19 -0
  103. package/dist/cjs/node_modules/core-js/internals/define-global-property.js.map +1 -0
  104. package/dist/cjs/node_modules/core-js/internals/descriptors.js +14 -0
  105. package/dist/cjs/node_modules/core-js/internals/descriptors.js.map +1 -0
  106. package/dist/cjs/node_modules/core-js/internals/document-create-element.js +18 -0
  107. package/dist/cjs/node_modules/core-js/internals/document-create-element.js.map +1 -0
  108. package/dist/cjs/node_modules/core-js/internals/dom-iterables.js +40 -0
  109. package/dist/cjs/node_modules/core-js/internals/dom-iterables.js.map +1 -0
  110. package/dist/cjs/node_modules/core-js/internals/dom-token-list-prototype.js +14 -0
  111. package/dist/cjs/node_modules/core-js/internals/dom-token-list-prototype.js.map +1 -0
  112. package/dist/cjs/node_modules/core-js/internals/enum-bug-keys.js +15 -0
  113. package/dist/cjs/node_modules/core-js/internals/enum-bug-keys.js.map +1 -0
  114. package/dist/cjs/node_modules/core-js/internals/environment-is-ios-pebble.js +10 -0
  115. package/dist/cjs/node_modules/core-js/internals/environment-is-ios-pebble.js.map +1 -0
  116. package/dist/cjs/node_modules/core-js/internals/environment-is-ios.js +11 -0
  117. package/dist/cjs/node_modules/core-js/internals/environment-is-ios.js.map +1 -0
  118. package/dist/cjs/node_modules/core-js/internals/environment-is-node.js +10 -0
  119. package/dist/cjs/node_modules/core-js/internals/environment-is-node.js.map +1 -0
  120. package/dist/cjs/node_modules/core-js/internals/environment-is-webos-webkit.js +10 -0
  121. package/dist/cjs/node_modules/core-js/internals/environment-is-webos-webkit.js.map +1 -0
  122. package/dist/cjs/node_modules/core-js/internals/environment-user-agent.js +13 -0
  123. package/dist/cjs/node_modules/core-js/internals/environment-user-agent.js.map +1 -0
  124. package/dist/cjs/node_modules/core-js/internals/environment-v8-version.js +35 -0
  125. package/dist/cjs/node_modules/core-js/internals/environment-v8-version.js.map +1 -0
  126. package/dist/cjs/node_modules/core-js/internals/environment.js +29 -0
  127. package/dist/cjs/node_modules/core-js/internals/environment.js.map +1 -0
  128. package/dist/cjs/node_modules/core-js/internals/export.js +68 -0
  129. package/dist/cjs/node_modules/core-js/internals/export.js.map +1 -0
  130. package/dist/cjs/node_modules/core-js/internals/fails.js +12 -0
  131. package/dist/cjs/node_modules/core-js/internals/fails.js.map +1 -0
  132. package/dist/cjs/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js +90 -0
  133. package/dist/cjs/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js.map +1 -0
  134. package/dist/cjs/node_modules/core-js/internals/function-apply.js +17 -0
  135. package/dist/cjs/node_modules/core-js/internals/function-apply.js.map +1 -0
  136. package/dist/cjs/node_modules/core-js/internals/function-bind-context.js +22 -0
  137. package/dist/cjs/node_modules/core-js/internals/function-bind-context.js.map +1 -0
  138. package/dist/cjs/node_modules/core-js/internals/function-bind-native.js +15 -0
  139. package/dist/cjs/node_modules/core-js/internals/function-bind-native.js.map +1 -0
  140. package/dist/cjs/node_modules/core-js/internals/function-call.js +14 -0
  141. package/dist/cjs/node_modules/core-js/internals/function-call.js.map +1 -0
  142. package/dist/cjs/node_modules/core-js/internals/function-name.js +24 -0
  143. package/dist/cjs/node_modules/core-js/internals/function-name.js.map +1 -0
  144. package/dist/cjs/node_modules/core-js/internals/function-uncurry-this-accessor.js +17 -0
  145. package/dist/cjs/node_modules/core-js/internals/function-uncurry-this-accessor.js.map +1 -0
  146. package/dist/cjs/node_modules/core-js/internals/function-uncurry-this-clause.js +17 -0
  147. package/dist/cjs/node_modules/core-js/internals/function-uncurry-this-clause.js.map +1 -0
  148. package/dist/cjs/node_modules/core-js/internals/function-uncurry-this.js +19 -0
  149. package/dist/cjs/node_modules/core-js/internals/function-uncurry-this.js.map +1 -0
  150. package/dist/cjs/node_modules/core-js/internals/get-built-in.js +18 -0
  151. package/dist/cjs/node_modules/core-js/internals/get-built-in.js.map +1 -0
  152. package/dist/cjs/node_modules/core-js/internals/get-iterator-method.js +24 -0
  153. package/dist/cjs/node_modules/core-js/internals/get-iterator-method.js.map +1 -0
  154. package/dist/cjs/node_modules/core-js/internals/get-iterator.js +24 -0
  155. package/dist/cjs/node_modules/core-js/internals/get-iterator.js.map +1 -0
  156. package/dist/cjs/node_modules/core-js/internals/get-method.js +17 -0
  157. package/dist/cjs/node_modules/core-js/internals/get-method.js.map +1 -0
  158. package/dist/cjs/node_modules/core-js/internals/get-substitution.js +53 -0
  159. package/dist/cjs/node_modules/core-js/internals/get-substitution.js.map +1 -0
  160. package/dist/cjs/node_modules/core-js/internals/global-this.js +22 -0
  161. package/dist/cjs/node_modules/core-js/internals/global-this.js.map +1 -0
  162. package/dist/cjs/node_modules/core-js/internals/has-own-property.js +19 -0
  163. package/dist/cjs/node_modules/core-js/internals/has-own-property.js.map +1 -0
  164. package/dist/cjs/node_modules/core-js/internals/hidden-keys.js +6 -0
  165. package/dist/cjs/node_modules/core-js/internals/hidden-keys.js.map +1 -0
  166. package/dist/cjs/node_modules/core-js/internals/host-report-errors.js +11 -0
  167. package/dist/cjs/node_modules/core-js/internals/host-report-errors.js.map +1 -0
  168. package/dist/cjs/node_modules/core-js/internals/html.js +10 -0
  169. package/dist/cjs/node_modules/core-js/internals/html.js.map +1 -0
  170. package/dist/cjs/node_modules/core-js/internals/ie8-dom-define.js +20 -0
  171. package/dist/cjs/node_modules/core-js/internals/ie8-dom-define.js.map +1 -0
  172. package/dist/cjs/node_modules/core-js/internals/indexed-object.js +24 -0
  173. package/dist/cjs/node_modules/core-js/internals/indexed-object.js.map +1 -0
  174. package/dist/cjs/node_modules/core-js/internals/inspect-source.js +23 -0
  175. package/dist/cjs/node_modules/core-js/internals/inspect-source.js.map +1 -0
  176. package/dist/cjs/node_modules/core-js/internals/internal-state.js +84 -0
  177. package/dist/cjs/node_modules/core-js/internals/internal-state.js.map +1 -0
  178. package/dist/cjs/node_modules/core-js/internals/is-array-iterator-method.js +18 -0
  179. package/dist/cjs/node_modules/core-js/internals/is-array-iterator-method.js.map +1 -0
  180. package/dist/cjs/node_modules/core-js/internals/is-array.js +15 -0
  181. package/dist/cjs/node_modules/core-js/internals/is-array.js.map +1 -0
  182. package/dist/cjs/node_modules/core-js/internals/is-callable.js +16 -0
  183. package/dist/cjs/node_modules/core-js/internals/is-callable.js.map +1 -0
  184. package/dist/cjs/node_modules/core-js/internals/is-constructor.js +63 -0
  185. package/dist/cjs/node_modules/core-js/internals/is-constructor.js.map +1 -0
  186. package/dist/cjs/node_modules/core-js/internals/is-forced.js +30 -0
  187. package/dist/cjs/node_modules/core-js/internals/is-forced.js.map +1 -0
  188. package/dist/cjs/node_modules/core-js/internals/is-null-or-undefined.js +10 -0
  189. package/dist/cjs/node_modules/core-js/internals/is-null-or-undefined.js.map +1 -0
  190. package/dist/cjs/node_modules/core-js/internals/is-object.js +12 -0
  191. package/dist/cjs/node_modules/core-js/internals/is-object.js.map +1 -0
  192. package/dist/cjs/node_modules/core-js/internals/is-possible-prototype.js +12 -0
  193. package/dist/cjs/node_modules/core-js/internals/is-possible-prototype.js.map +1 -0
  194. package/dist/cjs/node_modules/core-js/internals/is-regexp.js +21 -0
  195. package/dist/cjs/node_modules/core-js/internals/is-regexp.js.map +1 -0
  196. package/dist/cjs/node_modules/core-js/internals/is-symbol.js +23 -0
  197. package/dist/cjs/node_modules/core-js/internals/is-symbol.js.map +1 -0
  198. package/dist/cjs/node_modules/core-js/internals/iterate.js +84 -0
  199. package/dist/cjs/node_modules/core-js/internals/iterate.js.map +1 -0
  200. package/dist/cjs/node_modules/core-js/internals/iterator-close.js +32 -0
  201. package/dist/cjs/node_modules/core-js/internals/iterator-close.js.map +1 -0
  202. package/dist/cjs/node_modules/core-js/internals/iterator-create-constructor.js +26 -0
  203. package/dist/cjs/node_modules/core-js/internals/iterator-create-constructor.js.map +1 -0
  204. package/dist/cjs/node_modules/core-js/internals/iterator-define.js +118 -0
  205. package/dist/cjs/node_modules/core-js/internals/iterator-define.js.map +1 -0
  206. package/dist/cjs/node_modules/core-js/internals/iterators-core.js +58 -0
  207. package/dist/cjs/node_modules/core-js/internals/iterators-core.js.map +1 -0
  208. package/dist/cjs/node_modules/core-js/internals/iterators.js +6 -0
  209. package/dist/cjs/node_modules/core-js/internals/iterators.js.map +1 -0
  210. package/dist/cjs/node_modules/core-js/internals/length-of-array-like.js +14 -0
  211. package/dist/cjs/node_modules/core-js/internals/length-of-array-like.js.map +1 -0
  212. package/dist/cjs/node_modules/core-js/internals/make-built-in.js +71 -0
  213. package/dist/cjs/node_modules/core-js/internals/make-built-in.js.map +1 -0
  214. package/dist/cjs/node_modules/core-js/internals/math-trunc.js +15 -0
  215. package/dist/cjs/node_modules/core-js/internals/math-trunc.js.map +1 -0
  216. package/dist/cjs/node_modules/core-js/internals/microtask.js +93 -0
  217. package/dist/cjs/node_modules/core-js/internals/microtask.js.map +1 -0
  218. package/dist/cjs/node_modules/core-js/internals/new-promise-capability.js +28 -0
  219. package/dist/cjs/node_modules/core-js/internals/new-promise-capability.js.map +1 -0
  220. package/dist/cjs/node_modules/core-js/internals/not-a-regexp.js +16 -0
  221. package/dist/cjs/node_modules/core-js/internals/not-a-regexp.js.map +1 -0
  222. package/dist/cjs/node_modules/core-js/internals/object-create.js +98 -0
  223. package/dist/cjs/node_modules/core-js/internals/object-create.js.map +1 -0
  224. package/dist/cjs/node_modules/core-js/internals/object-define-properties.js +34 -0
  225. package/dist/cjs/node_modules/core-js/internals/object-define-properties.js.map +1 -0
  226. package/dist/cjs/node_modules/core-js/internals/object-define-property.js +55 -0
  227. package/dist/cjs/node_modules/core-js/internals/object-define-property.js.map +1 -0
  228. package/dist/cjs/node_modules/core-js/internals/object-get-own-property-descriptor.js +38 -0
  229. package/dist/cjs/node_modules/core-js/internals/object-get-own-property-descriptor.js.map +1 -0
  230. package/dist/cjs/node_modules/core-js/internals/object-get-own-property-names.js +20 -0
  231. package/dist/cjs/node_modules/core-js/internals/object-get-own-property-names.js.map +1 -0
  232. package/dist/cjs/node_modules/core-js/internals/object-get-own-property-symbols.js +9 -0
  233. package/dist/cjs/node_modules/core-js/internals/object-get-own-property-symbols.js.map +1 -0
  234. package/dist/cjs/node_modules/core-js/internals/object-get-prototype-of.js +32 -0
  235. package/dist/cjs/node_modules/core-js/internals/object-get-prototype-of.js.map +1 -0
  236. package/dist/cjs/node_modules/core-js/internals/object-is-prototype-of.js +10 -0
  237. package/dist/cjs/node_modules/core-js/internals/object-is-prototype-of.js.map +1 -0
  238. package/dist/cjs/node_modules/core-js/internals/object-keys-internal.js +31 -0
  239. package/dist/cjs/node_modules/core-js/internals/object-keys-internal.js.map +1 -0
  240. package/dist/cjs/node_modules/core-js/internals/object-keys.js +17 -0
  241. package/dist/cjs/node_modules/core-js/internals/object-keys.js.map +1 -0
  242. package/dist/cjs/node_modules/core-js/internals/object-property-is-enumerable.js +20 -0
  243. package/dist/cjs/node_modules/core-js/internals/object-property-is-enumerable.js.map +1 -0
  244. package/dist/cjs/node_modules/core-js/internals/object-set-prototype-of.js +38 -0
  245. package/dist/cjs/node_modules/core-js/internals/object-set-prototype-of.js.map +1 -0
  246. package/dist/cjs/node_modules/core-js/internals/ordinary-to-primitive.js +24 -0
  247. package/dist/cjs/node_modules/core-js/internals/ordinary-to-primitive.js.map +1 -0
  248. package/dist/cjs/node_modules/core-js/internals/own-keys.js +27 -0
  249. package/dist/cjs/node_modules/core-js/internals/own-keys.js.map +1 -0
  250. package/dist/cjs/node_modules/core-js/internals/path.js +10 -0
  251. package/dist/cjs/node_modules/core-js/internals/path.js.map +1 -0
  252. package/dist/cjs/node_modules/core-js/internals/perform.js +12 -0
  253. package/dist/cjs/node_modules/core-js/internals/perform.js.map +1 -0
  254. package/dist/cjs/node_modules/core-js/internals/promise-constructor-detection.js +57 -0
  255. package/dist/cjs/node_modules/core-js/internals/promise-constructor-detection.js.map +1 -0
  256. package/dist/cjs/node_modules/core-js/internals/promise-native-constructor.js +10 -0
  257. package/dist/cjs/node_modules/core-js/internals/promise-native-constructor.js.map +1 -0
  258. package/dist/cjs/node_modules/core-js/internals/promise-resolve.js +22 -0
  259. package/dist/cjs/node_modules/core-js/internals/promise-resolve.js.map +1 -0
  260. package/dist/cjs/node_modules/core-js/internals/promise-statics-incorrect-iteration.js +16 -0
  261. package/dist/cjs/node_modules/core-js/internals/promise-statics-incorrect-iteration.js.map +1 -0
  262. package/dist/cjs/node_modules/core-js/internals/queue.js +29 -0
  263. package/dist/cjs/node_modules/core-js/internals/queue.js.map +1 -0
  264. package/dist/cjs/node_modules/core-js/internals/regexp-exec-abstract.js +31 -0
  265. package/dist/cjs/node_modules/core-js/internals/regexp-exec-abstract.js.map +1 -0
  266. package/dist/cjs/node_modules/core-js/internals/regexp-exec.js +132 -0
  267. package/dist/cjs/node_modules/core-js/internals/regexp-exec.js.map +1 -0
  268. package/dist/cjs/node_modules/core-js/internals/regexp-flags-detection.js +54 -0
  269. package/dist/cjs/node_modules/core-js/internals/regexp-flags-detection.js.map +1 -0
  270. package/dist/cjs/node_modules/core-js/internals/regexp-flags.js +24 -0
  271. package/dist/cjs/node_modules/core-js/internals/regexp-flags.js.map +1 -0
  272. package/dist/cjs/node_modules/core-js/internals/regexp-get-flags.js +26 -0
  273. package/dist/cjs/node_modules/core-js/internals/regexp-get-flags.js.map +1 -0
  274. package/dist/cjs/node_modules/core-js/internals/regexp-sticky-helpers.js +37 -0
  275. package/dist/cjs/node_modules/core-js/internals/regexp-sticky-helpers.js.map +1 -0
  276. package/dist/cjs/node_modules/core-js/internals/regexp-unsupported-dot-all.js +18 -0
  277. package/dist/cjs/node_modules/core-js/internals/regexp-unsupported-dot-all.js.map +1 -0
  278. package/dist/cjs/node_modules/core-js/internals/regexp-unsupported-ncg.js +19 -0
  279. package/dist/cjs/node_modules/core-js/internals/regexp-unsupported-ncg.js.map +1 -0
  280. package/dist/cjs/node_modules/core-js/internals/require-object-coercible.js +17 -0
  281. package/dist/cjs/node_modules/core-js/internals/require-object-coercible.js.map +1 -0
  282. package/dist/cjs/node_modules/core-js/internals/safe-get-built-in.js +20 -0
  283. package/dist/cjs/node_modules/core-js/internals/safe-get-built-in.js.map +1 -0
  284. package/dist/cjs/node_modules/core-js/internals/set-species.js +27 -0
  285. package/dist/cjs/node_modules/core-js/internals/set-species.js.map +1 -0
  286. package/dist/cjs/node_modules/core-js/internals/set-to-string-tag.js +22 -0
  287. package/dist/cjs/node_modules/core-js/internals/set-to-string-tag.js.map +1 -0
  288. package/dist/cjs/node_modules/core-js/internals/shared-key.js +16 -0
  289. package/dist/cjs/node_modules/core-js/internals/shared-key.js.map +1 -0
  290. package/dist/cjs/node_modules/core-js/internals/shared-store.js +24 -0
  291. package/dist/cjs/node_modules/core-js/internals/shared-store.js.map +1 -0
  292. package/dist/cjs/node_modules/core-js/internals/shared.js +12 -0
  293. package/dist/cjs/node_modules/core-js/internals/shared.js.map +1 -0
  294. package/dist/cjs/node_modules/core-js/internals/species-constructor.js +24 -0
  295. package/dist/cjs/node_modules/core-js/internals/species-constructor.js.map +1 -0
  296. package/dist/cjs/node_modules/core-js/internals/string-multibyte.js +43 -0
  297. package/dist/cjs/node_modules/core-js/internals/string-multibyte.js.map +1 -0
  298. package/dist/cjs/node_modules/core-js/internals/string-trim-forced.js +24 -0
  299. package/dist/cjs/node_modules/core-js/internals/string-trim-forced.js.map +1 -0
  300. package/dist/cjs/node_modules/core-js/internals/string-trim.js +34 -0
  301. package/dist/cjs/node_modules/core-js/internals/string-trim.js.map +1 -0
  302. package/dist/cjs/node_modules/core-js/internals/symbol-constructor-detection.js +27 -0
  303. package/dist/cjs/node_modules/core-js/internals/symbol-constructor-detection.js.map +1 -0
  304. package/dist/cjs/node_modules/core-js/internals/task.js +132 -0
  305. package/dist/cjs/node_modules/core-js/internals/task.js.map +1 -0
  306. package/dist/cjs/node_modules/core-js/internals/to-absolute-index.js +19 -0
  307. package/dist/cjs/node_modules/core-js/internals/to-absolute-index.js.map +1 -0
  308. package/dist/cjs/node_modules/core-js/internals/to-indexed-object.js +15 -0
  309. package/dist/cjs/node_modules/core-js/internals/to-indexed-object.js.map +1 -0
  310. package/dist/cjs/node_modules/core-js/internals/to-integer-or-infinity.js +16 -0
  311. package/dist/cjs/node_modules/core-js/internals/to-integer-or-infinity.js.map +1 -0
  312. package/dist/cjs/node_modules/core-js/internals/to-length.js +17 -0
  313. package/dist/cjs/node_modules/core-js/internals/to-length.js.map +1 -0
  314. package/dist/cjs/node_modules/core-js/internals/to-object.js +16 -0
  315. package/dist/cjs/node_modules/core-js/internals/to-object.js.map +1 -0
  316. package/dist/cjs/node_modules/core-js/internals/to-primitive.js +37 -0
  317. package/dist/cjs/node_modules/core-js/internals/to-primitive.js.map +1 -0
  318. package/dist/cjs/node_modules/core-js/internals/to-property-key.js +17 -0
  319. package/dist/cjs/node_modules/core-js/internals/to-property-key.js.map +1 -0
  320. package/dist/cjs/node_modules/core-js/internals/to-string-tag-support.js +15 -0
  321. package/dist/cjs/node_modules/core-js/internals/to-string-tag-support.js.map +1 -0
  322. package/dist/cjs/node_modules/core-js/internals/to-string.js +15 -0
  323. package/dist/cjs/node_modules/core-js/internals/to-string.js.map +1 -0
  324. package/dist/cjs/node_modules/core-js/internals/try-to-string.js +14 -0
  325. package/dist/cjs/node_modules/core-js/internals/try-to-string.js.map +1 -0
  326. package/dist/cjs/node_modules/core-js/internals/uid.js +16 -0
  327. package/dist/cjs/node_modules/core-js/internals/uid.js.map +1 -0
  328. package/dist/cjs/node_modules/core-js/internals/use-symbol-as-uid.js +13 -0
  329. package/dist/cjs/node_modules/core-js/internals/use-symbol-as-uid.js.map +1 -0
  330. package/dist/cjs/node_modules/core-js/internals/v8-prototype-define-bug.js +20 -0
  331. package/dist/cjs/node_modules/core-js/internals/v8-prototype-define-bug.js.map +1 -0
  332. package/dist/cjs/node_modules/core-js/internals/validate-arguments-length.js +11 -0
  333. package/dist/cjs/node_modules/core-js/internals/validate-arguments-length.js.map +1 -0
  334. package/dist/cjs/node_modules/core-js/internals/weak-map-basic-detection.js +14 -0
  335. package/dist/cjs/node_modules/core-js/internals/weak-map-basic-detection.js.map +1 -0
  336. package/dist/cjs/node_modules/core-js/internals/well-known-symbol.js +30 -0
  337. package/dist/cjs/node_modules/core-js/internals/well-known-symbol.js.map +1 -0
  338. package/dist/cjs/node_modules/core-js/internals/whitespaces.js +8 -0
  339. package/dist/cjs/node_modules/core-js/internals/whitespaces.js.map +1 -0
  340. package/dist/cjs/node_modules/core-js/modules/es.array.index-of.js +30 -0
  341. package/dist/cjs/node_modules/core-js/modules/es.array.index-of.js.map +1 -0
  342. package/dist/cjs/node_modules/core-js/modules/es.array.iterator.js +75 -0
  343. package/dist/cjs/node_modules/core-js/modules/es.array.iterator.js.map +1 -0
  344. package/dist/cjs/node_modules/core-js/modules/es.array.reduce.js +28 -0
  345. package/dist/cjs/node_modules/core-js/modules/es.array.reduce.js.map +1 -0
  346. package/dist/cjs/node_modules/core-js/modules/es.array.reverse.js +25 -0
  347. package/dist/cjs/node_modules/core-js/modules/es.array.reverse.js.map +1 -0
  348. package/dist/cjs/node_modules/core-js/modules/es.promise.all.js +50 -0
  349. package/dist/cjs/node_modules/core-js/modules/es.promise.all.js.map +1 -0
  350. package/dist/cjs/node_modules/core-js/modules/es.promise.catch.js +34 -0
  351. package/dist/cjs/node_modules/core-js/modules/es.promise.catch.js.map +1 -0
  352. package/dist/cjs/node_modules/core-js/modules/es.promise.constructor.js +319 -0
  353. package/dist/cjs/node_modules/core-js/modules/es.promise.constructor.js.map +1 -0
  354. package/dist/cjs/node_modules/core-js/modules/es.promise.race.js +37 -0
  355. package/dist/cjs/node_modules/core-js/modules/es.promise.race.js.map +1 -0
  356. package/dist/cjs/node_modules/core-js/modules/es.promise.reject.js +22 -0
  357. package/dist/cjs/node_modules/core-js/modules/es.promise.reject.js.map +1 -0
  358. package/dist/cjs/node_modules/core-js/modules/es.promise.resolve.js +23 -0
  359. package/dist/cjs/node_modules/core-js/modules/es.promise.resolve.js.map +1 -0
  360. package/dist/cjs/node_modules/core-js/modules/es.regexp.exec.js +14 -0
  361. package/dist/cjs/node_modules/core-js/modules/es.regexp.exec.js.map +1 -0
  362. package/dist/cjs/node_modules/core-js/modules/es.regexp.to-string.js +35 -0
  363. package/dist/cjs/node_modules/core-js/modules/es.regexp.to-string.js.map +1 -0
  364. package/dist/cjs/node_modules/core-js/modules/es.string.ends-with.js +45 -0
  365. package/dist/cjs/node_modules/core-js/modules/es.string.ends-with.js.map +1 -0
  366. package/dist/cjs/node_modules/core-js/modules/es.string.includes.js +30 -0
  367. package/dist/cjs/node_modules/core-js/modules/es.string.includes.js.map +1 -0
  368. package/dist/cjs/node_modules/core-js/modules/es.string.match.js +69 -0
  369. package/dist/cjs/node_modules/core-js/modules/es.string.match.js.map +1 -0
  370. package/dist/cjs/node_modules/core-js/modules/es.string.replace.js +165 -0
  371. package/dist/cjs/node_modules/core-js/modules/es.string.replace.js.map +1 -0
  372. package/dist/cjs/node_modules/core-js/modules/es.string.split.js +128 -0
  373. package/dist/cjs/node_modules/core-js/modules/es.string.split.js.map +1 -0
  374. package/dist/cjs/node_modules/core-js/modules/es.string.starts-with.js +43 -0
  375. package/dist/cjs/node_modules/core-js/modules/es.string.starts-with.js.map +1 -0
  376. package/dist/cjs/node_modules/core-js/modules/es.string.trim.js +18 -0
  377. package/dist/cjs/node_modules/core-js/modules/es.string.trim.js.map +1 -0
  378. package/dist/cjs/node_modules/core-js/modules/web.dom-collections.iterator.js +47 -0
  379. package/dist/cjs/node_modules/core-js/modules/web.dom-collections.iterator.js.map +1 -0
  380. package/dist/cjs/node_modules/dompurify/dist/purify.es.js +1533 -0
  381. package/dist/cjs/node_modules/dompurify/dist/purify.es.js.map +1 -0
  382. package/dist/cjs/node_modules/fflate/esm/browser.js +807 -0
  383. package/dist/cjs/node_modules/fflate/esm/browser.js.map +1 -0
  384. package/dist/cjs/node_modules/html2canvas/dist/html2canvas.esm.js +7824 -0
  385. package/dist/cjs/node_modules/html2canvas/dist/html2canvas.esm.js.map +1 -0
  386. package/dist/cjs/node_modules/jspdf/dist/jspdf.es.min.js +358 -0
  387. package/dist/cjs/node_modules/jspdf/dist/jspdf.es.min.js.map +1 -0
  388. package/dist/cjs/node_modules/performance-now/lib/performance-now.js +46 -0
  389. package/dist/cjs/node_modules/performance-now/lib/performance-now.js.map +1 -0
  390. package/dist/cjs/node_modules/qrious/dist/qrious.js +2374 -0
  391. package/dist/cjs/node_modules/qrious/dist/qrious.js.map +1 -0
  392. package/dist/cjs/node_modules/raf/index.js +87 -0
  393. package/dist/cjs/node_modules/raf/index.js.map +1 -0
  394. package/dist/cjs/node_modules/rgbcolor/index.js +311 -0
  395. package/dist/cjs/node_modules/rgbcolor/index.js.map +1 -0
  396. package/dist/cjs/node_modules/stackblur-canvas/dist/stackblur-es.js +384 -0
  397. package/dist/cjs/node_modules/stackblur-canvas/dist/stackblur-es.js.map +1 -0
  398. package/dist/cjs/node_modules/svg-pathdata/lib/SVGPathData.module.js +23 -0
  399. package/dist/cjs/node_modules/svg-pathdata/lib/SVGPathData.module.js.map +1 -0
  400. package/dist/cjs/storage/templateStorage.js +154 -0
  401. package/dist/cjs/storage/templateStorage.js.map +1 -0
  402. package/dist/cjs/styles.css +1 -0
  403. package/dist/cjs/utils/styleUtils.js +98 -0
  404. package/dist/cjs/utils/styleUtils.js.map +1 -0
  405. package/dist/cjs/utils/validators.js +144 -0
  406. package/dist/cjs/utils/validators.js.map +1 -0
  407. package/dist/esm/_virtual/_commonjsHelpers.js +8 -0
  408. package/dist/esm/_virtual/_commonjsHelpers.js.map +1 -0
  409. package/dist/esm/_virtual/index.js +4 -0
  410. package/dist/esm/_virtual/index.js.map +1 -0
  411. package/dist/esm/_virtual/make-built-in.js +4 -0
  412. package/dist/esm/_virtual/make-built-in.js.map +1 -0
  413. package/dist/esm/_virtual/new-promise-capability.js +4 -0
  414. package/dist/esm/_virtual/new-promise-capability.js.map +1 -0
  415. package/dist/esm/_virtual/object-define-properties.js +4 -0
  416. package/dist/esm/_virtual/object-define-properties.js.map +1 -0
  417. package/dist/esm/_virtual/object-define-property.js +4 -0
  418. package/dist/esm/_virtual/object-define-property.js.map +1 -0
  419. package/dist/esm/_virtual/object-get-own-property-descriptor.js +4 -0
  420. package/dist/esm/_virtual/object-get-own-property-descriptor.js.map +1 -0
  421. package/dist/esm/_virtual/object-get-own-property-names.js +4 -0
  422. package/dist/esm/_virtual/object-get-own-property-names.js.map +1 -0
  423. package/dist/esm/_virtual/object-get-own-property-symbols.js +4 -0
  424. package/dist/esm/_virtual/object-get-own-property-symbols.js.map +1 -0
  425. package/dist/esm/_virtual/object-property-is-enumerable.js +4 -0
  426. package/dist/esm/_virtual/object-property-is-enumerable.js.map +1 -0
  427. package/dist/esm/_virtual/performance-now.js +4 -0
  428. package/dist/esm/_virtual/performance-now.js.map +1 -0
  429. package/dist/esm/_virtual/qrious.js +4 -0
  430. package/dist/esm/_virtual/qrious.js.map +1 -0
  431. package/dist/esm/_virtual/shared-store.js +4 -0
  432. package/dist/esm/_virtual/shared-store.js.map +1 -0
  433. package/dist/esm/components/IDCardDesigner.js +278 -0
  434. package/dist/esm/components/IDCardDesigner.js.map +1 -0
  435. package/dist/esm/components/IDCardGenerator.js +134 -0
  436. package/dist/esm/components/IDCardGenerator.js.map +1 -0
  437. package/dist/esm/components/IDCardPreview.js +163 -0
  438. package/dist/esm/components/IDCardPreview.js.map +1 -0
  439. package/dist/esm/core/exportUtils.js +151 -0
  440. package/dist/esm/core/exportUtils.js.map +1 -0
  441. package/dist/esm/core/qrUtils.js +60 -0
  442. package/dist/esm/core/qrUtils.js.map +1 -0
  443. package/dist/esm/hooks/useFieldMapping.js +146 -0
  444. package/dist/esm/hooks/useFieldMapping.js.map +1 -0
  445. package/dist/esm/hooks/useIDCardExport.js +79 -0
  446. package/dist/esm/hooks/useIDCardExport.js.map +1 -0
  447. package/dist/esm/hooks/useIDCardTemplate.js +153 -0
  448. package/dist/esm/hooks/useIDCardTemplate.js.map +1 -0
  449. package/dist/esm/index.js +12 -0
  450. package/dist/esm/index.js.map +1 -0
  451. package/dist/esm/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js +28 -0
  452. package/dist/esm/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js.map +1 -0
  453. package/dist/esm/node_modules/@babel/runtime/helpers/esm/defineProperty.js +13 -0
  454. package/dist/esm/node_modules/@babel/runtime/helpers/esm/defineProperty.js.map +1 -0
  455. package/dist/esm/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +15 -0
  456. package/dist/esm/node_modules/@babel/runtime/helpers/esm/toPrimitive.js.map +1 -0
  457. package/dist/esm/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +10 -0
  458. package/dist/esm/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js.map +1 -0
  459. package/dist/esm/node_modules/@babel/runtime/helpers/esm/typeof.js +12 -0
  460. package/dist/esm/node_modules/@babel/runtime/helpers/esm/typeof.js.map +1 -0
  461. package/dist/esm/node_modules/canvg/lib/index.es.js +6556 -0
  462. package/dist/esm/node_modules/canvg/lib/index.es.js.map +1 -0
  463. package/dist/esm/node_modules/core-js/internals/a-callable.js +16 -0
  464. package/dist/esm/node_modules/core-js/internals/a-callable.js.map +1 -0
  465. package/dist/esm/node_modules/core-js/internals/a-constructor.js +16 -0
  466. package/dist/esm/node_modules/core-js/internals/a-constructor.js.map +1 -0
  467. package/dist/esm/node_modules/core-js/internals/a-possible-prototype.js +14 -0
  468. package/dist/esm/node_modules/core-js/internals/a-possible-prototype.js.map +1 -0
  469. package/dist/esm/node_modules/core-js/internals/add-to-unscopables.js +28 -0
  470. package/dist/esm/node_modules/core-js/internals/add-to-unscopables.js.map +1 -0
  471. package/dist/esm/node_modules/core-js/internals/advance-string-index.js +12 -0
  472. package/dist/esm/node_modules/core-js/internals/advance-string-index.js.map +1 -0
  473. package/dist/esm/node_modules/core-js/internals/an-instance.js +13 -0
  474. package/dist/esm/node_modules/core-js/internals/an-instance.js.map +1 -0
  475. package/dist/esm/node_modules/core-js/internals/an-object.js +15 -0
  476. package/dist/esm/node_modules/core-js/internals/an-object.js.map +1 -0
  477. package/dist/esm/node_modules/core-js/internals/array-includes.js +37 -0
  478. package/dist/esm/node_modules/core-js/internals/array-includes.js.map +1 -0
  479. package/dist/esm/node_modules/core-js/internals/array-method-is-strict.js +14 -0
  480. package/dist/esm/node_modules/core-js/internals/array-method-is-strict.js.map +1 -0
  481. package/dist/esm/node_modules/core-js/internals/array-reduce.js +49 -0
  482. package/dist/esm/node_modules/core-js/internals/array-reduce.js.map +1 -0
  483. package/dist/esm/node_modules/core-js/internals/array-slice.js +8 -0
  484. package/dist/esm/node_modules/core-js/internals/array-slice.js.map +1 -0
  485. package/dist/esm/node_modules/core-js/internals/check-correctness-of-iteration.js +47 -0
  486. package/dist/esm/node_modules/core-js/internals/check-correctness-of-iteration.js.map +1 -0
  487. package/dist/esm/node_modules/core-js/internals/classof-raw.js +13 -0
  488. package/dist/esm/node_modules/core-js/internals/classof-raw.js.map +1 -0
  489. package/dist/esm/node_modules/core-js/internals/classof.js +37 -0
  490. package/dist/esm/node_modules/core-js/internals/classof.js.map +1 -0
  491. package/dist/esm/node_modules/core-js/internals/copy-constructor-properties.js +26 -0
  492. package/dist/esm/node_modules/core-js/internals/copy-constructor-properties.js.map +1 -0
  493. package/dist/esm/node_modules/core-js/internals/correct-is-regexp-logic.js +20 -0
  494. package/dist/esm/node_modules/core-js/internals/correct-is-regexp-logic.js.map +1 -0
  495. package/dist/esm/node_modules/core-js/internals/correct-prototype-getter.js +13 -0
  496. package/dist/esm/node_modules/core-js/internals/correct-prototype-getter.js.map +1 -0
  497. package/dist/esm/node_modules/core-js/internals/create-iter-result-object.js +8 -0
  498. package/dist/esm/node_modules/core-js/internals/create-iter-result-object.js.map +1 -0
  499. package/dist/esm/node_modules/core-js/internals/create-non-enumerable-property.js +18 -0
  500. package/dist/esm/node_modules/core-js/internals/create-non-enumerable-property.js.map +1 -0
  501. package/dist/esm/node_modules/core-js/internals/create-property-descriptor.js +11 -0
  502. package/dist/esm/node_modules/core-js/internals/create-property-descriptor.js.map +1 -0
  503. package/dist/esm/node_modules/core-js/internals/define-built-in-accessor.js +15 -0
  504. package/dist/esm/node_modules/core-js/internals/define-built-in-accessor.js.map +1 -0
  505. package/dist/esm/node_modules/core-js/internals/define-built-in.js +36 -0
  506. package/dist/esm/node_modules/core-js/internals/define-built-in.js.map +1 -0
  507. package/dist/esm/node_modules/core-js/internals/define-global-property.js +17 -0
  508. package/dist/esm/node_modules/core-js/internals/define-global-property.js.map +1 -0
  509. package/dist/esm/node_modules/core-js/internals/descriptors.js +12 -0
  510. package/dist/esm/node_modules/core-js/internals/descriptors.js.map +1 -0
  511. package/dist/esm/node_modules/core-js/internals/document-create-element.js +16 -0
  512. package/dist/esm/node_modules/core-js/internals/document-create-element.js.map +1 -0
  513. package/dist/esm/node_modules/core-js/internals/dom-iterables.js +38 -0
  514. package/dist/esm/node_modules/core-js/internals/dom-iterables.js.map +1 -0
  515. package/dist/esm/node_modules/core-js/internals/dom-token-list-prototype.js +12 -0
  516. package/dist/esm/node_modules/core-js/internals/dom-token-list-prototype.js.map +1 -0
  517. package/dist/esm/node_modules/core-js/internals/enum-bug-keys.js +13 -0
  518. package/dist/esm/node_modules/core-js/internals/enum-bug-keys.js.map +1 -0
  519. package/dist/esm/node_modules/core-js/internals/environment-is-ios-pebble.js +8 -0
  520. package/dist/esm/node_modules/core-js/internals/environment-is-ios-pebble.js.map +1 -0
  521. package/dist/esm/node_modules/core-js/internals/environment-is-ios.js +9 -0
  522. package/dist/esm/node_modules/core-js/internals/environment-is-ios.js.map +1 -0
  523. package/dist/esm/node_modules/core-js/internals/environment-is-node.js +8 -0
  524. package/dist/esm/node_modules/core-js/internals/environment-is-node.js.map +1 -0
  525. package/dist/esm/node_modules/core-js/internals/environment-is-webos-webkit.js +8 -0
  526. package/dist/esm/node_modules/core-js/internals/environment-is-webos-webkit.js.map +1 -0
  527. package/dist/esm/node_modules/core-js/internals/environment-user-agent.js +11 -0
  528. package/dist/esm/node_modules/core-js/internals/environment-user-agent.js.map +1 -0
  529. package/dist/esm/node_modules/core-js/internals/environment-v8-version.js +33 -0
  530. package/dist/esm/node_modules/core-js/internals/environment-v8-version.js.map +1 -0
  531. package/dist/esm/node_modules/core-js/internals/environment.js +27 -0
  532. package/dist/esm/node_modules/core-js/internals/environment.js.map +1 -0
  533. package/dist/esm/node_modules/core-js/internals/export.js +66 -0
  534. package/dist/esm/node_modules/core-js/internals/export.js.map +1 -0
  535. package/dist/esm/node_modules/core-js/internals/fails.js +10 -0
  536. package/dist/esm/node_modules/core-js/internals/fails.js.map +1 -0
  537. package/dist/esm/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js +88 -0
  538. package/dist/esm/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js.map +1 -0
  539. package/dist/esm/node_modules/core-js/internals/function-apply.js +15 -0
  540. package/dist/esm/node_modules/core-js/internals/function-apply.js.map +1 -0
  541. package/dist/esm/node_modules/core-js/internals/function-bind-context.js +20 -0
  542. package/dist/esm/node_modules/core-js/internals/function-bind-context.js.map +1 -0
  543. package/dist/esm/node_modules/core-js/internals/function-bind-native.js +13 -0
  544. package/dist/esm/node_modules/core-js/internals/function-bind-native.js.map +1 -0
  545. package/dist/esm/node_modules/core-js/internals/function-call.js +12 -0
  546. package/dist/esm/node_modules/core-js/internals/function-call.js.map +1 -0
  547. package/dist/esm/node_modules/core-js/internals/function-name.js +22 -0
  548. package/dist/esm/node_modules/core-js/internals/function-name.js.map +1 -0
  549. package/dist/esm/node_modules/core-js/internals/function-uncurry-this-accessor.js +15 -0
  550. package/dist/esm/node_modules/core-js/internals/function-uncurry-this-accessor.js.map +1 -0
  551. package/dist/esm/node_modules/core-js/internals/function-uncurry-this-clause.js +15 -0
  552. package/dist/esm/node_modules/core-js/internals/function-uncurry-this-clause.js.map +1 -0
  553. package/dist/esm/node_modules/core-js/internals/function-uncurry-this.js +17 -0
  554. package/dist/esm/node_modules/core-js/internals/function-uncurry-this.js.map +1 -0
  555. package/dist/esm/node_modules/core-js/internals/get-built-in.js +16 -0
  556. package/dist/esm/node_modules/core-js/internals/get-built-in.js.map +1 -0
  557. package/dist/esm/node_modules/core-js/internals/get-iterator-method.js +22 -0
  558. package/dist/esm/node_modules/core-js/internals/get-iterator-method.js.map +1 -0
  559. package/dist/esm/node_modules/core-js/internals/get-iterator.js +22 -0
  560. package/dist/esm/node_modules/core-js/internals/get-iterator.js.map +1 -0
  561. package/dist/esm/node_modules/core-js/internals/get-method.js +15 -0
  562. package/dist/esm/node_modules/core-js/internals/get-method.js.map +1 -0
  563. package/dist/esm/node_modules/core-js/internals/get-substitution.js +51 -0
  564. package/dist/esm/node_modules/core-js/internals/get-substitution.js.map +1 -0
  565. package/dist/esm/node_modules/core-js/internals/global-this.js +20 -0
  566. package/dist/esm/node_modules/core-js/internals/global-this.js.map +1 -0
  567. package/dist/esm/node_modules/core-js/internals/has-own-property.js +17 -0
  568. package/dist/esm/node_modules/core-js/internals/has-own-property.js.map +1 -0
  569. package/dist/esm/node_modules/core-js/internals/hidden-keys.js +4 -0
  570. package/dist/esm/node_modules/core-js/internals/hidden-keys.js.map +1 -0
  571. package/dist/esm/node_modules/core-js/internals/host-report-errors.js +9 -0
  572. package/dist/esm/node_modules/core-js/internals/host-report-errors.js.map +1 -0
  573. package/dist/esm/node_modules/core-js/internals/html.js +8 -0
  574. package/dist/esm/node_modules/core-js/internals/html.js.map +1 -0
  575. package/dist/esm/node_modules/core-js/internals/ie8-dom-define.js +18 -0
  576. package/dist/esm/node_modules/core-js/internals/ie8-dom-define.js.map +1 -0
  577. package/dist/esm/node_modules/core-js/internals/indexed-object.js +22 -0
  578. package/dist/esm/node_modules/core-js/internals/indexed-object.js.map +1 -0
  579. package/dist/esm/node_modules/core-js/internals/inspect-source.js +21 -0
  580. package/dist/esm/node_modules/core-js/internals/inspect-source.js.map +1 -0
  581. package/dist/esm/node_modules/core-js/internals/internal-state.js +82 -0
  582. package/dist/esm/node_modules/core-js/internals/internal-state.js.map +1 -0
  583. package/dist/esm/node_modules/core-js/internals/is-array-iterator-method.js +16 -0
  584. package/dist/esm/node_modules/core-js/internals/is-array-iterator-method.js.map +1 -0
  585. package/dist/esm/node_modules/core-js/internals/is-array.js +13 -0
  586. package/dist/esm/node_modules/core-js/internals/is-array.js.map +1 -0
  587. package/dist/esm/node_modules/core-js/internals/is-callable.js +14 -0
  588. package/dist/esm/node_modules/core-js/internals/is-callable.js.map +1 -0
  589. package/dist/esm/node_modules/core-js/internals/is-constructor.js +61 -0
  590. package/dist/esm/node_modules/core-js/internals/is-constructor.js.map +1 -0
  591. package/dist/esm/node_modules/core-js/internals/is-forced.js +28 -0
  592. package/dist/esm/node_modules/core-js/internals/is-forced.js.map +1 -0
  593. package/dist/esm/node_modules/core-js/internals/is-null-or-undefined.js +8 -0
  594. package/dist/esm/node_modules/core-js/internals/is-null-or-undefined.js.map +1 -0
  595. package/dist/esm/node_modules/core-js/internals/is-object.js +10 -0
  596. package/dist/esm/node_modules/core-js/internals/is-object.js.map +1 -0
  597. package/dist/esm/node_modules/core-js/internals/is-possible-prototype.js +10 -0
  598. package/dist/esm/node_modules/core-js/internals/is-possible-prototype.js.map +1 -0
  599. package/dist/esm/node_modules/core-js/internals/is-regexp.js +19 -0
  600. package/dist/esm/node_modules/core-js/internals/is-regexp.js.map +1 -0
  601. package/dist/esm/node_modules/core-js/internals/is-symbol.js +21 -0
  602. package/dist/esm/node_modules/core-js/internals/is-symbol.js.map +1 -0
  603. package/dist/esm/node_modules/core-js/internals/iterate.js +82 -0
  604. package/dist/esm/node_modules/core-js/internals/iterate.js.map +1 -0
  605. package/dist/esm/node_modules/core-js/internals/iterator-close.js +30 -0
  606. package/dist/esm/node_modules/core-js/internals/iterator-close.js.map +1 -0
  607. package/dist/esm/node_modules/core-js/internals/iterator-create-constructor.js +24 -0
  608. package/dist/esm/node_modules/core-js/internals/iterator-create-constructor.js.map +1 -0
  609. package/dist/esm/node_modules/core-js/internals/iterator-define.js +116 -0
  610. package/dist/esm/node_modules/core-js/internals/iterator-define.js.map +1 -0
  611. package/dist/esm/node_modules/core-js/internals/iterators-core.js +56 -0
  612. package/dist/esm/node_modules/core-js/internals/iterators-core.js.map +1 -0
  613. package/dist/esm/node_modules/core-js/internals/iterators.js +4 -0
  614. package/dist/esm/node_modules/core-js/internals/iterators.js.map +1 -0
  615. package/dist/esm/node_modules/core-js/internals/length-of-array-like.js +12 -0
  616. package/dist/esm/node_modules/core-js/internals/length-of-array-like.js.map +1 -0
  617. package/dist/esm/node_modules/core-js/internals/make-built-in.js +69 -0
  618. package/dist/esm/node_modules/core-js/internals/make-built-in.js.map +1 -0
  619. package/dist/esm/node_modules/core-js/internals/math-trunc.js +13 -0
  620. package/dist/esm/node_modules/core-js/internals/math-trunc.js.map +1 -0
  621. package/dist/esm/node_modules/core-js/internals/microtask.js +91 -0
  622. package/dist/esm/node_modules/core-js/internals/microtask.js.map +1 -0
  623. package/dist/esm/node_modules/core-js/internals/new-promise-capability.js +26 -0
  624. package/dist/esm/node_modules/core-js/internals/new-promise-capability.js.map +1 -0
  625. package/dist/esm/node_modules/core-js/internals/not-a-regexp.js +14 -0
  626. package/dist/esm/node_modules/core-js/internals/not-a-regexp.js.map +1 -0
  627. package/dist/esm/node_modules/core-js/internals/object-create.js +96 -0
  628. package/dist/esm/node_modules/core-js/internals/object-create.js.map +1 -0
  629. package/dist/esm/node_modules/core-js/internals/object-define-properties.js +32 -0
  630. package/dist/esm/node_modules/core-js/internals/object-define-properties.js.map +1 -0
  631. package/dist/esm/node_modules/core-js/internals/object-define-property.js +53 -0
  632. package/dist/esm/node_modules/core-js/internals/object-define-property.js.map +1 -0
  633. package/dist/esm/node_modules/core-js/internals/object-get-own-property-descriptor.js +36 -0
  634. package/dist/esm/node_modules/core-js/internals/object-get-own-property-descriptor.js.map +1 -0
  635. package/dist/esm/node_modules/core-js/internals/object-get-own-property-names.js +18 -0
  636. package/dist/esm/node_modules/core-js/internals/object-get-own-property-names.js.map +1 -0
  637. package/dist/esm/node_modules/core-js/internals/object-get-own-property-symbols.js +7 -0
  638. package/dist/esm/node_modules/core-js/internals/object-get-own-property-symbols.js.map +1 -0
  639. package/dist/esm/node_modules/core-js/internals/object-get-prototype-of.js +30 -0
  640. package/dist/esm/node_modules/core-js/internals/object-get-prototype-of.js.map +1 -0
  641. package/dist/esm/node_modules/core-js/internals/object-is-prototype-of.js +8 -0
  642. package/dist/esm/node_modules/core-js/internals/object-is-prototype-of.js.map +1 -0
  643. package/dist/esm/node_modules/core-js/internals/object-keys-internal.js +29 -0
  644. package/dist/esm/node_modules/core-js/internals/object-keys-internal.js.map +1 -0
  645. package/dist/esm/node_modules/core-js/internals/object-keys.js +15 -0
  646. package/dist/esm/node_modules/core-js/internals/object-keys.js.map +1 -0
  647. package/dist/esm/node_modules/core-js/internals/object-property-is-enumerable.js +18 -0
  648. package/dist/esm/node_modules/core-js/internals/object-property-is-enumerable.js.map +1 -0
  649. package/dist/esm/node_modules/core-js/internals/object-set-prototype-of.js +36 -0
  650. package/dist/esm/node_modules/core-js/internals/object-set-prototype-of.js.map +1 -0
  651. package/dist/esm/node_modules/core-js/internals/ordinary-to-primitive.js +22 -0
  652. package/dist/esm/node_modules/core-js/internals/ordinary-to-primitive.js.map +1 -0
  653. package/dist/esm/node_modules/core-js/internals/own-keys.js +25 -0
  654. package/dist/esm/node_modules/core-js/internals/own-keys.js.map +1 -0
  655. package/dist/esm/node_modules/core-js/internals/path.js +8 -0
  656. package/dist/esm/node_modules/core-js/internals/path.js.map +1 -0
  657. package/dist/esm/node_modules/core-js/internals/perform.js +10 -0
  658. package/dist/esm/node_modules/core-js/internals/perform.js.map +1 -0
  659. package/dist/esm/node_modules/core-js/internals/promise-constructor-detection.js +55 -0
  660. package/dist/esm/node_modules/core-js/internals/promise-constructor-detection.js.map +1 -0
  661. package/dist/esm/node_modules/core-js/internals/promise-native-constructor.js +8 -0
  662. package/dist/esm/node_modules/core-js/internals/promise-native-constructor.js.map +1 -0
  663. package/dist/esm/node_modules/core-js/internals/promise-resolve.js +20 -0
  664. package/dist/esm/node_modules/core-js/internals/promise-resolve.js.map +1 -0
  665. package/dist/esm/node_modules/core-js/internals/promise-statics-incorrect-iteration.js +14 -0
  666. package/dist/esm/node_modules/core-js/internals/promise-statics-incorrect-iteration.js.map +1 -0
  667. package/dist/esm/node_modules/core-js/internals/queue.js +27 -0
  668. package/dist/esm/node_modules/core-js/internals/queue.js.map +1 -0
  669. package/dist/esm/node_modules/core-js/internals/regexp-exec-abstract.js +29 -0
  670. package/dist/esm/node_modules/core-js/internals/regexp-exec-abstract.js.map +1 -0
  671. package/dist/esm/node_modules/core-js/internals/regexp-exec.js +130 -0
  672. package/dist/esm/node_modules/core-js/internals/regexp-exec.js.map +1 -0
  673. package/dist/esm/node_modules/core-js/internals/regexp-flags-detection.js +52 -0
  674. package/dist/esm/node_modules/core-js/internals/regexp-flags-detection.js.map +1 -0
  675. package/dist/esm/node_modules/core-js/internals/regexp-flags.js +22 -0
  676. package/dist/esm/node_modules/core-js/internals/regexp-flags.js.map +1 -0
  677. package/dist/esm/node_modules/core-js/internals/regexp-get-flags.js +24 -0
  678. package/dist/esm/node_modules/core-js/internals/regexp-get-flags.js.map +1 -0
  679. package/dist/esm/node_modules/core-js/internals/regexp-sticky-helpers.js +35 -0
  680. package/dist/esm/node_modules/core-js/internals/regexp-sticky-helpers.js.map +1 -0
  681. package/dist/esm/node_modules/core-js/internals/regexp-unsupported-dot-all.js +16 -0
  682. package/dist/esm/node_modules/core-js/internals/regexp-unsupported-dot-all.js.map +1 -0
  683. package/dist/esm/node_modules/core-js/internals/regexp-unsupported-ncg.js +17 -0
  684. package/dist/esm/node_modules/core-js/internals/regexp-unsupported-ncg.js.map +1 -0
  685. package/dist/esm/node_modules/core-js/internals/require-object-coercible.js +15 -0
  686. package/dist/esm/node_modules/core-js/internals/require-object-coercible.js.map +1 -0
  687. package/dist/esm/node_modules/core-js/internals/safe-get-built-in.js +18 -0
  688. package/dist/esm/node_modules/core-js/internals/safe-get-built-in.js.map +1 -0
  689. package/dist/esm/node_modules/core-js/internals/set-species.js +25 -0
  690. package/dist/esm/node_modules/core-js/internals/set-species.js.map +1 -0
  691. package/dist/esm/node_modules/core-js/internals/set-to-string-tag.js +20 -0
  692. package/dist/esm/node_modules/core-js/internals/set-to-string-tag.js.map +1 -0
  693. package/dist/esm/node_modules/core-js/internals/shared-key.js +14 -0
  694. package/dist/esm/node_modules/core-js/internals/shared-key.js.map +1 -0
  695. package/dist/esm/node_modules/core-js/internals/shared-store.js +22 -0
  696. package/dist/esm/node_modules/core-js/internals/shared-store.js.map +1 -0
  697. package/dist/esm/node_modules/core-js/internals/shared.js +10 -0
  698. package/dist/esm/node_modules/core-js/internals/shared.js.map +1 -0
  699. package/dist/esm/node_modules/core-js/internals/species-constructor.js +22 -0
  700. package/dist/esm/node_modules/core-js/internals/species-constructor.js.map +1 -0
  701. package/dist/esm/node_modules/core-js/internals/string-multibyte.js +41 -0
  702. package/dist/esm/node_modules/core-js/internals/string-multibyte.js.map +1 -0
  703. package/dist/esm/node_modules/core-js/internals/string-trim-forced.js +22 -0
  704. package/dist/esm/node_modules/core-js/internals/string-trim-forced.js.map +1 -0
  705. package/dist/esm/node_modules/core-js/internals/string-trim.js +32 -0
  706. package/dist/esm/node_modules/core-js/internals/string-trim.js.map +1 -0
  707. package/dist/esm/node_modules/core-js/internals/symbol-constructor-detection.js +25 -0
  708. package/dist/esm/node_modules/core-js/internals/symbol-constructor-detection.js.map +1 -0
  709. package/dist/esm/node_modules/core-js/internals/task.js +130 -0
  710. package/dist/esm/node_modules/core-js/internals/task.js.map +1 -0
  711. package/dist/esm/node_modules/core-js/internals/to-absolute-index.js +17 -0
  712. package/dist/esm/node_modules/core-js/internals/to-absolute-index.js.map +1 -0
  713. package/dist/esm/node_modules/core-js/internals/to-indexed-object.js +13 -0
  714. package/dist/esm/node_modules/core-js/internals/to-indexed-object.js.map +1 -0
  715. package/dist/esm/node_modules/core-js/internals/to-integer-or-infinity.js +14 -0
  716. package/dist/esm/node_modules/core-js/internals/to-integer-or-infinity.js.map +1 -0
  717. package/dist/esm/node_modules/core-js/internals/to-length.js +15 -0
  718. package/dist/esm/node_modules/core-js/internals/to-length.js.map +1 -0
  719. package/dist/esm/node_modules/core-js/internals/to-object.js +14 -0
  720. package/dist/esm/node_modules/core-js/internals/to-object.js.map +1 -0
  721. package/dist/esm/node_modules/core-js/internals/to-primitive.js +35 -0
  722. package/dist/esm/node_modules/core-js/internals/to-primitive.js.map +1 -0
  723. package/dist/esm/node_modules/core-js/internals/to-property-key.js +15 -0
  724. package/dist/esm/node_modules/core-js/internals/to-property-key.js.map +1 -0
  725. package/dist/esm/node_modules/core-js/internals/to-string-tag-support.js +13 -0
  726. package/dist/esm/node_modules/core-js/internals/to-string-tag-support.js.map +1 -0
  727. package/dist/esm/node_modules/core-js/internals/to-string.js +13 -0
  728. package/dist/esm/node_modules/core-js/internals/to-string.js.map +1 -0
  729. package/dist/esm/node_modules/core-js/internals/try-to-string.js +12 -0
  730. package/dist/esm/node_modules/core-js/internals/try-to-string.js.map +1 -0
  731. package/dist/esm/node_modules/core-js/internals/uid.js +14 -0
  732. package/dist/esm/node_modules/core-js/internals/uid.js.map +1 -0
  733. package/dist/esm/node_modules/core-js/internals/use-symbol-as-uid.js +11 -0
  734. package/dist/esm/node_modules/core-js/internals/use-symbol-as-uid.js.map +1 -0
  735. package/dist/esm/node_modules/core-js/internals/v8-prototype-define-bug.js +18 -0
  736. package/dist/esm/node_modules/core-js/internals/v8-prototype-define-bug.js.map +1 -0
  737. package/dist/esm/node_modules/core-js/internals/validate-arguments-length.js +9 -0
  738. package/dist/esm/node_modules/core-js/internals/validate-arguments-length.js.map +1 -0
  739. package/dist/esm/node_modules/core-js/internals/weak-map-basic-detection.js +12 -0
  740. package/dist/esm/node_modules/core-js/internals/weak-map-basic-detection.js.map +1 -0
  741. package/dist/esm/node_modules/core-js/internals/well-known-symbol.js +28 -0
  742. package/dist/esm/node_modules/core-js/internals/well-known-symbol.js.map +1 -0
  743. package/dist/esm/node_modules/core-js/internals/whitespaces.js +6 -0
  744. package/dist/esm/node_modules/core-js/internals/whitespaces.js.map +1 -0
  745. package/dist/esm/node_modules/core-js/modules/es.array.index-of.js +28 -0
  746. package/dist/esm/node_modules/core-js/modules/es.array.index-of.js.map +1 -0
  747. package/dist/esm/node_modules/core-js/modules/es.array.iterator.js +73 -0
  748. package/dist/esm/node_modules/core-js/modules/es.array.iterator.js.map +1 -0
  749. package/dist/esm/node_modules/core-js/modules/es.array.reduce.js +26 -0
  750. package/dist/esm/node_modules/core-js/modules/es.array.reduce.js.map +1 -0
  751. package/dist/esm/node_modules/core-js/modules/es.array.reverse.js +23 -0
  752. package/dist/esm/node_modules/core-js/modules/es.array.reverse.js.map +1 -0
  753. package/dist/esm/node_modules/core-js/modules/es.promise.all.js +48 -0
  754. package/dist/esm/node_modules/core-js/modules/es.promise.all.js.map +1 -0
  755. package/dist/esm/node_modules/core-js/modules/es.promise.catch.js +32 -0
  756. package/dist/esm/node_modules/core-js/modules/es.promise.catch.js.map +1 -0
  757. package/dist/esm/node_modules/core-js/modules/es.promise.constructor.js +317 -0
  758. package/dist/esm/node_modules/core-js/modules/es.promise.constructor.js.map +1 -0
  759. package/dist/esm/node_modules/core-js/modules/es.promise.race.js +35 -0
  760. package/dist/esm/node_modules/core-js/modules/es.promise.race.js.map +1 -0
  761. package/dist/esm/node_modules/core-js/modules/es.promise.reject.js +20 -0
  762. package/dist/esm/node_modules/core-js/modules/es.promise.reject.js.map +1 -0
  763. package/dist/esm/node_modules/core-js/modules/es.promise.resolve.js +21 -0
  764. package/dist/esm/node_modules/core-js/modules/es.promise.resolve.js.map +1 -0
  765. package/dist/esm/node_modules/core-js/modules/es.regexp.exec.js +12 -0
  766. package/dist/esm/node_modules/core-js/modules/es.regexp.exec.js.map +1 -0
  767. package/dist/esm/node_modules/core-js/modules/es.regexp.to-string.js +33 -0
  768. package/dist/esm/node_modules/core-js/modules/es.regexp.to-string.js.map +1 -0
  769. package/dist/esm/node_modules/core-js/modules/es.string.ends-with.js +43 -0
  770. package/dist/esm/node_modules/core-js/modules/es.string.ends-with.js.map +1 -0
  771. package/dist/esm/node_modules/core-js/modules/es.string.includes.js +28 -0
  772. package/dist/esm/node_modules/core-js/modules/es.string.includes.js.map +1 -0
  773. package/dist/esm/node_modules/core-js/modules/es.string.match.js +67 -0
  774. package/dist/esm/node_modules/core-js/modules/es.string.match.js.map +1 -0
  775. package/dist/esm/node_modules/core-js/modules/es.string.replace.js +163 -0
  776. package/dist/esm/node_modules/core-js/modules/es.string.replace.js.map +1 -0
  777. package/dist/esm/node_modules/core-js/modules/es.string.split.js +126 -0
  778. package/dist/esm/node_modules/core-js/modules/es.string.split.js.map +1 -0
  779. package/dist/esm/node_modules/core-js/modules/es.string.starts-with.js +41 -0
  780. package/dist/esm/node_modules/core-js/modules/es.string.starts-with.js.map +1 -0
  781. package/dist/esm/node_modules/core-js/modules/es.string.trim.js +16 -0
  782. package/dist/esm/node_modules/core-js/modules/es.string.trim.js.map +1 -0
  783. package/dist/esm/node_modules/core-js/modules/web.dom-collections.iterator.js +45 -0
  784. package/dist/esm/node_modules/core-js/modules/web.dom-collections.iterator.js.map +1 -0
  785. package/dist/esm/node_modules/dompurify/dist/purify.es.js +1531 -0
  786. package/dist/esm/node_modules/dompurify/dist/purify.es.js.map +1 -0
  787. package/dist/esm/node_modules/fflate/esm/browser.js +804 -0
  788. package/dist/esm/node_modules/fflate/esm/browser.js.map +1 -0
  789. package/dist/esm/node_modules/html2canvas/dist/html2canvas.esm.js +7822 -0
  790. package/dist/esm/node_modules/html2canvas/dist/html2canvas.esm.js.map +1 -0
  791. package/dist/esm/node_modules/jspdf/dist/jspdf.es.min.js +337 -0
  792. package/dist/esm/node_modules/jspdf/dist/jspdf.es.min.js.map +1 -0
  793. package/dist/esm/node_modules/performance-now/lib/performance-now.js +44 -0
  794. package/dist/esm/node_modules/performance-now/lib/performance-now.js.map +1 -0
  795. package/dist/esm/node_modules/qrious/dist/qrious.js +2372 -0
  796. package/dist/esm/node_modules/qrious/dist/qrious.js.map +1 -0
  797. package/dist/esm/node_modules/raf/index.js +85 -0
  798. package/dist/esm/node_modules/raf/index.js.map +1 -0
  799. package/dist/esm/node_modules/rgbcolor/index.js +309 -0
  800. package/dist/esm/node_modules/rgbcolor/index.js.map +1 -0
  801. package/dist/esm/node_modules/stackblur-canvas/dist/stackblur-es.js +380 -0
  802. package/dist/esm/node_modules/stackblur-canvas/dist/stackblur-es.js.map +1 -0
  803. package/dist/esm/node_modules/svg-pathdata/lib/SVGPathData.module.js +18 -0
  804. package/dist/esm/node_modules/svg-pathdata/lib/SVGPathData.module.js.map +1 -0
  805. package/dist/esm/storage/templateStorage.js +144 -0
  806. package/dist/esm/storage/templateStorage.js.map +1 -0
  807. package/dist/esm/styles.css +1 -0
  808. package/dist/esm/utils/styleUtils.js +91 -0
  809. package/dist/esm/utils/styleUtils.js.map +1 -0
  810. package/dist/esm/utils/validators.js +139 -0
  811. package/dist/esm/utils/validators.js.map +1 -0
  812. package/dist/types/components/IDCardDesigner.d.ts +18 -0
  813. package/dist/types/components/IDCardGenerator.d.ts +19 -0
  814. package/dist/types/components/IDCardPreview.d.ts +15 -0
  815. package/dist/types/core/exportUtils.d.ts +34 -0
  816. package/dist/types/core/qrUtils.d.ts +27 -0
  817. package/dist/types/hooks/useFieldMapping.d.ts +10 -0
  818. package/dist/types/hooks/useIDCardExport.d.ts +10 -0
  819. package/dist/types/hooks/useIDCardTemplate.d.ts +10 -0
  820. package/dist/types/index.d.ts +33 -0
  821. package/dist/types/storage/templateStorage.d.ts +53 -0
  822. package/dist/types/types/index.d.ts +235 -0
  823. package/dist/types/utils/styleUtils.d.ts +34 -0
  824. package/dist/types/utils/validators.d.ts +27 -0
  825. package/package.json +65 -0
@@ -0,0 +1,134 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useMemo } from 'react';
3
+ import { positionToStyle, fieldStyleToCSS } from '../utils/styleUtils.js';
4
+ import { generateQrCodeFromFields } from '../core/qrUtils.js';
5
+
6
+ /**
7
+ * IDCardGenerator - Renders a completed ID card
8
+ *
9
+ * Takes a template and user data, then renders the filled card.
10
+ * This is the component used to display actual ID cards for individual users.
11
+ *
12
+ * Example:
13
+ * ```tsx
14
+ * <IDCardGenerator
15
+ * template={myTemplate}
16
+ * data={{ name: 'John Doe', photo: '...' }}
17
+ * side="front"
18
+ * />
19
+ * ```
20
+ */
21
+ const IDCardGenerator = ({ template, data, side = 'front', scale = 1, className = '', style = {}, onFieldClick, editable = false, }) => {
22
+ // Get fields for the current side only
23
+ const fieldsToRender = useMemo(() => {
24
+ return template.fields.filter((field) => field.side === side);
25
+ }, [template.fields, side]);
26
+ // Get background for current side
27
+ const backgroundImage = side === 'front' ? template.backgrounds.front : template.backgrounds.back;
28
+ // Render a single field
29
+ const renderField = (field) => {
30
+ const posStyle = positionToStyle(field.position);
31
+ const fieldStyle = fieldStyleToCSS(field.style);
32
+ const combinedStyle = {
33
+ ...posStyle,
34
+ ...fieldStyle,
35
+ zIndex: field.zIndex || 1,
36
+ boxSizing: 'border-box',
37
+ overflow: 'hidden',
38
+ cursor: editable ? 'pointer' : 'default',
39
+ };
40
+ const handleClick = (e) => {
41
+ if (onFieldClick) {
42
+ e.stopPropagation();
43
+ onFieldClick(field);
44
+ }
45
+ };
46
+ const value = getFieldValue(field, data);
47
+ switch (field.type) {
48
+ case 'text':
49
+ return (jsxs("div", { id: field.id, style: combinedStyle, onClick: handleClick, className: "idcard-field idcard-field-text", children: [field.label && (jsx("span", { className: "idcard-field-label", style: { fontSize: '0.8em', display: 'block' }, children: field.label })), jsx("span", { className: "idcard-field-value", children: String(value || field.placeholder || '') })] }, field.id));
50
+ case 'label':
51
+ return (jsx("div", { id: field.id, style: combinedStyle, onClick: handleClick, className: "idcard-field idcard-field-label", children: field.staticText || field.label || '' }, field.id));
52
+ case 'image':
53
+ return (jsx("div", { id: field.id, style: {
54
+ ...combinedStyle,
55
+ display: 'flex',
56
+ alignItems: 'center',
57
+ justifyContent: 'center',
58
+ }, onClick: handleClick, className: "idcard-field idcard-field-image", children: value ? (jsx("img", { src: String(value), alt: field.label || 'Image', style: {
59
+ width: '100%',
60
+ height: '100%',
61
+ objectFit: 'cover',
62
+ objectPosition: 'center top',
63
+ } })) : (jsx("div", { style: {
64
+ width: '100%',
65
+ height: '100%',
66
+ backgroundColor: '#e0e0e0',
67
+ display: 'flex',
68
+ alignItems: 'center',
69
+ justifyContent: 'center',
70
+ fontSize: '10px',
71
+ color: '#666',
72
+ }, children: field.label || 'Photo' })) }, field.id));
73
+ case 'qrcode':
74
+ const qrDataUrl = field.qrFields
75
+ ? generateQrCodeFromFields(data, field.qrFields, Math.min(field.position.width, field.position.height) * 2)
76
+ : '';
77
+ return (jsx("div", { id: field.id, style: {
78
+ ...combinedStyle,
79
+ backgroundColor: '#fff',
80
+ display: 'flex',
81
+ alignItems: 'center',
82
+ justifyContent: 'center',
83
+ }, onClick: handleClick, className: "idcard-field idcard-field-qrcode", children: qrDataUrl ? (jsx("img", { src: qrDataUrl, alt: "QR Code", style: { width: '100%', height: '100%', objectFit: 'contain' } })) : (jsx("div", { style: {
84
+ width: '100%',
85
+ height: '100%',
86
+ backgroundColor: '#f0f0f0',
87
+ display: 'flex',
88
+ alignItems: 'center',
89
+ justifyContent: 'center',
90
+ fontSize: '10px',
91
+ color: '#666',
92
+ }, children: "QR Code" })) }, field.id));
93
+ default:
94
+ return null;
95
+ }
96
+ };
97
+ // Card container style
98
+ const cardStyle = {
99
+ width: template.cardSize.width * scale,
100
+ height: template.cardSize.height * scale,
101
+ position: 'relative',
102
+ overflow: 'hidden',
103
+ backgroundColor: '#fff',
104
+ transform: `scale(${scale})`,
105
+ transformOrigin: 'top left',
106
+ ...style,
107
+ };
108
+ return (jsxs("div", { id: side === 'front' ? 'idcardfront' : 'idcardback', className: `idcard-container idcard-${side} ${className}`, style: cardStyle, children: [backgroundImage && (jsx("img", { src: backgroundImage, alt: `${side} background`, style: {
109
+ position: 'absolute',
110
+ top: 0,
111
+ left: 0,
112
+ width: '100%',
113
+ height: '100%',
114
+ objectFit: 'cover',
115
+ zIndex: 0,
116
+ } })), fieldsToRender.map(renderField)] }));
117
+ };
118
+ /**
119
+ * Get field value from data based on field configuration
120
+ */
121
+ function getFieldValue(field, data) {
122
+ if (field.type === 'label') {
123
+ return field.staticText;
124
+ }
125
+ const value = data[field.fieldKey];
126
+ // Handle array values (like department)
127
+ if (Array.isArray(value)) {
128
+ return value[0];
129
+ }
130
+ return value;
131
+ }
132
+
133
+ export { IDCardGenerator, IDCardGenerator as default };
134
+ //# sourceMappingURL=IDCardGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IDCardGenerator.js","sources":["../../../src/components/IDCardGenerator.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\r\nimport type { IDCardGeneratorProps, FieldMapping, IDCardData, IDCardTemplate } from '../types';\r\nimport { fieldStyleToCSS, positionToStyle } from '../utils/styleUtils';\r\nimport { generateQrCodeFromFields } from '../core/qrUtils';\r\n\r\n/**\r\n * IDCardGenerator - Renders a completed ID card\r\n * \r\n * Takes a template and user data, then renders the filled card.\r\n * This is the component used to display actual ID cards for individual users.\r\n * \r\n * Example:\r\n * ```tsx\r\n * <IDCardGenerator \r\n * template={myTemplate}\r\n * data={{ name: 'John Doe', photo: '...' }}\r\n * side=\"front\"\r\n * />\r\n * ```\r\n */\r\nexport const IDCardGenerator: React.FC<IDCardGeneratorProps> = ({\r\n template,\r\n data,\r\n side = 'front',\r\n scale = 1,\r\n className = '',\r\n style = {},\r\n onFieldClick,\r\n editable = false,\r\n}: IDCardGeneratorProps) => {\r\n // Get fields for the current side only\r\n const fieldsToRender = useMemo(() => {\r\n return template.fields.filter((field: FieldMapping) => field.side === side);\r\n }, [template.fields, side]);\r\n\r\n // Get background for current side\r\n const backgroundImage = side === 'front' ? template.backgrounds.front : template.backgrounds.back;\r\n\r\n // Render a single field\r\n const renderField = (field: FieldMapping) => {\r\n const posStyle = positionToStyle(field.position);\r\n const fieldStyle = fieldStyleToCSS(field.style);\r\n const combinedStyle: React.CSSProperties = {\r\n ...posStyle,\r\n ...fieldStyle,\r\n zIndex: field.zIndex || 1,\r\n boxSizing: 'border-box',\r\n overflow: 'hidden',\r\n cursor: editable ? 'pointer' : 'default',\r\n };\r\n\r\n const handleClick = (e: React.MouseEvent) => {\r\n if (onFieldClick) {\r\n e.stopPropagation();\r\n onFieldClick(field);\r\n }\r\n };\r\n\r\n const value = getFieldValue(field, data);\r\n\r\n switch (field.type) {\r\n case 'text':\r\n return (\r\n <div\r\n key={field.id}\r\n id={field.id}\r\n style={combinedStyle}\r\n onClick={handleClick}\r\n className=\"idcard-field idcard-field-text\"\r\n >\r\n {field.label && (\r\n <span className=\"idcard-field-label\" style={{ fontSize: '0.8em', display: 'block' }}>\r\n {field.label}\r\n </span>\r\n )}\r\n <span className=\"idcard-field-value\">{String(value || field.placeholder || '')}</span>\r\n </div>\r\n );\r\n\r\n case 'label':\r\n return (\r\n <div\r\n key={field.id}\r\n id={field.id}\r\n style={combinedStyle}\r\n onClick={handleClick}\r\n className=\"idcard-field idcard-field-label\"\r\n >\r\n {field.staticText || field.label || ''}\r\n </div>\r\n );\r\n\r\n case 'image':\r\n return (\r\n <div\r\n key={field.id}\r\n id={field.id}\r\n style={{\r\n ...combinedStyle,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n }}\r\n onClick={handleClick}\r\n className=\"idcard-field idcard-field-image\"\r\n >\r\n {value ? (\r\n <img\r\n src={String(value)}\r\n alt={field.label || 'Image'}\r\n style={{\r\n width: '100%',\r\n height: '100%',\r\n objectFit: 'cover',\r\n objectPosition: 'center top',\r\n }}\r\n />\r\n ) : (\r\n <div\r\n style={{\r\n width: '100%',\r\n height: '100%',\r\n backgroundColor: '#e0e0e0',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n fontSize: '10px',\r\n color: '#666',\r\n }}\r\n >\r\n {field.label || 'Photo'}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n\r\n case 'qrcode':\r\n const qrDataUrl = field.qrFields\r\n ? generateQrCodeFromFields(data, field.qrFields, Math.min(field.position.width, field.position.height) * 2)\r\n : '';\r\n\r\n return (\r\n <div\r\n key={field.id}\r\n id={field.id}\r\n style={{\r\n ...combinedStyle,\r\n backgroundColor: '#fff',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n }}\r\n onClick={handleClick}\r\n className=\"idcard-field idcard-field-qrcode\"\r\n >\r\n {qrDataUrl ? (\r\n <img\r\n src={qrDataUrl}\r\n alt=\"QR Code\"\r\n style={{ width: '100%', height: '100%', objectFit: 'contain' }}\r\n />\r\n ) : (\r\n <div\r\n style={{\r\n width: '100%',\r\n height: '100%',\r\n backgroundColor: '#f0f0f0',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n fontSize: '10px',\r\n color: '#666',\r\n }}\r\n >\r\n QR Code\r\n </div>\r\n )}\r\n </div>\r\n );\r\n\r\n default:\r\n return null;\r\n }\r\n };\r\n\r\n // Card container style\r\n const cardStyle: React.CSSProperties = {\r\n width: template.cardSize.width * scale,\r\n height: template.cardSize.height * scale,\r\n position: 'relative',\r\n overflow: 'hidden',\r\n backgroundColor: '#fff',\r\n transform: `scale(${scale})`,\r\n transformOrigin: 'top left',\r\n ...style,\r\n };\r\n\r\n return (\r\n <div\r\n id={side === 'front' ? 'idcardfront' : 'idcardback'}\r\n className={`idcard-container idcard-${side} ${className}`}\r\n style={cardStyle}\r\n >\r\n {/* Background */}\r\n {backgroundImage && (\r\n <img\r\n src={backgroundImage}\r\n alt={`${side} background`}\r\n style={{\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%',\r\n objectFit: 'cover',\r\n zIndex: 0,\r\n }}\r\n />\r\n )}\r\n\r\n {/* Fields */}\r\n {fieldsToRender.map(renderField)}\r\n </div>\r\n );\r\n};\r\n\r\n/**\r\n * Get field value from data based on field configuration\r\n */\r\nfunction getFieldValue(field: FieldMapping, data: IDCardData): string | number | undefined {\r\n if (field.type === 'label') {\r\n return field.staticText;\r\n }\r\n\r\n const value = data[field.fieldKey];\r\n\r\n // Handle array values (like department)\r\n if (Array.isArray(value)) {\r\n return value[0];\r\n }\r\n\r\n return value as string | number | undefined;\r\n}\r\n\r\nexport default IDCardGenerator;\r\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -0,0 +1,163 @@
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
+ import { useMemo } from 'react';
3
+ import { positionToStyle, fieldStyleToCSS } from '../utils/styleUtils.js';
4
+ import { generateQrCodeFromFields } from '../core/qrUtils.js';
5
+
6
+ /**
7
+ * IDCardPreview - Interactive card preview component
8
+ *
9
+ * Renders an ID card with:
10
+ * - Field selection and highlighting
11
+ * - Resize handles for selected fields
12
+ * - Grid overlay for alignment
13
+ * - Dynamic field rendering based on type
14
+ *
15
+ * Used inside the designer for visual editing
16
+ */
17
+ const IDCardPreview = ({ template, data, side, scale = 1, showGrid = false, onFieldSelect, selectedFieldId, editable = true, onFieldUpdate, }) => {
18
+ // Get only fields that belong to the current side
19
+ const fieldsToRender = useMemo(() => {
20
+ return template.fields.filter((field) => field.side === side);
21
+ }, [template.fields, side]);
22
+ // Get background for current side
23
+ const backgroundImage = side === 'front' ? template.backgrounds.front : template.backgrounds.back;
24
+ // Render resize handles for selected field
25
+ const renderResizeHandles = (field) => {
26
+ if (field.id !== selectedFieldId || !editable)
27
+ return null;
28
+ const handles = ['n', 's', 'e', 'w', 'ne', 'nw', 'se', 'sw'];
29
+ const handleStyle = {
30
+ position: 'absolute',
31
+ width: '8px',
32
+ height: '8px',
33
+ backgroundColor: '#2196F3',
34
+ border: '1px solid #fff',
35
+ borderRadius: '2px',
36
+ zIndex: 1000,
37
+ };
38
+ const positions = {
39
+ n: { top: '-4px', left: '50%', transform: 'translateX(-50%)', cursor: 'n-resize' },
40
+ s: { bottom: '-4px', left: '50%', transform: 'translateX(-50%)', cursor: 's-resize' },
41
+ e: { right: '-4px', top: '50%', transform: 'translateY(-50%)', cursor: 'e-resize' },
42
+ w: { left: '-4px', top: '50%', transform: 'translateY(-50%)', cursor: 'w-resize' },
43
+ ne: { top: '-4px', right: '-4px', cursor: 'ne-resize' },
44
+ nw: { top: '-4px', left: '-4px', cursor: 'nw-resize' },
45
+ se: { bottom: '-4px', right: '-4px', cursor: 'se-resize' },
46
+ sw: { bottom: '-4px', left: '-4px', cursor: 'sw-resize' },
47
+ };
48
+ return handles.map((handle) => (jsx("div", { className: `resize-handle resize-handle-${handle}`, style: { ...handleStyle, ...positions[handle] }, "data-handle": handle }, handle)));
49
+ };
50
+ // Render a single field
51
+ const renderField = (field) => {
52
+ const posStyle = positionToStyle(field.position);
53
+ const fieldStyle = fieldStyleToCSS(field.style);
54
+ const isSelected = field.id === selectedFieldId;
55
+ const combinedStyle = {
56
+ ...posStyle,
57
+ ...fieldStyle,
58
+ zIndex: field.zIndex || 1,
59
+ boxSizing: 'border-box',
60
+ overflow: 'hidden',
61
+ cursor: editable ? 'move' : 'default',
62
+ outline: isSelected ? '2px solid #2196F3' : 'none',
63
+ outlineOffset: '1px',
64
+ };
65
+ const handleClick = (e) => {
66
+ e.stopPropagation();
67
+ onFieldSelect?.(field);
68
+ };
69
+ const value = data[field.fieldKey];
70
+ const content = (() => {
71
+ switch (field.type) {
72
+ case 'text':
73
+ return (jsxs(Fragment, { children: [field.label && (jsx("span", { style: { fontSize: '0.75em', display: 'block', opacity: 0.7 }, children: field.label })), jsx("span", { children: String(value || field.placeholder || field.fieldKey) })] }));
74
+ case 'label':
75
+ return jsx("span", { children: field.staticText || field.label || 'Label' });
76
+ case 'image':
77
+ return value ? (jsx("img", { src: String(value), alt: field.label || 'Image', style: {
78
+ width: '100%',
79
+ height: '100%',
80
+ objectFit: 'cover',
81
+ objectPosition: 'center top',
82
+ } })) : (jsxs("div", { style: {
83
+ width: '100%',
84
+ height: '100%',
85
+ backgroundColor: '#e0e0e0',
86
+ display: 'flex',
87
+ alignItems: 'center',
88
+ justifyContent: 'center',
89
+ fontSize: '10px',
90
+ color: '#666',
91
+ flexDirection: 'column',
92
+ }, children: [jsx("span", { children: "\uD83D\uDCF7" }), jsx("span", { children: field.label || 'Photo' })] }));
93
+ case 'qrcode':
94
+ const qrDataUrl = field.qrFields
95
+ ? generateQrCodeFromFields(data, field.qrFields, 200)
96
+ : '';
97
+ return qrDataUrl ? (jsx("img", { src: qrDataUrl, alt: "QR Code", style: { width: '100%', height: '100%', objectFit: 'contain' } })) : (jsx("div", { style: {
98
+ width: '100%',
99
+ height: '100%',
100
+ backgroundColor: '#f0f0f0',
101
+ display: 'flex',
102
+ alignItems: 'center',
103
+ justifyContent: 'center',
104
+ fontSize: '10px',
105
+ color: '#666',
106
+ border: '1px dashed #ccc',
107
+ }, children: "QR Code" }));
108
+ default:
109
+ return null;
110
+ }
111
+ })();
112
+ return (jsxs("div", { id: `preview-${field.id}`, style: combinedStyle, onClick: handleClick, className: `preview-field preview-field-${field.type} ${isSelected ? 'selected' : ''}`, children: [content, renderResizeHandles(field)] }, field.id));
113
+ };
114
+ // Card container style
115
+ const cardStyle = {
116
+ width: template.cardSize.width,
117
+ height: template.cardSize.height,
118
+ position: 'relative',
119
+ overflow: 'hidden',
120
+ backgroundColor: backgroundImage ? 'transparent' : '#f5f5f5',
121
+ border: '1px solid #ddd',
122
+ transform: `scale(${scale})`,
123
+ transformOrigin: 'top left',
124
+ };
125
+ // Grid overlay style
126
+ const gridStyle = {
127
+ position: 'absolute',
128
+ top: 0,
129
+ left: 0,
130
+ width: '100%',
131
+ height: '100%',
132
+ backgroundImage: showGrid
133
+ ? 'linear-gradient(to right, rgba(0,0,0,0.05) 1px, transparent 1px), linear-gradient(to bottom, rgba(0,0,0,0.05) 1px, transparent 1px)'
134
+ : 'none',
135
+ backgroundSize: '10px 10px',
136
+ pointerEvents: 'none',
137
+ zIndex: 999,
138
+ };
139
+ const handleContainerClick = () => {
140
+ onFieldSelect?.(null);
141
+ };
142
+ return (jsxs("div", { className: "idcard-preview-container", style: cardStyle, onClick: handleContainerClick, children: [backgroundImage && (jsx("img", { src: backgroundImage, alt: `${side} background`, style: {
143
+ position: 'absolute',
144
+ top: 0,
145
+ left: 0,
146
+ width: '100%',
147
+ height: '100%',
148
+ objectFit: 'cover',
149
+ zIndex: 0,
150
+ pointerEvents: 'none',
151
+ } })), fieldsToRender.map(renderField), showGrid && jsx("div", { style: gridStyle }), !backgroundImage && fieldsToRender.length === 0 && (jsxs("div", { style: {
152
+ position: 'absolute',
153
+ top: '50%',
154
+ left: '50%',
155
+ transform: 'translate(-50%, -50%)',
156
+ textAlign: 'center',
157
+ color: '#999',
158
+ fontSize: '14px',
159
+ }, children: [jsx("p", { children: "Upload a background image" }), jsx("p", { children: "and add fields to get started" })] }))] }));
160
+ };
161
+
162
+ export { IDCardPreview, IDCardPreview as default };
163
+ //# sourceMappingURL=IDCardPreview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IDCardPreview.js","sources":["../../../src/components/IDCardPreview.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\r\nimport type { IDCardPreviewProps, FieldMapping } from '../types';\r\nimport { fieldStyleToCSS, positionToStyle } from '../utils/styleUtils';\r\nimport { generateQrCodeFromFields } from '../core/qrUtils';\r\n\r\n/**\r\n * IDCardPreview - Interactive card preview component\r\n * \r\n * Renders an ID card with:\r\n * - Field selection and highlighting\r\n * - Resize handles for selected fields\r\n * - Grid overlay for alignment\r\n * - Dynamic field rendering based on type\r\n * \r\n * Used inside the designer for visual editing\r\n */\r\nexport const IDCardPreview: React.FC<IDCardPreviewProps> = ({\r\n template,\r\n data,\r\n side,\r\n scale = 1,\r\n showGrid = false,\r\n onFieldSelect,\r\n selectedFieldId,\r\n editable = true,\r\n onFieldUpdate,\r\n}: IDCardPreviewProps) => {\r\n // Get only fields that belong to the current side\r\n const fieldsToRender = useMemo(() => {\r\n return template.fields.filter((field: FieldMapping) => field.side === side);\r\n }, [template.fields, side]);\r\n\r\n // Get background for current side\r\n const backgroundImage = side === 'front' ? template.backgrounds.front : template.backgrounds.back;\r\n\r\n // Render resize handles for selected field\r\n const renderResizeHandles = (field: FieldMapping) => {\r\n if (field.id !== selectedFieldId || !editable) return null;\r\n\r\n const handles = ['n', 's', 'e', 'w', 'ne', 'nw', 'se', 'sw'];\r\n const handleStyle: React.CSSProperties = {\r\n position: 'absolute',\r\n width: '8px',\r\n height: '8px',\r\n backgroundColor: '#2196F3',\r\n border: '1px solid #fff',\r\n borderRadius: '2px',\r\n zIndex: 1000,\r\n };\r\n\r\n const positions: Record<string, React.CSSProperties> = {\r\n n: { top: '-4px', left: '50%', transform: 'translateX(-50%)', cursor: 'n-resize' },\r\n s: { bottom: '-4px', left: '50%', transform: 'translateX(-50%)', cursor: 's-resize' },\r\n e: { right: '-4px', top: '50%', transform: 'translateY(-50%)', cursor: 'e-resize' },\r\n w: { left: '-4px', top: '50%', transform: 'translateY(-50%)', cursor: 'w-resize' },\r\n ne: { top: '-4px', right: '-4px', cursor: 'ne-resize' },\r\n nw: { top: '-4px', left: '-4px', cursor: 'nw-resize' },\r\n se: { bottom: '-4px', right: '-4px', cursor: 'se-resize' },\r\n sw: { bottom: '-4px', left: '-4px', cursor: 'sw-resize' },\r\n };\r\n\r\n return handles.map((handle) => (\r\n <div\r\n key={handle}\r\n className={`resize-handle resize-handle-${handle}`}\r\n style={{ ...handleStyle, ...positions[handle] }}\r\n data-handle={handle}\r\n />\r\n ));\r\n };\r\n\r\n // Render a single field\r\n const renderField = (field: FieldMapping) => {\r\n const posStyle = positionToStyle(field.position);\r\n const fieldStyle = fieldStyleToCSS(field.style);\r\n const isSelected = field.id === selectedFieldId;\r\n\r\n const combinedStyle: React.CSSProperties = {\r\n ...posStyle,\r\n ...fieldStyle,\r\n zIndex: field.zIndex || 1,\r\n boxSizing: 'border-box',\r\n overflow: 'hidden',\r\n cursor: editable ? 'move' : 'default',\r\n outline: isSelected ? '2px solid #2196F3' : 'none',\r\n outlineOffset: '1px',\r\n };\r\n\r\n const handleClick = (e: React.MouseEvent) => {\r\n e.stopPropagation();\r\n onFieldSelect?.(field);\r\n };\r\n\r\n const value = data[field.fieldKey];\r\n\r\n const content = (() => {\r\n switch (field.type) {\r\n case 'text':\r\n return (\r\n <>\r\n {field.label && (\r\n <span style={{ fontSize: '0.75em', display: 'block', opacity: 0.7 }}>\r\n {field.label}\r\n </span>\r\n )}\r\n <span>{String(value || field.placeholder || field.fieldKey)}</span>\r\n </>\r\n );\r\n\r\n case 'label':\r\n return <span>{field.staticText || field.label || 'Label'}</span>;\r\n\r\n case 'image':\r\n return value ? (\r\n <img\r\n src={String(value)}\r\n alt={field.label || 'Image'}\r\n style={{\r\n width: '100%',\r\n height: '100%',\r\n objectFit: 'cover',\r\n objectPosition: 'center top',\r\n }}\r\n />\r\n ) : (\r\n <div\r\n style={{\r\n width: '100%',\r\n height: '100%',\r\n backgroundColor: '#e0e0e0',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n fontSize: '10px',\r\n color: '#666',\r\n flexDirection: 'column',\r\n }}\r\n >\r\n <span>📷</span>\r\n <span>{field.label || 'Photo'}</span>\r\n </div>\r\n );\r\n\r\n case 'qrcode':\r\n const qrDataUrl = field.qrFields\r\n ? generateQrCodeFromFields(data, field.qrFields, 200)\r\n : '';\r\n\r\n return qrDataUrl ? (\r\n <img\r\n src={qrDataUrl}\r\n alt=\"QR Code\"\r\n style={{ width: '100%', height: '100%', objectFit: 'contain' }}\r\n />\r\n ) : (\r\n <div\r\n style={{\r\n width: '100%',\r\n height: '100%',\r\n backgroundColor: '#f0f0f0',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n fontSize: '10px',\r\n color: '#666',\r\n border: '1px dashed #ccc',\r\n }}\r\n >\r\n QR Code\r\n </div>\r\n );\r\n\r\n default:\r\n return null;\r\n }\r\n })();\r\n\r\n return (\r\n <div\r\n key={field.id}\r\n id={`preview-${field.id}`}\r\n style={combinedStyle}\r\n onClick={handleClick}\r\n className={`preview-field preview-field-${field.type} ${isSelected ? 'selected' : ''}`}\r\n >\r\n {content}\r\n {renderResizeHandles(field)}\r\n </div>\r\n );\r\n };\r\n\r\n // Card container style\r\n const cardStyle: React.CSSProperties = {\r\n width: template.cardSize.width,\r\n height: template.cardSize.height,\r\n position: 'relative',\r\n overflow: 'hidden',\r\n backgroundColor: backgroundImage ? 'transparent' : '#f5f5f5',\r\n border: '1px solid #ddd',\r\n transform: `scale(${scale})`,\r\n transformOrigin: 'top left',\r\n };\r\n\r\n // Grid overlay style\r\n const gridStyle: React.CSSProperties = {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%',\r\n backgroundImage: showGrid\r\n ? 'linear-gradient(to right, rgba(0,0,0,0.05) 1px, transparent 1px), linear-gradient(to bottom, rgba(0,0,0,0.05) 1px, transparent 1px)'\r\n : 'none',\r\n backgroundSize: '10px 10px',\r\n pointerEvents: 'none',\r\n zIndex: 999,\r\n };\r\n\r\n const handleContainerClick = () => {\r\n onFieldSelect?.(null);\r\n };\r\n\r\n return (\r\n <div\r\n className=\"idcard-preview-container\"\r\n style={cardStyle}\r\n onClick={handleContainerClick}\r\n >\r\n {/* Background */}\r\n {backgroundImage && (\r\n <img\r\n src={backgroundImage}\r\n alt={`${side} background`}\r\n style={{\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%',\r\n objectFit: 'cover',\r\n zIndex: 0,\r\n pointerEvents: 'none',\r\n }}\r\n />\r\n )}\r\n\r\n {/* Fields */}\r\n {fieldsToRender.map(renderField)}\r\n\r\n {/* Grid overlay */}\r\n {showGrid && <div style={gridStyle} />}\r\n\r\n {/* Empty state */}\r\n {!backgroundImage && fieldsToRender.length === 0 && (\r\n <div\r\n style={{\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n textAlign: 'center',\r\n color: '#999',\r\n fontSize: '14px',\r\n }}\r\n >\r\n <p>Upload a background image</p>\r\n <p>and add fields to get started</p>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default IDCardPreview;\r\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -0,0 +1,151 @@
1
+ import html2canvas from '../node_modules/html2canvas/dist/html2canvas.esm.js';
2
+ import E from '../node_modules/jspdf/dist/jspdf.es.min.js';
3
+ import { setQrCodeOnElement } from './qrUtils.js';
4
+
5
+ // High-quality canvas rendering defaults
6
+ const defaultCanvasOptions = {
7
+ scale: 10, // 10x resolution for crisp output
8
+ dpi: 1200,
9
+ imageTimeout: 15000,
10
+ letterRendering: true,
11
+ logging: false,
12
+ useCORS: true, // Allow cross-origin images
13
+ backgroundColor: null,
14
+ };
15
+ /**
16
+ * Capture a DOM element as a high-resolution canvas
17
+ * Uses html2canvas to convert the element to an image
18
+ * @returns Canvas and the original element, or null if not found
19
+ */
20
+ async function captureElement(elementId, scale = 10) {
21
+ const element = document.getElementById(elementId);
22
+ if (!element)
23
+ return null;
24
+ const canvas = await html2canvas(element, {
25
+ ...defaultCanvasOptions,
26
+ scale,
27
+ });
28
+ return { canvas, element };
29
+ }
30
+ /**
31
+ * Download ID card(s) as a PDF file
32
+ * Captures DOM elements and converts them to a multi-page PDF
33
+ * @param options - Configuration for PDF export
34
+ * @returns Export result with success status and any errors
35
+ */
36
+ async function downloadIDCardAsPDF(options) {
37
+ try {
38
+ const { frontElementId = 'idcardfront', backElementId, filename = 'ID_Card', data, qrElementId, qrFields, scale = 10, } = options;
39
+ // Generate QR code if configured
40
+ if (qrElementId && data && qrFields && qrFields.length > 0) {
41
+ const qrData = {};
42
+ for (const field of qrFields) {
43
+ if (data[field] !== undefined) {
44
+ qrData[field] = data[field];
45
+ }
46
+ }
47
+ setQrCodeOnElement(qrElementId, qrData, 200);
48
+ }
49
+ // Wait for QR code and any images to fully render
50
+ await new Promise((resolve) => setTimeout(resolve, 100));
51
+ const pages = [];
52
+ // Capture front
53
+ const frontCapture = await captureElement(frontElementId, scale);
54
+ if (frontCapture)
55
+ pages.push(frontCapture);
56
+ // Capture back if exists
57
+ if (backElementId) {
58
+ const backCapture = await captureElement(backElementId, scale);
59
+ if (backCapture)
60
+ pages.push(backCapture);
61
+ }
62
+ if (pages.length === 0) {
63
+ return { success: false, error: 'No elements found to capture' };
64
+ }
65
+ let pdf;
66
+ for (let i = 0; i < pages.length; i++) {
67
+ const { canvas, element } = pages[i];
68
+ const imgData = canvas.toDataURL('image/jpeg', 1.0);
69
+ // Calculate PDF dimensions
70
+ const pdfWidth = parseInt(element.style.width) * 0.264583 || 85;
71
+ const aspectRatio = canvas.height / canvas.width;
72
+ const pdfHeight = pdfWidth * aspectRatio;
73
+ const orientation = pdfWidth >= pdfHeight ? 'landscape' : 'portrait';
74
+ if (i === 0) {
75
+ pdf = new E({
76
+ unit: 'mm',
77
+ format: [pdfWidth, pdfHeight],
78
+ orientation,
79
+ });
80
+ }
81
+ else {
82
+ pdf.addPage([pdfWidth, pdfHeight], orientation);
83
+ }
84
+ pdf.addImage(imgData, 'JPEG', 0, 0, pdfWidth, pdfHeight);
85
+ }
86
+ if (pdf) {
87
+ const blob = pdf.output('blob');
88
+ pdf.save(`${filename}.pdf`);
89
+ return { success: true, blob };
90
+ }
91
+ return { success: false, error: 'Failed to generate PDF' };
92
+ }
93
+ catch (error) {
94
+ return {
95
+ success: false,
96
+ error: error instanceof Error ? error.message : 'Unknown error',
97
+ };
98
+ }
99
+ }
100
+ /**
101
+ * Download ID card as image (PNG or JPEG)
102
+ */
103
+ async function downloadIDCardAsImage(options) {
104
+ try {
105
+ const { frontElementId = 'idcardfront', filename = 'ID_Card', data, qrElementId, qrFields, format = 'png', scale = 10, quality = 1.0, } = options;
106
+ // Generate QR code if needed
107
+ if (qrElementId && data && qrFields && qrFields.length > 0) {
108
+ const qrData = {};
109
+ for (const field of qrFields) {
110
+ if (data[field] !== undefined) {
111
+ qrData[field] = data[field];
112
+ }
113
+ }
114
+ setQrCodeOnElement(qrElementId, qrData, 200);
115
+ }
116
+ await new Promise((resolve) => setTimeout(resolve, 100));
117
+ const capture = await captureElement(frontElementId, scale);
118
+ if (!capture) {
119
+ return { success: false, error: 'Element not found' };
120
+ }
121
+ const mimeType = format === 'jpeg' ? 'image/jpeg' : 'image/png';
122
+ const dataUrl = capture.canvas.toDataURL(mimeType, quality);
123
+ // Trigger download
124
+ const link = document.createElement('a');
125
+ link.download = `${filename}.${format}`;
126
+ link.href = dataUrl;
127
+ link.click();
128
+ return { success: true, dataUrl };
129
+ }
130
+ catch (error) {
131
+ return {
132
+ success: false,
133
+ error: error instanceof Error ? error.message : 'Unknown error',
134
+ };
135
+ }
136
+ }
137
+ /**
138
+ * Export ID card with unified options
139
+ */
140
+ async function exportIDCard(options) {
141
+ const { format, ...rest } = options;
142
+ if (format === 'pdf') {
143
+ return downloadIDCardAsPDF(rest);
144
+ }
145
+ else {
146
+ return downloadIDCardAsImage({ ...rest, format });
147
+ }
148
+ }
149
+
150
+ export { downloadIDCardAsImage, downloadIDCardAsPDF, exportIDCard };
151
+ //# sourceMappingURL=exportUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exportUtils.js","sources":["../../../src/core/exportUtils.ts"],"sourcesContent":["import html2canvas from 'html2canvas';\r\nimport jsPDF from 'jspdf';\r\nimport type { ExportOptions, ExportResult, IDCardData } from '../types';\r\nimport { setQrCodeOnElement } from './qrUtils';\r\n\r\ninterface DownloadIDCardOptions {\r\n frontElementId?: string;\r\n backElementId?: string;\r\n filename?: string;\r\n data?: IDCardData;\r\n qrElementId?: string;\r\n qrFields?: string[];\r\n format?: 'pdf' | 'png' | 'jpeg';\r\n scale?: number; // Canvas scale for quality (higher = better, but slower)\r\n quality?: number; // JPEG quality (0-1)\r\n}\r\n\r\n// High-quality canvas rendering defaults\r\nconst defaultCanvasOptions = {\r\n scale: 10, // 10x resolution for crisp output\r\n dpi: 1200,\r\n imageTimeout: 15000,\r\n letterRendering: true,\r\n logging: false,\r\n useCORS: true, // Allow cross-origin images\r\n backgroundColor: null,\r\n};\r\n\r\n/**\r\n * Capture a DOM element as a high-resolution canvas\r\n * Uses html2canvas to convert the element to an image\r\n * @returns Canvas and the original element, or null if not found\r\n */\r\nasync function captureElement(\r\n elementId: string,\r\n scale = 10\r\n): Promise<{ canvas: HTMLCanvasElement; element: HTMLElement } | null> {\r\n const element = document.getElementById(elementId);\r\n if (!element) return null;\r\n\r\n const canvas = await html2canvas(element, {\r\n ...defaultCanvasOptions,\r\n scale,\r\n });\r\n\r\n return { canvas, element };\r\n}\r\n\r\n/**\r\n * Download ID card(s) as a PDF file\r\n * Captures DOM elements and converts them to a multi-page PDF\r\n * @param options - Configuration for PDF export\r\n * @returns Export result with success status and any errors\r\n */\r\nexport async function downloadIDCardAsPDF(\r\n options: DownloadIDCardOptions\r\n): Promise<ExportResult> {\r\n try {\r\n const {\r\n frontElementId = 'idcardfront',\r\n backElementId,\r\n filename = 'ID_Card',\r\n data,\r\n qrElementId,\r\n qrFields,\r\n scale = 10,\r\n } = options;\r\n\r\n // Generate QR code if configured\r\n if (qrElementId && data && qrFields && qrFields.length > 0) {\r\n const qrData: Record<string, unknown> = {};\r\n for (const field of qrFields) {\r\n if (data[field] !== undefined) {\r\n qrData[field] = data[field];\r\n }\r\n }\r\n setQrCodeOnElement(qrElementId, qrData, 200);\r\n }\r\n\r\n // Wait for QR code and any images to fully render\r\n await new Promise((resolve) => setTimeout(resolve, 100));\r\n\r\n const pages: { canvas: HTMLCanvasElement; element: HTMLElement }[] = [];\r\n\r\n // Capture front\r\n const frontCapture = await captureElement(frontElementId, scale);\r\n if (frontCapture) pages.push(frontCapture);\r\n\r\n // Capture back if exists\r\n if (backElementId) {\r\n const backCapture = await captureElement(backElementId, scale);\r\n if (backCapture) pages.push(backCapture);\r\n }\r\n\r\n if (pages.length === 0) {\r\n return { success: false, error: 'No elements found to capture' };\r\n }\r\n\r\n let pdf: jsPDF | undefined;\r\n\r\n for (let i = 0; i < pages.length; i++) {\r\n const { canvas, element } = pages[i];\r\n const imgData = canvas.toDataURL('image/jpeg', 1.0);\r\n\r\n // Calculate PDF dimensions\r\n const pdfWidth = parseInt(element.style.width) * 0.264583 || 85;\r\n const aspectRatio = canvas.height / canvas.width;\r\n const pdfHeight = pdfWidth * aspectRatio;\r\n\r\n const orientation = pdfWidth >= pdfHeight ? 'landscape' : 'portrait';\r\n\r\n if (i === 0) {\r\n pdf = new jsPDF({\r\n unit: 'mm',\r\n format: [pdfWidth, pdfHeight],\r\n orientation,\r\n });\r\n } else {\r\n pdf!.addPage([pdfWidth, pdfHeight], orientation);\r\n }\r\n\r\n pdf!.addImage(imgData, 'JPEG', 0, 0, pdfWidth, pdfHeight);\r\n }\r\n\r\n if (pdf) {\r\n const blob = pdf.output('blob');\r\n pdf.save(`${filename}.pdf`);\r\n return { success: true, blob };\r\n }\r\n\r\n return { success: false, error: 'Failed to generate PDF' };\r\n } catch (error) {\r\n return {\r\n success: false,\r\n error: error instanceof Error ? error.message : 'Unknown error',\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * Download ID card as image (PNG or JPEG)\r\n */\r\nexport async function downloadIDCardAsImage(\r\n options: DownloadIDCardOptions\r\n): Promise<ExportResult> {\r\n try {\r\n const {\r\n frontElementId = 'idcardfront',\r\n filename = 'ID_Card',\r\n data,\r\n qrElementId,\r\n qrFields,\r\n format = 'png',\r\n scale = 10,\r\n quality = 1.0,\r\n } = options;\r\n\r\n // Generate QR code if needed\r\n if (qrElementId && data && qrFields && qrFields.length > 0) {\r\n const qrData: Record<string, unknown> = {};\r\n for (const field of qrFields) {\r\n if (data[field] !== undefined) {\r\n qrData[field] = data[field];\r\n }\r\n }\r\n setQrCodeOnElement(qrElementId, qrData, 200);\r\n }\r\n\r\n await new Promise((resolve) => setTimeout(resolve, 100));\r\n\r\n const capture = await captureElement(frontElementId, scale);\r\n if (!capture) {\r\n return { success: false, error: 'Element not found' };\r\n }\r\n\r\n const mimeType = format === 'jpeg' ? 'image/jpeg' : 'image/png';\r\n const dataUrl = capture.canvas.toDataURL(mimeType, quality);\r\n\r\n // Trigger download\r\n const link = document.createElement('a');\r\n link.download = `${filename}.${format}`;\r\n link.href = dataUrl;\r\n link.click();\r\n\r\n return { success: true, dataUrl };\r\n } catch (error) {\r\n return {\r\n success: false,\r\n error: error instanceof Error ? error.message : 'Unknown error',\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * Export ID card with unified options\r\n */\r\nexport async function exportIDCard(\r\n options: ExportOptions & {\r\n frontElementId?: string;\r\n backElementId?: string;\r\n data?: IDCardData;\r\n qrElementId?: string;\r\n qrFields?: string[];\r\n }\r\n): Promise<ExportResult> {\r\n const { format, ...rest } = options;\r\n\r\n if (format === 'pdf') {\r\n return downloadIDCardAsPDF(rest);\r\n } else {\r\n return downloadIDCardAsImage({ ...rest, format });\r\n }\r\n}\r\n"],"names":["jsPDF"],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import QRious from '../node_modules/qrious/dist/qrious.js';
2
+
3
+ /**
4
+ * Generate a QR code as a base64 data URL
5
+ * @param data - Data to encode in the QR code (will be JSON stringified)
6
+ * @param size - QR code size in pixels
7
+ * @param options - Customization options (error correction level, colors, etc.)
8
+ * @returns Base64 PNG data URL
9
+ */
10
+ function generateQrCodeDataURL(data, size = 200, options) {
11
+ const qr = new QRious({
12
+ value: JSON.stringify(data),
13
+ size,
14
+ level: options?.level || 'H', // High error correction by default
15
+ padding: options?.padding ?? 0,
16
+ background: options?.background || 'white',
17
+ backgroundAlpha: 1,
18
+ foreground: options?.foreground || 'black',
19
+ foregroundAlpha: 1,
20
+ });
21
+ return qr.toDataURL('image/png');
22
+ }
23
+ /**
24
+ * Generate QR code from specific fields in the card data
25
+ * Only includes fields that exist in the data object
26
+ * @param data - Full card data object
27
+ * @param fields - Array of field keys to include in QR code
28
+ * @param size - QR code size in pixels
29
+ * @returns Base64 PNG data URL
30
+ */
31
+ function generateQrCodeFromFields(data, fields, size = 200) {
32
+ // Build object with only the specified fields
33
+ const qrData = {};
34
+ for (const field of fields) {
35
+ if (data[field] !== undefined) {
36
+ qrData[field] = data[field];
37
+ }
38
+ }
39
+ return generateQrCodeDataURL(qrData, size);
40
+ }
41
+ /**
42
+ * Set QR code image src on a DOM element
43
+ */
44
+ function setQrCodeOnElement(elementId, data, size = 200, container = document) {
45
+ const qrDataURL = generateQrCodeDataURL(data, size);
46
+ const imgTag = (container === document
47
+ ? document.getElementById(elementId)
48
+ : container.querySelector(`#${elementId}`));
49
+ if (imgTag) {
50
+ imgTag.setAttribute('src', qrDataURL);
51
+ imgTag.style.display = 'block';
52
+ imgTag.style.opacity = '1';
53
+ imgTag.style.visibility = 'visible';
54
+ return true;
55
+ }
56
+ return false;
57
+ }
58
+
59
+ export { generateQrCodeDataURL, generateQrCodeFromFields, setQrCodeOnElement };
60
+ //# sourceMappingURL=qrUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qrUtils.js","sources":["../../../src/core/qrUtils.ts"],"sourcesContent":["import QRious from 'qrious';\r\nimport type { IDCardData } from '../types';\r\n\r\n/**\r\n * Generate a QR code as a base64 data URL\r\n * @param data - Data to encode in the QR code (will be JSON stringified)\r\n * @param size - QR code size in pixels\r\n * @param options - Customization options (error correction level, colors, etc.)\r\n * @returns Base64 PNG data URL\r\n */\r\nexport function generateQrCodeDataURL(\r\n data: Record<string, unknown>,\r\n size = 200,\r\n options?: {\r\n level?: 'L' | 'M' | 'Q' | 'H'; // Error correction level\r\n padding?: number;\r\n background?: string;\r\n foreground?: string;\r\n }\r\n): string {\r\n const qr = new (QRious as any)({\r\n value: JSON.stringify(data),\r\n size,\r\n level: options?.level || 'H', // High error correction by default\r\n padding: options?.padding ?? 0,\r\n background: options?.background || 'white',\r\n backgroundAlpha: 1,\r\n foreground: options?.foreground || 'black',\r\n foregroundAlpha: 1,\r\n });\r\n return qr.toDataURL('image/png');\r\n}\r\n\r\n/**\r\n * Generate QR code from specific fields in the card data\r\n * Only includes fields that exist in the data object\r\n * @param data - Full card data object\r\n * @param fields - Array of field keys to include in QR code\r\n * @param size - QR code size in pixels\r\n * @returns Base64 PNG data URL\r\n */\r\nexport function generateQrCodeFromFields(\r\n data: IDCardData,\r\n fields: string[],\r\n size = 200\r\n): string {\r\n // Build object with only the specified fields\r\n const qrData: Record<string, unknown> = {};\r\n for (const field of fields) {\r\n if (data[field] !== undefined) {\r\n qrData[field] = data[field];\r\n }\r\n }\r\n return generateQrCodeDataURL(qrData, size);\r\n}\r\n\r\n/**\r\n * Set QR code image src on a DOM element\r\n */\r\nexport function setQrCodeOnElement(\r\n elementId: string,\r\n data: Record<string, unknown>,\r\n size = 200,\r\n container: Document | HTMLElement = document\r\n): boolean {\r\n const qrDataURL = generateQrCodeDataURL(data, size);\r\n const imgTag = (\r\n container === document\r\n ? document.getElementById(elementId)\r\n : (container as HTMLElement).querySelector(`#${elementId}`)\r\n ) as HTMLImageElement | null;\r\n\r\n if (imgTag) {\r\n imgTag.setAttribute('src', qrDataURL);\r\n imgTag.style.display = 'block';\r\n imgTag.style.opacity = '1';\r\n imgTag.style.visibility = 'visible';\r\n return true;\r\n }\r\n return false;\r\n}\r\n"],"names":[],"mappings":";;AAGA;;;;;;AAMG;AACG,SAAU,qBAAqB,CACnC,IAA6B,EAC7B,IAAI,GAAG,GAAG,EACV,OAKC,EAAA;AAED,IAAA,MAAM,EAAE,GAAG,IAAK,MAAc,CAAC;AAC7B,QAAA,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAC3B,IAAI;AACJ,QAAA,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG;AAC5B,QAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,CAAC;AAC9B,QAAA,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,OAAO;AAC1C,QAAA,eAAe,EAAE,CAAC;AAClB,QAAA,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,OAAO;AAC1C,QAAA,eAAe,EAAE,CAAC;AACnB,KAAA,CAAC;AACF,IAAA,OAAO,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC;AAClC;AAEA;;;;;;;AAOG;AACG,SAAU,wBAAwB,CACtC,IAAgB,EAChB,MAAgB,EAChB,IAAI,GAAG,GAAG,EAAA;;IAGV,MAAM,MAAM,GAA4B,EAAE;AAC1C,IAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1B,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;YAC7B,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B;IACF;AACA,IAAA,OAAO,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC;AAC5C;AAEA;;AAEG;AACG,SAAU,kBAAkB,CAChC,SAAiB,EACjB,IAA6B,EAC7B,IAAI,GAAG,GAAG,EACV,SAAA,GAAoC,QAAQ,EAAA;IAE5C,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC;AACnD,IAAA,MAAM,MAAM,IACV,SAAS,KAAK;AACZ,UAAE,QAAQ,CAAC,cAAc,CAAC,SAAS;UAChC,SAAyB,CAAC,aAAa,CAAC,IAAI,SAAS,CAAA,CAAE,CAAC,CACnC;IAE5B,IAAI,MAAM,EAAE;AACV,QAAA,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACrC,QAAA,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAA,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;AAC1B,QAAA,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS;AACnC,QAAA,OAAO,IAAI;IACb;AACA,IAAA,OAAO,KAAK;AACd;;;;"}